stimeo-ui 0.5.0 → 0.7.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 +178 -0
- package/dist/controllers/alert_dialog_controller.d.ts +2 -0
- package/dist/controllers/alert_dialog_controller.js +75 -4
- package/dist/controllers/alert_dialog_controller.js.map +1 -1
- package/dist/controllers/aspect_ratio_controller.d.ts +1 -3
- package/dist/controllers/aspect_ratio_controller.js +19 -11
- package/dist/controllers/aspect_ratio_controller.js.map +1 -1
- package/dist/controllers/auto_submit_controller.d.ts +2 -0
- package/dist/controllers/auto_submit_controller.js.map +1 -1
- package/dist/controllers/avatar_controller.d.ts +36 -15
- package/dist/controllers/avatar_controller.js +237 -40
- package/dist/controllers/avatar_controller.js.map +1 -1
- package/dist/controllers/breadcrumb_controller.d.ts +2 -0
- package/dist/controllers/breadcrumb_controller.js.map +1 -1
- package/dist/controllers/bulk_select_controller.d.ts +2 -0
- package/dist/controllers/bulk_select_controller.js.map +1 -1
- package/dist/controllers/calendar_controller.d.ts +2 -0
- package/dist/controllers/calendar_controller.js.map +1 -1
- package/dist/controllers/carousel_controller.d.ts +12 -3
- package/dist/controllers/carousel_controller.js +85 -9
- package/dist/controllers/carousel_controller.js.map +1 -1
- package/dist/controllers/character_counter_controller.d.ts +52 -20
- package/dist/controllers/character_counter_controller.js +338 -63
- package/dist/controllers/character_counter_controller.js.map +1 -1
- package/dist/controllers/checkbox_controller.d.ts +34 -5
- package/dist/controllers/checkbox_controller.js +136 -25
- package/dist/controllers/checkbox_controller.js.map +1 -1
- package/dist/controllers/color_picker_controller.d.ts +10 -1
- package/dist/controllers/color_picker_controller.js +35 -9
- package/dist/controllers/color_picker_controller.js.map +1 -1
- package/dist/controllers/combobox_controller.d.ts +2 -0
- package/dist/controllers/combobox_controller.js.map +1 -1
- package/dist/controllers/command_palette_controller.d.ts +2 -0
- package/dist/controllers/command_palette_controller.js +75 -4
- package/dist/controllers/command_palette_controller.js.map +1 -1
- package/dist/controllers/conditional_fields_controller.d.ts +42 -14
- package/dist/controllers/conditional_fields_controller.js +345 -51
- package/dist/controllers/conditional_fields_controller.js.map +1 -1
- package/dist/controllers/confirm_controller.d.ts +2 -0
- package/dist/controllers/confirm_controller.js +75 -4
- package/dist/controllers/confirm_controller.js.map +1 -1
- package/dist/controllers/count_up_controller.d.ts +2 -0
- package/dist/controllers/count_up_controller.js.map +1 -1
- package/dist/controllers/countdown_controller.d.ts +4 -0
- package/dist/controllers/countdown_controller.js.map +1 -1
- package/dist/controllers/currency_input_controller.d.ts +2 -0
- package/dist/controllers/currency_input_controller.js.map +1 -1
- package/dist/controllers/data_grid_controller.d.ts +3 -0
- package/dist/controllers/data_grid_controller.js.map +1 -1
- package/dist/controllers/date_range_picker_controller.d.ts +23 -4
- package/dist/controllers/date_range_picker_controller.js +157 -30
- package/dist/controllers/date_range_picker_controller.js.map +1 -1
- package/dist/controllers/dialog_controller.js +75 -4
- package/dist/controllers/dialog_controller.js.map +1 -1
- package/dist/controllers/direct_upload_controller.d.ts +56 -24
- package/dist/controllers/direct_upload_controller.js +201 -45
- package/dist/controllers/direct_upload_controller.js.map +1 -1
- package/dist/controllers/dirty_form_controller.d.ts +14 -6
- package/dist/controllers/dirty_form_controller.js +192 -29
- package/dist/controllers/dirty_form_controller.js.map +1 -1
- package/dist/controllers/dismissible_controller.d.ts +2 -0
- package/dist/controllers/dismissible_controller.js +83 -18
- package/dist/controllers/dismissible_controller.js.map +1 -1
- package/dist/controllers/drawer_controller.js +75 -4
- package/dist/controllers/drawer_controller.js.map +1 -1
- package/dist/controllers/empty_state_controller.d.ts +2 -0
- package/dist/controllers/empty_state_controller.js.map +1 -1
- package/dist/controllers/file_dropzone_controller.d.ts +9 -1
- package/dist/controllers/file_dropzone_controller.js +26 -3
- package/dist/controllers/file_dropzone_controller.js.map +1 -1
- package/dist/controllers/filter_controller.d.ts +2 -0
- package/dist/controllers/filter_controller.js.map +1 -1
- package/dist/controllers/flash_controller.d.ts +4 -0
- package/dist/controllers/flash_controller.js.map +1 -1
- package/dist/controllers/focus_controller.d.ts +4 -3
- package/dist/controllers/focus_controller.js +75 -4
- package/dist/controllers/focus_controller.js.map +1 -1
- package/dist/controllers/form_field_controller.d.ts +50 -10
- package/dist/controllers/form_field_controller.js +280 -62
- package/dist/controllers/form_field_controller.js.map +1 -1
- package/dist/controllers/form_validation_controller.d.ts +10 -8
- package/dist/controllers/form_validation_controller.js +208 -83
- package/dist/controllers/form_validation_controller.js.map +1 -1
- package/dist/controllers/frame_loading_controller.d.ts +2 -0
- package/dist/controllers/frame_loading_controller.js.map +1 -1
- package/dist/controllers/highlight_controller.d.ts +2 -0
- 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 -3
- package/dist/controllers/idle_controller.js +27 -5
- package/dist/controllers/idle_controller.js.map +1 -1
- package/dist/controllers/input_mask_controller.d.ts +2 -0
- package/dist/controllers/input_mask_controller.js.map +1 -1
- package/dist/controllers/lazy_frame_controller.d.ts +2 -0
- package/dist/controllers/lazy_frame_controller.js.map +1 -1
- package/dist/controllers/listbox_controller.d.ts +2 -0
- package/dist/controllers/listbox_controller.js.map +1 -1
- package/dist/controllers/local_time_controller.d.ts +2 -0
- package/dist/controllers/local_time_controller.js.map +1 -1
- package/dist/controllers/masonry_controller.d.ts +2 -0
- 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.d.ts +2 -0
- package/dist/controllers/meter_controller.js.map +1 -1
- package/dist/controllers/multi_select_controller.d.ts +48 -12
- package/dist/controllers/multi_select_controller.js +460 -151
- package/dist/controllers/multi_select_controller.js.map +1 -1
- package/dist/controllers/nested_form_controller.d.ts +2 -0
- package/dist/controllers/nested_form_controller.js.map +1 -1
- package/dist/controllers/network_status_controller.d.ts +2 -0
- package/dist/controllers/network_status_controller.js.map +1 -1
- package/dist/controllers/number_input_controller.d.ts +26 -6
- package/dist/controllers/number_input_controller.js +317 -51
- package/dist/controllers/number_input_controller.js.map +1 -1
- package/dist/controllers/otp_controller.d.ts +3 -0
- package/dist/controllers/otp_controller.js.map +1 -1
- package/dist/controllers/overflow_indicator_controller.d.ts +2 -0
- package/dist/controllers/overflow_indicator_controller.js.map +1 -1
- package/dist/controllers/overflow_menu_controller.d.ts +2 -0
- package/dist/controllers/overflow_menu_controller.js +6 -1
- package/dist/controllers/overflow_menu_controller.js.map +1 -1
- package/dist/controllers/pagination_controller.d.ts +2 -0
- package/dist/controllers/pagination_controller.js +35 -1
- package/dist/controllers/pagination_controller.js.map +1 -1
- package/dist/controllers/password_reveal_controller.d.ts +2 -0
- package/dist/controllers/password_reveal_controller.js.map +1 -1
- package/dist/controllers/password_strength_controller.d.ts +5 -3
- package/dist/controllers/password_strength_controller.js +20 -2
- package/dist/controllers/password_strength_controller.js.map +1 -1
- package/dist/controllers/persist_controller.d.ts +33 -19
- package/dist/controllers/persist_controller.js +449 -120
- package/dist/controllers/persist_controller.js.map +1 -1
- package/dist/controllers/pointer_drag_controller.d.ts +3 -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 +77 -4
- package/dist/controllers/popover_controller.js.map +1 -1
- package/dist/controllers/portal_controller.d.ts +3 -2
- package/dist/controllers/portal_controller.js.map +1 -1
- package/dist/controllers/preview_guard_controller.d.ts +2 -0
- package/dist/controllers/preview_guard_controller.js.map +1 -1
- package/dist/controllers/progress_controller.d.ts +3 -0
- package/dist/controllers/progress_controller.js.map +1 -1
- package/dist/controllers/radio_group_controller.d.ts +44 -15
- package/dist/controllers/radio_group_controller.js +540 -56
- package/dist/controllers/radio_group_controller.js.map +1 -1
- package/dist/controllers/rating_controller.d.ts +38 -31
- package/dist/controllers/rating_controller.js +276 -89
- package/dist/controllers/rating_controller.js.map +1 -1
- package/dist/controllers/reading_progress_controller.d.ts +2 -0
- package/dist/controllers/reading_progress_controller.js.map +1 -1
- package/dist/controllers/resizable_controller.d.ts +2 -0
- package/dist/controllers/resizable_controller.js +33 -0
- package/dist/controllers/resizable_controller.js.map +1 -1
- package/dist/controllers/roving_controller.d.ts +6 -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 +25 -11
- package/dist/controllers/scroll_area_controller.js +557 -125
- package/dist/controllers/scroll_area_controller.js.map +1 -1
- package/dist/controllers/scroll_visibility_controller.d.ts +2 -0
- package/dist/controllers/scroll_visibility_controller.js +33 -0
- package/dist/controllers/scroll_visibility_controller.js.map +1 -1
- package/dist/controllers/scrollspy_controller.d.ts +2 -0
- package/dist/controllers/scrollspy_controller.js.map +1 -1
- package/dist/controllers/separator_controller.d.ts +54 -11
- package/dist/controllers/separator_controller.js +354 -38
- package/dist/controllers/separator_controller.js.map +1 -1
- package/dist/controllers/sidebar_controller.js +83 -10
- package/dist/controllers/sidebar_controller.js.map +1 -1
- package/dist/controllers/skeleton_controller.d.ts +2 -0
- package/dist/controllers/skeleton_controller.js.map +1 -1
- package/dist/controllers/slider_controller.d.ts +2 -0
- package/dist/controllers/slider_controller.js.map +1 -1
- package/dist/controllers/smart_sticky_header_controller.d.ts +2 -0
- package/dist/controllers/smart_sticky_header_controller.js.map +1 -1
- package/dist/controllers/spinner_controller.d.ts +2 -0
- package/dist/controllers/spinner_controller.js.map +1 -1
- package/dist/controllers/step_indicator_controller.d.ts +2 -0
- package/dist/controllers/step_indicator_controller.js.map +1 -1
- package/dist/controllers/stepper_controller.d.ts +2 -0
- package/dist/controllers/stepper_controller.js.map +1 -1
- package/dist/controllers/stick_to_bottom_controller.d.ts +2 -0
- package/dist/controllers/stick_to_bottom_controller.js.map +1 -1
- package/dist/controllers/sticky_observer_controller.d.ts +2 -0
- package/dist/controllers/sticky_observer_controller.js.map +1 -1
- package/dist/controllers/submit_once_controller.d.ts +94 -38
- package/dist/controllers/submit_once_controller.js +399 -121
- package/dist/controllers/submit_once_controller.js.map +1 -1
- package/dist/controllers/switch_controller.d.ts +2 -0
- package/dist/controllers/switch_controller.js.map +1 -1
- package/dist/controllers/tags_input_controller.d.ts +43 -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.d.ts +2 -0
- package/dist/controllers/textarea_autosize_controller.js.map +1 -1
- package/dist/controllers/theme_controller.d.ts +2 -0
- package/dist/controllers/theme_controller.js +8 -6
- package/dist/controllers/theme_controller.js.map +1 -1
- package/dist/controllers/time_picker_controller.d.ts +44 -13
- package/dist/controllers/time_picker_controller.js +296 -107
- package/dist/controllers/time_picker_controller.js.map +1 -1
- package/dist/controllers/toast_controller.d.ts +4 -0
- package/dist/controllers/toast_controller.js.map +1 -1
- package/dist/controllers/toggle_group_controller.d.ts +41 -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 +4 -3
- package/dist/controllers/transition_controller.js.map +1 -1
- package/dist/controllers/tree_view_controller.d.ts +2 -0
- package/dist/controllers/tree_view_controller.js +7 -4
- package/dist/controllers/tree_view_controller.js.map +1 -1
- package/dist/index.js +4963 -1581
- package/dist/index.js.map +1 -1
- package/dist/inspector/cli.d.ts +123 -6
- package/dist/inspector/cli.js +212 -18
- package/dist/inspector/cli.js.map +1 -1
- package/dist/inspector/cli_bin.js +274 -50
- package/dist/inspector/cli_bin.js.map +1 -1
- package/dist/inspector/examples.json +15 -15
- package/dist/inspector/manifest.json +602 -80
- package/dist/positioning/index.d.ts +4 -2
- package/dist/positioning/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,48 +1,79 @@
|
|
|
1
1
|
import { Controller } from '@hotwired/stimulus';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
type
|
|
3
|
+
/** Native controls that can submit a form. */
|
|
4
|
+
type SubmitControl = HTMLButtonElement | HTMLInputElement;
|
|
5
5
|
/**
|
|
6
|
-
* Headless
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* Headless form-scoped double-submit guard (identifier:
|
|
7
|
+
* `stimeo--submit-once`). It disables every native submit control associated
|
|
8
|
+
* with the submitting form, publishes busy state, and restores only the state
|
|
9
|
+
* it still owns when the operation finishes.
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* data-stimeo--submit-once-busy-label-value="Submitting…">
|
|
14
|
-
* <button type="submit" data-stimeo--submit-once-target="submit">Send</button>
|
|
15
|
-
* </form>
|
|
11
|
+
* Turbo forms need no `data-action`: the controller observes
|
|
12
|
+
* `turbo:submit-start` and `turbo:submit-end` itself.
|
|
16
13
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
14
|
+
* A non-Turbo async form owns its own lifecycle and declares each transition:
|
|
15
|
+
* `submit->stimeo--submit-once#start` applies the busy state synchronously,
|
|
16
|
+
* before the request is issued, and `#finish` / `#cancel` end it. Cancelling the
|
|
17
|
+
* event's default is how such a form suppresses the native navigation, so it
|
|
18
|
+
* never means the submission died — only `#cancel` does. A submit already
|
|
19
|
+
* cancelled by an earlier listener never starts a session at all.
|
|
23
20
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
21
|
+
* ```html
|
|
22
|
+
* <form data-controller="stimeo--submit-once"
|
|
23
|
+
* data-action="submit->stimeo--submit-once#start
|
|
24
|
+
* save:complete->stimeo--submit-once#finish
|
|
25
|
+
* save:error->stimeo--submit-once#cancel">
|
|
26
|
+
* <button type="submit">Save</button>
|
|
27
|
+
* </form>
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* A form whose submit a later listener vetoes needs `#cancel` wired to that
|
|
31
|
+
* veto, or a non-zero `timeout`, to leave the busy state.
|
|
32
|
+
*
|
|
33
|
+
* Plain text buttons can use `busyLabel` (overridden by
|
|
34
|
+
* `data-submit-once-busy-label`). A button with authored structure instead uses
|
|
35
|
+
* an `idle` / `busy` target pair inside that button, so icons and descendants
|
|
36
|
+
* are never replaced with `textContent`:
|
|
37
|
+
*
|
|
38
|
+
* ```html
|
|
39
|
+
* <form data-controller="stimeo--submit-once"
|
|
40
|
+
* data-stimeo--submit-once-announce-text-value="Saving…"
|
|
41
|
+
* data-stimeo--submit-once-announce-ready-text-value="Saved.">
|
|
42
|
+
* <button type="submit" data-stimeo--submit-once-target="submit">
|
|
43
|
+
* <span data-stimeo--submit-once-target="idle">Save</span>
|
|
44
|
+
* <span data-stimeo--submit-once-target="busy" hidden>Saving…</span>
|
|
45
|
+
* </button>
|
|
46
|
+
* </form>
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* Events:
|
|
50
|
+
* - `stimeo--submit-once:start` — `{ form, submitter }`.
|
|
51
|
+
* - `stimeo--submit-once:end` — `{ form, submitter, reason, success? }`, where
|
|
52
|
+
* `reason` is `"turbo"`, `"timeout"`, `"manual"`, or `"canceled"`. Only
|
|
53
|
+
* `"canceled"` skips the completion announcement, because no operation ran.
|
|
30
54
|
*
|
|
31
55
|
* @remarks
|
|
32
|
-
* Behavior only
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* hidden field when a non-Turbo form depends on it.
|
|
56
|
+
* Behavior only: the consumer owns every visual, label, and announcement
|
|
57
|
+
* string. `announceText` / `announceReadyText` are empty by default and speak
|
|
58
|
+
* through the page's shared `stimeo--announcer` only on real state transitions.
|
|
59
|
+
* Attribute writes use {@link AttributeLease}, so a consumer mutation made
|
|
60
|
+
* while busy wins over restoration. {@link DetachGate} preserves an in-flight
|
|
61
|
+
* session across an in-page move, while {@link BeforeCacheReset} rewinds the
|
|
62
|
+
* snapshot before Turbo caches it. Cache/detach rewinds are silent and never
|
|
63
|
+
* move focus.
|
|
41
64
|
*/
|
|
42
65
|
declare class SubmitOnceController extends Controller<HTMLElement> {
|
|
43
66
|
#private;
|
|
44
67
|
static targets: string[];
|
|
45
68
|
static values: {
|
|
69
|
+
announceText: {
|
|
70
|
+
type: StringConstructor;
|
|
71
|
+
default: string;
|
|
72
|
+
};
|
|
73
|
+
announceReadyText: {
|
|
74
|
+
type: StringConstructor;
|
|
75
|
+
default: string;
|
|
76
|
+
};
|
|
46
77
|
busyLabel: {
|
|
47
78
|
type: StringConstructor;
|
|
48
79
|
default: string;
|
|
@@ -56,21 +87,46 @@ declare class SubmitOnceController extends Controller<HTMLElement> {
|
|
|
56
87
|
default: boolean;
|
|
57
88
|
};
|
|
58
89
|
};
|
|
59
|
-
static actions: readonly ["start"];
|
|
90
|
+
static actions: readonly ["cancel", "finish", "start"];
|
|
60
91
|
static events: readonly ["start", "end"];
|
|
61
|
-
readonly submitTargets:
|
|
62
|
-
readonly
|
|
92
|
+
readonly submitTargets: SubmitControl[];
|
|
93
|
+
readonly idleTargets: HTMLElement[];
|
|
94
|
+
readonly busyTargets: HTMLElement[];
|
|
95
|
+
announceTextValue: string;
|
|
96
|
+
announceReadyTextValue: string;
|
|
63
97
|
busyLabelValue: string;
|
|
64
98
|
timeoutValue: number;
|
|
65
99
|
restoreFocusValue: boolean;
|
|
66
100
|
connect(): void;
|
|
67
101
|
disconnect(): void;
|
|
68
102
|
/**
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
* `
|
|
103
|
+
* Begins the submission represented by `event`.
|
|
104
|
+
*
|
|
105
|
+
* Native `submit` events are intended for non-Turbo async forms. Turbo calls
|
|
106
|
+
* this path through its auto-subscribed `turbo:submit-start` event. An event
|
|
107
|
+
* whose default an earlier listener already cancelled carries no submission,
|
|
108
|
+
* so it starts nothing.
|
|
72
109
|
*/
|
|
73
110
|
start(event: Event): void;
|
|
111
|
+
/**
|
|
112
|
+
* Completes a non-Turbo async submission for the form associated with
|
|
113
|
+
* `event`. When called directly with no event, it completes the controller's
|
|
114
|
+
* sole active form (or the controller element itself when it is a form).
|
|
115
|
+
*/
|
|
116
|
+
finish(event?: Event): void;
|
|
117
|
+
/**
|
|
118
|
+
* Abandons the submission for the form associated with `event` because it
|
|
119
|
+
* never reached the network — a veto from validation, or a request the
|
|
120
|
+
* consumer gave up before sending. With no event it targets the controller's
|
|
121
|
+
* sole active form, exactly like {@link finish}.
|
|
122
|
+
*
|
|
123
|
+
* The distinction from `finish` is observable: a request that ran and failed
|
|
124
|
+
* is `finish` with `success: false` and still announces completion, while a
|
|
125
|
+
* submission that never happened announces nothing.
|
|
126
|
+
*/
|
|
127
|
+
cancel(event?: Event): void;
|
|
128
|
+
/** Disables a newly connected explicit submit target during its form's session. */
|
|
129
|
+
submitTargetConnected(target: SubmitControl): void;
|
|
74
130
|
}
|
|
75
131
|
|
|
76
132
|
export { SubmitOnceController };
|