@editora/ui-core 0.1.25 → 0.2.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/README.md +124 -0
- package/dist/accordion.cjs.js +13 -12
- package/dist/accordion.esm.js +13 -12
- package/dist/alert-dialog.cjs.js +76 -45
- package/dist/alert-dialog.esm.js +179 -135
- package/dist/alert.cjs.js +41 -32
- package/dist/alert.esm.js +79 -70
- package/dist/animated-beam.cjs.js +42 -50
- package/dist/animated-beam.esm.js +47 -55
- package/dist/animated-list.cjs.js +11 -27
- package/dist/animated-list.esm.js +12 -28
- package/dist/animated-text.cjs.js +4 -4
- package/dist/animated-text.esm.js +4 -4
- package/dist/app-header.cjs.js +5 -5
- package/dist/app-header.esm.js +6 -6
- package/dist/aspect-ratio.cjs.js +10 -12
- package/dist/aspect-ratio.esm.js +11 -13
- package/dist/avatar.cjs.js +13 -17
- package/dist/avatar.esm.js +13 -17
- package/dist/badge.cjs.js +27 -22
- package/dist/badge.esm.js +32 -27
- package/dist/block-controls.cjs.js +11 -12
- package/dist/block-controls.esm.js +8 -9
- package/dist/box.cjs.js +2 -3
- package/dist/box.esm.js +2 -3
- package/dist/breadcrumb.cjs.js +12 -18
- package/dist/breadcrumb.esm.js +11 -17
- package/dist/button.cjs.js +1 -1
- package/dist/button.esm.js +1 -1
- package/dist/{calendar-B3PUKHQm.mjs → calendar-DmxiZrR7.mjs} +126 -117
- package/dist/{calendar-D-mXMgqc.js → calendar-o273O28D.js} +53 -44
- package/dist/calendar.cjs.js +1 -1
- package/dist/calendar.esm.js +1 -1
- package/dist/card.cjs.js +6 -7
- package/dist/card.esm.js +5 -6
- package/dist/chart.cjs.js +52 -52
- package/dist/chart.esm.js +95 -95
- package/dist/checkbox.cjs.js +19 -15
- package/dist/checkbox.esm.js +19 -15
- package/dist/collapsible.cjs.js +7 -11
- package/dist/collapsible.esm.js +7 -11
- package/dist/color-picker.cjs.js +36 -17
- package/dist/color-picker.esm.js +132 -113
- package/dist/combobox.cjs.js +57 -54
- package/dist/combobox.esm.js +62 -58
- package/dist/command-palette.cjs.js +1 -0
- package/dist/command-palette.esm.js +1 -0
- package/dist/command.cjs.js +32 -14
- package/dist/command.esm.js +46 -28
- package/dist/components/date-time-utils.d.ts.map +1 -1
- package/dist/components/ui-accordion.d.ts.map +1 -1
- package/dist/components/ui-alert-dialog.d.ts +2 -0
- package/dist/components/ui-alert-dialog.d.ts.map +1 -1
- package/dist/components/ui-alert.d.ts.map +1 -1
- package/dist/components/ui-animated-beam.d.ts.map +1 -1
- package/dist/components/ui-animated-list.d.ts.map +1 -1
- package/dist/components/ui-aspect-ratio.d.ts.map +1 -1
- package/dist/components/ui-avatar.d.ts.map +1 -1
- package/dist/components/ui-badge.d.ts.map +1 -1
- package/dist/components/ui-block-controls.d.ts.map +1 -1
- package/dist/components/ui-box.d.ts.map +1 -1
- package/dist/components/ui-breadcrumb.d.ts.map +1 -1
- package/dist/components/ui-button.d.ts.map +1 -1
- package/dist/components/ui-calendar.d.ts.map +1 -1
- package/dist/components/ui-card.d.ts.map +1 -1
- package/dist/components/ui-checkbox.d.ts.map +1 -1
- package/dist/components/ui-collapsible.d.ts.map +1 -1
- package/dist/components/ui-color-picker.d.ts.map +1 -1
- package/dist/components/ui-combobox.d.ts.map +1 -1
- package/dist/components/ui-command-palette.d.ts.map +1 -1
- package/dist/components/ui-command.d.ts.map +1 -1
- package/dist/components/ui-container.d.ts.map +1 -1
- package/dist/components/ui-context-menu.d.ts.map +1 -1
- package/dist/components/ui-data-table.d.ts +7 -0
- package/dist/components/ui-data-table.d.ts.map +1 -1
- package/dist/components/ui-date-picker.d.ts.map +1 -1
- package/dist/components/ui-date-range-picker.d.ts.map +1 -1
- package/dist/components/ui-date-range-time-picker.d.ts.map +1 -1
- package/dist/components/ui-date-time-picker.d.ts.map +1 -1
- package/dist/components/ui-dialog.d.ts +2 -0
- package/dist/components/ui-dialog.d.ts.map +1 -1
- package/dist/components/ui-dock.d.ts.map +1 -1
- package/dist/components/ui-drawer.d.ts.map +1 -1
- package/dist/components/ui-dropdown.d.ts.map +1 -1
- package/dist/components/ui-empty-state.d.ts.map +1 -1
- package/dist/components/ui-field.d.ts.map +1 -1
- package/dist/components/ui-fieldset.d.ts.map +1 -1
- package/dist/components/ui-file-upload.d.ts.map +1 -1
- package/dist/components/ui-floating-toolbar.d.ts.map +1 -1
- package/dist/components/ui-form.d.ts.map +1 -1
- package/dist/components/ui-icon-cloud.d.ts.map +1 -1
- package/dist/components/ui-inline-edit.d.ts.map +1 -1
- package/dist/components/ui-input.d.ts.map +1 -1
- package/dist/components/ui-marquee.d.ts.map +1 -1
- package/dist/components/ui-menu.d.ts.map +1 -1
- package/dist/components/ui-menubar.d.ts.map +1 -1
- package/dist/components/ui-meter.d.ts.map +1 -1
- package/dist/components/ui-multi-select.d.ts.map +1 -1
- package/dist/components/ui-number-field.d.ts.map +1 -1
- package/dist/components/ui-orbiter.d.ts.map +1 -1
- package/dist/components/ui-pagination.d.ts.map +1 -1
- package/dist/components/ui-password-field.d.ts.map +1 -1
- package/dist/components/ui-pin-input.d.ts.map +1 -1
- package/dist/components/ui-popover.d.ts.map +1 -1
- package/dist/components/ui-progress.d.ts.map +1 -1
- package/dist/components/ui-radio-group.d.ts.map +1 -1
- package/dist/components/ui-radio.d.ts.map +1 -1
- package/dist/components/ui-rating.d.ts +1 -0
- package/dist/components/ui-rating.d.ts.map +1 -1
- package/dist/components/ui-scroll-area.d.ts.map +1 -1
- package/dist/components/ui-section.d.ts.map +1 -1
- package/dist/components/ui-select.d.ts.map +1 -1
- package/dist/components/ui-selection-popup.d.ts.map +1 -1
- package/dist/components/ui-slider.d.ts.map +1 -1
- package/dist/components/ui-sortable.d.ts.map +1 -1
- package/dist/components/ui-spinning-text.d.ts.map +1 -1
- package/dist/components/ui-split-button.d.ts.map +1 -1
- package/dist/components/ui-splitter.d.ts.map +1 -1
- package/dist/components/ui-stepper.d.ts.map +1 -1
- package/dist/components/ui-switch.d.ts.map +1 -1
- package/dist/components/ui-tabs.d.ts.map +1 -1
- package/dist/components/ui-tags-input.d.ts.map +1 -1
- package/dist/components/ui-textarea.d.ts.map +1 -1
- package/dist/components/ui-time-picker.d.ts.map +1 -1
- package/dist/components/ui-toggle-group.d.ts +2 -0
- package/dist/components/ui-toggle-group.d.ts.map +1 -1
- package/dist/components/ui-toggle.d.ts.map +1 -1
- package/dist/components/ui-toolbar.d.ts +2 -0
- package/dist/components/ui-toolbar.d.ts.map +1 -1
- package/dist/components/ui-tooltip.d.ts.map +1 -1
- package/dist/components/ui-transfer-list.d.ts.map +1 -1
- package/dist/components/ui-tree-item.d.ts.map +1 -1
- package/dist/components/ui-tree.d.ts.map +1 -1
- package/dist/components/ui-wizard.d.ts.map +1 -1
- package/dist/container.cjs.js +6 -12
- package/dist/container.esm.js +8 -14
- package/dist/context-menu.cjs.js +8 -8
- package/dist/context-menu.esm.js +42 -41
- package/dist/data-table.cjs.js +18 -15
- package/dist/data-table.esm.js +207 -187
- package/dist/date-field.cjs.js +8 -8
- package/dist/date-field.esm.js +7 -7
- package/dist/date-picker.cjs.js +27 -18
- package/dist/date-picker.esm.js +57 -48
- package/dist/date-range-picker.cjs.js +22 -17
- package/dist/date-range-picker.esm.js +31 -26
- package/dist/date-range-time-picker.cjs.js +26 -19
- package/dist/date-range-time-picker.esm.js +23 -16
- package/dist/date-time-picker.cjs.js +23 -16
- package/dist/date-time-picker.esm.js +88 -81
- package/dist/{date-time-utils-BTlxnz5j.mjs → date-time-utils-B4hAkt36.mjs} +75 -68
- package/dist/date-time-utils-DdigV4hs.js +1 -0
- package/dist/dialog.cjs.js +57 -41
- package/dist/dialog.esm.js +84 -51
- package/dist/dock.cjs.js +16 -30
- package/dist/dock.esm.js +26 -40
- package/dist/drawer.cjs.js +8 -12
- package/dist/drawer.esm.js +6 -10
- package/dist/dropdown.cjs.js +8 -6
- package/dist/dropdown.esm.js +33 -30
- package/dist/empty-state.cjs.js +17 -15
- package/dist/empty-state.esm.js +13 -11
- package/dist/field.cjs.js +22 -13
- package/dist/field.esm.js +54 -45
- package/dist/fieldset.cjs.js +18 -11
- package/dist/fieldset.esm.js +20 -13
- package/dist/file-upload.cjs.js +77 -35
- package/dist/file-upload.esm.js +152 -110
- package/dist/floating-toolbar.cjs.js +6 -7
- package/dist/floating-toolbar.esm.js +8 -9
- package/dist/form.cjs.js +20 -23
- package/dist/form.esm.js +20 -23
- package/dist/gantt.cjs.js +6 -6
- package/dist/gantt.esm.js +6 -6
- package/dist/hover-card.cjs.js +7 -7
- package/dist/hover-card.esm.js +7 -7
- package/dist/icon-cloud.cjs.js +19 -36
- package/dist/icon-cloud.esm.js +41 -58
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +108 -104
- package/dist/inline-edit.cjs.js +47 -19
- package/dist/inline-edit.esm.js +66 -38
- package/dist/input.cjs.js +44 -37
- package/dist/input.esm.js +59 -52
- package/dist/layout.cjs.js +3 -3
- package/dist/layout.esm.js +3 -3
- package/dist/marquee.cjs.js +7 -10
- package/dist/marquee.esm.js +7 -10
- package/dist/menu.cjs.js +8 -24
- package/dist/menu.esm.js +52 -72
- package/dist/menubar.cjs.js +9 -31
- package/dist/menubar.esm.js +127 -153
- package/dist/meter.cjs.js +4 -9
- package/dist/meter.esm.js +6 -11
- package/dist/multi-select.cjs.js +48 -35
- package/dist/multi-select.esm.js +67 -53
- package/dist/navigation-menu.cjs.js +10 -10
- package/dist/navigation-menu.esm.js +33 -33
- package/dist/number-field.cjs.js +27 -16
- package/dist/number-field.esm.js +36 -25
- package/dist/odometer.cjs.js +5 -5
- package/dist/odometer.esm.js +3 -3
- package/dist/orbiter.cjs.js +11 -28
- package/dist/orbiter.esm.js +28 -45
- package/dist/overlay-motion-B56x1GoY.js +49 -0
- package/dist/overlay-motion-BX3dPLay.mjs +120 -0
- package/dist/pagination.cjs.js +28 -25
- package/dist/pagination.esm.js +54 -51
- package/dist/password-field.cjs.js +38 -33
- package/dist/password-field.esm.js +62 -57
- package/dist/pin-input.cjs.js +17 -13
- package/dist/pin-input.esm.js +23 -19
- package/dist/plugin-panel.cjs.js +1 -1
- package/dist/plugin-panel.esm.js +1 -1
- package/dist/popover.cjs.js +16 -28
- package/dist/popover.esm.js +29 -45
- package/dist/portal-DeaM1tYY.mjs +121 -0
- package/dist/portal-XbYR3m_q.js +1 -0
- package/dist/portal.d.ts +3 -1
- package/dist/portal.d.ts.map +1 -1
- package/dist/{positioner-D0VGxtYU.mjs → positioner-BE8Nbho2.mjs} +5 -3
- package/dist/{positioner-D_fqyx_j.js → positioner-DZ1FW6A9.js} +1 -1
- package/dist/positioner.cjs.js +1 -1
- package/dist/positioner.esm.js +1 -1
- package/dist/primitives/overlay-motion.d.ts +47 -0
- package/dist/primitives/overlay-motion.d.ts.map +1 -0
- package/dist/primitives/positioner.d.ts.map +1 -1
- package/dist/progress.cjs.js +11 -16
- package/dist/progress.esm.js +37 -42
- package/dist/quick-actions.cjs.js +13 -13
- package/dist/quick-actions.esm.js +11 -11
- package/dist/radio-group.cjs.js +50 -26
- package/dist/radio-group.esm.js +53 -29
- package/dist/radio.cjs.js +15 -12
- package/dist/radio.esm.js +15 -12
- package/dist/rating.cjs.js +11 -15
- package/dist/rating.esm.js +48 -50
- package/dist/{runtime-CFnK53iC.mjs → runtime-CQM6wZOc.mjs} +498 -514
- package/dist/runtime-DxCl0A5q.js +5 -0
- package/dist/runtime.cjs.js +1 -1
- package/dist/runtime.d.ts +3 -2
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.esm.js +36 -32
- package/dist/scroll-area.cjs.js +3 -4
- package/dist/scroll-area.esm.js +3 -4
- package/dist/section.cjs.js +2 -4
- package/dist/section.esm.js +2 -4
- package/dist/select.cjs.js +40 -73
- package/dist/select.esm.js +55 -87
- package/dist/selection-popup.cjs.js +3 -4
- package/dist/selection-popup.esm.js +3 -4
- package/dist/semantic-tokens.d.ts +17 -0
- package/dist/semantic-tokens.d.ts.map +1 -0
- package/dist/sidebar.cjs.js +22 -22
- package/dist/sidebar.esm.js +25 -25
- package/dist/skeleton.cjs.js +2 -2
- package/dist/skeleton.esm.js +2 -2
- package/dist/slider.cjs.js +22 -26
- package/dist/slider.esm.js +25 -29
- package/dist/sortable.cjs.js +4 -5
- package/dist/sortable.esm.js +4 -5
- package/dist/spinning-text.cjs.js +4 -13
- package/dist/spinning-text.esm.js +4 -13
- package/dist/split-button.cjs.js +5 -5
- package/dist/split-button.esm.js +15 -14
- package/dist/splitter.cjs.js +52 -10
- package/dist/splitter.esm.js +55 -13
- package/dist/stepper.cjs.js +31 -65
- package/dist/stepper.esm.js +32 -66
- package/dist/switch.cjs.js +20 -22
- package/dist/switch.esm.js +20 -22
- package/dist/table.cjs.js +5 -5
- package/dist/table.esm.js +20 -20
- package/dist/tabs.cjs.js +91 -21
- package/dist/tabs.esm.js +182 -112
- package/dist/tags-input.cjs.js +41 -15
- package/dist/tags-input.esm.js +73 -47
- package/dist/textarea.cjs.js +32 -33
- package/dist/textarea.esm.js +38 -39
- package/dist/theme.d.ts +25 -1
- package/dist/theme.d.ts.map +1 -1
- package/dist/time-field.cjs.js +7 -7
- package/dist/time-field.esm.js +6 -6
- package/dist/time-picker.cjs.js +16 -13
- package/dist/time-picker.esm.js +27 -24
- package/dist/timeline.cjs.js +10 -10
- package/dist/timeline.esm.js +7 -7
- package/dist/toggle-group.cjs.js +13 -13
- package/dist/toggle-group.esm.js +66 -61
- package/dist/toggle.cjs.js +52 -34
- package/dist/toggle.esm.js +80 -62
- package/dist/toolbar.cjs.js +14 -14
- package/dist/toolbar.esm.js +41 -33
- package/dist/tooltip.cjs.js +3 -3
- package/dist/tooltip.esm.js +39 -33
- package/dist/transfer-list.cjs.js +28 -29
- package/dist/transfer-list.esm.js +28 -29
- package/dist/{tree-B_oQput6.mjs → tree-33fVNnaf.mjs} +6 -5
- package/dist/{tree-SivHxcAy.js → tree-Dc02MChE.js} +6 -5
- package/dist/tree-item.cjs.js +9 -8
- package/dist/tree-item.esm.js +13 -12
- package/dist/tree.cjs.js +1 -1
- package/dist/tree.esm.js +1 -1
- package/dist/{ui-button-Co8Sid6t.mjs → ui-button-C3OmI7Sn.mjs} +152 -154
- package/dist/{ui-button-BPrzJScZ.js → ui-button-CnLwXBnx.js} +107 -109
- package/dist/wizard.cjs.js +39 -36
- package/dist/wizard.esm.js +39 -36
- package/package.json +1 -1
- package/dist/date-time-utils-y3AvNvGe.js +0 -1
- package/dist/portal-DgpQ3Jo1.js +0 -1
- package/dist/portal-bR42gHvG.mjs +0 -118
- package/dist/runtime-DwE-tizc.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const G=require("./ElementBase-DxbvhLJs.js"),j=require("./control-name-BmoI1m3a.js"),Q=require("./dismissable-layer-DNfrKA20.js"),X=require("./calendar-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const G=require("./ElementBase-DxbvhLJs.js"),j=require("./control-name-BmoI1m3a.js"),Q=require("./dismissable-layer-DNfrKA20.js"),X=require("./calendar-o273O28D.js"),s=require("./date-time-utils-DdigV4hs.js");let tt=0;const et=`
|
|
2
2
|
<svg viewBox="0 0 20 20" class="icon-svg" aria-hidden="true" focusable="false">
|
|
3
3
|
<path d="M6 2a1 1 0 0 1 1 1v1h6V3a1 1 0 1 1 2 0v1h.5A2.5 2.5 0 0 1 18 6.5v9A2.5 2.5 0 0 1 15.5 18h-11A2.5 2.5 0 0 1 2 15.5v-9A2.5 2.5 0 0 1 4.5 4H5V3a1 1 0 0 1 1-1Zm10 7H4v6.5c0 .276.224.5.5.5h11a.5.5 0 0 0 .5-.5V9ZM4.5 6a.5.5 0 0 0-.5.5V7h12v-.5a.5.5 0 0 0-.5-.5h-11Z" fill="currentColor"/>
|
|
4
4
|
</svg>
|
|
@@ -22,17 +22,17 @@
|
|
|
22
22
|
color-mix(in srgb, var(--ui-color-surface, #ffffff) 98%, transparent),
|
|
23
23
|
color-mix(in srgb, var(--ui-color-surface, #ffffff) 90%, var(--ui-color-surface-alt, #f8fafc))
|
|
24
24
|
);
|
|
25
|
-
--ui-drtp-border: color-
|
|
25
|
+
--ui-drtp-border: var(--ui-color-line, var(--ui-color-border, #cbd5e1));
|
|
26
26
|
--ui-dp-text: var(--ui-color-text, #0f172a);
|
|
27
27
|
--ui-dp-muted: var(--ui-color-muted, #526175);
|
|
28
28
|
--ui-drtp-accent: var(--ui-color-primary, #2563eb);
|
|
29
29
|
--ui-drtp-success: var(--ui-color-success, #15803d);
|
|
30
30
|
--ui-drtp-error: var(--ui-color-danger, #dc2626);
|
|
31
|
-
--ui-drtp-radius:
|
|
31
|
+
--ui-drtp-radius: var(--ui-control-radius-2, var(--ui-radius, 6px));
|
|
32
32
|
--ui-drtp-panel-radius: 14px;
|
|
33
33
|
--ui-drtp-z: 1600;
|
|
34
34
|
--ui-drtp-shadow: none;
|
|
35
|
-
--ui-drtp-hit:
|
|
35
|
+
--ui-drtp-hit: var(--ui-control-height-2, 32px);
|
|
36
36
|
--ui-drtp-duration: 160ms;
|
|
37
37
|
--ui-drtp-ease: cubic-bezier(0.2, 0.9, 0.24, 1);
|
|
38
38
|
color-scheme: light dark;
|
|
@@ -54,11 +54,14 @@
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
:host([size="sm"]) {
|
|
57
|
-
--ui-drtp-
|
|
57
|
+
--ui-drtp-action-size: 24px;
|
|
58
|
+
--ui-drtp-action-bleed: -1px;
|
|
59
|
+
--ui-drtp-hit: var(--ui-control-height-1, 24px);
|
|
58
60
|
}
|
|
59
61
|
|
|
60
62
|
:host([size="lg"]) {
|
|
61
|
-
--ui-drtp-
|
|
63
|
+
--ui-drtp-action-size: 28px;
|
|
64
|
+
--ui-drtp-hit: var(--ui-control-height-3, 40px);
|
|
62
65
|
}
|
|
63
66
|
|
|
64
67
|
.root {
|
|
@@ -84,6 +87,7 @@
|
|
|
84
87
|
}
|
|
85
88
|
|
|
86
89
|
.field {
|
|
90
|
+
box-sizing: border-box;
|
|
87
91
|
display: grid;
|
|
88
92
|
grid-template-columns: auto minmax(0, 1fr) auto auto auto;
|
|
89
93
|
align-items: center;
|
|
@@ -99,18 +103,20 @@
|
|
|
99
103
|
|
|
100
104
|
.field[data-open="true"],
|
|
101
105
|
.field:focus-within {
|
|
102
|
-
border-color: color
|
|
103
|
-
|
|
106
|
+
border-color: var(--ui-ring-color, var(--ui-drtp-accent));
|
|
107
|
+
outline: var(--ui-ring-width, 2px) solid var(--ui-ring-color, var(--ui-drtp-accent));
|
|
108
|
+
outline-offset: -1px;
|
|
109
|
+
box-shadow: none;
|
|
104
110
|
}
|
|
105
111
|
|
|
106
112
|
.field[data-invalid="true"] {
|
|
107
113
|
border-color: color-mix(in srgb, var(--ui-drtp-error) 72%, transparent);
|
|
108
|
-
box-shadow: 0 0 0
|
|
114
|
+
box-shadow: 0 0 0 1px var(--ui-drtp-error);
|
|
109
115
|
}
|
|
110
116
|
|
|
111
117
|
.field[data-state="success"]:not([data-invalid="true"]) {
|
|
112
118
|
border-color: color-mix(in srgb, var(--ui-drtp-success) 56%, transparent);
|
|
113
|
-
box-shadow: 0 0 0
|
|
119
|
+
box-shadow: 0 0 0 1px var(--ui-drtp-success);
|
|
114
120
|
}
|
|
115
121
|
|
|
116
122
|
.input {
|
|
@@ -120,11 +126,11 @@
|
|
|
120
126
|
outline: none;
|
|
121
127
|
min-inline-size: 0;
|
|
122
128
|
inline-size: 100%;
|
|
123
|
-
padding:
|
|
129
|
+
padding: 0;
|
|
124
130
|
font: 500 14px/1.35 Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
125
131
|
}
|
|
126
132
|
.input::placeholder {
|
|
127
|
-
color: color-mix(in srgb, var(--ui-dp-text)
|
|
133
|
+
color: var(--ui-color-placeholder, color-mix(in srgb, var(--ui-dp-text) 62%, transparent));
|
|
128
134
|
}
|
|
129
135
|
.icon {
|
|
130
136
|
display: inline-grid;
|
|
@@ -141,8 +147,9 @@
|
|
|
141
147
|
.btn {
|
|
142
148
|
border: 1px solid transparent;
|
|
143
149
|
background: color-mix(in srgb, var(--ui-drtp-bg) 84%, transparent);
|
|
144
|
-
inline-size:
|
|
145
|
-
block-size:
|
|
150
|
+
inline-size: var(--ui-drtp-action-size, 24px);
|
|
151
|
+
block-size: var(--ui-drtp-action-size, 24px);
|
|
152
|
+
margin-block: var(--ui-drtp-action-bleed, 0px);
|
|
146
153
|
border-radius: 8px;
|
|
147
154
|
color: color-mix(in srgb, var(--ui-dp-text) 72%, transparent);
|
|
148
155
|
cursor: pointer;
|
|
@@ -273,7 +280,7 @@
|
|
|
273
280
|
color-mix(in srgb, var(--ui-color-surface, #ffffff) 98%, transparent),
|
|
274
281
|
color-mix(in srgb, var(--ui-color-surface, #ffffff) 90%, var(--ui-color-surface-alt, #f8fafc))
|
|
275
282
|
);
|
|
276
|
-
--ui-drtp-border: color-
|
|
283
|
+
--ui-drtp-border: var(--ui-color-line, var(--ui-color-border, #cbd5e1));
|
|
277
284
|
--ui-dp-text: var(--ui-color-text, #0f172a);
|
|
278
285
|
--ui-dp-muted: var(--ui-color-muted, #526175);
|
|
279
286
|
--ui-drtp-accent: var(--ui-color-primary, #2563eb);
|
|
@@ -518,7 +525,7 @@
|
|
|
518
525
|
from { opacity: 0; transform: translateY(6px) scale(0.985); }
|
|
519
526
|
to { opacity: 1; transform: translateY(0) scale(1); }
|
|
520
527
|
}
|
|
521
|
-
`;function W(m){if(!m)return{start:null,end:null};try{const t=JSON.parse(m),e=typeof t?.start=="string"?t.start:null,i=typeof t?.end=="string"?t.end:null;return{start:e,end:i}}catch{return{start:null,end:null}}}function J(m){return!m.start&&!m.end?null:JSON.stringify({...m.start?{start:m.start}:{},...m.end?{end:m.end}:{}})}function w(m){return String(m).padStart(2,"0")}function p(m){return m.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function x(m){const t=new Date,e=`${w(t.getHours())}:${w(t.getMinutes())}`,i=`${w((t.getHours()+1)%24)}:${w(t.getMinutes())}`,r=s.splitDateTime(m.start||null),l=s.splitDateTime(m.end||null);return{startDate:r?.date||null,endDate:l?.date||null,startTime:r?.time?.slice(0,5)||e,endTime:l?.time?.slice(0,5)||i}}class Y extends G.ElementBase{constructor(){super(...arguments),this._value={start:null,end:null},this._pending=x({start:null,end:null}),this._display="",this._inlineError="",this._open=!1,this._syncing=!1,this._overlay=null,this._dismissableLayer=null,this._releaseScrollLock=null,this._isInitialized=!1,this._hasView=!1,this._restoreFocusEl=null,this._overlayKey=null,this._uid=`ui-drtp-${++tt}`,this._inputId=`${this._uid}-input`,this._labelId=`${this._uid}-label`,this._hintId=`${this._uid}-hint`,this._errorId=`${this._uid}-error`,this._panelId=`${this._uid}-panel`,this._schedulePosition=s.rafThrottle(()=>this._positionOverlay()),this._onRootClickBound=t=>this._onRootClick(t),this._onRootChangeBound=t=>this._onRootChange(t),this._onRootKeyDownBound=t=>this._onRootKeyDown(t),this._onOverlayClickBound=t=>this._onOverlayClick(t),this._onOverlayChangeBound=t=>this._onOverlayChange(t),this._onOverlayCalendarBound=t=>this._onOverlayCalendar(t),this._onDocumentPointerDownBound=t=>this._onDocumentPointerDown(t),this._onDocumentKeyDownBound=t=>this._onDocumentKeyDown(t),this._onWindowResizeBound=()=>this._schedulePosition.run(),this._onWindowScrollBound=t=>{s.eventOriginatesWithin(t,[this._overlay])||this._schedulePosition.run()}}static get observedAttributes(){return["aria-label","aria-description","aria-describedby","open","default-open","value","default-value","min","max","locale","translations","week-start","size","shape","bare","variant","state","step","auto-normalize","allow-partial","disabled","readonly","required","name","close-on-select","clearable","mode","label","hint","error","show-footer"]}connectedCallback(){if(super.connectedCallback(),this.root.addEventListener("click",this._onRootClickBound),this.root.addEventListener("change",this._onRootChangeBound),this.root.addEventListener("keydown",this._onRootKeyDownBound),!this._isInitialized){const t=W(this.getAttribute("value")||this.getAttribute("default-value"));this._value=t,this._pending=x(t),this._display=this._formatDisplay(),this._open=this.hasAttribute("open")||s.isTruthyAttr(this.getAttribute("default-open")),this._isInitialized=!0}this._open&&!this._isInlineMode()&&this._ensureOverlay()}disconnectedCallback(){this.root.removeEventListener("click",this._onRootClickBound),this.root.removeEventListener("change",this._onRootChangeBound),this.root.removeEventListener("keydown",this._onRootKeyDownBound),this._destroyOverlay(),super.disconnectedCallback()}attributeChangedCallback(t,e,i){if(e!==i&&(t==="value"&&!this._syncing&&(this._value=W(i),this._pending=x(this._value),this._display=this._formatDisplay(),this._inlineError=""),t==="open"&&!this._syncing&&(this._open=this.hasAttribute("open"),this._syncOverlay("attribute")),t==="mode"&&this._syncOverlay("attribute"),t==="disabled"&&this.hasAttribute("disabled")&&this._setOpen(!1,"outside"),t==="state"&&this._state()==="loading"&&this._setOpen(!1,"outside"),!!this.isConnected)){if(!this._hasView){this.requestRender();return}this._updateHostState()}}_isInlineMode(){return(this.getAttribute("mode")||"popover")==="inline"}_isMobileSheet(){return s.shouldUseMobileSheet(this.getAttribute("mode"))}_isDisabled(){return this.hasAttribute("disabled")}_state(){const t=(this.getAttribute("state")||"").trim().toLowerCase();return t==="loading"||t==="error"||t==="success"?t:"idle"}_isInteractionBlocked(){return this._isDisabled()||this._state()==="loading"}_locale(){return s.normalizeLocale(this.getAttribute("locale"))}_isReadonly(){return this.hasAttribute("readonly")}_clearable(){return s.isTruthyAttr(this.getAttribute("clearable"),!0)}_showFooter(){return s.isTruthyAttr(this.getAttribute("show-footer"),!0)}_shouldAutoCommit(){return s.isTruthyAttr(this.getAttribute("close-on-select"),!1)||!this._showFooter()}_isBare(){return s.isTruthyAttr(this.getAttribute("bare"),!1)}_allowPartial(){return s.isTruthyAttr(this.getAttribute("allow-partial"),!0)}_autoNormalize(){return s.isTruthyAttr(this.getAttribute("auto-normalize"),!0)}_step(){const t=Number(this.getAttribute("step")||5);return!Number.isFinite(t)||t<1?5:Math.min(60,Math.trunc(t))}_translations(){return X.resolveDateTimeTranslations(this.getAttribute("locale"),this.getAttribute("translations"))}_syncOpenAttribute(t){this._syncing=!0;try{t?this.hasAttribute("open")||this.setAttribute("open",""):this.hasAttribute("open")&&this.removeAttribute("open")}finally{this._syncing=!1}}_syncValueAttribute(t){const e=J(t);this._syncing=!0;try{e?this.getAttribute("value")!==e&&this.setAttribute("value",e):this.hasAttribute("value")&&this.removeAttribute("value")}finally{this._syncing=!1}}_emitInput(t){const e=this._valueFromPending(),i={mode:"datetimerange",start:e.start,end:e.end,value:e.start&&e.end?{start:e.start,end:e.end}:null,source:t};this.dispatchEvent(new CustomEvent("input",{detail:i,bubbles:!0,composed:!0}))}_emitChange(t){const e={mode:"datetimerange",start:this._value.start,end:this._value.end,value:this._value.start&&this._value.end?{start:this._value.start,end:this._value.end}:null,source:t};this.dispatchEvent(new CustomEvent("change",{detail:e,bubbles:!0,composed:!0}))}_emitInvalid(t,e){this.dispatchEvent(new CustomEvent("invalid",{detail:{raw:t,reason:e},bubbles:!0,composed:!0}))}_valueFromPending(){return{start:s.combineDateTime(this._pending.startDate,this._pending.startTime),end:s.combineDateTime(this._pending.endDate,this._pending.endTime)}}_formatDateTimeDisplay(t){const e=s.splitDateTime(t);return e?`${s.formatDateForDisplay(e.date,this._locale(),"locale",null)} ${e.time}`:t||""}_formatDisplay(){const t=this._value.start,e=this._value.end;return!t&&!e?"":t&&e?`${this._formatDateTimeDisplay(t)} — ${this._formatDateTimeDisplay(e)}`:this._formatDateTimeDisplay(t||e)}_normalizePendingState(t){let e=s.combineDateTime(t.startDate,t.startTime),i=s.combineDateTime(t.endDate,t.endTime);if(e&&i&&s.compareDateTimes(e,i)>0&&this._autoNormalize()){const h=e;e=i,i=h}const r=s.parseConstraintDateTime(this.getAttribute("min")),l=s.parseConstraintDateTime(this.getAttribute("max"));let a=r?`${r.date}T${r.time}`:null,n=l?`${l.date}T${l.time}`:null;if(a&&n&&s.compareDateTimes(a,n)>0){const h=a;a=n,n=h}e&&a&&s.compareDateTimes(e,a)<0&&(e=a),e&&n&&s.compareDateTimes(e,n)>0&&(e=n),i&&a&&s.compareDateTimes(i,a)<0&&(i=a),i&&n&&s.compareDateTimes(i,n)>0&&(i=n);const o=s.splitDateTime(e||""),c=s.splitDateTime(i||"");return{startDate:o?.date||null,endDate:c?.date||null,startTime:o?.time?.slice(0,5)||t.startTime,endTime:c?.time?.slice(0,5)||t.endTime}}_commit(t,e){if(this._isInteractionBlocked()||this._isReadonly())return;const i=this._normalizePendingState(t),r={start:s.combineDateTime(i.startDate,i.startTime),end:s.combineDateTime(i.endDate,i.endTime)};if(!this._allowPartial()&&(!r.start||!r.end)){this._inlineError=this.getAttribute("error")||this._translations().rangeIncomplete,this._emitInvalid(JSON.stringify(r),"partial"),this._updateHostState();return}if(r.start&&r.end&&s.compareDateTimes(r.start,r.end)>0){this._inlineError=this.getAttribute("error")||this._translations().invalidRangeOrder,this._emitInvalid(JSON.stringify(r),"order"),this._updateHostState();return}this._value=r,this._pending=i,this._display=this._formatDisplay(),this._inlineError="",this._syncValueAttribute(r),this._emitInput(e),this._emitChange(e),this._updateHostState()}_setOpen(t,e){t&&this._isInteractionBlocked()||this._open!==t&&(this._open=t,this._syncOpenAttribute(t),this._syncOverlay(e),this._updateHostState(),this.dispatchEvent(new CustomEvent(t?"open":"close",{bubbles:!0,composed:!0})))}_syncOverlay(t){if(this._isInlineMode()){this._destroyOverlay();return}if(this._open){this._ensureOverlay(),this._syncOverlayState();return}this._destroyOverlay();const e=this._restoreFocusEl;if(this._restoreFocusEl=null,e&&e.isConnected)try{e.focus()}catch{}}_ensureOverlay(){if(this._overlay||typeof document>"u")return;const t=document.createElement("div");t.className="ui-date-range-time-picker-overlay-host",t.style.position="fixed",t.style.left="0",t.style.top="0",t.style.pointerEvents="none",t.addEventListener("click",this._onOverlayClickBound),t.addEventListener("change",this._onOverlayChangeBound),t.addEventListener("change",this._onOverlayCalendarBound),document.body.appendChild(t),this._overlay=t,this._syncOverlayHostZIndex(),document.addEventListener("pointerdown",this._onDocumentPointerDownBound,!0),document.addEventListener("keydown",this._onDocumentKeyDownBound),window.addEventListener("resize",this._onWindowResizeBound),window.addEventListener("scroll",this._onWindowScrollBound,{passive:!0,capture:!0}),this._isMobileSheet()&&(this._releaseScrollLock=s.lockBodyScroll())}_syncOverlayHostZIndex(){if(!this._overlay||typeof window>"u")return;const t=window.getComputedStyle(this).getPropertyValue("--ui-drtp-z").trim();this._overlay.style.zIndex=t||"1600"}_destroyOverlay(){this._dismissableLayer?.destroy(),this._dismissableLayer=null,this._overlay&&(this._schedulePosition.cancel(),document.removeEventListener("pointerdown",this._onDocumentPointerDownBound,!0),document.removeEventListener("keydown",this._onDocumentKeyDownBound),window.removeEventListener("resize",this._onWindowResizeBound),window.removeEventListener("scroll",this._onWindowScrollBound,!0),this._overlay.removeEventListener("click",this._onOverlayClickBound),this._overlay.removeEventListener("change",this._onOverlayChangeBound),this._overlay.removeEventListener("change",this._onOverlayCalendarBound),this._overlay.parentElement&&this._overlay.parentElement.removeChild(this._overlay),this._overlay=null,this._overlayKey=null,this._releaseScrollLock&&(this._releaseScrollLock(),this._releaseScrollLock=null))}_syncDismissableLayer(){if(this._dismissableLayer?.destroy(),this._dismissableLayer=null,!this._open||!this._overlay)return;const t=this._overlay.querySelector(".panel, .sheet"),e=this.root.querySelector(".field");t&&(this._dismissableLayer=Q.createDismissableLayer({node:t,trigger:e,closeOnEscape:!0,closeOnPointerOutside:!0,closeOnFocusOutside:!1,onBeforeDismiss:i=>i==="escape-key"?(this._setOpen(!1,"escape"),!1):(i==="outside-pointer"&&this._setOpen(!1,"outside"),!1)}))}_positionOverlay(){if(!this._overlay||!this._open||this._isMobileSheet())return;const t=this.root.querySelector(".field"),e=this._overlay.querySelector(".panel");if(!t||!e)return;const i=e.getAttribute("data-placement"),r=s.computePopoverPosition(t.getBoundingClientRect(),e.getBoundingClientRect(),8,8,i==="top"?"top":i==="bottom"?"bottom":null);e.style.position="absolute",e.style.top=`${Math.round(r.top)}px`,e.style.left=`${Math.round(r.left)}px`,e.setAttribute("data-placement",r.placement)}_timeOptions(t){const e=s.parseTimeInput(t)||{hours:0,minutes:0},i=this._step(),r=Array.from({length:24},(a,n)=>`<option value="${n}" ${n===e.hours?"selected":""}>${w(n)}</option>`).join(""),l=Array.from({length:Math.ceil(60/i)},(a,n)=>{const o=Math.min(59,n*i);return`<option value="${o}" ${o===e.minutes?"selected":""}>${w(o)}</option>`}).join("");return{hours:r,minutes:l}}_renderSurfaceInner(t,e=!1){const i=this._translations(),r=this._timeOptions(this._pending.startTime),l=this._timeOptions(this._pending.endTime),a=(this.getAttribute("label")||"").trim(),n=p(a),o=p(a||i.selectDateRange),c=this._valueFromPending(),h=c.start&&c.end?`${this._formatDateTimeDisplay(c.start)} — ${this._formatDateTimeDisplay(c.end)}`:i.selectDateRange,_=p(`${i.startTime} ${i.hour}`),D=p(`${i.startTime} ${i.minute}`),v=p(`${i.endTime} ${i.hour}`),d=p(`${i.endTime} ${i.minute}`),f=`
|
|
528
|
+
`;function W(m){if(!m)return{start:null,end:null};try{const t=JSON.parse(m),e=typeof t?.start=="string"?t.start:null,i=typeof t?.end=="string"?t.end:null;return{start:e,end:i}}catch{return{start:null,end:null}}}function J(m){return!m.start&&!m.end?null:JSON.stringify({...m.start?{start:m.start}:{},...m.end?{end:m.end}:{}})}function w(m){return String(m).padStart(2,"0")}function p(m){return m.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function x(m){const t=new Date,e=`${w(t.getHours())}:${w(t.getMinutes())}`,i=`${w((t.getHours()+1)%24)}:${w(t.getMinutes())}`,r=s.splitDateTime(m.start||null),l=s.splitDateTime(m.end||null);return{startDate:r?.date||null,endDate:l?.date||null,startTime:r?.time?.slice(0,5)||e,endTime:l?.time?.slice(0,5)||i}}class Y extends G.ElementBase{constructor(){super(...arguments),this._value={start:null,end:null},this._pending=x({start:null,end:null}),this._display="",this._inlineError="",this._open=!1,this._syncing=!1,this._overlay=null,this._dismissableLayer=null,this._releaseScrollLock=null,this._isInitialized=!1,this._hasView=!1,this._restoreFocusEl=null,this._overlayKey=null,this._uid=`ui-drtp-${++tt}`,this._inputId=`${this._uid}-input`,this._labelId=`${this._uid}-label`,this._hintId=`${this._uid}-hint`,this._errorId=`${this._uid}-error`,this._panelId=`${this._uid}-panel`,this._schedulePosition=s.rafThrottle(()=>this._positionOverlay()),this._onRootClickBound=t=>this._onRootClick(t),this._onRootChangeBound=t=>this._onRootChange(t),this._onRootKeyDownBound=t=>this._onRootKeyDown(t),this._onOverlayClickBound=t=>this._onOverlayClick(t),this._onOverlayChangeBound=t=>this._onOverlayChange(t),this._onOverlayCalendarBound=t=>this._onOverlayCalendar(t),this._onDocumentPointerDownBound=t=>this._onDocumentPointerDown(t),this._onDocumentKeyDownBound=t=>this._onDocumentKeyDown(t),this._onWindowResizeBound=()=>this._schedulePosition.run(),this._onWindowScrollBound=t=>{s.eventOriginatesWithin(t,[this._overlay])||this._schedulePosition.run()}}static get observedAttributes(){return["aria-label","aria-description","aria-describedby","open","default-open","value","default-value","min","max","locale","translations","week-start","size","shape","bare","variant","state","step","auto-normalize","allow-partial","disabled","readonly","required","name","close-on-select","clearable","mode","label","hint","error","show-footer"]}connectedCallback(){if(super.connectedCallback(),this.root.addEventListener("click",this._onRootClickBound),this.root.addEventListener("change",this._onRootChangeBound),this.root.addEventListener("keydown",this._onRootKeyDownBound),!this._isInitialized){const t=W(this.getAttribute("value")||this.getAttribute("default-value"));this._value=t,this._pending=x(t),this._display=this._formatDisplay(),this._open=this.hasAttribute("open")||s.isTruthyAttr(this.getAttribute("default-open")),this._isInitialized=!0}this._open&&!this._isInlineMode()&&this._ensureOverlay()}disconnectedCallback(){this.root.removeEventListener("click",this._onRootClickBound),this.root.removeEventListener("change",this._onRootChangeBound),this.root.removeEventListener("keydown",this._onRootKeyDownBound),this._destroyOverlay(),super.disconnectedCallback()}attributeChangedCallback(t,e,i){if(e!==i&&(t==="value"&&!this._syncing&&(this._value=W(i),this._pending=x(this._value),this._display=this._formatDisplay(),this._inlineError=""),t==="open"&&!this._syncing&&(this._open=this.hasAttribute("open"),this._syncOverlay("attribute")),t==="mode"&&this._syncOverlay("attribute"),t==="disabled"&&this.hasAttribute("disabled")&&this._setOpen(!1,"outside"),t==="state"&&this._state()==="loading"&&this._setOpen(!1,"outside"),!!this.isConnected)){if(!this._hasView){this.requestRender();return}this._updateHostState()}}_isInlineMode(){return(this.getAttribute("mode")||"popover")==="inline"}_isMobileSheet(){return s.shouldUseMobileSheet(this.getAttribute("mode"))}_isDisabled(){return this.hasAttribute("disabled")}_state(){const t=(this.getAttribute("state")||"").trim().toLowerCase();return t==="loading"||t==="error"||t==="success"?t:"idle"}_isInteractionBlocked(){return this._isDisabled()||this._state()==="loading"}_locale(){return s.normalizeLocale(this.getAttribute("locale"))}_isReadonly(){return this.hasAttribute("readonly")}_clearable(){return s.isTruthyAttr(this.getAttribute("clearable"),!0)}_showFooter(){return s.isTruthyAttr(this.getAttribute("show-footer"),!0)}_shouldAutoCommit(){return s.isTruthyAttr(this.getAttribute("close-on-select"),!1)||!this._showFooter()}_isBare(){return s.isTruthyAttr(this.getAttribute("bare"),!1)}_allowPartial(){return s.isTruthyAttr(this.getAttribute("allow-partial"),!0)}_autoNormalize(){return s.isTruthyAttr(this.getAttribute("auto-normalize"),!0)}_step(){const t=Number(this.getAttribute("step")||5);return!Number.isFinite(t)||t<1?5:Math.min(60,Math.trunc(t))}_translations(){return X.resolveDateTimeTranslations(this.getAttribute("locale"),this.getAttribute("translations"))}_syncOpenAttribute(t){this._syncing=!0;try{t?this.hasAttribute("open")||this.setAttribute("open",""):this.hasAttribute("open")&&this.removeAttribute("open")}finally{this._syncing=!1}}_syncValueAttribute(t){const e=J(t);this._syncing=!0;try{e?this.getAttribute("value")!==e&&this.setAttribute("value",e):this.hasAttribute("value")&&this.removeAttribute("value")}finally{this._syncing=!1}}_emitInput(t){const e=this._valueFromPending(),i={mode:"datetimerange",start:e.start,end:e.end,value:e.start&&e.end?{start:e.start,end:e.end}:null,source:t};this.dispatchEvent(new CustomEvent("input",{detail:i,bubbles:!0,composed:!0}))}_emitChange(t){const e={mode:"datetimerange",start:this._value.start,end:this._value.end,value:this._value.start&&this._value.end?{start:this._value.start,end:this._value.end}:null,source:t};this.dispatchEvent(new CustomEvent("change",{detail:e,bubbles:!0,composed:!0}))}_emitInvalid(t,e){this.dispatchEvent(new CustomEvent("invalid",{detail:{raw:t,reason:e},bubbles:!0,composed:!0}))}_valueFromPending(){return{start:s.combineDateTime(this._pending.startDate,this._pending.startTime),end:s.combineDateTime(this._pending.endDate,this._pending.endTime)}}_formatDateTimeDisplay(t){const e=s.splitDateTime(t);return e?`${s.formatDateForDisplay(e.date,this._locale(),"locale",null)} ${e.time}`:t||""}_formatDisplay(){const t=this._value.start,e=this._value.end;return!t&&!e?"":t&&e?`${this._formatDateTimeDisplay(t)} — ${this._formatDateTimeDisplay(e)}`:this._formatDateTimeDisplay(t||e)}_normalizePendingState(t){let e=s.combineDateTime(t.startDate,t.startTime),i=s.combineDateTime(t.endDate,t.endTime);if(e&&i&&s.compareDateTimes(e,i)>0&&this._autoNormalize()){const h=e;e=i,i=h}const r=s.parseConstraintDateTime(this.getAttribute("min")),l=s.parseConstraintDateTime(this.getAttribute("max"));let a=r?`${r.date}T${r.time}`:null,n=l?`${l.date}T${l.time}`:null;if(a&&n&&s.compareDateTimes(a,n)>0){const h=a;a=n,n=h}e&&a&&s.compareDateTimes(e,a)<0&&(e=a),e&&n&&s.compareDateTimes(e,n)>0&&(e=n),i&&a&&s.compareDateTimes(i,a)<0&&(i=a),i&&n&&s.compareDateTimes(i,n)>0&&(i=n);const o=s.splitDateTime(e||""),c=s.splitDateTime(i||"");return{startDate:o?.date||null,endDate:c?.date||null,startTime:o?.time?.slice(0,5)||t.startTime,endTime:c?.time?.slice(0,5)||t.endTime}}_commit(t,e){if(this._isInteractionBlocked()||this._isReadonly())return;const i=this._normalizePendingState(t),r={start:s.combineDateTime(i.startDate,i.startTime),end:s.combineDateTime(i.endDate,i.endTime)};if(!this._allowPartial()&&(!r.start||!r.end)){this._inlineError=this.getAttribute("error")||this._translations().rangeIncomplete,this._emitInvalid(JSON.stringify(r),"partial"),this._updateHostState();return}if(r.start&&r.end&&s.compareDateTimes(r.start,r.end)>0){this._inlineError=this.getAttribute("error")||this._translations().invalidRangeOrder,this._emitInvalid(JSON.stringify(r),"order"),this._updateHostState();return}this._value=r,this._pending=i,this._display=this._formatDisplay(),this._inlineError="",this._syncValueAttribute(r),this._emitInput(e),this._emitChange(e),this._updateHostState()}_setOpen(t,e){t&&this._isInteractionBlocked()||this._open!==t&&(this._open=t,this._syncOpenAttribute(t),this._syncOverlay(e),this._updateHostState(),this.dispatchEvent(new CustomEvent(t?"open":"close",{bubbles:!0,composed:!0})))}_syncOverlay(t){if(this._isInlineMode()){this._destroyOverlay();return}if(this._open){this._ensureOverlay(),this._syncOverlayState();return}this._destroyOverlay();const e=this._restoreFocusEl;if(this._restoreFocusEl=null,e&&e.isConnected)try{e.focus()}catch{}}_ensureOverlay(){if(this._overlay||typeof document>"u")return;const t=document.createElement("div");t.className="ui-date-range-time-picker-overlay-host",t.style.position="fixed",t.style.left="0",t.style.top="0",t.style.pointerEvents="none",t.addEventListener("click",this._onOverlayClickBound),t.addEventListener("change",this._onOverlayChangeBound),t.addEventListener("change",this._onOverlayCalendarBound),document.body.appendChild(t),this._overlay=t,this._syncOverlayHostZIndex(),document.addEventListener("pointerdown",this._onDocumentPointerDownBound,!0),document.addEventListener("keydown",this._onDocumentKeyDownBound),window.addEventListener("resize",this._onWindowResizeBound),window.addEventListener("scroll",this._onWindowScrollBound,{passive:!0,capture:!0}),this._isMobileSheet()&&(this._releaseScrollLock=s.lockBodyScroll())}_syncOverlayHostZIndex(){if(!this._overlay||typeof window>"u")return;const t=window.getComputedStyle(this).getPropertyValue("--ui-drtp-z").trim();this._overlay.style.zIndex=t||"1600"}_destroyOverlay(){this._dismissableLayer?.destroy(),this._dismissableLayer=null,this._overlay&&(this._schedulePosition.cancel(),document.removeEventListener("pointerdown",this._onDocumentPointerDownBound,!0),document.removeEventListener("keydown",this._onDocumentKeyDownBound),window.removeEventListener("resize",this._onWindowResizeBound),window.removeEventListener("scroll",this._onWindowScrollBound,!0),this._overlay.removeEventListener("click",this._onOverlayClickBound),this._overlay.removeEventListener("change",this._onOverlayChangeBound),this._overlay.removeEventListener("change",this._onOverlayCalendarBound),this._overlay.parentElement&&this._overlay.parentElement.removeChild(this._overlay),this._overlay=null,this._overlayKey=null,this._releaseScrollLock&&(this._releaseScrollLock(),this._releaseScrollLock=null))}_syncDismissableLayer(){if(this._dismissableLayer?.destroy(),this._dismissableLayer=null,!this._open||!this._overlay)return;const t=this._overlay.querySelector(".panel, .sheet"),e=this.root.querySelector(".field");t&&(this._dismissableLayer=Q.createDismissableLayer({node:t,trigger:e,closeOnEscape:!0,closeOnPointerOutside:!0,closeOnFocusOutside:!1,onBeforeDismiss:i=>i==="escape-key"?(this._setOpen(!1,"escape"),!1):(i==="outside-pointer"&&this._setOpen(!1,"outside"),!1)}))}_positionOverlay(){if(!this._overlay||!this._open||this._isMobileSheet())return;const t=this.root.querySelector(".field"),e=this._overlay.querySelector(".panel");if(!t||!e)return;const i=e.getAttribute("data-placement"),r=s.computePopoverPosition(t.getBoundingClientRect(),e.getBoundingClientRect(),8,8,i==="top"?"top":i==="bottom"?"bottom":null);e.style.position="absolute",e.style.top=`${Math.round(r.top)}px`,e.style.left=`${Math.round(r.left)}px`,e.setAttribute("data-placement",r.placement)}_timeOptions(t){const e=s.parseTimeInput(t)||{hours:0,minutes:0},i=this._step(),r=Array.from({length:24},(a,n)=>`<option value="${n}" ${n===e.hours?"selected":""}>${w(n)}</option>`).join(""),l=Array.from({length:Math.ceil(60/i)},(a,n)=>{const o=Math.min(59,n*i);return`<option value="${o}" ${o===e.minutes?"selected":""}>${w(o)}</option>`}).join("");return{hours:r,minutes:l}}_renderSurfaceInner(t,e=!1){const i=this._translations(),r=this._timeOptions(this._pending.startTime),l=this._timeOptions(this._pending.endTime),a=(this.getAttribute("label")||"").trim(),n=p(a),o=p(a||i.selectDateRange),c=this._valueFromPending(),h=c.start&&c.end?`${this._formatDateTimeDisplay(c.start)} — ${this._formatDateTimeDisplay(c.end)}`:i.selectDateRange,_=p(`${i.startTime} ${i.hour}`),D=p(`${i.startTime} ${i.minute}`),v=p(`${i.endTime} ${i.hour}`),d=p(`${i.endTime} ${i.minute}`),b=`
|
|
522
529
|
<header class="head">
|
|
523
530
|
<div>
|
|
524
531
|
<p class="head-title" ${a?"":"hidden"}>${n}</p>
|
|
@@ -560,11 +567,11 @@
|
|
|
560
567
|
${e?"":`<button type="button" class="action" data-action="cancel">${p(i.cancel)}</button>`}
|
|
561
568
|
<button type="button" class="action" data-action="apply" data-tone="primary">${p(i.apply)}</button>
|
|
562
569
|
</footer>
|
|
563
|
-
`;return e?
|
|
570
|
+
`;return e?b:`
|
|
564
571
|
<style>${nt}</style>
|
|
565
572
|
${t?'<div class="sheet-backdrop" data-action="backdrop"></div>':""}
|
|
566
|
-
<section class="${t?"sheet":"panel"}" id="${this._panelId}" role="dialog" aria-modal="${t?"true":"false"}" aria-label="${o}" part="${t?"sheet":"popover"}">${
|
|
567
|
-
`}_syncCalendar(t){const e=(c,h)=>{if(h==null||h===""){t.hasAttribute(c)&&t.removeAttribute(c);return}t.getAttribute(c)!==h&&t.setAttribute(c,h)},i=(c,h)=>{h?e(c,""):e(c,null)};e("selection","range"),e("value",JSON.stringify({...this._pending.startDate?{start:this._pending.startDate}:{},...this._pending.endDate?{end:this._pending.endDate}:{}}));const r=s.parseConstraintDateTime(this.getAttribute("min")),l=s.parseConstraintDateTime(this.getAttribute("max"));e("min",r?.date||null),e("max",l?.date||null),e("locale",this.getAttribute("locale")),e("translations",this.getAttribute("translations")),e("week-start",this.getAttribute("week-start"));const n=this.getAttribute("size")||"sm",o=t.classList.contains("drtp-calendar-inline");e("size",n==="lg"?"md":"sm"),e("variant",this.getAttribute("variant")),i("readonly",this._isReadonly()),i("disabled",this._isInteractionBlocked()),i("bare",this._isBare()),e("tabindex","-1"),n==="lg"?(t.style.setProperty("--ui-calendar-day-height","1.95em"),t.style.setProperty("--ui-calendar-day-padding-block","0.2em"),t.style.setProperty("--ui-calendar-day-padding-inline","0.26em"),t.style.setProperty("--ui-calendar-gap","0.42em"),t.style.setProperty("--ui-calendar-day-font-size","0.78em"),t.style.setProperty("--ui-calendar-weekday-font-size","0.7em"),t.style.setProperty("--ui-calendar-title-font-size","0.88em")):(t.style.setProperty("--ui-calendar-day-height","2.4em"),t.style.setProperty("--ui-calendar-day-padding-block","0.14em"),t.style.setProperty("--ui-calendar-day-padding-inline","0.22em"),t.style.setProperty("--ui-calendar-gap","0.34em"),t.style.setProperty("--ui-calendar-day-font-size","0.72em"),t.style.setProperty("--ui-calendar-weekday-font-size","0.64em"),t.style.setProperty("--ui-calendar-title-font-size","0.8em")),o?(t.style.setProperty("--ui-calendar-frame-padding","0.32em"),t.style.setProperty("--ui-calendar-week-gap","0.18em"),t.style.setProperty("--ui-calendar-control-height","1.72em"),t.style.setProperty("--ui-calendar-gap","0.24em")):(t.style.removeProperty("--ui-calendar-frame-padding"),t.style.removeProperty("--ui-calendar-week-gap"),t.style.removeProperty("--ui-calendar-control-height")),e("aria-label",this.getAttribute("label")||this._translations().selectDateRange)}_overlaySignature(t){return[t?"sheet":"popover",this._step(),this.getAttribute("locale")||"",this.getAttribute("label")||"",this.getAttribute("translations")||""].join(":")}_ensureOverlayContent(t){if(!this._overlay)return;const e=this._overlaySignature(t);this._overlayKey===e&&this._overlay.querySelector(".drtp-calendar")||(this._overlayKey=e,this._overlay.innerHTML=t?`<div class="sheet-wrap">${this._renderSurfaceInner(!0)}</div>`:`<div class="overlay">${this._renderSurfaceInner(!1)}</div>`)}_setClosestOptionValue(t,e){const i=Array.from(t.options).map(a=>Number(a.value)).filter(a=>Number.isFinite(a));if(!i.length)return;let r=i[0],l=Math.abs(r-e);for(let a=1;a<i.length;a+=1){const n=i[a],o=Math.abs(n-e);o<l&&(r=n,l=o)}t.value=String(r)}_syncOverlayState(){if(!this._overlay)return;this._syncOverlayHostZIndex();const t=this._isMobileSheet();this._ensureOverlayContent(t),this._syncDismissableLayer();const e=this._translations(),i=this._overlay.querySelector(".panel, .sheet"),r=this._overlay.querySelector(".presets"),l=this._overlay.querySelector(".footer");i&&(i.dataset.bare=this._isBare()?"true":"false");const a=this._showFooter();r&&(r.hidden=!a),l&&(l.hidden=!a);const n=this._overlay.querySelector(".head-title");if(n){const b=(this.getAttribute("label")||"").trim();n.textContent=b,n.hidden=!b}const o=this._overlay.querySelector(".head-meta"),c=this._valueFromPending();o&&(o.textContent=c.start&&c.end?`${this._formatDateTimeDisplay(c.start)} — ${this._formatDateTimeDisplay(c.end)}`:e.selectDateRange);const h=this._overlay.querySelector(".drtp-calendar");h&&this._syncCalendar(h);const _=s.parseTimeInput(this._pending.startTime)||{hours:0,minutes:0},D=s.parseTimeInput(this._pending.endTime)||{hours:0,minutes:0},v=this._overlay.querySelector('select[data-time="start"][data-segment="hours"]'),d=this._overlay.querySelector('select[data-time="start"][data-segment="minutes"]'),f=this._overlay.querySelector('select[data-time="end"][data-segment="hours"]'),g=this._overlay.querySelector('select[data-time="end"][data-segment="minutes"]');v&&this._setClosestOptionValue(v,_.hours),d&&this._setClosestOptionValue(d,_.minutes),f&&this._setClosestOptionValue(f,D.hours),g&&this._setClosestOptionValue(g,D.minutes);const y=this._isInteractionBlocked()||this._isReadonly();[v,d,f,g].forEach(b=>{b&&(b.disabled=y)}),this._overlay.querySelectorAll(".action, .preset").forEach(b=>{b.disabled=y}),t||this._schedulePosition.run()}_renderOverlay(){this._syncOverlayState()}_applyTimeFromOverlay(t){const e=t.getAttribute("data-time"),i=this._overlay?.querySelector(`select[data-time="${e}"][data-segment="hours"]`),r=this._overlay?.querySelector(`select[data-time="${e}"][data-segment="minutes"]`);if(!e||!i||!r)return;const l=Number(i.value),a=Number(r.value);if(!Number.isFinite(l)||!Number.isFinite(a))return;const n=`${w(l)}:${w(a)}`;e==="start"&&(this._pending.startTime=n),e==="end"&&(this._pending.endTime=n),this._pending=this._normalizePendingState(this._pending),this._emitInput("time")}_todayIso(){const t=new Date,e=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0");return`${t.getFullYear()}-${e}-${i}`}_applyPreset(t){const e=this._todayIso();if(t==="preset-today"){this._pending.startDate=e,this._pending.endDate=e,this._pending=this._normalizePendingState(this._pending),this._emitInput("preset-today");return}if(t==="preset-last7"){const r=s.computeLastDaysRange(e,7);this._pending.startDate=r.start,this._pending.endDate=r.end,this._pending=this._normalizePendingState(this._pending),this._emitInput("preset-last7");return}const i=s.computeMonthRange(e);this._pending.startDate=i.start,this._pending.endDate=i.end,this._pending=this._normalizePendingState(this._pending),this._emitInput("preset-month")}_onRootClick(t){const e=t.target;if(!e)return;const i=e.closest("[data-action]")?.getAttribute("data-action");if(i&&!this._isInteractionBlocked()&&!(this._isReadonly()&&i!=="toggle")){if(i==="toggle"){this._restoreFocusEl=e,this._setOpen(!this._open,"toggle");return}if(i==="clear"){this._isInlineMode()?(this._pending=x({start:null,end:null}),this._emitInput("clear"),this._updateHostState()):(this._pending=x({start:null,end:null}),this._commit(this._pending,"clear"));return}if(this._isInlineMode()&&(i==="preset-today"||i==="preset-last7"||i==="preset-month")){this._applyPreset(i),this._updateHostState();return}if(this._isInlineMode()&&i==="cancel"){this._pending=x(this._value),this._updateHostState();return}this._isInlineMode()&&i==="apply"&&this._commit(this._pending,"apply")}}_onRootChange(t){if(!this._isInlineMode())return;const e=t.target;if(e){if(e.tagName.toLowerCase()==="ui-calendar"){this._onOverlayCalendar(t);return}if(e instanceof HTMLSelectElement&&e.closest(".inline-panel")){if(!e.matches("select[data-time][data-segment]")||this._isInteractionBlocked()||this._isReadonly())return;if(this._applyTimeFromOverlay(e),this._shouldAutoCommit()){const i=this._valueFromPending();if(i.start&&i.end){this._commit(this._pending,"time");return}}this._updateHostState()}}}_onRootKeyDown(t){const e=t;if(!this._isInteractionBlocked()){if(e.key==="Escape"&&this._open&&!this._isInlineMode()){e.preventDefault(),this._setOpen(!1,"escape");return}e.key==="ArrowDown"&&!this._open&&!this._isInlineMode()&&(e.preventDefault(),this._setOpen(!0,"keyboard"))}}_onOverlayClick(t){const e=t.target;if(!e)return;const i=e.closest("[data-action]")?.getAttribute("data-action");if(i&&!(this._isInteractionBlocked()||this._isReadonly())){if(i==="backdrop"){this._setOpen(!1,"outside");return}if(i==="cancel"){this._pending=x(this._value),this._setOpen(!1,"cancel");return}if(i==="clear"){this._pending=x({start:null,end:null}),this._emitInput("clear"),this._renderOverlay();return}if(i==="preset-today"||i==="preset-last7"||i==="preset-month"){this._applyPreset(i),this._renderOverlay();return}i==="apply"&&(this._commit(this._pending,"apply"),this._setOpen(!1,"apply"))}}_onOverlayChange(t){const e=t.target;if(e instanceof HTMLSelectElement&&e.matches("select[data-time][data-segment]")&&!(this._isInteractionBlocked()||this._isReadonly())&&(this._applyTimeFromOverlay(e),this._shouldAutoCommit())){const i=this._valueFromPending();i.start&&i.end&&(this._commit(this._pending,"time"),this._setOpen(!1,"time"))}}_onOverlayCalendar(t){if(this._isInteractionBlocked()||this._isReadonly())return;const e=t.target;if(!e||e.tagName.toLowerCase()!=="ui-calendar")return;const i=t.detail;if(!(!i||i.mode!=="range")){if(this._pending.startDate=i.start||null,this._pending.endDate=i.end||null,this._pending=this._normalizePendingState(this._pending),this._emitInput("calendar"),this._shouldAutoCommit()&&this._pending.startDate&&this._pending.endDate){this._commit(this._pending,"calendar"),this._setOpen(!1,"calendar");return}this._isInlineMode()?this._updateHostState():this._renderOverlay()}}_onDocumentPointerDown(t){if(!this._open||!this._overlay)return;const e=t.composedPath();e.includes(this)||e.includes(this._overlay)||this._setOpen(!1,"outside")}_onDocumentKeyDown(t){this._open&&t.key==="Escape"&&(t.preventDefault(),this._setOpen(!1,"escape"))}_updateHostState(){if(!this._hasView)return;const t=this.getAttribute("label")||"",e=this.getAttribute("hint")||"",i=this.getAttribute("error")||"",r=this._inlineError||i,l=!!(this._value.start||this._value.end),a=this.getAttribute("name")||"",n=this._isInlineMode(),o=this._translations(),c=r?"error":this._state(),h=this._formatDisplay();this._display=h,this._state()==="loading"?this.setAttribute("aria-busy","true"):this.removeAttribute("aria-busy");const _=this.root.querySelector(".label"),D=this.root.querySelector(".label-text"),v=this.root.querySelector(".required"),d=this.root.querySelector(".input"),f=this.root.querySelector('.btn[data-action="clear"]'),g=this.root.querySelector('.btn[data-action="toggle"]'),y=this.root.querySelector(".hint"),b=this.root.querySelector(".error"),C=this.root.querySelector(".hidden-input");if(_&&(_.hidden=!t,_.id=this._labelId,_.setAttribute("for",this._inputId)),D&&(D.textContent=t),v&&(v.hidden=!this.hasAttribute("required")),d&&(d.value!==h&&(d.value=h),d.id=this._inputId,d.placeholder=o.dateRangeTimePlaceholder,d.readOnly=!0,d.disabled=this._isInteractionBlocked(),d.required=this.hasAttribute("required"),d.autocomplete="off",d.setAttribute("role","combobox"),d.setAttribute("aria-haspopup","dialog"),d.setAttribute("aria-expanded",n?"false":String(this._open)),d.setAttribute("aria-controls",this._panelId),d.setAttribute("aria-invalid",r?"true":"false"),j.syncControlName(d,this,t?this._labelId:null,d.placeholder)),f&&(f.hidden=!(this._clearable()&&l),f.setAttribute("aria-label",o.clearDateRange),f.disabled=this._isInteractionBlocked()),g&&(g.hidden=n,g.setAttribute("aria-label",o.toggleCalendar),g.setAttribute("aria-expanded",n?"false":String(this._open)),g.setAttribute("aria-controls",this._panelId),g.disabled=this._isInteractionBlocked()),y&&(y.id=this._hintId,y.hidden=!e,y.textContent=e),b&&(b.id=this._errorId,b.hidden=!r,b.textContent=r),d){const S=[];e&&y&&!y.hidden&&S.push(this._hintId),r&&S.push(this._errorId),j.syncControlDescription(d,this,this._uid,S)}C&&(C.disabled=!a,C.name=a,C.value=J(this._value)||"");const I=this.root.querySelector(".field");I&&(I.dataset.open=this._open&&!n?"true":"false",I.dataset.invalid=r?"true":"false",I.dataset.state=c);const u=this.root.querySelector(".inline-panel");if(u){u.hidden=!n,u.id=this._panelId,u.dataset.bare=this._isBare()?"true":"false",u.setAttribute("role","dialog"),u.setAttribute("aria-modal","false"),u.setAttribute("aria-label",t||o.selectDateRange);const S=u.querySelector(".panel-title");S&&(S.textContent=t,S.hidden=!t);const $=u.querySelector(".head-title");$&&($.textContent=t,$.hidden=!t);const R=u.querySelector(".head-meta"),A=this._valueFromPending();R&&(R.textContent=A.start&&A.end?`${this._formatDateTimeDisplay(A.start)} — ${this._formatDateTimeDisplay(A.end)}`:o.selectDateRange);const q=u.querySelector(".drtp-calendar-inline");q&&this._syncCalendar(q);const O=u.querySelector('select[data-time="start"][data-segment="hours"]'),z=u.querySelector('select[data-time="start"][data-segment="minutes"]'),P=u.querySelector('select[data-time="end"][data-segment="hours"]'),B=u.querySelector('select[data-time="end"][data-segment="minutes"]'),L=s.parseTimeInput(this._pending.startTime)||{hours:0,minutes:0},E=s.parseTimeInput(this._pending.endTime)||{hours:0,minutes:0};O&&this._setClosestOptionValue(O,L.hours),z&&this._setClosestOptionValue(z,L.minutes),P&&this._setClosestOptionValue(P,E.hours),B&&this._setClosestOptionValue(B,E.minutes),[O,z,P,B].forEach(k=>{k&&(k.disabled=this._isInteractionBlocked()||this._isReadonly())});const M=u.querySelector('[data-action="preset-today"]');M&&(M.textContent=o.today);const H=u.querySelector('[data-action="preset-last7"]');H&&(H.textContent=o.last7Days);const V=u.querySelector('[data-action="preset-month"]');V&&(V.textContent=o.thisMonth);const F=u.querySelector('[data-action="clear"]');F&&(F.textContent=o.clear);const N=u.querySelector('[data-action="apply"]');N&&(N.textContent=o.apply);const K=u.querySelector(".presets"),U=u.querySelector(".footer"),Z=this._showFooter();K&&(K.hidden=!Z),U&&(U.hidden=!Z),u.querySelectorAll(".action, .preset").forEach(k=>{k.disabled=this._isInteractionBlocked()||this._isReadonly()})}!n&&this._open&&this._syncOverlayState(),n&&this._destroyOverlay()}render(){if(!this._hasView){const t=this._translations();this.setContent(`
|
|
573
|
+
<section class="${t?"sheet":"panel"}" id="${this._panelId}" role="dialog" aria-modal="${t?"true":"false"}" aria-label="${o}" part="${t?"sheet":"popover"}">${b}</section>
|
|
574
|
+
`}_syncCalendar(t){const e=(c,h)=>{if(h==null||h===""){t.hasAttribute(c)&&t.removeAttribute(c);return}t.getAttribute(c)!==h&&t.setAttribute(c,h)},i=(c,h)=>{h?e(c,""):e(c,null)};e("selection","range"),e("value",JSON.stringify({...this._pending.startDate?{start:this._pending.startDate}:{},...this._pending.endDate?{end:this._pending.endDate}:{}}));const r=s.parseConstraintDateTime(this.getAttribute("min")),l=s.parseConstraintDateTime(this.getAttribute("max"));e("min",r?.date||null),e("max",l?.date||null),e("locale",this.getAttribute("locale")),e("translations",this.getAttribute("translations")),e("week-start",this.getAttribute("week-start"));const n=this.getAttribute("size")||"sm",o=t.classList.contains("drtp-calendar-inline");e("size",n==="lg"?"md":"sm"),e("variant",this.getAttribute("variant")),i("readonly",this._isReadonly()),i("disabled",this._isInteractionBlocked()),i("bare",this._isBare()),e("tabindex","-1"),n==="lg"?(t.style.setProperty("--ui-calendar-day-height","1.95em"),t.style.setProperty("--ui-calendar-day-padding-block","0.2em"),t.style.setProperty("--ui-calendar-day-padding-inline","0.26em"),t.style.setProperty("--ui-calendar-gap","0.42em"),t.style.setProperty("--ui-calendar-day-font-size","0.78em"),t.style.setProperty("--ui-calendar-weekday-font-size","0.7em"),t.style.setProperty("--ui-calendar-title-font-size","0.88em")):(t.style.setProperty("--ui-calendar-day-height","2.4em"),t.style.setProperty("--ui-calendar-day-padding-block","0.14em"),t.style.setProperty("--ui-calendar-day-padding-inline","0.22em"),t.style.setProperty("--ui-calendar-gap","0.34em"),t.style.setProperty("--ui-calendar-day-font-size","0.72em"),t.style.setProperty("--ui-calendar-weekday-font-size","0.64em"),t.style.setProperty("--ui-calendar-title-font-size","0.8em")),o?(t.style.setProperty("--ui-calendar-frame-padding","0.32em"),t.style.setProperty("--ui-calendar-week-gap","0.18em"),t.style.setProperty("--ui-calendar-control-height","1.72em"),t.style.setProperty("--ui-calendar-gap","0.24em")):(t.style.removeProperty("--ui-calendar-frame-padding"),t.style.removeProperty("--ui-calendar-week-gap"),t.style.removeProperty("--ui-calendar-control-height")),e("aria-label",this.getAttribute("label")||this._translations().selectDateRange)}_overlaySignature(t){return[t?"sheet":"popover",this._step(),this.getAttribute("locale")||"",this.getAttribute("label")||"",this.getAttribute("translations")||""].join(":")}_ensureOverlayContent(t){if(!this._overlay)return;const e=this._overlaySignature(t);this._overlayKey===e&&this._overlay.querySelector(".drtp-calendar")||(this._overlayKey=e,this._overlay.innerHTML=t?`<div class="sheet-wrap">${this._renderSurfaceInner(!0)}</div>`:`<div class="overlay">${this._renderSurfaceInner(!1)}</div>`)}_setClosestOptionValue(t,e){const i=Array.from(t.options).map(a=>Number(a.value)).filter(a=>Number.isFinite(a));if(!i.length)return;let r=i[0],l=Math.abs(r-e);for(let a=1;a<i.length;a+=1){const n=i[a],o=Math.abs(n-e);o<l&&(r=n,l=o)}t.value=String(r)}_syncOverlayState(){if(!this._overlay)return;this._syncOverlayHostZIndex();const t=this._isMobileSheet();this._ensureOverlayContent(t),this._syncDismissableLayer();const e=this._translations(),i=this._overlay.querySelector(".panel, .sheet"),r=this._overlay.querySelector(".presets"),l=this._overlay.querySelector(".footer");i&&(i.dataset.bare=this._isBare()?"true":"false");const a=this._showFooter();r&&(r.hidden=!a),l&&(l.hidden=!a);const n=this._overlay.querySelector(".head-title");if(n){const f=(this.getAttribute("label")||"").trim();n.textContent=f,n.hidden=!f}const o=this._overlay.querySelector(".head-meta"),c=this._valueFromPending();o&&(o.textContent=c.start&&c.end?`${this._formatDateTimeDisplay(c.start)} — ${this._formatDateTimeDisplay(c.end)}`:e.selectDateRange);const h=this._overlay.querySelector(".drtp-calendar");h&&this._syncCalendar(h);const _=s.parseTimeInput(this._pending.startTime)||{hours:0,minutes:0},D=s.parseTimeInput(this._pending.endTime)||{hours:0,minutes:0},v=this._overlay.querySelector('select[data-time="start"][data-segment="hours"]'),d=this._overlay.querySelector('select[data-time="start"][data-segment="minutes"]'),b=this._overlay.querySelector('select[data-time="end"][data-segment="hours"]'),g=this._overlay.querySelector('select[data-time="end"][data-segment="minutes"]');v&&this._setClosestOptionValue(v,_.hours),d&&this._setClosestOptionValue(d,_.minutes),b&&this._setClosestOptionValue(b,D.hours),g&&this._setClosestOptionValue(g,D.minutes);const y=this._isInteractionBlocked()||this._isReadonly();[v,d,b,g].forEach(f=>{f&&(f.disabled=y)}),this._overlay.querySelectorAll(".action, .preset").forEach(f=>{f.disabled=y}),t||this._schedulePosition.run()}_renderOverlay(){this._syncOverlayState()}_applyTimeFromOverlay(t){const e=t.getAttribute("data-time"),i=this._overlay?.querySelector(`select[data-time="${e}"][data-segment="hours"]`),r=this._overlay?.querySelector(`select[data-time="${e}"][data-segment="minutes"]`);if(!e||!i||!r)return;const l=Number(i.value),a=Number(r.value);if(!Number.isFinite(l)||!Number.isFinite(a))return;const n=`${w(l)}:${w(a)}`;e==="start"&&(this._pending.startTime=n),e==="end"&&(this._pending.endTime=n),this._pending=this._normalizePendingState(this._pending),this._emitInput("time")}_todayIso(){const t=new Date,e=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0");return`${t.getFullYear()}-${e}-${i}`}_applyPreset(t){const e=this._todayIso();if(t==="preset-today"){this._pending.startDate=e,this._pending.endDate=e,this._pending=this._normalizePendingState(this._pending),this._emitInput("preset-today");return}if(t==="preset-last7"){const r=s.computeLastDaysRange(e,7);this._pending.startDate=r.start,this._pending.endDate=r.end,this._pending=this._normalizePendingState(this._pending),this._emitInput("preset-last7");return}const i=s.computeMonthRange(e);this._pending.startDate=i.start,this._pending.endDate=i.end,this._pending=this._normalizePendingState(this._pending),this._emitInput("preset-month")}_onRootClick(t){const e=t.target;if(!e)return;const i=e.closest("[data-action]")?.getAttribute("data-action");if(i&&!this._isInteractionBlocked()&&!(this._isReadonly()&&i!=="toggle")){if(i==="toggle"){this._restoreFocusEl=e,this._setOpen(!this._open,"toggle");return}if(i==="clear"){this._isInlineMode()?(this._pending=x({start:null,end:null}),this._emitInput("clear"),this._updateHostState()):(this._pending=x({start:null,end:null}),this._commit(this._pending,"clear"));return}if(this._isInlineMode()&&(i==="preset-today"||i==="preset-last7"||i==="preset-month")){this._applyPreset(i),this._updateHostState();return}if(this._isInlineMode()&&i==="cancel"){this._pending=x(this._value),this._updateHostState();return}this._isInlineMode()&&i==="apply"&&this._commit(this._pending,"apply")}}_onRootChange(t){if(!this._isInlineMode())return;const e=t.target;if(e){if(e.tagName.toLowerCase()==="ui-calendar"){this._onOverlayCalendar(t);return}if(e instanceof HTMLSelectElement&&e.closest(".inline-panel")){if(!e.matches("select[data-time][data-segment]")||this._isInteractionBlocked()||this._isReadonly())return;if(this._applyTimeFromOverlay(e),this._shouldAutoCommit()){const i=this._valueFromPending();if(i.start&&i.end){this._commit(this._pending,"time");return}}this._updateHostState()}}}_onRootKeyDown(t){const e=t;if(!this._isInteractionBlocked()){if(e.key==="Escape"&&this._open&&!this._isInlineMode()){e.preventDefault(),this._setOpen(!1,"escape");return}e.key==="ArrowDown"&&!this._open&&!this._isInlineMode()&&(e.preventDefault(),this._setOpen(!0,"keyboard"))}}_onOverlayClick(t){const e=t.target;if(!e)return;const i=e.closest("[data-action]")?.getAttribute("data-action");if(i&&!(this._isInteractionBlocked()||this._isReadonly())){if(i==="backdrop"){this._setOpen(!1,"outside");return}if(i==="cancel"){this._pending=x(this._value),this._setOpen(!1,"cancel");return}if(i==="clear"){this._pending=x({start:null,end:null}),this._emitInput("clear"),this._renderOverlay();return}if(i==="preset-today"||i==="preset-last7"||i==="preset-month"){this._applyPreset(i),this._renderOverlay();return}i==="apply"&&(this._commit(this._pending,"apply"),this._setOpen(!1,"apply"))}}_onOverlayChange(t){const e=t.target;if(e instanceof HTMLSelectElement&&e.matches("select[data-time][data-segment]")&&!(this._isInteractionBlocked()||this._isReadonly())&&(this._applyTimeFromOverlay(e),this._shouldAutoCommit())){const i=this._valueFromPending();i.start&&i.end&&(this._commit(this._pending,"time"),this._setOpen(!1,"time"))}}_onOverlayCalendar(t){if(this._isInteractionBlocked()||this._isReadonly())return;const e=t.target;if(!e||e.tagName.toLowerCase()!=="ui-calendar")return;const i=t.detail;if(!(!i||i.mode!=="range")){if(this._pending.startDate=i.start||null,this._pending.endDate=i.end||null,this._pending=this._normalizePendingState(this._pending),this._emitInput("calendar"),this._shouldAutoCommit()&&this._pending.startDate&&this._pending.endDate){this._commit(this._pending,"calendar"),this._setOpen(!1,"calendar");return}this._isInlineMode()?this._updateHostState():this._renderOverlay()}}_onDocumentPointerDown(t){if(!this._open||!this._overlay)return;const e=t.composedPath();e.includes(this)||e.includes(this._overlay)||this._setOpen(!1,"outside")}_onDocumentKeyDown(t){this._open&&t.key==="Escape"&&(t.preventDefault(),this._setOpen(!1,"escape"))}_updateHostState(){if(!this._hasView)return;const t=this.getAttribute("label")||"",e=this.getAttribute("hint")||"",i=this.getAttribute("error")||"",r=this._inlineError||i,l=!!(this._value.start||this._value.end),a=this.getAttribute("name")||"",n=this._isInlineMode(),o=this._translations(),c=r?"error":this._state(),h=this._formatDisplay();this._display=h,this._state()==="loading"?this.setAttribute("aria-busy","true"):this.removeAttribute("aria-busy");const _=this.root.querySelector(".label"),D=this.root.querySelector(".label-text"),v=this.root.querySelector(".required"),d=this.root.querySelector(".input"),b=this.root.querySelector('.btn[data-action="clear"]'),g=this.root.querySelector('.btn[data-action="toggle"]'),y=this.root.querySelector(".hint"),f=this.root.querySelector(".error"),C=this.root.querySelector(".hidden-input");if(_&&(_.hidden=!t,_.id=this._labelId,_.setAttribute("for",this._inputId)),D&&(D.textContent=t),v&&(v.hidden=!this.hasAttribute("required")),d&&(d.value!==h&&(d.value=h),d.id=this._inputId,d.placeholder=o.dateRangeTimePlaceholder,d.readOnly=!0,d.disabled=this._isInteractionBlocked(),d.required=this.hasAttribute("required"),d.autocomplete="off",d.setAttribute("role","combobox"),d.setAttribute("aria-haspopup","dialog"),d.setAttribute("aria-expanded",n?"false":String(this._open)),d.setAttribute("aria-controls",this._panelId),d.setAttribute("aria-invalid",r?"true":"false"),j.syncControlName(d,this,t?this._labelId:null,d.placeholder)),b&&(b.hidden=!(this._clearable()&&l),b.setAttribute("aria-label",o.clearDateRange),b.disabled=this._isInteractionBlocked()),g&&(g.hidden=n,g.setAttribute("aria-label",o.toggleCalendar),g.setAttribute("aria-expanded",n?"false":String(this._open)),g.setAttribute("aria-controls",this._panelId),g.disabled=this._isInteractionBlocked()),y&&(y.id=this._hintId,y.hidden=!e,y.textContent=e),f&&(f.id=this._errorId,f.hidden=!r,f.textContent=r),d){const S=[];e&&y&&!y.hidden&&S.push(this._hintId),r&&S.push(this._errorId),j.syncControlDescription(d,this,this._uid,S)}C&&(C.disabled=!a,C.name=a,C.value=J(this._value)||"");const I=this.root.querySelector(".field");I&&(I.dataset.open=this._open&&!n?"true":"false",I.dataset.invalid=r?"true":"false",I.dataset.state=c);const u=this.root.querySelector(".inline-panel");if(u){u.hidden=!n,u.id=this._panelId,u.dataset.bare=this._isBare()?"true":"false",u.setAttribute("role","dialog"),u.setAttribute("aria-modal","false"),u.setAttribute("aria-label",t||o.selectDateRange);const S=u.querySelector(".panel-title");S&&(S.textContent=t,S.hidden=!t);const $=u.querySelector(".head-title");$&&($.textContent=t,$.hidden=!t);const R=u.querySelector(".head-meta"),A=this._valueFromPending();R&&(R.textContent=A.start&&A.end?`${this._formatDateTimeDisplay(A.start)} — ${this._formatDateTimeDisplay(A.end)}`:o.selectDateRange);const q=u.querySelector(".drtp-calendar-inline");q&&this._syncCalendar(q);const O=u.querySelector('select[data-time="start"][data-segment="hours"]'),z=u.querySelector('select[data-time="start"][data-segment="minutes"]'),P=u.querySelector('select[data-time="end"][data-segment="hours"]'),B=u.querySelector('select[data-time="end"][data-segment="minutes"]'),L=s.parseTimeInput(this._pending.startTime)||{hours:0,minutes:0},E=s.parseTimeInput(this._pending.endTime)||{hours:0,minutes:0};O&&this._setClosestOptionValue(O,L.hours),z&&this._setClosestOptionValue(z,L.minutes),P&&this._setClosestOptionValue(P,E.hours),B&&this._setClosestOptionValue(B,E.minutes),[O,z,P,B].forEach(k=>{k&&(k.disabled=this._isInteractionBlocked()||this._isReadonly())});const M=u.querySelector('[data-action="preset-today"]');M&&(M.textContent=o.today);const H=u.querySelector('[data-action="preset-last7"]');H&&(H.textContent=o.last7Days);const V=u.querySelector('[data-action="preset-month"]');V&&(V.textContent=o.thisMonth);const F=u.querySelector('[data-action="clear"]');F&&(F.textContent=o.clear);const N=u.querySelector('[data-action="apply"]');N&&(N.textContent=o.apply);const K=u.querySelector(".presets"),U=u.querySelector(".footer"),Z=this._showFooter();K&&(K.hidden=!Z),U&&(U.hidden=!Z),u.querySelectorAll(".action, .preset").forEach(k=>{k.disabled=this._isInteractionBlocked()||this._isReadonly()})}!n&&this._open&&this._syncOverlayState(),n&&this._destroyOverlay()}render(){if(!this._hasView){const t=this._translations();this.setContent(`
|
|
568
575
|
<style>${st}</style>
|
|
569
576
|
<div class="root">
|
|
570
577
|
<label class="label" part="label" id="${this._labelId}">
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { E as tt } from "./ElementBase-BeZT54Hj.mjs";
|
|
2
2
|
import { s as et, a as it } from "./control-name-Bpj7F34X.mjs";
|
|
3
3
|
import { c as rt } from "./dismissable-layer-BmPIoK80.mjs";
|
|
4
|
-
import { r as st } from "./calendar-
|
|
5
|
-
import { r as nt, e as at, i as C, s as ot, b as lt, j as I, k as A, f as dt, m as D, o as P, l as ut, c as ct, q as k, g as pt, h as ht } from "./date-time-utils-
|
|
4
|
+
import { r as st } from "./calendar-DmxiZrR7.mjs";
|
|
5
|
+
import { r as nt, e as at, i as C, s as ot, b as lt, j as I, k as A, f as dt, m as D, o as P, l as ut, c as ct, q as k, g as pt, h as ht } from "./date-time-utils-B4hAkt36.mjs";
|
|
6
6
|
let mt = 0;
|
|
7
7
|
const ft = `
|
|
8
8
|
<svg viewBox="0 0 20 20" class="icon-svg" aria-hidden="true" focusable="false">
|
|
@@ -28,17 +28,17 @@ const ft = `
|
|
|
28
28
|
color-mix(in srgb, var(--ui-color-surface, #ffffff) 98%, transparent),
|
|
29
29
|
color-mix(in srgb, var(--ui-color-surface, #ffffff) 90%, var(--ui-color-surface-alt, #f8fafc))
|
|
30
30
|
);
|
|
31
|
-
--ui-drtp-border: color-
|
|
31
|
+
--ui-drtp-border: var(--ui-color-line, var(--ui-color-border, #cbd5e1));
|
|
32
32
|
--ui-dp-text: var(--ui-color-text, #0f172a);
|
|
33
33
|
--ui-dp-muted: var(--ui-color-muted, #526175);
|
|
34
34
|
--ui-drtp-accent: var(--ui-color-primary, #2563eb);
|
|
35
35
|
--ui-drtp-success: var(--ui-color-success, #15803d);
|
|
36
36
|
--ui-drtp-error: var(--ui-color-danger, #dc2626);
|
|
37
|
-
--ui-drtp-radius:
|
|
37
|
+
--ui-drtp-radius: var(--ui-control-radius-2, var(--ui-radius, 6px));
|
|
38
38
|
--ui-drtp-panel-radius: 14px;
|
|
39
39
|
--ui-drtp-z: 1600;
|
|
40
40
|
--ui-drtp-shadow: none;
|
|
41
|
-
--ui-drtp-hit:
|
|
41
|
+
--ui-drtp-hit: var(--ui-control-height-2, 32px);
|
|
42
42
|
--ui-drtp-duration: 160ms;
|
|
43
43
|
--ui-drtp-ease: cubic-bezier(0.2, 0.9, 0.24, 1);
|
|
44
44
|
color-scheme: light dark;
|
|
@@ -60,11 +60,14 @@ const ft = `
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
:host([size="sm"]) {
|
|
63
|
-
--ui-drtp-
|
|
63
|
+
--ui-drtp-action-size: 24px;
|
|
64
|
+
--ui-drtp-action-bleed: -1px;
|
|
65
|
+
--ui-drtp-hit: var(--ui-control-height-1, 24px);
|
|
64
66
|
}
|
|
65
67
|
|
|
66
68
|
:host([size="lg"]) {
|
|
67
|
-
--ui-drtp-
|
|
69
|
+
--ui-drtp-action-size: 28px;
|
|
70
|
+
--ui-drtp-hit: var(--ui-control-height-3, 40px);
|
|
68
71
|
}
|
|
69
72
|
|
|
70
73
|
.root {
|
|
@@ -90,6 +93,7 @@ const ft = `
|
|
|
90
93
|
}
|
|
91
94
|
|
|
92
95
|
.field {
|
|
96
|
+
box-sizing: border-box;
|
|
93
97
|
display: grid;
|
|
94
98
|
grid-template-columns: auto minmax(0, 1fr) auto auto auto;
|
|
95
99
|
align-items: center;
|
|
@@ -105,18 +109,20 @@ const ft = `
|
|
|
105
109
|
|
|
106
110
|
.field[data-open="true"],
|
|
107
111
|
.field:focus-within {
|
|
108
|
-
border-color: color
|
|
109
|
-
|
|
112
|
+
border-color: var(--ui-ring-color, var(--ui-drtp-accent));
|
|
113
|
+
outline: var(--ui-ring-width, 2px) solid var(--ui-ring-color, var(--ui-drtp-accent));
|
|
114
|
+
outline-offset: -1px;
|
|
115
|
+
box-shadow: none;
|
|
110
116
|
}
|
|
111
117
|
|
|
112
118
|
.field[data-invalid="true"] {
|
|
113
119
|
border-color: color-mix(in srgb, var(--ui-drtp-error) 72%, transparent);
|
|
114
|
-
box-shadow: 0 0 0
|
|
120
|
+
box-shadow: 0 0 0 1px var(--ui-drtp-error);
|
|
115
121
|
}
|
|
116
122
|
|
|
117
123
|
.field[data-state="success"]:not([data-invalid="true"]) {
|
|
118
124
|
border-color: color-mix(in srgb, var(--ui-drtp-success) 56%, transparent);
|
|
119
|
-
box-shadow: 0 0 0
|
|
125
|
+
box-shadow: 0 0 0 1px var(--ui-drtp-success);
|
|
120
126
|
}
|
|
121
127
|
|
|
122
128
|
.input {
|
|
@@ -126,11 +132,11 @@ const ft = `
|
|
|
126
132
|
outline: none;
|
|
127
133
|
min-inline-size: 0;
|
|
128
134
|
inline-size: 100%;
|
|
129
|
-
padding:
|
|
135
|
+
padding: 0;
|
|
130
136
|
font: 500 14px/1.35 Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
131
137
|
}
|
|
132
138
|
.input::placeholder {
|
|
133
|
-
color: color-mix(in srgb, var(--ui-dp-text)
|
|
139
|
+
color: var(--ui-color-placeholder, color-mix(in srgb, var(--ui-dp-text) 62%, transparent));
|
|
134
140
|
}
|
|
135
141
|
.icon {
|
|
136
142
|
display: inline-grid;
|
|
@@ -147,8 +153,9 @@ const ft = `
|
|
|
147
153
|
.btn {
|
|
148
154
|
border: 1px solid transparent;
|
|
149
155
|
background: color-mix(in srgb, var(--ui-drtp-bg) 84%, transparent);
|
|
150
|
-
inline-size:
|
|
151
|
-
block-size:
|
|
156
|
+
inline-size: var(--ui-drtp-action-size, 24px);
|
|
157
|
+
block-size: var(--ui-drtp-action-size, 24px);
|
|
158
|
+
margin-block: var(--ui-drtp-action-bleed, 0px);
|
|
152
159
|
border-radius: 8px;
|
|
153
160
|
color: color-mix(in srgb, var(--ui-dp-text) 72%, transparent);
|
|
154
161
|
cursor: pointer;
|
|
@@ -279,7 +286,7 @@ const ft = `
|
|
|
279
286
|
color-mix(in srgb, var(--ui-color-surface, #ffffff) 98%, transparent),
|
|
280
287
|
color-mix(in srgb, var(--ui-color-surface, #ffffff) 90%, var(--ui-color-surface-alt, #f8fafc))
|
|
281
288
|
);
|
|
282
|
-
--ui-drtp-border: color-
|
|
289
|
+
--ui-drtp-border: var(--ui-color-line, var(--ui-color-border, #cbd5e1));
|
|
283
290
|
--ui-dp-text: var(--ui-color-text, #0f172a);
|
|
284
291
|
--ui-dp-muted: var(--ui-color-muted, #526175);
|
|
285
292
|
--ui-drtp-accent: var(--ui-color-primary, #2563eb);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const N=require("./ElementBase-DxbvhLJs.js"),P=require("./control-name-BmoI1m3a.js"),K=require("./dismissable-layer-DNfrKA20.js"),U=require("./calendar-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const N=require("./ElementBase-DxbvhLJs.js"),P=require("./control-name-BmoI1m3a.js"),K=require("./dismissable-layer-DNfrKA20.js"),U=require("./calendar-o273O28D.js"),l=require("./date-time-utils-DdigV4hs.js");let Z=0;const j=`
|
|
2
2
|
<svg viewBox="0 0 20 20" class="icon-svg" aria-hidden="true" focusable="false">
|
|
3
3
|
<path d="M6 2a1 1 0 0 1 1 1v1h6V3a1 1 0 1 1 2 0v1h.5A2.5 2.5 0 0 1 18 6.5v9A2.5 2.5 0 0 1 15.5 18h-11A2.5 2.5 0 0 1 2 15.5v-9A2.5 2.5 0 0 1 4.5 4H5V3a1 1 0 0 1 1-1Zm10 7H4v6.5c0 .276.224.5.5.5h11a.5.5 0 0 0 .5-.5V9ZM4.5 6a.5.5 0 0 0-.5.5V7h12v-.5a.5.5 0 0 0-.5-.5h-11Z" fill="currentColor"/>
|
|
4
4
|
</svg>
|
|
@@ -22,18 +22,18 @@
|
|
|
22
22
|
color-mix(in srgb, var(--ui-color-surface, #ffffff) 98%, transparent),
|
|
23
23
|
color-mix(in srgb, var(--ui-color-surface, #ffffff) 90%, var(--ui-color-surface-alt, #f8fafc))
|
|
24
24
|
);
|
|
25
|
-
--ui-dtp-border: color-
|
|
25
|
+
--ui-dtp-border: var(--ui-color-line, var(--ui-color-border, #cbd5e1));
|
|
26
26
|
--ui-dp-text: var(--ui-color-text, #0f172a);
|
|
27
27
|
--ui-dp-muted: var(--ui-color-muted, #526175);
|
|
28
28
|
--ui-dtp-accent: var(--ui-color-primary, #2563eb);
|
|
29
29
|
--ui-dtp-success: var(--ui-color-success, #15803d);
|
|
30
30
|
--ui-dtp-error: var(--ui-color-danger, #dc2626);
|
|
31
|
-
--ui-dtp-radius:
|
|
31
|
+
--ui-dtp-radius: var(--ui-control-radius-2, var(--ui-radius, 6px));
|
|
32
32
|
--ui-dtp-panel-radius: 14px;
|
|
33
33
|
--ui-dtp-z: 1600;
|
|
34
34
|
--ui-dtp-shadow: none;
|
|
35
35
|
--ui-dtp-gap: 12px;
|
|
36
|
-
--ui-dtp-hit:
|
|
36
|
+
--ui-dtp-hit: var(--ui-control-height-2, 32px);
|
|
37
37
|
--ui-dtp-duration: 160ms;
|
|
38
38
|
--ui-dtp-ease: cubic-bezier(0.2, 0.9, 0.24, 1);
|
|
39
39
|
color-scheme: light dark;
|
|
@@ -55,11 +55,14 @@
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
:host([size="sm"]) {
|
|
58
|
-
--ui-dtp-
|
|
58
|
+
--ui-dtp-action-size: 24px;
|
|
59
|
+
--ui-dtp-action-bleed: -1px;
|
|
60
|
+
--ui-dtp-hit: var(--ui-control-height-1, 24px);
|
|
59
61
|
}
|
|
60
62
|
|
|
61
63
|
:host([size="lg"]) {
|
|
62
|
-
--ui-dtp-
|
|
64
|
+
--ui-dtp-action-size: 28px;
|
|
65
|
+
--ui-dtp-hit: var(--ui-control-height-3, 40px);
|
|
63
66
|
}
|
|
64
67
|
|
|
65
68
|
.root {
|
|
@@ -85,6 +88,7 @@
|
|
|
85
88
|
}
|
|
86
89
|
|
|
87
90
|
.field {
|
|
91
|
+
box-sizing: border-box;
|
|
88
92
|
display: grid;
|
|
89
93
|
grid-template-columns: auto minmax(0, 1fr) auto auto auto;
|
|
90
94
|
align-items: center;
|
|
@@ -100,18 +104,20 @@
|
|
|
100
104
|
|
|
101
105
|
.field[data-open="true"],
|
|
102
106
|
.field:focus-within {
|
|
103
|
-
border-color: color
|
|
104
|
-
|
|
107
|
+
border-color: var(--ui-ring-color, var(--ui-dtp-accent));
|
|
108
|
+
outline: var(--ui-ring-width, 2px) solid var(--ui-ring-color, var(--ui-dtp-accent));
|
|
109
|
+
outline-offset: -1px;
|
|
110
|
+
box-shadow: none;
|
|
105
111
|
}
|
|
106
112
|
|
|
107
113
|
.field[data-invalid="true"] {
|
|
108
114
|
border-color: color-mix(in srgb, var(--ui-dtp-error) 72%, transparent);
|
|
109
|
-
box-shadow: 0 0 0
|
|
115
|
+
box-shadow: 0 0 0 1px var(--ui-dtp-error);
|
|
110
116
|
}
|
|
111
117
|
|
|
112
118
|
.field[data-state="success"]:not([data-invalid="true"]) {
|
|
113
119
|
border-color: color-mix(in srgb, var(--ui-dtp-success) 56%, transparent);
|
|
114
|
-
box-shadow: 0 0 0
|
|
120
|
+
box-shadow: 0 0 0 1px var(--ui-dtp-success);
|
|
115
121
|
}
|
|
116
122
|
|
|
117
123
|
.input {
|
|
@@ -121,12 +127,12 @@
|
|
|
121
127
|
outline: none;
|
|
122
128
|
min-inline-size: 0;
|
|
123
129
|
inline-size: 100%;
|
|
124
|
-
padding:
|
|
130
|
+
padding: 0;
|
|
125
131
|
font: 500 14px/1.35 Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
126
132
|
}
|
|
127
133
|
|
|
128
134
|
.input::placeholder {
|
|
129
|
-
color: color-mix(in srgb, var(--ui-dp-text)
|
|
135
|
+
color: var(--ui-color-placeholder, color-mix(in srgb, var(--ui-dp-text) 62%, transparent));
|
|
130
136
|
}
|
|
131
137
|
|
|
132
138
|
.icon {
|
|
@@ -146,8 +152,9 @@
|
|
|
146
152
|
.btn {
|
|
147
153
|
border: 1px solid transparent;
|
|
148
154
|
background: color-mix(in srgb, var(--ui-dtp-bg) 84%, transparent);
|
|
149
|
-
inline-size:
|
|
150
|
-
block-size:
|
|
155
|
+
inline-size: var(--ui-dtp-action-size, 24px);
|
|
156
|
+
block-size: var(--ui-dtp-action-size, 24px);
|
|
157
|
+
margin-block: var(--ui-dtp-action-bleed, 0px);
|
|
151
158
|
border-radius: 8px;
|
|
152
159
|
color: color-mix(in srgb, var(--ui-dp-text) 72%, transparent);
|
|
153
160
|
cursor: pointer;
|
|
@@ -288,7 +295,7 @@
|
|
|
288
295
|
color-mix(in srgb, var(--ui-color-surface, #ffffff) 98%, transparent),
|
|
289
296
|
color-mix(in srgb, var(--ui-color-surface, #ffffff) 90%, var(--ui-color-surface-alt, #f8fafc))
|
|
290
297
|
);
|
|
291
|
-
--ui-dtp-border: color-
|
|
298
|
+
--ui-dtp-border: var(--ui-color-line, var(--ui-color-border, #cbd5e1));
|
|
292
299
|
--ui-dp-text: var(--ui-color-text, #0f172a);
|
|
293
300
|
--ui-dp-muted: var(--ui-color-muted, #526175);
|
|
294
301
|
--ui-dtp-accent: var(--ui-color-primary, #2563eb);
|
|
@@ -486,7 +493,7 @@
|
|
|
486
493
|
<style>${G}</style>
|
|
487
494
|
${t?'<div class="sheet-backdrop" data-action="backdrop"></div>':""}
|
|
488
495
|
<section class="${t?"sheet":"panel"}" id="${this._panelId}" role="dialog" aria-modal="${t?"true":"false"}" aria-label="${n}" part="${t?"sheet":"popover"}">${u}</section>
|
|
489
|
-
`}_syncCalendar(t){const e=(n,s)=>{if(s==null||s===""){t.hasAttribute(n)&&t.removeAttribute(n);return}t.getAttribute(n)!==s&&t.setAttribute(n,s)},i=(n,s)=>{s?e(n,""):e(n,null)};e("selection","single"),e("value",this._pending.date),e("min",this.getAttribute("min")),e("max",this.getAttribute("max")),e("locale",this.getAttribute("locale")),e("translations",this.getAttribute("translations")),e("week-start",this.getAttribute("week-start"));const o=this.getAttribute("size")||"sm",a=t.classList.contains("dt-calendar-inline");e("size",o==="lg"?"md":"sm"),e("variant",this.getAttribute("variant")),i("readonly",this._isReadonly()),i("disabled",this._isInteractionBlocked()),i("bare",this._isBare()),e("tabindex","-1"),o==="lg"?(t.style.setProperty("--ui-calendar-day-height","1.95em"),t.style.setProperty("--ui-calendar-day-padding-block","0.2em"),t.style.setProperty("--ui-calendar-day-padding-inline","0.26em"),t.style.setProperty("--ui-calendar-gap","0.42em"),t.style.setProperty("--ui-calendar-day-font-size","0.78em"),t.style.setProperty("--ui-calendar-weekday-font-size","0.7em"),t.style.setProperty("--ui-calendar-title-font-size","0.88em")):(t.style.setProperty("--ui-calendar-day-height","2.4em"),t.style.setProperty("--ui-calendar-day-padding-block","0.14em"),t.style.setProperty("--ui-calendar-day-padding-inline","0.22em"),t.style.setProperty("--ui-calendar-gap","0.34em"),t.style.setProperty("--ui-calendar-day-font-size","0.72em"),t.style.setProperty("--ui-calendar-weekday-font-size","0.64em"),t.style.setProperty("--ui-calendar-title-font-size","0.8em")),a?(t.style.setProperty("--ui-calendar-frame-padding","0.32em"),t.style.setProperty("--ui-calendar-week-gap","0.18em"),t.style.setProperty("--ui-calendar-control-height","1.72em"),t.style.setProperty("--ui-calendar-gap","0.24em")):(t.style.removeProperty("--ui-calendar-frame-padding"),t.style.removeProperty("--ui-calendar-week-gap"),t.style.removeProperty("--ui-calendar-control-height")),e("aria-label",this.getAttribute("label")||this._translations().selectDate)}_overlaySignature(t){return[t?"sheet":"popover",this._minuteStep(),this._is12h()?"12h":"24h",this.getAttribute("locale")||"",this.getAttribute("translations")||""].join(":")}_ensureOverlayContent(t){if(!this._overlay)return;const e=this._overlaySignature(t);this._overlayKey===e&&this._overlay.querySelector(".dt-calendar")||(this._overlayKey=e,this._overlay.innerHTML=t?`<div class="sheet-wrap">${this._renderSurfaceInner(!0)}</div>`:`<div class="overlay">${this._renderSurfaceInner(!1)}</div>`)}_setClosestOptionValue(t,e){const i=Array.from(t.options).map(a=>Number(a.value)).filter(a=>Number.isFinite(a));if(!i.length)return;let r=i[0],o=Math.abs(r-e);for(let a=1;a<i.length;a+=1){const n=i[a],s=Math.abs(n-e);s<o&&(r=n,o=s)}t.value=String(r)}_syncOverlayState(){if(!this._overlay)return;this._syncOverlayHostZIndex();const t=this._isMobileSheet();this._ensureOverlayContent(t),this._syncDismissableLayer();const e=this._translations(),i=this._overlay.querySelector(".panel, .sheet"),r=this._overlay.querySelector(".footer");i&&(i.dataset.bare=this._isBare()?"true":"false"),r&&(r.hidden=!this._showFooter());const o=this._overlay.querySelector(".head-title");if(o){const d=(this.getAttribute("label")||"").trim();o.textContent=d,o.hidden=!d}const a=this._overlay.querySelector(".head-meta");a&&(a.textContent=this._pending.date&&this._pending.time?this._formatDisplay(this._pending):e.selectDate);const n=this._overlay.querySelector(".dt-calendar");n&&this._syncCalendar(n);const s=l.parseTimeInput(this._pending.time||"00:00")||{hours:0,minutes:0},u=this._overlay.querySelector('select[data-segment="hours"]'),f=this._overlay.querySelector('select[data-segment="minutes"]'),_=this._overlay.querySelector('select[data-segment="meridiem"]');if(u){const d=this._is12h()?s.hours%12||12:s.hours;this._setClosestOptionValue(u,d),u.disabled=this._isInteractionBlocked()||this._isReadonly()}f&&(this._setClosestOptionValue(f,s.minutes),f.disabled=this._isInteractionBlocked()||this._isReadonly()),_&&(_.value=s.hours>=12?"pm":"am",_.disabled=this._isInteractionBlocked()||this._isReadonly());const x=this._isInteractionBlocked()||this._isReadonly();this._overlay.querySelectorAll(".action").forEach(d=>{d.disabled=x}),t||this._schedulePosition.run()}_renderOverlay(){this._syncOverlayState()}_applyTimeFromSurface(t){const e=t.querySelector('select[data-segment="hours"]'),i=t.querySelector('select[data-segment="minutes"]'),r=t.querySelector('select[data-segment="meridiem"]');if(!e||!i)return;const o=Number(e.value),a=Number(i.value);if(!Number.isFinite(o)||!Number.isFinite(a))return;let n=o;if(this._is12h()){const s=r?.value==="pm"?"pm":"am";s==="pm"&&n<12&&(n+=12),s==="am"&&n===12&&(n=0)}this._pending=this._clampState({date:this._pending.date,time:`${h(n)}:${h(a)}`}),this._emitInput("time")}_onRootClick(t){const e=t.target;if(!e)return;const i=e.closest("[data-action]")?.getAttribute("data-action");if(i&&!(this._isInteractionBlocked()||this._isReadonly())){if(i==="toggle"){this._restoreFocusEl=e,this._setOpen(!this._open,"toggle");return}if(i==="clear"){this._isInlineMode()?(this._pending={date:null,time:null},this._emitInput("clear"),this._updateHostState()):this._commit({date:null,time:null},"clear");return}if(this._isInlineMode()&&i==="now"){const r=new Date,o=String(r.getMonth()+1).padStart(2,"0"),a=String(r.getDate()).padStart(2,"0"),n=`${r.getFullYear()}-${o}-${a}`,s=`${h(r.getHours())}:${h(r.getMinutes())}`;this._pending=this._clampState({date:n,time:s}),this._emitInput("now"),this._updateHostState();return}if(this._isInlineMode()&&i==="cancel"){this._pending={...this._value},this._updateHostState();return}this._isInlineMode()&&i==="apply"&&this._commit(this._pending,"apply")}}_onRootChange(t){if(!this._isInlineMode())return;const e=t.target;if(e){if(e.tagName.toLowerCase()==="ui-calendar"){this._onOverlayCalendar(t);return}if(e instanceof HTMLSelectElement&&e.closest(".inline-panel")){if(!e.matches("select[data-segment]")||this._isInteractionBlocked()||this._isReadonly())return;const i=this.root.querySelector(".inline-panel");if(!i)return;if(this._applyTimeFromSurface(i),this._shouldAutoCommit()&&this._pending.date&&this._pending.time){this._commit(this._pending,"time");return}this._updateHostState()}}}_onRootInput(t){const e=t.target;e instanceof HTMLInputElement&&e.classList.contains("input")&&this._allowInput()&&(this._isInteractionBlocked()||(this._draft=e.value,this._inlineError="",this._emitInput("typing")))}_onRootBlur(t){const e=t.target;if(!(e instanceof HTMLInputElement)||!e.classList.contains("input")||!this._allowInput()||this._isInteractionBlocked())return;const i=this._draft.trim();if(!i){this._commit({date:null,time:null},"blur");return}const r=/^(.+)\s+(\d{1,2}:\d{2}(?::\d{2})?(?:\s?[ap]m)?)$/i.exec(i);if(!r){this._inlineError=this.getAttribute("error")||this._translations().invalidDateTime,this._emitInvalid(i,"parse"),this._updateHostState();return}const o=this._parseDateInput(r[1]),a=l.parseTimeInput(r[2])?r[2]:null;if(!o||!a){this._inlineError=this.getAttribute("error")||this._translations().invalidDateTime,this._emitInvalid(i,"parse"),this._updateHostState();return}this._commit({date:o,time:a},"blur")}_onRootKeyDown(t){const e=t;if(!this._isInteractionBlocked()){if(e.key==="Escape"&&this._open&&!this._isInlineMode()){e.preventDefault(),this._setOpen(!1,"escape");return}e.key==="ArrowDown"&&!this._open&&!this._isInlineMode()&&(e.preventDefault(),this._setOpen(!0,"keyboard"))}}_onOverlayClick(t){const e=t.target;if(!e)return;const i=e.closest("[data-action]")?.getAttribute("data-action");if(i&&!this._isInteractionBlocked()&&!(this._isReadonly()&&i!=="toggle")){if(i==="backdrop"){this._setOpen(!1,"outside");return}if(i==="cancel"){this._pending={...this._value},this._setOpen(!1,"cancel");return}if(i==="clear"){this._pending={date:null,time:null},this._emitInput("clear"),this._renderOverlay();return}if(i==="now"){const r=new Date,o=String(r.getMonth()+1).padStart(2,"0"),a=String(r.getDate()).padStart(2,"0"),n=`${r.getFullYear()}-${o}-${a}`,s=`${h(r.getHours())}:${h(r.getMinutes())}`;this._pending=this._clampState({date:n,time:s}),this._emitInput("now"),this._renderOverlay();return}i==="apply"&&(this._commit(this._pending,"apply"),this._setOpen(!1,"apply"))}}_onOverlayChange(t){const e=t.target;e instanceof HTMLSelectElement&&e.matches("select[data-segment]")&&(this._isInteractionBlocked()||this._overlay&&(this._applyTimeFromSurface(this._overlay),this._shouldAutoCommit()&&this._pending.date&&this._pending.time&&(this._commit(this._pending,"time"),this._setOpen(!1,"time"))))}_onOverlayCalendar(t){if(this._isInteractionBlocked()||this._isReadonly())return;const e=t.target;if(!e||e.tagName.toLowerCase()!=="ui-calendar")return;const i=t.type,r=t.detail,o=l.normalizeDateIso(i==="select"?r?.value||null:r?.value);if(o){if(this._pending=this._clampState({date:o,time:this._pending.time||"09:00"}),this._emitInput("calendar"),this._shouldAutoCommit()&&this._pending.time){this._commit(this._pending,"calendar"),this._setOpen(!1,"calendar");return}this._updateHostState()}}_onDocumentPointerDown(t){if(!this._open||!this._overlay)return;const e=t.composedPath();e.includes(this)||e.includes(this._overlay)||this._setOpen(!1,"outside")}_onDocumentKeyDown(t){this._open&&t.key==="Escape"&&(t.preventDefault(),this._setOpen(!1,"escape"))}_updateHostState(){if(!this._hasView)return;const t=this.getAttribute("label")||"",e=this.getAttribute("hint")||"",i=this.getAttribute("error")||"",r=this._inlineError||i,o=!!y(this._value),a=this.getAttribute("name")||"",n=this._allowInput()?this._draft:this._formatDisplay(this._value),s=this._isInlineMode(),u=this._translations(),f=r?"error":this._state();this._state()==="loading"?this.setAttribute("aria-busy","true"):this.removeAttribute("aria-busy");const _=this.root.querySelector(".label"),x=this.root.querySelector(".label-text"),A=this.root.querySelector(".required"),d=this.root.querySelector(".input"),I=this.root.querySelector('.btn[data-action="clear"]'),g=this.root.querySelector('.btn[data-action="toggle"]'),v=this.root.querySelector(".hint"),S=this.root.querySelector(".error"),w=this.root.querySelector(".hidden-input");if(_&&(_.hidden=!t),_&&(_.id=this._labelId,_.setAttribute("for",this._inputId)),x&&(x.textContent=t),A&&(A.hidden=!this.hasAttribute("required")),d&&(d.value!==n&&(d.value=n),d.id=this._inputId,d.placeholder=u.dateTimePlaceholder,d.readOnly=!this._allowInput()||this._isReadonly(),d.disabled=this._isInteractionBlocked(),d.required=this.hasAttribute("required"),d.autocomplete="off",d.setAttribute("role","combobox"),d.setAttribute("aria-haspopup","dialog"),d.setAttribute("aria-expanded",s?"false":String(this._open)),d.setAttribute("aria-controls",this._panelId),d.setAttribute("aria-invalid",r?"true":"false"),P.syncControlName(d,this,t?this._labelId:null,d.placeholder)),I&&(I.hidden=!(this._clearable()&&o),I.setAttribute("aria-label",u.clear),I.disabled=this._isInteractionBlocked()),g&&(g.hidden=s,g.setAttribute("aria-label",u.toggleCalendar),g.setAttribute("aria-expanded",s?"false":String(this._open)),g.setAttribute("aria-controls",this._panelId),g.disabled=this._isInteractionBlocked()),v&&(v.id=this._hintId,v.hidden=!e,v.textContent=e),S&&(S.id=this._errorId,S.hidden=!r,S.textContent=r),d){const b=[];e&&v&&!v.hidden&&b.push(this._hintId),r&&b.push(this._errorId),P.syncControlDescription(d,this,this._uid,b)}w&&(w.disabled=!a,w.name=a,w.value=y(this._value)||"");const C=this.root.querySelector(".field");C&&(C.dataset.open=this._open&&!s?"true":"false",C.dataset.invalid=r?"true":"false",C.dataset.state=f);const c=this.root.querySelector(".inline-panel");if(c){c.hidden=!s,c.id=this._panelId,c.dataset.bare=this._isBare()?"true":"false",c.setAttribute("role","dialog"),c.setAttribute("aria-modal","false"),c.setAttribute("aria-label",t||u.selectDate);const b=c.querySelector(".panel-title");b&&(b.textContent=t,b.hidden=!t);const D=c.querySelector(".head-title");D&&(D.textContent=t,D.hidden=!t);const T=c.querySelector(".head-meta");T&&(T.textContent=this._pending.date&&this._pending.time?this._formatDisplay(this._pending):u.selectDate);const L=c.querySelector('[data-action="now"]');L&&(L.textContent=u.now);const E=c.querySelector('[data-action="clear"]');E&&(E.textContent=u.clear);const R=c.querySelector('[data-action="apply"]');R&&(R.textContent=u.apply);const q=c.querySelector(".footer");q&&(q.hidden=!this._showFooter());const M=c.querySelector(".dt-calendar-inline");M&&this._syncCalendar(M);const $=c.querySelector('select[data-segment="hours"]'),O=c.querySelector('select[data-segment="minutes"]'),B=c.querySelector('select[data-segment="meridiem"]'),k=l.parseTimeInput(this._pending.time||"00:00")||{hours:0,minutes:0};if($){const z=this._is12h()?k.hours%12||12:k.hours;this._setClosestOptionValue($,z),$.disabled=this._isInteractionBlocked()||this._isReadonly()}O&&(this._setClosestOptionValue(O,k.minutes),O.disabled=this._isInteractionBlocked()||this._isReadonly()),B&&(B.value=k.hours>=12?"pm":"am",B.disabled=this._isInteractionBlocked()||this._isReadonly()),c.querySelectorAll(".action").forEach(z=>{z.disabled=this._isInteractionBlocked()||this._isReadonly()})}!s&&this._open&&this._syncOverlayState(),s&&this._destroyOverlay()}render(){if(!this._hasView){const t=this._translations();this.setContent(`
|
|
496
|
+
`}_syncCalendar(t){const e=(n,s)=>{if(s==null||s===""){t.hasAttribute(n)&&t.removeAttribute(n);return}t.getAttribute(n)!==s&&t.setAttribute(n,s)},i=(n,s)=>{s?e(n,""):e(n,null)};e("selection","single"),e("value",this._pending.date),e("min",this.getAttribute("min")),e("max",this.getAttribute("max")),e("locale",this.getAttribute("locale")),e("translations",this.getAttribute("translations")),e("week-start",this.getAttribute("week-start"));const o=this.getAttribute("size")||"sm",a=t.classList.contains("dt-calendar-inline");e("size",o==="lg"?"md":"sm"),e("variant",this.getAttribute("variant")),i("readonly",this._isReadonly()),i("disabled",this._isInteractionBlocked()),i("bare",this._isBare()),e("tabindex","-1"),o==="lg"?(t.style.setProperty("--ui-calendar-day-height","1.95em"),t.style.setProperty("--ui-calendar-day-padding-block","0.2em"),t.style.setProperty("--ui-calendar-day-padding-inline","0.26em"),t.style.setProperty("--ui-calendar-gap","0.42em"),t.style.setProperty("--ui-calendar-day-font-size","0.78em"),t.style.setProperty("--ui-calendar-weekday-font-size","0.7em"),t.style.setProperty("--ui-calendar-title-font-size","0.88em")):(t.style.setProperty("--ui-calendar-day-height","2.4em"),t.style.setProperty("--ui-calendar-day-padding-block","0.14em"),t.style.setProperty("--ui-calendar-day-padding-inline","0.22em"),t.style.setProperty("--ui-calendar-gap","0.34em"),t.style.setProperty("--ui-calendar-day-font-size","0.72em"),t.style.setProperty("--ui-calendar-weekday-font-size","0.64em"),t.style.setProperty("--ui-calendar-title-font-size","0.8em")),a?(t.style.setProperty("--ui-calendar-frame-padding","0.32em"),t.style.setProperty("--ui-calendar-week-gap","0.18em"),t.style.setProperty("--ui-calendar-control-height","1.72em"),t.style.setProperty("--ui-calendar-gap","0.24em")):(t.style.removeProperty("--ui-calendar-frame-padding"),t.style.removeProperty("--ui-calendar-week-gap"),t.style.removeProperty("--ui-calendar-control-height")),e("aria-label",this.getAttribute("label")||this._translations().selectDate)}_overlaySignature(t){return[t?"sheet":"popover",this._minuteStep(),this._is12h()?"12h":"24h",this.getAttribute("locale")||"",this.getAttribute("translations")||""].join(":")}_ensureOverlayContent(t){if(!this._overlay)return;const e=this._overlaySignature(t);this._overlayKey===e&&this._overlay.querySelector(".dt-calendar")||(this._overlayKey=e,this._overlay.innerHTML=t?`<div class="sheet-wrap">${this._renderSurfaceInner(!0)}</div>`:`<div class="overlay">${this._renderSurfaceInner(!1)}</div>`)}_setClosestOptionValue(t,e){const i=Array.from(t.options).map(a=>Number(a.value)).filter(a=>Number.isFinite(a));if(!i.length)return;let r=i[0],o=Math.abs(r-e);for(let a=1;a<i.length;a+=1){const n=i[a],s=Math.abs(n-e);s<o&&(r=n,o=s)}t.value=String(r)}_syncOverlayState(){if(!this._overlay)return;this._syncOverlayHostZIndex();const t=this._isMobileSheet();this._ensureOverlayContent(t),this._syncDismissableLayer();const e=this._translations(),i=this._overlay.querySelector(".panel, .sheet"),r=this._overlay.querySelector(".footer");i&&(i.dataset.bare=this._isBare()?"true":"false"),r&&(r.hidden=!this._showFooter());const o=this._overlay.querySelector(".head-title");if(o){const d=(this.getAttribute("label")||"").trim();o.textContent=d,o.hidden=!d}const a=this._overlay.querySelector(".head-meta");a&&(a.textContent=this._pending.date&&this._pending.time?this._formatDisplay(this._pending):e.selectDate);const n=this._overlay.querySelector(".dt-calendar");n&&this._syncCalendar(n);const s=l.parseTimeInput(this._pending.time||"00:00")||{hours:0,minutes:0},u=this._overlay.querySelector('select[data-segment="hours"]'),f=this._overlay.querySelector('select[data-segment="minutes"]'),_=this._overlay.querySelector('select[data-segment="meridiem"]');if(u){const d=this._is12h()?s.hours%12||12:s.hours;this._setClosestOptionValue(u,d),u.disabled=this._isInteractionBlocked()||this._isReadonly()}f&&(this._setClosestOptionValue(f,s.minutes),f.disabled=this._isInteractionBlocked()||this._isReadonly()),_&&(_.value=s.hours>=12?"pm":"am",_.disabled=this._isInteractionBlocked()||this._isReadonly());const x=this._isInteractionBlocked()||this._isReadonly();this._overlay.querySelectorAll(".action").forEach(d=>{d.disabled=x}),t||this._schedulePosition.run()}_renderOverlay(){this._syncOverlayState()}_applyTimeFromSurface(t){const e=t.querySelector('select[data-segment="hours"]'),i=t.querySelector('select[data-segment="minutes"]'),r=t.querySelector('select[data-segment="meridiem"]');if(!e||!i)return;const o=Number(e.value),a=Number(i.value);if(!Number.isFinite(o)||!Number.isFinite(a))return;let n=o;if(this._is12h()){const s=r?.value==="pm"?"pm":"am";s==="pm"&&n<12&&(n+=12),s==="am"&&n===12&&(n=0)}this._pending=this._clampState({date:this._pending.date,time:`${h(n)}:${h(a)}`}),this._emitInput("time")}_onRootClick(t){const e=t.target;if(!e)return;const i=e.closest("[data-action]")?.getAttribute("data-action");if(i&&!(this._isInteractionBlocked()||this._isReadonly())){if(i==="toggle"){this._restoreFocusEl=e,this._setOpen(!this._open,"toggle");return}if(i==="clear"){this._isInlineMode()?(this._pending={date:null,time:null},this._emitInput("clear"),this._updateHostState()):this._commit({date:null,time:null},"clear");return}if(this._isInlineMode()&&i==="now"){const r=new Date,o=String(r.getMonth()+1).padStart(2,"0"),a=String(r.getDate()).padStart(2,"0"),n=`${r.getFullYear()}-${o}-${a}`,s=`${h(r.getHours())}:${h(r.getMinutes())}`;this._pending=this._clampState({date:n,time:s}),this._emitInput("now"),this._updateHostState();return}if(this._isInlineMode()&&i==="cancel"){this._pending={...this._value},this._updateHostState();return}this._isInlineMode()&&i==="apply"&&this._commit(this._pending,"apply")}}_onRootChange(t){if(!this._isInlineMode())return;const e=t.target;if(e){if(e.tagName.toLowerCase()==="ui-calendar"){this._onOverlayCalendar(t);return}if(e instanceof HTMLSelectElement&&e.closest(".inline-panel")){if(!e.matches("select[data-segment]")||this._isInteractionBlocked()||this._isReadonly())return;const i=this.root.querySelector(".inline-panel");if(!i)return;if(this._applyTimeFromSurface(i),this._shouldAutoCommit()&&this._pending.date&&this._pending.time){this._commit(this._pending,"time");return}this._updateHostState()}}}_onRootInput(t){const e=t.target;e instanceof HTMLInputElement&&e.classList.contains("input")&&this._allowInput()&&(this._isInteractionBlocked()||(this._draft=e.value,this._inlineError="",this._emitInput("typing")))}_onRootBlur(t){const e=t.target;if(!(e instanceof HTMLInputElement)||!e.classList.contains("input")||!this._allowInput()||this._isInteractionBlocked())return;const i=this._draft.trim();if(!i){this._commit({date:null,time:null},"blur");return}const r=/^(.+)\s+(\d{1,2}:\d{2}(?::\d{2})?(?:\s?[ap]m)?)$/i.exec(i);if(!r){this._inlineError=this.getAttribute("error")||this._translations().invalidDateTime,this._emitInvalid(i,"parse"),this._updateHostState();return}const o=this._parseDateInput(r[1]),a=l.parseTimeInput(r[2])?r[2]:null;if(!o||!a){this._inlineError=this.getAttribute("error")||this._translations().invalidDateTime,this._emitInvalid(i,"parse"),this._updateHostState();return}this._commit({date:o,time:a},"blur")}_onRootKeyDown(t){const e=t;if(!this._isInteractionBlocked()){if(e.key==="Escape"&&this._open&&!this._isInlineMode()){e.preventDefault(),this._setOpen(!1,"escape");return}e.key==="ArrowDown"&&!this._open&&!this._isInlineMode()&&(e.preventDefault(),this._setOpen(!0,"keyboard"))}}_onOverlayClick(t){const e=t.target;if(!e)return;const i=e.closest("[data-action]")?.getAttribute("data-action");if(i&&!this._isInteractionBlocked()&&!(this._isReadonly()&&i!=="toggle")){if(i==="backdrop"){this._setOpen(!1,"outside");return}if(i==="cancel"){this._pending={...this._value},this._setOpen(!1,"cancel");return}if(i==="clear"){this._pending={date:null,time:null},this._emitInput("clear"),this._renderOverlay();return}if(i==="now"){const r=new Date,o=String(r.getMonth()+1).padStart(2,"0"),a=String(r.getDate()).padStart(2,"0"),n=`${r.getFullYear()}-${o}-${a}`,s=`${h(r.getHours())}:${h(r.getMinutes())}`;this._pending=this._clampState({date:n,time:s}),this._emitInput("now"),this._renderOverlay();return}i==="apply"&&(this._commit(this._pending,"apply"),this._setOpen(!1,"apply"))}}_onOverlayChange(t){const e=t.target;e instanceof HTMLSelectElement&&e.matches("select[data-segment]")&&(this._isInteractionBlocked()||this._overlay&&(this._applyTimeFromSurface(this._overlay),this._shouldAutoCommit()&&this._pending.date&&this._pending.time&&(this._commit(this._pending,"time"),this._setOpen(!1,"time"))))}_onOverlayCalendar(t){if(this._isInteractionBlocked()||this._isReadonly())return;const e=t.target;if(!e||e.tagName.toLowerCase()!=="ui-calendar")return;const i=t.type,r=t.detail,o=l.normalizeDateIso(i==="select"?r?.value||null:r?.value);if(o){if(this._pending=this._clampState({date:o,time:this._pending.time||"09:00"}),this._emitInput("calendar"),this._shouldAutoCommit()&&this._pending.time){this._commit(this._pending,"calendar"),this._setOpen(!1,"calendar");return}this._updateHostState()}}_onDocumentPointerDown(t){if(!this._open||!this._overlay)return;const e=t.composedPath();e.includes(this)||e.includes(this._overlay)||this._setOpen(!1,"outside")}_onDocumentKeyDown(t){this._open&&t.key==="Escape"&&(t.preventDefault(),this._setOpen(!1,"escape"))}_updateHostState(){if(!this._hasView)return;const t=this.getAttribute("label")||"",e=this.getAttribute("hint")||"",i=this.getAttribute("error")||"",r=this._inlineError||i,o=!!y(this._value),a=this.getAttribute("name")||"",n=this._allowInput()?this._draft:this._formatDisplay(this._value),s=this._isInlineMode(),u=this._translations(),f=r?"error":this._state();this._state()==="loading"?this.setAttribute("aria-busy","true"):this.removeAttribute("aria-busy");const _=this.root.querySelector(".label"),x=this.root.querySelector(".label-text"),A=this.root.querySelector(".required"),d=this.root.querySelector(".input"),I=this.root.querySelector('.btn[data-action="clear"]'),v=this.root.querySelector('.btn[data-action="toggle"]'),g=this.root.querySelector(".hint"),S=this.root.querySelector(".error"),w=this.root.querySelector(".hidden-input");if(_&&(_.hidden=!t),_&&(_.id=this._labelId,_.setAttribute("for",this._inputId)),x&&(x.textContent=t),A&&(A.hidden=!this.hasAttribute("required")),d&&(d.value!==n&&(d.value=n),d.id=this._inputId,d.placeholder=u.dateTimePlaceholder,d.readOnly=!this._allowInput()||this._isReadonly(),d.disabled=this._isInteractionBlocked(),d.required=this.hasAttribute("required"),d.autocomplete="off",d.setAttribute("role","combobox"),d.setAttribute("aria-haspopup","dialog"),d.setAttribute("aria-expanded",s?"false":String(this._open)),d.setAttribute("aria-controls",this._panelId),d.setAttribute("aria-invalid",r?"true":"false"),P.syncControlName(d,this,t?this._labelId:null,d.placeholder)),I&&(I.hidden=!(this._clearable()&&o),I.setAttribute("aria-label",u.clear),I.disabled=this._isInteractionBlocked()),v&&(v.hidden=s,v.setAttribute("aria-label",u.toggleCalendar),v.setAttribute("aria-expanded",s?"false":String(this._open)),v.setAttribute("aria-controls",this._panelId),v.disabled=this._isInteractionBlocked()),g&&(g.id=this._hintId,g.hidden=!e,g.textContent=e),S&&(S.id=this._errorId,S.hidden=!r,S.textContent=r),d){const b=[];e&&g&&!g.hidden&&b.push(this._hintId),r&&b.push(this._errorId),P.syncControlDescription(d,this,this._uid,b)}w&&(w.disabled=!a,w.name=a,w.value=y(this._value)||"");const C=this.root.querySelector(".field");C&&(C.dataset.open=this._open&&!s?"true":"false",C.dataset.invalid=r?"true":"false",C.dataset.state=f);const c=this.root.querySelector(".inline-panel");if(c){c.hidden=!s,c.id=this._panelId,c.dataset.bare=this._isBare()?"true":"false",c.setAttribute("role","dialog"),c.setAttribute("aria-modal","false"),c.setAttribute("aria-label",t||u.selectDate);const b=c.querySelector(".panel-title");b&&(b.textContent=t,b.hidden=!t);const D=c.querySelector(".head-title");D&&(D.textContent=t,D.hidden=!t);const T=c.querySelector(".head-meta");T&&(T.textContent=this._pending.date&&this._pending.time?this._formatDisplay(this._pending):u.selectDate);const L=c.querySelector('[data-action="now"]');L&&(L.textContent=u.now);const E=c.querySelector('[data-action="clear"]');E&&(E.textContent=u.clear);const R=c.querySelector('[data-action="apply"]');R&&(R.textContent=u.apply);const q=c.querySelector(".footer");q&&(q.hidden=!this._showFooter());const M=c.querySelector(".dt-calendar-inline");M&&this._syncCalendar(M);const $=c.querySelector('select[data-segment="hours"]'),O=c.querySelector('select[data-segment="minutes"]'),B=c.querySelector('select[data-segment="meridiem"]'),k=l.parseTimeInput(this._pending.time||"00:00")||{hours:0,minutes:0};if($){const z=this._is12h()?k.hours%12||12:k.hours;this._setClosestOptionValue($,z),$.disabled=this._isInteractionBlocked()||this._isReadonly()}O&&(this._setClosestOptionValue(O,k.minutes),O.disabled=this._isInteractionBlocked()||this._isReadonly()),B&&(B.value=k.hours>=12?"pm":"am",B.disabled=this._isInteractionBlocked()||this._isReadonly()),c.querySelectorAll(".action").forEach(z=>{z.disabled=this._isInteractionBlocked()||this._isReadonly()})}!s&&this._open&&this._syncOverlayState(),s&&this._destroyOverlay()}render(){if(!this._hasView){const t=this._translations();this.setContent(`
|
|
490
497
|
<style>${J}</style>
|
|
491
498
|
<div class="root">
|
|
492
499
|
<label class="label" part="label" id="${this._labelId}">
|