Compare commits

..

173 Commits

Author SHA1 Message Date
Orhun Parmaksız
a6d580bc96 fix(examples): run the correct example for chart 2025-02-18 09:40:04 +03:00
Orhun Parmaksız
392b28c194 chore(examples): remove examples dir from ratatui 2025-02-12 00:08:56 +03:00
Orhun Parmaksız
5814c7c395 docs(examples): update app examples with tapes 2025-02-12 00:06:48 +03:00
Orhun Parmaksız
9fb054453d chore(release): initialize release-plz (#1550)
See https://github.com/ratatui/ratatui/pull/1550
2025-02-11 20:43:58 +03:00
Orhun Parmaksız
4393fae54c docs(examples): move scrollbar example to examples folder (#1665) 2025-02-09 14:18:06 -08:00
Orhun Parmaksız
9ea70e28c6 docs(examples): move widget-impl example to examples folder (#1663) 2025-02-09 14:16:34 -08:00
Orhun Parmaksız
774ab788d4 docs(examples): move widget-ref-container example to examples folder (#1664)
see #1512
2025-02-09 14:13:32 -08:00
Caleb Cox
f05feac337 chore: sort dependencies in Cargo.toml (#1662) 2025-02-09 08:26:57 -08:00
Josh McKinney
7eab88fe9a chore: remove unused deps (#1661) 2025-02-06 18:19:44 -08:00
Orhun Parmaksız
910d16e63a docs(examples): move user-input example to examples folder (#1659) 2025-02-06 17:45:56 -08:00
Orhun Parmaksız
dbfb7da9e3 docs(examples): move table example to examples folder (#1657) 2025-02-06 17:45:20 -08:00
Orhun Parmaksız
cb2a58aaa0 docs(examples): move tracing example to examples folder (#1658) 2025-02-06 17:44:28 -08:00
Orhun Parmaksız
7e00b646fc docs(examples): move panic example to examples folder (#1655) 2025-02-06 17:43:18 -08:00
Orhun Parmaksız
8127590812 docs(examples): move modifiers example to examples folder (#1654) 2025-02-06 17:40:03 -08:00
Orhun Parmaksız
7c40c0bbdd docs(examples): move popup example to examples folder (#1656)
see #1512
2025-02-06 23:38:07 +03:00
Orhun Parmaksız
d87354f400 docs(examples): move list example to examples folder (#1653)
see #1512

also renames it to todo-list
2025-02-06 23:36:26 +03:00
Josh McKinney
e48bcf5f21 fix: ratatui-macros readme and doc links 2025-02-05 14:32:28 -08:00
Josh McKinney
d4415204e1 feat: add ratatui-macros crate
This crate previously lived at https://github.com/ratatui/ratatui-macros
and is now part of the ratatui mono-repo.
2025-02-05 13:20:53 -08:00
Josh McKinney
92c4078413 chore: prep for merge with ratatui
Move files under ratatui-macros folder, remove CI and husky config
2025-02-05 12:15:36 -08:00
dependabot[bot]
38a1474ca1 build(deps): bump the cargo-dependencies group across 1 directory with 3 updates (#77)
Bumps the cargo-dependencies group with 3 updates in the / directory:
[ratatui-core](https://github.com/ratatui/ratatui),
[ratatui-widgets](https://github.com/ratatui/ratatui) and
[trybuild](https://github.com/dtolnay/trybuild).

Updates `ratatui-core` from 0.1.0-alpha.0 to 0.1.0-alpha.2
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/ratatui/ratatui/commits">compare view</a></li>
</ul>
</details>
<br />

Updates `ratatui-widgets` from 0.3.0-alpha.0 to 0.3.0-alpha.1
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/ratatui/ratatui/commits">compare view</a></li>
</ul>
</details>
<br />

Updates `trybuild` from 1.0.101 to 1.0.103
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/trybuild/releases">trybuild's
releases</a>.</em></p>
<blockquote>
<h2>1.0.103</h2>
<ul>
<li>Fix unindentation of multiline note (<a
href="https://redirect.github.com/dtolnay/trybuild/issues/301">#301</a>)</li>
</ul>
<h2>1.0.102</h2>
<ul>
<li>Detect compilation failure more reliably for filepaths containing
<code>..</code> (<a
href="https://redirect.github.com/dtolnay/trybuild/issues/300">#300</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="57705cd26d"><code>57705cd</code></a>
Release 1.0.103</li>
<li><a
href="7a19ab72ad"><code>7a19ab7</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/trybuild/issues/301">#301</a>
from dtolnay/multilinenote</li>
<li><a
href="14cad05bb5"><code>14cad05</code></a>
Fix unindentation of multiline note</li>
<li><a
href="7b2e334b57"><code>7b2e334</code></a>
Add regression test for multiline note</li>
<li><a
href="2736f370e6"><code>2736f37</code></a>
Release 1.0.102</li>
<li><a
href="8c509456dd"><code>8c50945</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/trybuild/issues/300">#300</a>
from dtolnay/pathmapkey</li>
<li><a
href="b2471d5c9b"><code>b2471d5</code></a>
Canonicalize paths used as map keys</li>
<li><a
href="ddfbe47850"><code>ddfbe47</code></a>
Drop &quot;dissimilar&quot; feature, keeping only &quot;diff&quot;</li>
<li><a
href="96340263d9"><code>9634026</code></a>
Resolve unnecessary_map_or clippy lint</li>
<li><a
href="e92bf293df"><code>e92bf29</code></a>
Prevent upload-artifact step from causing CI failure</li>
<li>See full diff in <a
href="https://github.com/dtolnay/trybuild/compare/1.0.101...1.0.103">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-05 12:06:26 -08:00
Orhun Parmaksız
621226f2e2 docs(examples): move inline example to examples folder (#1651) 2025-02-05 10:20:55 -08:00
Orhun Parmaksız
9ba7d25b71 docs(examples): move hyperlink example to examples folder (#1650) 2025-02-05 10:14:24 -08:00
Orhun Parmaksız
bb94d1c0fa docs(examples): move minimal example to examples folder (#1649) 2025-02-05 10:11:57 -08:00
Björn Steinbrink
f5fc8197ff fix: avoid extra line break on whitespace only lines when wrapping paragraphs (#1636)
Currently whitespace only lines produces an extra line break when
trimming is disabled, because both the trimmed as well as the
non-trimmed line get inserted. Fix this by only inserting the
non-trimmed one.

Co-authored-by: Björn Steinbrink <b.steinbrink@demv.de>
2025-02-04 17:02:50 -08:00
Orhun Parmaksız
9f399ac7a6 docs(examples): move gauge example to examples folder (#1646) 2025-02-04 16:48:09 -08:00
Orhun Parmaksız
37a1c6f89b chore: remove some examples (#1645) 2025-02-04 16:44:13 -08:00
Orhun Parmaksız
104d6a6c2b docs(examples): move custom-widget example to examples folder (#1644) 2025-02-04 16:39:24 -08:00
Orhun Parmaksız
fa8ca0121a docs(examples): move flex example to examples folder (#1642) 2025-02-04 16:36:38 -08:00
Orhun Parmaksız
f5fde0ef53 docs(examples): move constraints example to examples folder (#1641) 2025-02-04 16:33:28 -08:00
Orhun Parmaksız
fc70288954 docs(examples): move constraint-explorer example to examples folder (#1640) 2025-02-04 16:23:12 -08:00
Orhun Parmaksız
325f96102a docs(examples): move hello-world example to examples folder (#1647) 2025-02-04 16:05:52 -08:00
Josh McKinney
867c4bc4e9 docs(examples): move colors-rgb example to examples folder (#1582)
- **docs: move colors-rgb example to examples folder**
- **docs: update main examples README**

---------

Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
2025-02-04 21:40:10 +03:00
dependabot[bot]
0b24e6c7bf chore(deps): bump serde_json from 1.0.137 to 1.0.138 (#1638)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.137 to
1.0.138.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/serde-rs/json/releases">serde_json's
releases</a>.</em></p>
<blockquote>
<h2>v1.0.138</h2>
<ul>
<li>Documentation improvements</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c916099147"><code>c916099</code></a>
Release 1.0.138</li>
<li><a
href="dc29e4815d"><code>dc29e48</code></a>
Move BufReader to caller</li>
<li><a
href="29122f9ed7"><code>29122f9</code></a>
Sort imports from PR 1237</li>
<li><a
href="d33c1b527e"><code>d33c1b5</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/json/issues/1237">#1237</a>
from JonathanBrouwer/master</li>
<li><a
href="8c2d8004b2"><code>8c2d800</code></a>
Add more warnings to apply buffering on docs of affected functions</li>
<li><a
href="65bbd1aa2d"><code>65bbd1a</code></a>
Fix example of from_reader not applying buffering when it should</li>
<li><a
href="87f78da0f5"><code>87f78da</code></a>
More precise gitignore patterns</li>
<li><a
href="4134f119c0"><code>4134f11</code></a>
Remove *.sw[po] from gitignore</li>
<li><a
href="c7626dbac2"><code>c7626db</code></a>
Remove **/*.rs.bk from project-specific gitignore</li>
<li>See full diff in <a
href="https://github.com/serde-rs/json/compare/v1.0.137...v1.0.138">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_json&package-manager=cargo&previous-version=1.0.137&new-version=1.0.138)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-04 11:22:14 +03:00
Luca Vivona
f907c74bb3 docs(license): update copyright years (#1639)
Update MIT Licence to copyright year 2025
2025-02-04 11:18:02 +03:00
Orhun Parmaksız
d045305c67 chore(deps): bump rand and rand_chacha (#1633)
<https://rust-random.github.io/book/update-0.9.html>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-29 14:13:35 -08:00
dependabot[bot]
7a308c2090 chore(deps): bump dawidd6/action-download-artifact from 7 to 8 (#1631)
Bumps
[dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact)
from 7 to 8.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dawidd6/action-download-artifact/releases">dawidd6/action-download-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v8</h2>
<h2>New features</h2>
<ul>
<li><code>use_unzip</code> boolean input (defaulting to false) - if set
to true, the action will use system provided <code>unzip</code> utility
for unpacking downloaded artifact(s) (note that the action will first
download the .zip artifact file, then unpack it and remove the .zip
file)</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>README: v7 by <a
href="https://github.com/haines"><code>@​haines</code></a> in <a
href="https://redirect.github.com/dawidd6/action-download-artifact/pull/318">dawidd6/action-download-artifact#318</a></li>
<li>Unzip by <a
href="https://github.com/dawidd6"><code>@​dawidd6</code></a> in <a
href="https://redirect.github.com/dawidd6/action-download-artifact/pull/325">dawidd6/action-download-artifact#325</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/haines"><code>@​haines</code></a> made
their first contribution in <a
href="https://redirect.github.com/dawidd6/action-download-artifact/pull/318">dawidd6/action-download-artifact#318</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/dawidd6/action-download-artifact/compare/v7...v8">https://github.com/dawidd6/action-download-artifact/compare/v7...v8</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="20319c5641"><code>20319c5</code></a>
README: v8</li>
<li><a
href="e58a9e5d14"><code>e58a9e5</code></a>
Unzip (<a
href="https://redirect.github.com/dawidd6/action-download-artifact/issues/325">#325</a>)</li>
<li><a
href="6d05268723"><code>6d05268</code></a>
node_modules: update</li>
<li><a
href="c03fb0c928"><code>c03fb0c</code></a>
README: v7 (<a
href="https://redirect.github.com/dawidd6/action-download-artifact/issues/318">#318</a>)</li>
<li>See full diff in <a
href="https://github.com/dawidd6/action-download-artifact/compare/v7...v8">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=dawidd6/action-download-artifact&package-manager=github_actions&previous-version=7&new-version=8)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-29 21:01:57 +03:00
dependabot[bot]
24e71ab6ce chore(deps): bump clap from 4.5.26 to 4.5.27 (#1630)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.26 to 4.5.27.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/releases">clap's
releases</a>.</em></p>
<blockquote>
<h2>v4.5.27</h2>
<h2>[4.5.27] - 2025-01-20</h2>
<h3>Documentation</h3>
<ul>
<li>Iterate on tutorials and reference based on feedback</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's
changelog</a>.</em></p>
<blockquote>
<h2>[4.5.27] - 2025-01-20</h2>
<h3>Documentation</h3>
<ul>
<li>Iterate on tutorials and reference based on feedback</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="21c9892efe"><code>21c9892</code></a>
chore: Release</li>
<li><a
href="0c8bceb3e9"><code>0c8bceb</code></a>
docs: Update changelog</li>
<li><a
href="d8f102a18c"><code>d8f102a</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5732">#5732</a>
from epage/consistent</li>
<li><a
href="c92fca3a8f"><code>c92fca3</code></a>
docs(complete): Clarify CompleteEnv's Shell trait</li>
<li><a
href="5ca60e9079"><code>5ca60e9</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5731">#5731</a>
from epage/bash</li>
<li><a
href="5d7c16c60e"><code>5d7c16c</code></a>
fix(complete): Adjust how IFS is passed to clap</li>
<li>See full diff in <a
href="https://github.com/clap-rs/clap/compare/clap_complete-v4.5.26...clap_complete-v4.5.27">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.5.26&new-version=4.5.27)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-29 00:08:51 +03:00
Alex Pasmantier
1f41a61008 perf(paragraph): avoid unnecessary work when rendering (#1622)
Improve render times for paragraphs that are scrolled.

Currently all `LineComposer`s are considered to be state machines which
means rendering a paragraph with a given Y offset requires computing the
entire state up to Y before being able to render from Y onwards.

While this makes sense for Composers such as the `WordWrapper` (where
one needs to consider all previous lines to determine where a given line
will end up), it means it also penalizes Composers which can render a
given line "statelessely" (such as the `LineTruncator`) which actually
end up doing a lot of unnecessary work (and on the critical rendering
path) when the offset gets high.

Co-authored-by: Josh McKinney <joshka@users.noreply.github.com>
2025-01-23 13:52:52 -08:00
Jens Krause
7ad9c29eac feat(linegauge): customized symbols (#1601)
With this PR any symbol (`&str`) can be used to render `filled` and
`unfilled` parts of `LineGauge` now. Before that change, only
[`symbols::line::Set`](https://docs.rs/ratatui/latest/ratatui/symbols/line/struct.Set.html)
was accepted.

Note: New methods are introduced to define those symbols:
`filled_symbol` and `unfilled_symbol`. The method
[`line_set`](https://docs.rs/ratatui/latest/ratatui/widgets/struct.LineGauge.html#method.line_set)
is still there, but marked as `deprecated`.

![line_gauge](https://github.com/user-attachments/assets/cae308b8-151b-461d-8af6-9a20012adf2f)
2025-01-22 19:56:22 -08:00
dependabot[bot]
a0a37008da chore(deps): bump serde_json from 1.0.135 to 1.0.137 (#1625)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.135 to
1.0.137.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/serde-rs/json/releases">serde_json's
releases</a>.</em></p>
<blockquote>
<h2>v1.0.137</h2>
<ul>
<li>Turn on &quot;float_roundtrip&quot; and &quot;unbounded_depth&quot;
features for serde_json in play.rust-lang.org (<a
href="https://redirect.github.com/serde-rs/json/issues/1231">#1231</a>)</li>
</ul>
<h2>v1.0.136</h2>
<ul>
<li>Optimize serde_json::value::Serializer::serialize_map by using
Map::with_capacity (<a
href="https://redirect.github.com/serde-rs/json/issues/1230">#1230</a>,
thanks <a
href="https://github.com/goffrie"><code>@​goffrie</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="eb49e28204"><code>eb49e28</code></a>
Release 1.0.137</li>
<li><a
href="51c48ab3b0"><code>51c48ab</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/json/issues/1231">#1231</a>
from dtolnay/playground</li>
<li><a
href="7d8f15b963"><code>7d8f15b</code></a>
Enable &quot;float_roundtrip&quot; and &quot;unbounded_depth&quot;
features in playground</li>
<li><a
href="a46f14cf2e"><code>a46f14c</code></a>
Release 1.0.136</li>
<li><a
href="eb9f3f6387"><code>eb9f3f6</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/json/issues/1230">#1230</a>
from goffrie/patch-1</li>
<li><a
href="513e5b2f74"><code>513e5b2</code></a>
Use Map::with_capacity in value::Serializer::serialize_map</li>
<li>See full diff in <a
href="https://github.com/serde-rs/json/compare/v1.0.135...v1.0.137">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_json&package-manager=cargo&previous-version=1.0.135&new-version=1.0.137)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-20 18:43:04 +03:00
dependabot[bot]
fd08d5b541 chore(deps): bump octocrab from 0.42.1 to 0.43.0 (#1624)
Bumps [octocrab](https://github.com/XAMPPRocky/octocrab) from 0.42.1 to
0.43.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/XAMPPRocky/octocrab/releases">octocrab's
releases</a>.</em></p>
<blockquote>
<h2>v0.43.0</h2>
<h3>Other</h3>
<ul>
<li>Enable client reuse when authenticating via a Github app using user
access tokens (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/740">#740</a>)</li>
<li>[<strong>breaking</strong>] Box the github error &amp; fix clippy
lints (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/743">#743</a>)</li>
<li>issues can now be closed as <code>duplicate</code> (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/741">#741</a>)</li>
<li>Add &quot;merged&quot; field to PullRequest (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/737">#737</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/XAMPPRocky/octocrab/blob/main/CHANGELOG.md">octocrab's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/XAMPPRocky/octocrab/compare/v0.42.1...v0.43.0">0.43.0</a>
- 2025-01-13</h2>
<h3>Other</h3>
<ul>
<li>Enable client reuse when authenticating via a Github app using user
access tokens (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/740">#740</a>)</li>
<li>[<strong>breaking</strong>] Box the github error &amp; fix clippy
lints (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/743">#743</a>)</li>
<li>issues can now be closed as <code>duplicate</code> (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/741">#741</a>)</li>
<li>Add &quot;merged&quot; field to PullRequest (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/737">#737</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ce8c885dc2"><code>ce8c885</code></a>
chore: release v0.43.0 (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/739">#739</a>)</li>
<li><a
href="410625159b"><code>4106251</code></a>
Enable client reuse when authenticating via a Github app using user
access to...</li>
<li><a
href="65489d6eb4"><code>65489d6</code></a>
chore!: Box the github error &amp; fix clippy lints (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/743">#743</a>)</li>
<li><a
href="a9167147b6"><code>a916714</code></a>
issues can now be closed as <code>duplicate</code> (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/741">#741</a>)</li>
<li><a
href="fae5b08916"><code>fae5b08</code></a>
Add &quot;merged&quot; field to PullRequest (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/737">#737</a>)</li>
<li>See full diff in <a
href="https://github.com/XAMPPRocky/octocrab/compare/v0.42.1...v0.43.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=octocrab&package-manager=cargo&previous-version=0.42.1&new-version=0.43.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-20 18:42:47 +03:00
dependabot[bot]
9e319b92b2 chore(deps): bump DavidAnson/markdownlint-cli2-action from 18 to 19 (#1623)
Bumps
[DavidAnson/markdownlint-cli2-action](https://github.com/davidanson/markdownlint-cli2-action)
from 18 to 19.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/davidanson/markdownlint-cli2-action/releases">DavidAnson/markdownlint-cli2-action's
releases</a>.</em></p>
<blockquote>
<h2>Update markdownlint version (markdownlint-cli2 v0.17.2, markdownlint
v0.37.4).</h2>
<p>No release notes provided.</p>
<h2>Update markdownlint version (markdownlint-cli2 v0.17.0, markdownlint
v0.37.0).</h2>
<p>No release notes provided.</p>
<h2>Update markdownlint version (markdownlint-cli2 v0.15.0, markdownlint
v0.36.1).</h2>
<p>No release notes provided.</p>
<h2>Update markdownlint version (markdownlint-cli2 v0.14.0, markdownlint
v0.35.0).</h2>
<p>No release notes provided.</p>
<h2>Update markdownlint version (markdownlint-cli2 v0.13.0, markdownlint
v0.34.0).</h2>
<p>No release notes provided.</p>
<p>Update markdownlint version (markdownlint-cli2 v0.12.1, markdownlint
v0.33.0).</p>
<h2>Update markdownlint version (markdownlint-cli2 v0.11.0, markdownlint
v0.32.1), remove deprecated &quot;command&quot; input.</h2>
<p>No release notes provided.</p>
<h2>Update markdownlint version (markdownlint-cli2 v0.10.0, markdownlint
v0.31.1).</h2>
<p>No release notes provided.</p>
<h2>Update markdownlint version (markdownlint-cli2 v0.9.2, markdownlint
v0.30.0).</h2>
<p>No release notes provided.</p>
<h2>Update markdownlint version (markdownlint-cli2 v0.8.1, markdownlint
v0.29.0), add &quot;config&quot; and &quot;fix&quot; inputs, deprecate
&quot;command&quot; input.</h2>
<p>No release notes provided.</p>
<h2>Update markdownlint version (markdownlint-cli2 v0.7.1, markdownlint
v0.28.2).</h2>
<p>No release notes provided.</p>
<h2>Update markdownlint version (markdownlint-cli2 v0.7.0, markdownlint
v0.28.1), include link to rule information in title of annotations
(clickable in GitHub).</h2>
<p>No release notes provided.</p>
<h2>Update markdownlint version (markdownlint-cli2 v0.6.0, markdownlint
v0.27.0).</h2>
<p>No release notes provided.</p>
<h2>Update markdownlint version (markdownlint-cli2 v0.5.1, markdownlint
v0.26.2).</h2>
<p>No release notes provided.</p>
<h2>Update markdownlint version (markdownlint-cli2 v0.4.0, markdownlint
v0.25.1)</h2>
<p>No release notes provided.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="05f32210e8"><code>05f3221</code></a>
Update to version 19.1.0.</li>
<li><a
href="1d17f9bb81"><code>1d17f9b</code></a>
Add tests for custom rules (markdown-it and micromark) with no errors
and err...</li>
<li><a
href="51527aa3e5"><code>51527aa</code></a>
Freshen generated index.js file.</li>
<li><a
href="e537c98f77"><code>e537c98</code></a>
Bump markdownlint-cli2 from 0.17.1 to 0.17.2</li>
<li><a
href="c0be6188d6"><code>c0be618</code></a>
Bump eslint from 9.17.0 to 9.18.0</li>
<li><a
href="5ed1ce51e3"><code>5ed1ce5</code></a>
Bump <code>@​eslint/js</code> from 9.17.0 to 9.18.0</li>
<li><a
href="502fa0bb7d"><code>502fa0b</code></a>
Bump <code>@​stylistic/eslint-plugin</code> from 2.12.1 to 2.13.0</li>
<li><a
href="49e5884463"><code>49e5884</code></a>
Freshen generated index.js file.</li>
<li><a
href="a30a754947"><code>a30a754</code></a>
Freshen generated index.js file.</li>
<li><a
href="a662b8af10"><code>a662b8a</code></a>
Bump markdownlint-cli2 from 0.17.0 to 0.17.1</li>
<li>Additional commits viewable in <a
href="https://github.com/davidanson/markdownlint-cli2-action/compare/v18...v19">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=DavidAnson/markdownlint-cli2-action&package-manager=github_actions&previous-version=18&new-version=19)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-20 18:42:24 +03:00
Théo Tchilinguirian
985cd05573 feat(symbols): add dashed borders (#1573)
Adds several new border sets:
- ratatui::symbols::border::LIGHT_DOUBLE_DASHED
- ratatui::symbols::border::HEAVY_DOUBLE_DASHED
- ratatui::symbols::border::LIGHT_TRIPLE_DASHED
- ratatui::symbols::border::HEAVY_TRIPLE_DASHED
- ratatui::symbols::border::LIGHT_QUADRUPLE_DASHED
- ratatui::symbols::border::HEAVY_QUADRUPLE_DASHED

And corresponding variants to the ratatui::widgets::BorderType enum

Fixes: https://github.com/ratatui/ratatui/issues/1355
Signed-off-by: Théo Tchilinguirian <theo.tchlx@gmail.com>
2025-01-20 00:36:19 -08:00
Josh McKinney
57c2326574 ci: run cargo-deny directly rather than via action (#1621)
Improves CI time
2025-01-17 01:40:54 -08:00
Josh McKinney
a195d59a47 refactor: move xtask commands to small modules (#1620) 2025-01-17 01:40:22 -08:00
Josh McKinney
e7831aedd4 chore: release 0.30.0-alpha.1 (#1618)
Versions:

```
ratatui = { path = "ratatui", version = "0.30.0-alpha.1" }
ratatui-core = { path = "ratatui-core", version = "0.1.0-alpha.2" }
ratatui-crossterm = { path = "ratatui-crossterm", version = "0.1.0-alpha.1" }
ratatui-termion = { path = "ratatui-termion", version = "0.1.0-alpha.1" }
ratatui-termwiz = { path = "ratatui-termwiz", version = "0.1.0-alpha.1" }
ratatui-widgets = { path = "ratatui-widgets", version = "0.3.0-alpha.1" }
```
2025-01-15 15:31:38 -08:00
Josh McKinney
4a871f993e ci: refactor xtask / toml formatting (#1602)
- format toml files using taplo
- add toml formatting check to CI
- use xtask consistently from bacon
- refactor xtask commands to take params instead of multiple commands
2025-01-14 14:20:05 -08:00
Josh McKinney
da05957fa0 docs: add widget-ref-container example (#1603)
Implements ideas alluded to by
<https://discord.com/channels/1070692720437383208/1072907135664529508/1323061053990637640>
and followup conversations.
2025-01-14 14:05:58 -08:00
dependabot[bot]
41d883da7a chore(deps): bump serde_json from 1.0.134 to 1.0.135 (#1614)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.134 to
1.0.135.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/serde-rs/json/releases">serde_json's
releases</a>.</em></p>
<blockquote>
<h2>v1.0.135</h2>
<ul>
<li>Add serde_json::Map::into_values method (<a
href="https://redirect.github.com/serde-rs/json/issues/1226">#1226</a>,
thanks <a
href="https://github.com/tisonkun"><code>@​tisonkun</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="9802c08d4e"><code>9802c08</code></a>
Release 1.0.135</li>
<li><a
href="b97935fde2"><code>b97935f</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/json/issues/1226">#1226</a>
from tisonkun/map-into-values</li>
<li><a
href="d48c224d12"><code>d48c224</code></a>
Add Map::into_values method</li>
<li><a
href="1e77cac742"><code>1e77cac</code></a>
Resolve precedence clippy lint</li>
<li>See full diff in <a
href="https://github.com/serde-rs/json/compare/v1.0.134...v1.0.135">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_json&package-manager=cargo&previous-version=1.0.134&new-version=1.0.135)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-14 20:31:20 +03:00
dependabot[bot]
0552223511 chore(deps): bump rstest from 0.23.0 to 0.24.0 (#1610)
Bumps [rstest](https://github.com/la10736/rstest) from 0.23.0 to 0.24.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/la10736/rstest/releases">rstest's
releases</a>.</em></p>
<blockquote>
<h2>0.24.0</h2>
<h2>What's Changed</h2>
<ul>
<li>refactor: use <code>core</code> instead of <code>std</code> by <a
href="https://github.com/rnbguy"><code>@​rnbguy</code></a> in <a
href="https://redirect.github.com/la10736/rstest/pull/283">la10736/rstest#283</a></li>
<li>Fix msrv and complete no_std support by <a
href="https://github.com/la10736"><code>@​la10736</code></a> in <a
href="https://redirect.github.com/la10736/rstest/pull/285">la10736/rstest#285</a></li>
<li>replace futures with futures-util by <a
href="https://github.com/mati865"><code>@​mati865</code></a> in <a
href="https://redirect.github.com/la10736/rstest/pull/288">la10736/rstest#288</a></li>
<li>Introduce Context by <a
href="https://github.com/la10736"><code>@​la10736</code></a> in <a
href="https://redirect.github.com/la10736/rstest/pull/289">la10736/rstest#289</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/rnbguy"><code>@​rnbguy</code></a> made
their first contribution in <a
href="https://redirect.github.com/la10736/rstest/pull/283">la10736/rstest#283</a></li>
<li><a href="https://github.com/mati865"><code>@​mati865</code></a> made
their first contribution in <a
href="https://redirect.github.com/la10736/rstest/pull/288">la10736/rstest#288</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/la10736/rstest/compare/v0.23.0...v0.24.0">https://github.com/la10736/rstest/compare/v0.23.0...v0.24.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/la10736/rstest/blob/master/CHANGELOG.md">rstest's
changelog</a>.</em></p>
<blockquote>
<h2>[0.24.0] 2025/1/1</h2>
<h3>Changed</h3>
<ul>
<li>MSRV to 1.70.0 (see <a
href="https://redirect.github.com/la10736/rstest/issues/284">#284</a>
thanks to <a
href="https://github.com/rnbguy"><code>@​rnbguy</code></a>)</li>
</ul>
<h3>Add</h3>
<ul>
<li><code>#![no_std]</code> support: now you can use <code>rstest</code>
also in <code>no_std</code> lib
(see <a
href="https://redirect.github.com/la10736/rstest/issues/282">#282</a>
thanks to <a
href="https://github.com/rnbguy"><code>@​rnbguy</code></a>)</li>
<li><code>#[context]</code> to have test function name and other useful
thighs on
the tip of your fingers (see <a
href="https://redirect.github.com/la10736/rstest/issues/177">#177</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d57af90f16"><code>d57af90</code></a>
Prepare release</li>
<li><a
href="dfc4ff0e42"><code>dfc4ff0</code></a>
Make clippy happy</li>
<li><a
href="01140c13a1"><code>01140c1</code></a>
Docs and changelog</li>
<li><a
href="4a9763f2fe"><code>4a9763f</code></a>
1. Test also matrix case</li>
<li><a
href="d77d7c6a48"><code>d77d7c6</code></a>
Base implementation</li>
<li><a
href="7792a9b7bc"><code>7792a9b</code></a>
Add the ability to run CI test on demand</li>
<li><a
href="11869b587c"><code>11869b5</code></a>
Don't add channel if the env is not provided explicitly.</li>
<li><a
href="9a78bfb78f"><code>9a78bfb</code></a>
replace futures with futures-util</li>
<li><a
href="88f9c2ef6f"><code>88f9c2e</code></a>
<a href="https://redirect.github.com/la10736/rstest/issues/282">#282</a>
: add e2e test, cover also the once fixture case and add cheange log
lines</li>
<li><a
href="cb5db35f26"><code>cb5db35</code></a>
Close <a
href="https://redirect.github.com/la10736/rstest/issues/284">#284</a>
and add a test to check msrv on rendered code.</li>
<li>Additional commits viewable in <a
href="https://github.com/la10736/rstest/compare/v0.23.0...v0.24.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rstest&package-manager=cargo&previous-version=0.23.0&new-version=0.24.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-14 20:31:03 +03:00
dependabot[bot]
21a561b1b3 chore(deps): bump tokio from 1.42.0 to 1.43.0 (#1613)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.42.0 to 1.43.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/tokio/releases">tokio's
releases</a>.</em></p>
<blockquote>
<h2>Tokio v1.43.0</h2>
<h1>1.43.0 (Jan 8th, 2025)</h1>
<h3>Added</h3>
<ul>
<li>net: add <code>UdpSocket::peek</code> methods (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7068">#7068</a>)</li>
<li>net: add support for Haiku OS (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7042">#7042</a>)</li>
<li>process: add <code>Command::into_std()</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7014">#7014</a>)</li>
<li>signal: add <code>SignalKind::info</code> on illumos (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6995">#6995</a>)</li>
<li>signal: add support for realtime signals on illumos (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7029">#7029</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>io: don't call <code>set_len</code> before initializing vector in
<code>Blocking</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7054">#7054</a>)</li>
<li>macros: suppress <code>clippy::needless_return</code> in
<code>#[tokio::main]</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6874">#6874</a>)</li>
<li>runtime: fix thread parking on WebAssembly (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7041">#7041</a>)</li>
</ul>
<h3>Changes</h3>
<ul>
<li>chore: use unsync loads for <code>unsync_load</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7073">#7073</a>)</li>
<li>io: use <code>Buf::put_bytes</code> in <code>Repeat</code> read impl
(<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7055">#7055</a>)</li>
<li>task: drop the join waker of a task eagerly (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6986">#6986</a>)</li>
</ul>
<h3>Changes to unstable APIs</h3>
<ul>
<li>metrics: improve flexibility of H2Histogram Configuration (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6963">#6963</a>)</li>
<li>taskdump: add accessor methods for backtrace (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6975">#6975</a>)</li>
</ul>
<h3>Documented</h3>
<ul>
<li>io: clarify <code>ReadBuf::uninit</code> allows initialized buffers
as well (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7053">#7053</a>)</li>
<li>net: fix ambiguity in <code>TcpStream::try_write_vectored</code>
docs (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7067">#7067</a>)</li>
<li>runtime: fix <code>LocalRuntime</code> doc links (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7074">#7074</a>)</li>
<li>sync: extend documentation for
<code>watch::Receiver::wait_for</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7038">#7038</a>)</li>
<li>sync: fix typos in <code>OnceCell</code> docs (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7047">#7047</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/tokio/issues/6874">#6874</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/6874">tokio-rs/tokio#6874</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6963">#6963</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/6963">tokio-rs/tokio#6963</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6975">#6975</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/6975">tokio-rs/tokio#6975</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6986">#6986</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/6986">tokio-rs/tokio#6986</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6995">#6995</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/6995">tokio-rs/tokio#6995</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7014">#7014</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7014">tokio-rs/tokio#7014</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7029">#7029</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7029">tokio-rs/tokio#7029</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7038">#7038</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7038">tokio-rs/tokio#7038</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7041">#7041</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7041">tokio-rs/tokio#7041</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7042">#7042</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7042">tokio-rs/tokio#7042</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7047">#7047</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7047">tokio-rs/tokio#7047</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7053">#7053</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7053">tokio-rs/tokio#7053</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7054">#7054</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7054">tokio-rs/tokio#7054</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7055">#7055</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7055">tokio-rs/tokio#7055</a></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5f3296df77"><code>5f3296d</code></a>
chore: prepare Tokio v1.43.0 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7079">#7079</a>)</li>
<li><a
href="cc974a646b"><code>cc974a6</code></a>
chore: prepare tokio-macros v2.5.0 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7078">#7078</a>)</li>
<li><a
href="15495fd883"><code>15495fd</code></a>
metrics: improve flexibility of H2Histogram Configuration (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6963">#6963</a>)</li>
<li><a
href="ad4183412a"><code>ad41834</code></a>
io: don't call <code>set_len</code> before initializing vector in
<code>Blocking</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7054">#7054</a>)</li>
<li><a
href="bd3e857737"><code>bd3e857</code></a>
runtime: move <code>is_join_waker_set</code> assertion in
<code>unset_waker</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7072">#7072</a>)</li>
<li><a
href="15f73666f1"><code>15f7366</code></a>
runtime: fix <code>LocalRuntime</code> doc links (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7074">#7074</a>)</li>
<li><a
href="fd2048dad1"><code>fd2048d</code></a>
ci: split miri jobs into unit and integration tests (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7071">#7071</a>)</li>
<li><a
href="e8f39157b6"><code>e8f3915</code></a>
chore: use unsync loads for <code>unsync_load</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7073">#7073</a>)</li>
<li><a
href="67f127769b"><code>67f1277</code></a>
net: fix ambiguity in <code>TcpStream::try_write_vectored</code> docs
(<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7067">#7067</a>)</li>
<li><a
href="463502cbaf"><code>463502c</code></a>
io: clarify <code>ReadBuf::uninit</code> allows initialized buffers as
well (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7053">#7053</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tokio-rs/tokio/compare/tokio-1.42.0...tokio-1.43.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tokio&package-manager=cargo&previous-version=1.42.0&new-version=1.43.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-13 13:18:16 -08:00
dependabot[bot]
079d74ce14 chore(deps): bump bitflags from 2.6.0 to 2.7.0 (#1615)
Bumps [bitflags](https://github.com/bitflags/bitflags) from 2.6.0 to
2.7.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/bitflags/bitflags/releases">bitflags's
releases</a>.</em></p>
<blockquote>
<h2>2.7.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix <code>clippy::doc_lazy_continuation</code> lints by <a
href="https://github.com/waywardmonkeys"><code>@​waywardmonkeys</code></a>
in <a
href="https://redirect.github.com/bitflags/bitflags/pull/414">bitflags/bitflags#414</a></li>
<li>Run clippy on extra features in CI. by <a
href="https://github.com/waywardmonkeys"><code>@​waywardmonkeys</code></a>
in <a
href="https://redirect.github.com/bitflags/bitflags/pull/415">bitflags/bitflags#415</a></li>
<li>Fix CI: trybuild refresh, allow some clippy restrictions. by <a
href="https://github.com/waywardmonkeys"><code>@​waywardmonkeys</code></a>
in <a
href="https://redirect.github.com/bitflags/bitflags/pull/417">bitflags/bitflags#417</a></li>
<li>Update zerocopy version in example by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/422">bitflags/bitflags#422</a></li>
<li>Add method to check if unknown bits are set by <a
href="https://github.com/wysiwys"><code>@​wysiwys</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/426">bitflags/bitflags#426</a></li>
<li>Update error messages by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/427">bitflags/bitflags#427</a></li>
<li>Add <code>truncate(&amp;mut self)</code> method to unset unknown
bits by <a href="https://github.com/wysiwys"><code>@​wysiwys</code></a>
in <a
href="https://redirect.github.com/bitflags/bitflags/pull/428">bitflags/bitflags#428</a></li>
<li>Update error messages by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/429">bitflags/bitflags#429</a></li>
<li>Prepare for 2.7.0 release by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/430">bitflags/bitflags#430</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/wysiwys"><code>@​wysiwys</code></a> made
their first contribution in <a
href="https://redirect.github.com/bitflags/bitflags/pull/426">bitflags/bitflags#426</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/bitflags/bitflags/compare/2.6.0...2.7.0">https://github.com/bitflags/bitflags/compare/2.6.0...2.7.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md">bitflags's
changelog</a>.</em></p>
<blockquote>
<h1>2.7.0</h1>
<h2>What's Changed</h2>
<ul>
<li>Fix <code>clippy::doc_lazy_continuation</code> lints by <a
href="https://github.com/waywardmonkeys"><code>@​waywardmonkeys</code></a>
in <a
href="https://redirect.github.com/bitflags/bitflags/pull/414">bitflags/bitflags#414</a></li>
<li>Run clippy on extra features in CI. by <a
href="https://github.com/waywardmonkeys"><code>@​waywardmonkeys</code></a>
in <a
href="https://redirect.github.com/bitflags/bitflags/pull/415">bitflags/bitflags#415</a></li>
<li>Fix CI: trybuild refresh, allow some clippy restrictions. by <a
href="https://github.com/waywardmonkeys"><code>@​waywardmonkeys</code></a>
in <a
href="https://redirect.github.com/bitflags/bitflags/pull/417">bitflags/bitflags#417</a></li>
<li>Update zerocopy version in example by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/422">bitflags/bitflags#422</a></li>
<li>Add method to check if unknown bits are set by <a
href="https://github.com/wysiwys"><code>@​wysiwys</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/426">bitflags/bitflags#426</a></li>
<li>Update error messages by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/427">bitflags/bitflags#427</a></li>
<li>Add <code>truncate(&amp;mut self)</code> method to unset unknown
bits by <a href="https://github.com/wysiwys"><code>@​wysiwys</code></a>
in <a
href="https://redirect.github.com/bitflags/bitflags/pull/428">bitflags/bitflags#428</a></li>
<li>Update error messages by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/429">bitflags/bitflags#429</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/wysiwys"><code>@​wysiwys</code></a> made
their first contribution in <a
href="https://redirect.github.com/bitflags/bitflags/pull/426">bitflags/bitflags#426</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/bitflags/bitflags/compare/2.6.0...2.7.0">https://github.com/bitflags/bitflags/compare/2.6.0...2.7.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="10b9fd3a9e"><code>10b9fd3</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/430">#430</a>
from bitflags/cargo/2.7.0</li>
<li><a
href="137485a2c2"><code>137485a</code></a>
prepare for 2.7.0 release</li>
<li><a
href="6c0dfa4a0c"><code>6c0dfa4</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/429">#429</a>
from bitflags/fix/err-msgs-2</li>
<li><a
href="451fdf4778"><code>451fdf4</code></a>
update rust before building</li>
<li><a
href="f5ac5b14e5"><code>f5ac5b1</code></a>
update error messages</li>
<li><a
href="30901e6dee"><code>30901e6</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/428">#428</a>
from wysiwys/main</li>
<li><a
href="7b9ecab84d"><code>7b9ecab</code></a>
add <code>truncate(&amp;mut self)</code> method to unset unknown
bits</li>
<li><a
href="85983a4b1c"><code>85983a4</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/427">#427</a>
from bitflags/ci/error-msgs</li>
<li><a
href="f00779337d"><code>f007793</code></a>
remove match case</li>
<li><a
href="6ebcd190a2"><code>6ebcd19</code></a>
add test case for match statement</li>
<li>Additional commits viewable in <a
href="https://github.com/bitflags/bitflags/compare/2.6.0...2.7.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=bitflags&package-manager=cargo&previous-version=2.6.0&new-version=2.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-13 13:17:41 -08:00
dependabot[bot]
22ec4f7414 chore(deps): bump instability from 0.3.6 to 0.3.7 (#1616)
Bumps [instability](https://github.com/ratatui-org/instability) from
0.3.6 to 0.3.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ratatui-org/instability/releases">instability's
releases</a>.</em></p>
<blockquote>
<h2>instability-example-v0.3.7</h2>
<h3>Other</h3>
<ul>
<li>Add #[allow(unused_imports)] lint to unstable reexports (<a
href="https://redirect.github.com/ratatui/instability/pull/21">#21</a>)</li>
</ul>
<h2>instability-v0.3.7</h2>
<h3>Other</h3>
<ul>
<li>Add #[allow(unused_imports)] lint to unstable reexports (<a
href="https://redirect.github.com/ratatui/instability/pull/21">#21</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ratatui/instability/blob/main/CHANGELOG.md">instability's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/ratatui/instability/compare/instability-v0.3.6...instability-v0.3.7">0.3.7</a>
- 2025-01-10</h2>
<h3>Other</h3>
<ul>
<li>Add #[allow(unused_imports)] lint to unstable reexports (<a
href="https://redirect.github.com/ratatui/instability/pull/21">#21</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c9ae88731b"><code>c9ae887</code></a>
chore: release v0.3.7 (<a
href="https://redirect.github.com/ratatui-org/instability/issues/22">#22</a>)</li>
<li><a
href="cf3e49aa16"><code>cf3e49a</code></a>
Add #[allow(unused_imports)] lint to unstable reexports (<a
href="https://redirect.github.com/ratatui-org/instability/issues/21">#21</a>)</li>
<li>See full diff in <a
href="https://github.com/ratatui-org/instability/compare/instability-v0.3.6...instability-v0.3.7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=instability&package-manager=cargo&previous-version=0.3.6&new-version=0.3.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-13 13:16:24 -08:00
Josh McKinney
6f213191ef chore: rename examples with clashing names (#1597)
These will eventually be moved / consolidated elsewhere, but this clears
the warnings while building for now.
2025-01-11 00:10:54 +03:00
Josh McKinney
088aac136d docs(readme): tweak links and badges (#1598) 2025-01-11 00:06:52 +03:00
Josh McKinney
a692a6e371 fix(lint): apply rust 1.84 clippy suggestions (#1612)
The canvas map constants are now statics instead.
Fixes
https://rust-lang.github.io/rust-clippy/master/index.html\#large_const_arrays
2025-01-10 23:17:07 +03:00
dawe
1798512e94 docs: fix wording in user_input example (#1611)
Fix wording in `user_input.rs` example.
2025-01-07 19:25:47 +03:00
dependabot[bot]
32f3833a6d chore(deps): bump clap-cargo from 0.14.1 to 0.15.1 (#1608)
Bumps [clap-cargo](https://github.com/crate-ci/clap-cargo) from 0.14.1
to 0.15.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/clap-cargo/blob/master/CHANGELOG.md">clap-cargo's
changelog</a>.</em></p>
<blockquote>
<h2>[0.15.1] - 2025-01-03</h2>
<h3>Fix</h3>
<ul>
<li>Reduce <code>Cargo.lock</code> content</li>
</ul>
<h2>[0.15.0] - 2025-01-02</h2>
<h3>Breaking Changes</h3>
<ul>
<li>Upgraded <code>cargo_metadata</code> to 0.19</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3eadd0f476"><code>3eadd0f</code></a>
chore: Release clap-cargo version 0.15.1</li>
<li><a
href="427af69642"><code>427af69</code></a>
docs: Update changelog</li>
<li><a
href="a37548f05b"><code>a37548f</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/clap-cargo/issues/79">#79</a>
from dtolnay-contrib/deps</li>
<li><a
href="80914f3015"><code>80914f3</code></a>
chore: Omit serde/serde_json from lockfiles not using
cargo_metadata</li>
<li><a
href="9b76d52f24"><code>9b76d52</code></a>
chore: Release clap-cargo version 0.15.0</li>
<li><a
href="bb2590c3af"><code>bb2590c</code></a>
docs: Update changelog</li>
<li><a
href="b44569a3ce"><code>b44569a</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/clap-cargo/issues/78">#78</a>
from epage/renovate/cargo_metadata-0.x</li>
<li><a
href="28a8c00d3f"><code>28a8c00</code></a>
chore(deps)!: Update Rust crate cargo_metadata to 0.19</li>
<li><a
href="4f485ee5de"><code>4f485ee</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/clap-cargo/issues/77">#77</a>
from crate-ci/renovate/stable-1.x</li>
<li><a
href="cfe5cacab3"><code>cfe5cac</code></a>
chore(deps): Update dependency STABLE to v1.83.0</li>
<li>Additional commits viewable in <a
href="https://github.com/crate-ci/clap-cargo/compare/v0.14.1...v0.15.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap-cargo&package-manager=cargo&previous-version=0.14.1&new-version=0.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-06 18:25:23 +03:00
dependabot[bot]
2ccc40e116 chore(deps): bump instability from 0.3.5 to 0.3.6 (#1609)
Bumps [instability](https://github.com/ratatui-org/instability) from
0.3.5 to 0.3.6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ratatui-org/instability/releases">instability's
releases</a>.</em></p>
<blockquote>
<h2>instability-example-v0.3.6</h2>
<h3>Added</h3>
<ul>
<li>Allow marking impl blocks unstable/stable (<a
href="https://redirect.github.com/ratatui-org/instability/issues/15">#15</a>)</li>
<li>add stable macro (<a
href="https://redirect.github.com/ratatui-org/instability/issues/14">#14</a>)</li>
<li>use doc(cfg)</li>
<li>allow use statements to be marked unstable (<a
href="https://redirect.github.com/ratatui-org/instability/issues/3">#3</a>)</li>
</ul>
<h3>Other</h3>
<ul>
<li>prepare instability-example for publish (<a
href="https://redirect.github.com/ratatui-org/instability/issues/18">#18</a>)</li>
<li>bump msrv to 1.63</li>
<li>tweak doc wording and formatting (<a
href="https://redirect.github.com/ratatui-org/instability/issues/4">#4</a>)</li>
<li>fork and change name to instabilty</li>
<li>Apply visibility restriction to struct fields (<a
href="https://redirect.github.com/ratatui/instability/pull/10">#10</a>)</li>
<li>Update to Rust edition 2021 (<a
href="https://redirect.github.com/ratatui/instability/pull/9">#9</a>)</li>
<li>Add issue tracking</li>
<li>Initial version</li>
</ul>
<h2>instability-v0.3.6</h2>
<h3>Other</h3>
<ul>
<li>Move pretty_assertions to dev-dependencies (<a
href="https://redirect.github.com/ratatui/instability/pull/19">#19</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ratatui/instability/blob/main/CHANGELOG.md">instability's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/ratatui/instability/compare/instability-v0.3.5...instability-v0.3.6">0.3.6</a>
- 2025-01-04</h2>
<h3>Other</h3>
<ul>
<li>Move pretty_assertions to dev-dependencies (<a
href="https://redirect.github.com/ratatui/instability/pull/19">#19</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="cf84fbe505"><code>cf84fbe</code></a>
chore: release v0.3.6 (<a
href="https://redirect.github.com/ratatui-org/instability/issues/20">#20</a>)</li>
<li><a
href="5eca2ee0d1"><code>5eca2ee</code></a>
Move pretty_assertions to dev-dependencies (<a
href="https://redirect.github.com/ratatui-org/instability/issues/19">#19</a>)</li>
<li>See full diff in <a
href="https://github.com/ratatui-org/instability/compare/instability-v0.3.5...instability-v0.3.6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=instability&package-manager=cargo&previous-version=0.3.5&new-version=0.3.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-06 18:24:20 +03:00
dependabot[bot]
019e34e006 chore(deps): bump serde from 1.0.216 to 1.0.217 (#1600)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.216 to
1.0.217.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/serde-rs/serde/releases">serde's
releases</a>.</em></p>
<blockquote>
<h2>v1.0.217</h2>
<ul>
<li>Support serializing externally tagged unit variant inside flattened
field (<a
href="https://redirect.github.com/serde-rs/serde/issues/2786">#2786</a>,
thanks <a
href="https://github.com/Mingun"><code>@​Mingun</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="930401b0dd"><code>930401b</code></a>
Release 1.0.217</li>
<li><a
href="cb6eaea151"><code>cb6eaea</code></a>
Fix roundtrip inconsistency:</li>
<li><a
href="b6f339ca36"><code>b6f339c</code></a>
Resolve repr_packed_without_abi clippy lint in tests</li>
<li><a
href="2a5caea1a8"><code>2a5caea</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/serde/issues/2872">#2872</a>
from dtolnay/ehpersonality</li>
<li><a
href="b9f93f99aa"><code>b9f93f9</code></a>
Add no-std CI on stable compiler</li>
<li><a
href="eb5cd476ba"><code>eb5cd47</code></a>
Drop #[lang = &quot;eh_personality&quot;] from no-std test</li>
<li><a
href="8478a3b7dd"><code>8478a3b</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/serde/issues/2871">#2871</a>
from dtolnay/nostdstart</li>
<li><a
href="dbb909136e"><code>dbb9091</code></a>
Replace #[start] with extern fn main</li>
<li>See full diff in <a
href="https://github.com/serde-rs/serde/compare/v1.0.216...v1.0.217">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.216&new-version=1.0.217)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-30 22:24:53 +03:00
Josh McKinney
11cbb2ba87 chore: use cargo xtask for bacon clippy command (#1592) 2024-12-29 11:49:41 -08:00
n4n5
50ba96518f feat: add a new RatatuiMascot widget (#1584)
Move the Mascot from Demo2 into a new widget.
Make the Rat grey and adjust the other colors.

```rust
frame.render_widget(RatatuiMascot::default(), frame.area());
```
2024-12-26 04:32:38 -08:00
Josh McKinney
904b0aa723 refactor: move symbols to modules (#1594) 2024-12-26 04:05:05 -08:00
Josh McKinney
16ba867c58 chore: use modularized ratatui crates (#75) 2024-11-27 14:54:11 -08:00
github-actions[bot]
f804c90f96 chore: release v0.6.0 (#71)
## 🤖 New release
* `ratatui-macros`: 0.5.0 -> 0.6.0 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

##
[0.5.1](https://github.com/ratatui/ratatui-macros/compare/v0.5.0...v0.5.1)
- 2024-10-21

### Other

- *(deps)* bump the cargo-dependencies group with 2 updates
([#73](https://github.com/ratatui/ratatui-macros/pull/73))
- *(deps)* bump ratatui from 0.28.0 to 0.28.1 in the cargo-dependencies
group ([#70](https://github.com/ratatui/ratatui-macros/pull/70))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh McKinney <joshka@users.noreply.github.com>
2024-10-25 04:32:14 -07:00
dependabot[bot]
bbaa9a5432 build(deps): bump the cargo-dependencies group with 2 updates (#73)
Bumps the cargo-dependencies group with 2 updates:
[ratatui](https://github.com/ratatui/ratatui) and
[trybuild](https://github.com/dtolnay/trybuild).

Updates `ratatui` from 0.28.1 to 0.29.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ratatui/ratatui/releases">ratatui's
releases</a>.</em></p>
<blockquote>
<h2>v0.29.0</h2>
<!-- raw HTML omitted -->
<h2><a
href="https://github.com/ratatui/ratatui/releases/tag/v0.29.0">v0.29.0</a>
- 2024-10-21</h2>
<p><em>&quot;Food will come, Remy. Food always comes to those who love
to cook.&quot; – Gusteau</em></p>
<p>We are excited to announce the new version of <code>ratatui</code> -
a Rust library that's all about cooking up TUIs 👨‍🍳🐀</p>
<p> <strong>Release highlights</strong>: <a
href="https://ratatui.rs/highlights/v029/">https://ratatui.rs/highlights/v029/</a></p>
<p>⚠️ List of breaking changes can be found <a
href="https://github.com/ratatui/ratatui/blob/main/BREAKING-CHANGES.md">here</a>.</p>
<h3>Features</h3>
<ul>
<li>
<p><a
href="3a43274881">3a43274</a>
<em>(color)</em> Add hsluv support by <a
href="https://github.com/du-ob"><code>@​du-ob</code></a> in <a
href="https://redirect.github.com/ratatui/ratatui/pull/1333">#1333</a></p>
</li>
<li>
<p><a
href="4c4851ca3d">4c4851c</a>
<em>(example)</em> Add drawing feature to the canvas example by <a
href="https://github.com/orhun"><code>@​orhun</code></a> in <a
href="https://redirect.github.com/ratatui/ratatui/pull/1429">#1429</a></p>
<blockquote>
<p><img
src="https://github.com/user-attachments/assets/cfb2f9f8-773b-4599-9312-29625ff2ca60"
alt="rec_20241018T235208" /></p>
<p>fun fact: I had to do <a
href="https://www.youtube.com/watch?v=eS92stzBYXA">35
pushups</a> for this...</p>
<hr />
</blockquote>
</li>
<li>
<p><a
href="e5a7609588">e5a7609</a>
<em>(line)</em> Impl From<!-- raw HTML omitted --> for Line by <a
href="https://github.com/joshka"><code>@​joshka</code></a> in <a
href="https://redirect.github.com/ratatui/ratatui/pull/1373">#1373</a>
[<strong>breaking</strong>]</p>
<blockquote>
<p>BREAKING-CHANGES:<code>Line</code> now implements
<code>From&lt;Cow&lt;str&gt;</code></p>
<p>As this adds an extra conversion, ambiguous inferred values may no
longer
compile.</p>
<pre lang="rust"><code>// given:
struct Foo { ... }
impl From&lt;Foo&gt; for String { ... }
impl From&lt;Foo&gt; for Cow&lt;str&gt; { ... }
<p>let foo = Foo { ... };
let line = Line::from(foo); // now fails due to ambiguous type inference
// replace with
let line = Line::from(String::from(foo));
</code></pre></p>
<p>Fixes:<a
href="https://redirect.github.com/ratatui/ratatui/issues/1367">ratatui/ratatui#1367</a></p>
<hr />
</blockquote>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ratatui/ratatui/blob/main/CHANGELOG.md">ratatui's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/ratatui/ratatui/releases/tag/v0.29.0">v0.29.0</a>
- 2024-10-21</h2>
<h3>Features</h3>
<ul>
<li>
<p><a
href="3a43274881">3a43274</a>
<em>(color)</em> Add hsluv support by <a
href="https://github.com/du-ob"><code>@​du-ob</code></a> in <a
href="https://redirect.github.com/ratatui/ratatui/pull/1333">#1333</a></p>
</li>
<li>
<p><a
href="4c4851ca3d">4c4851c</a>
<em>(example)</em> Add drawing feature to the canvas example by <a
href="https://github.com/orhun"><code>@​orhun</code></a> in <a
href="https://redirect.github.com/ratatui/ratatui/pull/1429">#1429</a></p>
<blockquote>
<p><img
src="https://github.com/user-attachments/assets/cfb2f9f8-773b-4599-9312-29625ff2ca60"
alt="rec_20241018T235208" /></p>
<p>fun fact: I had to do <a
href="https://www.youtube.com/watch?v=eS92stzBYXA">35
pushups</a> for this...</p>
<hr />
</blockquote>
</li>
<li>
<p><a
href="e5a7609588">e5a7609</a>
<em>(line)</em> Impl From<!-- raw HTML omitted --> for Line by <a
href="https://github.com/joshka"><code>@​joshka</code></a> in <a
href="https://redirect.github.com/ratatui/ratatui/pull/1373">#1373</a>
[<strong>breaking</strong>]</p>
<blockquote>
<p>BREAKING-CHANGES:<code>Line</code> now implements
<code>From&lt;Cow&lt;str&gt;</code></p>
<p>As this adds an extra conversion, ambiguous inferred values may no
longer
compile.</p>
<pre lang="rust"><code>// given:
struct Foo { ... }
impl From&lt;Foo&gt; for String { ... }
impl From&lt;Foo&gt; for Cow&lt;str&gt; { ... }
<p>let foo = Foo { ... };
let line = Line::from(foo); // now fails due to ambiguous type inference
// replace with
let line = Line::from(String::from(foo));
</code></pre></p>
<p>Fixes:<a
href="https://redirect.github.com/ratatui/ratatui/issues/1367">ratatui/ratatui#1367</a></p>
<hr />
</blockquote>
</li>
<li>
<p><a
href="2805dddf05">2805ddd</a>
<em>(logo)</em> Add a Ratatui logo widget by <a
href="https://github.com/joshka"><code>@​joshka</code></a> in <a
href="https://redirect.github.com/ratatui/ratatui/pull/1307">#1307</a></p>
<blockquote>
<p>This is a simple logo widget that can be used to render the Ratatui
logo
in the terminal. It is used in the <code>examples/ratatui-logo.rs</code>
example,
and may be used in your applications' help or about screens.</p>
<pre lang="rust"><code>use ratatui::{Frame, widgets::RatatuiLogo};
<p>fn draw(frame: &amp;mut Frame) {
frame.render_widget(RatatuiLogo::tiny(), frame.area());
</code></pre></p>
</blockquote>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="28732176e1"><code>2873217</code></a>
chore(release): prepare for 0.29.0 (<a
href="https://redirect.github.com/ratatui/ratatui/issues/1444">#1444</a>)</li>
<li><a
href="6515097434"><code>6515097</code></a>
chore(cargo): check in Cargo.lock (<a
href="https://redirect.github.com/ratatui/ratatui/issues/1434">#1434</a>)</li>
<li><a
href="4c4851ca3d"><code>4c4851c</code></a>
feat(example): add drawing feature to the canvas example (<a
href="https://redirect.github.com/ratatui/ratatui/issues/1429">#1429</a>)</li>
<li><a
href="4f5503dbf6"><code>4f5503d</code></a>
fix(color)!: hsl and hsluv are now clamped before conversion (<a
href="https://redirect.github.com/ratatui/ratatui/issues/1436">#1436</a>)</li>
<li><a
href="611086eba4"><code>611086e</code></a>
fix: sparkline docs / doc tests (<a
href="https://redirect.github.com/ratatui/ratatui/issues/1437">#1437</a>)</li>
<li><a
href="514d273875"><code>514d273</code></a>
fix(terminal): use the latest, resized area when clearing (<a
href="https://redirect.github.com/ratatui/ratatui/issues/1427">#1427</a>)</li>
<li><a
href="60cc15bbb0"><code>60cc15b</code></a>
feat!: add support for empty bar style to <code>Sparkline</code> (<a
href="https://redirect.github.com/ratatui/ratatui/issues/1326">#1326</a>)</li>
<li><a
href="a52ee82fc7"><code>a52ee82</code></a>
fix(text): truncate based on alignment (<a
href="https://redirect.github.com/ratatui/ratatui/issues/1432">#1432</a>)</li>
<li><a
href="381ec75329"><code>381ec75</code></a>
docs(readme): reduce the length (<a
href="https://redirect.github.com/ratatui/ratatui/issues/1431">#1431</a>)</li>
<li><a
href="f6f7794dd7"><code>f6f7794</code></a>
chore: remove leftover prelude refs / glob imports from example code (<a
href="https://redirect.github.com/ratatui/ratatui/issues/1430">#1430</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ratatui/ratatui/compare/v0.28.1...v0.29.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `trybuild` from 1.0.99 to 1.0.101
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/trybuild/releases">trybuild's
releases</a>.</em></p>
<blockquote>
<h2>1.0.101</h2>
<ul>
<li>Fix rustflags unification when using target-specific rustflags in a
config.toml (<a
href="https://redirect.github.com/dtolnay/trybuild/issues/293">#293</a>)</li>
</ul>
<h2>1.0.100</h2>
<ul>
<li>Documentation improvements (<a
href="https://redirect.github.com/dtolnay/trybuild/issues/288">#288</a>,
<a
href="https://redirect.github.com/dtolnay/trybuild/issues/289">#289</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="32408f9c63"><code>32408f9</code></a>
Release 1.0.101</li>
<li><a
href="6fe643543b"><code>6fe6435</code></a>
Resolve unexpected_cfgs warning when build script is not run</li>
<li><a
href="fba7a15198"><code>fba7a15</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/trybuild/issues/293">#293</a>
from dtolnay/targetrustflags</li>
<li><a
href="e3d8dab0bb"><code>e3d8dab</code></a>
Combine trybuild rustflags with target-specific rustflags</li>
<li><a
href="1fa2fcb686"><code>1fa2fcb</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/trybuild/issues/292">#292</a>
from dtolnay/targettriple</li>
<li><a
href="669bdb0e91"><code>669bdb0</code></a>
Delegate TARGET identification to target-triple crate</li>
<li><a
href="7c399e0046"><code>7c399e0</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/trybuild/issues/291">#291</a>
from dtolnay/target</li>
<li><a
href="2d760927ba"><code>2d76092</code></a>
Rely on $TARGET always set during build script execution</li>
<li><a
href="909f7512f2"><code>909f751</code></a>
Release 1.0.100</li>
<li><a
href="c4501dcb0d"><code>c4501dc</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/trybuild/issues/289">#289</a>
from dtolnay/rust-src</li>
<li>Additional commits viewable in <a
href="https://github.com/dtolnay/trybuild/compare/1.0.99...1.0.101">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-21 19:06:46 -04:00
dependabot[bot]
c45a4de47c build(deps): bump ratatui from 0.28.0 to 0.28.1 in the cargo-dependencies group (#70)
Bumps the cargo-dependencies group with 1 update:
[ratatui](https://github.com/ratatui/ratatui).

Updates `ratatui` from 0.28.0 to 0.28.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ratatui/ratatui/releases">ratatui's
releases</a>.</em></p>
<blockquote>
<h2>v0.28.1</h2>
<h2><a
href="https://github.com/ratatui/ratatui/releases/tag/v0.28.1">v0.28.1</a>
- 2024-08-25</h2>
<h3>Features</h3>
<ul>
<li>
<p><a
href="ed51c4b342">ed51c4b</a>
<em>(terminal)</em> Add ratatui::init() and restore() methods by <a
href="https://github.com/joshka"><code>@​joshka</code></a> in <a
href="https://redirect.github.com/ratatui/ratatui/pull/1289">#1289</a></p>
<blockquote>
<p>These are simple opinionated methods for creating a terminal that is
useful to use in most apps. The new init method creates a crossterm
backend writing to stdout, enables raw mode, enters the alternate
screen, and sets a panic handler that restores the terminal on
panic.</p>
<p>A minimal hello world now looks a bit like:</p>
<pre lang="rust"><code>use ratatui::{
    crossterm::event::{self, Event},
    text::Text,
    Frame,
};
<p>fn main() {<br />
let mut terminal = ratatui::init();<br />
loop {<br />
terminal<br />
.draw(|frame: &amp;mut Frame| frame.render_widget(Text::raw(&quot;Hello
World!&quot;), frame.area()))<br />
.expect(&quot;Failed to draw&quot;);<br />
if matches!(event::read().expect(&quot;failed to read event&quot;),
Event::Key(_)) {<br />
break;<br />
}<br />
}<br />
ratatui::restore();<br />
}<br />
</code></pre></p>
<p>A type alias <code>DefaultTerminal</code> is added to represent this
terminal
type and to simplify any cases where applications need to pass this
terminal around. It is equivalent to:
<code>Terminal&lt;CrosstermBackend&lt;Stdout&gt;&gt;</code></p>
<p>We also added <code>ratatui::try_init()</code> and
<code>try_restore()</code>, for situations
where you might want to handle initialization errors yourself instead
of letting the panic handler fire and cleanup. Simple Apps should
prefer the <code>init</code> and <code>restore</code> functions over
these functions.</p>
<p>Corresponding functions to allow passing a
<code>TerminalOptions</code> with
a <code>Viewport</code> (e.g. inline, fixed) are also available
(<code>init_with_options</code>,
and <code>try_init_with_options</code>).</p>
</blockquote>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ratatui/ratatui/blob/main/CHANGELOG.md">ratatui's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/ratatui/ratatui/releases/tag/v0.28.1">v0.28.1</a>
- 2024-08-25</h2>
<h3>Features</h3>
<ul>
<li>
<p><a
href="ed51c4b342">ed51c4b</a>
<em>(terminal)</em> Add ratatui::init() and restore() methods by <a
href="https://github.com/joshka"><code>@​joshka</code></a> in <a
href="https://redirect.github.com/ratatui/ratatui/pull/1289">#1289</a></p>
<blockquote>
<p>These are simple opinionated methods for creating a terminal that is
useful to use in most apps. The new init method creates a crossterm
backend writing to stdout, enables raw mode, enters the alternate
screen, and sets a panic handler that restores the terminal on
panic.</p>
<p>A minimal hello world now looks a bit like:</p>
<pre lang="rust"><code>use ratatui::{
    crossterm::event::{self, Event},
    text::Text,
    Frame,
};
<p>fn main() {<br />
let mut terminal = ratatui::init();<br />
loop {<br />
terminal<br />
.draw(|frame: &amp;mut Frame| frame.render_widget(Text::raw(&quot;Hello
World!&quot;), frame.area()))<br />
.expect(&quot;Failed to draw&quot;);<br />
if matches!(event::read().expect(&quot;failed to read event&quot;),
Event::Key(_)) {<br />
break;<br />
}<br />
}<br />
ratatui::restore();<br />
}<br />
</code></pre></p>
<p>A type alias <code>DefaultTerminal</code> is added to represent this
terminal
type and to simplify any cases where applications need to pass this
terminal around. It is equivalent to:
<code>Terminal&lt;CrosstermBackend&lt;Stdout&gt;&gt;</code></p>
<p>We also added <code>ratatui::try_init()</code> and
<code>try_restore()</code>, for situations
where you might want to handle initialization errors yourself instead
of letting the panic handler fire and cleanup. Simple Apps should
prefer the <code>init</code> and <code>restore</code> functions over
these functions.</p>
<p>Corresponding functions to allow passing a
<code>TerminalOptions</code> with
a <code>Viewport</code> (e.g. inline, fixed) are also available
(<code>init_with_options</code>,
and <code>try_init_with_options</code>).</p>
<p>The existing code to create a backend and terminal will remain
and</p>
</blockquote>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3a90e2a761"><code>3a90e2a</code></a>
chore(release): prepare for 0.28.1 (<a
href="https://redirect.github.com/ratatui/ratatui/issues/1343">#1343</a>)</li>
<li><a
href="65da535745"><code>65da535</code></a>
chore(ci): update release strategy (<a
href="https://redirect.github.com/ratatui/ratatui/issues/1337">#1337</a>)</li>
<li><a
href="9ed85fd1dd"><code>9ed85fd</code></a>
docs(table): fix incorrect backticks in <code>TableState</code> docs (<a
href="https://redirect.github.com/ratatui/ratatui/issues/1342">#1342</a>)</li>
<li><a
href="aed60b9839"><code>aed60b9</code></a>
fix(terminal): Terminal::insert_before would crash when called while the
view...</li>
<li><a
href="3631b34f53"><code>3631b34</code></a>
docs(examples): add widget implementation example (<a
href="https://redirect.github.com/ratatui/ratatui/issues/1147">#1147</a>)</li>
<li><a
href="0d5f3c091f"><code>0d5f3c0</code></a>
test: Avoid unneeded allocations in assertions (<a
href="https://redirect.github.com/ratatui/ratatui/issues/1335">#1335</a>)</li>
<li><a
href="ed51c4b342"><code>ed51c4b</code></a>
feat(terminal): Add ratatui::init() and restore() methods (<a
href="https://redirect.github.com/ratatui/ratatui/issues/1289">#1289</a>)</li>
<li><a
href="23516bce76"><code>23516bc</code></a>
chore: rename ratatui-org to ratatui (<a
href="https://redirect.github.com/ratatui/ratatui/issues/1334">#1334</a>)</li>
<li><a
href="6d1bd99544"><code>6d1bd99</code></a>
docs: minor grammar fixes (<a
href="https://redirect.github.com/ratatui/ratatui/issues/1330">#1330</a>)</li>
<li><a
href="2fb0b8a741"><code>2fb0b8a</code></a>
fix: fix u16 overflow in Terminal::insert_before. (<a
href="https://redirect.github.com/ratatui/ratatui/issues/1323">#1323</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ratatui/ratatui/compare/v0.28.0...v0.28.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ratatui&package-manager=cargo&previous-version=0.28.0&new-version=0.28.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-26 23:53:44 -04:00
Josh McKinney
345e6a1ebd fix: bump version to 0.5.0 (#69)
Updating Ratatui to 0.28 requires a major version bump
Fixes: https://github.com/ratatui-org/ratatui-macros/issues/68
2024-08-11 21:07:02 -07:00
github-actions[bot]
28f5a6dbd4 chore: release v0.4.4 (#63)
## 🤖 New release
* `ratatui-macros`: 0.4.3 -> 0.4.4

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

##
[0.4.4](https://github.com/ratatui-org/ratatui-macros/compare/v0.4.3...v0.4.4)
- 2024-08-09

### Other
- *(deps)* bump ratatui to 0.28.0
([#66](https://github.com/ratatui-org/ratatui-macros/pull/66))
- *(deps)* bump trybuild from 1.0.98 to 1.0.99 in the cargo-dependencies
group ([#65](https://github.com/ratatui-org/ratatui-macros/pull/65))
- *(deps)* bump trybuild from 1.0.97 to 1.0.98 in the cargo-dependencies
group ([#62](https://github.com/ratatui-org/ratatui-macros/pull/62))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-08-08 21:58:05 -07:00
Josh McKinney
b75df78cdc chore(deps): bump ratatui to 0.28.0 (#66) 2024-08-08 21:56:13 -07:00
dependabot[bot]
afc5cf2140 build(deps): bump trybuild from 1.0.98 to 1.0.99 in the cargo-dependencies group (#65)
Bumps the cargo-dependencies group with 1 update:
[trybuild](https://github.com/dtolnay/trybuild).

Updates `trybuild` from 1.0.98 to 1.0.99
<details>
<summary>Commits</summary>
<ul>
<li><a
href="831f5eff9d"><code>831f5ef</code></a>
Release 1.0.99</li>
<li><a
href="aeb7b06bb0"><code>aeb7b06</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/trybuild/issues/284">#284</a>
from dtolnay/default-features</li>
<li><a
href="fa107d668d"><code>fa107d6</code></a>
Keep track of whether manifest overrides workspace dependency's
default-features</li>
<li>See full diff in <a
href="https://github.com/dtolnay/trybuild/compare/1.0.98...1.0.99">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=trybuild&package-manager=cargo&previous-version=1.0.98&new-version=1.0.99)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-05 22:01:40 -04:00
dependabot[bot]
f28b973006 build(deps): bump trybuild from 1.0.97 to 1.0.98 in the cargo-dependencies group (#62)
Bumps the cargo-dependencies group with 1 update:
[trybuild](https://github.com/dtolnay/trybuild).

Updates `trybuild` from 1.0.97 to 1.0.98
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/trybuild/releases">trybuild's
releases</a>.</em></p>
<blockquote>
<h2>1.0.98</h2>
<ul>
<li>Fix enabling of default features for workspace dependencies (<a
href="https://redirect.github.com/dtolnay/trybuild/issues/282">#282</a>,
thanks <a
href="https://github.com/gui1117"><code>@​gui1117</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a4f4171e55"><code>a4f4171</code></a>
Release 1.0.98</li>
<li><a
href="aa567ec542"><code>aa567ec</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/trybuild/issues/282">#282</a>
from gui1117/gui-fix-default-features</li>
<li><a
href="c08e3f76e6"><code>c08e3f7</code></a>
remove unused</li>
<li><a
href="cd88ca2bb4"><code>cd88ca2</code></a>
Fix default features</li>
<li>See full diff in <a
href="https://github.com/dtolnay/trybuild/compare/1.0.97...1.0.98">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=trybuild&package-manager=cargo&previous-version=1.0.97&new-version=1.0.98)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-03 23:15:55 -04:00
github-actions[bot]
f8a70ea9da chore: release v0.4.3 (#60)
## 🤖 New release
* `ratatui-macros`: 0.4.2 -> 0.4.3

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

##
[0.4.3](https://github.com/ratatui-org/ratatui-macros/compare/v0.4.2...v0.4.3)
- 2024-07-22

### Added
- allow span macro to accept a bare expression
([#61](https://github.com/ratatui-org/ratatui-macros/pull/61))

### Other
- *(deps)* bump trybuild from 1.0.96 to 1.0.97 in the cargo-dependencies
group ([#59](https://github.com/ratatui-org/ratatui-macros/pull/59))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-07-22 03:53:13 -07:00
Josh McKinney
d0f75eb371 feat: allow span macro to accept a bare expression (#61)
This makes it possible to pass an expression directly to the `span!`
macro, which will be formatted into the display representation of the
expression using the `format!` macro.

```rust
let number = 123;
let test = "test";
span!(number);
span!(test);
```
2024-07-22 05:36:35 -04:00
dependabot[bot]
7eeb6afb3d build(deps): bump trybuild from 1.0.96 to 1.0.97 in the cargo-dependencies group (#59)
Bumps the cargo-dependencies group with 1 update:
[trybuild](https://github.com/dtolnay/trybuild).

Updates `trybuild` from 1.0.96 to 1.0.97
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/trybuild/releases">trybuild's
releases</a>.</em></p>
<blockquote>
<h2>1.0.97</h2>
<ul>
<li>Normalize number of types listed in <em>&quot;the following other
types implement trait&quot;</em> diagnostics (<a
href="https://redirect.github.com/dtolnay/trybuild/issues/277">#277</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="daeef9c9b0"><code>daeef9c</code></a>
Release 1.0.97</li>
<li><a
href="207b0a51a7"><code>207b0a5</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/trybuild/issues/278">#278</a>
from dtolnay/rustflags</li>
<li><a
href="1b8d4bdf07"><code>1b8d4bd</code></a>
Combine all rustflags into cargo --config arg</li>
<li><a
href="ef6893bf61"><code>ef6893b</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/trybuild/issues/277">#277</a>
from dtolnay/nothers</li>
<li><a
href="883a38daa0"><code>883a38d</code></a>
Ignore comparison_chain clippy lint</li>
<li><a
href="f3b1dab327"><code>f3b1dab</code></a>
Normalize the effect of --verbose on '$N others' diagnostic</li>
<li><a
href="6184f60b31"><code>6184f60</code></a>
Add test of 'following other types' diagnostic</li>
<li>See full diff in <a
href="https://github.com/dtolnay/trybuild/compare/1.0.96...1.0.97">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=trybuild&package-manager=cargo&previous-version=1.0.96&new-version=1.0.97)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-08 18:56:23 -04:00
Dheepak Krishnamurthy
8cecfdf2f6 chore: Update categories in Cargo.toml (#57) 2024-06-29 03:19:24 -04:00
github-actions[bot]
ca4fa0b9bf chore: release v0.4.2 (#53)
## 🤖 New release
* `ratatui-macros`: 0.4.1 -> 0.4.2

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

##
[0.4.2](https://github.com/ratatui-org/ratatui-macros/compare/v0.4.1...v0.4.2)
- 2024-06-29

### Added
- Use `::ratatui` instead of `ratatui`
([#54](https://github.com/ratatui-org/ratatui-macros/pull/54))
- Add row! macro
([#52](https://github.com/ratatui-org/ratatui-macros/pull/52))

### Other
- Update README with row! documentation
([#56](https://github.com/ratatui-org/ratatui-macros/pull/56))
- Make doc examples shorter by removing duplicate imports
([#55](https://github.com/ratatui-org/ratatui-macros/pull/55))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-29 02:55:19 -04:00
Dheepak Krishnamurthy
89d7dd4603 docs: Update README with row! documentation (#56) 2024-06-29 00:59:10 -04:00
Dheepak Krishnamurthy
1b9e310300 docs: Make doc examples shorter by removing duplicate imports (#55)
Resolves comment from
https://github.com/ratatui-org/ratatui-macros/pull/52#discussion_r1656690843
2024-06-28 12:33:33 -04:00
Dheepak Krishnamurthy
8913e2ce1f feat: Use ::ratatui instead of ratatui (#54)
This PR uses `::ratatui` to ensure it doesn't clash with a module named
`ratatui` in an app, per comment
https://github.com/ratatui-org/ratatui-macros/pull/52#discussion_r1656670148

This PR also refactors some tests.
2024-06-28 09:16:42 -04:00
Dheepak Krishnamurthy
c7649575e7 feat: Add row! macro (#52)
This PR adds a `row!` macro similar to the existing `text!` and `line!`
macro.

This will allow code like this:

```rust
let rows = [
    Row::new([
        Cell::from("\u{f002}"),
        Cell::from("Find File"),
        Cell::from(Text::raw("ctrl+f").alignment(ratatui::layout::Alignment::Right)),
    ]),
    Row::new([
        Cell::from("\u{f021a}"),
        Cell::from("Open recent"),
        Cell::from(Text::raw("ctrl+r").alignment(ratatui::layout::Alignment::Right)),
    ]),
    Row::new([
        Cell::from("\u{f0493}"),
        Cell::from("Open config"),
        Cell::from(Text::raw("ctrl+k").alignment(ratatui::layout::Alignment::Right)),
    ]),
];
```

to be written like 

```rust
let rows = [
    row!["\u{f002}", "Find File", text!["ctrl+f"].right_aligned()],
    row!["\u{f021a}", "Open recent", text!["ctrl+r"].right_aligned()],
    row!["\u{f0493}", "Open config", text!["ctrl+k"].right_aligned()],
];
```
2024-06-28 00:15:01 -04:00
github-actions[bot]
ad54cf29ad chore: release v0.4.1 (#49)
## 🤖 New release
* `ratatui-macros`: 0.4.0 -> 0.4.1

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

##
[0.4.1](https://github.com/ratatui-org/ratatui-macros/compare/v0.4.0...v0.4.1)
- 2024-06-24

### Other
- *(deps)* bump ratatui from 0.26.3 to 0.27.0 in the cargo-dependencies
group ([#51](https://github.com/ratatui-org/ratatui-macros/pull/51))
- Update dependabot.yml to group dependencies
([#50](https://github.com/ratatui-org/ratatui-macros/pull/50))
- *(deps)* bump ratatui from 0.26.2 to 0.26.3
([#48](https://github.com/ratatui-org/ratatui-macros/pull/48))
- *(deps)* bump trybuild from 1.0.95 to 1.0.96
([#47](https://github.com/ratatui-org/ratatui-macros/pull/47))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-24 17:52:29 -04:00
dependabot[bot]
a1acdcdc4c build(deps): bump ratatui from 0.26.3 to 0.27.0 in the cargo-dependencies group (#51)
Bumps the cargo-dependencies group with 1 update:
[ratatui](https://github.com/ratatui-org/ratatui).

Updates `ratatui` from 0.26.3 to 0.27.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ratatui-org/ratatui/releases">ratatui's
releases</a>.</em></p>
<blockquote>
<h2>v0.27.0</h2>
<!-- raw HTML omitted -->
<h2><a
href="https://github.com/ratatui-org/ratatui/releases/tag/v0.27.0">0.27.0</a>
- 2024-06-24</h2>
<p><em>“I can’t believe it! A real gourmet kitchen, and I get to watch!”
– Remy</em></p>
<p>We are excited to announce the new version of <code>ratatui</code> -
a Rust library that's all about cooking up TUIs 🐭</p>
<p>In this version, we have focused on enhancing usability and
functionality with new features like background styles for LineGauge,
palette colors, and various other improvements including improved
performance. Also, we added brand new examples for tracing and creating
hyperlinks!</p>
<p> <strong>Release highlights</strong>: <a
href="https://ratatui.rs/highlights/v027/">https://ratatui.rs/highlights/v027/</a></p>
<p>⚠️ List of breaking changes can be found <a
href="https://github.com/ratatui-org/ratatui/blob/main/BREAKING-CHANGES.md">here</a>.</p>
<h3>Features</h3>
<ul>
<li>
<p><a
href="eef1afe915">eef1afe</a>
<em>(linegauge)</em> Allow LineGauge background styles by <a
href="https://github.com/nowNick"><code>@​nowNick</code></a> in <a
href="https://redirect.github.com/ratatui-org/ratatui/pull/565">#565</a></p>
<pre lang="text"><code>This PR deprecates `gauge_style` in favor of
`filled_style` and
`unfilled_style` which can have it's foreground and background styled.
<p><code>cargo run --example=line_gauge --features=crossterm</code>
</code></pre></p>
<p><a
href="https://github.com/ratatui-org/ratatui/assets/5149215/5fb2ce65-8607-478f-8be4-092e08612f5b">https://github.com/ratatui-org/ratatui/assets/5149215/5fb2ce65-8607-478f-8be4-092e08612f5b</a></p>
<p>Implements:<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/424">ratatui-org/ratatui#424</a></p>
</li>
<li>
<p><a
href="1365620606">1365620</a>
<em>(borders)</em> Add FULL and EMPTY border sets by <a
href="https://github.com/joshka"><code>@​joshka</code></a> in <a
href="https://redirect.github.com/ratatui-org/ratatui/pull/1182">#1182</a></p>
<p><code>border::FULL</code> uses a full block symbol, while
<code>border::EMPTY</code> uses an
empty space. This is useful for when you need to allocate space for the
border and apply the border style to a block without actually drawing a
border. This makes it possible to style the entire title area or a block
rather than just the title content.</p>
</li>
</ul>
<pre lang="rust"><code>use ratatui::{symbols::border, widgets::Block};
let block =
Block::bordered().title(&quot;Title&quot;).border_set(border::FULL);
let block =
Block::bordered().title(&quot;Title&quot;).border_set(border::EMPTY);
</code></pre>
<ul>
<li>
<p><a
href="7a48c5b11b">7a48c5b</a>
<em>(cell)</em> Add EMPTY and (const) new method by <a
href="https://github.com/EdJoPaTo"><code>@​EdJoPaTo</code></a> in <a
href="https://redirect.github.com/ratatui-org/ratatui/pull/1143">#1143</a></p>
<pre lang="text"><code>This simplifies calls to `Buffer::filled` in
tests.
</code></pre>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ratatui-org/ratatui/blob/main/CHANGELOG.md">ratatui's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/ratatui-org/ratatui/releases/tag/v0.27.0">0.27.0</a>
- 2024-06-24</h2>
<p>In this version, we have focused on enhancing usability and
functionality with new features like
background styles for LineGauge, palette colors, and various other
improvements including
improved performance. Also, we added brand new examples for tracing and
creating hyperlinks!</p>
<p> <strong>Release highlights</strong>: <a
href="https://ratatui.rs/highlights/v027/">https://ratatui.rs/highlights/v027/</a></p>
<p>⚠️ List of breaking changes can be found <a
href="https://github.com/ratatui-org/ratatui/blob/main/BREAKING-CHANGES.md">here</a>.</p>
<h3>Features</h3>
<ul>
<li>
<p><a
href="eef1afe915">eef1afe</a>
<em>(linegauge)</em> Allow LineGauge background styles by <a
href="https://github.com/nowNick"><code>@​nowNick</code></a> in <a
href="https://redirect.github.com/ratatui-org/ratatui/pull/565">#565</a></p>
<pre lang="text"><code>This PR deprecates `gauge_style` in favor of
`filled_style` and
`unfilled_style` which can have it's foreground and background styled.
<p><code>cargo run --example=line_gauge --features=crossterm</code>
</code></pre></p>
<p><a
href="https://github.com/ratatui-org/ratatui/assets/5149215/5fb2ce65-8607-478f-8be4-092e08612f5b">https://github.com/ratatui-org/ratatui/assets/5149215/5fb2ce65-8607-478f-8be4-092e08612f5b</a></p>
<p>Implements:<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/424">ratatui-org/ratatui#424</a></p>
</li>
<li>
<p><a
href="1365620606">1365620</a>
<em>(borders)</em> Add FULL and EMPTY border sets by <a
href="https://github.com/joshka"><code>@​joshka</code></a> in <a
href="https://redirect.github.com/ratatui-org/ratatui/pull/1182">#1182</a></p>
<p><code>border::FULL</code> uses a full block symbol, while
<code>border::EMPTY</code> uses an
empty space. This is useful for when you need to allocate space for the
border and apply the border style to a block without actually drawing a
border. This makes it possible to style the entire title area or a block
rather than just the title content.</p>
</li>
</ul>
<pre lang="rust"><code>use ratatui::{symbols::border, widgets::Block};
let block =
Block::bordered().title(&quot;Title&quot;).border_set(border::FULL);
let block =
Block::bordered().title(&quot;Title&quot;).border_set(border::EMPTY);
</code></pre>
<ul>
<li>
<p><a
href="7a48c5b11b">7a48c5b</a>
<em>(cell)</em> Add EMPTY and (const) new method by <a
href="https://github.com/EdJoPaTo"><code>@​EdJoPaTo</code></a> in <a
href="https://redirect.github.com/ratatui-org/ratatui/pull/1143">#1143</a></p>
<pre lang="text"><code>This simplifies calls to `Buffer::filled` in
tests.
</code></pre>
</li>
<li>
<p><a
href="3f2f2cd6ab">3f2f2cd</a>
<em>(docs)</em> Add tracing example by <a
href="https://github.com/joshka"><code>@​joshka</code></a> in <a
href="https://redirect.github.com/ratatui-org/ratatui/pull/1192">#1192</a></p>
<pre lang="text"><code>Add an example that demonstrates logging to a
file for:
</code></pre>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0a18dcb329"><code>0a18dcb</code></a>
chore(release): prepare for 0.27.0 (<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1196">#1196</a>)</li>
<li><a
href="7ef2daee06"><code>7ef2dae</code></a>
feat(text): support constructing <code>Line</code> and <code>Text</code>
from <code>usize</code> (<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1167">#1167</a>)</li>
<li><a
href="46977d8851"><code>46977d8</code></a>
feat(list)!: add list navigation methods (first, last, previous, next)
(<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1159">#1159</a>)</li>
<li><a
href="38bb196404"><code>38bb196</code></a>
docs(breaking-changes): mention <code>LineGauge::gauge_style</code> (<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1194">#1194</a>)</li>
<li><a
href="1908b06b4a"><code>1908b06</code></a>
docs(borders): add missing closing code blocks (<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1195">#1195</a>)</li>
<li><a
href="3f2f2cd6ab"><code>3f2f2cd</code></a>
feat(docs): add tracing example (<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1192">#1192</a>)</li>
<li><a
href="efa965e1e8"><code>efa965e</code></a>
fix(line): remove newlines when converting strings to Lines (<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1191">#1191</a>)</li>
<li><a
href="127d706ee4"><code>127d706</code></a>
fix(table): ensure render offset without selection properly (<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1187">#1187</a>)</li>
<li><a
href="1365620606"><code>1365620</code></a>
feat(borders): Add FULL and EMPTY border sets (<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1182">#1182</a>)</li>
<li><a
href="cd64367e24"><code>cd64367</code></a>
chore(symbols): add tests for line symbols (<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1186">#1186</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ratatui-org/ratatui/compare/v0.26.3...v0.27.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ratatui&package-manager=cargo&previous-version=0.26.3&new-version=0.27.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-24 17:50:22 -04:00
Dheepak Krishnamurthy
39d5a745ac chore: Update dependabot.yml to group dependencies (#50) 2024-05-20 21:18:41 -07:00
dependabot[bot]
2f97d35bd8 build(deps): bump ratatui from 0.26.2 to 0.26.3 (#48)
Bumps [ratatui](https://github.com/ratatui-org/ratatui) from 0.26.2 to
0.26.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ratatui-org/ratatui/releases">ratatui's
releases</a>.</em></p>
<blockquote>
<h2>v0.26.3</h2>
<!-- raw HTML omitted -->
<h2><a
href="https://github.com/ratatui-org/ratatui/releases/tag/v0.26.3">0.26.3</a>
- 2024-05-19</h2>
<p>We are happy to announce a brand new <a
href="https://forum.ratatui.rs"><strong>Ratatui Forum</strong></a> 🐭 for
Rust &amp; TUI enthusiasts.</p>
<p>This is a patch release that fixes the unicode truncation bug, adds
performance and quality of life improvements.</p>
<p> <strong>Release highlights</strong>: <a
href="https://ratatui.rs/highlights/v0263/">https://ratatui.rs/highlights/v0263/</a></p>
<h3>Features</h3>
<ul>
<li>
<p><a
href="97ee102f17">97ee102</a>
<em>(buffer)</em> Track_caller for index_of by <a
href="https://github.com/EdJoPaTo"><code>@​EdJoPaTo</code></a> in <a
href="https://redirect.github.com/ratatui-org/ratatui/pull/1046">#1046</a>
**</p>
<pre lang="text"><code>The caller put in the wrong x/y -&gt; the caller
is the cause.
</code></pre>
</li>
<li>
<p><a
href="bf0923473c">bf09234</a>
<em>(table)</em> Make TableState::new const by <a
href="https://github.com/EdJoPaTo"><code>@​EdJoPaTo</code></a> in <a
href="https://redirect.github.com/ratatui-org/ratatui/pull/1040">#1040</a></p>
</li>
<li>
<p><a
href="eb281df974">eb281df</a>
<em>(uncategorized)</em> Use inner Display implementation by <a
href="https://github.com/EdJoPaTo"><code>@​EdJoPaTo</code></a> in <a
href="https://redirect.github.com/ratatui-org/ratatui/pull/1097">#1097</a></p>
</li>
<li>
<p><a
href="ec763af851">ec763af</a>
<em>(uncategorized)</em> Make Stylize's <code>.bg(color)</code> generic
by <a href="https://github.com/kdheepak"><code>@​kdheepak</code></a> in
<a
href="https://redirect.github.com/ratatui-org/ratatui/pull/1099">#1099</a></p>
<pre lang="text"><code>This PR makes `.bg(color)` generic accepting
anything that can be
converted into `Color`; similar to the `.fg(color)` method on the same
trait
</code></pre>
</li>
<li>
<p><a
href="4d1784f2de">4d1784f</a>
<em>(uncategorized)</em> Re-export ParseColorError as
style::ParseColorError by <a
href="https://github.com/joshka"><code>@​joshka</code></a> in <a
href="https://redirect.github.com/ratatui-org/ratatui/pull/1086">#1086</a></p>
<p>Fixes:<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1085">ratatui-org/ratatui#1085</a></p>
</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>
<p><a
href="366cbae09f">366cbae</a>
<em>(buffer)</em> Fix Debug panic and fix formatting of overridden parts
by <a href="https://github.com/EdJoPaTo"><code>@​EdJoPaTo</code></a> in
<a
href="https://redirect.github.com/ratatui-org/ratatui/pull/1098">#1098</a></p>
<pre lang="text"><code>Fix panic in `Debug for Buffer` when `width ==
0`.
Also corrects the output when symbols are overridden.
</code></pre>
</li>
<li>
<p><a
href="4392759501">4392759</a>
<em>(examples)</em> Changed user_input example to work with multi-byte
unicode chars by <a
href="https://github.com/OkieOth"><code>@​OkieOth</code></a> in <a
href="https://redirect.github.com/ratatui-org/ratatui/pull/1069">#1069</a></p>
<pre lang="text"><code>This is the proposed solution for issue
[#1068](https://github.com/ratatui-org/ratatui/issues/1068). It solves
the bug in the
user_input example with multi-byte UTF-8 characters as input.
</code></pre>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ratatui-org/ratatui/blob/main/CHANGELOG.md">ratatui's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/ratatui-org/ratatui/releases/tag/v0.26.3">0.26.3</a>
- 2024-05-19</h2>
<p>We are happy to announce a brand new <a
href="https://forum.ratatui.rs"><strong>Ratatui Forum</strong></a> 🐭 for
Rust &amp; TUI enthusiasts.</p>
<p>This is a patch release that fixes the unicode truncation bug, adds
performance and quality of life improvements.</p>
<p> <strong>Release highlights</strong>: <a
href="https://ratatui.rs/highlights/v0263/">https://ratatui.rs/highlights/v0263/</a></p>
<h3>Features</h3>
<ul>
<li>
<p><a
href="97ee102f17">97ee102</a>
<em>(buffer)</em> Track_caller for index_of by <a
href="https://github.com/EdJoPaTo"><code>@​EdJoPaTo</code></a> in <a
href="https://redirect.github.com/ratatui-org/ratatui/pull/1046">#1046</a>
**</p>
<pre lang="text"><code>The caller put in the wrong x/y -&gt; the caller
is the cause.
</code></pre>
</li>
<li>
<p><a
href="bf0923473c">bf09234</a>
<em>(table)</em> Make TableState::new const by <a
href="https://github.com/EdJoPaTo"><code>@​EdJoPaTo</code></a> in <a
href="https://redirect.github.com/ratatui-org/ratatui/pull/1040">#1040</a></p>
</li>
<li>
<p><a
href="eb281df974">eb281df</a>
<em>(uncategorized)</em> Use inner Display implementation by <a
href="https://github.com/EdJoPaTo"><code>@​EdJoPaTo</code></a> in <a
href="https://redirect.github.com/ratatui-org/ratatui/pull/1097">#1097</a></p>
</li>
<li>
<p><a
href="ec763af851">ec763af</a>
<em>(uncategorized)</em> Make Stylize's <code>.bg(color)</code> generic
by <a href="https://github.com/kdheepak"><code>@​kdheepak</code></a> in
<a
href="https://redirect.github.com/ratatui-org/ratatui/pull/1099">#1099</a></p>
<pre lang="text"><code>This PR makes `.bg(color)` generic accepting
anything that can be
converted into `Color`; similar to the `.fg(color)` method on the same
trait
</code></pre>
</li>
<li>
<p><a
href="4d1784f2de">4d1784f</a>
<em>(uncategorized)</em> Re-export ParseColorError as
style::ParseColorError by <a
href="https://github.com/joshka"><code>@​joshka</code></a> in <a
href="https://redirect.github.com/ratatui-org/ratatui/pull/1086">#1086</a></p>
<p>Fixes:<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1085">ratatui-org/ratatui#1085</a></p>
</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>
<p><a
href="366cbae09f">366cbae</a>
<em>(buffer)</em> Fix Debug panic and fix formatting of overridden parts
by <a href="https://github.com/EdJoPaTo"><code>@​EdJoPaTo</code></a> in
<a
href="https://redirect.github.com/ratatui-org/ratatui/pull/1098">#1098</a></p>
<pre lang="text"><code>Fix panic in `Debug for Buffer` when `width ==
0`.
Also corrects the output when symbols are overridden.
</code></pre>
</li>
<li>
<p><a
href="4392759501">4392759</a>
<em>(examples)</em> Changed user_input example to work with multi-byte
unicode chars by <a
href="https://github.com/OkieOth"><code>@​OkieOth</code></a> in <a
href="https://redirect.github.com/ratatui-org/ratatui/pull/1069">#1069</a></p>
<pre lang="text"><code>This is the proposed solution for issue
[#1068](https://github.com/ratatui-org/ratatui/issues/1068). It solves
the bug in the
user_input example with multi-byte UTF-8 characters as input.
</code></pre>
<p>Fixes:<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1068">#1068</a></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fadc73d62e"><code>fadc73d</code></a>
chore(release): prepare for 0.26.3 (<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1118">#1118</a>)</li>
<li><a
href="fcb5d589bb"><code>fcb5d58</code></a>
fix: make cargo test --doc work with unstable-widget-ref examples (<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1117">#1117</a>)</li>
<li><a
href="4955380932"><code>4955380</code></a>
build: remove pre-push hooks (<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1115">#1115</a>)</li>
<li><a
href="828d17a3f5"><code>828d17a</code></a>
docs: add minimal example (<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1114">#1114</a>)</li>
<li><a
href="9bd89c218a"><code>9bd89c2</code></a>
refactor(clippy): enable breaking lint checks (<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/988">#988</a>)</li>
<li><a
href="2cfe82a47e"><code>2cfe82a</code></a>
refactor(buffer): deprecate assert_buffer_eq! in favor of assert_eq! (<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1007">#1007</a>)</li>
<li><a
href="1a4bb1cbb8"><code>1a4bb1c</code></a>
perf(layout): avoid allocating memory when using split ergonomic utils
(<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1105">#1105</a>)</li>
<li><a
href="839cca20bf"><code>839cca2</code></a>
docs(table): Fix typo in docs for highlight_symbol (<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1108">#1108</a>)</li>
<li><a
href="f945a0bcff"><code>f945a0b</code></a>
docs(test): fix typo in TestBackend documentation (<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1107">#1107</a>)</li>
<li><a
href="eb281df974"><code>eb281df</code></a>
feat: use inner Display implementation (<a
href="https://redirect.github.com/ratatui-org/ratatui/issues/1097">#1097</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ratatui-org/ratatui/compare/v0.26.2...v0.26.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ratatui&package-manager=cargo&previous-version=0.26.2&new-version=0.26.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-20 18:00:08 -04:00
dependabot[bot]
fafabb8dab build(deps): bump trybuild from 1.0.95 to 1.0.96 (#47)
Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.95 to
1.0.96.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/trybuild/releases">trybuild's
releases</a>.</em></p>
<blockquote>
<h2>1.0.96</h2>
<ul>
<li>Support Windows builds that have OUT_DIR prefixed with
<code>\\?\</code> (<a
href="https://redirect.github.com/dtolnay/trybuild/issues/271">#271</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b1b7064b7a"><code>b1b7064</code></a>
Release 1.0.96</li>
<li><a
href="742c6b3583"><code>742c6b3</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/trybuild/issues/271">#271</a>
from dtolnay/windows</li>
<li><a
href="7c8c3640f6"><code>7c8c364</code></a>
Support OUT_DIR located in \?\ path on Windows</li>
<li>See full diff in <a
href="https://github.com/dtolnay/trybuild/compare/1.0.95...1.0.96">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=trybuild&package-manager=cargo&previous-version=1.0.95&new-version=1.0.96)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-20 17:59:51 -04:00
github-actions[bot]
4ac4d9d3ab chore: release v0.4.0 (#46)
## 🤖 New release
* `ratatui-macros`: 0.3.1 -> 0.4.0 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

##
[0.4.0](https://github.com/ratatui-org/ratatui-macros/compare/v0.3.1...v0.4.0)
- 2024-05-15

### Added
- *(layout)* [**breaking**] Use `*=` instead of `=*`
([#45](https://github.com/ratatui-org/ratatui-macros/pull/45))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Dheepak Krishnamurthy <me@kdheepak.com>
2024-05-15 02:17:57 -04:00
Dheepak Krishnamurthy
be8def9639 feat(layout)!: Use *= instead of =* (#45)
This is a follow up to
https://github.com/ratatui-org/ratatui-macros/pull/34

`*=` is more consistent with the other symbols, e.g. `<=`, `>=`.

It is also more in line with what other programming languages do.

```
$ python
Python 3.10.13 | packaged by conda-forge | (main, Oct 26 2023, 18:09:17) [Clang 16.0.6 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> x = 1
>>> x *= 2
>>> x
2
```

`=*` throws an error. 

```
>>> x =* 2
  File "<stdin>", line 1
SyntaxError: can't use starred expression here
>>>
```
2024-05-15 02:09:54 -04:00
github-actions[bot]
ae2868c0e0 chore: release v0.3.1 (#42)
## 🤖 New release
* `ratatui-macros`: 0.3.0 -> 0.3.1 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

##
[0.3.1](https://github.com/ratatui-org/ratatui-macros/compare/v0.3.0...v0.3.1)
- 2024-05-13

### Added
- Better error messages for `span!` macro
([#43](https://github.com/ratatui-org/ratatui-macros/pull/43))

### Fixed
- downgrade ratatui to 0.26.2
([#41](https://github.com/ratatui-org/ratatui-macros/pull/41))

### Other
- Update authors to ratatui developers
([#44](https://github.com/ratatui-org/ratatui-macros/pull/44))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-12 23:20:06 -04:00
Dheepak Krishnamurthy
f71d1ac73e chore: Update authors to ratatui developers (#44) 2024-05-12 23:16:54 -04:00
Dheepak Krishnamurthy
c50b01d098 feat: Better error messages for span! macro (#43)
With this PR, if a user accidentally uses `,` as a separator when the
first argument is a style, they'll will get a better compiler error
message:

<img width="748" alt="image"
src="https://github.com/ratatui-org/ratatui-macros/assets/1813121/58ec025c-56c8-4a4a-998f-7a48a6b327fd">

This also updates the docstrings to reiterate that `,` must be used for
format specifier and `;` must be used for style.
2024-05-12 23:13:15 -04:00
Josh McKinney
204307fa50 fix: downgrade ratatui to 0.26.2 (#41)
0.27.0 alpha release is not necessary as the changes were actually made in 0.26.2
2024-05-12 19:15:59 -04:00
github-actions[bot]
f78d3bfec3 chore: release v0.3.0 (#40)
chore: release

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-12 15:20:49 -07:00
Dheepak Krishnamurthy
6cf08d4a2f fix: Update repo url in Cargo.toml (#39) 2024-05-09 00:50:30 -04:00
Dheepak Krishnamurthy
93372f35c1 feat: Use release-plz (#38) 2024-05-09 00:44:46 -04:00
Dheepak Krishnamurthy
3855c3a84a feat: Add text! macro (#36)
Co-authored-by: EdJoPaTo <github@edjopato.de>
2024-05-08 20:24:05 -04:00
Dheepak Krishnamurthy
570c358681 docs: Use .areas(area) instead of .split(area).to_vec().try_into().unwrap() (#37) 2024-05-08 08:46:43 -04:00
Dheepak Krishnamurthy
8ecdd892f5 feat: Add fill constraint (#34)
Co-authored-by: EdJoPaTo <github@edjopato.de>
2024-05-08 04:49:23 -04:00
Dheepak Krishnamurthy
0dc5b2d2e0 feat!: Remove color palette! macro (#32)
feat: Remove color palette macro
2024-05-08 04:44:46 -04:00
Dheepak Krishnamurthy
8060f7bc57 docs: Update README.md with short description of span and line macros (#33) 2024-05-07 22:30:53 -04:00
Dheepak Krishnamurthy
d24747d469 chore: format using cargo +nightly fmt (#31) 2024-05-07 22:21:00 -04:00
Dheepak Krishnamurthy
a0c35f1d7b feat: Replace raw! and styled! with span! macro (#30) 2024-05-07 21:45:52 -04:00
Dheepak Krishnamurthy
9a7467b305 feat: Add line! attribute macro (#29)
* feat: Add line attribute macro

Co-authored-by: EdJoPaTo <github@edjopato.de>
Co-authored-by: Josh McKinney <joshka@users.noreply.github.com>
2024-05-07 21:34:01 -04:00
dependabot[bot]
f6d49dde14 build(deps): bump ratatui from 0.27.0-alpha.3 to 0.27.0-alpha.5 (#27)
Bumps [ratatui](https://github.com/ratatui-org/ratatui) from 0.27.0-alpha.3 to 0.27.0-alpha.5.
- [Release notes](https://github.com/ratatui-org/ratatui/releases)
- [Changelog](https://github.com/ratatui-org/ratatui/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ratatui-org/ratatui/compare/v0.27.0-alpha.3...v0.27.0-alpha.5)

---
updated-dependencies:
- dependency-name: ratatui
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-06 21:53:06 -04:00
dependabot[bot]
07aff91b01 build(deps): bump trybuild from 1.0.91 to 1.0.93 (#28)
Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.91 to 1.0.93.
- [Release notes](https://github.com/dtolnay/trybuild/releases)
- [Commits](https://github.com/dtolnay/trybuild/compare/1.0.91...1.0.93)

---
updated-dependencies:
- dependency-name: trybuild
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-06 20:32:48 -04:00
dependabot[bot]
bf02106029 build(deps): bump ratatui from 0.27.0-alpha.2 to 0.27.0-alpha.3 (#24)
Bumps [ratatui](https://github.com/ratatui-org/ratatui) from 0.27.0-alpha.2 to 0.27.0-alpha.3.
- [Release notes](https://github.com/ratatui-org/ratatui/releases)
- [Changelog](https://github.com/ratatui-org/ratatui/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ratatui-org/ratatui/compare/v0.27.0-alpha.2...v0.27.0-alpha.3)

---
updated-dependencies:
- dependency-name: ratatui
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-01 18:46:07 -07:00
dependabot[bot]
2c6f324b9a build(deps): bump trybuild from 1.0.90 to 1.0.91 (#23)
Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.90 to 1.0.91.
- [Release notes](https://github.com/dtolnay/trybuild/releases)
- [Commits](https://github.com/dtolnay/trybuild/compare/1.0.90...1.0.91)

---
updated-dependencies:
- dependency-name: trybuild
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-01 18:45:41 -07:00
dependabot[bot]
6f52350ecf build(deps): bump trybuild from 1.0.88 to 1.0.90 (#20)
Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.88 to 1.0.90.
- [Release notes](https://github.com/dtolnay/trybuild/releases)
- [Commits](https://github.com/dtolnay/trybuild/compare/1.0.88...1.0.90)

---
updated-dependencies:
- dependency-name: trybuild
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-01 11:04:07 -07:00
dependabot[bot]
dcba0bcd5d build(deps): bump ratatui from 0.27.0-alpha.0 to 0.27.0-alpha.2 (#22)
Bumps [ratatui](https://github.com/ratatui-org/ratatui) from 0.27.0-alpha.0 to 0.27.0-alpha.2.
- [Release notes](https://github.com/ratatui-org/ratatui/releases)
- [Changelog](https://github.com/ratatui-org/ratatui/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ratatui-org/ratatui/compare/v0.27.0-alpha.0...v0.27.0-alpha.2)

---
updated-dependencies:
- dependency-name: ratatui
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-01 11:03:56 -07:00
dependabot[bot]
b4aacb045e build(deps): bump mio from 0.8.10 to 0.8.11 (#18)
Bumps [mio](https://github.com/tokio-rs/mio) from 0.8.10 to 0.8.11.
- [Release notes](https://github.com/tokio-rs/mio/releases)
- [Changelog](https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/mio/compare/v0.8.10...v0.8.11)

---
updated-dependencies:
- dependency-name: mio
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-01 11:03:41 -07:00
dependabot[bot]
dce1e4b138 build(deps): bump ratatui from 0.26.0-alpha.1 to 0.27.0-alpha.0 (#19)
Bumps [ratatui](https://github.com/ratatui-org/ratatui) from 0.26.0-alpha.1 to 0.27.0-alpha.0.
- [Release notes](https://github.com/ratatui-org/ratatui/releases)
- [Changelog](https://github.com/ratatui-org/ratatui/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ratatui-org/ratatui/compare/v0.26.0-alpha.1...v0.27.0-alpha.0)

---
updated-dependencies:
- dependency-name: ratatui
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 10:35:53 -04:00
Josh McKinney
6b9417db5f build: add cargo husky pre-commit hook (#8) 2024-01-15 13:50:52 -08:00
Josh McKinney
5d5a1ccb0b ci: Create dependabot.yml (#7) 2024-01-13 01:23:59 -08:00
Josh McKinney
91cd81aaa0 ci: use rust cache to cache deps (#6)
https://github.com/marketplace/actions/rust-cache
2024-01-13 01:20:50 -08:00
Josh McKinney
f33d51e7d9 feat(text): add raw! and styled! macros (#4)
These macros are similar to the format! macro, but return a raw or
styled Span instead of a String.

```rust
use ratatui_macros::{raw, styled};

let name = "world";
raw!("Hello, {name}!");
styled!(Style::new().green(), "Hello, {name}!");
styled!(Color::Green, "Hello, {name}!");
styled!(Modifier::BOLD, "Hello, {name}!");
```
2024-01-13 00:45:38 -08:00
Josh McKinney
2c02a56bce docs: readme tweaks (#5) 2024-01-13 00:33:14 -08:00
Dheepak Krishnamurthy
7d23bd2cea docs: Update README.md 2024-01-13 02:02:35 -05:00
Dheepak Krishnamurthy
778f2f5ec5 docs: Update README.md 2024-01-13 02:02:14 -05:00
Dheepak Krishnamurthy
0a0997702d docs: Update README.md 2024-01-10 10:57:41 -05:00
Dheepak Krishnamurthy
5cee13ab6d docs: Update README.md 2024-01-10 10:51:55 -05:00
Dheepak Krishnamurthy
903bb0ae32 docs: Add link to ratatui 2024-01-09 15:17:17 -05:00
Dheepak Krishnamurthy
21aa3232d7 feat: Remove keywords 2024-01-09 15:01:08 -05:00
Dheepak Krishnamurthy
38b2f27efe docs: Update README.md 📚 2024-01-09 13:54:31 -05:00
Dheepak Krishnamurthy
7419475975 docs: Update README.md 📚 2024-01-09 13:54:09 -05:00
Dheepak Krishnamurthy
b820c0c7e4 docs: Update README.md 📚 2024-01-09 13:53:33 -05:00
Dheepak Krishnamurthy
bd90e3d928 build(release): Bump to v0.2.4 🛠 2024-01-09 13:53:08 -05:00
Dheepak Krishnamurthy
c6d2cee3e9 Merge pull request #3 from kdheepak/color
feat: Add pub visibility to color 
2024-01-09 13:52:16 -05:00
Dheepak Krishnamurthy
39bd72b1f7 feat: Add pub visibility to color 2024-01-09 13:48:05 -05:00
Dheepak Krishnamurthy
8f35437d5a feat: Add colors into keywords 2024-01-09 13:33:55 -05:00
Dheepak Krishnamurthy
4756526829 build(release): Bump to v0.2.3 🛠 2024-01-09 13:22:12 -05:00
Dheepak Krishnamurthy
819499d6ff Merge pull request #2 from kdheepak/color
feat: Add color palette based on tailwindcss 
2024-01-09 13:12:17 -05:00
Dheepak Krishnamurthy
29edc3a7a3 feat: Add color palette based on tailwindcss 2024-01-09 13:09:36 -05:00
Dheepak Krishnamurthy
92540b2f6a docs: Improved documentation 📚 2024-01-09 02:26:53 -05:00
Dheepak Krishnamurthy
30d9daa59b build(release): Bump to v0.2.2 🛠 2024-01-09 02:21:45 -05:00
Dheepak Krishnamurthy
fa88152c80 docs: Update docstrings 📚 2024-01-09 02:21:32 -05:00
Dheepak Krishnamurthy
63441e259b build(release): Bump to v0.2.1 🛠 2024-01-09 02:16:30 -05:00
Dheepak Krishnamurthy
693003314a docs: Add examples 📚 2024-01-09 02:15:50 -05:00
Dheepak Krishnamurthy
68b55a12a2 docs: Remove syntax 📚 2024-01-09 02:13:27 -05:00
Dheepak Krishnamurthy
20e41f1d1d docs: Update README 📚 2024-01-09 02:04:30 -05:00
Dheepak Krishnamurthy
2dc81833c6 docs: Improve README examples 📚 2024-01-09 01:56:59 -05:00
Dheepak Krishnamurthy
12aa58601d docs: Improve README examples 📚 2024-01-09 01:55:46 -05:00
Dheepak Krishnamurthy
57a0a34f92 docs: Improve README examples 📚 2024-01-09 01:52:57 -05:00
Dheepak Krishnamurthy
76d1e5b173 docs: Improve README examples 📚 2024-01-09 01:50:32 -05:00
Dheepak Krishnamurthy
8b32f82b4d docs: Update README with better tests 📚 2024-01-09 01:44:34 -05:00
Dheepak Krishnamurthy
131b9ec417 docs: Update README with better tests 📚 2024-01-09 01:44:10 -05:00
Dheepak Krishnamurthy
57b681b053 docs: Update README with better tests 📚 2024-01-09 01:38:26 -05:00
Dheepak Krishnamurthy
31a2c4548c docs: Update README with better examples 📚 2024-01-09 01:36:03 -05:00
Dheepak Krishnamurthy
b7f8ec0ff9 build(release): Bump to v0.2.0 🛠 2024-01-09 01:29:30 -05:00
Dheepak Krishnamurthy
2e684c6500 Merge pull request #1 from deifactor/simpler
Simplify implementation of `constraints!` macro
2024-01-09 01:28:24 -05:00
Dheepak Krishnamurthy
9acdab32df docs: Add comments explaining rules 📚 2024-01-09 01:22:44 -05:00
Dheepak Krishnamurthy
06af14107e fix: Remove compile_error rule that never triggers 🐛 2024-01-09 01:11:38 -05:00
Dheepak Krishnamurthy
77dea441e5 feat: Update tests that fail 2024-01-09 01:11:05 -05:00
Dheepak Krishnamurthy
bc73f2dcbe feat: Add test for not supporting trailing comma 2024-01-09 01:06:51 -05:00
Dheepak Krishnamurthy
a4bb143e47 feat: Better trybuild test suite 2024-01-09 00:49:42 -05:00
Dheepak Krishnamurthy
38490ff8da feat: Add trybuild for testing fails 2024-01-09 00:37:51 -05:00
Dheepak Krishnamurthy
e1a31db559 docs: fix docstrings 📚 2024-01-09 00:08:55 -05:00
Dheepak Krishnamurthy
71480242a9 docs: Better README.md 📚 2024-01-09 00:08:44 -05:00
Dheepak Krishnamurthy
4335a90a00 feat: Remove inner [] for constraints!, vertical! and horizontal! 2024-01-09 00:07:26 -05:00
Ash
0fb1036800 docs: improve documentation for macros 2024-01-09 00:07:26 -05:00
Ash
ac342231c3 refactor: clean up implementation of constraints! macro 2024-01-09 00:07:26 -05:00
Dheepak Krishnamurthy
8339cce10a docs: Update README.md 📚 2024-01-06 06:49:04 -05:00
Dheepak Krishnamurthy
6443f7408a build(release): Bump to v0.1.2 🛠 2024-01-06 06:46:24 -05:00
Dheepak Krishnamurthy
590a392ab1 feat: Add doc attribute to include README 2024-01-06 06:45:49 -05:00
Dheepak Krishnamurthy
250c222cc4 docs: README.md update 📚 2024-01-06 06:42:00 -05:00
Dheepak Krishnamurthy
487edc8399 build(release): Bump to v0.1.1 🛠 2024-01-05 15:46:39 -05:00
Dheepak Krishnamurthy
3870583ea8 feat: Add more tests 2024-01-05 15:46:11 -05:00
Dheepak Krishnamurthy
6440eb9d76 feat: Ratio array syntax 2024-01-05 15:42:25 -05:00
Dheepak Krishnamurthy
885558b6f8 feat: Update Cargo.toml with metadata 2024-01-05 15:26:53 -05:00
Dheepak Krishnamurthy
b6356aa7a5 feat: Add cd.yml 2024-01-05 15:12:12 -05:00
Dheepak Krishnamurthy
31711dbf82 feat: Add ci.yml 2024-01-05 15:08:32 -05:00
Dheepak Krishnamurthy
adc8fdc35a docs: Add README.md 📚 2024-01-05 15:02:02 -05:00
Dheepak Krishnamurthy
272e9709c6 feat: Add array style constraints 2024-01-05 14:51:01 -05:00
Dheepak Krishnamurthy
50af9a5d80 new: Initial commit 🎉 2024-01-05 14:34:40 -05:00
200 changed files with 5404 additions and 3234 deletions

View File

@@ -32,17 +32,17 @@ schema_pattern = "(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)
type = "list"
name = "change_type"
choices = [
{ value = "build", name = "build: Changes that affect the build system or external dependencies (example scopes: pip, docker, npm)", key = "b" },
{ value = "chore", name = "chore: A modification that generally does not fall into any other category", key = "c" },
{ value = "ci", name = "ci: Changes to our CI configuration files and scripts (example scopes: GitLabCI)", key = "i" },
{ value = "docs", name = "docs: Documentation only changes", key = "d" },
{ value = "feat", name = "feat: A new feature.", key = "f" },
{ value = "fix", name = "fix: A bug fix.", key = "x" },
{ value = "perf", name = "perf: A code change that improves performance", key = "p" },
{ value = "refactor", name = "refactor: A code change that neither fixes a bug nor adds a feature", key = "r" },
{ value = "revert", name = "revert: Revert previous commits", key = "v" },
{ value = "style", name = "style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)", key = "s" },
{ value = "test", name = "test: Adding missing or correcting existing tests", key = "t" },
{ value = "build", name = "build: Changes that affect the build system or external dependencies (example scopes: pip, docker, npm)", key = "b" },
{ value = "chore", name = "chore: A modification that generally does not fall into any other category", key = "c" },
{ value = "ci", name = "ci: Changes to our CI configuration files and scripts (example scopes: GitLabCI)", key = "i" },
{ value = "docs", name = "docs: Documentation only changes", key = "d" },
{ value = "feat", name = "feat: A new feature.", key = "f" },
{ value = "fix", name = "fix: A bug fix.", key = "x" },
{ value = "perf", name = "perf: A code change that improves performance", key = "p" },
{ value = "refactor", name = "refactor: A code change that neither fixes a bug nor adds a feature", key = "r" },
{ value = "revert", name = "revert: Revert previous commits", key = "v" },
{ value = "style", name = "style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)", key = "s" },
{ value = "test", name = "test: Adding missing or correcting existing tests", key = "t" },
]
message = "Select the type of change you are committing"

View File

@@ -18,12 +18,12 @@ jobs:
PR_EVENT: event.json
steps:
- name: Download Benchmark Results
uses: dawidd6/action-download-artifact@v7
uses: dawidd6/action-download-artifact@v8
with:
name: ${{ env.BENCHMARK_RESULTS }}
run_id: ${{ github.event.workflow_run.id }}
- name: Download PR Event
uses: dawidd6/action-download-artifact@v7
uses: dawidd6/action-download-artifact@v8
with:
name: ${{ env.PR_EVENT }}
run_id: ${{ github.event.workflow_run.id }}

View File

@@ -28,7 +28,11 @@ jobs:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
with: { components: rustfmt }
- run: cargo xtask lint-formatting
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@v2
with:
tool: taplo-cli
- run: cargo xtask format --check
# Check for typos in the codebase.
# See <https://github.com/crate-ci/typos/>
@@ -46,7 +50,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: EmbarkStudios/cargo-deny-action@v2
- uses: dtolnay/rust-toolchain@stable
- uses: taiki-e/install-action@cargo-deny
- run: cargo deny --log-level info --all-features check
# Check for any unused dependencies in the codebase.
# See <https://github.com/bnjbvr/cargo-machete/>
@@ -55,7 +61,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- uses: bnjbvr/cargo-machete@v0.7.0
# Run cargo clippy.
@@ -67,7 +72,7 @@ jobs:
- uses: dtolnay/rust-toolchain@stable
with: { components: clippy }
- uses: Swatinem/rust-cache@v2
- run: cargo xtask lint-clippy
- run: cargo xtask clippy
# Run markdownlint on all markdown files in the repository.
lint-markdown:
@@ -75,7 +80,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: DavidAnson/markdownlint-cli2-action@v18
- uses: DavidAnson/markdownlint-cli2-action@v19
with:
globs: |
'**/*.md'
@@ -114,7 +119,7 @@ jobs:
with:
toolchain: ${{ matrix.toolchain }}
- uses: Swatinem/rust-cache@v2
- run: cargo xtask check
- run: cargo xtask check --all-features
# Check if README.md is up-to-date with the crate's documentation.
check-readme:
@@ -124,7 +129,7 @@ jobs:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@cargo-rdme
- run: cargo xtask check-readme
- run: cargo xtask readme --check
# Run cargo rustdoc with the same options that would be used by docs.rs, taking into account the
# package.metadata.docs.rs configured in Cargo.toml. https://github.com/dtolnay/cargo-docs-rs
@@ -138,7 +143,7 @@ jobs:
- uses: dtolnay/rust-toolchain@nightly
- uses: dtolnay/install@cargo-docs-rs
- uses: Swatinem/rust-cache@v2
- run: cargo xtask lint-docs
- run: cargo xtask docs
# Run cargo test on the documentation of the crate. This will catch any code examples that don't
# compile, or any other issues in the documentation.

52
.github/workflows/release-plz.yml vendored Normal file
View File

@@ -0,0 +1,52 @@
name: Release-plz
permissions:
pull-requests: write
contents: write
on:
push:
branches:
- main
jobs:
# Release unpublished packages.
release-plz-release:
name: Release-plz release
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Run release-plz
uses: release-plz/action@v0.5
with:
command: release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_TOKEN }}
# Create a PR with the new versions and changelog, preparing the next release.
release-plz-pr:
name: Release-plz PR
runs-on: ubuntu-latest
concurrency:
group: release-plz-${{ github.ref }}
cancel-in-progress: false
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Run release-plz
uses: release-plz/action@v0.5
with:
command: release-pr
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_TOKEN }}

12
.taplo.toml Normal file
View File

@@ -0,0 +1,12 @@
include = ["**/*.toml"]
[formatting]
column_width = 100
reorder_keys = false
[[rule]]
include = ["**/Cargo.toml"]
keys = ["dependencies", "dev-dependencies", "build-dependencies", "workspace.dependencies"]
[rule.formatting]
reorder_keys = true

View File

@@ -1,8 +1,220 @@
# Changelog
All notable changes to this project will be documented in this file.
<!-- ignore lint rules that are often triggered by content generated from commits / git-cliff -->
<!-- markdownlint-disable line-length no-bare-urls ul-style emphasis-style -->
_"Food will come, Remy. Food always comes to those who love to cook." Gusteau_
## [0.30.0-alpha.1](https://github.com/ratatui/ratatui/releases/tag/0.30.0-alpha.1) - 2025-01-14
0.30.0-alpha.1 is a pre-release of the upcoming 0.30.0 release. It is intended for testing and
feedback. Please report any issues you encounter. The primary change is that we've split the crate
into multiple crates. The main crate is now `ratatui-core` and the widgets are in `ratatui-widgets`.
This allows for widget crates to depend on a stable core crate, and for the core crate to be used
without widgets.
### Features
- [56d5e05](https://github.com/ratatui/ratatui/commit/56d5e057625378f1bdf732dabb57208453fb84d6) *(bar)* Update label and text_value to accept Into<> by @Emivvvvv in [#1471](https://github.com/ratatui/ratatui/pull/1471) [**breaking**]
- [b76ad3b](https://github.com/ratatui/ratatui/commit/b76ad3b02ea1c3381b6434c40e620f28d642948e) *(bar)* Impl Styled for Bar by @Emivvvvv in [#1476](https://github.com/ratatui/ratatui/pull/1476)
- [369b18e](https://github.com/ratatui/ratatui/commit/369b18eef2e4220147e7c7264ad7f8e023a1d2dd) *(barchart)* Reduce barchart creation verbosity by @Emivvvvv in [#1453](https://github.com/ratatui/ratatui/pull/1453)
- [9275d34](https://github.com/ratatui/ratatui/commit/9275d3421c088174bcf9de0832340bcbea76367a) *(layout)* Add Offset::new() constructor by @joshka in [#1547](https://github.com/ratatui/ratatui/pull/1547)
- [ff729b7](https://github.com/ratatui/ratatui/commit/ff729b7607e0099a155f10dfe0ce42320641b74d) *(scrollbar)* Support retrieving the current position of state by @orhun in [#1552](https://github.com/ratatui/ratatui/pull/1552)
- [ce4856a](https://github.com/ratatui/ratatui/commit/ce4856a65f3c76db714a45338ba3be9b638c6c35) *(widgets)* Add the missing constructor to canvas types by @orhun in [#1538](https://github.com/ratatui/ratatui/pull/1538)
- [50ba965](https://github.com/ratatui/ratatui/commit/50ba96518f01454cff185784a1e9676093ce06cf) *(uncategorized)* Add a new RatatuiMascot widget by @Its-Just-Nans in [#1584](https://github.com/ratatui/ratatui/pull/1584)
- [1d28c89](https://github.com/ratatui/ratatui/commit/1d28c89fe50f1a11cf1719233acca1a12d5e2d7b) *(uncategorized)* Add conversions for anstyle by @joshka in [#1581](https://github.com/ratatui/ratatui/pull/1581)
### Bug Fixes
- [860e48b](https://github.com/ratatui/ratatui/commit/860e48b0f0ec51c8596bc12985a8b37bad4fba00) *(buffer)* Buffer::get_pos() now correctly handles index > u16::MAX by @joshka in [#1447](https://github.com/ratatui/ratatui/pull/1447)
- [ec30390](https://github.com/ratatui/ratatui/commit/ec30390446b998cba97a25db63b2e3d27db7a12d) *(canvas)* Round coordinates to nearest grid cell by @joshka in [#1507](https://github.com/ratatui/ratatui/pull/1507)
- [afd1ce1](https://github.com/ratatui/ratatui/commit/afd1ce179b74f10ea786ed6f9b2999288bc94e7a) *(canvas)* Lines that start outside the visible grid are now drawn by @renesat in [#1501](https://github.com/ratatui/ratatui/pull/1501)
- [18e70d3](https://github.com/ratatui/ratatui/commit/18e70d3d51b654bb895843224edf0c21a3114dc9) *(crossterm)* Terminal should keep Bold when removing Dim by @MarSik in [#1541](https://github.com/ratatui/ratatui/pull/1541)
- [a692a6e](https://github.com/ratatui/ratatui/commit/a692a6e37114f39a3eb15b0cdc486dee8a7e91ff) *(lint)* Apply rust 1.84 clippy suggestions by @joshka in [#1612](https://github.com/ratatui/ratatui/pull/1612)
- [3b13240](https://github.com/ratatui/ratatui/commit/3b13240728597a8c459c4bb5f913372185e9df91) *(scrollbar)* Check for area.is_empty() before rendering by @farmeroy in [#1529](https://github.com/ratatui/ratatui/pull/1529)
- [f57b696](https://github.com/ratatui/ratatui/commit/f57b696fdc3bac381bccda0414400453f5abecf2) *(span)* Dont render control characters by @EdJoPaTo in [#1312](https://github.com/ratatui/ratatui/pull/1312)
- [2ce958e](https://github.com/ratatui/ratatui/commit/2ce958e38cf1ebab49b1817b669631dc349a0ebb) *(table)* Allow display of additional table row, if row height > 1 by @Lunderberg in [#1452](https://github.com/ratatui/ratatui/pull/1452)
- [2892bdd](https://github.com/ratatui/ratatui/commit/2892bddce66daf0b285a6d9f6fb3fdb2581cda2b) *(uncategorized)* Rust 1.83 clippy lints by @joshka in [#1527](https://github.com/ratatui/ratatui/pull/1527)
- [36e2d1b](https://github.com/ratatui/ratatui/commit/36e2d1bda1d8b4e1d0fbd09ba2894d56bd7eeeca) *(uncategorized)* Add feature(doc_cfg) when generating docs by @joshka in [#1506](https://github.com/ratatui/ratatui/pull/1506)
- [4d7704f](https://github.com/ratatui/ratatui/commit/4d7704fba5dcebda34c8c04bf4b5ac48e3a22008) *(uncategorized)* Make StatefulWidget and Ref work with unsized State by @thscharler in [#1505](https://github.com/ratatui/ratatui/pull/1505)
- [7b87509](https://github.com/ratatui/ratatui/commit/7b875091e18b894f53af6331a8ad5b7101a75d1e) *(uncategorized)* Typo by @marcoieni in [#1480](https://github.com/ratatui/ratatui/pull/1480)
### Refactor
- [f132fa1](https://github.com/ratatui/ratatui/commit/f132fa1715ea0893c52e35c65d505abadb75cec6) *(table)* Small readability improvements by @joshka in [#1510](https://github.com/ratatui/ratatui/pull/1510)
- [904b0aa](https://github.com/ratatui/ratatui/commit/904b0aa723e63d3fb68802b797949619506bf3a9) *(uncategorized)* Move symbols to modules by @joshka in [#1594](https://github.com/ratatui/ratatui/pull/1594)
- [7c8573f](https://github.com/ratatui/ratatui/commit/7c8573f5750ea8cf87101f81314803c834ea4942) *(uncategorized)* Rearrange selection_spacing code by @raylu in [#1540](https://github.com/ratatui/ratatui/pull/1540)
- [217c57c](https://github.com/ratatui/ratatui/commit/217c57cd60628abde1ca2f0c39b014e22c9edc4e) *(uncategorized)* Modularize backends by @orhun in [#1508](https://github.com/ratatui/ratatui/pull/1508)
- [e461b72](https://github.com/ratatui/ratatui/commit/e461b724a6b010fe242f9bd6d9746007cbf24219) *(uncategorized)* Move {Stateful,}Widget{,Ref} types into individual files by @joshka in [#1479](https://github.com/ratatui/ratatui/pull/1479)
### Documentation
- [d291042](https://github.com/ratatui/ratatui/commit/d291042e69ad930ae0d3c5d1f991d9e68320c00e) *(block)* Revise the block example by @orhun in [#1520](https://github.com/ratatui/ratatui/pull/1520)
- [fcde9cb](https://github.com/ratatui/ratatui/commit/fcde9cb9c3c5e9752fefbcc7cdeac95e2db9d684) *(changelog)* Fix typo by @orhun in [#1463](https://github.com/ratatui/ratatui/pull/1463)
- [3ae6bf1](https://github.com/ratatui/ratatui/commit/3ae6bf1d6f24407de400024dcb5924d841a2e1ba) *(contributing)* Use cargo-xtask for instructions by @orhun in [#1509](https://github.com/ratatui/ratatui/pull/1509)
- [04e1b32](https://github.com/ratatui/ratatui/commit/04e1b32cd2e77653266fa8e7269a2e08d774220e) *(layout)* Rename cassowary-rs references to cassowary by @miroim in [#1448](https://github.com/ratatui/ratatui/pull/1448)
- [088aac1](https://github.com/ratatui/ratatui/commit/088aac136d8b22557081ab4c657f5c9f5cde80d8) *(readme)* Tweak links and badges by @joshka in [#1598](https://github.com/ratatui/ratatui/pull/1598)
- [6e43672](https://github.com/ratatui/ratatui/commit/6e436725e4f8c58be527b07c464a0d8b5d306eb6) *(readme)* Reimagine README.md by @orhun in [#1569](https://github.com/ratatui/ratatui/pull/1569)
- [8f28247](https://github.com/ratatui/ratatui/commit/8f282473b21d7693f20b5f0cdad2f12b9ed209ff) *(readme)* Correct examples links by @HoKim98 in [#1484](https://github.com/ratatui/ratatui/pull/1484)
- [9f90f74](https://github.com/ratatui/ratatui/commit/9f90f7495fd46b3b7ac34160f094bc1583f82b70) *(readme)* Fix broken link by @nilsmartel in [#1485](https://github.com/ratatui/ratatui/pull/1485)
- [260af68](https://github.com/ratatui/ratatui/commit/260af68a347b527281265f7bf259eb1336aa49b2) *(readme)* Include iocraft as an alternative by @kdheepak in [#1483](https://github.com/ratatui/ratatui/pull/1483)
- [dafb716](https://github.com/ratatui/ratatui/commit/dafb716f9d8acb5dda303dc1e155dc90eb54b926) *(widgets)* Add example for grouped barchart by @orhun in [#1566](https://github.com/ratatui/ratatui/pull/1566)
- [ed5dd73](https://github.com/ratatui/ratatui/commit/ed5dd73084e2c8ccf3d36bc23048d67755a90e6a) *(widgets)* Add example for tabs by @orhun in [#1559](https://github.com/ratatui/ratatui/pull/1559)
- [fab5321](https://github.com/ratatui/ratatui/commit/fab532171d1c8e9639298550565e4eefb8737275) *(widgets)* Add example for scrollbar by @orhun in [#1545](https://github.com/ratatui/ratatui/pull/1545)
- [898aef6](https://github.com/ratatui/ratatui/commit/898aef6e2f38655e58684a2d842f03bcde0ebf0c) *(widgets)* Add example for list by @orhun in [#1542](https://github.com/ratatui/ratatui/pull/1542)
- [452366a](https://github.com/ratatui/ratatui/commit/452366aa9e666f26946ebccf6046a0bed393f5c1) *(widgets)* Add example for sparkline by @orhun in [#1556](https://github.com/ratatui/ratatui/pull/1556)
- [6ddde0e](https://github.com/ratatui/ratatui/commit/6ddde0e8a84b0909ba5631afac2dfc7878764786) *(widgets)* Add example for table by @orhun in [#1557](https://github.com/ratatui/ratatui/pull/1557)
- [93ad6b8](https://github.com/ratatui/ratatui/commit/93ad6b828c3a34be982447390d17b7953a9c328e) *(widgets)* Update values in chart example by @orhun in [#1558](https://github.com/ratatui/ratatui/pull/1558)
- [15f442a](https://github.com/ratatui/ratatui/commit/15f442a71ed4ce3faeaac3b2a3a7798940eb1846) *(widgets)* Add example for paragraph by @orhun in [#1544](https://github.com/ratatui/ratatui/pull/1544)
- [17bba14](https://github.com/ratatui/ratatui/commit/17bba14540449ae584a9cafbe2a39cc7fa451ef4) *(widgets)* Move the logo example to widgets by @orhun in [#1543](https://github.com/ratatui/ratatui/pull/1543)
- [f2451e7](https://github.com/ratatui/ratatui/commit/f2451e7f1ed1d5bd38e8901f139bc2916a4b005e) *(widgets)* Add example for gauge by @orhun in [#1539](https://github.com/ratatui/ratatui/pull/1539)
- [4f0a8b2](https://github.com/ratatui/ratatui/commit/4f0a8b21af49b825debb13695f8c1f368f4f56b5) *(widgets)* Add example for canvas by @orhun in [#1533](https://github.com/ratatui/ratatui/pull/1533)
- [91147c4](https://github.com/ratatui/ratatui/commit/91147c4d75bee207052b06a7dca4b610df321de1) *(widgets)* Add example for chart by @orhun in [#1536](https://github.com/ratatui/ratatui/pull/1536)
- [6dd25a3](https://github.com/ratatui/ratatui/commit/6dd25a311152abf3e0938c9a59e54c98e2a327a6) *(widgets)* Add example for calendar by @orhun in [#1532](https://github.com/ratatui/ratatui/pull/1532)
- [99ac005](https://github.com/ratatui/ratatui/commit/99ac005b06f807c79060dba43b33ec9b1f7c1a3a) *(widgets)* Add simple barchart example by @joshka in [#1511](https://github.com/ratatui/ratatui/pull/1511)
- [da05957](https://github.com/ratatui/ratatui/commit/da05957fa01fcc420519400d82ef9df6acace0e8) *(uncategorized)* Add widget-ref-container example by @joshka in [#1603](https://github.com/ratatui/ratatui/pull/1603)
- [1798512](https://github.com/ratatui/ratatui/commit/1798512e94b277fdfafeddb4043f7174ce2ac64a) *(uncategorized)* Fix wording in user_input example by @dawedawe in [#1611](https://github.com/ratatui/ratatui/pull/1611)
- [03066d8](https://github.com/ratatui/ratatui/commit/03066d81bfc7fb4356e8d188f3d6a15b45509c15) *(uncategorized)* Fix punctuation in canvas.rs documentation by @dawedawe in [#1583](https://github.com/ratatui/ratatui/pull/1583)
- [e411d9e](https://github.com/ratatui/ratatui/commit/e411d9ec3e921e812b7e8d2836c2ad0b60a0e6f8) *(uncategorized)* Add input form example by @joshka in [#1551](https://github.com/ratatui/ratatui/pull/1551)
- [ed071f3](https://github.com/ratatui/ratatui/commit/ed071f37232fae47a2193235d57934cc5c678baa) *(uncategorized)* Add mouse-drawing example by @joshka in [#1546](https://github.com/ratatui/ratatui/pull/1546)
- [46902f5](https://github.com/ratatui/ratatui/commit/46902f5587efe2b27c39b5e3c39109c62a636ba3) *(uncategorized)* Improve docs for workspace crates by @orhun in [#1490](https://github.com/ratatui/ratatui/pull/1490)
- [a6b5792](https://github.com/ratatui/ratatui/commit/a6b579223fd83c36e024428df49a3027cd1c21bc) *(uncategorized)* Fix example link in readme by @thomas-tacquet in [#1462](https://github.com/ratatui/ratatui/pull/1462)
### Miscellaneous Tasks
- [abe2f27](https://github.com/ratatui/ratatui/commit/abe2f273289d3798968a645a38a7a38571530065) *(backend)* Change From<T> impls to new backend specific IntoBackend and FromBackend traits by @joshka in [#1464](https://github.com/ratatui/ratatui/pull/1464) [**breaking**]
- [0a47ebd](https://github.com/ratatui/ratatui/commit/0a47ebd94bbc7a89c9e2aa893cf13a988756ec19) *(bencher)* Update bencher CLI usage by @epompeii in [#1470](https://github.com/ratatui/ratatui/pull/1470)
- [a0979d6](https://github.com/ratatui/ratatui/commit/a0979d68715b2c67b32b8909189bc103f0e81f6e) *(build)* Remove cargo lint by @joshka in [#1549](https://github.com/ratatui/ratatui/pull/1549)
- [eaa4038](https://github.com/ratatui/ratatui/commit/eaa403856ecb60338619e2e727a0388187ae017c) *(ci)* Install pre-built binaries for cargo-rdme by @orhun in [#1477](https://github.com/ratatui/ratatui/pull/1477)
- [e5e2316](https://github.com/ratatui/ratatui/commit/e5e2316451fb4c085f205b4884cc82ba8a4930e6) *(ci)* Add check for keeping README.md up-to-date by @orhun in [#1473](https://github.com/ratatui/ratatui/pull/1473)
- [2ef3583](https://github.com/ratatui/ratatui/commit/2ef3583effdeb6492d76d977177b4363129a8c8c) *(ci)* Replace cargo-make with a custom cargo-xtask by @joshka in [#1461](https://github.com/ratatui/ratatui/pull/1461)
- [98df774](https://github.com/ratatui/ratatui/commit/98df774d7f9b69a2a474d25adf38e38a428f1b77) *(core)* Move core types to ratatui-core by @joshka in [#1460](https://github.com/ratatui/ratatui/pull/1460)
- [35eba76](https://github.com/ratatui/ratatui/commit/35eba76b4dff047dde2d1e01bc427eb1b992b490) *(example)* Move demo2 to top level folder by @joshka in [#1524](https://github.com/ratatui/ratatui/pull/1524)
- [5f57d35](https://github.com/ratatui/ratatui/commit/5f57d3523436e944b60ccc7a937d69336c9f82b8) *(examples)* Add colors explorer demo app by @orhun in [#1580](https://github.com/ratatui/ratatui/pull/1580)
- [5c021bf](https://github.com/ratatui/ratatui/commit/5c021bf344b17fc4075e9663dfb270bead180e25) *(examples)* Add chart demo app by @orhun in [#1579](https://github.com/ratatui/ratatui/pull/1579)
- [9721300](https://github.com/ratatui/ratatui/commit/9721300a473096daf6b34f6cc7c13643d61a4e00) *(examples)* Add canvas demo app by @orhun in [#1578](https://github.com/ratatui/ratatui/pull/1578)
- [a6a1368](https://github.com/ratatui/ratatui/commit/a6a13682507846320a79538ffad673a58c1143f0) *(examples)* Add calendar explorer demo app by @orhun in [#1571](https://github.com/ratatui/ratatui/pull/1571)
- [819e92c](https://github.com/ratatui/ratatui/commit/819e92cd44b6bee7d21115ff465c2f3f8c82ed9b) *(examples)* Add weather demo app by @orhun in [#1567](https://github.com/ratatui/ratatui/pull/1567)
- [b5f7e44](https://github.com/ratatui/ratatui/commit/b5f7e4418364c9710d14567c73122af67e0a63ae) *(examples)* Move async example to apps by @joshka in [#1503](https://github.com/ratatui/ratatui/pull/1503)
- [17316ec](https://github.com/ratatui/ratatui/commit/17316ec5d0a4807600dd116736d66938b985e718) *(github)* Enable sponsorship button by @orhun in [#1478](https://github.com/ratatui/ratatui/pull/1478)
- [d3f01eb](https://github.com/ratatui/ratatui/commit/d3f01ebf6ea97e71bcda8c84b054943e1f24cd4e) *(lint)* Ensure lint config is correct by @joshka in [#1528](https://github.com/ratatui/ratatui/pull/1528)
- [2b7ec5c](https://github.com/ratatui/ratatui/commit/2b7ec5cb7f34edb65fc81d362d3b512b98d246ac) *(widgets)* Enable calendar widget as default by @orhun in [#1521](https://github.com/ratatui/ratatui/pull/1521)
- [d201b8e](https://github.com/ratatui/ratatui/commit/d201b8e5ddd98a1887252179dec8f09e1f342b0c) *(xtask)* Check lints for only library targets by @orhun in [#1531](https://github.com/ratatui/ratatui/pull/1531)
- [6f21319](https://github.com/ratatui/ratatui/commit/6f213191efd528fd7e0d5c99fda3e6d028ee0f98) *(uncategorized)* Rename examples with clashing names by @joshka in [#1597](https://github.com/ratatui/ratatui/pull/1597)
- [11cbb2b](https://github.com/ratatui/ratatui/commit/11cbb2ba87e557a04674973a39d59124d8683ed1) *(uncategorized)* Use cargo xtask for bacon clippy command by @joshka in [#1592](https://github.com/ratatui/ratatui/pull/1592)
- [b544e39](https://github.com/ratatui/ratatui/commit/b544e394c97fffdeddaccd44bea2214ebffa1616) *(uncategorized)* Use clap instead of argh for demo example by @joshka in [#1591](https://github.com/ratatui/ratatui/pull/1591)
- [9a54198](https://github.com/ratatui/ratatui/commit/9a541981b8accd9efe17c0893d18b520bc569b15) *(uncategorized)* Make source files non-executable by @orhun in [#1577](https://github.com/ratatui/ratatui/pull/1577)
- [357ae7e](https://github.com/ratatui/ratatui/commit/357ae7e251721f2e7fcb539de5e6fc60eaa30e29) *(uncategorized)* Move terminal types to ratatui-core by @joshka in [#1530](https://github.com/ratatui/ratatui/pull/1530) [**breaking**]
- [21e62d8](https://github.com/ratatui/ratatui/commit/21e62d84c2d2fa2d5563caf0c0974c2514e56ee5) *(uncategorized)* Move the demo example to main folder by @joshka in [#1523](https://github.com/ratatui/ratatui/pull/1523)
- [fbf6050](https://github.com/ratatui/ratatui/commit/fbf6050c867b63276ae3d6f5bca4d741c2ce355c) *(uncategorized)* Prepare alpha modularization release by @joshka in [#1525](https://github.com/ratatui/ratatui/pull/1525)
- [e4e95bc](https://github.com/ratatui/ratatui/commit/e4e95bcecf15deb09416a0e53193d261f012222a) *(uncategorized)* Remove --color always flags from bacon.toml by @joshka in [#1502](https://github.com/ratatui/ratatui/pull/1502)
- [a41c97b](https://github.com/ratatui/ratatui/commit/a41c97b413b28d0db6d1ea09dcc1d5b8556148b1) *(uncategorized)* Move unstable widget refs to ratatui by @joshka in [#1491](https://github.com/ratatui/ratatui/pull/1491) [**breaking**]
- [e7085e3](https://github.com/ratatui/ratatui/commit/e7085e3a3ec4b3b90a4e69d49add96e7ba65616c) *(uncategorized)* Move widgets into ratatui-widgets crate by @joshka in [#1474](https://github.com/ratatui/ratatui/pull/1474)
- [f1d0a18](https://github.com/ratatui/ratatui/commit/f1d0a1837564d69f00e4b5d9eb94cc001cd3a3a7) *(uncategorized)* Move ratatui crate into workspace folder by @joshka in [#1459](https://github.com/ratatui/ratatui/pull/1459)
- [55fb2d2](https://github.com/ratatui/ratatui/commit/55fb2d2e56b492f0f4131fde9d44951b504cf50c) *(uncategorized)* Update repo links to ratatui instead of ratatui-org by @joshka in [#1458](https://github.com/ratatui/ratatui/pull/1458)
### Continuous Integration
- [4a871f9](https://github.com/ratatui/ratatui/commit/4a871f993ea38069da513660707a072be299b791) *(uncategorized)* Refactor xtask / toml formatting by @joshka in [#1602](https://github.com/ratatui/ratatui/pull/1602)
### New Contributors
* @dawedawe made their first contribution in [#1611](https://github.com/ratatui/ratatui/pull/1611)
* @Its-Just-Nans made their first contribution in [#1584](https://github.com/ratatui/ratatui/pull/1584)
* @MarSik made their first contribution in [#1541](https://github.com/ratatui/ratatui/pull/1541)
* @raylu made their first contribution in [#1540](https://github.com/ratatui/ratatui/pull/1540)
* @renesat made their first contribution in [#1501](https://github.com/ratatui/ratatui/pull/1501)
* @HoKim98 made their first contribution in [#1484](https://github.com/ratatui/ratatui/pull/1484)
* @nilsmartel made their first contribution in [#1485](https://github.com/ratatui/ratatui/pull/1485)
* @marcoieni made their first contribution in [#1480](https://github.com/ratatui/ratatui/pull/1480)
* @epompeii made their first contribution in [#1470](https://github.com/ratatui/ratatui/pull/1470)
* @thomas-tacquet made their first contribution in [#1462](https://github.com/ratatui/ratatui/pull/1462)
* @miroim made their first contribution in [#1448](https://github.com/ratatui/ratatui/pull/1448)
**Full Changelog**: https://github.com/ratatui/ratatui/compare/v0.29.0...0.30.0-alpha.1
## [v0.29.0](https://github.com/ratatui/ratatui/releases/tag/v0.29.0) - 2024-10-21
> _"Food will come, Remy. Food always comes to those who love to cook."_ Gusteau
We are excited to announce the new version of `ratatui` - a Rust library that's all about cooking up TUIs 👨‍🍳🐀
@@ -10,8 +222,6 @@ We are excited to announce the new version of `ratatui` - a Rust library that's
⚠️ List of breaking changes can be found [here](https://github.com/ratatui/ratatui/blob/main/BREAKING-CHANGES.md).
## [v0.29.0](https://github.com/ratatui/ratatui/releases/tag/v0.29.0) - 2024-10-21
### Features
- [3a43274](https://github.com/ratatui/ratatui/commit/3a43274881a79b4e593536c2ca915b509e557215) *(color)* Add hsluv support by @du-ob in [#1333](https://github.com/ratatui/ratatui/pull/1333)
@@ -433,6 +643,7 @@ We are excited to announce the new version of `ratatui` - a Rust library that's
> <https://github.com/ratatui/ratatui/issues/738>
>
> To update your code:
>
> ```rust
>
> Block::new().title(Title::from("foo"));
@@ -483,17 +694,18 @@ We are excited to announce the new version of `ratatui` - a Rust library that's
> Given:```rust
>
> Text::from_iter([
> Line::from("without line fields"),
> Line::from("with line fields").bold().centered(),
> Line::from_iter([
> Span::from("without span fields"),
> Span::from("with span fields")
> .green()
> .on_black()
> .italic()
> .not_dim(),
> ]),
> Line::from("without line fields"),
> Line::from("with line fields").bold().centered(),
> Line::from_iter([
> Span::from("without span fields"),
> Span::from("with span fields")
> .green()
> .on_black()
> .italic()
> .not_dim(),
> ]),
> ])
>
> ```
>
> Debug:```

810
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -2,14 +2,15 @@
resolver = "2"
members = ["ratatui", "ratatui-*", "xtask", "examples/apps/*"]
default-members = [
"ratatui",
"ratatui-core",
"ratatui-crossterm",
# this is not included as it doesn't compile on windows
# "ratatui-termion",
"ratatui-termwiz",
"ratatui-widgets",
"examples/apps/*",
"ratatui",
"ratatui-core",
"ratatui-crossterm",
# this is not included as it doesn't compile on windows
# "ratatui-termion",
"ratatui-macros",
"ratatui-termwiz",
"ratatui-widgets",
"examples/apps/*",
]
[workspace.package]
@@ -26,29 +27,30 @@ edition = "2021"
rust-version = "1.74.0"
[workspace.dependencies]
bitflags = "2.6.0"
bitflags = "2.7.0"
color-eyre = "0.6.3"
crossterm = "0.28.1"
document-features = "0.2.7"
indoc = "2.0.5"
instability = "0.3.5"
instability = "0.3.7"
itertools = "0.13.0"
pretty_assertions = "1.4.1"
ratatui = { path = "ratatui", version = "0.30.0-alpha.0" }
ratatui-core = { path = "ratatui-core", version = "0.1.0-alpha.0" }
ratatui-crossterm = { path = "ratatui-crossterm", version = "0.1.0-alpha.0" }
ratatui-termion = { path = "ratatui-termion", version = "0.1.0-alpha.0" }
ratatui-termwiz = { path = "ratatui-termwiz", version = "0.1.0-alpha.0" }
ratatui-widgets = { path = "ratatui-widgets", version = "0.3.0-alpha.0" }
rstest = "0.23.0"
serde = { version = "1.0.216", features = ["derive"] }
serde_json = "1.0.134"
ratatui = { path = "ratatui", version = "0.30.0-alpha.1" }
ratatui-core = { path = "ratatui-core", version = "0.1.0-alpha.2" }
ratatui-crossterm = { path = "ratatui-crossterm", version = "0.1.0-alpha.1" }
ratatui-macros = { path = "ratatui-macros", version = "0.7.0-alpha.0" }
ratatui-termion = { path = "ratatui-termion", version = "0.1.0-alpha.1" }
ratatui-termwiz = { path = "ratatui-termwiz", version = "0.1.0-alpha.1" }
ratatui-widgets = { path = "ratatui-widgets", version = "0.3.0-alpha.1" }
rstest = "0.24.0"
serde = { version = "1.0.217", features = ["derive"] }
serde_json = "1.0.138"
strum = { version = "0.26.3", features = ["derive"] }
termion = "4.0.0"
termwiz = { version = "0.22.0" }
unicode-segmentation = "1.12.0"
# See <https://github.com/ratatui/ratatui/issues/1271> for information about why we pin unicode-width
unicode-width = "=0.2.0"
termion = "4.0.0"
# Improve benchmark consistency
[profile.bench]

View File

@@ -1,7 +1,7 @@
The MIT License (MIT)
Copyright (c) 2016-2022 Florian Dehau
Copyright (c) 2023-2024 The Ratatui Developers
Copyright (c) 2023-2025 The Ratatui Developers
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -16,10 +16,9 @@
<div align="center">
[![Crate Badge]][Crate] [![Docs Badge]][API Docs] [![CI Badge]][CI Workflow] [![Deps.rs
Badge]][Deps.rs]<br> [![Codecov Badge]][Codecov] [![License Badge]](./LICENSE) [![Sponsors
Badge]][GitHub Sponsors]<br>
[Ratatui Website] · [API Docs] · [Widget Examples] · [App Examples] · [Changelog]<br>
[![Crate Badge]][Crate] [![Repo Badge]][Repo] [![Docs Badge]][Docs] [![License Badge]][License] \
[![CI Badge]][CI] [![Deps Badge]][Deps] [![Codecov Badge]][Codecov] [![Sponsors Badge]][Sponsors] \
[Ratatui Website] · [Docs] · [Widget Examples] · [App Examples] · [Changelog] \
[Breaking Changes] · [Contributing] · [Report a bug] · [Request a Feature]
</div>
@@ -67,13 +66,11 @@ fn render(frame: &mut Frame) {
}
```
See the [documentation](#documentation) for more examples and tutorials.
## Documentation
- [Docs] - the full API documentation for the library on docs.rs.
- [Ratatui Website] - explains the library's concepts and provides step-by-step tutorials.
- [Ratatui Forum][Forum] - a place to ask questions and discuss the library.
- [API Docs] - the full API documentation for the library on docs.rs.
- [Ratatui Forum] - a place to ask questions and discuss the library.
- [Widget Examples] - a collection of examples that demonstrate how to use the library.
- [App Examples] - a collection of more complex examples that demonstrate how to build apps.
- [Changelog] - generated by [git-cliff] utilizing [Conventional Commits].
@@ -105,13 +102,12 @@ list of awesome apps and libraries built with Ratatui!
## Contributing
[![Discord Badge]][Discord Server] [![Matrix Badge]][Matrix]
[![Forum Badge]][Forum]<br>
[![Discord Badge]][Discord Server] [![Matrix Badge]][Matrix] [![Forum Badge]][Ratatui Forum]
Feel free to join our [Discord server](https://discord.gg/pMCEU9hNEj) for discussions and questions!
There is also a [Matrix](https://matrix.org/) bridge available at
[#ratatui:matrix.org](https://matrix.to/#/#ratatui:matrix.org). We have also recently launched the
[Ratatui Forum][Forum].
[Ratatui Forum].
We rely on GitHub for [bugs][Report a bug] and [feature requests][Request a Feature].
@@ -129,11 +125,12 @@ project and organization.
## License
[MIT](./LICENSE)
This project is licensed under the [MIT License][License].
[Repo]: https://github.com/ratatui/ratatui
[Ratatui Website]: https://ratatui.rs/
[Forum]: https://forum.ratatui.rs
[API Docs]: https://docs.rs/ratatui
[Ratatui Forum]: https://forum.ratatui.rs
[Docs]: https://docs.rs/ratatui
[Widget Examples]: https://github.com/ratatui/ratatui/tree/main/ratatui-widgets/examples
[App Examples]: https://github.com/ratatui/ratatui/tree/main/examples
[Changelog]: https://github.com/ratatui/ratatui/blob/main/CHANGELOG.md
@@ -147,18 +144,19 @@ project and organization.
[Contributing]: https://github.com/ratatui/ratatui/blob/main/CONTRIBUTING.md
[Crate]: https://crates.io/crates/ratatui
[tui-rs]: https://crates.io/crates/tui
[GitHub Sponsors]: https://github.com/sponsors/ratatui
[Crate Badge]: https://img.shields.io/crates/v/ratatui?logo=rust&style=flat-square&logoColor=E05D44&color=E05D44
[Sponsors]: https://github.com/sponsors/ratatui
[Crate Badge]: https://img.shields.io/crates/v/ratatui?logo=rust&style=flat-square&color=E05D44
[Repo Badge]: https://img.shields.io/badge/repo-ratatui/ratatui-1370D3?style=flat-square&logo=github
[License Badge]: https://img.shields.io/crates/l/ratatui?style=flat-square&color=1370D3
[CI Badge]: https://img.shields.io/github/actions/workflow/status/ratatui/ratatui/ci.yml?style=flat-square&logo=github
[CI Workflow]: https://github.com/ratatui/ratatui/actions/workflows/ci.yml
[Codecov Badge]: https://img.shields.io/codecov/c/github/ratatui/ratatui?logo=codecov&style=flat-square&token=BAQ8SOKEST&color=C43AC3&logoColor=C43AC3
[CI]: https://github.com/ratatui/ratatui/actions/workflows/ci.yml
[Codecov Badge]: https://img.shields.io/codecov/c/github/ratatui/ratatui?logo=codecov&style=flat-square&token=BAQ8SOKEST&color=C43AC3
[Codecov]: https://app.codecov.io/gh/ratatui/ratatui
[Deps.rs Badge]: https://deps.rs/repo/github/ratatui/ratatui/status.svg?path=ratatui&style=flat-square
[Deps.rs]: https://deps.rs/repo/github/ratatui/ratatui?path=ratatui
[Deps Badge]: https://deps.rs/repo/github/ratatui/ratatui/status.svg?path=ratatui&style=flat-square
[Deps]: https://deps.rs/repo/github/ratatui/ratatui?path=ratatui
[Discord Badge]: https://img.shields.io/discord/1070692720437383208?label=discord&logo=discord&style=flat-square&color=1370D3&logoColor=1370D3
[Discord Server]: https://discord.gg/pMCEU9hNEj
[Docs Badge]: https://img.shields.io/docsrs/ratatui?logo=rust&style=flat-square&logoColor=E05D44
[Docs Badge]: https://img.shields.io/badge/docs-ratatui-1370D3?style=flat-square&logo=rust
[Matrix Badge]: https://img.shields.io/matrix/ratatui-general%3Amatrix.org?style=flat-square&logo=matrix&label=Matrix&color=C43AC3
[Matrix]: https://matrix.to/#/#ratatui:matrix.org
[Forum Badge]: https://img.shields.io/discourse/likes?server=https%3A%2F%2Fforum.ratatui.rs&style=flat-square&logo=discourse&label=forum&color=C43AC3
@@ -169,3 +167,4 @@ project and organization.
[Pavel Fomchenkov]: https://github.com/nawok
[Florian Dehau]: https://github.com/fdehau
[`cargo-generate`]: https://crates.io/crates/cargo-generate
[License]: ./LICENSE

View File

@@ -8,119 +8,57 @@
default_job = "check"
[jobs.check]
command = ["cargo", "check", "--all-features"]
command = ["cargo", "xtask", "check"]
need_stdout = false
[jobs.check-all]
command = ["cargo", "check", "--all-targets", "--all-features"]
command = ["cargo", "xtask", "check", "--all-features"]
need_stdout = false
[jobs.check-crossterm]
command = [
"cargo",
"check",
"--all-targets",
"--no-default-features",
"--features",
"crossterm",
]
command = ["cargo", "xtask", "check-backend", "crossterm"]
need_stdout = false
[jobs.check-termion]
command = [
"cargo",
"check",
"--all-targets",
"--no-default-features",
"--features",
"termion",
]
command = ["cargo", "xtask", "check-backend", "termion"]
need_stdout = false
[jobs.check-termwiz]
command = [
"cargo",
"check",
"--all-targets",
"--no-default-features",
"--features",
"termwiz",
]
command = ["cargo", "xtask", "check-backend", "termwiz"]
need_stdout = false
[jobs.clippy]
command = ["cargo", "clippy", "--all-targets"]
[jobs.clippy-all]
command = ["cargo", "xtask", "clippy"]
need_stdout = false
[jobs.test]
command = ["cargo", "test", "--all-features"]
command = ["cargo", "xtask", "test"]
need_stdout = true
[jobs.test-unit]
command = ["cargo", "test", "--lib", "--all-features"]
command = ["cargo", "xtask", "test-libs"]
need_stdout = true
[jobs.doc]
command = [
"cargo",
"+nightly",
"doc",
"-Zunstable-options",
"-Zrustdoc-scrape-examples",
"--all-features",
"--no-deps",
]
env.RUSTDOCFLAGS = "--cfg docsrs"
command = ["cargo", "xtask", "docs"]
need_stdout = false
# If the doc compiles, then it opens in your browser and bacon switches
# to the previous job
[jobs.doc-open]
command = [
"cargo",
"+nightly",
"doc",
"-Zunstable-options",
"-Zrustdoc-scrape-examples",
"--all-features",
"--no-deps",
"--open",
]
env.RUSTDOCFLAGS = "--cfg docsrs"
command = ["cargo", "xtask", "docs", "--open"]
on_success = "job:doc"
need_stdout = false
on_success = "job:doc" # so that we don't open the browser at each change
[jobs.coverage]
command = [
"cargo",
"llvm-cov",
"--lcov",
"--output-path",
"target/lcov.info",
"--all-features",
]
command = ["cargo", "xtask", "coverage"]
[jobs.coverage-unit-tests-only]
command = [
"cargo",
"llvm-cov",
"--lcov",
"--output-path",
"target/lcov.info",
"--lib",
"--all-features",
]
command = ["cargo", "xtask", "coverage", "--lib"]
[jobs.hack]
command = [
"cargo",
"hack",
"test",
"--lib",
"--each-feature",
# "--all-targets",
"--workspace",
]
command = ["cargo", "xtask", "hack"]
[jobs.format]
command = ["cargo", "xtask", "format"]
# You may define here keybindings that would be specific to
# a project, for example a shortcut to launch a specific job.
@@ -135,3 +73,4 @@ v = "job:coverage"
ctrl-v = "job:coverage-unit-tests-only"
u = "job:test-unit"
n = "job:nextest"
f = "job:format"

View File

@@ -24,7 +24,7 @@ body = """
{%- if not version %}
## [unreleased]
{% else -%}
## [{{ version }}](https://github.com/ratatui/ratatui/releases/tag/{{ version }}) - {{ timestamp | date(format="%Y-%m-%d") }}
## {{ package }} - [{{ version }}]({{ release_link }}) - {{ timestamp | date(format="%Y-%m-%d") }}
{% endif -%}
{% macro commit(commit) -%}
@@ -47,26 +47,16 @@ body = """
{%- endfor -%}
{%- endfor %}
{% if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %}
### New Contributors
{%- endif %}\
{% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %}
* @{{ contributor.username }} made their first contribution
{%- if contributor.pr_number %} in \
[#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) \
{%- endif %}
{%- endfor -%}
{% if version %}
{% if previous.version %}
**Full Changelog**: {{ self::remote_url() }}/compare/{{ previous.version }}...{{ version }}
**Full Changelog**: {{ release_link }}
{% endif %}
{% else -%}
{% raw %}\n{% endraw %}
{% endif %}
{%- macro remote_url() -%}
https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}\
https://github.com/{{ remote.owner }}/{{ remote.repo }}\
{% endmacro %}
"""

View File

@@ -4,16 +4,16 @@
version = 2
confidence-threshold = 0.8
allow = [
"Apache-2.0",
"BSD-2-Clause",
"BSD-3-Clause",
"ISC",
"MIT",
"OpenSSL",
"Unicode-3.0",
"Unicode-DFS-2016",
"WTFPL",
"Zlib",
"Apache-2.0",
"BSD-2-Clause",
"BSD-3-Clause",
"ISC",
"MIT",
"OpenSSL",
"Unicode-3.0",
"Unicode-DFS-2016",
"WTFPL",
"Zlib",
]
[advisories]

View File

@@ -1,10 +1,9 @@
# Examples
This folder contains examples that are more app focused. There are also other examples in example
folders under each crate folder e.g. [ratatui examples], [ratatui-widgets examples].
This folder contains examples that are more application focused.
There are also [widget examples] in `ratatui-widgets`.
[ratatui examples]: ../ratatui/examples
[ratatui-widgets examples]: ../ratatui-widgets/examples
[widget examples]: ../ratatui-widgets/examples
You can run these examples using:
@@ -36,31 +35,238 @@ of the `main` branch for code which is guaranteed to work with the released rata
> We don't keep the CHANGELOG updated with unreleased changes, check the git commit history or run
> `git-cliff -u` against a cloned version of this repository.
## Design choices
The examples contain some opinionated choices in order to make it easier for newer rustaceans to
easily be productive in creating applications:
- Each example has an `App` struct, with methods that implement a main loop, handle events and drawing
the UI.
- We use `color_eyre` for handling errors and panics. See [How to use color-eyre with Ratatui] on the
website for more information about this.
- Common code is not extracted into a separate file. This makes each example self-contained and easy
to read as a whole.
[How to use color-eyre with Ratatui]: https://ratatui.rs/recipes/apps/color-eyre/
## Demo
This is the original demo example from the main README. It is available for each of the backends.
[Source](./apps/demo/).
![Demo](https://github.com/ratatui/ratatui/blob/images/examples/demo.gif?raw=true)
![Demo](demo.gif)
## Demo2
This is the demo example from the main README and crate page. [Source](./apps/demo2/).
![Demo2](https://github.com/ratatui/ratatui/blob/images/examples/demo2.gif?raw=true)
![Demo2](demo2.gif)
## Mouse Drawing demo
Shows how to handle mouse events. [Source](./apps/mouse-drawing/).
## Async GitHub demo
## Async GitHub
Shows how to fetch data from GitHub API asynchronously. [Source](./apps/async-github/).
## Weather demo
![Async GitHub demo][async-github.gif]
## Calendar Explorer
Shows how to render a calendar with different styles. [Source](./apps/calendar-explorer/).
![Calendar explorer demo][calendar-explorer.gif]
## Canvas
Shows how to render a canvas with different shapes. [Source](./apps/canvas/).
![Canvas demo][canvas.gif]
## Chart
Shows how to render line, bar, and scatter charts. [Source](./apps/chart/).
![Chart demo][chart.gif]
## Color Explorer
Shows how to handle the supported colors. [Source](./apps/color-explorer/).
![Color explorer demo][color-explorer.gif]
## Colors-RGB demo
Shows the full range of RGB colors in an animation. [Source](./apps/colors-rgb/).
![Colors-RGB demo][colors-rgb.gif]
## Constraint Explorer
Shows how different constraints can be used to layout widgets. [Source](./apps/constraint-explorer/).
![Constraint Explorer demo][constraint-explorer.gif]
## Constraints
Shows different types of constraints. [Source](./apps/constraints/).
![Constraints demo][constraints.gif]
## Custom Widget
Shows how to create a custom widget that can be interacted with the mouse. [Source](./apps/custom-widget/).
![Custom widget demo][custom-widget.gif]
## Hyperlink
Shows how to render hyperlinks in a terminal using [OSC
8](https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda). [Source](./apps/hyperlink/).
![Hyperlink demo][hyperlink.gif]
## Flex
Shows how to use the flex layouts. [Source](./apps/flex/).
![Flex demo][flex.gif]
## Hello World
Shows how to create a simple TUI with a text. [Source](./apps/hello-world/).
![Hello World demo][hello-world.gif]
## Gauge
Shows different types of gauges. [Source](./apps/gauge/).
## Inline
Shows how to use the inlined viewport to render in a specific area of the screen. [Source](./apps/inline/).
![Inline demo][inline.gif]
## Input Form
Shows how to render a form with input fields. [Source](./apps/input-form/).
## Modifiers
Shows different types of modifiers. [Source](./apps/modifiers/).
![Modifiers demo][modifiers.gif]
## Mouse Drawing
Shows how to handle mouse events. [Source](./apps/mouse-drawing/).
## Minimal
Shows how to create a minimal application. [Source](./apps/minimal/).
![Minimal demo][minimal.gif]
## Panic
Shows how to handle panics. [Source](./apps/panic/).
![Panic demo][panic.gif]
## Popup
Shows how to handle popups. [Source](./apps/popup/).
![Popup demo][popup.gif]
## Scrollbar
Shows how to render different types of scrollbars. [Source](./apps/scrollbar/).
![Scrollbar demo][scrollbar.gif]
## Table
Shows how to create an interactive table. [Source](./apps/table/).
![Table demo][table.gif]
## Todo List
Shows how to create a simple todo list application. [Source](./apps/todo-list/).
![Todo List demo][todo-list.gif]
## Tracing
Shows how to use the [tracing](https://crates.io/crates/tracing) crate to log to a file. [Source](./apps/tracing/).
![Tracing demo][tracing.gif]
## User Input
Shows how to handle user input. [Source](./apps/user-input/). [Source](./apps/user-input/).
![User input demo][user-input.gif]
## Weather
Shows how to render weather data using barchart widget. [Source](./apps/weather/).
## Calendar explorer demo
## WidgetRef Container
Shows how to render a calendar with different styles. [Source](./apps/calendar-explorer/).
Shows how to use [`WidgetRef`](https://docs.rs/ratatui/latest/ratatui/widgets/trait.WidgetRef.html) to store widgets in a container. [Source](./apps/widget-ref-container/).
## Advanced Widget Implementation
Shows how to render the `Widget` trait in different ways.
![Advanced widget impl demo][advanced-widget-impl.gif]
---
<details>
<summary>How to update these examples?</summary>
These gifs were created using [VHS](https://github.com/charmbracelet/vhs). Each example has a
corresponding `.tape` file that holds instructions for how to generate the images. Note that the
images themselves are stored in a separate `images` git branch to avoid bloating the `main`
branch.
<!--
Links to images to make them easier to update in bulk. Use the following script to update and upload
the examples to the images branch. (Requires push access to the branch).
```shell
vhs/generate.bash
```
-->
</details>
[advanced-widget-impl.gif]: https://github.com/ratatui/ratatui/blob/images/examples/advanced-widget-impl.gif?raw=true
[async-github.gif]: https://github.com/ratatui/ratatui/blob/images/examples/async-github.gif?raw=true
[calendar-explorer.gif]: https://github.com/ratatui/ratatui/blob/images/examples/calendar-explorer.gif?raw=true
[canvas.gif]: https://github.com/ratatui/ratatui/blob/images/examples/canvas.gif?raw=true
[chart.gif]: https://github.com/ratatui/ratatui/blob/images/examples/chart.gif?raw=true
[color-explorer.gif]: https://github.com/ratatui/ratatui/blob/images/examples/color-explorer.gif?raw=true
[colors-rgb.gif]: https://github.com/ratatui/ratatui/blob/images/examples/colors-rgb.gif?raw=true
[constraint-explorer.gif]: https://github.com/ratatui/ratatui/blob/images/examples/constraint-explorer.gif?raw=true
[constraints.gif]: https://github.com/ratatui/ratatui/blob/images/examples/constraints.gif?raw=true
[custom-widget.gif]: https://github.com/ratatui/ratatui/blob/images/examples/custom-widget.gif?raw=true
[demo2-destroy.gif]: https://github.com/ratatui/ratatui/blob/images/examples/demo2-destroy.gif?raw=true
[demo2-social.gif]: https://github.com/ratatui/ratatui/blob/images/examples/demo2-social.gif?raw=true
[demo2.gif]: https://github.com/ratatui/ratatui/blob/images/examples/demo2.gif?raw=true
[demo.gif]: https://github.com/ratatui/ratatui/blob/images/examples/demo.gif?raw=true
[flex.gif]: https://github.com/ratatui/ratatui/blob/images/examples/flex.gif?raw=true
[hello-world.gif]: https://github.com/ratatui/ratatui/blob/images/examples/hello-world.gif?raw=true
[hyperlink.gif]: https://github.com/ratatui/ratatui/blob/images/examples/hyperlink.gif?raw=true
[inline.gif]: https://github.com/ratatui/ratatui/blob/images/examples/inline.gif?raw=true
[minimal.gif]: https://github.com/ratatui/ratatui/blob/images/examples/minimal.gif?raw=true
[modifiers.gif]: https://github.com/ratatui/ratatui/blob/images/examples/modifiers.gif?raw=true
[panic.gif]: https://github.com/ratatui/ratatui/blob/images/examples/panic.gif?raw=true
[popup.gif]: https://github.com/ratatui/ratatui/blob/images/examples/popup.gif?raw=true
[scrollbar.gif]: https://github.com/ratatui/ratatui/blob/images/examples/scrollbar.gif?raw=true
[table.gif]: https://github.com/ratatui/ratatui/blob/images/examples/table.gif?raw=true
[todo-list.gif]: https://github.com/ratatui/ratatui/blob/images/examples/todo-list.gif?raw=true
[tracing.gif]: https://github.com/ratatui/ratatui/blob/images/examples/tracing.gif?raw=true
[user-input.gif]: https://github.com/ratatui/ratatui/blob/images/examples/user-input.gif?raw=true

View File

@@ -0,0 +1,14 @@
[package]
name = "advanced-widget-impl"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
ratatui = { workspace = true, features = ["unstable-widget-ref"] }
[lints]
workspace = true

View File

@@ -0,0 +1,9 @@
# Advanced Widget Implementation demo
This example shows how to render the `Widget` trait in different ways.
To run this demo:
```shell
cargo run -p advanced-widget-impl
```

View File

@@ -1,21 +1,14 @@
//! # [Ratatui] Widgets implementation examples
//!
//! This example demonstrates various ways to implement widget traits in Ratatui on a type, a
//! reference, and a mutable reference. It also shows how to use the `WidgetRef` trait to render
//! boxed widgets.
//!
//! The latest version of this example is available in the [examples] folder in the repository.
//!
//! Please note that the examples are designed to be run against the `main` branch of the Github
//! repository. This means that you may not be able to compile with the latest release version on
//! crates.io, or the one that you have installed locally.
//!
//! See the [examples readme] for more information on finding examples that match the version of the
//! library you are using.
//!
//! [Ratatui]: https://github.com/ratatui/ratatui
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
/// A Ratatui example that demonstrates how to implement the `Widget` trait.
///
/// This example demonstrates various ways to implement `Widget` traits in Ratatui on a type, a
/// reference, and a mutable reference. It also shows how to use the `WidgetRef` trait to
/// render boxed widgets.
///
/// This example runs with the Ratatui library code in the branch that you are currently
/// reading. See the [`latest`] branch for the code which works with the most recent Ratatui
/// release.
///
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
use std::time::{Duration, Instant};
use color_eyre::Result;
@@ -40,7 +33,6 @@ fn main() -> Result<()> {
struct App {
should_quit: bool,
timer: Timer,
#[cfg(feature = "unstable-widget-ref")]
boxed_squares: BoxedSquares,
green_square: RightAlignedSquare,
}
@@ -93,7 +85,6 @@ impl Widget for &mut App {
self.timer.render(timer, buf);
// render a boxed widget containing red and blue squares
#[cfg(feature = "unstable-widget-ref")]
self.boxed_squares.render(squares, buf);
// render a mutable reference to the green square widget

View File

@@ -16,7 +16,7 @@ rust-version.workspace = true
[dependencies]
color-eyre = "0.6.3"
crossterm = { workspace = true, features = ["event-stream"] }
octocrab = "0.42.1"
octocrab = "0.43.0"
ratatui.workspace = true
tokio = { version = "1.42.0", features = ["rt-multi-thread", "macros"] }
tokio = { version = "1.43.0", features = ["rt-multi-thread", "macros"] }
tokio-stream = "0.1.17"

View File

@@ -0,0 +1,15 @@
[package]
name = "colors-rgb"
version = "0.1.0"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
palette = "0.7.6"
ratatui.workspace = true
[lints]
workspace = true

View File

@@ -0,0 +1,9 @@
# Colors-RGB demo
This example shows the full range of RGB colors in an animation.
To run this demo:
```shell
cargo run -p colors-rgb
```

View File

@@ -1,30 +1,20 @@
//! # [Ratatui] `Colors_RGB` example
//! A Ratatui example that shows the full range of RGB colors that can be displayed in the terminal.
//!
//! The latest version of this example is available in the [examples] folder in the repository.
//! Requires a terminal that supports 24-bit color (true color) and unicode.
//!
//! Please note that the examples are designed to be run against the `main` branch of the Github
//! repository. This means that you may not be able to compile with the latest release version on
//! crates.io, or the one that you have installed locally.
//! This example also demonstrates how implementing the Widget trait on a mutable reference
//! allows the widget to update its state while it is being rendered. This allows the fps
//! widget to update the fps calculation and the colors widget to update a cached version of
//! the colors to render instead of recalculating them every frame.
//!
//! See the [examples readme] for more information on finding examples that match the version of the
//! library you are using.
//! This is an alternative to using the `StatefulWidget` trait and a separate state struct. It
//! is useful when the state is only used by the widget and doesn't need to be shared with
//! other widgets.
//!
//! [Ratatui]: https://github.com/ratatui/ratatui
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
// This example shows the full range of RGB colors that can be displayed in the terminal.
//
// Requires a terminal that supports 24-bit color (true color) and unicode.
//
// This example also demonstrates how implementing the Widget trait on a mutable reference
// allows the widget to update its state while it is being rendered. This allows the fps
// widget to update the fps calculation and the colors widget to update a cached version of
// the colors to render instead of recalculating them every frame.
//
// This is an alternative to using the `StatefulWidget` trait and a separate state struct. It
// is useful when the state is only used by the widget and doesn't need to be shared with
// other widgets.
//! This example runs with the Ratatui library code in the branch that you are currently reading.
//! See the [`latest`] branch for the code which works with the most recent Ratatui release.
//!
//! [`latest`]: https://github.com/ratatui/ratatui/tree/latest
use std::time::{Duration, Instant};

View File

@@ -0,0 +1,16 @@
[package]
name = "constraint-explorer"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
itertools.workspace = true
ratatui.workspace = true
strum.workspace = true
[lints]
workspace = true

View File

@@ -0,0 +1,9 @@
# Constraint explorer demo
This interactive example shows how different constraints can be used to layout widgets.
To run this demo:
```shell
cargo run -p constraint-explorer
```

View File

@@ -1,18 +1,13 @@
//! # [Ratatui] Constraint explorer example
//!
//! The latest version of this example is available in the [examples] folder in the repository.
//!
//! Please note that the examples are designed to be run against the `main` branch of the Github
//! repository. This means that you may not be able to compile with the latest release version on
//! crates.io, or the one that you have installed locally.
//!
//! See the [examples readme] for more information on finding examples that match the version of the
//! library you are using.
//!
//! [Ratatui]: https://github.com/ratatui/ratatui
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
/// A Ratatui example that demonstrates how different layout constraints work.
///
/// It also supports swapping constraints, adding and removing blocks, and changing the spacing
/// between blocks.
///
/// This example runs with the Ratatui library code in the branch that you are currently
/// reading. See the [`latest`] branch for the code which works with the most recent Ratatui
/// release.
///
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
use color_eyre::Result;
use itertools::Itertools;
use ratatui::{

View File

@@ -0,0 +1,15 @@
[package]
name = "constraints"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
ratatui.workspace = true
strum.workspace = true
[lints]
workspace = true

View File

@@ -0,0 +1,9 @@
# Constraints demo
This example shows different types of constraints.
To run this demo:
```shell
cargo run -p constraints
```

View File

@@ -1,18 +1,10 @@
//! # [Ratatui] Constraints example
//!
//! The latest version of this example is available in the [examples] folder in the repository.
//!
//! Please note that the examples are designed to be run against the `main` branch of the Github
//! repository. This means that you may not be able to compile with the latest release version on
//! crates.io, or the one that you have installed locally.
//!
//! See the [examples readme] for more information on finding examples that match the version of the
//! library you are using.
//!
//! [Ratatui]: https://github.com/ratatui/ratatui
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
/// A Ratatui example that demonstrates different types of constraints.
///
/// This example runs with the Ratatui library code in the branch that you are currently
/// reading. See the [`latest`] branch for the code which works with the most recent Ratatui
/// release.
///
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
use color_eyre::Result;
use ratatui::{
buffer::Buffer,

View File

@@ -0,0 +1,14 @@
[package]
name = "custom-widget"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
ratatui.workspace = true
[lints]
workspace = true

View File

@@ -0,0 +1,9 @@
# Custom widget demo
This example shows how to create a custom widget that can be interacted with the mouse.
To run this demo:
```shell
cargo run -p custom-widget
```

View File

@@ -1,18 +1,11 @@
//! # [Ratatui] Custom Widget example
//!
//! The latest version of this example is available in the [examples] folder in the repository.
//!
//! Please note that the examples are designed to be run against the `main` branch of the Github
//! repository. This means that you may not be able to compile with the latest release version on
//! crates.io, or the one that you have installed locally.
//!
//! See the [examples readme] for more information on finding examples that match the version of the
//! library you are using.
//!
//! [Ratatui]: https://github.com/ratatui/ratatui
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
/// A Ratatui example that demonstrates how to create a custom widget that can be interacted
/// with using the mouse.
///
/// This example runs with the Ratatui library code in the branch that you are currently
/// reading. See the [`latest`] branch for the code which works with the most recent Ratatui
/// release.
///
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
use std::{io::stdout, ops::ControlFlow, time::Duration};
use color_eyre::Result;

View File

@@ -12,6 +12,6 @@ termion = ["ratatui/termion"]
termwiz = ["ratatui/termwiz"]
[dependencies]
clap = { version = "4.5.23", features = ["derive"] }
rand = "0.8.5"
clap = { version = "4.5.27", features = ["derive"] }
rand = "0.9.0"
ratatui.workspace = true

View File

@@ -1,5 +1,5 @@
use rand::{
distributions::{Distribution, Uniform},
distr::{Distribution, Uniform},
rngs::ThreadRng,
};
use ratatui::widgets::ListState;
@@ -75,8 +75,8 @@ pub struct RandomSignal {
impl RandomSignal {
pub fn new(lower: u64, upper: u64) -> Self {
Self {
distribution: Uniform::new(lower, upper),
rng: rand::thread_rng(),
distribution: Uniform::new(lower, upper).expect("invalid range"),
rng: rand::rng(),
}
}
}

View File

@@ -84,10 +84,15 @@ fn draw_gauges(frame: &mut Frame, app: &mut App, area: Rect) {
let line_gauge = LineGauge::default()
.block(Block::new().title("LineGauge:"))
.filled_style(Style::default().fg(Color::Magenta))
.line_set(if app.enhanced_graphics {
symbols::line::THICK
.filled_symbol(if app.enhanced_graphics {
symbols::line::THICK_HORIZONTAL
} else {
symbols::line::NORMAL
symbols::line::HORIZONTAL
})
.unfilled_symbol(if app.enhanced_graphics {
symbols::line::THICK_HORIZONTAL
} else {
symbols::line::HORIZONTAL
})
.ratio(app.progress);
frame.render_widget(line_gauge, chunks[2]);

View File

@@ -11,8 +11,8 @@ crossterm.workspace = true
indoc.workspace = true
itertools.workspace = true
palette = "0.7.6"
rand = "0.8.5"
rand_chacha = "0.3.1"
rand = "0.9.0"
rand_chacha = "0.9.0"
ratatui = { workspace = true, features = ["all-widgets"] }
strum.workspace = true
time = "0.3.37"

View File

@@ -47,20 +47,20 @@ fn drip(frame_count: usize, area: Rect, buf: &mut Buffer) {
let variable_speed = DRIP_SPEED as f64 * fractional_speed * fractional_speed * fractional_speed;
let pixel_count = (frame_count as f64 * variable_speed).floor() as usize;
for _ in 0..pixel_count {
let src_x = rng.gen_range(0..area.width);
let src_y = rng.gen_range(1..area.height - 2);
let src_x = rng.random_range(0..area.width);
let src_y = rng.random_range(1..area.height - 2);
let src = buf[(src_x, src_y)].clone();
// 1% of the time, move a blank or pixel (10:1) to the top line of the screen
if rng.gen_ratio(1, 100) {
if rng.random_ratio(1, 100) {
let dest_x = rng
.gen_range(src_x.saturating_sub(5)..src_x.saturating_add(5))
.random_range(src_x.saturating_sub(5)..src_x.saturating_add(5))
.clamp(area.left(), area.right() - 1);
let dest_y = area.top() + 1;
let dest = &mut buf[(dest_x, dest_y)];
// copy the cell to the new location about 1/10 of the time blank out the cell the rest
// of the time. This has the effect of gradually removing the pixels from the screen.
if rng.gen_ratio(1, 10) {
if rng.random_ratio(1, 10) {
*dest = src;
} else {
dest.reset();

View File

@@ -1,47 +1,13 @@
use itertools::Itertools;
use ratatui::{
buffer::Buffer,
layout::{Alignment, Constraint, Layout, Margin, Rect},
widgets::{Block, Borders, Clear, Padding, Paragraph, Widget, Wrap},
widgets::{
Block, Borders, Clear, MascotEyeColor, Padding, Paragraph, RatatuiMascot, Widget, Wrap,
},
};
use crate::{RgbSwatch, THEME};
const RATATUI_LOGO: [&str; 32] = [
" ███ ",
" ██████ ",
" ███████ ",
" ████████ ",
" █████████ ",
" ██████████ ",
" ████████████ ",
" █████████████ ",
" █████████████ ██████",
" ███████████ ████████",
" █████ ███████████ ",
" ███ ██ee████████ ",
" █ █████████████ ",
" ████ █████████████ ",
" █████████████████ ",
" ████████████████ ",
" ████████████████ ",
" ███ ██████████ ",
" ██ █████████ ",
" █xx█ █████████ ",
" █xxxx█ ██████████ ",
" █xx█xxx█ █████████ ",
" █xx██xxxx█ ████████ ",
" █xxxxxxxxxx█ ██████████ ",
" █xxxxxxxxxxxx█ ██████████ ",
" █xxxxxxx██xxxxx█ █████████ ",
" █xxxxxxxxx██xxxxx█ ████ ███ ",
" █xxxxxxxxxxxxxxxxxx█ ██ ███ ",
"█xxxxxxxxxxxxxxxxxxxx█ █ ███ ",
"█xxxxxxxxxxxxxxxxxxxxx█ ███ ",
" █xxxxxxxxxxxxxxxxxxxxx█ ███ ",
" █xxxxxxxxxxxxxxxxxxxxx█ █ ",
];
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
pub struct AboutTab {
row_index: usize,
@@ -61,9 +27,20 @@ impl Widget for AboutTab {
fn render(self, area: Rect, buf: &mut Buffer) {
RgbSwatch.render(area, buf);
let horizontal = Layout::horizontal([Constraint::Length(34), Constraint::Min(0)]);
let [description, logo] = horizontal.areas(area);
let [logo_area, description] = horizontal.areas(area);
render_crate_description(description, buf);
render_logo(self.row_index, logo, buf);
let eye_state = if self.row_index % 2 == 0 {
MascotEyeColor::Default
} else {
MascotEyeColor::Red
};
RatatuiMascot::default().set_eye(eye_state).render(
logo_area.inner(Margin {
vertical: 0,
horizontal: 2,
}),
buf,
);
}
}
@@ -96,70 +73,3 @@ fn render_crate_description(area: Rect, buf: &mut Buffer) {
.scroll((0, 0))
.render(area, buf);
}
/// Use half block characters to render a logo based on the `RATATUI_LOGO` const.
///
/// The logo is rendered in three colors, one for the rat, one for the terminal, and one for the
/// rat's eye. The eye color alternates between two colors based on the selected row.
#[allow(clippy::cast_possible_truncation)]
pub fn render_logo(selected_row: usize, area: Rect, buf: &mut Buffer) {
let eye_color = if selected_row % 2 == 0 {
THEME.logo.rat_eye
} else {
THEME.logo.rat_eye_alt
};
let area = area.inner(Margin {
vertical: 0,
horizontal: 2,
});
for (y, (line1, line2)) in RATATUI_LOGO.iter().tuples().enumerate() {
for (x, (ch1, ch2)) in line1.chars().zip(line2.chars()).enumerate() {
let x = area.left() + x as u16;
let y = area.top() + y as u16;
let cell = &mut buf[(x, y)];
let rat_color = THEME.logo.rat;
let term_color = THEME.logo.term;
match (ch1, ch2) {
('█', '█') => {
cell.set_char('█');
cell.fg = rat_color;
cell.bg = rat_color;
}
('█', ' ') => {
cell.set_char('▀');
cell.fg = rat_color;
}
(' ', '█') => {
cell.set_char('▄');
cell.fg = rat_color;
}
('█', 'x') => {
cell.set_char('▀');
cell.fg = rat_color;
cell.bg = term_color;
}
('x', '█') => {
cell.set_char('▄');
cell.fg = rat_color;
cell.bg = term_color;
}
('x', 'x') => {
cell.set_char(' ');
cell.fg = term_color;
cell.bg = term_color;
}
('█', 'e') => {
cell.set_char('▀');
cell.fg = rat_color;
cell.bg = eye_color;
}
('e', '█') => {
cell.set_char('▄');
cell.fg = rat_color;
cell.bg = eye_color;
}
(_, _) => {}
};
}
}
}

View File

@@ -159,6 +159,7 @@ fn render_line_gauge(percent: f64, area: Rect, buf: &mut Buffer) {
.style(Style::new().light_blue())
.filled_style(Style::new().fg(filled_color))
.unfilled_style(Style::new().fg(unfilled_color))
.line_set(symbols::line::THICK)
.filled_symbol(symbols::line::THICK_HORIZONTAL)
.unfilled_symbol(symbols::line::THICK_HORIZONTAL)
.render(area, buf);
}

View File

@@ -22,10 +22,8 @@ pub struct KeyBinding {
}
pub struct Logo {
pub rat: Color,
pub rat_eye: Color,
pub rat_eye_alt: Color,
pub term: Color,
}
pub struct Email {
@@ -77,10 +75,8 @@ pub const THEME: Theme = Theme {
description: Style::new().fg(LIGHT_GRAY).bg(DARK_BLUE),
description_title: Style::new().fg(LIGHT_GRAY).add_modifier(Modifier::BOLD),
logo: Logo {
rat: WHITE,
rat_eye: BLACK,
rat_eye_alt: RED,
term: BLACK,
},
key_binding: KeyBinding {
key: Style::new().fg(BLACK).bg(DARK_GRAY),

View File

@@ -0,0 +1,15 @@
[package]
name = "flex"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
ratatui.workspace = true
strum.workspace = true
[lints]
workspace = true

View File

@@ -0,0 +1,9 @@
# Flex demo
This interactive example shows how to use the flex layouts.
To run this demo:
```shell
cargo run -p flex
```

View File

@@ -1,18 +1,13 @@
//! # [Ratatui] Flex example
//!
//! The latest version of this example is available in the [examples] folder in the repository.
//!
//! Please note that the examples are designed to be run against the `main` branch of the Github
//! repository. This means that you may not be able to compile with the latest release version on
//! crates.io, or the one that you have installed locally.
//!
//! See the [examples readme] for more information on finding examples that match the version of the
//! library you are using.
//!
//! [Ratatui]: https://github.com/ratatui/ratatui
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
/// A Ratatui example that demonstrates different types of flex layouts.
///
/// You can also change the spacing between the constraints, and toggle between different types
/// of flex layouts.
///
/// This example runs with the Ratatui library code in the branch that you are currently
/// reading. See the [`latest`] branch for the code which works with the most recent Ratatui
/// release.
///
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
use std::num::NonZeroUsize;
use color_eyre::Result;

View File

@@ -0,0 +1,14 @@
[package]
name = "gauge"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
ratatui.workspace = true
[lints]
workspace = true

View File

@@ -0,0 +1,9 @@
# Gauge demo
This example shows different types of gauges.
To run this demo:
```shell
cargo run -p gauge
```

View File

@@ -1,18 +1,10 @@
//! # [Ratatui] Gauge example
//!
//! The latest version of this example is available in the [examples] folder in the repository.
//!
//! Please note that the examples are designed to be run against the `main` branch of the Github
//! repository. This means that you may not be able to compile with the latest release version on
//! crates.io, or the one that you have installed locally.
//!
//! See the [examples readme] for more information on finding examples that match the version of the
//! library you are using.
//!
//! [Ratatui]: https://github.com/ratatui/ratatui
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
/// A Ratatui example that demonstrates different types of gauges.
///
/// This example runs with the Ratatui library code in the branch that you are currently
/// reading. See the [`latest`] branch for the code which works with the most recent Ratatui
/// release.
///
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
use std::time::Duration;
use color_eyre::Result;

View File

@@ -0,0 +1,14 @@
[package]
name = "hello-world"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
ratatui.workspace = true
[lints]
workspace = true

View File

@@ -0,0 +1,9 @@
# Hello World demo
This example shows how to create a simple TUI with a text.
To run this demo:
```shell
cargo run -p hello-world
```

View File

@@ -1,18 +1,10 @@
//! # [Ratatui] Hello World example
//!
//! The latest version of this example is available in the [examples] folder in the repository.
//!
//! Please note that the examples are designed to be run against the `main` branch of the Github
//! repository. This means that you may not be able to compile with the latest release version on
//! crates.io, or the one that you have installed locally.
//!
//! See the [examples readme] for more information on finding examples that match the version of the
//! library you are using.
//!
//! [Ratatui]: https://github.com/ratatui/ratatui
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
/// A Ratatui example that demonstrates a basic hello world application.
///
/// This example runs with the Ratatui library code in the branch that you are currently
/// reading. See the [`latest`] branch for the code which works with the most recent Ratatui
/// release.
///
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
use std::time::Duration;
use color_eyre::{eyre::Context, Result};

View File

@@ -0,0 +1,15 @@
[package]
name = "hyperlink"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
itertools.workspace = true
ratatui.workspace = true
[lints]
workspace = true

View File

@@ -0,0 +1,9 @@
# Hyperlink demo
This example shows how to render hyperlinks in a terminal using [OSC 8](https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda).
To run this demo:
```shell
cargo run -p hyperlink
```

View File

@@ -1,21 +1,11 @@
//! # [Ratatui] Hyperlink examplew
//!
//! Shows how to use [OSC 8] to create hyperlinks in the terminal.
//!
//! The latest version of this example is available in the [examples] folder in the repository.
//!
//! Please note that the examples are designed to be run against the `main` branch of the Github
//! repository. This means that you may not be able to compile with the latest release version on
//! crates.io, or the one that you have installed locally.
//!
//! See the [examples readme] for more information on finding examples that match the version of the
//! library you are using.
//!
//! [OSC 8]: https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
//! [Ratatui]: https://github.com/ratatui/ratatui
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
/// A Ratatui example that how to create hyperlinks in the terminal using [OSC 8].
///
/// This example runs with the Ratatui library code in the branch that you are currently
/// reading. See the [`latest`] branch for the code which works with the most recent Ratatui
/// release.
///
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
/// [OSC 8]: https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
use color_eyre::Result;
use itertools::Itertools;
use ratatui::{

View File

@@ -0,0 +1,15 @@
[package]
name = "inline"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
rand = "0.9.0"
ratatui.workspace = true
[lints]
workspace = true

View File

@@ -0,0 +1,9 @@
# Inline demo
This example shows how to use the inlined viewport to render in a specific area of the screen.
To run this demo:
```shell
cargo run -p inline
```

View File

@@ -1,18 +1,12 @@
//! # [Ratatui] Inline example
//!
//! The latest version of this example is available in the [examples] folder in the repository.
//!
//! Please note that the examples are designed to be run against the `main` branch of the Github
//! repository. This means that you may not be able to compile with the latest release version on
//! crates.io, or the one that you have installed locally.
//!
//! See the [examples readme] for more information on finding examples that match the version of the
//! library you are using.
//!
//! [Ratatui]: https://github.com/ratatui/ratatui
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
/// A Ratatui example that demonstrates how to use the inlined viewport.
///
/// It shows a list of downloads in progress, with a progress bar for each download.
///
/// This example runs with the Ratatui library code in the branch that you are currently
/// reading. See the [`latest`] branch for the code which works with the most recent Ratatui
/// release.
///
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
use std::{
collections::{BTreeMap, VecDeque},
sync::mpsc,
@@ -21,7 +15,7 @@ use std::{
};
use color_eyre::Result;
use rand::distributions::{Distribution, Uniform};
use rand::distr::{Distribution, Uniform};
use ratatui::{
backend::Backend,
crossterm::event,
@@ -152,8 +146,8 @@ fn workers(tx: mpsc::Sender<Event>) -> Vec<Worker> {
}
fn downloads() -> Downloads {
let distribution = Uniform::new(0, 1000);
let mut rng = rand::thread_rng();
let distribution = Uniform::new(0, 1000).expect("invalid range");
let mut rng = rand::rng();
let pending = (0..NUM_DOWNLOADS)
.map(|id| {
let size = distribution.sample(&mut rng);

View File

@@ -0,0 +1,13 @@
[package]
name = "minimal"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
crossterm.workspace = true
ratatui.workspace = true
[lints]
workspace = true

View File

@@ -0,0 +1,9 @@
# Minimal demo
This example shows how to create a minimal application.
To run this demo:
```shell
cargo run -p minimal
```

View File

@@ -0,0 +1,31 @@
/// A minimal example of a Ratatui application.
///
/// This is a bare minimum example. There are many approaches to running an application loop,
/// so this is not meant to be prescriptive. See the [examples] folder for more complete
/// examples. In particular, the [hello-world] example is a good starting point.
///
/// This example runs with the Ratatui library code in the branch that you are currently
/// reading. See the [`latest`] branch for the code which works with the most recent Ratatui
/// release.
///
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
/// [examples]: https://github.com/ratatui/ratatui/blob/main/examples
/// [hello-world]: https://github.com/ratatui/ratatui/blob/main/examples/apps/hello-world
use crossterm::event::{self, Event};
use ratatui::{text::Text, Frame};
fn main() {
let mut terminal = ratatui::init();
loop {
terminal.draw(draw).expect("failed to draw frame");
if matches!(event::read().expect("failed to read event"), Event::Key(_)) {
break;
}
}
ratatui::restore();
}
fn draw(frame: &mut Frame) {
let text = Text::raw("Hello World!");
frame.render_widget(text, frame.area());
}

View File

@@ -0,0 +1,15 @@
[package]
name = "modifiers"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
itertools.workspace = true
ratatui.workspace = true
[lints]
workspace = true

View File

@@ -0,0 +1,9 @@
# Modifiers demo
This example shows different types of modifiers.
To run this demo:
```shell
cargo run -p modifiers
```

View File

@@ -1,22 +1,13 @@
//! # [Ratatui] Modifiers example
//!
//! The latest version of this example is available in the [examples] folder in the repository.
//!
//! Please note that the examples are designed to be run against the `main` branch of the Github
//! repository. This means that you may not be able to compile with the latest release version on
//! crates.io, or the one that you have installed locally.
//!
//! See the [examples readme] for more information on finding examples that match the version of the
//! library you are using.
//!
//! [Ratatui]: https://github.com/ratatui/ratatui
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
// This example is useful for testing how your terminal emulator handles different modifiers.
// It will render a grid of combinations of foreground and background colors with all
// modifiers applied to them.
/// A Ratatui example that demonstrates how to use modifiers.
///
/// It will render a grid of combinations of foreground and background colors with all
/// modifiers applied to them.
///
/// This example runs with the Ratatui library code in the branch that you are currently
/// reading. See the [`latest`] branch for the code which works with the most recent Ratatui
/// release.
///
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
use std::{error::Error, iter::once, result};
use itertools::Itertools;

View File

@@ -10,7 +10,7 @@ color-eyre.workspace = true
crossterm.workspace = true
## a collection of line drawing algorithms (e.g. Bresenham's line algorithm)
line_drawing = "1.0.0"
rand = "0.8.5"
rand = "0.9.0"
ratatui.workspace = true
[lints]

View File

@@ -0,0 +1,14 @@
[package]
name = "panic"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
ratatui.workspace = true
[lints]
workspace = true

View File

@@ -0,0 +1,9 @@
# Panic demo
This example shows how to handle panics in your application.
To run this demo:
```shell
cargo run -p panic
```

View File

@@ -1,43 +1,34 @@
//! # [Ratatui] Panic Hook example
//!
//! The latest version of this example is available in the [examples] folder in the repository.
//!
//! Please note that the examples are designed to be run against the `main` branch of the Github
//! repository. This means that you may not be able to compile with the latest release version on
//! crates.io, or the one that you have installed locally.
//!
//! See the [examples readme] for more information on finding examples that match the version of the
//! library you are using.
//!
//! [Ratatui]: https://github.com/ratatui/ratatui
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
//!
//! Prior to Ratatui 0.28.1, a panic hook had to be manually set up to ensure that the terminal was
//! reset when a panic occurred. This was necessary because a panic would interrupt the normal
//! control flow and leave the terminal in a distorted state.
//!
//! Starting with Ratatui 0.28.1, the panic hook is automatically set up by the new `ratatui::init`
//! function, so you no longer need to manually set up the panic hook. This example now demonstrates
//! how the panic hook acts when it is enabled by default.
//!
//! When exiting normally or when handling `Result::Err`, we can reset the terminal manually at the
//! end of `main` just before we print the error.
//!
//! Because a panic interrupts the normal control flow, manually resetting the terminal at the end
//! of `main` won't do us any good. Instead, we need to make sure to set up a panic hook that first
//! resets the terminal before handling the panic. This both reuses the standard panic hook to
//! ensure a consistent panic handling UX and properly resets the terminal to not distort the
//! output.
//!
//! That's why this example is set up to show both situations, with and without the panic hook, to
//! see the difference.
//!
//! For more information on how to set this up manually, see the [Color Eyre recipe] in the Ratatui
//! website.
//!
//! [Color Eyre recipe]: https://ratatui.rs/recipes/apps/color-eyre
/// A Ratatui example that demonstrates how to handle panics in your application.
///
/// Prior to Ratatui 0.28.1, a panic hook had to be manually set up to ensure that the terminal
/// was reset when a panic occurred. This was necessary because a panic would interrupt the
/// normal control flow and leave the terminal in a distorted state.
///
/// Starting with Ratatui 0.28.1, the panic hook is automatically set up by the new
/// `ratatui::init` function, so you no longer need to manually set up the panic hook. This
/// example now demonstrates how the panic hook acts when it is enabled by default.
///
/// When exiting normally or when handling `Result::Err`, we can reset the terminal manually at
/// the end of `main` just before we print the error.
///
/// Because a panic interrupts the normal control flow, manually resetting the terminal at the
/// end of `main` won't do us any good. Instead, we need to make sure to set up a panic hook
/// that first resets the terminal before handling the panic. This both reuses the standard
/// panic hook to ensure a consistent panic handling UX and properly resets the terminal to not
/// distort the output.
///
/// That's why this example is set up to show both situations, with and without the panic hook,
/// to see the difference.
///
/// For more information on how to set this up manually, see the [Color Eyre recipe] in the
/// Ratatui website.
///
/// This example runs with the Ratatui library code in the branch that you are currently
/// reading. See the [`latest`] branch for the code which works with the most recent Ratatui
/// release.
///
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
/// [Color Eyre recipe]: https://ratatui.rs/recipes/apps/color-eyre
use color_eyre::{eyre::bail, Result};
use ratatui::{
crossterm::event::{self, Event, KeyCode},

View File

@@ -0,0 +1,14 @@
[package]
name = "popup"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
ratatui.workspace = true
[lints]
workspace = true

View File

@@ -0,0 +1,9 @@
# Popup demo
This example shows how to handle popups.
To run this demo:
```shell
cargo run -p popup
```

View File

@@ -1,21 +1,12 @@
//! # [Ratatui] Popup example
//!
//! The latest version of this example is available in the [examples] folder in the repository.
//!
//! Please note that the examples are designed to be run against the `main` branch of the Github
//! repository. This means that you may not be able to compile with the latest release version on
//! crates.io, or the one that you have installed locally.
//!
//! See the [examples readme] for more information on finding examples that match the version of the
//! library you are using.
//!
//! [Ratatui]: https://github.com/ratatui/ratatui
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
/// A Ratatui example that demonstrates how to handle popups.
// See also https://github.com/joshka/tui-popup and
// https://github.com/sephiroth74/tui-confirm-dialog
///
/// This example runs with the Ratatui library code in the branch that you are currently
/// reading. See the [`latest`] branch for the code which works with the most recent Ratatui
/// release.
///
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
use color_eyre::Result;
use ratatui::{
crossterm::event::{self, Event, KeyCode, KeyEventKind},

View File

@@ -0,0 +1,14 @@
[package]
name = "scrollbar"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
ratatui.workspace = true
[lints]
workspace = true

View File

@@ -0,0 +1,9 @@
# Scrollbar demo
This example shows how to render different types of scrollbars.
To run this demo:
```shell
cargo run -p scrollbar
```

View File

@@ -1,20 +1,13 @@
//! # [Ratatui] Scrollbar example
//!
//! The latest version of this example is available in the [examples] folder in the repository.
//!
//! Please note that the examples are designed to be run against the `main` branch of the Github
//! repository. This means that you may not be able to compile with the latest release version on
//! crates.io, or the one that you have installed locally.
//!
//! See the [examples readme] for more information on finding examples that match the version of the
//! library you are using.
//!
//! [Ratatui]: https://github.com/ratatui/ratatui
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
#![warn(clippy::pedantic)]
/// A Ratatui example that demonstrates how to handle scrollbars.
///
/// This example demonstrates how to draw various types of vertical and horizontal scrollbars
/// with different styles.
///
/// This example runs with the Ratatui library code in the branch that you are currently
/// reading. See the [`latest`] branch for the code which works with the most recent Ratatui
/// release.
///
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
use std::time::{Duration, Instant};
use color_eyre::Result;

View File

@@ -0,0 +1,17 @@
[package]
name = "table"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
fakeit = "1.1"
itertools.workspace = true
ratatui.workspace = true
unicode-width.workspace = true
[lints]
workspace = true

View File

@@ -0,0 +1,9 @@
# Table demo
This example shows how to create an interactive table.
To run this demo:
```shell
cargo run -p table
```

View File

@@ -1,18 +1,10 @@
//! # [Ratatui] Table example
//!
//! The latest version of this example is available in the [examples] folder in the repository.
//!
//! Please note that the examples are designed to be run against the `main` branch of the Github
//! repository. This means that you may not be able to compile with the latest release version on
//! crates.io, or the one that you have installed locally.
//!
//! See the [examples readme] for more information on finding examples that match the version of the
//! library you are using.
//!
//! [Ratatui]: https://github.com/ratatui/ratatui
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
/// A Ratatui example that demonstrates how to create an interactive table with a scrollbar.
///
/// This example runs with the Ratatui library code in the branch that you are currently
/// reading. See the [`latest`] branch for the code which works with the most recent Ratatui
/// release.
///
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
use color_eyre::Result;
use crossterm::event::KeyModifiers;
use itertools::Itertools;

View File

@@ -0,0 +1,14 @@
[package]
name = "todo-list"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
ratatui.workspace = true
[lints]
workspace = true

View File

@@ -0,0 +1,9 @@
# Todo list demo
This example demonstrates a simple todo list application.
To run this demo:
```shell
cargo run -p todo-list
```

View File

@@ -1,18 +1,10 @@
//! # [Ratatui] List example
//!
//! The latest version of this example is available in the [examples] folder in the repository.
//!
//! Please note that the examples are designed to be run against the `main` branch of the Github
//! repository. This means that you may not be able to compile with the latest release version on
//! crates.io, or the one that you have installed locally.
//!
//! See the [examples readme] for more information on finding examples that match the version of the
//! library you are using.
//!
//! [Ratatui]: https://github.com/ratatui/ratatui
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
/// A Ratatui example that demonstrates how to create a todo list with selectable items.
///
/// This example runs with the Ratatui library code in the branch that you are currently
/// reading. See the [`latest`] branch for the code which works with the most recent Ratatui
/// release.
///
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
use color_eyre::Result;
use ratatui::{
buffer::Buffer,
@@ -193,7 +185,7 @@ impl Widget for &mut App {
/// Rendering logic for the app
impl App {
fn render_header(area: Rect, buf: &mut Buffer) {
Paragraph::new("Ratatui List Example")
Paragraph::new("Ratatui Todo List Example")
.bold()
.centered()
.render(area, buf);

View File

@@ -0,0 +1,17 @@
[package]
name = "tracing"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
ratatui.workspace = true
tracing = "0.1.40"
tracing-appender = "0.2.3"
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
[lints]
workspace = true

View File

@@ -0,0 +1,9 @@
# Tracing demo
This example demonstrates how to use the [tracing](https://crates.io/crates/tracing) crate to log to a file.
To run this demo:
```shell
cargo run -p tracing
```

View File

@@ -1,32 +1,23 @@
//! # [Ratatui] Tracing example
//!
//! The latest version of this example is available in the [examples] folder in the repository.
//!
//! Please note that the examples are designed to be run against the `main` branch of the Github
//! repository. This means that you may not be able to compile with the latest release version on
//! crates.io, or the one that you have installed locally.
//!
//! See the [examples readme] for more information on finding examples that match the version of the
//! library you are using.
//!
//! [Ratatui]: https://github.com/ratatui/ratatui
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
// A simple example demonstrating how to use the [tracing] with Ratatui to log to a file.
//
// This example demonstrates how to use the [tracing] crate with Ratatui to log to a file. The
// example sets up a simple logger that logs to a file named `tracing.log` in the current directory.
//
// Run the example with `cargo run --example tracing` and then view the `tracing.log` file to see
// the logs. To see more logs, you can run the example with `RUST_LOG=tracing=debug cargo run
// --example`
//
// For a helpful widget that handles logging, see the [tui-logger] crate.
//
// [tracing]: https://crates.io/crates/tracing
// [tui-logger]: https://crates.io/crates/tui-logger
/// A simple example demonstrating how to use the [tracing] with Ratatui to log to a file.
///
/// This example demonstrates how to use the [tracing] crate with Ratatui to log to a file. The
/// example sets up a simple logger that logs to a file named `tracing.log` in the current
/// directory.
///
/// Run the example with `cargo run --example tracing` and then view the `tracing.log` file to
/// see the logs. To see more logs, you can run the example with `RUST_LOG=tracing=debug cargo
/// run --example`
///
/// For a helpful widget that handles logging, see the [tui-logger] crate.
///
/// [tracing]: https://crates.io/crates/tracing
/// [tui-logger]: https://crates.io/crates/tui-logger
///
/// This example runs with the Ratatui library code in the branch that you are currently
/// reading. See the [`latest`] branch for the code which works with the most recent Ratatui
/// release.
///
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
use std::{fs::File, time::Duration};
use color_eyre::{eyre::Context, Result};

View File

@@ -0,0 +1,14 @@
[package]
name = "user-input"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
ratatui.workspace = true
[lints]
workspace = true

View File

@@ -0,0 +1,9 @@
# User input demo
This example shows how to handle user input.
To run this demo:
```shell
cargo run -p user-input
```

View File

@@ -1,32 +1,25 @@
//! # [Ratatui] User Input example
//!
//! The latest version of this example is available in the [examples] folder in the repository.
//!
//! Please note that the examples are designed to be run against the `main` branch of the Github
//! repository. This means that you may not be able to compile with the latest release version on
//! crates.io, or the one that you have installed locally.
//!
//! See the [examples readme] for more information on finding examples that match the version of the
//! library you are using.
//!
//! [Ratatui]: https://github.com/ratatui/ratatui
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
// A simple example demonstrating how to handle user input. This is a bit out of the scope of
// the library as it does not provide any input handling out of the box. However, it may helps
// some to get started.
//
// This is a very simple example:
// * An input box always focused. Every character you type is registered here.
// * An entered character is inserted at the cursor position.
// * Pressing Backspace erases the left character before the cursor position
// * Pressing Enter pushes the current input in the history of previous messages. **Note: ** as
// this is a relatively simple example unicode characters are unsupported and their use will
// result in undefined behaviour.
//
// See also https://github.com/rhysd/tui-textarea and https://github.com/sayanarijit/tui-input/
/// A simple example demonstrating how to handle user input.
///
/// This is a bit out of the scope of
/// the library as it does not provide any input handling out of the box. However, it may helps
/// some to get started.
///
/// This is a very simple example:
/// * An input box always focused. Every character you type is registered here.
/// * An entered character is inserted at the cursor position.
/// * Pressing Backspace erases the left character before the cursor position
/// * Pressing Enter pushes the current input in the history of previous messages.
///
/// **Note:** as this is a relatively simple example unicode characters are unsupported and
/// their use will result in undefined behaviour.
///
/// See also <https://github.com/rhysd/tui-textarea> and <https://github.com/sayanarijit/tui-input>/
///
/// This example runs with the Ratatui library code in the branch that you are currently
/// reading. See the [`latest`] branch for the code which works with the most recent Ratatui
/// release.
///
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
use color_eyre::Result;
use ratatui::{
crossterm::event::{self, Event, KeyCode, KeyEventKind},
@@ -90,7 +83,7 @@ impl App {
/// Returns the byte index based on the character position.
///
/// Since each character in a string can be contain multiple bytes, it's necessary to calculate
/// Since each character in a string can contain multiple bytes, it's necessary to calculate
/// the byte index based on the index of the character.
fn byte_index(&self) -> usize {
self.input
@@ -216,7 +209,7 @@ impl App {
#[allow(clippy::cast_possible_truncation)]
InputMode::Editing => frame.set_cursor_position(Position::new(
// Draw the cursor at the current position in the input field.
// This position is can be controlled via the left and right arrow key
// This position can be controlled via the left and right arrow key
input_area.x + self.character_index as u16 + 1,
// Move one line down, from the border to the input line
input_area.y + 1,

View File

@@ -8,7 +8,7 @@ rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
rand = "0.8.5"
rand = "0.9.0"
ratatui.workspace = true
[lints]

View File

@@ -9,7 +9,7 @@
//! [`BarChart`]: https://docs.rs/ratatui/latest/ratatui/widgets/struct.BarChart.html
use color_eyre::Result;
use rand::{thread_rng, Rng};
use rand::{rng, Rng};
use ratatui::{
crossterm::event::{self, Event, KeyCode, KeyEventKind},
layout::{Constraint, Layout},
@@ -34,8 +34,8 @@ struct App {
impl App {
fn new() -> Self {
let mut rng = thread_rng();
let temperatures = (0..24).map(|_| rng.gen_range(50..90)).collect();
let mut rng = rng();
let temperatures = (0..24).map(|_| rng.random_range(50..90)).collect();
Self {
should_exit: false,
temperatures,

View File

@@ -0,0 +1,14 @@
[package]
name = "widget-ref-container"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
ratatui = { workspace = true, features = ["unstable-widget-ref"] }
[lints]
workspace = true

View File

@@ -0,0 +1,9 @@
# WidgetRef Container demo
This example shows how to use [`WidgetRef`](https://docs.rs/ratatui/latest/ratatui/widgets/trait.WidgetRef.html) to store widgets in a container.
To run this demo:
```shell
cargo run -p widget-ref-container
```

View File

@@ -0,0 +1,88 @@
/// An example of how to use [`WidgetRef`] to store heterogeneous widgets in a container.
///
/// This example creates a `StackContainer` widget that can hold any number of widgets of
/// different types. It creates two widgets, `Greeting` and `Farewell`, and stores them in a
/// `StackContainer` with a vertical layout. The `StackContainer` widget renders each of its
/// child widgets in the order they were added.
///
/// This example runs with the Ratatui library code in the branch that you are currently
/// reading. See the [`latest`] branch for the code which works with the most recent Ratatui
/// release.
///
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
use std::iter::zip;
use color_eyre::Result;
use crossterm::event;
use ratatui::{
buffer::Buffer,
layout::{Constraint, Direction, Layout, Rect},
widgets::{Block, Paragraph, Widget, WidgetRef},
DefaultTerminal, Frame,
};
fn main() -> Result<()> {
color_eyre::install()?;
let terminal = ratatui::init();
let result = run(terminal);
ratatui::restore();
result
}
fn run(mut terminal: DefaultTerminal) -> Result<()> {
loop {
terminal.draw(render)?;
if matches!(event::read()?, event::Event::Key(_)) {
break Ok(());
}
}
}
fn render(frame: &mut Frame) {
let container = StackContainer {
direction: Direction::Vertical,
widgets: vec![
(Box::new(&Greeting), Constraint::Percentage(50)),
(Box::new(&Farewell), Constraint::Percentage(50)),
],
};
frame.render_widget(&container, frame.area());
}
struct Greeting;
impl Widget for &Greeting {
fn render(self, area: Rect, buf: &mut Buffer) {
Paragraph::new("Hello")
.block(Block::bordered())
.render(area, buf);
}
}
struct Farewell;
impl Widget for &Farewell {
fn render(self, area: Rect, buf: &mut Buffer) {
Paragraph::new("Goodbye")
.block(Block::bordered())
.render(area, buf);
}
}
struct StackContainer {
direction: Direction,
widgets: Vec<(Box<dyn WidgetRef>, Constraint)>,
}
impl Widget for &StackContainer {
fn render(self, area: Rect, buf: &mut Buffer) {
let layout = Layout::default()
.direction(self.direction)
.constraints(self.widgets.iter().map(|(_, constraint)| *constraint))
.split(area);
let widgets = self.widgets.iter().map(|(widget, _)| widget);
for (widget, area) in zip(widgets, layout.iter()) {
widget.render_ref(*area, buf);
}
}
}

View File

@@ -0,0 +1,12 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./examples/vhs/advanced-widget-impl.tape`
Output "target/advanced-widget-impl.gif"
Set Theme "Aardvark Blue"
Set Width 760
Set Height 260
Hide
Type "cargo run -p advanced-widget-impl"
Enter
Sleep 2s
Show
Sleep 5s

View File

@@ -0,0 +1,16 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./examples/vhs/async-github.tape`
Output "target/async-github.gif"
Set Theme "Aardvark Blue"
Set Width 1200
Set Height 600
Hide
Type "cargo run -p async-github"
Enter
Sleep 1s
Show
Sleep 1s
Set TypingSpeed 0.5s
Down 3
Up
Sleep 1s

View File

@@ -0,0 +1,19 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./examples/vhs/calendar-explorer.tape`
Output "target/calendar-explorer.gif"
Set Theme "Aardvark Blue"
Set Width 1200
Set Height 800
Hide
Type "cargo run -p calendar-explorer"
Enter
Sleep 3s
Show
Set TypingSpeed 1s
Type "s"
Type "s"
Type "s"
Type 'n'
Type 'p'
Down 5
Right 5

View File

@@ -1,12 +1,12 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./examples/canvas.tape`
# To run this script, install vhs and run `vhs ./examples/vhs/canvas.tape`
Output "target/canvas.gif"
Set Theme "Aardvark Blue"
Set FontSize 12
Set Width 1200
Set Height 800
Hide
Type "cargo run --example=canvas --features=crossterm"
Type "cargo run -p canvas"
Enter
Sleep 2s
Show

View File

@@ -1,11 +1,11 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./examples/chart.tape`
# To run this script, install vhs and run `vhs ./examples/vhs/chart.tape`
Output "target/chart.gif"
Set Theme "Aardvark Blue"
Set Width 1200
Set Height 800
Hide
Type "cargo run --example=chart --features=crossterm"
Type "cargo run -p chart"
Enter
Sleep 1s
Show

View File

@@ -1,11 +1,11 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./examples/colors.tape`
Output "target/colors.gif"
# To run this script, install vhs and run `vhs ./examples/vhs/color-explorer.tape`
Output "target/color-explorer.gif"
Set Theme "Aardvark Blue"
Set Width 1200
Set Height 1410
Hide
Type "cargo run --example=colors --features=crossterm"
Type "cargo run -p color-explorer"
Enter
Sleep 2s
Show

View File

@@ -1,9 +1,9 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./examples/colors_rgb.tape`
# To run this script, install vhs and run `vhs ./examples/vhs/colors-rgb.tape`
# note that this script sometimes results in the gif having screen tearing
# issues. I'm not sure why, but it's not a problem with the library.
Output "target/colors_rgb.gif"
Output "target/colors-rgb.gif"
Set Theme "Aardvark Blue"
Set Width 1200
Set Height 1200
@@ -13,9 +13,9 @@ Set Framerate 60
Set CursorBlink false
Hide
Type "cargo run --example=colors_rgb --features=crossterm --release"
Type "cargo run -p colors-rgb"
Enter
Sleep 2s
# Screenshot "target/colors_rgb.png"
# Screenshot "target/colors-rgb.png"
Show
Sleep 10s

View File

@@ -1,12 +1,12 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./examples/constraint-explorer.tape`
# To run this script, install vhs and run `vhs ./examples/vhs/constraint-explorer.tape`
Output "target/constraint-explorer.gif"
Set Theme "Aardvark Blue"
Set FontSize 18
Set Width 1200
Set Height 950
Hide
Type "cargo run --example=constraint-explorer --features=crossterm"
Type "cargo run -p constraint-explorer"
Enter
Sleep 2s
Show

View File

@@ -1,12 +1,12 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./examples/constraints.tape`
# To run this script, install vhs and run `vhs ./examples/vhs/constraints.tape`
Output "target/constraints.gif"
Set Theme "Aardvark Blue"
Set FontSize 18
Set Width 1200
Set Height 700
Hide
Type "cargo run --example=constraints --features=crossterm"
Type "cargo run -p constraints"
Enter
Sleep 2s
Show

View File

@@ -1,11 +1,11 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./examples/custom_widget.tape`
Output "target/custom_widget.gif"
# To run this script, install vhs and run `vhs ./examples/vhs/custom-widget.tape`
Output "target/custom-widget.gif"
Set Theme "Aardvark Blue"
Set Width 760
Set Height 260
Hide
Type "cargo run --example=custom_widget --features=crossterm"
Type "cargo run -p custom-widget"
Enter
Sleep 2s
Show

View File

@@ -1,12 +1,12 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./examples/demo.tape`
# To run this script, install vhs and run `vhs ./examples/vhs/demo.tape`
Output "target/demo.gif"
Set Theme "Aardvark Blue"
Set Width 1200
Set Height 1200
Set PlaybackSpeed 0.5
Hide
Type "cargo run --example demo"
Type "cargo run -p demo"
Enter
Sleep 2s
Show

View File

@@ -1,5 +1,5 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./examples/demo2-destroy.tape`
# To run this script, install vhs and run `vhs ./examples/vhs/demo2-destroy.tape`
# NOTE: Requires VHS 0.6.1 or later for Screenshot support
Output "target/demo2-destroy.gif"
Set Theme "Aardvark Blue"
@@ -10,7 +10,7 @@ Set Width 1120
Set Height 480
Set Padding 0
Hide
Type "cargo run --example demo2 --features crossterm,palette,widget-calendar"
Type "cargo run -p demo2"
Enter
Sleep 2s
Show

View File

@@ -1,5 +1,5 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./examples/demo2-social.tape`
# To run this script, install vhs and run `vhs ./examples/vhs/demo2-social.tape`
Output "target/demo2-social.gif"
Set Theme "Aardvark Blue"
@@ -9,7 +9,7 @@ Set Width 1280
Set Height 640
Set Padding 80
Hide
Type "cargo run --example demo2 --features crossterm,widget-calendar"
Type "cargo run -p demo2"
Enter
Sleep 2s
Show

View File

@@ -1,5 +1,5 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./examples/demo2.tape`
# To run this script, install vhs and run `vhs ./examples/vhs/demo2.tape`
# NOTE: Requires VHS 0.6.1 or later for Screenshot support
Output "target/demo2.gif"
Set Theme "Aardvark Blue"
@@ -10,7 +10,7 @@ Set Width 1120
Set Height 480
Set Padding 0
Hide
Type "cargo run --example demo2 --features crossterm,widget-calendar"
Type "cargo run -p demo2"
Enter
Sleep 2s
Show

Some files were not shown because too many files have changed in this diff Show More