1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
//! **⚠️ Disclaimer:** This crate was entirely generated by AI (Claude) as part of a
//! personal learning project. It has not been battle-tested in production and may
//! contain bugs or unsound abstractions. Use at your own risk and exercise extreme
//! caution before depending on it in anything that matters.
//!
//! Headless tag input for [Dioxus](https://dioxuslabs.com) 0.7.
//!
//! Provides reactive state management and keyboard logic for multi-tag inputs.
//! You bring your own markup and styling — the library handles selection, filtering,
//! ARIA attributes, and keyboard interaction.
//!
//! # Usage modes
//!
//! **Hook API** — maximum control. Call [`use_tag_input`] and wire signals into your RSX:
//!
//! ```ignore
//! let state = use_tag_input(available_tags, initial_selected);
//! // use state.selected_tags, state.filtered_suggestions, state.handle_keydown, etc.
//! ```
//!
//! **Compound components** — less boilerplate. Radix-style components with built-in ARIA
//! and `data-*` attributes for CSS targeting:
//!
//! ```ignore
//! use dioxus_nox_tag_input::components as tag_input;
//!
//! tag_input::Root::<MyTag> {
//! available_tags: tags,
//! tag_input::Control::<MyTag> {
//! // Tag pills + Input here
//! }
//! tag_input::Dropdown::<MyTag> {
//! // Option items here
//! }
//! }
//! ```
//!
//! See the [`components`] module for the full compound API, or [`TagInputState`] for
//! the hook-level API.
pub use ;
pub use ;
pub use ;