stimeo-ui 0.17.0 → 0.18.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 +106 -1
- package/README.md +19 -10
- package/dist/cable/index.d.ts +9 -8
- package/dist/cable/index.js +22 -14
- package/dist/cable/index.js.map +1 -1
- package/dist/coerce-JtZVNG5h.d.ts +20 -0
- package/dist/controllers/accordion_controller.js +14 -6
- package/dist/controllers/accordion_controller.js.map +1 -1
- package/dist/controllers/alert_dialog_controller.js +145 -118
- package/dist/controllers/alert_dialog_controller.js.map +1 -1
- package/dist/controllers/announcer_controller.d.ts +5 -3
- package/dist/controllers/announcer_controller.js +113 -17
- package/dist/controllers/announcer_controller.js.map +1 -1
- package/dist/controllers/auto_submit_controller.js +185 -60
- package/dist/controllers/auto_submit_controller.js.map +1 -1
- package/dist/controllers/avatar_controller.js +55 -43
- package/dist/controllers/avatar_controller.js.map +1 -1
- package/dist/controllers/breadcrumb_controller.js.map +1 -1
- package/dist/controllers/bulk_select_controller.d.ts +3 -3
- package/dist/controllers/bulk_select_controller.js +64 -50
- package/dist/controllers/bulk_select_controller.js.map +1 -1
- package/dist/controllers/calendar_controller.d.ts +15 -12
- package/dist/controllers/calendar_controller.js +55 -53
- package/dist/controllers/calendar_controller.js.map +1 -1
- package/dist/controllers/carousel_controller.d.ts +9 -5
- package/dist/controllers/carousel_controller.js +124 -86
- package/dist/controllers/carousel_controller.js.map +1 -1
- package/dist/controllers/character_counter_controller.d.ts +27 -6
- package/dist/controllers/character_counter_controller.js +291 -95
- package/dist/controllers/character_counter_controller.js.map +1 -1
- package/dist/controllers/checkbox_controller.js +6 -0
- package/dist/controllers/checkbox_controller.js.map +1 -1
- package/dist/controllers/clipboard_controller.js +118 -27
- package/dist/controllers/clipboard_controller.js.map +1 -1
- package/dist/controllers/collapsible_controller.d.ts +1 -1
- package/dist/controllers/collapsible_controller.js +52 -49
- package/dist/controllers/collapsible_controller.js.map +1 -1
- package/dist/controllers/color_picker_controller.js +29 -7
- package/dist/controllers/color_picker_controller.js.map +1 -1
- package/dist/controllers/combobox_controller.d.ts +1 -1
- package/dist/controllers/combobox_controller.js +210 -71
- package/dist/controllers/combobox_controller.js.map +1 -1
- package/dist/controllers/command_palette_controller.d.ts +9 -9
- package/dist/controllers/command_palette_controller.js +289 -140
- package/dist/controllers/command_palette_controller.js.map +1 -1
- package/dist/controllers/conditional_fields_controller.js +145 -58
- package/dist/controllers/conditional_fields_controller.js.map +1 -1
- package/dist/controllers/confirm_controller.js +145 -118
- package/dist/controllers/confirm_controller.js.map +1 -1
- package/dist/controllers/context_menu_controller.d.ts +49 -14
- package/dist/controllers/context_menu_controller.js +138 -73
- package/dist/controllers/context_menu_controller.js.map +1 -1
- package/dist/controllers/count_up_controller.js.map +1 -1
- package/dist/controllers/countdown_controller.d.ts +2 -2
- package/dist/controllers/countdown_controller.js +109 -21
- package/dist/controllers/countdown_controller.js.map +1 -1
- package/dist/controllers/currency_input_controller.d.ts +75 -11
- package/dist/controllers/currency_input_controller.js +446 -72
- package/dist/controllers/currency_input_controller.js.map +1 -1
- package/dist/controllers/data_grid_controller.d.ts +10 -8
- package/dist/controllers/data_grid_controller.js +134 -28
- package/dist/controllers/data_grid_controller.js.map +1 -1
- package/dist/controllers/date_range_picker_controller.d.ts +12 -9
- package/dist/controllers/date_range_picker_controller.js +93 -72
- package/dist/controllers/date_range_picker_controller.js.map +1 -1
- package/dist/controllers/dialog_controller.d.ts +4 -5
- package/dist/controllers/dialog_controller.js +145 -118
- package/dist/controllers/dialog_controller.js.map +1 -1
- package/dist/controllers/direct_upload_controller.d.ts +1 -1
- package/dist/controllers/direct_upload_controller.js +24 -14
- package/dist/controllers/direct_upload_controller.js.map +1 -1
- package/dist/controllers/dirty_form_controller.d.ts +6 -1
- package/dist/controllers/dirty_form_controller.js +68 -31
- package/dist/controllers/dirty_form_controller.js.map +1 -1
- package/dist/controllers/dismissible_controller.js +64 -46
- package/dist/controllers/dismissible_controller.js.map +1 -1
- package/dist/controllers/drawer_controller.js +145 -118
- package/dist/controllers/drawer_controller.js.map +1 -1
- package/dist/controllers/dropdown_controller.js +76 -63
- package/dist/controllers/dropdown_controller.js.map +1 -1
- package/dist/controllers/editable_controller.js +199 -62
- package/dist/controllers/editable_controller.js.map +1 -1
- package/dist/controllers/empty_state_controller.js +13 -6
- package/dist/controllers/empty_state_controller.js.map +1 -1
- package/dist/controllers/file_dropzone_controller.d.ts +3 -0
- package/dist/controllers/file_dropzone_controller.js +55 -48
- package/dist/controllers/file_dropzone_controller.js.map +1 -1
- package/dist/controllers/filter_controller.js +9 -2
- package/dist/controllers/filter_controller.js.map +1 -1
- package/dist/controllers/flash_controller.d.ts +4 -4
- package/dist/controllers/flash_controller.js +66 -33
- package/dist/controllers/flash_controller.js.map +1 -1
- package/dist/controllers/focus_controller.d.ts +3 -3
- package/dist/controllers/focus_controller.js +39 -14
- package/dist/controllers/focus_controller.js.map +1 -1
- package/dist/controllers/form_field_controller.js +52 -43
- package/dist/controllers/form_field_controller.js.map +1 -1
- package/dist/controllers/form_validation_controller.d.ts +3 -3
- package/dist/controllers/form_validation_controller.js +18 -11
- package/dist/controllers/form_validation_controller.js.map +1 -1
- package/dist/controllers/frame_loading_controller.d.ts +13 -12
- package/dist/controllers/frame_loading_controller.js +55 -48
- package/dist/controllers/frame_loading_controller.js.map +1 -1
- package/dist/controllers/highlight_controller.d.ts +5 -4
- package/dist/controllers/highlight_controller.js.map +1 -1
- package/dist/controllers/hover_card_controller.d.ts +4 -1
- package/dist/controllers/hover_card_controller.js +67 -61
- package/dist/controllers/hover_card_controller.js.map +1 -1
- package/dist/controllers/idle_controller.d.ts +6 -5
- package/dist/controllers/idle_controller.js +10 -6
- package/dist/controllers/idle_controller.js.map +1 -1
- package/dist/controllers/input_mask_controller.d.ts +30 -13
- package/dist/controllers/input_mask_controller.js +411 -24
- package/dist/controllers/input_mask_controller.js.map +1 -1
- package/dist/controllers/intersection_controller.js +3 -0
- package/dist/controllers/intersection_controller.js.map +1 -1
- package/dist/controllers/lazy_frame_controller.d.ts +3 -2
- package/dist/controllers/lazy_frame_controller.js +15 -3
- package/dist/controllers/lazy_frame_controller.js.map +1 -1
- package/dist/controllers/listbox_controller.d.ts +10 -7
- package/dist/controllers/listbox_controller.js +260 -79
- package/dist/controllers/listbox_controller.js.map +1 -1
- package/dist/controllers/local_time_controller.d.ts +8 -6
- package/dist/controllers/local_time_controller.js +48 -13
- package/dist/controllers/local_time_controller.js.map +1 -1
- package/dist/controllers/masonry_controller.js +11 -4
- package/dist/controllers/masonry_controller.js.map +1 -1
- package/dist/controllers/menu_controller.d.ts +24 -5
- package/dist/controllers/menu_controller.js +138 -82
- package/dist/controllers/menu_controller.js.map +1 -1
- package/dist/controllers/menubar_controller.d.ts +49 -7
- package/dist/controllers/menubar_controller.js +65 -19
- package/dist/controllers/menubar_controller.js.map +1 -1
- package/dist/controllers/meter_controller.d.ts +13 -20
- package/dist/controllers/meter_controller.js +270 -24
- package/dist/controllers/meter_controller.js.map +1 -1
- package/dist/controllers/multi_select_controller.d.ts +17 -15
- package/dist/controllers/multi_select_controller.js +251 -94
- package/dist/controllers/multi_select_controller.js.map +1 -1
- package/dist/controllers/navigation_menu_controller.d.ts +19 -5
- package/dist/controllers/navigation_menu_controller.js +67 -19
- package/dist/controllers/navigation_menu_controller.js.map +1 -1
- package/dist/controllers/nested_form_controller.js +98 -64
- package/dist/controllers/nested_form_controller.js.map +1 -1
- package/dist/controllers/network_status_controller.js +70 -52
- package/dist/controllers/network_status_controller.js.map +1 -1
- package/dist/controllers/number_input_controller.d.ts +24 -6
- package/dist/controllers/number_input_controller.js +344 -94
- package/dist/controllers/number_input_controller.js.map +1 -1
- package/dist/controllers/optimistic_controller.d.ts +8 -5
- package/dist/controllers/optimistic_controller.js +29 -11
- package/dist/controllers/optimistic_controller.js.map +1 -1
- package/dist/controllers/otp_controller.d.ts +35 -4
- package/dist/controllers/otp_controller.js +502 -104
- package/dist/controllers/otp_controller.js.map +1 -1
- package/dist/controllers/overflow_indicator_controller.js +6 -0
- package/dist/controllers/overflow_indicator_controller.js.map +1 -1
- package/dist/controllers/overflow_menu_controller.d.ts +10 -9
- package/dist/controllers/overflow_menu_controller.js +136 -21
- package/dist/controllers/overflow_menu_controller.js.map +1 -1
- package/dist/controllers/pagination_controller.d.ts +3 -2
- package/dist/controllers/pagination_controller.js +47 -14
- package/dist/controllers/pagination_controller.js.map +1 -1
- package/dist/controllers/password_reveal_controller.d.ts +5 -4
- package/dist/controllers/password_reveal_controller.js +52 -49
- package/dist/controllers/password_reveal_controller.js.map +1 -1
- package/dist/controllers/password_strength_controller.d.ts +1 -1
- package/dist/controllers/password_strength_controller.js +13 -6
- package/dist/controllers/password_strength_controller.js.map +1 -1
- package/dist/controllers/persist_controller.js +48 -128
- package/dist/controllers/persist_controller.js.map +1 -1
- package/dist/controllers/pointer_drag_controller.d.ts +19 -8
- package/dist/controllers/pointer_drag_controller.js +249 -23
- package/dist/controllers/pointer_drag_controller.js.map +1 -1
- package/dist/controllers/popover_controller.d.ts +3 -3
- package/dist/controllers/popover_controller.js +82 -65
- package/dist/controllers/popover_controller.js.map +1 -1
- package/dist/controllers/portal_controller.js +6 -0
- package/dist/controllers/portal_controller.js.map +1 -1
- package/dist/controllers/preview_guard_controller.js +14 -3
- package/dist/controllers/preview_guard_controller.js.map +1 -1
- package/dist/controllers/progress_controller.d.ts +9 -19
- package/dist/controllers/progress_controller.js +271 -27
- package/dist/controllers/progress_controller.js.map +1 -1
- package/dist/controllers/radio_group_controller.d.ts +11 -8
- package/dist/controllers/radio_group_controller.js +167 -80
- package/dist/controllers/radio_group_controller.js.map +1 -1
- package/dist/controllers/range_slider_controller.d.ts +4 -3
- package/dist/controllers/range_slider_controller.js +27 -7
- package/dist/controllers/range_slider_controller.js.map +1 -1
- package/dist/controllers/rating_controller.js +93 -57
- package/dist/controllers/rating_controller.js.map +1 -1
- package/dist/controllers/read_more_controller.js +10 -6
- package/dist/controllers/read_more_controller.js.map +1 -1
- package/dist/controllers/reading_progress_controller.js +22 -5
- package/dist/controllers/reading_progress_controller.js.map +1 -1
- package/dist/controllers/relative_time_controller.d.ts +4 -4
- package/dist/controllers/relative_time_controller.js +75 -11
- package/dist/controllers/relative_time_controller.js.map +1 -1
- package/dist/controllers/reset_on_restore_controller.d.ts +3 -3
- package/dist/controllers/reset_on_restore_controller.js +6 -0
- package/dist/controllers/reset_on_restore_controller.js.map +1 -1
- package/dist/controllers/resizable_controller.d.ts +3 -0
- package/dist/controllers/resizable_controller.js +55 -22
- package/dist/controllers/resizable_controller.js.map +1 -1
- package/dist/controllers/roving_controller.d.ts +3 -3
- package/dist/controllers/roving_controller.js +10 -4
- package/dist/controllers/roving_controller.js.map +1 -1
- package/dist/controllers/scroll_area_controller.js +129 -88
- package/dist/controllers/scroll_area_controller.js.map +1 -1
- package/dist/controllers/scroll_restore_controller.d.ts +3 -3
- package/dist/controllers/scroll_restore_controller.js +14 -2
- package/dist/controllers/scroll_restore_controller.js.map +1 -1
- package/dist/controllers/scroll_visibility_controller.js +93 -60
- package/dist/controllers/scroll_visibility_controller.js.map +1 -1
- package/dist/controllers/scrollspy_controller.js +11 -5
- package/dist/controllers/scrollspy_controller.js.map +1 -1
- package/dist/controllers/separator_controller.d.ts +1 -1
- package/dist/controllers/separator_controller.js +59 -43
- package/dist/controllers/separator_controller.js.map +1 -1
- package/dist/controllers/sidebar_controller.d.ts +1 -1
- package/dist/controllers/sidebar_controller.js +150 -122
- package/dist/controllers/sidebar_controller.js.map +1 -1
- package/dist/controllers/skeleton_controller.js +55 -48
- package/dist/controllers/skeleton_controller.js.map +1 -1
- package/dist/controllers/slider_controller.d.ts +2 -1
- package/dist/controllers/slider_controller.js +27 -6
- package/dist/controllers/slider_controller.js.map +1 -1
- package/dist/controllers/smart_sticky_header_controller.d.ts +1 -1
- package/dist/controllers/smart_sticky_header_controller.js +13 -5
- package/dist/controllers/smart_sticky_header_controller.js.map +1 -1
- package/dist/controllers/sortable_controller.d.ts +4 -4
- package/dist/controllers/sortable_controller.js +27 -14
- package/dist/controllers/sortable_controller.js.map +1 -1
- package/dist/controllers/spinner_controller.js +55 -48
- package/dist/controllers/spinner_controller.js.map +1 -1
- package/dist/controllers/step_indicator_controller.d.ts +4 -4
- package/dist/controllers/step_indicator_controller.js +6 -0
- package/dist/controllers/step_indicator_controller.js.map +1 -1
- package/dist/controllers/stepper_controller.d.ts +2 -3
- package/dist/controllers/stepper_controller.js +6 -0
- package/dist/controllers/stepper_controller.js.map +1 -1
- package/dist/controllers/stick_to_bottom_controller.d.ts +3 -1
- package/dist/controllers/stick_to_bottom_controller.js +19 -8
- package/dist/controllers/stick_to_bottom_controller.js.map +1 -1
- package/dist/controllers/sticky_observer_controller.js +49 -43
- package/dist/controllers/sticky_observer_controller.js.map +1 -1
- package/dist/controllers/submit_once_controller.d.ts +2 -1
- package/dist/controllers/submit_once_controller.js +145 -85
- package/dist/controllers/submit_once_controller.js.map +1 -1
- package/dist/controllers/switch_controller.d.ts +7 -4
- package/dist/controllers/switch_controller.js +172 -28
- package/dist/controllers/switch_controller.js.map +1 -1
- package/dist/controllers/tabs_controller.d.ts +7 -4
- package/dist/controllers/tabs_controller.js +6 -1
- package/dist/controllers/tabs_controller.js.map +1 -1
- package/dist/controllers/tags_input_controller.d.ts +4 -3
- package/dist/controllers/tags_input_controller.js +157 -28
- package/dist/controllers/tags_input_controller.js.map +1 -1
- package/dist/controllers/textarea_autosize_controller.d.ts +1 -1
- package/dist/controllers/textarea_autosize_controller.js +40 -19
- package/dist/controllers/textarea_autosize_controller.js.map +1 -1
- package/dist/controllers/theme_controller.d.ts +3 -2
- package/dist/controllers/theme_controller.js +10 -4
- package/dist/controllers/theme_controller.js.map +1 -1
- package/dist/controllers/time_picker_controller.d.ts +38 -5
- package/dist/controllers/time_picker_controller.js +192 -54
- package/dist/controllers/time_picker_controller.js.map +1 -1
- package/dist/controllers/toast_controller.d.ts +4 -5
- package/dist/controllers/toast_controller.js +58 -27
- package/dist/controllers/toast_controller.js.map +1 -1
- package/dist/controllers/toggle_group_controller.d.ts +2 -3
- package/dist/controllers/toggle_group_controller.js +158 -56
- package/dist/controllers/toggle_group_controller.js.map +1 -1
- package/dist/controllers/toolbar_controller.d.ts +8 -6
- package/dist/controllers/toolbar_controller.js +150 -21
- package/dist/controllers/toolbar_controller.js.map +1 -1
- package/dist/controllers/tooltip_controller.d.ts +4 -1
- package/dist/controllers/tooltip_controller.js.map +1 -1
- package/dist/controllers/transition_controller.js.map +1 -1
- package/dist/controllers/tree_view_controller.d.ts +1 -1
- package/dist/controllers/tree_view_controller.js +134 -25
- package/dist/controllers/tree_view_controller.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2451 -1312
- package/dist/index.js.map +1 -1
- package/dist/inspector/cli.d.ts +15 -11
- package/dist/inspector/cli.js +16 -3
- package/dist/inspector/cli.js.map +1 -1
- package/dist/inspector/cli_bin.js +53 -8
- package/dist/inspector/cli_bin.js.map +1 -1
- package/dist/inspector/examples.json +13 -13
- package/dist/inspector/manifest.json +19 -5
- package/dist/positioning/index.d.ts +7 -7
- package/dist/positioning/index.js +6 -0
- package/dist/positioning/index.js.map +1 -1
- package/package.json +10 -9
|
@@ -31,10 +31,17 @@ function logicalArrowKey(key, element) {
|
|
|
31
31
|
if (!isRtl(element)) return key;
|
|
32
32
|
return key === "ArrowRight" ? "ArrowLeft" : "ArrowRight";
|
|
33
33
|
}
|
|
34
|
+
function gridDirectionElement(grid, root) {
|
|
35
|
+
const table = grid.closest("table");
|
|
36
|
+
return table !== null && root.contains(table) ? table : grid;
|
|
37
|
+
}
|
|
34
38
|
function isReservedArrowChord(event, allow = []) {
|
|
35
39
|
if (!event.key.startsWith("Arrow")) return false;
|
|
36
40
|
return event.altKey && !allow.includes("alt") || event.ctrlKey && !allow.includes("ctrl") || event.metaKey && !allow.includes("meta") || event.shiftKey && !allow.includes("shift");
|
|
37
41
|
}
|
|
42
|
+
function hasModifierChord(event) {
|
|
43
|
+
return event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;
|
|
44
|
+
}
|
|
38
45
|
|
|
39
46
|
var formatters = /* @__PURE__ */ new WeakMap();
|
|
40
47
|
function intlFormatter(factory, locale, options, fallbackLocale) {
|
|
@@ -96,6 +103,30 @@ function parseISOMonthString(monthStr) {
|
|
|
96
103
|
function toISOMonthString(date) {
|
|
97
104
|
return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, "0")}`;
|
|
98
105
|
}
|
|
106
|
+
function monthGridDays(year, month, weekStart) {
|
|
107
|
+
const first = new Date(year, month - 1, 1);
|
|
108
|
+
const offset = (first.getDay() - weekStart + 7) % 7;
|
|
109
|
+
const current = new Date(first);
|
|
110
|
+
current.setDate(first.getDate() - offset);
|
|
111
|
+
const days = [];
|
|
112
|
+
for (let i = 0; i < 42; i++) {
|
|
113
|
+
days.push(new Date(current));
|
|
114
|
+
current.setDate(current.getDate() + 1);
|
|
115
|
+
}
|
|
116
|
+
return days;
|
|
117
|
+
}
|
|
118
|
+
function dateInMonthClamped(date, year, month) {
|
|
119
|
+
const target = new Date(year, month - 1, 1);
|
|
120
|
+
const lastDay = new Date(target.getFullYear(), target.getMonth() + 1, 0).getDate();
|
|
121
|
+
target.setDate(Math.min(date.getDate(), lastDay));
|
|
122
|
+
return target;
|
|
123
|
+
}
|
|
124
|
+
function shiftMonthClamped(date, delta) {
|
|
125
|
+
return dateInMonthClamped(date, date.getFullYear(), date.getMonth() + 1 + delta);
|
|
126
|
+
}
|
|
127
|
+
function shiftYearClamped(date, delta) {
|
|
128
|
+
return dateInMonthClamped(date, date.getFullYear() + delta, date.getMonth() + 1);
|
|
129
|
+
}
|
|
99
130
|
var MONTH_LABEL_OPTIONS = { month: "long", year: "numeric" };
|
|
100
131
|
function monthLabelFormatter(locale) {
|
|
101
132
|
return intlFormatter(Intl.DateTimeFormat, locale, MONTH_LABEL_OPTIONS, "en");
|
|
@@ -130,6 +161,9 @@ var MicrotaskCoalescer = class {
|
|
|
130
161
|
this.#queued = false;
|
|
131
162
|
this.#generation += 1;
|
|
132
163
|
}
|
|
164
|
+
get pending() {
|
|
165
|
+
return this.#queued;
|
|
166
|
+
}
|
|
133
167
|
schedule() {
|
|
134
168
|
if (!this.#active || this.#queued) return;
|
|
135
169
|
this.#queued = true;
|
|
@@ -171,6 +205,9 @@ var MorphRenderWatcher = class {
|
|
|
171
205
|
schedule() {
|
|
172
206
|
this.#pass.schedule();
|
|
173
207
|
}
|
|
208
|
+
get pending() {
|
|
209
|
+
return this.#pass.pending;
|
|
210
|
+
}
|
|
174
211
|
disconnect() {
|
|
175
212
|
this.#listeners.dispose();
|
|
176
213
|
this.#pass.cancel();
|
|
@@ -253,7 +290,7 @@ var CalendarController = class _CalendarController extends Controller {
|
|
|
253
290
|
#monthMoves = 0;
|
|
254
291
|
#paintedDates = /* @__PURE__ */ new WeakMap();
|
|
255
292
|
#opened = false;
|
|
256
|
-
#
|
|
293
|
+
#ownMove = false;
|
|
257
294
|
#repaint = new MorphRenderWatcher(() => {
|
|
258
295
|
this.#repaintKeepingFocus();
|
|
259
296
|
});
|
|
@@ -319,6 +356,9 @@ var CalendarController = class _CalendarController extends Controller {
|
|
|
319
356
|
onKeydown(event) {
|
|
320
357
|
if (event.defaultPrevented) return;
|
|
321
358
|
if (isReservedArrowChord(event)) return;
|
|
359
|
+
if ((event.key === "Home" || event.key === "End") && hasModifierChord(event)) return;
|
|
360
|
+
if ((event.key === "PageUp" || event.key === "PageDown") && (event.ctrlKey || event.altKey || event.metaKey))
|
|
361
|
+
return;
|
|
322
362
|
const dayElement = event.target?.closest(
|
|
323
363
|
targetSelector(this.identifier, "day")
|
|
324
364
|
);
|
|
@@ -327,7 +367,8 @@ var CalendarController = class _CalendarController extends Controller {
|
|
|
327
367
|
if (!date) return;
|
|
328
368
|
let handled = true;
|
|
329
369
|
let nextDate = new Date(date);
|
|
330
|
-
|
|
370
|
+
const directionElement = this.hasGridTarget ? gridDirectionElement(this.gridTarget, this.element) : this.element;
|
|
371
|
+
switch (logicalArrowKey(event.key, directionElement)) {
|
|
331
372
|
case "ArrowLeft":
|
|
332
373
|
nextDate.setDate(nextDate.getDate() - 1);
|
|
333
374
|
break;
|
|
@@ -342,16 +383,16 @@ var CalendarController = class _CalendarController extends Controller {
|
|
|
342
383
|
break;
|
|
343
384
|
case "PageUp":
|
|
344
385
|
if (event.shiftKey) {
|
|
345
|
-
nextDate =
|
|
386
|
+
nextDate = shiftYearClamped(date, -1);
|
|
346
387
|
} else {
|
|
347
|
-
nextDate =
|
|
388
|
+
nextDate = shiftMonthClamped(date, -1);
|
|
348
389
|
}
|
|
349
390
|
break;
|
|
350
391
|
case "PageDown":
|
|
351
392
|
if (event.shiftKey) {
|
|
352
|
-
nextDate =
|
|
393
|
+
nextDate = shiftYearClamped(date, 1);
|
|
353
394
|
} else {
|
|
354
|
-
nextDate =
|
|
395
|
+
nextDate = shiftMonthClamped(date, 1);
|
|
355
396
|
}
|
|
356
397
|
break;
|
|
357
398
|
case "Home":
|
|
@@ -400,7 +441,7 @@ var CalendarController = class _CalendarController extends Controller {
|
|
|
400
441
|
const locale = resolveLocale(this.element, this.localeValue);
|
|
401
442
|
this.labelTarget.textContent = monthLabelFormatter(locale).format(monthStart);
|
|
402
443
|
}
|
|
403
|
-
const days =
|
|
444
|
+
const days = monthGridDays(year, month, this.#safeWeekStart);
|
|
404
445
|
const dayElements = this.dayTargets;
|
|
405
446
|
const consumerDisabled = /* @__PURE__ */ new Map();
|
|
406
447
|
for (const el of dayElements) {
|
|
@@ -513,8 +554,8 @@ var CalendarController = class _CalendarController extends Controller {
|
|
|
513
554
|
return true;
|
|
514
555
|
}
|
|
515
556
|
#mirrorFields(painted, selection, reconciled) {
|
|
516
|
-
const
|
|
517
|
-
this.#
|
|
557
|
+
const ownMove = this.#ownMove;
|
|
558
|
+
this.#ownMove = false;
|
|
518
559
|
const moved = [];
|
|
519
560
|
if (this.hasFieldTarget && this.#writeField(this.fieldTarget, selection) && !reconciled) {
|
|
520
561
|
moved.push([this.fieldTarget, selection, this.#fieldWrites.get(this.fieldTarget) ?? 0]);
|
|
@@ -526,7 +567,7 @@ var CalendarController = class _CalendarController extends Controller {
|
|
|
526
567
|
this.#fieldWrites.get(this.monthFieldTarget) ?? 0
|
|
527
568
|
]);
|
|
528
569
|
}
|
|
529
|
-
return
|
|
570
|
+
return ownMove ? moved : [];
|
|
530
571
|
}
|
|
531
572
|
#selectDay(dayElement, reason) {
|
|
532
573
|
if (dayElement.getAttribute("aria-disabled") === "true") return;
|
|
@@ -535,7 +576,7 @@ var CalendarController = class _CalendarController extends Controller {
|
|
|
535
576
|
this.selectedValue = dateStr;
|
|
536
577
|
const selected = parseISODateString(dateStr);
|
|
537
578
|
if (selected) this.focusedDate = selected;
|
|
538
|
-
this.#
|
|
579
|
+
this.#ownMove = true;
|
|
539
580
|
const changed = dateStr !== this.#published;
|
|
540
581
|
if (changed) this.#selectionMoves += 1;
|
|
541
582
|
const move = this.#selectionMoves;
|
|
@@ -547,7 +588,7 @@ var CalendarController = class _CalendarController extends Controller {
|
|
|
547
588
|
#focusAndNavigateToDate(date) {
|
|
548
589
|
this.focusedDate = date;
|
|
549
590
|
const targetMonthStr = `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, "0")}`;
|
|
550
|
-
this.#
|
|
591
|
+
this.#ownMove = true;
|
|
551
592
|
if (targetMonthStr !== this.#monthRequest) {
|
|
552
593
|
this.monthValue = targetMonthStr;
|
|
553
594
|
if (targetMonthStr !== this.#paintedMonth) return;
|
|
@@ -573,7 +614,7 @@ var CalendarController = class _CalendarController extends Controller {
|
|
|
573
614
|
#shiftMonth(delta) {
|
|
574
615
|
const monthInfo = parseISOMonthString(this.#monthRequest);
|
|
575
616
|
if (!monthInfo) return;
|
|
576
|
-
this.#
|
|
617
|
+
this.#ownMove = true;
|
|
577
618
|
const nextMonthDate = new Date(monthInfo.year, monthInfo.month - 1 + delta, 1);
|
|
578
619
|
this.monthValue = `${nextMonthDate.getFullYear()}-${String(nextMonthDate.getMonth() + 1).padStart(2, "0")}`;
|
|
579
620
|
if (this.monthValue === this.#paintedMonth) {
|
|
@@ -581,28 +622,6 @@ var CalendarController = class _CalendarController extends Controller {
|
|
|
581
622
|
this.#repaintKeepingFocus();
|
|
582
623
|
}
|
|
583
624
|
}
|
|
584
|
-
#calculateShiftedMonthDate(baseDate, delta) {
|
|
585
|
-
const targetDate = new Date(baseDate.getFullYear(), baseDate.getMonth() + delta, 1);
|
|
586
|
-
const lastDayInTarget = new Date(
|
|
587
|
-
targetDate.getFullYear(),
|
|
588
|
-
targetDate.getMonth() + 1,
|
|
589
|
-
0
|
|
590
|
-
).getDate();
|
|
591
|
-
const clampedDay = Math.min(baseDate.getDate(), lastDayInTarget);
|
|
592
|
-
targetDate.setDate(clampedDay);
|
|
593
|
-
return targetDate;
|
|
594
|
-
}
|
|
595
|
-
#calculateShiftedYearDate(baseDate, delta) {
|
|
596
|
-
const targetDate = new Date(baseDate.getFullYear() + delta, baseDate.getMonth(), 1);
|
|
597
|
-
const lastDayInTarget = new Date(
|
|
598
|
-
targetDate.getFullYear(),
|
|
599
|
-
targetDate.getMonth() + 1,
|
|
600
|
-
0
|
|
601
|
-
).getDate();
|
|
602
|
-
const clampedDay = Math.min(baseDate.getDate(), lastDayInTarget);
|
|
603
|
-
targetDate.setDate(clampedDay);
|
|
604
|
-
return targetDate;
|
|
605
|
-
}
|
|
606
625
|
#getStartOfWeekDate(date) {
|
|
607
626
|
const currentDay = date.getDay();
|
|
608
627
|
const shift = (currentDay - this.#safeWeekStart + 7) % 7;
|
|
@@ -640,27 +659,10 @@ var CalendarController = class _CalendarController extends Controller {
|
|
|
640
659
|
if (today.getFullYear() === monthInfo.year && today.getMonth() === monthInfo.month - 1) {
|
|
641
660
|
this.focusedDate = today;
|
|
642
661
|
} else {
|
|
643
|
-
|
|
644
|
-
const lastDayInTarget = new Date(monthInfo.year, monthInfo.month, 0).getDate();
|
|
645
|
-
const clampedDay = Math.min(this.focusedDate.getDate(), lastDayInTarget);
|
|
646
|
-
targetDate.setDate(clampedDay);
|
|
647
|
-
this.focusedDate = targetDate;
|
|
662
|
+
this.focusedDate = dateInMonthClamped(this.focusedDate, monthInfo.year, monthInfo.month);
|
|
648
663
|
}
|
|
649
664
|
}
|
|
650
665
|
}
|
|
651
|
-
#calculateGridDays(year, month) {
|
|
652
|
-
const firstDay = new Date(year, month - 1, 1);
|
|
653
|
-
const dayOfWeek = firstDay.getDay();
|
|
654
|
-
const offset = (dayOfWeek - this.#safeWeekStart + 7) % 7;
|
|
655
|
-
const days = [];
|
|
656
|
-
const current = new Date(firstDay);
|
|
657
|
-
current.setDate(firstDay.getDate() - offset);
|
|
658
|
-
for (let i = 0; i < 42; i++) {
|
|
659
|
-
days.push(new Date(current));
|
|
660
|
-
current.setDate(current.getDate() + 1);
|
|
661
|
-
}
|
|
662
|
-
return days;
|
|
663
|
-
}
|
|
664
666
|
get #safeWeekStart() {
|
|
665
667
|
return this.#numbers.read(
|
|
666
668
|
this,
|