stimeo-ui 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +184 -0
- package/dist/controllers/announcer_controller.js.map +1 -1
- package/dist/controllers/aspect_ratio_controller.d.ts +3 -5
- package/dist/controllers/aspect_ratio_controller.js +19 -11
- package/dist/controllers/aspect_ratio_controller.js.map +1 -1
- package/dist/controllers/avatar_controller.d.ts +36 -15
- package/dist/controllers/avatar_controller.js +195 -40
- package/dist/controllers/avatar_controller.js.map +1 -1
- package/dist/controllers/breadcrumb_controller.js +5 -1
- package/dist/controllers/breadcrumb_controller.js.map +1 -1
- package/dist/controllers/carousel_controller.d.ts +12 -3
- package/dist/controllers/carousel_controller.js +90 -10
- package/dist/controllers/carousel_controller.js.map +1 -1
- package/dist/controllers/checkbox_controller.d.ts +31 -5
- package/dist/controllers/checkbox_controller.js +136 -25
- package/dist/controllers/checkbox_controller.js.map +1 -1
- package/dist/controllers/clipboard_controller.js +8 -3
- package/dist/controllers/clipboard_controller.js.map +1 -1
- package/dist/controllers/collapsible_controller.d.ts +1 -1
- package/dist/controllers/collapsible_controller.js +4 -1
- package/dist/controllers/collapsible_controller.js.map +1 -1
- package/dist/controllers/color_picker_controller.d.ts +9 -3
- package/dist/controllers/color_picker_controller.js +41 -11
- package/dist/controllers/color_picker_controller.js.map +1 -1
- package/dist/controllers/combobox_controller.js.map +1 -1
- package/dist/controllers/command_palette_controller.js.map +1 -1
- package/dist/controllers/context_menu_controller.d.ts +1 -1
- package/dist/controllers/context_menu_controller.js +2 -2
- package/dist/controllers/context_menu_controller.js.map +1 -1
- package/dist/controllers/countdown_controller.d.ts +5 -3
- package/dist/controllers/countdown_controller.js +5 -1
- package/dist/controllers/countdown_controller.js.map +1 -1
- package/dist/controllers/date_range_picker_controller.d.ts +23 -4
- package/dist/controllers/date_range_picker_controller.js +162 -31
- package/dist/controllers/date_range_picker_controller.js.map +1 -1
- package/dist/controllers/direct_upload_controller.d.ts +1 -1
- package/dist/controllers/direct_upload_controller.js +3 -3
- package/dist/controllers/direct_upload_controller.js.map +1 -1
- package/dist/controllers/empty_state_controller.d.ts +27 -7
- package/dist/controllers/empty_state_controller.js +107 -16
- package/dist/controllers/empty_state_controller.js.map +1 -1
- package/dist/controllers/file_dropzone_controller.d.ts +7 -1
- package/dist/controllers/file_dropzone_controller.js +26 -3
- package/dist/controllers/file_dropzone_controller.js.map +1 -1
- package/dist/controllers/flash_controller.d.ts +25 -5
- package/dist/controllers/flash_controller.js +161 -21
- package/dist/controllers/flash_controller.js.map +1 -1
- package/dist/controllers/focus_controller.d.ts +2 -3
- package/dist/controllers/focus_controller.js.map +1 -1
- package/dist/controllers/form_validation_controller.js +8 -2
- package/dist/controllers/form_validation_controller.js.map +1 -1
- package/dist/controllers/frame_loading_controller.d.ts +19 -2
- package/dist/controllers/frame_loading_controller.js +94 -22
- package/dist/controllers/frame_loading_controller.js.map +1 -1
- package/dist/controllers/highlight_controller.d.ts +8 -4
- package/dist/controllers/highlight_controller.js +38 -1
- package/dist/controllers/highlight_controller.js.map +1 -1
- package/dist/controllers/hover_card_controller.d.ts +2 -2
- package/dist/controllers/hover_card_controller.js.map +1 -1
- package/dist/controllers/idle_controller.d.ts +5 -4
- package/dist/controllers/idle_controller.js +39 -6
- package/dist/controllers/idle_controller.js.map +1 -1
- package/dist/controllers/listbox_controller.js.map +1 -1
- package/dist/controllers/local_time_controller.js +2 -0
- package/dist/controllers/local_time_controller.js.map +1 -1
- package/dist/controllers/masonry_controller.d.ts +1 -1
- package/dist/controllers/masonry_controller.js +1 -1
- package/dist/controllers/masonry_controller.js.map +1 -1
- package/dist/controllers/menubar_controller.js +5 -3
- package/dist/controllers/menubar_controller.js.map +1 -1
- package/dist/controllers/meter_controller.js +3 -1
- package/dist/controllers/meter_controller.js.map +1 -1
- package/dist/controllers/multi_select_controller.d.ts +46 -12
- package/dist/controllers/multi_select_controller.js +460 -151
- package/dist/controllers/multi_select_controller.js.map +1 -1
- package/dist/controllers/network_status_controller.d.ts +15 -13
- package/dist/controllers/network_status_controller.js +1 -3
- package/dist/controllers/network_status_controller.js.map +1 -1
- package/dist/controllers/number_input_controller.d.ts +29 -3
- package/dist/controllers/number_input_controller.js +455 -64
- package/dist/controllers/number_input_controller.js.map +1 -1
- package/dist/controllers/overflow_menu_controller.js +5 -1
- package/dist/controllers/overflow_menu_controller.js.map +1 -1
- package/dist/controllers/pagination_controller.js +38 -1
- package/dist/controllers/pagination_controller.js.map +1 -1
- package/dist/controllers/password_strength_controller.d.ts +4 -4
- package/dist/controllers/password_strength_controller.js +21 -3
- package/dist/controllers/password_strength_controller.js.map +1 -1
- package/dist/controllers/persist_controller.d.ts +4 -4
- package/dist/controllers/persist_controller.js +24 -5
- package/dist/controllers/persist_controller.js.map +1 -1
- package/dist/controllers/pointer_drag_controller.js +10 -0
- package/dist/controllers/pointer_drag_controller.js.map +1 -1
- package/dist/controllers/popover_controller.d.ts +2 -2
- package/dist/controllers/popover_controller.js.map +1 -1
- package/dist/controllers/portal_controller.d.ts +1 -2
- package/dist/controllers/portal_controller.js +10 -0
- package/dist/controllers/portal_controller.js.map +1 -1
- package/dist/controllers/progress_controller.d.ts +1 -1
- package/dist/controllers/progress_controller.js +7 -3
- package/dist/controllers/progress_controller.js.map +1 -1
- package/dist/controllers/radio_group_controller.d.ts +41 -15
- package/dist/controllers/radio_group_controller.js +540 -56
- package/dist/controllers/radio_group_controller.js.map +1 -1
- package/dist/controllers/range_slider_controller.d.ts +23 -0
- package/dist/controllers/range_slider_controller.js +385 -94
- package/dist/controllers/range_slider_controller.js.map +1 -1
- package/dist/controllers/rating_controller.d.ts +36 -31
- package/dist/controllers/rating_controller.js +274 -89
- package/dist/controllers/rating_controller.js.map +1 -1
- package/dist/controllers/relative_time_controller.js +2 -0
- package/dist/controllers/relative_time_controller.js.map +1 -1
- package/dist/controllers/resizable_controller.js +33 -0
- package/dist/controllers/resizable_controller.js.map +1 -1
- package/dist/controllers/roving_controller.d.ts +4 -0
- package/dist/controllers/roving_controller.js +60 -5
- package/dist/controllers/roving_controller.js.map +1 -1
- package/dist/controllers/scroll_area_controller.d.ts +7 -1
- package/dist/controllers/scroll_area_controller.js +155 -23
- package/dist/controllers/scroll_area_controller.js.map +1 -1
- package/dist/controllers/scroll_visibility_controller.js +33 -0
- package/dist/controllers/scroll_visibility_controller.js.map +1 -1
- package/dist/controllers/separator_controller.js +13 -17
- package/dist/controllers/separator_controller.js.map +1 -1
- package/dist/controllers/skeleton_controller.d.ts +2 -2
- package/dist/controllers/skeleton_controller.js +71 -3
- package/dist/controllers/skeleton_controller.js.map +1 -1
- package/dist/controllers/slider_controller.d.ts +17 -1
- package/dist/controllers/slider_controller.js +325 -48
- package/dist/controllers/slider_controller.js.map +1 -1
- package/dist/controllers/spinner_controller.d.ts +15 -10
- package/dist/controllers/spinner_controller.js +18 -3
- package/dist/controllers/spinner_controller.js.map +1 -1
- package/dist/controllers/step_indicator_controller.d.ts +1 -1
- package/dist/controllers/step_indicator_controller.js +3 -1
- package/dist/controllers/step_indicator_controller.js.map +1 -1
- package/dist/controllers/stepper_controller.js +2 -0
- package/dist/controllers/stepper_controller.js.map +1 -1
- package/dist/controllers/switch_controller.d.ts +12 -8
- package/dist/controllers/switch_controller.js +162 -18
- package/dist/controllers/switch_controller.js.map +1 -1
- package/dist/controllers/tags_input_controller.d.ts +41 -11
- package/dist/controllers/tags_input_controller.js +356 -120
- package/dist/controllers/tags_input_controller.js.map +1 -1
- package/dist/controllers/textarea_autosize_controller.js +1 -1
- package/dist/controllers/textarea_autosize_controller.js.map +1 -1
- package/dist/controllers/time_picker_controller.d.ts +42 -10
- package/dist/controllers/time_picker_controller.js +296 -104
- package/dist/controllers/time_picker_controller.js.map +1 -1
- package/dist/controllers/toggle_group_controller.d.ts +39 -13
- package/dist/controllers/toggle_group_controller.js +378 -55
- package/dist/controllers/toggle_group_controller.js.map +1 -1
- package/dist/controllers/toolbar_controller.js +5 -3
- package/dist/controllers/toolbar_controller.js.map +1 -1
- package/dist/controllers/tooltip_controller.d.ts +2 -2
- package/dist/controllers/tooltip_controller.js.map +1 -1
- package/dist/controllers/transition_controller.d.ts +2 -3
- package/dist/controllers/transition_controller.js.map +1 -1
- package/dist/controllers/tree_view_controller.d.ts +1 -2
- package/dist/controllers/tree_view_controller.js +24 -4
- package/dist/controllers/tree_view_controller.js.map +1 -1
- package/dist/index.js +3811 -1048
- package/dist/index.js.map +1 -1
- package/dist/inspector/cli.d.ts +92 -4
- package/dist/inspector/cli.js +174 -6
- package/dist/inspector/cli.js.map +1 -1
- package/dist/inspector/cli_bin.js +234 -8
- package/dist/inspector/cli_bin.js.map +1 -1
- package/dist/inspector/examples.json +24 -24
- package/dist/inspector/manifest.json +573 -59
- package/dist/positioning/index.d.ts +2 -2
- package/dist/positioning/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -4,7 +4,9 @@ import { Controller } from '@hotwired/stimulus';
|
|
|
4
4
|
* Headless, accessible multi-select combobox with chips.
|
|
5
5
|
*
|
|
6
6
|
* Markup contract (identifier: `stimeo--multi-select`):
|
|
7
|
-
* <div data-controller="stimeo--multi-select"
|
|
7
|
+
* <div data-controller="stimeo--multi-select"
|
|
8
|
+
* data-stimeo--multi-select-announce-text-value="{label} selected; {count} total"
|
|
9
|
+
* data-stimeo--multi-select-announce-removed-text-value="{label} removed; {count} total">
|
|
8
10
|
* <ul data-stimeo--multi-select-target="tags" aria-label="Selected"></ul>
|
|
9
11
|
* <input type="text" role="combobox" aria-expanded="false"
|
|
10
12
|
* aria-autocomplete="list" aria-controls="ms-list"
|
|
@@ -18,11 +20,15 @@ import { Controller } from '@hotwired/stimulus';
|
|
|
18
20
|
* data-stimeo--multi-select-target="option"
|
|
19
21
|
* data-action="click->stimeo--multi-select#toggleOption">Apple</li>
|
|
20
22
|
* </ul>
|
|
21
|
-
* <span role="status" aria-live="polite" class="visually-hidden"
|
|
22
|
-
* data-stimeo--multi-select-target="status"></span>
|
|
23
23
|
* <!-- Optional: submit the selection as name="fruits[]" hidden inputs. -->
|
|
24
24
|
* <div data-stimeo--multi-select-target="fields"></div>
|
|
25
|
-
* <template data-stimeo--multi-select-target="tagTemplate"
|
|
25
|
+
* <template data-stimeo--multi-select-target="tagTemplate">
|
|
26
|
+
* <li data-stimeo--multi-select-target="tag">
|
|
27
|
+
* <span data-stimeo--multi-select-target="label"></span>
|
|
28
|
+
* <button type="button" tabindex="-1" aria-label="Remove {label}"
|
|
29
|
+
* data-stimeo--multi-select-target="remove">×</button>
|
|
30
|
+
* </li>
|
|
31
|
+
* </template>
|
|
26
32
|
* </div>
|
|
27
33
|
*
|
|
28
34
|
* Implements the WAI-ARIA APG **Combobox** pattern in its list-autocomplete,
|
|
@@ -35,13 +41,19 @@ import { Controller } from '@hotwired/stimulus';
|
|
|
35
41
|
* - Typing filters options by substring and opens the list; `ArrowDown`/`ArrowUp`
|
|
36
42
|
* (wrapping), `Home`/`End` move the active option; `Enter` toggles it (the list
|
|
37
43
|
* stays open); `Escape`/`Tab`/outside click close.
|
|
38
|
-
* - Toggling syncs `aria-selected`,
|
|
39
|
-
* the
|
|
40
|
-
*
|
|
44
|
+
* - Toggling syncs `aria-selected`, expands the author-localized remove-button
|
|
45
|
+
* name from the chip template, adds/removes the chip, sends localized text to
|
|
46
|
+
* the shared announcer, and dispatches
|
|
47
|
+
* `stimeo--multi-select:change` with `values`; filtering dispatches
|
|
48
|
+
* `stimeo--multi-select:filter` for async candidates. Option churn or a lowered
|
|
49
|
+
* `max` that moves the selection without a user edit is reported as
|
|
50
|
+
* `stimeo--multi-select:reconcile`, carrying the same `values` detail.
|
|
41
51
|
* - The chips are one roving Tab stop: `ArrowLeft`/`ArrowRight` move between them,
|
|
42
52
|
* `Delete`/`Backspace` remove the focused chip, and `Backspace` on an empty
|
|
43
|
-
* input removes the last
|
|
44
|
-
*
|
|
53
|
+
* input removes the last and keeps input focus; removal from a chip re-homes
|
|
54
|
+
* focus to a neighbor or the input.
|
|
55
|
+
* - `max` is a permanent selection invariant across initial markup, interaction,
|
|
56
|
+
* runtime options, and runtime cap changes (`0` = unlimited).
|
|
45
57
|
* - With a `fields` target the selected values are mirrored into named hidden
|
|
46
58
|
* inputs (default name `options[]`), so the selection submits with a normal
|
|
47
59
|
* form and no consumer JS — parity with {@link TagsInputController}. An optional
|
|
@@ -65,27 +77,37 @@ declare class MultiSelectController extends Controller<HTMLElement> {
|
|
|
65
77
|
type: StringConstructor;
|
|
66
78
|
default: string;
|
|
67
79
|
};
|
|
80
|
+
announceText: {
|
|
81
|
+
type: StringConstructor;
|
|
82
|
+
default: string;
|
|
83
|
+
};
|
|
84
|
+
announceRemovedText: {
|
|
85
|
+
type: StringConstructor;
|
|
86
|
+
default: string;
|
|
87
|
+
};
|
|
68
88
|
};
|
|
69
89
|
static actions: readonly ["close", "filter", "onKeydown", "open", "toggleOption"];
|
|
70
|
-
static events: readonly ["change", "filter"];
|
|
90
|
+
static events: readonly ["change", "filter", "reconcile"];
|
|
71
91
|
readonly inputTarget: HTMLInputElement;
|
|
72
92
|
readonly listTarget: HTMLElement;
|
|
73
93
|
readonly optionTargets: HTMLElement[];
|
|
74
94
|
readonly tagsTarget: HTMLElement;
|
|
75
95
|
readonly tagTargets: HTMLElement[];
|
|
76
96
|
readonly tagTemplateTarget: HTMLTemplateElement;
|
|
77
|
-
readonly
|
|
97
|
+
readonly labelTargets: HTMLElement[];
|
|
98
|
+
readonly removeTargets: HTMLButtonElement[];
|
|
78
99
|
readonly fieldsTarget: HTMLElement;
|
|
79
100
|
readonly hasListTarget: boolean;
|
|
80
101
|
readonly hasInputTarget: boolean;
|
|
81
102
|
readonly hasTagsTarget: boolean;
|
|
82
103
|
readonly hasTagTemplateTarget: boolean;
|
|
83
|
-
readonly hasStatusTarget: boolean;
|
|
84
104
|
readonly hasFieldsTarget: boolean;
|
|
85
105
|
maxValue: number;
|
|
86
106
|
nameValue: string;
|
|
87
107
|
formValue: string;
|
|
88
108
|
readonly hasFormValue: boolean;
|
|
109
|
+
announceTextValue: string;
|
|
110
|
+
announceRemovedTextValue: string;
|
|
89
111
|
/** Starts closed, syncs chips for any pre-selected options, and listens out. */
|
|
90
112
|
connect(): void;
|
|
91
113
|
/** Tears down document and chip listeners on disconnect (Turbo included). */
|
|
@@ -94,6 +116,18 @@ declare class MultiSelectController extends Controller<HTMLElement> {
|
|
|
94
116
|
optionTargetConnected(): void;
|
|
95
117
|
/** Cleans a removed target and reconciles active state against the surviving DOM. */
|
|
96
118
|
optionTargetDisconnected(option: HTMLElement): void;
|
|
119
|
+
/** Rebinds delegated chip interaction when Turbo replaces the tags container. */
|
|
120
|
+
tagsTargetConnected(tags: HTMLElement): void;
|
|
121
|
+
/** Releases only the row that actually disconnected, never a newer replacement. */
|
|
122
|
+
tagsTargetDisconnected(tags: HTMLElement): void;
|
|
123
|
+
/** Seeds a fields target inserted after connect from the current selection. */
|
|
124
|
+
fieldsTargetConnected(): void;
|
|
125
|
+
/** Reconciles a runtime max change, including dropping any newly invalid overflow. */
|
|
126
|
+
maxValueChanged(): void;
|
|
127
|
+
/** Rebuilds submitted fields when their public name changes at runtime. */
|
|
128
|
+
nameValueChanged(): void;
|
|
129
|
+
/** Rebuilds submitted fields when their associated form changes at runtime. */
|
|
130
|
+
formValueChanged(): void;
|
|
97
131
|
/**
|
|
98
132
|
* Tracks an input added initially or after connect, and makes it describe the
|
|
99
133
|
* widget that is actually on screen: a swapped-in input arrives with the
|