stimeo-ui 0.16.0 → 0.17.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 +31 -0
- package/README.md +8 -1
- package/dist/cable/index.d.ts +79 -23
- package/dist/cable/index.js +363 -436
- package/dist/cable/index.js.map +1 -1
- package/dist/controllers/accordion_controller.d.ts +4 -2
- package/dist/controllers/accordion_controller.js +166 -55
- package/dist/controllers/accordion_controller.js.map +1 -1
- package/dist/controllers/alert_dialog_controller.d.ts +12 -2
- package/dist/controllers/alert_dialog_controller.js +862 -221
- package/dist/controllers/alert_dialog_controller.js.map +1 -1
- package/dist/controllers/announcer_controller.d.ts +35 -5
- package/dist/controllers/announcer_controller.js +135 -198
- package/dist/controllers/announcer_controller.js.map +1 -1
- package/dist/controllers/aspect_ratio_controller.js +0 -10
- package/dist/controllers/aspect_ratio_controller.js.map +1 -1
- package/dist/controllers/auto_submit_controller.d.ts +30 -6
- package/dist/controllers/auto_submit_controller.js +271 -127
- package/dist/controllers/auto_submit_controller.js.map +1 -1
- package/dist/controllers/avatar_controller.js +171 -105
- package/dist/controllers/avatar_controller.js.map +1 -1
- package/dist/controllers/breadcrumb_controller.js +0 -130
- package/dist/controllers/breadcrumb_controller.js.map +1 -1
- package/dist/controllers/bulk_select_controller.d.ts +18 -0
- package/dist/controllers/bulk_select_controller.js +262 -52
- package/dist/controllers/bulk_select_controller.js.map +1 -1
- package/dist/controllers/calendar_controller.d.ts +24 -5
- package/dist/controllers/calendar_controller.js +175 -209
- package/dist/controllers/calendar_controller.js.map +1 -1
- package/dist/controllers/carousel_controller.d.ts +34 -7
- package/dist/controllers/carousel_controller.js +461 -399
- package/dist/controllers/carousel_controller.js.map +1 -1
- package/dist/controllers/character_counter_controller.d.ts +17 -1
- package/dist/controllers/character_counter_controller.js +246 -156
- package/dist/controllers/character_counter_controller.js.map +1 -1
- package/dist/controllers/checkbox_controller.d.ts +7 -2
- package/dist/controllers/checkbox_controller.js +32 -74
- package/dist/controllers/checkbox_controller.js.map +1 -1
- package/dist/controllers/clipboard_controller.d.ts +16 -5
- package/dist/controllers/clipboard_controller.js +168 -147
- package/dist/controllers/clipboard_controller.js.map +1 -1
- package/dist/controllers/collapsible_controller.d.ts +16 -4
- package/dist/controllers/collapsible_controller.js +301 -120
- package/dist/controllers/collapsible_controller.js.map +1 -1
- package/dist/controllers/color_picker_controller.d.ts +18 -6
- package/dist/controllers/color_picker_controller.js +149 -139
- package/dist/controllers/color_picker_controller.js.map +1 -1
- package/dist/controllers/combobox_controller.d.ts +23 -5
- package/dist/controllers/combobox_controller.js +360 -133
- package/dist/controllers/combobox_controller.js.map +1 -1
- package/dist/controllers/command_palette_controller.d.ts +45 -14
- package/dist/controllers/command_palette_controller.js +970 -358
- package/dist/controllers/command_palette_controller.js.map +1 -1
- package/dist/controllers/conditional_fields_controller.d.ts +15 -2
- package/dist/controllers/conditional_fields_controller.js +166 -124
- package/dist/controllers/conditional_fields_controller.js.map +1 -1
- package/dist/controllers/confirm_controller.d.ts +49 -12
- package/dist/controllers/confirm_controller.js +939 -248
- package/dist/controllers/confirm_controller.js.map +1 -1
- package/dist/controllers/context_menu_controller.d.ts +31 -4
- package/dist/controllers/context_menu_controller.js +256 -128
- package/dist/controllers/context_menu_controller.js.map +1 -1
- package/dist/controllers/count_up_controller.d.ts +13 -1
- package/dist/controllers/count_up_controller.js +73 -21
- package/dist/controllers/count_up_controller.js.map +1 -1
- package/dist/controllers/countdown_controller.d.ts +45 -1
- package/dist/controllers/countdown_controller.js +183 -148
- package/dist/controllers/countdown_controller.js.map +1 -1
- package/dist/controllers/currency_input_controller.d.ts +21 -2
- package/dist/controllers/currency_input_controller.js +134 -158
- package/dist/controllers/currency_input_controller.js.map +1 -1
- package/dist/controllers/data_grid_controller.d.ts +15 -4
- package/dist/controllers/data_grid_controller.js +114 -186
- package/dist/controllers/data_grid_controller.js.map +1 -1
- package/dist/controllers/date_range_picker_controller.d.ts +30 -5
- package/dist/controllers/date_range_picker_controller.js +288 -206
- package/dist/controllers/date_range_picker_controller.js.map +1 -1
- package/dist/controllers/dialog_controller.d.ts +13 -1
- package/dist/controllers/dialog_controller.js +858 -223
- package/dist/controllers/dialog_controller.js.map +1 -1
- package/dist/controllers/direct_upload_controller.d.ts +24 -7
- package/dist/controllers/direct_upload_controller.js +73 -153
- package/dist/controllers/direct_upload_controller.js.map +1 -1
- package/dist/controllers/dirty_form_controller.js +14 -48
- package/dist/controllers/dirty_form_controller.js.map +1 -1
- package/dist/controllers/dismissible_controller.d.ts +19 -0
- package/dist/controllers/dismissible_controller.js +175 -21
- package/dist/controllers/dismissible_controller.js.map +1 -1
- package/dist/controllers/drawer_controller.d.ts +39 -11
- package/dist/controllers/drawer_controller.js +933 -341
- package/dist/controllers/drawer_controller.js.map +1 -1
- package/dist/controllers/dropdown_controller.d.ts +31 -1
- package/dist/controllers/dropdown_controller.js +312 -82
- package/dist/controllers/dropdown_controller.js.map +1 -1
- package/dist/controllers/editable_controller.d.ts +12 -1
- package/dist/controllers/editable_controller.js +158 -68
- package/dist/controllers/editable_controller.js.map +1 -1
- package/dist/controllers/empty_state_controller.js +67 -53
- package/dist/controllers/empty_state_controller.js.map +1 -1
- package/dist/controllers/file_dropzone_controller.d.ts +60 -18
- package/dist/controllers/file_dropzone_controller.js +311 -207
- package/dist/controllers/file_dropzone_controller.js.map +1 -1
- package/dist/controllers/filter_controller.js +67 -39
- package/dist/controllers/filter_controller.js.map +1 -1
- package/dist/controllers/flash_controller.d.ts +31 -8
- package/dist/controllers/flash_controller.js +172 -314
- package/dist/controllers/flash_controller.js.map +1 -1
- package/dist/controllers/focus_controller.d.ts +12 -3
- package/dist/controllers/focus_controller.js +654 -240
- package/dist/controllers/focus_controller.js.map +1 -1
- package/dist/controllers/form_field_controller.js +147 -132
- package/dist/controllers/form_field_controller.js.map +1 -1
- package/dist/controllers/form_validation_controller.js +13 -86
- package/dist/controllers/form_validation_controller.js.map +1 -1
- package/dist/controllers/frame_loading_controller.d.ts +41 -9
- package/dist/controllers/frame_loading_controller.js +264 -213
- package/dist/controllers/frame_loading_controller.js.map +1 -1
- package/dist/controllers/highlight_controller.d.ts +22 -2
- package/dist/controllers/highlight_controller.js +107 -75
- package/dist/controllers/highlight_controller.js.map +1 -1
- package/dist/controllers/hover_card_controller.d.ts +56 -3
- package/dist/controllers/hover_card_controller.js +309 -118
- package/dist/controllers/hover_card_controller.js.map +1 -1
- package/dist/controllers/idle_controller.d.ts +42 -1
- package/dist/controllers/idle_controller.js +267 -101
- package/dist/controllers/idle_controller.js.map +1 -1
- package/dist/controllers/input_mask_controller.js +71 -72
- package/dist/controllers/input_mask_controller.js.map +1 -1
- package/dist/controllers/intersection_controller.d.ts +32 -13
- package/dist/controllers/intersection_controller.js +147 -106
- package/dist/controllers/intersection_controller.js.map +1 -1
- package/dist/controllers/lazy_frame_controller.d.ts +16 -0
- package/dist/controllers/lazy_frame_controller.js +9 -65
- package/dist/controllers/lazy_frame_controller.js.map +1 -1
- package/dist/controllers/listbox_controller.d.ts +34 -2
- package/dist/controllers/listbox_controller.js +306 -204
- package/dist/controllers/listbox_controller.js.map +1 -1
- package/dist/controllers/local_time_controller.d.ts +1 -1
- package/dist/controllers/local_time_controller.js +54 -64
- package/dist/controllers/local_time_controller.js.map +1 -1
- package/dist/controllers/masonry_controller.d.ts +11 -3
- package/dist/controllers/masonry_controller.js +70 -93
- package/dist/controllers/masonry_controller.js.map +1 -1
- package/dist/controllers/menu_controller.d.ts +32 -7
- package/dist/controllers/menu_controller.js +214 -156
- package/dist/controllers/menu_controller.js.map +1 -1
- package/dist/controllers/menubar_controller.d.ts +4 -4
- package/dist/controllers/menubar_controller.js +170 -329
- package/dist/controllers/menubar_controller.js.map +1 -1
- package/dist/controllers/meter_controller.d.ts +20 -0
- package/dist/controllers/meter_controller.js +151 -67
- package/dist/controllers/meter_controller.js.map +1 -1
- package/dist/controllers/multi_select_controller.d.ts +32 -4
- package/dist/controllers/multi_select_controller.js +593 -358
- package/dist/controllers/multi_select_controller.js.map +1 -1
- package/dist/controllers/navigation_menu_controller.d.ts +8 -1
- package/dist/controllers/navigation_menu_controller.js +124 -232
- package/dist/controllers/navigation_menu_controller.js.map +1 -1
- package/dist/controllers/nested_form_controller.d.ts +10 -0
- package/dist/controllers/nested_form_controller.js +352 -182
- package/dist/controllers/nested_form_controller.js.map +1 -1
- package/dist/controllers/network_status_controller.d.ts +23 -0
- package/dist/controllers/network_status_controller.js +242 -54
- package/dist/controllers/network_status_controller.js.map +1 -1
- package/dist/controllers/number_input_controller.d.ts +26 -2
- package/dist/controllers/number_input_controller.js +320 -263
- package/dist/controllers/number_input_controller.js.map +1 -1
- package/dist/controllers/optimistic_controller.js +16 -76
- package/dist/controllers/optimistic_controller.js.map +1 -1
- package/dist/controllers/otp_controller.d.ts +20 -4
- package/dist/controllers/otp_controller.js +198 -193
- package/dist/controllers/otp_controller.js.map +1 -1
- package/dist/controllers/overflow_indicator_controller.d.ts +5 -0
- package/dist/controllers/overflow_indicator_controller.js +116 -113
- package/dist/controllers/overflow_indicator_controller.js.map +1 -1
- package/dist/controllers/overflow_menu_controller.d.ts +48 -11
- package/dist/controllers/overflow_menu_controller.js +343 -283
- package/dist/controllers/overflow_menu_controller.js.map +1 -1
- package/dist/controllers/pagination_controller.d.ts +35 -6
- package/dist/controllers/pagination_controller.js +295 -119
- package/dist/controllers/pagination_controller.js.map +1 -1
- package/dist/controllers/password_reveal_controller.d.ts +45 -8
- package/dist/controllers/password_reveal_controller.js +389 -121
- package/dist/controllers/password_reveal_controller.js.map +1 -1
- package/dist/controllers/password_strength_controller.d.ts +14 -5
- package/dist/controllers/password_strength_controller.js +99 -153
- package/dist/controllers/password_strength_controller.js.map +1 -1
- package/dist/controllers/persist_controller.d.ts +11 -4
- package/dist/controllers/persist_controller.js +237 -103
- package/dist/controllers/persist_controller.js.map +1 -1
- package/dist/controllers/pointer_drag_controller.d.ts +19 -7
- package/dist/controllers/pointer_drag_controller.js +185 -165
- package/dist/controllers/pointer_drag_controller.js.map +1 -1
- package/dist/controllers/popover_controller.d.ts +38 -2
- package/dist/controllers/popover_controller.js +236 -97
- package/dist/controllers/popover_controller.js.map +1 -1
- package/dist/controllers/portal_controller.d.ts +44 -4
- package/dist/controllers/portal_controller.js +209 -76
- package/dist/controllers/portal_controller.js.map +1 -1
- package/dist/controllers/preview_guard_controller.d.ts +10 -4
- package/dist/controllers/preview_guard_controller.js +232 -116
- package/dist/controllers/preview_guard_controller.js.map +1 -1
- package/dist/controllers/progress_controller.d.ts +11 -0
- package/dist/controllers/progress_controller.js +125 -56
- package/dist/controllers/progress_controller.js.map +1 -1
- package/dist/controllers/radio_group_controller.d.ts +14 -5
- package/dist/controllers/radio_group_controller.js +117 -137
- package/dist/controllers/radio_group_controller.js.map +1 -1
- package/dist/controllers/range_slider_controller.d.ts +43 -3
- package/dist/controllers/range_slider_controller.js +192 -105
- package/dist/controllers/range_slider_controller.js.map +1 -1
- package/dist/controllers/rating_controller.d.ts +20 -4
- package/dist/controllers/rating_controller.js +418 -207
- package/dist/controllers/rating_controller.js.map +1 -1
- package/dist/controllers/read_more_controller.d.ts +2 -0
- package/dist/controllers/read_more_controller.js +134 -63
- package/dist/controllers/read_more_controller.js.map +1 -1
- package/dist/controllers/reading_progress_controller.d.ts +1 -1
- package/dist/controllers/reading_progress_controller.js +147 -135
- package/dist/controllers/reading_progress_controller.js.map +1 -1
- package/dist/controllers/relative_time_controller.d.ts +18 -4
- package/dist/controllers/relative_time_controller.js +145 -110
- package/dist/controllers/relative_time_controller.js.map +1 -1
- package/dist/controllers/reset_on_restore_controller.d.ts +85 -0
- package/dist/controllers/{reset_before_cache_controller.js → reset_on_restore_controller.js} +97 -38
- package/dist/controllers/reset_on_restore_controller.js.map +1 -0
- package/dist/controllers/resizable_controller.d.ts +28 -2
- package/dist/controllers/resizable_controller.js +255 -139
- package/dist/controllers/resizable_controller.js.map +1 -1
- package/dist/controllers/roving_controller.js +39 -84
- package/dist/controllers/roving_controller.js.map +1 -1
- package/dist/controllers/scroll_area_controller.d.ts +7 -3
- package/dist/controllers/scroll_area_controller.js +428 -225
- package/dist/controllers/scroll_area_controller.js.map +1 -1
- package/dist/controllers/scroll_restore_controller.js +0 -53
- package/dist/controllers/scroll_restore_controller.js.map +1 -1
- package/dist/controllers/scroll_visibility_controller.d.ts +28 -12
- package/dist/controllers/scroll_visibility_controller.js +395 -145
- package/dist/controllers/scroll_visibility_controller.js.map +1 -1
- package/dist/controllers/scrollspy_controller.d.ts +6 -1
- package/dist/controllers/scrollspy_controller.js +181 -242
- package/dist/controllers/scrollspy_controller.js.map +1 -1
- package/dist/controllers/separator_controller.d.ts +19 -4
- package/dist/controllers/separator_controller.js +267 -140
- package/dist/controllers/separator_controller.js.map +1 -1
- package/dist/controllers/sidebar_controller.d.ts +64 -7
- package/dist/controllers/sidebar_controller.js +1023 -386
- package/dist/controllers/sidebar_controller.js.map +1 -1
- package/dist/controllers/skeleton_controller.d.ts +23 -0
- package/dist/controllers/skeleton_controller.js +248 -97
- package/dist/controllers/skeleton_controller.js.map +1 -1
- package/dist/controllers/slider_controller.d.ts +27 -1
- package/dist/controllers/slider_controller.js +159 -79
- package/dist/controllers/slider_controller.js.map +1 -1
- package/dist/controllers/smart_sticky_header_controller.d.ts +21 -3
- package/dist/controllers/smart_sticky_header_controller.js +162 -63
- package/dist/controllers/smart_sticky_header_controller.js.map +1 -1
- package/dist/controllers/sortable_controller.js +0 -112
- package/dist/controllers/sortable_controller.js.map +1 -1
- package/dist/controllers/spinner_controller.d.ts +39 -4
- package/dist/controllers/spinner_controller.js +277 -169
- package/dist/controllers/spinner_controller.js.map +1 -1
- package/dist/controllers/step_indicator_controller.d.ts +5 -0
- package/dist/controllers/step_indicator_controller.js +99 -46
- package/dist/controllers/step_indicator_controller.js.map +1 -1
- package/dist/controllers/stepper_controller.d.ts +12 -3
- package/dist/controllers/stepper_controller.js +114 -73
- package/dist/controllers/stepper_controller.js.map +1 -1
- package/dist/controllers/stick_to_bottom_controller.d.ts +6 -0
- package/dist/controllers/stick_to_bottom_controller.js +262 -138
- package/dist/controllers/stick_to_bottom_controller.js.map +1 -1
- package/dist/controllers/sticky_observer_controller.d.ts +11 -0
- package/dist/controllers/sticky_observer_controller.js +214 -49
- package/dist/controllers/sticky_observer_controller.js.map +1 -1
- package/dist/controllers/submit_once_controller.d.ts +23 -8
- package/dist/controllers/submit_once_controller.js +294 -205
- package/dist/controllers/submit_once_controller.js.map +1 -1
- package/dist/controllers/switch_controller.d.ts +12 -1
- package/dist/controllers/switch_controller.js +33 -60
- package/dist/controllers/switch_controller.js.map +1 -1
- package/dist/controllers/tabs_controller.d.ts +2 -2
- package/dist/controllers/tabs_controller.js +35 -29
- package/dist/controllers/tabs_controller.js.map +1 -1
- package/dist/controllers/tags_input_controller.d.ts +12 -0
- package/dist/controllers/tags_input_controller.js +136 -145
- package/dist/controllers/tags_input_controller.js.map +1 -1
- package/dist/controllers/textarea_autosize_controller.d.ts +10 -0
- package/dist/controllers/textarea_autosize_controller.js +71 -58
- package/dist/controllers/textarea_autosize_controller.js.map +1 -1
- package/dist/controllers/theme_controller.d.ts +21 -9
- package/dist/controllers/theme_controller.js +130 -112
- package/dist/controllers/theme_controller.js.map +1 -1
- package/dist/controllers/time_picker_controller.d.ts +18 -1
- package/dist/controllers/time_picker_controller.js +146 -80
- package/dist/controllers/time_picker_controller.js.map +1 -1
- package/dist/controllers/toast_controller.d.ts +36 -11
- package/dist/controllers/toast_controller.js +186 -297
- package/dist/controllers/toast_controller.js.map +1 -1
- package/dist/controllers/toggle_group_controller.d.ts +12 -3
- package/dist/controllers/toggle_group_controller.js +95 -136
- package/dist/controllers/toggle_group_controller.js.map +1 -1
- package/dist/controllers/toolbar_controller.js +68 -98
- package/dist/controllers/toolbar_controller.js.map +1 -1
- package/dist/controllers/tooltip_controller.d.ts +45 -3
- package/dist/controllers/tooltip_controller.js +158 -124
- package/dist/controllers/tooltip_controller.js.map +1 -1
- package/dist/controllers/transition_controller.d.ts +22 -4
- package/dist/controllers/transition_controller.js +123 -119
- package/dist/controllers/transition_controller.js.map +1 -1
- package/dist/controllers/tree_view_controller.d.ts +21 -11
- package/dist/controllers/tree_view_controller.js +150 -345
- package/dist/controllers/tree_view_controller.js.map +1 -1
- package/dist/index.d.ts +8 -5
- package/dist/index.js +6370 -9346
- package/dist/index.js.map +1 -1
- package/dist/inspector/cli.d.ts +23 -3
- package/dist/inspector/cli.js +92 -37
- package/dist/inspector/cli.js.map +1 -1
- package/dist/inspector/cli_bin.js +92 -56
- package/dist/inspector/cli_bin.js.map +1 -1
- package/dist/inspector/examples.json +8 -8
- package/dist/inspector/manifest.json +787 -100
- package/dist/positioning/index.d.ts +8 -0
- package/dist/positioning/index.js +148 -47
- package/dist/positioning/index.js.map +1 -1
- package/package.json +6 -6
- package/dist/controllers/reset_before_cache_controller.d.ts +0 -76
- package/dist/controllers/reset_before_cache_controller.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
While the version is `0.x`, the public API (the `stimeo--*` data attributes) may
|
|
8
8
|
change between releases.
|
|
9
9
|
|
|
10
|
+
## [Unreleased]
|
|
11
|
+
|
|
12
|
+
## [0.17.0] - 2026-10-04
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- **Breaking** Replace `reset-before-cache` with `reset-on-restore` (class, export,
|
|
17
|
+
and subpath).
|
|
18
|
+
Reset runs on restoration; remove `dispatchReset` and `:request` bindings.
|
|
19
|
+
Restored drawers and command palettes start closed.
|
|
20
|
+
- **Breaking** Rename calendar, combobox, and command-palette `selectByClick`, and
|
|
21
|
+
tree-view `onClick`, to `select`; replace calendar `selectDayElement` with
|
|
22
|
+
`select(element)`.
|
|
23
|
+
Accordion `toggle`, theme `set`, and scrollspy `scrollTo` require owned targets.
|
|
24
|
+
- **Breaking** State events are silent for unchanged state and superseded pending
|
|
25
|
+
reports.
|
|
26
|
+
For child edits within partial checkbox groups, use the children's native `change`.
|
|
27
|
+
Number Values and action params enforce finite values and their declared domains.
|
|
28
|
+
Update Inspector integrations to schema v15 and run `stimeo check` before deploying.
|
|
29
|
+
- Target actions accept owned elements; user state reports include `detail.reason`.
|
|
30
|
+
Toast duration, persist debounce, and count-up duration changes apply to the next
|
|
31
|
+
operation. Portal destination changes update mounts; Cable params cannot replace
|
|
32
|
+
the declared channel.
|
|
33
|
+
|
|
34
|
+
### Fixed
|
|
35
|
+
|
|
36
|
+
- Preserve live state across Turbo caching, repair derived state after retained
|
|
37
|
+
morphs, and restore focus reliably across nested layers and Shadow DOM.
|
|
38
|
+
|
|
10
39
|
## [0.16.0] - 2026-09-26
|
|
11
40
|
|
|
12
41
|
Minor release with no new components. Widgets now report their own state
|
|
@@ -1278,6 +1307,8 @@ Initial public alpha: 101 behavior-only, accessible Stimulus controllers driven
|
|
|
1278
1307
|
by `data-*` attributes, shipping no CSS. Published to npm (with provenance) and
|
|
1279
1308
|
RubyGems.
|
|
1280
1309
|
|
|
1310
|
+
[Unreleased]: https://github.com/taiyaky/stimeo-ui/compare/v0.17.0...HEAD
|
|
1311
|
+
[0.17.0]: https://github.com/taiyaky/stimeo-ui/releases/tag/v0.17.0
|
|
1281
1312
|
[0.16.0]: https://github.com/taiyaky/stimeo-ui/releases/tag/v0.16.0
|
|
1282
1313
|
[0.15.0]: https://github.com/taiyaky/stimeo-ui/releases/tag/v0.15.0
|
|
1283
1314
|
[0.14.0]: https://github.com/taiyaky/stimeo-ui/releases/tag/v0.14.0
|
package/README.md
CHANGED
|
@@ -62,7 +62,14 @@ registerStimeo(application); // registers every stimeo--* controller
|
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
Need only a few controllers? Import them individually from
|
|
65
|
-
`stimeo-ui/controllers/*` and register them under your own identifiers.
|
|
65
|
+
`stimeo-ui/controllers/*` and register them under your own identifiers. Each
|
|
66
|
+
file loads on its own, yet the coordination between components — which layer
|
|
67
|
+
Escape closes, a focus trap's `Tab` and background, the value two components
|
|
68
|
+
lend the same attribute — is kept once per page, whichever files the
|
|
69
|
+
controllers came from, `stimeo-ui` itself included.
|
|
70
|
+
Copies of the same controller also share dirty-form confirmations, highlight
|
|
71
|
+
deadlines and portal origins. Opt-in Cable copies share the consumer, subscriptions
|
|
72
|
+
and peer departure decisions; generated ARIA ids stay distinct across copies too.
|
|
66
73
|
|
|
67
74
|
- **Peer dependencies:** `@hotwired/stimulus` (always), `@floating-ui/dom` (only
|
|
68
75
|
if you use the opt-in `stimeo-ui/positioning` module — tooltips, popovers, etc.
|
package/dist/cable/index.d.ts
CHANGED
|
@@ -62,9 +62,10 @@ import { Controller, Application } from '@hotwired/stimulus';
|
|
|
62
62
|
* (local-only) counters never disable their triggers. `announceText` is opt-in
|
|
63
63
|
* and empty by default; when set, reconciled counts reach the page's shared
|
|
64
64
|
* announcer, debounced so a burst is one message. The subscription follows the
|
|
65
|
-
* declaration — a `channel` or `params` change moves it
|
|
66
|
-
*
|
|
67
|
-
*
|
|
65
|
+
* declaration — a `channel` or `params` change moves it, once per batch of
|
|
66
|
+
* changes and only when the identifier they name differs from the one it was
|
|
67
|
+
* opened for — and is released on `disconnect()` (Turbo navigation included)
|
|
68
|
+
* along with any pending announcement.
|
|
68
69
|
*/
|
|
69
70
|
declare class LiveCounterController extends Controller<HTMLElement> {
|
|
70
71
|
#private;
|
|
@@ -96,13 +97,7 @@ declare class LiveCounterController extends Controller<HTMLElement> {
|
|
|
96
97
|
paramsValue: string;
|
|
97
98
|
idValue: string;
|
|
98
99
|
announceTextValue: string;
|
|
99
|
-
/**
|
|
100
|
-
* Re-parses the identifier parameters and moves the subscription to the
|
|
101
|
-
* identifier they now name.
|
|
102
|
-
*
|
|
103
|
-
* A malformed declaration falls back to no parameters, so the identifier keeps
|
|
104
|
-
* naming the channel instead of the subscription never being created at all.
|
|
105
|
-
*/
|
|
100
|
+
/** Moves the subscription to the identifier the parameters now name. */
|
|
106
101
|
paramsValueChanged(): void;
|
|
107
102
|
/** Moves the subscription when the declaration names a different channel. */
|
|
108
103
|
channelValueChanged(): void;
|
|
@@ -197,6 +192,22 @@ declare class LiveCounterController extends Controller<HTMLElement> {
|
|
|
197
192
|
* Stream or a morph arrives empty and is drawn from the roster as it connects; the subscription, heartbeat interval,
|
|
198
193
|
* per-peer expiry timers, and the `pagehide` listener are all released on
|
|
199
194
|
* `disconnect()` (Turbo navigation included).
|
|
195
|
+
*
|
|
196
|
+
* The live resources follow the declaration; Values changed together move them
|
|
197
|
+
* once, after the batch, and nothing moves before `connect()` or after
|
|
198
|
+
* `disconnect()`. A `channel` or `params` change moves the subscription: the room
|
|
199
|
+
* being left gets the leaving notice under the same rules as `disconnect()`
|
|
200
|
+
* (confirmed, an own `id`, the last voice for it), and its roster, expiry timers,
|
|
201
|
+
* pending beacon and announcement, throttle window and rejected hook are dropped
|
|
202
|
+
* without an event, as a fresh connection would, since none of them is a fact of
|
|
203
|
+
* the new room. An `id` change keeps the subscription and its roster: the old id's
|
|
204
|
+
* voice is released once (the last voice leaves), the new id beacons at once —
|
|
205
|
+
* which also stands in for a convergence answer still queued — and a peer already
|
|
206
|
+
* listed under the new id is this client now, so it stops being counted without a
|
|
207
|
+
* `leave`: it went nowhere. A `heartbeat` change re-arms the running interval,
|
|
208
|
+
* counted from the change. `timeout` arms each peer's expiry when its beacon
|
|
209
|
+
* arrives, so a change applies from that peer's next beacon and never moves a
|
|
210
|
+
* deadline already set.
|
|
200
211
|
*/
|
|
201
212
|
declare class PresenceController extends Controller<HTMLElement> {
|
|
202
213
|
#private;
|
|
@@ -235,6 +246,18 @@ declare class PresenceController extends Controller<HTMLElement> {
|
|
|
235
246
|
default: string;
|
|
236
247
|
};
|
|
237
248
|
};
|
|
249
|
+
static valueConstraints: {
|
|
250
|
+
heartbeat: {
|
|
251
|
+
readonly finite: true;
|
|
252
|
+
readonly exclusiveMin: 0;
|
|
253
|
+
readonly max: 2147483647;
|
|
254
|
+
};
|
|
255
|
+
timeout: {
|
|
256
|
+
readonly finite: true;
|
|
257
|
+
readonly exclusiveMin: 0;
|
|
258
|
+
readonly max: 2147483647;
|
|
259
|
+
};
|
|
260
|
+
};
|
|
238
261
|
static events: readonly ["join", "leave", "change"];
|
|
239
262
|
readonly hasCountTarget: boolean;
|
|
240
263
|
readonly countTarget: HTMLElement;
|
|
@@ -250,13 +273,14 @@ declare class PresenceController extends Controller<HTMLElement> {
|
|
|
250
273
|
timeoutValue: number;
|
|
251
274
|
announceJoinTextValue: string;
|
|
252
275
|
announceLeaveTextValue: string;
|
|
253
|
-
/**
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
* A malformed declaration falls back to no parameters, so the identifier keeps
|
|
257
|
-
* naming the channel instead of the subscription never being created at all.
|
|
258
|
-
*/
|
|
276
|
+
/** Moves the subscription to the declared channel. */
|
|
277
|
+
channelValueChanged(): void;
|
|
278
|
+
/** Moves the subscription to the identifier the parameters name. */
|
|
259
279
|
paramsValueChanged(): void;
|
|
280
|
+
/** Moves this element's voice to the declared id. */
|
|
281
|
+
idValueChanged(): void;
|
|
282
|
+
/** Re-arms a running heartbeat on the declared period. */
|
|
283
|
+
heartbeatValueChanged(): void;
|
|
260
284
|
/**
|
|
261
285
|
* Draws the roster into a list target, which arrives empty from a Turbo Stream
|
|
262
286
|
* replacement or a morph. Stimulus runs this before `connect()` on the first mount
|
|
@@ -264,8 +288,12 @@ declare class PresenceController extends Controller<HTMLElement> {
|
|
|
264
288
|
* preserved is what `connect()` goes on to do anyway.
|
|
265
289
|
*/
|
|
266
290
|
listTargetConnected(): void;
|
|
291
|
+
/** Draws the roster into the list target that stays when an earlier one leaves. */
|
|
292
|
+
listTargetDisconnected(): void;
|
|
267
293
|
/** Paints the roster size into a count target that arrives blank, for the same reason. */
|
|
268
294
|
countTargetConnected(): void;
|
|
295
|
+
/** Paints the roster size into the count target that stays when an earlier one leaves. */
|
|
296
|
+
countTargetDisconnected(): void;
|
|
269
297
|
connect(): void;
|
|
270
298
|
disconnect(): void;
|
|
271
299
|
}
|
|
@@ -324,6 +352,22 @@ declare class PresenceController extends Controller<HTMLElement> {
|
|
|
324
352
|
* from the stream. The subscription, the per-typer timers, and the delegated
|
|
325
353
|
* `input` listener are all released on `disconnect()` (Turbo navigation
|
|
326
354
|
* included).
|
|
355
|
+
*
|
|
356
|
+
* The declared `channel` names the subscription: `params` *adds* identifier
|
|
357
|
+
* parameters except `channel`, which is ignored. Without a declared channel
|
|
358
|
+
* nothing is subscribed whatever `params` holds.
|
|
359
|
+
*
|
|
360
|
+
* The subscription follows the declaration: a `channel` or `params` change moves
|
|
361
|
+
* it — once, after the batch, however many of the two changed together, and never
|
|
362
|
+
* before `connect()` or after `disconnect()` — and drops the typers, their expiry
|
|
363
|
+
* timers, a pending announcement, the throttle window and the rejected hook
|
|
364
|
+
* without an event, as a fresh connection would, since none of them is a fact of
|
|
365
|
+
* the new room. A `name` change keeps the subscription and the typers, except one
|
|
366
|
+
* shown under the new name: that is this client now, so it is dropped with its
|
|
367
|
+
* expiry and the display redrawn, without a `change` — it did not stop typing.
|
|
368
|
+
* The own echo is still filtered by the current `name`. `timeout` arms each
|
|
369
|
+
* typer's expiry when its signal arrives, so a change applies from that typer's
|
|
370
|
+
* next signal and never moves a deadline already set.
|
|
327
371
|
*/
|
|
328
372
|
declare class TypingIndicatorController extends Controller<HTMLElement> {
|
|
329
373
|
#private;
|
|
@@ -358,6 +402,17 @@ declare class TypingIndicatorController extends Controller<HTMLElement> {
|
|
|
358
402
|
default: string;
|
|
359
403
|
};
|
|
360
404
|
};
|
|
405
|
+
static valueConstraints: {
|
|
406
|
+
timeout: {
|
|
407
|
+
readonly finite: true;
|
|
408
|
+
readonly min: 0;
|
|
409
|
+
readonly max: 2147483647;
|
|
410
|
+
};
|
|
411
|
+
throttle: {
|
|
412
|
+
readonly finite: true;
|
|
413
|
+
readonly min: 0;
|
|
414
|
+
};
|
|
415
|
+
};
|
|
361
416
|
static events: readonly ["change"];
|
|
362
417
|
readonly hasStatusTarget: boolean;
|
|
363
418
|
readonly statusTarget: HTMLElement;
|
|
@@ -368,22 +423,23 @@ declare class TypingIndicatorController extends Controller<HTMLElement> {
|
|
|
368
423
|
throttleValue: number;
|
|
369
424
|
announceOneTextValue: string;
|
|
370
425
|
announceManyTextValue: string;
|
|
371
|
-
/**
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
* A malformed declaration falls back to no parameters, so the identifier keeps
|
|
375
|
-
* naming the channel instead of the subscription never being created at all.
|
|
376
|
-
*/
|
|
426
|
+
/** Moves the subscription to the declared channel. */
|
|
427
|
+
channelValueChanged(): void;
|
|
428
|
+
/** Moves the subscription to the identifier the parameters name. */
|
|
377
429
|
paramsValueChanged(): void;
|
|
430
|
+
/** Stops showing a typer under the name this client now declares. */
|
|
431
|
+
nameValueChanged(): void;
|
|
378
432
|
/**
|
|
379
433
|
* Paints the current copy into a `status` target that arrived at runtime.
|
|
380
434
|
*
|
|
381
435
|
* No event: the set of typers did not change, only the element that displays it.
|
|
382
436
|
* Without this a region swapped in mid-conversation stays empty while `data-typing`
|
|
383
437
|
* still says someone is typing, leaving the state in the visual hook alone. An empty
|
|
384
|
-
* set
|
|
438
|
+
* set paints the empty copy, so a region that arrives with an old one is cleared.
|
|
385
439
|
*/
|
|
386
440
|
statusTargetConnected(): void;
|
|
441
|
+
/** Paints the current copy, empty when nobody types, into the `status` target that stays. */
|
|
442
|
+
statusTargetDisconnected(): void;
|
|
387
443
|
connect(): void;
|
|
388
444
|
disconnect(): void;
|
|
389
445
|
}
|