stimeo-ui 0.17.0 → 0.18.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +136 -2
- data/README.md +19 -10
- data/dist/cable/index.js +22 -14
- data/dist/controllers/accordion_controller.js +14 -6
- data/dist/controllers/alert_dialog_controller.js +145 -118
- data/dist/controllers/announcer_controller.js +113 -17
- data/dist/controllers/auto_submit_controller.js +185 -60
- data/dist/controllers/avatar_controller.js +55 -43
- data/dist/controllers/bulk_select_controller.js +64 -50
- data/dist/controllers/calendar_controller.js +55 -53
- data/dist/controllers/carousel_controller.js +124 -86
- data/dist/controllers/character_counter_controller.js +291 -95
- data/dist/controllers/checkbox_controller.js +6 -0
- data/dist/controllers/clipboard_controller.js +118 -27
- data/dist/controllers/collapsible_controller.js +52 -49
- data/dist/controllers/color_picker_controller.js +29 -7
- data/dist/controllers/combobox_controller.js +210 -71
- data/dist/controllers/command_palette_controller.js +290 -140
- data/dist/controllers/conditional_fields_controller.js +145 -58
- data/dist/controllers/confirm_controller.js +145 -118
- data/dist/controllers/context_menu_controller.js +138 -73
- data/dist/controllers/countdown_controller.js +109 -21
- data/dist/controllers/currency_input_controller.js +446 -72
- data/dist/controllers/data_grid_controller.js +134 -28
- data/dist/controllers/date_range_picker_controller.js +93 -72
- data/dist/controllers/dialog_controller.js +145 -118
- data/dist/controllers/direct_upload_controller.js +24 -14
- data/dist/controllers/dirty_form_controller.js +68 -31
- data/dist/controllers/dismissible_controller.js +66 -46
- data/dist/controllers/drawer_controller.js +145 -118
- data/dist/controllers/dropdown_controller.js +76 -63
- data/dist/controllers/editable_controller.js +200 -62
- data/dist/controllers/empty_state_controller.js +13 -6
- data/dist/controllers/file_dropzone_controller.js +55 -48
- data/dist/controllers/filter_controller.js +9 -2
- data/dist/controllers/flash_controller.js +66 -33
- data/dist/controllers/focus_controller.js +39 -14
- data/dist/controllers/form_field_controller.js +52 -43
- data/dist/controllers/form_validation_controller.js +18 -11
- data/dist/controllers/frame_loading_controller.js +55 -48
- data/dist/controllers/hover_card_controller.js +67 -61
- data/dist/controllers/idle_controller.js +10 -6
- data/dist/controllers/input_mask_controller.js +434 -24
- data/dist/controllers/intersection_controller.js +3 -0
- data/dist/controllers/lazy_frame_controller.js +15 -3
- data/dist/controllers/listbox_controller.js +260 -79
- data/dist/controllers/local_time_controller.js +48 -13
- data/dist/controllers/masonry_controller.js +11 -4
- data/dist/controllers/menu_controller.js +138 -82
- data/dist/controllers/menubar_controller.js +65 -19
- data/dist/controllers/meter_controller.js +270 -24
- data/dist/controllers/multi_select_controller.js +272 -95
- data/dist/controllers/navigation_menu_controller.js +67 -19
- data/dist/controllers/nested_form_controller.js +98 -64
- data/dist/controllers/network_status_controller.js +70 -52
- data/dist/controllers/number_input_controller.js +344 -94
- data/dist/controllers/optimistic_controller.js +29 -11
- data/dist/controllers/otp_controller.js +502 -104
- data/dist/controllers/overflow_indicator_controller.js +6 -0
- data/dist/controllers/overflow_menu_controller.js +136 -21
- data/dist/controllers/pagination_controller.js +47 -14
- data/dist/controllers/password_reveal_controller.js +52 -49
- data/dist/controllers/password_strength_controller.js +13 -6
- data/dist/controllers/persist_controller.js +48 -128
- data/dist/controllers/pointer_drag_controller.js +255 -24
- data/dist/controllers/popover_controller.js +91 -65
- data/dist/controllers/portal_controller.js +6 -0
- data/dist/controllers/preview_guard_controller.js +14 -3
- data/dist/controllers/progress_controller.js +271 -27
- data/dist/controllers/radio_group_controller.js +167 -80
- data/dist/controllers/range_slider_controller.js +27 -7
- data/dist/controllers/rating_controller.js +93 -57
- data/dist/controllers/read_more_controller.js +10 -6
- data/dist/controllers/reading_progress_controller.js +22 -5
- data/dist/controllers/relative_time_controller.js +75 -11
- data/dist/controllers/reset_on_restore_controller.js +6 -0
- data/dist/controllers/resizable_controller.js +55 -22
- data/dist/controllers/roving_controller.js +10 -4
- data/dist/controllers/scroll_area_controller.js +129 -88
- data/dist/controllers/scroll_restore_controller.js +14 -2
- data/dist/controllers/scroll_visibility_controller.js +93 -60
- data/dist/controllers/scrollspy_controller.js +11 -5
- data/dist/controllers/separator_controller.js +59 -43
- data/dist/controllers/sidebar_controller.js +150 -122
- data/dist/controllers/skeleton_controller.js +55 -48
- data/dist/controllers/slider_controller.js +27 -6
- data/dist/controllers/smart_sticky_header_controller.js +13 -5
- data/dist/controllers/sortable_controller.js +27 -14
- data/dist/controllers/spinner_controller.js +55 -48
- data/dist/controllers/step_indicator_controller.js +6 -0
- data/dist/controllers/stepper_controller.js +6 -0
- data/dist/controllers/stick_to_bottom_controller.js +19 -8
- data/dist/controllers/sticky_observer_controller.js +49 -43
- data/dist/controllers/submit_once_controller.js +145 -85
- data/dist/controllers/switch_controller.js +172 -28
- data/dist/controllers/tabs_controller.js +6 -1
- data/dist/controllers/tags_input_controller.js +157 -28
- data/dist/controllers/textarea_autosize_controller.js +40 -19
- data/dist/controllers/theme_controller.js +10 -4
- data/dist/controllers/time_picker_controller.js +192 -54
- data/dist/controllers/toast_controller.js +58 -27
- data/dist/controllers/toggle_group_controller.js +158 -56
- data/dist/controllers/toolbar_controller.js +150 -21
- data/dist/controllers/tree_view_controller.js +134 -25
- data/dist/index.js +2515 -1315
- data/dist/positioning/index.js +6 -0
- data/lib/generators/stimeo/install/install_generator.rb +7 -2
- data/lib/generators/stimeo/install/templates/stimeo.js +19 -6
- data/lib/stimeo/ui/version.rb +1 -1
- metadata +2 -2
|
@@ -48,6 +48,30 @@ var ListenerSet = class {
|
|
|
48
48
|
}
|
|
49
49
|
};
|
|
50
50
|
|
|
51
|
+
var SubmissionOwner = class {
|
|
52
|
+
#synthetic = /* @__PURE__ */ Symbol("synthetic submission");
|
|
53
|
+
#active = null;
|
|
54
|
+
begin(event) {
|
|
55
|
+
this.#active = { source: event.target, token: this.#tokenOf(event) };
|
|
56
|
+
}
|
|
57
|
+
resolve(event) {
|
|
58
|
+
if (this.#active === null || this.#active.source !== event.target || this.#active.token !== this.#tokenOf(event)) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
this.clear();
|
|
62
|
+
return this.#detailOf(event)?.success === true;
|
|
63
|
+
}
|
|
64
|
+
clear() {
|
|
65
|
+
this.#active = null;
|
|
66
|
+
}
|
|
67
|
+
#tokenOf(event) {
|
|
68
|
+
return this.#detailOf(event)?.formSubmission ?? this.#synthetic;
|
|
69
|
+
}
|
|
70
|
+
#detailOf(event) {
|
|
71
|
+
return event.detail;
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
|
|
51
75
|
var TransientHooks = class {
|
|
52
76
|
#attributes;
|
|
53
77
|
constructor(options) {
|
|
@@ -63,15 +87,10 @@ var HIDDEN_MARKER = "data-optimistic-toggled";
|
|
|
63
87
|
var BUSY_MARKER = "data-optimistic-busy";
|
|
64
88
|
var AUTHORED_ABSENT = "absent";
|
|
65
89
|
var AUTHORED_VALUE = "value:";
|
|
66
|
-
var SYNTHETIC_SUBMISSION = {};
|
|
67
|
-
function submissionOf(event) {
|
|
68
|
-
const detail = event.detail;
|
|
69
|
-
return detail?.formSubmission ?? SYNTHETIC_SUBMISSION;
|
|
70
|
-
}
|
|
71
90
|
var OptimisticController = class extends Controller {
|
|
72
91
|
static targets = ["show", "hide"];
|
|
73
92
|
static events = ["commit", "rollback"];
|
|
74
|
-
#
|
|
93
|
+
#submission = new SubmissionOwner();
|
|
75
94
|
#gate = new DetachGate();
|
|
76
95
|
#listeners = new ListenerSet();
|
|
77
96
|
#connected = false;
|
|
@@ -87,11 +106,11 @@ var OptimisticController = class extends Controller {
|
|
|
87
106
|
this.#connected = false;
|
|
88
107
|
this.#listeners.dispose();
|
|
89
108
|
this.#gate.disconnected(this, () => {
|
|
90
|
-
this.#
|
|
109
|
+
this.#submission.clear();
|
|
91
110
|
});
|
|
92
111
|
}
|
|
93
112
|
#onSubmitStart = (event) => {
|
|
94
|
-
this.#
|
|
113
|
+
this.#submission.begin(event);
|
|
95
114
|
if (this.element instanceof HTMLFormElement && !this.element.hasAttribute(BUSY_MARKER)) {
|
|
96
115
|
this.element.setAttribute(BUSY_MARKER, AUTHORED_ABSENT);
|
|
97
116
|
}
|
|
@@ -101,9 +120,8 @@ var OptimisticController = class extends Controller {
|
|
|
101
120
|
for (const target of this.hideTargets) this.#setHidden(target, true);
|
|
102
121
|
};
|
|
103
122
|
#onSubmitEnd = (event) => {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
const success = event.detail?.success === true;
|
|
123
|
+
const success = this.#submission.resolve(event);
|
|
124
|
+
if (success === null) return;
|
|
107
125
|
if (success) {
|
|
108
126
|
this.element.removeAttribute("data-optimistic");
|
|
109
127
|
this.#restore(this.element, "aria-busy", BUSY_MARKER, "true");
|