@ecopages/radiant-ui 0.1.0-beta.7 → 0.1.0-beta.8
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 +1 -1
- package/dist/components/ui/alert/alert.css +88 -50
- package/dist/components/ui/alert/alert.d.ts +43 -5
- package/dist/components/ui/alert/alert.script.d.ts +51 -4
- package/dist/components/ui/alert/index.d.ts +2 -2
- package/dist/components/ui/alert/index.js +1 -1
- package/dist/components/ui/alert/index.js.map +4 -4
- package/dist/components/ui/autocomplete/autocomplete.css +4 -4
- package/dist/components/ui/autocomplete/autocomplete.d.ts +15 -5
- package/dist/components/ui/autocomplete/autocomplete.script.d.ts +9 -0
- package/dist/components/ui/autocomplete/index.js +1 -1
- package/dist/components/ui/autocomplete/index.js.map +4 -4
- package/dist/components/ui/avatar/avatar.d.ts +15 -1
- package/dist/components/ui/avatar/index.js +1 -1
- package/dist/components/ui/avatar/index.js.map +4 -4
- package/dist/components/ui/breadcrumb/breadcrumb.d.ts +32 -6
- package/dist/components/ui/breadcrumb/index.js +1 -1
- package/dist/components/ui/breadcrumb/index.js.map +4 -4
- package/dist/{styles/components → components/ui/button}/button.css +45 -31
- package/dist/components/ui/button/button.d.ts +21 -4
- package/dist/components/ui/button-group/button-group.d.ts +7 -1
- package/dist/components/ui/button-group/index.js +1 -1
- package/dist/components/ui/button-group/index.js.map +4 -4
- package/dist/components/ui/calendar/calendar.css +7 -7
- package/dist/components/ui/calendar/calendar.d.ts +3 -2
- package/dist/components/ui/calendar/calendar.script.d.ts +39 -1
- package/dist/components/ui/calendar/index.js +1 -1
- package/dist/components/ui/calendar/index.js.map +4 -4
- package/dist/components/ui/carousel/carousel.d.ts +32 -6
- package/dist/components/ui/carousel/carousel.script.d.ts +44 -0
- package/dist/components/ui/carousel/index.js +1 -1
- package/dist/components/ui/carousel/index.js.map +4 -4
- package/dist/components/ui/checkbox/checkbox.css +1 -1
- package/dist/components/ui/checkbox/checkbox.d.ts +3 -2
- package/dist/components/ui/checkbox/checkbox.script.d.ts +4 -0
- package/dist/components/ui/checkbox/index.js +1 -1
- package/dist/components/ui/checkbox/index.js.map +4 -4
- package/dist/components/ui/chip/chip.d.ts +8 -0
- package/dist/components/ui/chip/index.js +1 -1
- package/dist/components/ui/chip/index.js.map +4 -4
- package/dist/components/ui/chip-list/chip-list.d.ts +10 -2
- package/dist/components/ui/chip-list/index.js +1 -1
- package/dist/components/ui/chip-list/index.js.map +4 -4
- package/dist/components/ui/combobox/combobox.css +39 -1
- package/dist/components/ui/combobox/combobox.d.ts +15 -5
- package/dist/components/ui/combobox/combobox.script.d.ts +13 -1
- package/dist/components/ui/combobox/index.js +1 -1
- package/dist/components/ui/combobox/index.js.map +4 -4
- package/dist/components/ui/cycle-toggle/cycle-toggle.css +15 -0
- package/dist/components/ui/cycle-toggle/cycle-toggle.d.ts +29 -0
- package/dist/components/ui/cycle-toggle/cycle-toggle.script.d.ts +61 -0
- package/dist/components/ui/cycle-toggle/index.d.ts +5 -0
- package/dist/components/ui/cycle-toggle/index.js +2 -0
- package/dist/components/ui/cycle-toggle/index.js.map +7 -0
- package/dist/components/ui/cycle-toggle/theme-preference-icons.d.ts +12 -0
- package/dist/components/ui/date-field/date-field.css +37 -0
- package/dist/components/ui/date-field/date-field.d.ts +22 -3
- package/dist/components/ui/date-field/date-field.script.d.ts +29 -5
- package/dist/components/ui/date-field/index.d.ts +1 -1
- package/dist/components/ui/date-field/index.js +1 -1
- package/dist/components/ui/date-field/index.js.map +4 -4
- package/dist/components/ui/date-range-picker/date-range-picker.css +37 -0
- package/dist/components/ui/date-range-picker/date-range-picker.d.ts +37 -4
- package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +31 -5
- package/dist/components/ui/date-range-picker/index.d.ts +1 -1
- package/dist/components/ui/date-range-picker/index.js +1 -1
- package/dist/components/ui/date-range-picker/index.js.map +4 -4
- package/dist/components/ui/dialog/dialog.css +1 -1
- package/dist/components/ui/dialog/dialog.d.ts +30 -5
- package/dist/components/ui/dialog/dialog.script.d.ts +3 -0
- package/dist/components/ui/dialog/index.js +1 -1
- package/dist/components/ui/dialog/index.js.map +4 -4
- package/dist/components/ui/disclosure/disclosure-group.css +1 -1
- package/dist/components/ui/disclosure/disclosure-group.script.d.ts +6 -0
- package/dist/components/ui/disclosure/disclosure.d.ts +26 -7
- package/dist/components/ui/disclosure/disclosure.script.d.ts +5 -0
- package/dist/components/ui/disclosure/index.js +1 -1
- package/dist/components/ui/disclosure/index.js.map +4 -4
- package/dist/components/ui/feed/feed.d.ts +37 -7
- package/dist/components/ui/feed/index.js +1 -1
- package/dist/components/ui/feed/index.js.map +4 -4
- package/dist/components/ui/field/field-description.d.ts +5 -1
- package/dist/components/ui/field/field-error.d.ts +5 -0
- package/dist/components/ui/field/field.d.ts +8 -1
- package/dist/components/ui/field/field.script.d.ts +35 -0
- package/dist/components/ui/field/index.js +1 -1
- package/dist/components/ui/field/index.js.map +4 -4
- package/dist/components/ui/form/control-protocol.d.ts +6 -0
- package/dist/components/ui/form/form.d.ts +2 -1
- package/dist/components/ui/form/form.script.d.ts +16 -1
- package/dist/components/ui/form/index.d.ts +1 -1
- package/dist/components/ui/form/index.js +1 -1
- package/dist/components/ui/form/index.js.map +4 -4
- package/dist/components/ui/grid/grid.d.ts +12 -2
- package/dist/components/ui/grid/grid.script.d.ts +14 -0
- package/dist/components/ui/grid/index.js +1 -1
- package/dist/components/ui/grid/index.js.map +4 -4
- package/dist/components/ui/heading/heading.d.ts +26 -4
- package/dist/components/ui/heading/index.js +1 -1
- package/dist/components/ui/heading/index.js.map +4 -4
- package/dist/components/ui/headline/headline.d.ts +9 -1
- package/dist/components/ui/headline/index.js +1 -1
- package/dist/components/ui/headline/index.js.map +4 -4
- package/dist/components/ui/input/index.d.ts +1 -1
- package/dist/components/ui/input/index.js +1 -1
- package/dist/components/ui/input/index.js.map +4 -4
- package/dist/components/ui/input/input.css +2 -7
- package/dist/components/ui/input/input.d.ts +7 -2
- package/dist/components/ui/label/index.js +1 -1
- package/dist/components/ui/label/index.js.map +4 -4
- package/dist/components/ui/label/label.d.ts +8 -1
- package/dist/components/ui/listbox/index.js +1 -1
- package/dist/components/ui/listbox/index.js.map +4 -4
- package/dist/components/ui/listbox/listbox.css +2 -5
- package/dist/components/ui/listbox/listbox.d.ts +7 -3
- package/dist/components/ui/listbox/listbox.script.d.ts +14 -1
- package/dist/components/ui/menu-button/index.d.ts +1 -1
- package/dist/components/ui/menu-button/index.js +1 -1
- package/dist/components/ui/menu-button/index.js.map +4 -4
- package/dist/components/ui/menu-button/menu-button.css +2 -2
- package/dist/components/ui/menu-button/menu-button.d.ts +27 -5
- package/dist/components/ui/menu-button/menu-button.script.d.ts +8 -3
- package/dist/components/ui/menubar/index.js +1 -1
- package/dist/components/ui/menubar/index.js.map +4 -4
- package/dist/components/ui/menubar/menubar.css +4 -4
- package/dist/components/ui/menubar/menubar.d.ts +14 -2
- package/dist/components/ui/menubar/menubar.script.d.ts +10 -1
- package/dist/components/ui/meter/index.js +1 -1
- package/dist/components/ui/meter/index.js.map +4 -4
- package/dist/components/ui/meter/meter.css +1 -1
- package/dist/components/ui/meter/meter.d.ts +7 -2
- package/dist/components/ui/meter/meter.script.d.ts +21 -0
- package/dist/components/ui/navigation-menu/index.js +1 -1
- package/dist/components/ui/navigation-menu/index.js.map +4 -4
- package/dist/components/ui/navigation-menu/navigation-menu.css +2 -2
- package/dist/components/ui/navigation-menu/navigation-menu.d.ts +3 -2
- package/dist/components/ui/navigation-menu/navigation-menu.script.d.ts +4 -0
- package/dist/components/ui/number-field/index.d.ts +1 -1
- package/dist/components/ui/number-field/index.js +1 -1
- package/dist/components/ui/number-field/index.js.map +4 -4
- package/dist/components/ui/number-field/number-field.css +18 -3
- package/dist/components/ui/number-field/number-field.d.ts +36 -8
- package/dist/components/ui/number-field/number-field.script.d.ts +28 -1
- package/dist/components/ui/popover/index.js +1 -1
- package/dist/components/ui/popover/index.js.map +4 -4
- package/dist/components/ui/popover/popover.d.ts +5 -4
- package/dist/components/ui/popover/popover.script.d.ts +4 -0
- package/dist/components/ui/radio-group/index.d.ts +1 -1
- package/dist/components/ui/radio-group/index.js +1 -1
- package/dist/components/ui/radio-group/index.js.map +4 -4
- package/dist/components/ui/radio-group/radio-group.d.ts +29 -4
- package/dist/components/ui/radio-group/radio-group.script.d.ts +14 -9
- package/dist/components/ui/select/index.js +1 -1
- package/dist/components/ui/select/index.js.map +4 -4
- package/dist/components/ui/select/select.css +48 -6
- package/dist/components/ui/select/select.d.ts +29 -8
- package/dist/components/ui/select/select.script.d.ts +7 -0
- package/dist/components/ui/sidebar/index.js +1 -1
- package/dist/components/ui/sidebar/index.js.map +4 -4
- package/dist/components/ui/sidebar/sidebar-trigger.script.d.ts +4 -0
- package/dist/components/ui/sidebar/sidebar.css +41 -24
- package/dist/components/ui/sidebar/sidebar.d.ts +68 -14
- package/dist/components/ui/sidebar/sidebar.docs.css +5 -2
- package/dist/components/ui/sidebar/sidebar.script.d.ts +9 -0
- package/dist/components/ui/slider/index.js +1 -1
- package/dist/components/ui/slider/index.js.map +4 -4
- package/dist/components/ui/slider/slider.d.ts +2 -1
- package/dist/components/ui/slider/slider.script.d.ts +29 -1
- package/dist/components/ui/switch/index.js +1 -1
- package/dist/components/ui/switch/index.js.map +4 -4
- package/dist/components/ui/switch/switch.css +3 -3
- package/dist/components/ui/switch/switch.d.ts +11 -2
- package/dist/components/ui/switch/switch.script.d.ts +5 -0
- package/dist/components/ui/tabs/index.js +1 -1
- package/dist/components/ui/tabs/index.js.map +4 -4
- package/dist/components/ui/tabs/tabs.css +9 -10
- package/dist/components/ui/tabs/tabs.d.ts +30 -9
- package/dist/components/ui/tag-group/index.js +1 -1
- package/dist/components/ui/tag-group/index.js.map +4 -4
- package/dist/components/ui/tag-group/tag-group.css +2 -11
- package/dist/components/ui/tag-group/tag-group.d.ts +18 -5
- package/dist/components/ui/tag-group/tag-group.script.d.ts +9 -2
- package/dist/components/ui/textarea/index.d.ts +1 -1
- package/dist/components/ui/textarea/index.js +1 -1
- package/dist/components/ui/textarea/index.js.map +4 -4
- package/dist/components/ui/textarea/textarea.d.ts +7 -2
- package/dist/components/ui/toast/index.d.ts +1 -1
- package/dist/components/ui/toast/index.js +1 -1
- package/dist/components/ui/toast/index.js.map +4 -4
- package/dist/components/ui/toast/stack-layout.d.ts +18 -0
- package/dist/components/ui/toast/toast-context.d.ts +10 -0
- package/dist/components/ui/toast/toast.css +30 -9
- package/dist/components/ui/toast/toast.d.ts +12 -2
- package/dist/components/ui/toast/toast.script.d.ts +60 -4
- package/dist/components/ui/toast/toaster.script.d.ts +71 -2
- package/dist/components/ui/toc/index.js +1 -1
- package/dist/components/ui/toc/index.js.map +4 -4
- package/dist/components/ui/toc/toc.css +3 -0
- package/dist/components/ui/toc/toc.d.ts +2 -1
- package/dist/components/ui/toc/toc.script.d.ts +15 -0
- package/dist/components/ui/toolbar/index.js +1 -1
- package/dist/components/ui/toolbar/index.js.map +4 -4
- package/dist/components/ui/toolbar/toolbar.d.ts +3 -2
- package/dist/components/ui/toolbar/toolbar.script.d.ts +8 -0
- package/dist/components/ui/tooltip/index.js +1 -1
- package/dist/components/ui/tooltip/index.js.map +4 -4
- package/dist/components/ui/tooltip/tooltip.d.ts +3 -2
- package/dist/components/ui/tooltip/tooltip.script.d.ts +3 -0
- package/dist/components/ui/tree/index.js +1 -1
- package/dist/components/ui/tree/index.js.map +4 -4
- package/dist/components/ui/tree/tree.d.ts +12 -2
- package/dist/components/ui/tree/tree.script.d.ts +18 -1
- package/dist/components/ui/treegrid/index.js +1 -1
- package/dist/components/ui/treegrid/index.js.map +4 -4
- package/dist/components/ui/treegrid/treegrid.d.ts +15 -2
- package/dist/components/ui/treegrid/treegrid.script.d.ts +22 -1
- package/dist/components/ui/window-splitter/index.js +1 -1
- package/dist/components/ui/window-splitter/index.js.map +4 -4
- package/dist/components/ui/window-splitter/window-splitter.css +1 -1
- package/dist/components/ui/window-splitter/window-splitter.d.ts +3 -2
- package/dist/components/ui/window-splitter/window-splitter.script.d.ts +22 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +4 -4
- package/dist/lib/cycle-value.d.ts +8 -0
- package/dist/lib/intl-number/range.d.ts +8 -0
- package/dist/styles/radiant-ui-core.css +110 -341
- package/dist/styles/radiant-ui.css +413 -377
- package/dist/styles/styles.css +839 -2731
- package/dist/styles/tailwind.css +626 -530
- package/dist/styles/tokens/colors/aurora.css +2 -2
- package/dist/styles/tokens/colors/basalt.css +2 -1
- package/dist/styles/tokens/colors/glacier.css +2 -1
- package/dist/styles/tokens/presets/colors/aurora.css +42 -14
- package/dist/styles/tokens/presets/colors/basalt.css +28 -0
- package/dist/styles/tokens/presets/colors/ember.css +28 -0
- package/dist/styles/tokens/presets/colors/glacier.css +28 -0
- package/dist/styles/tokens/semantic.css +22 -2
- package/dist/styles/tokens/spacing/compact.css +12 -12
- package/package.json +21 -8
- package/dist/components/ui/dialog/dialog-registry.test.d.ts +0 -1
- package/dist/components/ui/field/field-ssr-hydration.test.d.ts +0 -1
- package/dist/components/ui/form/form-field.test.d.ts +0 -4
- package/dist/components/ui/form/form-store.test.d.ts +0 -1
- package/dist/components/ui/shared/collection-navigation.test.d.ts +0 -1
- package/dist/components/ui/shared/floating-position.test.d.ts +0 -1
- package/dist/components/ui/shared/listbox-popover-behavior.test.d.ts +0 -1
- package/dist/components/ui/shared/popover-controller.test.d.ts +0 -1
- package/dist/components/ui/shared/portal.test.d.ts +0 -1
- package/dist/components/ui/sidebar/sidebar.ssr.test.d.ts +0 -2
- package/dist/components/ui/sidebar/sidebar.test.d.ts +0 -1
- package/dist/components/ui/toast/toast.test.d.ts +0 -2
- package/dist/components/ui/toc/toc-helpers.test.d.ts +0 -1
- package/dist/components/ui/toc/toc.ssr.test.d.ts +0 -1
- package/dist/components/ui/toc/toc.test.d.ts +0 -1
- package/dist/lib/intl-date/parts.test.d.ts +0 -1
- package/dist/lib/intl-date/segments.test.d.ts +0 -1
- package/dist/lib/intl-date/selection.test.d.ts +0 -1
- package/dist/lib/mask/date-mask.test.d.ts +0 -1
- package/dist/lib/mask/input-mask.test.d.ts +0 -1
- package/dist/lib/radiant-view.d.ts +0 -43
- package/dist/lib/text-filter.test.d.ts +0 -1
- package/dist/styles/tokens/presets/radius.css +0 -45
- package/dist/styles/tokens/presets/spacing.css +0 -57
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { RadiantElement } from '@ecopages/radiant';
|
|
2
2
|
import type { EventEmitter } from '@ecopages/radiant/tools/event-emitter';
|
|
3
3
|
import type { DateDisplayStyle } from '@/lib/intl-date';
|
|
4
|
-
import '../calendar/calendar.script';
|
|
5
4
|
export type RuiDateRangePickerProps = {
|
|
6
5
|
value?: string;
|
|
7
6
|
min?: string;
|
|
@@ -32,14 +31,38 @@ type RuiDateRangePickerBindings = {
|
|
|
32
31
|
* `<rui-date-range-picker>` — start/end date fields with a range calendar popover.
|
|
33
32
|
*
|
|
34
33
|
* Canonical `value` is `YYYY-MM-DD/YYYY-MM-DD`. Pair with `RuiField` for validation.
|
|
34
|
+
* Compose inputs, a toggle, popover, and calendar with the `RuiDateRangePicker*`
|
|
35
|
+
* view helpers. `RuiDateRangePicker` supplies that composition when it has no children.
|
|
35
36
|
*
|
|
36
37
|
* @remarks Range entry is intentionally free-text plus calendar based. Masked
|
|
37
38
|
* segment editing is currently limited to `RuiDateField` so two range inputs do
|
|
38
39
|
* not maintain separate partial-mask state.
|
|
39
40
|
*
|
|
40
41
|
* @see https://react-aria.adobe.com/DateRangePicker
|
|
42
|
+
*
|
|
41
43
|
* @element rui-date-range-picker
|
|
42
|
-
*
|
|
44
|
+
*
|
|
45
|
+
* @attr {string} value - Canonical `YYYY-MM-DD/YYYY-MM-DD` range. Default: `''`.
|
|
46
|
+
* @attr {string} min - Earliest selectable ISO date. Default: `''`.
|
|
47
|
+
* @attr {string} max - Latest selectable ISO date. Default: `''`.
|
|
48
|
+
* @attr {boolean} disabled - Disable both inputs and the calendar. Default: `false`.
|
|
49
|
+
* @attr {boolean} read-only - Disable editing while keeping values visible. Default: `false`.
|
|
50
|
+
* @attr {string} locale - BCP 47 locale tag, or comma-separated fallback list. Default: `''`.
|
|
51
|
+
* @attr {string} placeholder-start - Placeholder for the start input. Default: `Start date`.
|
|
52
|
+
* @attr {string} placeholder-end - Placeholder for the end input. Default: `End date`.
|
|
53
|
+
* @attr {string} start-name - Native `name` for the start input. Default: `''`.
|
|
54
|
+
* @attr {string} end-name - Native `name` for the end input. Default: `''`.
|
|
55
|
+
* @attr {string} date-style - How committed values are displayed in the inputs. Default: `medium`.
|
|
56
|
+
* @attr {number} visible-months - Month grids shown in the range calendar popover. Default: `2`.
|
|
57
|
+
*
|
|
58
|
+
* @fires rui-change - Emitted when a valid range is committed; detail carries `value`, `start`, and `end`.
|
|
59
|
+
*
|
|
60
|
+
* @cssclass rui-date-range-picker - Root surface.
|
|
61
|
+
* @cssclass rui-date-range-picker__group - Bordered control-height row wrapping inputs and toggle.
|
|
62
|
+
* @cssclass rui-date-range-picker__values - Start / end input row.
|
|
63
|
+
* @cssclass rui-date-range-picker__input - A range text input.
|
|
64
|
+
* @cssclass rui-date-range-picker__separator - Em dash between the inputs.
|
|
65
|
+
* @cssclass rui-date-range-picker__popover - Range calendar popup shell (`rui-popover` / `rui-floating`).
|
|
43
66
|
*/
|
|
44
67
|
export declare class RuiDateRangePicker extends RadiantElement<RuiDateRangePickerBindings> {
|
|
45
68
|
value: string;
|
|
@@ -60,15 +83,15 @@ export declare class RuiDateRangePicker extends RadiantElement<RuiDateRangePicke
|
|
|
60
83
|
startDisplay: string;
|
|
61
84
|
endDisplay: string;
|
|
62
85
|
editing: EditingField;
|
|
63
|
-
private readonly uid;
|
|
64
86
|
private popoverController;
|
|
65
87
|
private suppressPopoverDismiss;
|
|
66
|
-
rootTarget: HTMLElement;
|
|
67
88
|
popoverTarget: HTMLElement;
|
|
68
89
|
private get resolvedLocale();
|
|
69
90
|
private get isoValue();
|
|
70
91
|
private getStartInput;
|
|
71
92
|
private getEndInput;
|
|
93
|
+
private getToggle;
|
|
94
|
+
private getCalendar;
|
|
72
95
|
private formatIso;
|
|
73
96
|
private syncDisplayValues;
|
|
74
97
|
private isIsoAllowed;
|
|
@@ -76,8 +99,12 @@ export declare class RuiDateRangePicker extends RadiantElement<RuiDateRangePicke
|
|
|
76
99
|
private parseField;
|
|
77
100
|
private commitFromInputs;
|
|
78
101
|
private setOpen;
|
|
102
|
+
/** Focus the calendar's roving day, falling back to its first available day. */
|
|
103
|
+
private focusCalendarDay;
|
|
79
104
|
private ensurePopoverController;
|
|
80
105
|
private syncPopoverPosition;
|
|
106
|
+
private syncToggle;
|
|
107
|
+
private syncCalendar;
|
|
81
108
|
private wireInputNames;
|
|
82
109
|
private initialize;
|
|
83
110
|
connectedCallback(): void;
|
|
@@ -94,6 +121,5 @@ export declare class RuiDateRangePicker extends RadiantElement<RuiDateRangePicke
|
|
|
94
121
|
onCalendarChange(event: Event): void;
|
|
95
122
|
onRootKeydown(event: KeyboardEvent): void;
|
|
96
123
|
onRootFocusOut(event: FocusEvent): void;
|
|
97
|
-
render(): import("@ecopages/jsx").JsxRenderable;
|
|
98
124
|
}
|
|
99
125
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { RuiDateRangePicker as RuiDateRangePickerElement, type RuiDateRangePickerProps, type RuiDateRangePickerChangeDetail, } from './date-range-picker.script';
|
|
2
|
-
export { RuiDateRangePicker } from './date-range-picker';
|
|
2
|
+
export { RuiDateRangePicker, RuiDateRangePickerCalendar, RuiDateRangePickerControl, RuiDateRangePickerEndInput, RuiDateRangePickerInputs, RuiDateRangePickerPopover, RuiDateRangePickerSeparator, RuiDateRangePickerStartInput, RuiDateRangePickerToggle, type RuiDateRangePickerViewProps, } from './date-range-picker';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as P,jsxs as at}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as Pe,customElement as ln,event as un,onEvent as I,onUpdated as Oe,prop as x,query as Ce,state as H}from"@ecopages/radiant";function N(e){if(e==null)return null;let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());if(!t)return null;let n=Number(t[1]),r=Number(t[2])-1,i=Number(t[3]),a=new Date(n,r,i);return a.getFullYear()!==n||a.getMonth()!==r||a.getDate()!==i?null:a}function tt(e){let t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return`${t}-${n}-${r}`}function vt(e,t){return e.localeCompare(t)}function et(e,t){return vt(e,t)<=0?{start:e,end:t}:{start:t,end:e}}function C(e){if(!e)return null;let[t,n]=e.split("/");return!t||!n?null:et(t,n)}function nt(e){if(!e)return"";let t=et(e.start,e.end);return`${t.start}/${t.end}`}var _t=new Map;function Le(e,t){return`${JSON.stringify(e??null)}|${JSON.stringify(t)}`}function T(e,t){let n=Le(e,t),r=_t.get(n);if(r)return r;let i=new Intl.DateTimeFormat(e,t);return _t.set(n,i),i}function rt(e,t,n="medium"){return T(t,{dateStyle:n}).format(e)}var $e={0:"digit",a:"letter","*":"any"};function je(e,t){let n=t?.[e];if(n instanceof RegExp)return{kind:"any",pattern:n};if(n)return{kind:n};let r=$e[e];return r?{kind:r}:null}function bt(e,t,n=!1){let r=[],i=0;for(;i<e.length;){let a=e[i];if(a==="\\"){let o=e[i+1];o&&r.push({type:"literal",value:o}),i+=2;continue}if(a==="{"){let o=e.indexOf("}",i+1);if(o<0){r.push({type:"literal",value:"{"}),i+=1;continue}r.push({type:"fixed",value:e.slice(i+1,o)}),i=o+1;continue}if(a==="["){let o=Be(e,i+1);if(o<0){r.push({type:"literal",value:"["}),i+=1;continue}let l=bt(e.slice(i+1,o),t,!0);r.push(...l),i=o+1;continue}if(a==="]")break;let s=je(a,t);if(s){r.push({type:"input",definition:a,kind:s.kind,pattern:s.pattern,optional:n}),i+=1;continue}r.push({type:"literal",value:a}),i+=1}return r}function Be(e,t){let n=1;for(let r=t;r<e.length;r+=1)if(e[r]==="["&&e[r-1]!=="\\"&&(n+=1),e[r]==="]"&&e[r-1]!=="\\"&&(n-=1,n===0))return r;return-1}function Dt(e,t){return bt(e,t)}function wt(e,t={}){return e.filter(n=>n.type==="input"&&(!t.requiredOnly||!n.optional)).length}var It=new Date(2001,8,3);function We(e){return T(e,{year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(It).filter(t=>t.type==="year"||t.type==="month"||t.type==="day").map(t=>t.type)}function St(e){let t=T(e,{year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(It),n="";for(let r of t){if(r.type==="literal"){n+=r.value;continue}(r.type==="month"||r.type==="day"||r.type==="year")&&(n+=r.value.replace(/\d/g,"0"))}return n}function Rt(e){return e.replace(/\D/g,"")}function Et(e){return wt(Dt(e),{requiredOnly:!0})}function Ue(e){return e>=100?e:e>=69?1900+e:2e3+e}function kt(e,t){let n=We(t),r=0,i={};for(let a of n){let s=a==="year"?4:2,o=e.slice(r,r+s);if(o.length<s)return null;let l=Number(o);a==="year"&&(l=Ue(l)),i[a]=l,r+=s}return i}function Tt(e){if(e.year==null||e.month==null||e.day==null)return null;let t=new Date(e.year,e.month-1,e.day);return t.getFullYear()!==e.year||t.getMonth()!==e.month-1||t.getDate()!==e.day?null:t}var ze=new Date(2001,8,3);function Mt(e){return T(e,{year:"numeric",month:"numeric",day:"numeric"}).formatToParts(ze).filter(n=>n.type==="year"||n.type==="month"||n.type==="day").map(n=>n.type)}function Pt(e){return e>=100?e:e>=69?1900+e:2e3+e}function Ot(e){let t=e.year,n=e.month,r=e.day;if(!Number.isFinite(t)||!Number.isFinite(n)||!Number.isFinite(r))return null;let i=new Date(t,n-1,r);return i.getFullYear()!==t||i.getMonth()!==n-1||i.getDate()!==r?null:i}function it(e,t){let n=(e??"").trim();if(!n)return null;let r=N(n);if(r)return r;let i=He(n,t);if(i)return i;let a=Ye(n,t);if(a)return a;let s=Mt(t),o=n.match(/\d+/g);if(!o||o.length<3)return null;let l={day:0,month:0,year:0};for(let f=0;f<3;f+=1){let m=s[f];if(!m)return null;let g=Number(o[f]);m==="year"&&(g=Pt(g)),l[m]=g}return Ot(l)}function He(e,t){let n=St(t),r=Rt(e);return r.length<Et(n)?null:Tt(kt(r,t)??{})}function qe(e){let t=new Map;for(let n of["short","long"])for(let r=0;r<12;r+=1){let i=T(e,{month:n}).formatToParts(new Date(2020,r,1)).find(a=>a.type==="month")?.value;i&&t.set(i.toLowerCase(),r+1)}return t}function Ye(e,t){let n=qe(t),r=e.toLowerCase();for(let[i,a]of n){if(r.indexOf(i)<0)continue;let o=e.match(/\d+/g);if(!o||o.length<2)continue;let l=o.find(v=>v.length===4)??o[o.length-1],f=o.find(v=>v!==l&&Number(v)<=31);if(!f||!l)continue;let m=Pt(Number(l)),g=Number(f);return Ot({year:m,month:a,day:g})}return null}import{jsx as U,jsxs as Ge}from"@ecopages/jsx/jsx-runtime";function Ct(...e){return e.filter(Boolean).join(" ")}function ot({class:e,size:t="sm",...n}){return Ge("svg",{...n,class:Ct("rui-icon",t==="md"&&"rui-icon--md",e),viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[U("path",{d:"M8 2v4"}),U("path",{d:"M16 2v4"}),U("rect",{width:"18",height:"18",x:"3",y:"4",rx:"2"}),U("path",{d:"M3 10h18"})]})}function Ft(e){if(!e)return;let t=e.split(",").map(n=>n.trim()).filter(Boolean);return t.length>1?t:t[0]}var Ke={top:"bottom",bottom:"top",left:"right",right:"left"},Je=8;function Xe(e){let t=e.indexOf("-");if(t===-1)return{side:e,align:"center"};let n=e.slice(0,t),r=e.slice(t+1);return{side:n,align:r==="start"||r==="end"?r:"center"}}function Vt(e){return e==="top"||e==="bottom"?"y":"x"}function At(e,t,n,r,i){let{width:a,height:s}=t,o=0,l=0;switch(n){case"top":l=e.top-s-i;break;case"bottom":l=e.bottom+i;break;case"left":o=e.left-a-i;break;case"right":o=e.right+i;break}return Vt(n)==="y"?r==="start"?o=e.left:r==="end"?o=e.right-a:o=e.left+(e.width-a)/2:r==="start"?l=e.top:r==="end"?l=e.bottom-s:l=e.top+(e.height-s)/2,{x:o,y:l}}function Qe(e,t,n,r){let{padding:i,width:a,height:s}=r;return n==="top"?Math.max(0,i-e.y):n==="bottom"?Math.max(0,e.y+t.height-(s-i)):n==="left"?Math.max(0,i-e.x):Math.max(0,e.x+t.width-(a-i))}function Nt(e,t,n,r){let{padding:i,width:a,height:s}=r;return n==="top"?e.top-i-t.height:n==="bottom"?s-i-t.height-e.bottom:n==="left"?e.left-i-t.width:a-i-t.width-e.right}function Ze(e,t){return t==="center"?e:`${e}-${t}`}function tn(e,t,n,r){let{padding:i,width:a,height:s}=r;if(Vt(n)==="y"){let l=Math.max(i,a-i-t.width);return{x:Math.min(Math.max(e.x,i),l),y:e.y}}let o=Math.max(i,s-i-t.height);return{x:e.x,y:Math.min(Math.max(e.y,i),o)}}function en(e,t,n,r,i={width:typeof window>"u"?0:window.innerWidth,height:typeof window>"u"?0:window.innerHeight,padding:Je}){let{side:a,align:s}=Xe(n),o=At(e,t,a,s,r),l=Qe(o,t,a,i),f=a,m=o;if(l>0){let g=Ke[a],v=At(e,t,g,s,r),V=Nt(e,t,a,i);Nt(e,t,g,i)>V&&(f=g,m=v)}return{coords:tn(m,t,f,i),placement:Ze(f,s)}}function nn(e,t,n,r,i={}){let{coords:a,placement:s}=en(e.getBoundingClientRect(),{width:t.offsetWidth,height:t.offsetHeight},n,r);return Object.assign(t.style,{position:"fixed",left:`${a.x}px`,top:`${a.y}px`,right:"auto",bottom:"auto",visibility:"visible"}),i.matchAnchorWidth&&(t.style.width=`${e.offsetWidth}px`),t.setAttribute("data-placement",s),s}function Lt({anchor:e,floating:t,getPlacement:n,gap:r,matchAnchorWidth:i}){let a=()=>{t.hidden||nn(e,t,n(),r,{matchAnchorWidth:i})};a(),window.addEventListener("resize",a),window.addEventListener("scroll",a,!0);let s=new ResizeObserver(a);return s.observe(e),s.observe(t),()=>{window.removeEventListener("resize",a),window.removeEventListener("scroll",a,!0),s.disconnect()}}function $t(e,t=document.body){let n=e.parentNode;if(!n)return{unmount:()=>{}};let r=document.createComment("rui-portal");return n.insertBefore(r,e),t.appendChild(e),{unmount:()=>{let i=r.parentNode;i&&(i.insertBefore(e,r),r.remove())}}}function jt(e,t,n){return n?!!(e?.contains(n)||t?.contains(n)):!1}function Bt(e,t,n){return n instanceof Node?!jt(e,t,n):!0}var z=class{config;cleanupFloating=null;portalHandle=null;floatingElement=null;constructor(t){this.config=t}updateConfig(t){this.config={...this.config,...t}}sync(){let t=this.resolveFloating();if(!t)return;if(!this.config.getOpen()){this.teardown(),t.hidden=!0;return}let r=this.config.getAnchor();if(!r)return;t.hidden=!1,this.config.portal!==!1?this.portalHandle||(this.portalHandle=$t(t,this.config.portalContainer??document.body)):this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null),this.teardownFloating(),this.cleanupFloating=Lt({anchor:r,floating:t,getPlacement:this.config.getPlacement,gap:this.config.gap??8,matchAnchorWidth:this.config.matchAnchorWidth})}contains(t){return jt(this.config.getAnchor(),this.resolveFloating(),t)}getFloatingElement(){return this.resolveFloating()}teardown(){this.teardownFloating(),this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null)}destroy(){this.teardown(),this.floatingElement=null}resolveFloating(){let t=this.config.getFloating();return t&&(this.floatingElement=t),t??this.floatingElement}teardownFloating(){this.cleanupFloating?.(),this.cleanupFloating=null}};var Wt,Ut,zt,Ht,qt,Yt,Gt,Kt,Jt,Xt,Qt,Zt,te,ee,ne,re,ie,oe,ae,se,le,ue,ce,de,pe,fe,he,me,ge,ye,xe,ve,_e,be,De,we,Ie,Se,Re,Ee,ke,Te;function rn(e,t,n,r,i,a){var s,o,l,f,m,g,v,V=Symbol.metadata||Symbol.for("Symbol.metadata"),Y=Object.defineProperty,G=Object.create,st=[G(null),G(null)],lt=t.length;function L(u,D,_){return function(c,d){D&&(d=c,c=e);for(var w=0;w<u.length;w++)d=u[w].apply(c,_?[d]:[]);return _?d:c}}function E(u,D,_,c){if(typeof u!="function"&&(c||u!==void 0))throw new TypeError(D+" must "+(_||"be")+" a function"+(c?"":" or undefined"));return u}function ut(u,D,_,c,d,w,M,b,S,R,dt){function K(h){if(!dt(h))throw new TypeError("Attempted to access private element on non-instance")}var J=[].concat(D[0]),pt=D[3],X=!M,F=d===1,ft=d===3,ht=d===4,$=d===2;function j(h,O,yt){return function(W,xt){return O&&(xt=W,W=u),yt&&yt(W),p[h].call(W,xt)}}if(!X){var p={},Q=[],k=ft?"get":ht||F?"set":"value";if(S?(R||F?p={get:Me(function(){return pt(this)},c,"get"),set:function(h){D[4](this,h)}}:p[k]=pt,R||Me(p[k],c,$?"":k)):R||(p=Object.getOwnPropertyDescriptor(u,c)),!R&&!S){if((o=st[+b][c])&&(o^d)!==7)throw Error("Decorating two elements with the same name ("+p[k].name+") is not supported yet");st[+b][c]=d<3?1:d}}for(var y=u,B=J.length-1;B>=0;B-=_?2:1){var mt=E(J[B],"A decorator","be",!0),gt=_?J[B-1]:void 0,Z={},A={kind:["field","accessor","method","getter","setter","class"][d],name:c,metadata:s,addInitializer:function(h,O){if(h.v)throw new TypeError("attempted to call addInitializer after decoration was finished");E(O,"An initializer","be",!0),w.push(O)}.bind(null,Z)};if(X)o=mt.call(gt,y,A),Z.v=1,E(o,"class decorators","return")&&(y=o);else if(A.static=b,A.private=S,o=A.access={has:S?dt.bind():function(h){return c in h}},ht||(o.get=S?$?function(h){return K(h),p.value}:j("get",0,K):function(h){return h[c]}),$||ft||(o.set=S?j("set",0,K):function(h,O){h[c]=O}),y=mt.call(gt,F?{get:p.get,set:p.set}:p[k],A),Z.v=1,F){if(typeof y=="object"&&y)(o=E(y.get,"accessor.get"))&&(p.get=o),(o=E(y.set,"accessor.set"))&&(p.set=o),(o=E(y.init,"accessor.init"))&&Q.unshift(o);else if(y!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else E(y,(R?"field":"method")+" decorators","return")&&(R?Q.unshift(y):p[k]=y)}return d<2&&M.push(L(Q,b,1),L(w,b,0)),R||X||(S?F?M.splice(-1,0,j("get",b),j("set",b)):M.push($?p[k]:E.call.bind(p[k])):Y(u,c,p)),y}function ct(u){return Y(u,V,{configurable:!0,enumerable:!0,value:s})}return a!==void 0&&(s=a[V]),s=G(s??null),m=[],g=function(u){u&&m.push(L(u))},v=function(u,D){for(var _=0;_<n.length;_++){var c=n[_],d=c[1],w=7&d;if((8&d)==u&&!w==D){var M=c[2],b=!!c[3],S=16&d;ut(u?e:e.prototype,c,S,b?"#"+M:on(M),w,w<2?[]:u?f=f||[]:l=l||[],m,!!u,b,D,u&&b?function(R){return sn(R)===e}:i)}}},v(8,0),v(0,0),v(8,1),v(0,1),g(l),g(f),o=m,lt||ct(e),{e:o,get c(){var u=[];return lt&&[ct(e=ut(e,[t],r,e.name,5,u)),L(u,1)]}}}function on(e){var t=an(e,"string");return typeof t=="symbol"?t:t+""}function an(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Me(e,t,n){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+" "+t:t})}catch{}return e}function sn(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(e!==null?typeof e:"null"));return e}var q,Fe=class extends Pe{static{({e:[zt,Ht,qt,Yt,Gt,Kt,Jt,Xt,Qt,Zt,te,ee,ne,re,ie,oe,ae,se,le,ue,ce,de,pe,fe,he,me,ge,ye,xe,ve,_e,be,De,we,Ie,Se,Re,Ee,ke,Te,Wt],c:[q,Ut]}=rn(this,[ln("rui-date-range-picker")],[[x({type:String,reflect:!0,defaultValue:""}),0,"value"],[x({type:String,defaultValue:""}),0,"min"],[x({type:String,defaultValue:""}),0,"max"],[x({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[x({type:Boolean,attribute:"read-only",reflect:!0,defaultValue:!1}),0,"readOnly"],[x({type:String,defaultValue:""}),0,"locale"],[x({type:String,attribute:"placeholder-start",defaultValue:""}),0,"placeholderStart"],[x({type:String,attribute:"placeholder-end",defaultValue:""}),0,"placeholderEnd"],[x({type:String,attribute:"start-name",defaultValue:""}),0,"startName"],[x({type:String,attribute:"end-name",defaultValue:""}),0,"endName"],[x({type:String,defaultValue:""}),0,"name"],[x({type:String,attribute:"date-style",defaultValue:"medium"}),0,"dateStyle"],[x({type:Number,attribute:"visible-months",defaultValue:2}),0,"visibleMonths"],[un({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[H,0,"open"],[H,0,"startDisplay"],[H,0,"endDisplay"],[H,0,"editing"],[Ce({ref:"root"}),0,"rootTarget"],[Ce({ref:"popover"}),0,"popoverTarget"],[Oe(["value","min","max","disabled","readOnly","locale","dateStyle","startName","endName","visibleMonths"]),2,"onPropsUpdated"],[Oe(["open"]),2,"onOpenUpdated"],[I({ref:"trigger",type:"pointerdown"}),2,"onTriggerPointerDown"],[I({ref:"trigger",type:"click"}),2,"onTriggerClick"],[I({selector:"[data-range-start]",type:"focus"}),2,"onStartFocus"],[I({selector:"[data-range-end]",type:"focus"}),2,"onEndFocus"],[I({selector:"[data-range-start], [data-range-end]",type:"blur"}),2,"onInputBlur"],[I({selector:"[data-range-start], [data-range-end]",type:"input"}),2,"onInput"],[I({selector:"[data-range-popover]",type:"mousedown"}),2,"onPopoverMouseDown"],[I({ref:"root",type:"rui-change"}),2,"onCalendarChange"],[I({ref:"root",type:"keydown"}),2,"onRootKeydown"],[I({ref:"root",type:"focusout"}),2,"onRootFocusOut"]],0,void 0,Pe))}constructor(...t){super(...t),Te(this)}value=(Wt(this),zt(this));min=(Ht(this),qt(this));max=(Yt(this),Gt(this));disabled=(Kt(this),Jt(this));readOnly=(Xt(this),Qt(this));locale=(Zt(this),te(this));placeholderStart=(ee(this),ne(this));placeholderEnd=(re(this),ie(this));startName=(oe(this),ae(this));endName=(se(this),le(this));name=(ue(this),ce(this));dateStyle=(de(this),pe(this));visibleMonths=(fe(this),he(this));changeEvent=(me(this),ge(this));open=(ye(this),xe(this,!1));startDisplay=(ve(this),_e(this,""));endDisplay=(be(this),De(this,""));editing=(we(this),Ie(this,null));uid=(Se(this),Math.random().toString(36).slice(2,9));popoverController=null;suppressPopoverDismiss=!1;rootTarget=Re(this);popoverTarget=(Ee(this),ke(this));get resolvedLocale(){return Ft(this.locale)}get isoValue(){return this.value??""}getStartInput(){return this.querySelector("[data-range-start]")}getEndInput(){return this.querySelector("[data-range-end]")}formatIso(t){if(!t)return"";let n=N(t);return n?rt(n,this.resolvedLocale,this.dateStyle):""}syncDisplayValues(){if(this.editing==="start"||this.editing==="end")return;let t=C(this.isoValue);this.startDisplay=this.formatIso(t?.start??""),this.endDisplay=this.formatIso(t?.end??"");let n=this.getStartInput(),r=this.getEndInput();n&&(n.value=this.startDisplay),r&&(r.value=this.endDisplay)}isIsoAllowed(t){return!(this.min&&t<this.min||this.max&&t>this.max)}commitRange(t,n){if(t&&!this.isIsoAllowed(t)){this.syncDisplayValues();return}if(n&&!this.isIsoAllowed(n)){this.syncDisplayValues();return}let r=t&&n?nt({start:t,end:n}):"";if(r===this.isoValue){this.syncDisplayValues();return}this.value=r,this.changeEvent.emit({value:r,start:t,end:n}),this.syncDisplayValues()}parseField(t){let n=(t??"").trim();if(!n)return"";let r=it(n,this.resolvedLocale);return r?tt(r):""}commitFromInputs(){let t=this.parseField(this.getStartInput()?.value??""),n=this.parseField(this.getEndInput()?.value??"");if(!t&&!n){this.commitRange("","");return}if(t&&n){this.commitRange(t,n);return}let r=C(this.isoValue);this.commitRange(t||r?.start||"",n||r?.end||"")}setOpen(t){this.open=t,queueMicrotask(()=>this.syncPopoverPosition())}ensurePopoverController(){return this.popoverController||(this.popoverController=new z({getAnchor:()=>this.rootTarget,getFloating:()=>this.popoverTarget,getOpen:()=>this.open,getPlacement:()=>"bottom-start",gap:4,portal:!1})),this.popoverController}syncPopoverPosition(){let t=this.popoverTarget;if(!t||!this.rootTarget)return;t.hidden=!this.open;let n=this.ensurePopoverController();n.updateConfig({getOpen:()=>this.open}),n.sync()}wireInputNames(){let t=this.getStartInput(),n=this.getEndInput();t&&this.startName&&(t.name=this.startName),n&&this.endName&&(n.name=this.endName)}initialize(){this.wireInputNames(),this.syncDisplayValues(),this.setOpen(!1)}connectedCallback(){super.connectedCallback(),queueMicrotask(()=>this.initialize())}disconnectedCallback(){this.popoverController?.destroy(),this.popoverController=null,super.disconnectedCallback()}onPropsUpdated(){this.wireInputNames(),this.syncDisplayValues()}onOpenUpdated(){this.syncPopoverPosition()}onTriggerPointerDown(){this.suppressPopoverDismiss=!0}onTriggerClick(){this.disabled||this.readOnly||this.setOpen(!this.open)}onStartFocus(){this.editing="start";let t=C(this.isoValue),n=this.getStartInput();n&&(n.value=t?.start?this.formatIso(t.start):"")}onEndFocus(){this.editing="end";let t=C(this.isoValue),n=this.getEndInput();n&&(n.value=t?.end?this.formatIso(t.end):"")}onInputBlur(){this.editing=null,this.commitFromInputs()}onInput(t){let n=t.target;if(n.matches("[data-range-start]")){this.startDisplay=n.value;return}this.endDisplay=n.value}onPopoverMouseDown(t){t.preventDefault()}onCalendarChange(t){let n=t.target;if(!(n instanceof HTMLElement)||n.tagName.toLowerCase()!=="rui-calendar")return;let r=t.detail;!r?.start||!r.end||(this.commitRange(r.start,r.end),this.setOpen(!1))}onRootKeydown(t){t.key==="Escape"&&this.open&&(t.preventDefault(),this.setOpen(!1))}onRootFocusOut(t){let n=t.relatedTarget;queueMicrotask(()=>{if(this.suppressPopoverDismiss){this.suppressPopoverDismiss=!1;return}if(!this.open)return;let r=n instanceof Node?n:document.activeElement;Bt(this.rootTarget,this.popoverTarget,r)&&this.setOpen(!1)})}render(){let t={"prop:selectionMode":"range","prop:visibleMonths":this.visibleMonths,"prop:value":this.isoValue,"prop:min":this.min,"prop:max":this.max,"prop:locale":this.locale,"prop:disabled":this.disabled};return at("div",{class:"rui-date-range-picker","data-ref":"root",children:[at("div",{class:"rui-date-range-picker__group",children:[at("div",{class:"rui-date-range-picker__values",children:[P("input",{type:"text",class:"rui-date-range-picker__input","data-range-start":!0,"data-rui-control":!0,"data-rui-control-type":"text",id:`${this.uid}-start`,autocomplete:"off",disabled:this.$.disabled,readOnly:this.$.readOnly,placeholder:this.placeholderStart||"Start date"}),P("span",{class:"rui-date-range-picker__separator","aria-hidden":"true",children:"\u2013"}),P("input",{type:"text",class:"rui-date-range-picker__input","data-range-end":!0,"data-rui-control":!0,"data-rui-control-type":"text",id:`${this.uid}-end`,autocomplete:"off",disabled:this.$.disabled,readOnly:this.$.readOnly,placeholder:this.placeholderEnd||"End date"})]}),P("button",{type:"button",class:"rui-control-toggle","data-ref":"trigger","data-range-trigger":!0,"aria-label":"Open calendar","aria-haspopup":"dialog","aria-expanded":this.open?"true":"false",disabled:this.$.disabled||this.$.readOnly,children:P(ot,{})})]}),P("div",{class:"rui-date-range-picker__popover rui-popover rui-floating","data-ref":"popover","data-range-popover":!0,hidden:!this.open,role:"dialog",children:this.open?P("rui-calendar",{...t}):null})]})}static{Ut()}};import{jsx as pn}from"@ecopages/jsx/jsx-runtime";var cn=Symbol.for("@ecopages/storybook-radiant.viewElement"),Ae=Symbol.for("@ecopages/storybook-radiant.scriptModule"),Ne=Symbol.for("@ecopages/storybook-radiant.scriptExport");function dn(e,t){e[cn]=t;let n=t[Ae];n&&(e[Ae]=n,e[Ne]=t[Ne]??t.name)}function Ve(e,t,n){let r=i=>t(i);return dn(r,e),r}var fn=Ve(q,({children:e,...t})=>pn("rui-date-range-picker",{...t,children:e}),{stylesheets:["./date-range-picker.css","../shared/control-toggle.css","../../../lib/icons/icons.css","../calendar/calendar.css"]});export{fn as RuiDateRangePicker,q as RuiDateRangePickerElement};
|
|
1
|
+
import{RadiantElement as Ee,customElement as cn,event as dn,onEvent as S,onUpdated as Te,prop as v,query as pn,state as H}from"@ecopages/radiant";function V(e){if(e==null)return null;let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());if(!t)return null;let n=Number(t[1]),r=Number(t[2])-1,i=Number(t[3]),o=new Date(n,r,i);return o.getFullYear()!==n||o.getMonth()!==r||o.getDate()!==i?null:o}function tt(e){let t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return`${t}-${n}-${r}`}function bt(e,t){return e.localeCompare(t)}function et(e,t){return bt(e,t)<=0?{start:e,end:t}:{start:t,end:e}}function O(e){if(!e)return null;let[t,n]=e.split("/");return!t||!n?null:et(t,n)}function nt(e){if(!e)return"";let t=et(e.start,e.end);return`${t.start}/${t.end}`}var Dt=new Map;function Be(e,t){return`${JSON.stringify(e??null)}|${JSON.stringify(t)}`}function M(e,t){let n=Be(e,t),r=Dt.get(n);if(r)return r;let i=new Intl.DateTimeFormat(e,t);return Dt.set(n,i),i}function rt(e,t,n="medium"){return M(t,{dateStyle:n}).format(e)}var qe={0:"digit",a:"letter","*":"any"};function We(e,t){let n=t?.[e];if(n instanceof RegExp)return{kind:"any",pattern:n};if(n)return{kind:n};let r=qe[e];return r?{kind:r}:null}function _t(e,t,n=!1){let r=[],i=0;for(;i<e.length;){let o=e[i];if(o==="\\"){let a=e[i+1];a&&r.push({type:"literal",value:a}),i+=2;continue}if(o==="{"){let a=e.indexOf("}",i+1);if(a<0){r.push({type:"literal",value:"{"}),i+=1;continue}r.push({type:"fixed",value:e.slice(i+1,a)}),i=a+1;continue}if(o==="["){let a=ze(e,i+1);if(a<0){r.push({type:"literal",value:"["}),i+=1;continue}let l=_t(e.slice(i+1,a),t,!0);r.push(...l),i=a+1;continue}if(o==="]")break;let s=We(o,t);if(s){r.push({type:"input",definition:o,kind:s.kind,pattern:s.pattern,optional:n}),i+=1;continue}r.push({type:"literal",value:o}),i+=1}return r}function ze(e,t){let n=1;for(let r=t;r<e.length;r+=1)if(e[r]==="["&&e[r-1]!=="\\"&&(n+=1),e[r]==="]"&&e[r-1]!=="\\"&&(n-=1,n===0))return r;return-1}function Rt(e,t){return _t(e,t)}function wt(e,t={}){return e.filter(n=>n.type==="input"&&(!t.requiredOnly||!n.optional)).length}var St=new Date(2001,8,3);function He(e){return M(e,{year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(St).filter(t=>t.type==="year"||t.type==="month"||t.type==="day").map(t=>t.type)}function kt(e){let t=M(e,{year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(St),n="";for(let r of t){if(r.type==="literal"){n+=r.value;continue}(r.type==="month"||r.type==="day"||r.type==="year")&&(n+=r.value.replace(/\d/g,"0"))}return n}function It(e){return e.replace(/\D/g,"")}function Pt(e){return wt(Rt(e),{requiredOnly:!0})}function Ue(e){return e>=100?e:e>=69?1900+e:2e3+e}function Et(e,t){let n=He(t),r=0,i={};for(let o of n){let s=o==="year"?4:2,a=e.slice(r,r+s);if(a.length<s)return null;let l=Number(a);o==="year"&&(l=Ue(l)),i[o]=l,r+=s}return i}function Tt(e){if(e.year==null||e.month==null||e.day==null)return null;let t=new Date(e.year,e.month-1,e.day);return t.getFullYear()!==e.year||t.getMonth()!==e.month-1||t.getDate()!==e.day?null:t}var Ye=new Date(2001,8,3);function Mt(e){return M(e,{year:"numeric",month:"numeric",day:"numeric"}).formatToParts(Ye).filter(n=>n.type==="year"||n.type==="month"||n.type==="day").map(n=>n.type)}function Ct(e){return e>=100?e:e>=69?1900+e:2e3+e}function Ot(e){let t=e.year,n=e.month,r=e.day;if(!Number.isFinite(t)||!Number.isFinite(n)||!Number.isFinite(r))return null;let i=new Date(t,n-1,r);return i.getFullYear()!==t||i.getMonth()!==n-1||i.getDate()!==r?null:i}function it(e,t){let n=(e??"").trim();if(!n)return null;let r=V(n);if(r)return r;let i=Ge(n,t);if(i)return i;let o=Je(n,t);if(o)return o;let s=Mt(t),a=n.match(/\d+/g);if(!a||a.length<3)return null;let l={day:0,month:0,year:0};for(let h=0;h<3;h+=1){let m=s[h];if(!m)return null;let y=Number(a[h]);m==="year"&&(y=Ct(y)),l[m]=y}return Ot(l)}function Ge(e,t){let n=kt(t),r=It(e);return r.length<Pt(n)?null:Tt(Et(r,t)??{})}function Ke(e){let t=new Map;for(let n of["short","long"])for(let r=0;r<12;r+=1){let i=M(e,{month:n}).formatToParts(new Date(2020,r,1)).find(o=>o.type==="month")?.value;i&&t.set(i.toLowerCase(),r+1)}return t}function Je(e,t){let n=Ke(t),r=e.toLowerCase();for(let[i,o]of n){if(r.indexOf(i)<0)continue;let a=e.match(/\d+/g);if(!a||a.length<2)continue;let l=a.find(b=>b.length===4)??a[a.length-1],h=a.find(b=>b!==l&&Number(b)<=31);if(!h||!l)continue;let m=Ct(Number(l)),y=Number(h);return Ot({year:m,month:o,day:y})}return null}var Xe={top:"bottom",bottom:"top",left:"right",right:"left"},Qe=8;function Ze(e){let t=e.indexOf("-");if(t===-1)return{side:e,align:"center"};let n=e.slice(0,t),r=e.slice(t+1);return{side:n,align:r==="start"||r==="end"?r:"center"}}function Nt(e){return e==="top"||e==="bottom"?"y":"x"}function Ft(e,t,n,r,i){let{width:o,height:s}=t,a=0,l=0;switch(n){case"top":l=e.top-s-i;break;case"bottom":l=e.bottom+i;break;case"left":a=e.left-o-i;break;case"right":a=e.right+i;break}return Nt(n)==="y"?r==="start"?a=e.left:r==="end"?a=e.right-o:a=e.left+(e.width-o)/2:r==="start"?l=e.top:r==="end"?l=e.bottom-s:l=e.top+(e.height-s)/2,{x:a,y:l}}function tn(e,t,n,r){let{padding:i,width:o,height:s}=r;return n==="top"?Math.max(0,i-e.y):n==="bottom"?Math.max(0,e.y+t.height-(s-i)):n==="left"?Math.max(0,i-e.x):Math.max(0,e.x+t.width-(o-i))}function At(e,t,n,r){let{padding:i,width:o,height:s}=r;return n==="top"?e.top-i-t.height:n==="bottom"?s-i-t.height-e.bottom:n==="left"?e.left-i-t.width:o-i-t.width-e.right}function en(e,t){return t==="center"?e:`${e}-${t}`}function nn(e,t,n,r){let{padding:i,width:o,height:s}=r;if(Nt(n)==="y"){let l=Math.max(i,o-i-t.width);return{x:Math.min(Math.max(e.x,i),l),y:e.y}}let a=Math.max(i,s-i-t.height);return{x:e.x,y:Math.min(Math.max(e.y,i),a)}}function rn(e,t,n,r,i={width:typeof window>"u"?0:window.innerWidth,height:typeof window>"u"?0:window.innerHeight,padding:Qe}){let{side:o,align:s}=Ze(n),a=Ft(e,t,o,s,r),l=tn(a,t,o,i),h=o,m=a;if(l>0){let y=Xe[o],b=Ft(e,t,y,s,r),L=At(e,t,o,i);At(e,t,y,i)>L&&(h=y,m=b)}return{coords:nn(m,t,h,i),placement:en(h,s)}}function an(e,t,n,r,i={}){let{coords:o,placement:s}=rn(e.getBoundingClientRect(),{width:t.offsetWidth,height:t.offsetHeight},n,r);return Object.assign(t.style,{position:"fixed",left:`${o.x}px`,top:`${o.y}px`,right:"auto",bottom:"auto",visibility:"visible"}),i.matchAnchorWidth&&(t.style.width=`${e.offsetWidth}px`),t.setAttribute("data-placement",s),s}function Vt({anchor:e,floating:t,getPlacement:n,gap:r,matchAnchorWidth:i}){let o=()=>{t.hidden||an(e,t,n(),r,{matchAnchorWidth:i})};o(),window.addEventListener("resize",o),window.addEventListener("scroll",o,!0);let s=new ResizeObserver(o);return s.observe(e),s.observe(t),()=>{window.removeEventListener("resize",o),window.removeEventListener("scroll",o,!0),s.disconnect()}}function Lt(e,t=document.body){let n=e.parentNode;if(!n)return{unmount:()=>{}};let r=document.createComment("rui-portal");return n.insertBefore(r,e),t.appendChild(e),{unmount:()=>{let i=r.parentNode;i&&(i.insertBefore(e,r),r.remove())}}}function jt(e,t,n){return n?!!(e?.contains(n)||t?.contains(n)):!1}function $t(e,t,n){return n instanceof Node?!jt(e,t,n):!0}var z=class{config;cleanupFloating=null;portalHandle=null;floatingElement=null;constructor(t){this.config=t}updateConfig(t){this.config={...this.config,...t}}sync(){let t=this.resolveFloating();if(!t)return;if(!this.config.getOpen()){this.teardown(),t.hidden=!0;return}let r=this.config.getAnchor();if(!r)return;t.hidden=!1,this.config.portal!==!1?this.portalHandle||(this.portalHandle=Lt(t,this.config.portalContainer??document.body)):this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null),this.teardownFloating(),this.cleanupFloating=Vt({anchor:r,floating:t,getPlacement:this.config.getPlacement,gap:this.config.gap??8,matchAnchorWidth:this.config.matchAnchorWidth})}contains(t){return jt(this.config.getAnchor(),this.resolveFloating(),t)}getFloatingElement(){return this.resolveFloating()}teardown(){this.teardownFloating(),this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null)}destroy(){this.teardown(),this.floatingElement=null}resolveFloating(){let t=this.config.getFloating();return t&&(this.floatingElement=t),t??this.floatingElement}teardownFloating(){this.cleanupFloating?.(),this.cleanupFloating=null}};function Bt(e){if(!e)return;let t=e.split(",").map(n=>n.trim()).filter(Boolean);return t.length>1?t:t[0]}var qt,Wt,zt,Ht,Ut,Yt,Gt,Kt,Jt,Xt,Qt,Zt,te,ee,ne,re,ie,ae,oe,se,le,ue,ce,de,pe,fe,he,ge,me,ye,xe,ve,be,De,_e,Re,we,Se,ke,Ie;function on(e,t,n,r,i,o){var s,a,l,h,m,y,b,L=Symbol.metadata||Symbol.for("Symbol.metadata"),Y=Object.defineProperty,G=Object.create,lt=[G(null),G(null)],ut=t.length;function j(u,R,D){return function(c,d){R&&(d=c,c=e);for(var w=0;w<u.length;w++)d=u[w].apply(c,D?[d]:[]);return D?d:c}}function E(u,R,D,c){if(typeof u!="function"&&(c||u!==void 0))throw new TypeError(R+" must "+(D||"be")+" a function"+(c?"":" or undefined"));return u}function ct(u,R,D,c,d,w,C,_,I,P,pt){function K(g){if(!pt(g))throw new TypeError("Attempted to access private element on non-instance")}var J=[].concat(R[0]),ft=R[3],X=!C,A=d===1,ht=d===3,gt=d===4,$=d===2;function B(g,F,xt){return function(W,vt){return F&&(vt=W,W=u),xt&&xt(W),f[g].call(W,vt)}}if(!X){var f={},Q=[],T=ht?"get":gt||A?"set":"value";if(I?(P||A?f={get:Pe(function(){return ft(this)},c,"get"),set:function(g){R[4](this,g)}}:f[T]=ft,P||Pe(f[T],c,$?"":T)):P||(f=Object.getOwnPropertyDescriptor(u,c)),!P&&!I){if((a=lt[+_][c])&&(a^d)!==7)throw Error("Decorating two elements with the same name ("+f[T].name+") is not supported yet");lt[+_][c]=d<3?1:d}}for(var x=u,q=J.length-1;q>=0;q-=D?2:1){var mt=E(J[q],"A decorator","be",!0),yt=D?J[q-1]:void 0,Z={},N={kind:["field","accessor","method","getter","setter","class"][d],name:c,metadata:s,addInitializer:function(g,F){if(g.v)throw new TypeError("attempted to call addInitializer after decoration was finished");E(F,"An initializer","be",!0),w.push(F)}.bind(null,Z)};if(X)a=mt.call(yt,x,N),Z.v=1,E(a,"class decorators","return")&&(x=a);else if(N.static=_,N.private=I,a=N.access={has:I?pt.bind():function(g){return c in g}},gt||(a.get=I?$?function(g){return K(g),f.value}:B("get",0,K):function(g){return g[c]}),$||ht||(a.set=I?B("set",0,K):function(g,F){g[c]=F}),x=mt.call(yt,A?{get:f.get,set:f.set}:f[T],N),Z.v=1,A){if(typeof x=="object"&&x)(a=E(x.get,"accessor.get"))&&(f.get=a),(a=E(x.set,"accessor.set"))&&(f.set=a),(a=E(x.init,"accessor.init"))&&Q.unshift(a);else if(x!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else E(x,(P?"field":"method")+" decorators","return")&&(P?Q.unshift(x):f[T]=x)}return d<2&&C.push(j(Q,_,1),j(w,_,0)),P||X||(I?A?C.splice(-1,0,B("get",_),B("set",_)):C.push($?f[T]:E.call.bind(f[T])):Y(u,c,f)),x}function dt(u){return Y(u,L,{configurable:!0,enumerable:!0,value:s})}return o!==void 0&&(s=o[L]),s=G(s??null),m=[],y=function(u){u&&m.push(j(u))},b=function(u,R){for(var D=0;D<n.length;D++){var c=n[D],d=c[1],w=7&d;if((8&d)==u&&!w==R){var C=c[2],_=!!c[3],I=16&d;ct(u?e:e.prototype,c,I,_?"#"+C:sn(C),w,w<2?[]:u?h=h||[]:l=l||[],m,!!u,_,R,u&&_?function(P){return un(P)===e}:i)}}},b(8,0),b(0,0),b(8,1),b(0,1),y(l),y(h),a=m,ut||dt(e),{e:a,get c(){var u=[];return ut&&[dt(e=ct(e,[t],r,e.name,5,u)),j(u,1)]}}}function sn(e){var t=ln(e,"string");return typeof t=="symbol"?t:t+""}function ln(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Pe(e,t,n){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+" "+t:t})}catch{}return e}function un(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(e!==null?typeof e:"null"));return e}var Ce,Me=class extends Ee{static{({e:[zt,Ht,Ut,Yt,Gt,Kt,Jt,Xt,Qt,Zt,te,ee,ne,re,ie,ae,oe,se,le,ue,ce,de,pe,fe,he,ge,me,ye,xe,ve,be,De,_e,Re,we,Se,ke,Ie,qt],c:[Ce,Wt]}=on(this,[cn("rui-date-range-picker")],[[v({type:String,reflect:!0,defaultValue:""}),0,"value"],[v({type:String,defaultValue:""}),0,"min"],[v({type:String,defaultValue:""}),0,"max"],[v({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[v({type:Boolean,attribute:"read-only",reflect:!0,defaultValue:!1}),0,"readOnly"],[v({type:String,defaultValue:""}),0,"locale"],[v({type:String,attribute:"placeholder-start",defaultValue:""}),0,"placeholderStart"],[v({type:String,attribute:"placeholder-end",defaultValue:""}),0,"placeholderEnd"],[v({type:String,attribute:"start-name",defaultValue:""}),0,"startName"],[v({type:String,attribute:"end-name",defaultValue:""}),0,"endName"],[v({type:String,defaultValue:""}),0,"name"],[v({type:String,attribute:"date-style",defaultValue:"medium"}),0,"dateStyle"],[v({type:Number,attribute:"visible-months",defaultValue:2}),0,"visibleMonths"],[dn({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[H,0,"open"],[H,0,"startDisplay"],[H,0,"endDisplay"],[H,0,"editing"],[pn({ref:"popover"}),0,"popoverTarget"],[Te(["value","min","max","disabled","readOnly","locale","dateStyle","startName","endName","visibleMonths"]),2,"onPropsUpdated"],[Te(["open"]),2,"onOpenUpdated"],[S({ref:"trigger",type:"pointerdown"}),2,"onTriggerPointerDown"],[S({ref:"trigger",type:"click"}),2,"onTriggerClick"],[S({selector:"[data-range-start]",type:"focus"}),2,"onStartFocus"],[S({selector:"[data-range-end]",type:"focus"}),2,"onEndFocus"],[S({selector:"[data-range-start], [data-range-end]",type:"blur"}),2,"onInputBlur"],[S({selector:"[data-range-start], [data-range-end]",type:"input"}),2,"onInput"],[S({selector:"[data-range-popover]",type:"mousedown"}),2,"onPopoverMouseDown"],[S({selector:"[data-range-calendar]",type:"rui-change"}),2,"onCalendarChange"],[S({selector:"[data-range-start], [data-range-end], [data-range-trigger], [data-range-calendar]",type:"keydown"}),2,"onRootKeydown"],[S({selector:"[data-range-start], [data-range-end], [data-range-trigger], [data-range-popover]",type:"focusout"}),2,"onRootFocusOut"]],0,void 0,Ee))}constructor(...t){super(...t),Ie(this)}value=(qt(this),zt(this));min=(Ht(this),Ut(this));max=(Yt(this),Gt(this));disabled=(Kt(this),Jt(this));readOnly=(Xt(this),Qt(this));locale=(Zt(this),te(this));placeholderStart=(ee(this),ne(this));placeholderEnd=(re(this),ie(this));startName=(ae(this),oe(this));endName=(se(this),le(this));name=(ue(this),ce(this));dateStyle=(de(this),pe(this));visibleMonths=(fe(this),he(this));changeEvent=(ge(this),me(this));open=(ye(this),xe(this,!1));startDisplay=(ve(this),be(this,""));endDisplay=(De(this),_e(this,""));editing=(Re(this),we(this,null));popoverController=(Se(this),null);suppressPopoverDismiss=!1;popoverTarget=ke(this);get resolvedLocale(){return Bt(this.locale)}get isoValue(){return this.value??""}getStartInput(){return this.querySelector("[data-range-start]")}getEndInput(){return this.querySelector("[data-range-end]")}getToggle(){return this.querySelector("[data-range-trigger]")}getCalendar(){return this.querySelector("[data-range-calendar]")}formatIso(t){if(!t)return"";let n=V(t);return n?rt(n,this.resolvedLocale,this.dateStyle):""}syncDisplayValues(){if(this.editing==="start"||this.editing==="end")return;let t=O(this.isoValue);this.startDisplay=this.formatIso(t?.start??""),this.endDisplay=this.formatIso(t?.end??"");let n=this.getStartInput(),r=this.getEndInput();n&&(n.value=this.startDisplay),r&&(r.value=this.endDisplay)}isIsoAllowed(t){return!(this.min&&t<this.min||this.max&&t>this.max)}commitRange(t,n){if(t&&!this.isIsoAllowed(t)){this.syncDisplayValues();return}if(n&&!this.isIsoAllowed(n)){this.syncDisplayValues();return}let r=t&&n?nt({start:t,end:n}):"";if(r===this.isoValue){this.syncDisplayValues();return}this.value=r,this.changeEvent.emit({value:r,start:t,end:n}),this.syncDisplayValues()}parseField(t){let n=(t??"").trim();if(!n)return"";let r=it(n,this.resolvedLocale);return r?tt(r):""}commitFromInputs(){let t=this.parseField(this.getStartInput()?.value??""),n=this.parseField(this.getEndInput()?.value??"");if(!t&&!n){this.commitRange("","");return}if(t&&n){this.commitRange(t,n);return}let r=O(this.isoValue);this.commitRange(t||r?.start||"",n||r?.end||"")}setOpen(t){this.open=t,queueMicrotask(()=>{this.syncCalendar(),this.syncPopoverPosition(),t&&this.focusCalendarDay()})}focusCalendarDay(){requestAnimationFrame(()=>{if(!this.open)return;let t=this.getCalendar(),n=O(this.isoValue)?.start;((n?t?.querySelector(`[data-calendar-day][data-iso="${n}"]:not(:disabled)`):null)??t?.querySelector('[data-calendar-day][tabindex="0"]:not(:disabled), [data-calendar-day]:not(:disabled)'))?.focus()})}ensurePopoverController(){return this.popoverController||(this.popoverController=new z({getAnchor:()=>this.getToggle()?.parentElement??this,getFloating:()=>this.popoverTarget,getOpen:()=>this.open,getPlacement:()=>"bottom-start",gap:4,portal:!1})),this.popoverController}syncPopoverPosition(){let t=this.popoverTarget;if(!t)return;t.hidden=!this.open;let n=this.ensurePopoverController();n.updateConfig({getOpen:()=>this.open}),n.sync()}syncToggle(){let t=this.getToggle();t&&(t.disabled=this.disabled||this.readOnly,t.setAttribute("aria-expanded",String(this.open)))}syncCalendar(){let t=this.getCalendar();t&&(t.setAttribute("selection-mode","range"),t.setAttribute("visible-months",String(this.visibleMonths)),t.setAttribute("value",this.isoValue),t.setAttribute("min",this.min),t.setAttribute("max",this.max),t.setAttribute("locale",this.locale),t.toggleAttribute("disabled",this.disabled))}wireInputNames(){let t=this.getStartInput(),n=this.getEndInput();t&&(t.name=this.startName,t.disabled=this.disabled,t.readOnly=this.readOnly,t.placeholder=this.placeholderStart||"Start date"),n&&(n.name=this.endName,n.disabled=this.disabled,n.readOnly=this.readOnly,n.placeholder=this.placeholderEnd||"End date")}initialize(){this.wireInputNames(),this.syncDisplayValues(),this.syncToggle(),this.syncCalendar(),this.setOpen(!1)}connectedCallback(){super.connectedCallback(),queueMicrotask(()=>this.initialize())}disconnectedCallback(){this.popoverController?.destroy(),this.popoverController=null,super.disconnectedCallback()}onPropsUpdated(){this.wireInputNames(),this.syncDisplayValues(),this.syncToggle(),this.syncCalendar()}onOpenUpdated(){this.syncToggle(),this.syncPopoverPosition()}onTriggerPointerDown(){this.suppressPopoverDismiss=!0}onTriggerClick(){this.disabled||this.readOnly||this.setOpen(!this.open)}onStartFocus(){this.editing="start";let t=O(this.isoValue),n=this.getStartInput();n&&(n.value=t?.start?this.formatIso(t.start):"")}onEndFocus(){this.editing="end";let t=O(this.isoValue),n=this.getEndInput();n&&(n.value=t?.end?this.formatIso(t.end):"")}onInputBlur(){this.editing=null,this.commitFromInputs()}onInput(t){let n=t.target;if(n.matches("[data-range-start]")){this.startDisplay=n.value;return}this.endDisplay=n.value}onPopoverMouseDown(t){t.preventDefault()}onCalendarChange(t){let n=t.target;if(!(n instanceof HTMLElement)||!n.matches("[data-range-calendar]"))return;let r=t.detail;!r?.start||!r.end||(this.commitRange(r.start,r.end),this.setOpen(!1))}onRootKeydown(t){t.key==="Escape"&&this.open&&(t.preventDefault(),this.setOpen(!1))}onRootFocusOut(t){let n=t.relatedTarget;queueMicrotask(()=>{if(this.suppressPopoverDismiss){this.suppressPopoverDismiss=!1;return}if(!this.open)return;let r=n instanceof Node?n:document.activeElement;$t(this,this.popoverTarget,r)&&this.setOpen(!1)})}static{Wt()}};import{Fragment as gn,jsx as p,jsxs as st}from"@ecopages/jsx/jsx-runtime";function k(...e){return e.filter(Boolean).join(" ")}import{jsx as U,jsxs as fn}from"@ecopages/jsx/jsx-runtime";function at({class:e,size:t="sm",...n}){return fn("svg",{...n,class:k("rui-icon",t==="md"&&"rui-icon--md",e),viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[U("path",{d:"M8 2v4"}),U("path",{d:"M16 2v4"}),U("rect",{width:"18",height:"18",x:"3",y:"4",rx:"2"}),U("path",{d:"M3 10h18"})]})}import{jsx as hn}from"@ecopages/jsx/jsx-runtime";function ot({children:e,...t}){return hn("rui-calendar",{...t,children:e})}function Oe({children:e,class:t,...n}){return p("div",{...n,class:k("rui-date-range-picker",t),children:p("div",{class:"rui-date-range-picker__group",children:e})})}function Fe({children:e,class:t,...n}){return p("div",{...n,class:k("rui-date-range-picker__values",t),children:e})}function Ae({class:e,...t}){return p("input",{...t,type:"text","data-range-start":!0,"data-rui-control":!0,"data-rui-control-type":"text",class:k("rui-date-range-picker__input",e),autocomplete:"off"})}function Ne({class:e,...t}){return p("input",{...t,type:"text","data-range-end":!0,"data-rui-control":!0,"data-rui-control-type":"text",class:k("rui-date-range-picker__input",e),autocomplete:"off"})}function Ve({children:e="\u2013",class:t,...n}){return p("span",{...n,class:k("rui-date-range-picker__separator",t),"aria-hidden":"true",children:e})}function Le({children:e,class:t,"aria-label":n="Open calendar",...r}){return p("button",{...r,type:"button","data-ref":"trigger","data-range-trigger":!0,class:k("rui-control-toggle",t),"aria-label":n,"aria-haspopup":"dialog",children:e??p(at,{})})}function je({children:e,class:t,...n}){return p("div",{...n,"data-ref":"popover","data-range-popover":!0,class:k("rui-date-range-picker__popover rui-popover rui-floating",t),hidden:!0,role:"dialog",children:e})}function $e(e){return p(ot,{...e,"data-range-calendar":!0})}function mn({children:e,startLabel:t="Start date",endLabel:n="End date",...r}){return p("rui-date-range-picker",{...r,children:e??st(gn,{children:[st(Oe,{children:[st(Fe,{children:[p(Ae,{"aria-label":t}),p(Ve,{}),p(Ne,{"aria-label":n})]}),p(Le,{})]}),p(je,{children:p($e,{})})]})})}export{mn as RuiDateRangePicker,$e as RuiDateRangePickerCalendar,Oe as RuiDateRangePickerControl,Ce as RuiDateRangePickerElement,Ne as RuiDateRangePickerEndInput,Fe as RuiDateRangePickerInputs,je as RuiDateRangePickerPopover,Ve as RuiDateRangePickerSeparator,Ae as RuiDateRangePickerStartInput,Le as RuiDateRangePickerToggle};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|