@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.
Files changed (264) hide show
  1. package/README.md +1 -1
  2. package/dist/components/ui/alert/alert.css +88 -50
  3. package/dist/components/ui/alert/alert.d.ts +43 -5
  4. package/dist/components/ui/alert/alert.script.d.ts +51 -4
  5. package/dist/components/ui/alert/index.d.ts +2 -2
  6. package/dist/components/ui/alert/index.js +1 -1
  7. package/dist/components/ui/alert/index.js.map +4 -4
  8. package/dist/components/ui/autocomplete/autocomplete.css +4 -4
  9. package/dist/components/ui/autocomplete/autocomplete.d.ts +15 -5
  10. package/dist/components/ui/autocomplete/autocomplete.script.d.ts +9 -0
  11. package/dist/components/ui/autocomplete/index.js +1 -1
  12. package/dist/components/ui/autocomplete/index.js.map +4 -4
  13. package/dist/components/ui/avatar/avatar.d.ts +15 -1
  14. package/dist/components/ui/avatar/index.js +1 -1
  15. package/dist/components/ui/avatar/index.js.map +4 -4
  16. package/dist/components/ui/breadcrumb/breadcrumb.d.ts +32 -6
  17. package/dist/components/ui/breadcrumb/index.js +1 -1
  18. package/dist/components/ui/breadcrumb/index.js.map +4 -4
  19. package/dist/{styles/components → components/ui/button}/button.css +45 -31
  20. package/dist/components/ui/button/button.d.ts +21 -4
  21. package/dist/components/ui/button-group/button-group.d.ts +7 -1
  22. package/dist/components/ui/button-group/index.js +1 -1
  23. package/dist/components/ui/button-group/index.js.map +4 -4
  24. package/dist/components/ui/calendar/calendar.css +7 -7
  25. package/dist/components/ui/calendar/calendar.d.ts +3 -2
  26. package/dist/components/ui/calendar/calendar.script.d.ts +39 -1
  27. package/dist/components/ui/calendar/index.js +1 -1
  28. package/dist/components/ui/calendar/index.js.map +4 -4
  29. package/dist/components/ui/carousel/carousel.d.ts +32 -6
  30. package/dist/components/ui/carousel/carousel.script.d.ts +44 -0
  31. package/dist/components/ui/carousel/index.js +1 -1
  32. package/dist/components/ui/carousel/index.js.map +4 -4
  33. package/dist/components/ui/checkbox/checkbox.css +1 -1
  34. package/dist/components/ui/checkbox/checkbox.d.ts +3 -2
  35. package/dist/components/ui/checkbox/checkbox.script.d.ts +4 -0
  36. package/dist/components/ui/checkbox/index.js +1 -1
  37. package/dist/components/ui/checkbox/index.js.map +4 -4
  38. package/dist/components/ui/chip/chip.d.ts +8 -0
  39. package/dist/components/ui/chip/index.js +1 -1
  40. package/dist/components/ui/chip/index.js.map +4 -4
  41. package/dist/components/ui/chip-list/chip-list.d.ts +10 -2
  42. package/dist/components/ui/chip-list/index.js +1 -1
  43. package/dist/components/ui/chip-list/index.js.map +4 -4
  44. package/dist/components/ui/combobox/combobox.css +39 -1
  45. package/dist/components/ui/combobox/combobox.d.ts +15 -5
  46. package/dist/components/ui/combobox/combobox.script.d.ts +13 -1
  47. package/dist/components/ui/combobox/index.js +1 -1
  48. package/dist/components/ui/combobox/index.js.map +4 -4
  49. package/dist/components/ui/cycle-toggle/cycle-toggle.css +15 -0
  50. package/dist/components/ui/cycle-toggle/cycle-toggle.d.ts +29 -0
  51. package/dist/components/ui/cycle-toggle/cycle-toggle.script.d.ts +61 -0
  52. package/dist/components/ui/cycle-toggle/index.d.ts +5 -0
  53. package/dist/components/ui/cycle-toggle/index.js +2 -0
  54. package/dist/components/ui/cycle-toggle/index.js.map +7 -0
  55. package/dist/components/ui/cycle-toggle/theme-preference-icons.d.ts +12 -0
  56. package/dist/components/ui/date-field/date-field.css +37 -0
  57. package/dist/components/ui/date-field/date-field.d.ts +22 -3
  58. package/dist/components/ui/date-field/date-field.script.d.ts +29 -5
  59. package/dist/components/ui/date-field/index.d.ts +1 -1
  60. package/dist/components/ui/date-field/index.js +1 -1
  61. package/dist/components/ui/date-field/index.js.map +4 -4
  62. package/dist/components/ui/date-range-picker/date-range-picker.css +37 -0
  63. package/dist/components/ui/date-range-picker/date-range-picker.d.ts +37 -4
  64. package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +31 -5
  65. package/dist/components/ui/date-range-picker/index.d.ts +1 -1
  66. package/dist/components/ui/date-range-picker/index.js +1 -1
  67. package/dist/components/ui/date-range-picker/index.js.map +4 -4
  68. package/dist/components/ui/dialog/dialog.css +1 -1
  69. package/dist/components/ui/dialog/dialog.d.ts +30 -5
  70. package/dist/components/ui/dialog/dialog.script.d.ts +3 -0
  71. package/dist/components/ui/dialog/index.js +1 -1
  72. package/dist/components/ui/dialog/index.js.map +4 -4
  73. package/dist/components/ui/disclosure/disclosure-group.css +1 -1
  74. package/dist/components/ui/disclosure/disclosure-group.script.d.ts +6 -0
  75. package/dist/components/ui/disclosure/disclosure.d.ts +26 -7
  76. package/dist/components/ui/disclosure/disclosure.script.d.ts +5 -0
  77. package/dist/components/ui/disclosure/index.js +1 -1
  78. package/dist/components/ui/disclosure/index.js.map +4 -4
  79. package/dist/components/ui/feed/feed.d.ts +37 -7
  80. package/dist/components/ui/feed/index.js +1 -1
  81. package/dist/components/ui/feed/index.js.map +4 -4
  82. package/dist/components/ui/field/field-description.d.ts +5 -1
  83. package/dist/components/ui/field/field-error.d.ts +5 -0
  84. package/dist/components/ui/field/field.d.ts +8 -1
  85. package/dist/components/ui/field/field.script.d.ts +35 -0
  86. package/dist/components/ui/field/index.js +1 -1
  87. package/dist/components/ui/field/index.js.map +4 -4
  88. package/dist/components/ui/form/control-protocol.d.ts +6 -0
  89. package/dist/components/ui/form/form.d.ts +2 -1
  90. package/dist/components/ui/form/form.script.d.ts +16 -1
  91. package/dist/components/ui/form/index.d.ts +1 -1
  92. package/dist/components/ui/form/index.js +1 -1
  93. package/dist/components/ui/form/index.js.map +4 -4
  94. package/dist/components/ui/grid/grid.d.ts +12 -2
  95. package/dist/components/ui/grid/grid.script.d.ts +14 -0
  96. package/dist/components/ui/grid/index.js +1 -1
  97. package/dist/components/ui/grid/index.js.map +4 -4
  98. package/dist/components/ui/heading/heading.d.ts +26 -4
  99. package/dist/components/ui/heading/index.js +1 -1
  100. package/dist/components/ui/heading/index.js.map +4 -4
  101. package/dist/components/ui/headline/headline.d.ts +9 -1
  102. package/dist/components/ui/headline/index.js +1 -1
  103. package/dist/components/ui/headline/index.js.map +4 -4
  104. package/dist/components/ui/input/index.d.ts +1 -1
  105. package/dist/components/ui/input/index.js +1 -1
  106. package/dist/components/ui/input/index.js.map +4 -4
  107. package/dist/components/ui/input/input.css +2 -7
  108. package/dist/components/ui/input/input.d.ts +7 -2
  109. package/dist/components/ui/label/index.js +1 -1
  110. package/dist/components/ui/label/index.js.map +4 -4
  111. package/dist/components/ui/label/label.d.ts +8 -1
  112. package/dist/components/ui/listbox/index.js +1 -1
  113. package/dist/components/ui/listbox/index.js.map +4 -4
  114. package/dist/components/ui/listbox/listbox.css +2 -5
  115. package/dist/components/ui/listbox/listbox.d.ts +7 -3
  116. package/dist/components/ui/listbox/listbox.script.d.ts +14 -1
  117. package/dist/components/ui/menu-button/index.d.ts +1 -1
  118. package/dist/components/ui/menu-button/index.js +1 -1
  119. package/dist/components/ui/menu-button/index.js.map +4 -4
  120. package/dist/components/ui/menu-button/menu-button.css +2 -2
  121. package/dist/components/ui/menu-button/menu-button.d.ts +27 -5
  122. package/dist/components/ui/menu-button/menu-button.script.d.ts +8 -3
  123. package/dist/components/ui/menubar/index.js +1 -1
  124. package/dist/components/ui/menubar/index.js.map +4 -4
  125. package/dist/components/ui/menubar/menubar.css +4 -4
  126. package/dist/components/ui/menubar/menubar.d.ts +14 -2
  127. package/dist/components/ui/menubar/menubar.script.d.ts +10 -1
  128. package/dist/components/ui/meter/index.js +1 -1
  129. package/dist/components/ui/meter/index.js.map +4 -4
  130. package/dist/components/ui/meter/meter.css +1 -1
  131. package/dist/components/ui/meter/meter.d.ts +7 -2
  132. package/dist/components/ui/meter/meter.script.d.ts +21 -0
  133. package/dist/components/ui/navigation-menu/index.js +1 -1
  134. package/dist/components/ui/navigation-menu/index.js.map +4 -4
  135. package/dist/components/ui/navigation-menu/navigation-menu.css +2 -2
  136. package/dist/components/ui/navigation-menu/navigation-menu.d.ts +3 -2
  137. package/dist/components/ui/navigation-menu/navigation-menu.script.d.ts +4 -0
  138. package/dist/components/ui/number-field/index.d.ts +1 -1
  139. package/dist/components/ui/number-field/index.js +1 -1
  140. package/dist/components/ui/number-field/index.js.map +4 -4
  141. package/dist/components/ui/number-field/number-field.css +18 -3
  142. package/dist/components/ui/number-field/number-field.d.ts +36 -8
  143. package/dist/components/ui/number-field/number-field.script.d.ts +28 -1
  144. package/dist/components/ui/popover/index.js +1 -1
  145. package/dist/components/ui/popover/index.js.map +4 -4
  146. package/dist/components/ui/popover/popover.d.ts +5 -4
  147. package/dist/components/ui/popover/popover.script.d.ts +4 -0
  148. package/dist/components/ui/radio-group/index.d.ts +1 -1
  149. package/dist/components/ui/radio-group/index.js +1 -1
  150. package/dist/components/ui/radio-group/index.js.map +4 -4
  151. package/dist/components/ui/radio-group/radio-group.d.ts +29 -4
  152. package/dist/components/ui/radio-group/radio-group.script.d.ts +14 -9
  153. package/dist/components/ui/select/index.js +1 -1
  154. package/dist/components/ui/select/index.js.map +4 -4
  155. package/dist/components/ui/select/select.css +48 -6
  156. package/dist/components/ui/select/select.d.ts +29 -8
  157. package/dist/components/ui/select/select.script.d.ts +7 -0
  158. package/dist/components/ui/sidebar/index.js +1 -1
  159. package/dist/components/ui/sidebar/index.js.map +4 -4
  160. package/dist/components/ui/sidebar/sidebar-trigger.script.d.ts +4 -0
  161. package/dist/components/ui/sidebar/sidebar.css +41 -24
  162. package/dist/components/ui/sidebar/sidebar.d.ts +68 -14
  163. package/dist/components/ui/sidebar/sidebar.docs.css +5 -2
  164. package/dist/components/ui/sidebar/sidebar.script.d.ts +9 -0
  165. package/dist/components/ui/slider/index.js +1 -1
  166. package/dist/components/ui/slider/index.js.map +4 -4
  167. package/dist/components/ui/slider/slider.d.ts +2 -1
  168. package/dist/components/ui/slider/slider.script.d.ts +29 -1
  169. package/dist/components/ui/switch/index.js +1 -1
  170. package/dist/components/ui/switch/index.js.map +4 -4
  171. package/dist/components/ui/switch/switch.css +3 -3
  172. package/dist/components/ui/switch/switch.d.ts +11 -2
  173. package/dist/components/ui/switch/switch.script.d.ts +5 -0
  174. package/dist/components/ui/tabs/index.js +1 -1
  175. package/dist/components/ui/tabs/index.js.map +4 -4
  176. package/dist/components/ui/tabs/tabs.css +9 -10
  177. package/dist/components/ui/tabs/tabs.d.ts +30 -9
  178. package/dist/components/ui/tag-group/index.js +1 -1
  179. package/dist/components/ui/tag-group/index.js.map +4 -4
  180. package/dist/components/ui/tag-group/tag-group.css +2 -11
  181. package/dist/components/ui/tag-group/tag-group.d.ts +18 -5
  182. package/dist/components/ui/tag-group/tag-group.script.d.ts +9 -2
  183. package/dist/components/ui/textarea/index.d.ts +1 -1
  184. package/dist/components/ui/textarea/index.js +1 -1
  185. package/dist/components/ui/textarea/index.js.map +4 -4
  186. package/dist/components/ui/textarea/textarea.d.ts +7 -2
  187. package/dist/components/ui/toast/index.d.ts +1 -1
  188. package/dist/components/ui/toast/index.js +1 -1
  189. package/dist/components/ui/toast/index.js.map +4 -4
  190. package/dist/components/ui/toast/stack-layout.d.ts +18 -0
  191. package/dist/components/ui/toast/toast-context.d.ts +10 -0
  192. package/dist/components/ui/toast/toast.css +30 -9
  193. package/dist/components/ui/toast/toast.d.ts +12 -2
  194. package/dist/components/ui/toast/toast.script.d.ts +60 -4
  195. package/dist/components/ui/toast/toaster.script.d.ts +71 -2
  196. package/dist/components/ui/toc/index.js +1 -1
  197. package/dist/components/ui/toc/index.js.map +4 -4
  198. package/dist/components/ui/toc/toc.css +3 -0
  199. package/dist/components/ui/toc/toc.d.ts +2 -1
  200. package/dist/components/ui/toc/toc.script.d.ts +15 -0
  201. package/dist/components/ui/toolbar/index.js +1 -1
  202. package/dist/components/ui/toolbar/index.js.map +4 -4
  203. package/dist/components/ui/toolbar/toolbar.d.ts +3 -2
  204. package/dist/components/ui/toolbar/toolbar.script.d.ts +8 -0
  205. package/dist/components/ui/tooltip/index.js +1 -1
  206. package/dist/components/ui/tooltip/index.js.map +4 -4
  207. package/dist/components/ui/tooltip/tooltip.d.ts +3 -2
  208. package/dist/components/ui/tooltip/tooltip.script.d.ts +3 -0
  209. package/dist/components/ui/tree/index.js +1 -1
  210. package/dist/components/ui/tree/index.js.map +4 -4
  211. package/dist/components/ui/tree/tree.d.ts +12 -2
  212. package/dist/components/ui/tree/tree.script.d.ts +18 -1
  213. package/dist/components/ui/treegrid/index.js +1 -1
  214. package/dist/components/ui/treegrid/index.js.map +4 -4
  215. package/dist/components/ui/treegrid/treegrid.d.ts +15 -2
  216. package/dist/components/ui/treegrid/treegrid.script.d.ts +22 -1
  217. package/dist/components/ui/window-splitter/index.js +1 -1
  218. package/dist/components/ui/window-splitter/index.js.map +4 -4
  219. package/dist/components/ui/window-splitter/window-splitter.css +1 -1
  220. package/dist/components/ui/window-splitter/window-splitter.d.ts +3 -2
  221. package/dist/components/ui/window-splitter/window-splitter.script.d.ts +22 -0
  222. package/dist/index.d.ts +1 -0
  223. package/dist/index.js +1 -1
  224. package/dist/index.js.map +4 -4
  225. package/dist/lib/cycle-value.d.ts +8 -0
  226. package/dist/lib/intl-number/range.d.ts +8 -0
  227. package/dist/styles/radiant-ui-core.css +110 -341
  228. package/dist/styles/radiant-ui.css +413 -377
  229. package/dist/styles/styles.css +839 -2731
  230. package/dist/styles/tailwind.css +626 -530
  231. package/dist/styles/tokens/colors/aurora.css +2 -2
  232. package/dist/styles/tokens/colors/basalt.css +2 -1
  233. package/dist/styles/tokens/colors/glacier.css +2 -1
  234. package/dist/styles/tokens/presets/colors/aurora.css +42 -14
  235. package/dist/styles/tokens/presets/colors/basalt.css +28 -0
  236. package/dist/styles/tokens/presets/colors/ember.css +28 -0
  237. package/dist/styles/tokens/presets/colors/glacier.css +28 -0
  238. package/dist/styles/tokens/semantic.css +22 -2
  239. package/dist/styles/tokens/spacing/compact.css +12 -12
  240. package/package.json +21 -8
  241. package/dist/components/ui/dialog/dialog-registry.test.d.ts +0 -1
  242. package/dist/components/ui/field/field-ssr-hydration.test.d.ts +0 -1
  243. package/dist/components/ui/form/form-field.test.d.ts +0 -4
  244. package/dist/components/ui/form/form-store.test.d.ts +0 -1
  245. package/dist/components/ui/shared/collection-navigation.test.d.ts +0 -1
  246. package/dist/components/ui/shared/floating-position.test.d.ts +0 -1
  247. package/dist/components/ui/shared/listbox-popover-behavior.test.d.ts +0 -1
  248. package/dist/components/ui/shared/popover-controller.test.d.ts +0 -1
  249. package/dist/components/ui/shared/portal.test.d.ts +0 -1
  250. package/dist/components/ui/sidebar/sidebar.ssr.test.d.ts +0 -2
  251. package/dist/components/ui/sidebar/sidebar.test.d.ts +0 -1
  252. package/dist/components/ui/toast/toast.test.d.ts +0 -2
  253. package/dist/components/ui/toc/toc-helpers.test.d.ts +0 -1
  254. package/dist/components/ui/toc/toc.ssr.test.d.ts +0 -1
  255. package/dist/components/ui/toc/toc.test.d.ts +0 -1
  256. package/dist/lib/intl-date/parts.test.d.ts +0 -1
  257. package/dist/lib/intl-date/segments.test.d.ts +0 -1
  258. package/dist/lib/intl-date/selection.test.d.ts +0 -1
  259. package/dist/lib/mask/date-mask.test.d.ts +0 -1
  260. package/dist/lib/mask/input-mask.test.d.ts +0 -1
  261. package/dist/lib/radiant-view.d.ts +0 -43
  262. package/dist/lib/text-filter.test.d.ts +0 -1
  263. package/dist/styles/tokens/presets/radius.css +0 -45
  264. 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
- * @fires rui-change
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