Skip to main content

Crate dioxus_nox_tag_input

Crate dioxus_nox_tag_input 

Source
Expand description

⚠️ 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 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:

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:

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.

Modules§

combo
Convenience wrapper that pre-wires dioxus-nox-select with tag-input for the common “searchable multi-select with pills” pattern.
components
Radix-style compound components for tag input.

Structs§

SuggestionGroup
A group of suggestions sharing a label.
Tag
A simple tag with an id and a name.
TagInputConfig
Configuration for the simple tag input hook.
TagInputGroupConfig
Configuration for the grouped tag input hook.
TagInputState
Headless state for the tag input component.

Enums§

Breakpoint
Responsive breakpoint categories based on viewport width.

Traits§

TagLike
Trait for types that can be used as tags in the tag input.

Functions§

extract_clipboard_text
find_match_ranges
Find byte-offset ranges in text that match query (case-insensitive substring).
is_denied
Returns true if the given name appears in the deny list (case-insensitive).
use_breakpoint
Hook that returns the current responsive breakpoint.
use_tag_input
Create a headless tag input state.
use_tag_input_grouped
Create a headless tag input state with grouped configuration.
use_tag_input_with
Create a headless tag input state with optional controlled signals.