├── .codecov.yml ├── .github ├── FUNDING.yml ├── pull_request_template.md └── workflows │ ├── commit.yaml │ └── release-plz.yaml ├── .gitignore ├── CONTRIBUTING.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── Makefile.toml ├── README.md ├── examples ├── README.md ├── borders.rs ├── calculator.rs ├── context.rs ├── counter.rs ├── form.rs ├── fullscreen.rs ├── hello_world.rs ├── images │ ├── borders.png │ ├── calculator.png │ ├── context.png │ ├── counter.png │ ├── counter.svg │ ├── form.png │ ├── fullscreen.png │ ├── hello-world.png │ ├── overlap.png │ ├── progress_bar.png │ ├── scrolling.png │ ├── table.png │ ├── use_input.png │ ├── use_output.png │ ├── weather-powershell.png │ └── weather.png ├── overlap.rs ├── progress_bar.rs ├── scrolling.rs ├── table.rs ├── use_input.rs ├── use_output.rs └── weather.rs └── packages ├── iocraft-macros ├── CHANGELOG.md ├── Cargo.toml ├── README.md ├── src │ └── lib.rs └── tests │ ├── component.rs │ ├── element.rs │ ├── props.rs │ └── with_layout_style_props.rs └── iocraft ├── CHANGELOG.md ├── Cargo.toml ├── README.md └── src ├── canvas.rs ├── component.rs ├── components ├── button.rs ├── context_provider.rs ├── fragment.rs ├── mixed_text.rs ├── mod.rs ├── text.rs ├── text_input.rs └── view.rs ├── context.rs ├── element.rs ├── handler.rs ├── hook.rs ├── hooks ├── mod.rs ├── use_async_handler.rs ├── use_const.rs ├── use_context.rs ├── use_effect.rs ├── use_future.rs ├── use_memo.rs ├── use_output.rs ├── use_ref.rs ├── use_state.rs ├── use_terminal_events.rs └── use_terminal_size.rs ├── lib.rs ├── multimap.rs ├── props.rs ├── render.rs ├── segmented_string.rs ├── style.rs ├── terminal.rs └── unicode_linebreak ├── README.md ├── mod.rs ├── shared.rs └── tables.rs /.codecov.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/.codecov.yml -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ccbrown] 4 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/.github/pull_request_template.md -------------------------------------------------------------------------------- /.github/workflows/commit.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/.github/workflows/commit.yaml -------------------------------------------------------------------------------- /.github/workflows/release-plz.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/.github/workflows/release-plz.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /Cargo.lock 3 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE-APACHE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/LICENSE-APACHE -------------------------------------------------------------------------------- /LICENSE-MIT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/LICENSE-MIT -------------------------------------------------------------------------------- /Makefile.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/Makefile.toml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/README.md -------------------------------------------------------------------------------- /examples/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/README.md -------------------------------------------------------------------------------- /examples/borders.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/borders.rs -------------------------------------------------------------------------------- /examples/calculator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/calculator.rs -------------------------------------------------------------------------------- /examples/context.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/context.rs -------------------------------------------------------------------------------- /examples/counter.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/counter.rs -------------------------------------------------------------------------------- /examples/form.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/form.rs -------------------------------------------------------------------------------- /examples/fullscreen.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/fullscreen.rs -------------------------------------------------------------------------------- /examples/hello_world.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/hello_world.rs -------------------------------------------------------------------------------- /examples/images/borders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/images/borders.png -------------------------------------------------------------------------------- /examples/images/calculator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/images/calculator.png -------------------------------------------------------------------------------- /examples/images/context.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/images/context.png -------------------------------------------------------------------------------- /examples/images/counter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/images/counter.png -------------------------------------------------------------------------------- /examples/images/counter.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/images/counter.svg -------------------------------------------------------------------------------- /examples/images/form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/images/form.png -------------------------------------------------------------------------------- /examples/images/fullscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/images/fullscreen.png -------------------------------------------------------------------------------- /examples/images/hello-world.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/images/hello-world.png -------------------------------------------------------------------------------- /examples/images/overlap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/images/overlap.png -------------------------------------------------------------------------------- /examples/images/progress_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/images/progress_bar.png -------------------------------------------------------------------------------- /examples/images/scrolling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/images/scrolling.png -------------------------------------------------------------------------------- /examples/images/table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/images/table.png -------------------------------------------------------------------------------- /examples/images/use_input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/images/use_input.png -------------------------------------------------------------------------------- /examples/images/use_output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/images/use_output.png -------------------------------------------------------------------------------- /examples/images/weather-powershell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/images/weather-powershell.png -------------------------------------------------------------------------------- /examples/images/weather.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/images/weather.png -------------------------------------------------------------------------------- /examples/overlap.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/overlap.rs -------------------------------------------------------------------------------- /examples/progress_bar.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/progress_bar.rs -------------------------------------------------------------------------------- /examples/scrolling.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/scrolling.rs -------------------------------------------------------------------------------- /examples/table.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/table.rs -------------------------------------------------------------------------------- /examples/use_input.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/use_input.rs -------------------------------------------------------------------------------- /examples/use_output.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/use_output.rs -------------------------------------------------------------------------------- /examples/weather.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/examples/weather.rs -------------------------------------------------------------------------------- /packages/iocraft-macros/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft-macros/CHANGELOG.md -------------------------------------------------------------------------------- /packages/iocraft-macros/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft-macros/Cargo.toml -------------------------------------------------------------------------------- /packages/iocraft-macros/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft-macros/README.md -------------------------------------------------------------------------------- /packages/iocraft-macros/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft-macros/src/lib.rs -------------------------------------------------------------------------------- /packages/iocraft-macros/tests/component.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft-macros/tests/component.rs -------------------------------------------------------------------------------- /packages/iocraft-macros/tests/element.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft-macros/tests/element.rs -------------------------------------------------------------------------------- /packages/iocraft-macros/tests/props.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft-macros/tests/props.rs -------------------------------------------------------------------------------- /packages/iocraft-macros/tests/with_layout_style_props.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft-macros/tests/with_layout_style_props.rs -------------------------------------------------------------------------------- /packages/iocraft/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/CHANGELOG.md -------------------------------------------------------------------------------- /packages/iocraft/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/Cargo.toml -------------------------------------------------------------------------------- /packages/iocraft/README.md: -------------------------------------------------------------------------------- 1 | ../../README.md -------------------------------------------------------------------------------- /packages/iocraft/src/canvas.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/canvas.rs -------------------------------------------------------------------------------- /packages/iocraft/src/component.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/component.rs -------------------------------------------------------------------------------- /packages/iocraft/src/components/button.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/components/button.rs -------------------------------------------------------------------------------- /packages/iocraft/src/components/context_provider.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/components/context_provider.rs -------------------------------------------------------------------------------- /packages/iocraft/src/components/fragment.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/components/fragment.rs -------------------------------------------------------------------------------- /packages/iocraft/src/components/mixed_text.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/components/mixed_text.rs -------------------------------------------------------------------------------- /packages/iocraft/src/components/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/components/mod.rs -------------------------------------------------------------------------------- /packages/iocraft/src/components/text.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/components/text.rs -------------------------------------------------------------------------------- /packages/iocraft/src/components/text_input.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/components/text_input.rs -------------------------------------------------------------------------------- /packages/iocraft/src/components/view.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/components/view.rs -------------------------------------------------------------------------------- /packages/iocraft/src/context.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/context.rs -------------------------------------------------------------------------------- /packages/iocraft/src/element.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/element.rs -------------------------------------------------------------------------------- /packages/iocraft/src/handler.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/handler.rs -------------------------------------------------------------------------------- /packages/iocraft/src/hook.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/hook.rs -------------------------------------------------------------------------------- /packages/iocraft/src/hooks/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/hooks/mod.rs -------------------------------------------------------------------------------- /packages/iocraft/src/hooks/use_async_handler.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/hooks/use_async_handler.rs -------------------------------------------------------------------------------- /packages/iocraft/src/hooks/use_const.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/hooks/use_const.rs -------------------------------------------------------------------------------- /packages/iocraft/src/hooks/use_context.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/hooks/use_context.rs -------------------------------------------------------------------------------- /packages/iocraft/src/hooks/use_effect.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/hooks/use_effect.rs -------------------------------------------------------------------------------- /packages/iocraft/src/hooks/use_future.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/hooks/use_future.rs -------------------------------------------------------------------------------- /packages/iocraft/src/hooks/use_memo.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/hooks/use_memo.rs -------------------------------------------------------------------------------- /packages/iocraft/src/hooks/use_output.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/hooks/use_output.rs -------------------------------------------------------------------------------- /packages/iocraft/src/hooks/use_ref.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/hooks/use_ref.rs -------------------------------------------------------------------------------- /packages/iocraft/src/hooks/use_state.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/hooks/use_state.rs -------------------------------------------------------------------------------- /packages/iocraft/src/hooks/use_terminal_events.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/hooks/use_terminal_events.rs -------------------------------------------------------------------------------- /packages/iocraft/src/hooks/use_terminal_size.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/hooks/use_terminal_size.rs -------------------------------------------------------------------------------- /packages/iocraft/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/lib.rs -------------------------------------------------------------------------------- /packages/iocraft/src/multimap.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/multimap.rs -------------------------------------------------------------------------------- /packages/iocraft/src/props.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/props.rs -------------------------------------------------------------------------------- /packages/iocraft/src/render.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/render.rs -------------------------------------------------------------------------------- /packages/iocraft/src/segmented_string.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/segmented_string.rs -------------------------------------------------------------------------------- /packages/iocraft/src/style.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/style.rs -------------------------------------------------------------------------------- /packages/iocraft/src/terminal.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/terminal.rs -------------------------------------------------------------------------------- /packages/iocraft/src/unicode_linebreak/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/unicode_linebreak/README.md -------------------------------------------------------------------------------- /packages/iocraft/src/unicode_linebreak/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/unicode_linebreak/mod.rs -------------------------------------------------------------------------------- /packages/iocraft/src/unicode_linebreak/shared.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/unicode_linebreak/shared.rs -------------------------------------------------------------------------------- /packages/iocraft/src/unicode_linebreak/tables.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccbrown/iocraft/HEAD/packages/iocraft/src/unicode_linebreak/tables.rs --------------------------------------------------------------------------------