@ecopages/radiant-ui 0.1.0-rc.7 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/README.md +11 -3
  2. package/dist/components/ui/alert/alert.d.ts +2 -4
  3. package/dist/components/ui/alert/alert.script.d.ts +25 -15
  4. package/dist/components/ui/autocomplete/autocomplete.css +1 -2
  5. package/dist/components/ui/autocomplete/autocomplete.d.ts +8 -3
  6. package/dist/components/ui/autocomplete/autocomplete.script.d.ts +29 -4
  7. package/dist/components/ui/avatar/avatar.css +10 -8
  8. package/dist/components/ui/avatar/avatar.d.ts +3 -1
  9. package/dist/components/ui/breadcrumb/breadcrumb.d.ts +11 -11
  10. package/dist/components/ui/breadcrumb/breadcrumb.script.d.ts +10 -10
  11. package/dist/components/ui/calendar/calendar.css +10 -5
  12. package/dist/components/ui/calendar/calendar.script.d.ts +24 -21
  13. package/dist/components/ui/calendar/index.js +1 -1
  14. package/dist/components/ui/calendar/index.js.map +3 -3
  15. package/dist/components/ui/carousel/carousel-autoplay.d.ts +22 -0
  16. package/dist/components/ui/carousel/carousel-swipe.d.ts +17 -0
  17. package/dist/components/ui/carousel/carousel-window.d.ts +63 -0
  18. package/dist/components/ui/carousel/carousel.css +71 -18
  19. package/dist/components/ui/carousel/carousel.d.ts +8 -4
  20. package/dist/components/ui/carousel/carousel.script.d.ts +73 -40
  21. package/dist/components/ui/carousel/index.js +1 -1
  22. package/dist/components/ui/carousel/index.js.map +4 -4
  23. package/dist/components/ui/checkbox/checkbox.d.ts +11 -0
  24. package/dist/components/ui/checkbox/checkbox.script.d.ts +31 -8
  25. package/dist/components/ui/checkbox/index.js +1 -1
  26. package/dist/components/ui/checkbox/index.js.map +4 -4
  27. package/dist/components/ui/checkbox-group/checkbox-group.d.ts +4 -2
  28. package/dist/components/ui/checkbox-group/checkbox-group.script.d.ts +39 -20
  29. package/dist/components/ui/checkbox-group/index.js +1 -1
  30. package/dist/components/ui/checkbox-group/index.js.map +4 -4
  31. package/dist/components/ui/combobox/combobox.css +9 -1
  32. package/dist/components/ui/combobox/combobox.d.ts +12 -4
  33. package/dist/components/ui/combobox/combobox.script.d.ts +74 -25
  34. package/dist/components/ui/combobox/index.d.ts +2 -2
  35. package/dist/components/ui/combobox/index.js +1 -1
  36. package/dist/components/ui/combobox/index.js.map +4 -4
  37. package/dist/components/ui/cycle-toggle/cycle-toggle.d.ts +6 -2
  38. package/dist/components/ui/cycle-toggle/cycle-toggle.script.d.ts +35 -4
  39. package/dist/components/ui/cycle-toggle/index.js +1 -1
  40. package/dist/components/ui/cycle-toggle/index.js.map +3 -3
  41. package/dist/components/ui/date-field/date-field.css +13 -17
  42. package/dist/components/ui/date-field/date-field.d.ts +10 -8
  43. package/dist/components/ui/date-field/date-field.script.d.ts +35 -52
  44. package/dist/components/ui/date-field/index.js +1 -1
  45. package/dist/components/ui/date-field/index.js.map +4 -4
  46. package/dist/components/ui/date-input/date-input-segment-dom.d.ts +24 -0
  47. package/dist/components/ui/date-input/date-input.css +50 -0
  48. package/dist/components/ui/date-input/date-input.d.ts +8 -0
  49. package/dist/components/ui/date-input/date-input.script.d.ts +137 -0
  50. package/dist/components/ui/date-input/index.d.ts +2 -0
  51. package/dist/components/ui/date-input/index.js +2 -0
  52. package/dist/components/ui/date-input/index.js.map +7 -0
  53. package/dist/components/ui/date-range-picker/date-range-picker.css +18 -19
  54. package/dist/components/ui/date-range-picker/date-range-picker.d.ts +11 -9
  55. package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +42 -51
  56. package/dist/components/ui/date-range-picker/index.js +1 -1
  57. package/dist/components/ui/date-range-picker/index.js.map +4 -4
  58. package/dist/components/ui/dialog/dialog.css +18 -14
  59. package/dist/components/ui/dialog/dialog.d.ts +6 -0
  60. package/dist/components/ui/dialog/dialog.script.d.ts +43 -10
  61. package/dist/components/ui/dialog/index.js +1 -1
  62. package/dist/components/ui/dialog/index.js.map +4 -4
  63. package/dist/components/ui/disclosure/disclosure-group.script.d.ts +19 -3
  64. package/dist/components/ui/disclosure/disclosure.css +3 -6
  65. package/dist/components/ui/disclosure/disclosure.d.ts +23 -7
  66. package/dist/components/ui/disclosure/disclosure.script.d.ts +31 -7
  67. package/dist/components/ui/disclosure/index.d.ts +1 -1
  68. package/dist/components/ui/disclosure/index.js +1 -1
  69. package/dist/components/ui/disclosure/index.js.map +4 -4
  70. package/dist/components/ui/field/field-description.d.ts +1 -0
  71. package/dist/components/ui/field/field-error.d.ts +2 -2
  72. package/dist/components/ui/field/field.d.ts +4 -4
  73. package/dist/components/ui/field/field.script.d.ts +54 -24
  74. package/dist/components/ui/field/index.js +1 -1
  75. package/dist/components/ui/field/index.js.map +4 -4
  76. package/dist/components/ui/form/control-protocol.d.ts +38 -1
  77. package/dist/components/ui/form/form-context.d.ts +3 -0
  78. package/dist/components/ui/form/form.d.ts +6 -0
  79. package/dist/components/ui/form/form.script.d.ts +29 -12
  80. package/dist/components/ui/form/index.d.ts +2 -1
  81. package/dist/components/ui/form/index.js +1 -1
  82. package/dist/components/ui/form/index.js.map +4 -4
  83. package/dist/components/ui/grid/grid.d.ts +4 -3
  84. package/dist/components/ui/grid/grid.script.d.ts +19 -11
  85. package/dist/components/ui/hover-card/hover-card.css +12 -101
  86. package/dist/components/ui/hover-card/hover-card.d.ts +7 -2
  87. package/dist/components/ui/hover-card/hover-card.script.d.ts +36 -5
  88. package/dist/components/ui/hover-card/index.js +1 -1
  89. package/dist/components/ui/hover-card/index.js.map +4 -4
  90. package/dist/components/ui/input/index.js +1 -1
  91. package/dist/components/ui/input/index.js.map +4 -4
  92. package/dist/components/ui/input/input.css +1 -1
  93. package/dist/components/ui/knob/index.js +1 -1
  94. package/dist/components/ui/knob/index.js.map +3 -3
  95. package/dist/components/ui/knob/knob.css +6 -1
  96. package/dist/components/ui/knob/knob.d.ts +4 -4
  97. package/dist/components/ui/knob/knob.script.d.ts +55 -20
  98. package/dist/components/ui/label/index.js +1 -1
  99. package/dist/components/ui/label/index.js.map +4 -4
  100. package/dist/components/ui/label/label.d.ts +2 -1
  101. package/dist/components/ui/listbox/index.d.ts +2 -2
  102. package/dist/components/ui/listbox/index.js +1 -1
  103. package/dist/components/ui/listbox/index.js.map +4 -4
  104. package/dist/components/ui/listbox/listbox.css +14 -0
  105. package/dist/components/ui/listbox/listbox.d.ts +16 -2
  106. package/dist/components/ui/listbox/listbox.script.d.ts +55 -12
  107. package/dist/components/ui/menu-button/index.js +1 -1
  108. package/dist/components/ui/menu-button/index.js.map +4 -4
  109. package/dist/components/ui/menu-button/menu-button.d.ts +2 -2
  110. package/dist/components/ui/menu-button/menu-button.script.d.ts +30 -27
  111. package/dist/components/ui/menubar/index.js +1 -1
  112. package/dist/components/ui/menubar/index.js.map +4 -4
  113. package/dist/components/ui/menubar/menubar.script.d.ts +41 -15
  114. package/dist/components/ui/meter/index.js +1 -1
  115. package/dist/components/ui/meter/index.js.map +3 -3
  116. package/dist/components/ui/meter/meter.css +27 -2
  117. package/dist/components/ui/meter/meter.script.d.ts +19 -14
  118. package/dist/components/ui/navigation-menu/index.d.ts +1 -1
  119. package/dist/components/ui/navigation-menu/index.js +1 -1
  120. package/dist/components/ui/navigation-menu/index.js.map +4 -4
  121. package/dist/components/ui/navigation-menu/navigation-menu.css +32 -34
  122. package/dist/components/ui/navigation-menu/navigation-menu.d.ts +34 -5
  123. package/dist/components/ui/navigation-menu/navigation-menu.script.d.ts +93 -12
  124. package/dist/components/ui/number-field/index.js +1 -1
  125. package/dist/components/ui/number-field/index.js.map +4 -4
  126. package/dist/components/ui/number-field/number-field.css +1 -1
  127. package/dist/components/ui/number-field/number-field.d.ts +8 -19
  128. package/dist/components/ui/number-field/number-field.script.d.ts +30 -9
  129. package/dist/components/ui/pagination/index.d.ts +1 -1
  130. package/dist/components/ui/pagination/index.js +1 -1
  131. package/dist/components/ui/pagination/index.js.map +3 -3
  132. package/dist/components/ui/pagination/pagination.css +50 -13
  133. package/dist/components/ui/pagination/pagination.d.ts +33 -9
  134. package/dist/components/ui/pagination/pagination.script.d.ts +29 -9
  135. package/dist/components/ui/popover/index.js +1 -1
  136. package/dist/components/ui/popover/index.js.map +4 -4
  137. package/dist/components/ui/popover/popover.d.ts +17 -1
  138. package/dist/components/ui/popover/popover.script.d.ts +57 -9
  139. package/dist/components/ui/radio-group/index.js +1 -1
  140. package/dist/components/ui/radio-group/index.js.map +4 -4
  141. package/dist/components/ui/radio-group/radio-group.d.ts +2 -2
  142. package/dist/components/ui/radio-group/radio-group.script.d.ts +35 -16
  143. package/dist/components/ui/select/index.d.ts +2 -2
  144. package/dist/components/ui/select/index.js +1 -1
  145. package/dist/components/ui/select/index.js.map +4 -4
  146. package/dist/components/ui/select/select.css +8 -6
  147. package/dist/components/ui/select/select.d.ts +18 -9
  148. package/dist/components/ui/select/select.script.d.ts +74 -26
  149. package/dist/components/ui/shared/calendar-popover-behavior.d.ts +27 -0
  150. package/dist/components/ui/shared/control-toggle.css +8 -4
  151. package/dist/components/ui/shared/field-label.d.ts +5 -0
  152. package/dist/components/ui/shared/listbox-host-controller.d.ts +41 -0
  153. package/dist/components/ui/shared/listbox-option.d.ts +4 -0
  154. package/dist/components/ui/shared/multi-value.d.ts +23 -1
  155. package/dist/components/ui/shared/numeric-range.d.ts +8 -0
  156. package/dist/components/ui/shared/popover.css +10 -99
  157. package/dist/components/ui/sidebar/index.d.ts +2 -1
  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.d.ts +12 -0
  161. package/dist/components/ui/sidebar/sidebar-trigger.script.d.ts +52 -31
  162. package/dist/components/ui/sidebar/sidebar.css +67 -61
  163. package/dist/components/ui/sidebar/sidebar.d.ts +9 -4
  164. package/dist/components/ui/sidebar/sidebar.script.d.ts +42 -20
  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.css +5 -5
  168. package/dist/components/ui/slider/slider.d.ts +20 -10
  169. package/dist/components/ui/slider/slider.script.d.ts +103 -27
  170. package/dist/components/ui/switch/index.js +1 -1
  171. package/dist/components/ui/switch/index.js.map +4 -4
  172. package/dist/components/ui/switch/switch.css +28 -22
  173. package/dist/components/ui/switch/switch.d.ts +13 -0
  174. package/dist/components/ui/switch/switch.script.d.ts +34 -8
  175. package/dist/components/ui/table/index.js +1 -1
  176. package/dist/components/ui/table/index.js.map +4 -4
  177. package/dist/components/ui/table/table.d.ts +9 -7
  178. package/dist/components/ui/table/table.script.d.ts +55 -12
  179. package/dist/components/ui/tabs/tabs.css +18 -12
  180. package/dist/components/ui/tabs/tabs.d.ts +7 -4
  181. package/dist/components/ui/tabs/tabs.script.d.ts +39 -9
  182. package/dist/components/ui/tag-group/index.js +1 -1
  183. package/dist/components/ui/tag-group/index.js.map +4 -4
  184. package/dist/components/ui/tag-group/tag-group.d.ts +19 -7
  185. package/dist/components/ui/tag-group/tag-group.script.d.ts +58 -10
  186. package/dist/components/ui/textarea/index.js +1 -1
  187. package/dist/components/ui/textarea/index.js.map +4 -4
  188. package/dist/components/ui/textarea/textarea.css +1 -1
  189. package/dist/components/ui/toast/index.js +1 -1
  190. package/dist/components/ui/toast/index.js.map +4 -4
  191. package/dist/components/ui/toast/toast.css +35 -32
  192. package/dist/components/ui/toast/toast.script.d.ts +17 -31
  193. package/dist/components/ui/toast/toaster.script.d.ts +24 -12
  194. package/dist/components/ui/toc/toc.script.d.ts +19 -8
  195. package/dist/components/ui/toolbar/toolbar.d.ts +5 -0
  196. package/dist/components/ui/toolbar/toolbar.script.d.ts +24 -4
  197. package/dist/components/ui/tooltip/index.js +1 -1
  198. package/dist/components/ui/tooltip/index.js.map +4 -4
  199. package/dist/components/ui/tooltip/tooltip.css +14 -94
  200. package/dist/components/ui/tooltip/tooltip.d.ts +7 -0
  201. package/dist/components/ui/tooltip/tooltip.script.d.ts +36 -6
  202. package/dist/components/ui/tree/tree.d.ts +4 -3
  203. package/dist/components/ui/tree/tree.script.d.ts +28 -15
  204. package/dist/components/ui/treegrid/treegrid.d.ts +5 -3
  205. package/dist/components/ui/treegrid/treegrid.script.d.ts +33 -14
  206. package/dist/components/ui/window-splitter/index.d.ts +1 -1
  207. package/dist/components/ui/window-splitter/index.js +1 -1
  208. package/dist/components/ui/window-splitter/index.js.map +3 -3
  209. package/dist/components/ui/window-splitter/window-splitter.d.ts +10 -1
  210. package/dist/components/ui/window-splitter/window-splitter.script.d.ts +26 -8
  211. package/dist/index.d.ts +2 -0
  212. package/dist/index.js +1 -1
  213. package/dist/index.js.map +4 -4
  214. package/dist/lib/icons/check.d.ts +3 -0
  215. package/dist/lib/icons/chevron-down.d.ts +0 -1
  216. package/dist/lib/icons/index.d.ts +2 -0
  217. package/dist/lib/icons/x.d.ts +5 -0
  218. package/dist/lib/intl-date/index.d.ts +4 -2
  219. package/dist/lib/intl-date/segment-editing.d.ts +34 -0
  220. package/dist/lib/intl-date/segments.d.ts +26 -4
  221. package/dist/lib/non-empty.d.ts +6 -0
  222. package/dist/lib/unique-id.d.ts +11 -0
  223. package/dist/lib/viewport/breakpoints.d.ts +6 -0
  224. package/dist/lib/viewport/mobile-layout.d.ts +15 -0
  225. package/dist/styles/primitives.css +14 -11
  226. package/dist/styles/radiant-ui-core.css +10 -0
  227. package/dist/styles/radiant-ui.css +40 -11
  228. package/dist/styles/style-dependencies.json +38 -13
  229. package/dist/styles/styles.css +485 -252
  230. package/dist/styles/tailwind.css +40 -101
  231. package/dist/styles/tokens/presets/colors/aurora.css +2 -0
  232. package/dist/styles/tokens/presets/colors/basalt.css +2 -0
  233. package/dist/styles/tokens/presets/colors/ember.css +2 -0
  234. package/dist/styles/tokens/presets/colors/glacier.css +2 -0
  235. package/dist/styles/tokens/semantic.css +1 -0
  236. package/dist/styles/tokens/system.css +11 -3
  237. package/dist/styles/tokens/typography/default.css +8 -0
  238. package/package.json +27 -13
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/ui/date-field/date-field.script.tsx", "../../../../src/lib/intl-date/iso.ts", "../../../../src/lib/intl-date/formatters.ts", "../../../../src/lib/mask/input-mask.ts", "../../../../src/lib/mask/date-mask.ts", "../../../../src/lib/intl-date/parts.ts", "../../../../src/lib/intl/locale.ts", "../../../../src/components/ui/shared/floating-position.ts", "../../../../src/components/ui/shared/portal.ts", "../../../../src/components/ui/shared/popover-controller.ts", "../../../../src/components/ui/shared/field-label.ts", "../../../../src/components/ui/date-field/date-field.tsx", "../../../../src/aria.ts", "../../../../src/lib/cx.ts", "../../../../src/lib/icons/calendar.tsx", "../../../../src/components/ui/calendar/calendar.tsx"],
4
- "sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_disabled, _init_extra_disabled, _init_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _init_name, _init_extra_name, _init_placeholder, _init_extra_placeholder, _init_locale, _init_extra_locale, _init_dateStyle, _init_extra_dateStyle, _init_masked, _init_extra_masked, _init_visibleMonths, _init_extra_visibleMonths, _init_changeEvent, _init_extra_changeEvent, _init_displayValue, _init_extra_displayValue, _init_editing, _init_extra_editing, _init_open, _init_extra_open, _init_popoverTarget, _init_extra_popoverTarget;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { RadiantElement, customElement, event, onEvent, onUpdated, prop, query, state } from \"@ecopages/radiant\";\nimport { dateToIso, formatDisplayDate, isoToDate, parseLocaleDateString } from \"@/lib/intl-date\";\nimport { resolveLocale } from \"@/lib/intl/locale\";\nimport { PopoverController, shouldDismissPopoverFocus } from \"../shared/popover-controller\";\nimport { syncFieldLabel } from \"../shared/field-label\";\nimport { applyDateMask, buildDateMaskPattern, extractDateMaskDigits, getDefaultDatePlaceholder, getNumericPartOrder, maskDigitCapacity } from \"@/lib/mask\";\nlet _RuiDateField;\nclass RuiDateField extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_disabled, _init_extra_disabled, _init_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _init_name, _init_extra_name, _init_placeholder, _init_extra_placeholder, _init_locale, _init_extra_locale, _init_dateStyle, _init_extra_dateStyle, _init_masked, _init_extra_masked, _init_visibleMonths, _init_extra_visibleMonths, _init_changeEvent, _init_extra_changeEvent, _init_displayValue, _init_extra_displayValue, _init_editing, _init_extra_editing, _init_open, _init_extra_open, _init_popoverTarget, _init_extra_popoverTarget, _initProto],\n c: [_RuiDateField, _initClass]\n } = _applyDecs(this, [customElement(\"rui-date-field\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"value\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"min\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"max\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [prop({\n type: Boolean,\n attribute: \"read-only\",\n reflect: true,\n defaultValue: false\n }), 0, \"readOnly\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"name\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"placeholder\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"locale\"], [prop({\n type: String,\n attribute: \"date-style\",\n defaultValue: \"medium\"\n }), 0, \"dateStyle\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: true\n }), 0, \"masked\"], [prop({\n type: Number,\n attribute: \"visible-months\",\n defaultValue: 1\n }), 0, \"visibleMonths\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [state, 0, \"displayValue\"], [state, 0, \"editing\"], [state, 0, \"open\"], [query({\n ref: \"popover\"\n }), 0, \"popoverTarget\"], [onUpdated([\"value\", \"min\", \"max\", \"label\", \"placeholder\", \"disabled\", \"readOnly\", \"locale\", \"dateStyle\", \"masked\", \"visibleMonths\"]), 2, \"onPropsUpdated\"], [onUpdated([\"open\"]), 2, \"onOpenUpdated\"], [onEvent({\n selector: \"[data-date-field-input]\",\n type: \"focusin\"\n }), 2, \"onInputFocus\"], [onEvent({\n selector: \"[data-date-field-input]\",\n type: \"input\"\n }), 2, \"onInput\"], [onEvent({\n selector: \"[data-date-field-input]\",\n type: \"change\"\n }), 2, \"onInputChange\"], [onEvent({\n selector: \"[data-date-field-input]\",\n type: \"keydown\"\n }), 2, \"onInputKeydown\"], [onEvent({\n selector: \"[data-date-field-input], [data-date-field-trigger], [data-date-field-popover]\",\n type: \"focusout\"\n }), 2, \"onRootFocusOut\"], [onEvent({\n ref: \"trigger\",\n type: \"pointerdown\"\n }), 2, \"onTriggerPointerDown\"], [onEvent({\n ref: \"trigger\",\n type: \"click\"\n }), 2, \"onTriggerClick\"], [onEvent({\n selector: \"[data-date-field-popover]\",\n type: \"mousedown\"\n }), 2, \"onPopoverMouseDown\"], [onEvent({\n selector: \"[data-date-field-calendar]\",\n type: \"rui-change\"\n }), 2, \"onCalendarChange\"], [onEvent({\n selector: \"[data-date-field-input], [data-date-field-trigger], [data-date-field-calendar]\",\n type: \"keydown\"\n }), 2, \"onRootKeydown\"]], 0, void 0, RadiantElement));\n }\n constructor(...args) {\n super(...args);\n _init_extra_popoverTarget(this);\n }\n value = (_initProto(this), _init_value(this));\n min = (_init_extra_value(this), _init_min(this));\n max = (_init_extra_min(this), _init_max(this));\n disabled = (_init_extra_max(this), _init_disabled(this));\n readOnly = (_init_extra_disabled(this), _init_readOnly(this));\n label = (_init_extra_readOnly(this), _init_label(this));\n name = (_init_extra_label(this), _init_name(this));\n placeholder = (_init_extra_name(this), _init_placeholder(this));\n locale = (_init_extra_placeholder(this), _init_locale(this));\n dateStyle = (_init_extra_locale(this), _init_dateStyle(this));\n masked = (_init_extra_dateStyle(this), _init_masked(this));\n visibleMonths = (_init_extra_masked(this), _init_visibleMonths(this));\n changeEvent = (_init_extra_visibleMonths(this), _init_changeEvent(this));\n displayValue = (_init_extra_changeEvent(this), _init_displayValue(this, \"\"));\n editing = (_init_extra_displayValue(this), _init_editing(this, false));\n open = (_init_extra_editing(this), _init_open(this, false));\n uid = (_init_extra_open(this), Math.random().toString(36).slice(2, 9));\n popoverController = null;\n suppressPopoverDismiss = false;\n popoverTarget = _init_popoverTarget(this);\n get isoValue() {\n return this.value ?? \"\";\n }\n get resolvedLocale() {\n return resolveLocale(this.locale);\n }\n get inputId() {\n return `rui-date-field-input-${this.uid}`;\n }\n get resolvedPlaceholder() {\n return this.placeholder || getDefaultDatePlaceholder(this.resolvedLocale);\n }\n getInput() {\n return this.querySelector(\"[data-date-field-input]\");\n }\n getToggle() {\n return this.querySelector(\"[data-date-field-trigger]\");\n }\n getCalendar() {\n return this.querySelector(\"[data-date-field-calendar]\");\n }\n syncLabel() {\n const input = this.getInput();\n syncFieldLabel(this, input, {\n controlId: this.inputId,\n label: this.label,\n labelId: `rui-date-field-label-${this.uid}`\n });\n }\n syncInput() {\n const input = this.getInput();\n if (!input) {\n return;\n }\n if (!input.id) {\n input.id = this.inputId;\n }\n input.name = this.name;\n input.disabled = this.disabled;\n input.readOnly = this.readOnly;\n input.inputMode = this.masked ? \"numeric\" : \"text\";\n const placeholder = this.resolvedPlaceholder;\n if (placeholder) {\n input.placeholder = placeholder;\n }\n }\n syncToggle() {\n const toggle = this.getToggle();\n if (!toggle) {\n return;\n }\n toggle.disabled = this.disabled || this.readOnly;\n toggle.setAttribute(\"aria-expanded\", String(this.open));\n }\n syncCalendar() {\n const calendar = this.getCalendar();\n if (!calendar) {\n return;\n }\n calendar.setAttribute(\"selection-mode\", \"single\");\n calendar.setAttribute(\"visible-months\", String(this.visibleMonths));\n calendar.setAttribute(\"value\", this.isoValue);\n calendar.setAttribute(\"min\", this.min);\n calendar.setAttribute(\"max\", this.max);\n calendar.setAttribute(\"locale\", this.locale);\n calendar.toggleAttribute(\"disabled\", this.disabled);\n }\n formatForDisplay(iso) {\n if (!iso) {\n return \"\";\n }\n const date = isoToDate(iso);\n if (!date) {\n return \"\";\n }\n return formatDisplayDate(date, this.resolvedLocale, this.dateStyle);\n }\n formatForEditing(iso) {\n if (!iso) {\n return \"\";\n }\n if (!this.masked) {\n return this.formatForDisplay(iso);\n }\n const date = isoToDate(iso);\n if (!date) {\n return \"\";\n }\n const pattern = buildDateMaskPattern(this.resolvedLocale);\n const digits = dateToMaskDigits(date, this.resolvedLocale);\n return applyDateMask(digits, pattern);\n }\n syncDisplayValue() {\n if (this.editing) {\n return;\n }\n this.displayValue = this.formatForDisplay(this.isoValue);\n const input = this.getInput();\n if (input) {\n input.value = this.displayValue;\n }\n }\n isIsoAllowed(iso) {\n if (this.min && iso < this.min) {\n return false;\n }\n if (this.max && iso > this.max) {\n return false;\n }\n return true;\n }\n commitValue(iso) {\n if (iso && !this.isIsoAllowed(iso)) {\n this.syncDisplayValue();\n return;\n }\n if (iso === this.isoValue) {\n this.syncDisplayValue();\n return;\n }\n this.value = iso;\n this.changeEvent.emit({\n value: iso\n });\n this.syncDisplayValue();\n }\n parseAndCommit(raw) {\n const trimmed = (raw ?? \"\").trim();\n if (!trimmed) {\n this.commitValue(\"\");\n return;\n }\n const parsed = parseLocaleDateString(trimmed, this.resolvedLocale);\n if (!parsed) {\n this.syncDisplayValue();\n return;\n }\n this.commitValue(dateToIso(parsed));\n }\n handleMaskedInput(raw) {\n const pattern = buildDateMaskPattern(this.resolvedLocale);\n const digits = extractDateMaskDigits(raw);\n const masked = applyDateMask(digits, pattern);\n if (digits.length >= maskDigitCapacity(pattern)) {\n this.parseAndCommit(masked);\n }\n return masked;\n }\n initialize() {\n this.syncLabel();\n this.syncInput();\n this.syncDisplayValue();\n this.syncToggle();\n this.syncCalendar();\n this.setOpen(false);\n }\n setOpen(next) {\n this.open = next;\n queueMicrotask(() => {\n this.syncCalendar();\n this.syncPopoverPosition();\n if (next) {\n this.focusCalendarDay();\n }\n });\n }\n /** Focus the calendar's roving day, falling back to its first available day. */\n focusCalendarDay() {\n requestAnimationFrame(() => {\n if (!this.open) {\n return;\n }\n const calendar = this.getCalendar();\n const selectedDay = this.isoValue ? calendar?.querySelector(`[data-calendar-day][data-iso=\"${this.isoValue}\"]:not(:disabled)`) : null;\n (selectedDay ?? calendar?.querySelector('[data-calendar-day][tabindex=\"0\"]:not(:disabled), [data-calendar-day]:not(:disabled)'))?.focus();\n });\n }\n ensurePopoverController() {\n if (!this.popoverController) {\n this.popoverController = new PopoverController({\n getAnchor: () => this.getToggle()?.parentElement ?? this,\n getFloating: () => this.popoverTarget,\n getOpen: () => this.open,\n getPlacement: () => \"bottom-start\",\n gap: 4,\n portal: false\n });\n }\n return this.popoverController;\n }\n syncPopoverPosition() {\n const popover = this.popoverTarget;\n if (!popover) {\n return;\n }\n popover.hidden = !this.open;\n const controller = this.ensurePopoverController();\n controller.updateConfig({\n getOpen: () => this.open\n });\n controller.sync();\n }\n onConnected() {\n this.initialize();\n }\n disconnectedCallback() {\n this.popoverController?.destroy();\n this.popoverController = null;\n super.disconnectedCallback();\n }\n onPropsUpdated() {\n this.syncLabel();\n this.syncInput();\n this.syncDisplayValue();\n this.syncToggle();\n this.syncCalendar();\n }\n onOpenUpdated() {\n this.syncToggle();\n this.syncPopoverPosition();\n }\n onInputFocus() {\n this.editing = true;\n const input = this.getInput();\n if (!input) {\n return;\n }\n input.value = this.isoValue ? this.formatForEditing(this.isoValue) : \"\";\n this.displayValue = input.value;\n }\n onInput(event2) {\n const input = event2.target;\n if (this.masked) {\n const masked = this.handleMaskedInput(input.value);\n input.value = masked;\n this.displayValue = masked;\n return;\n }\n this.displayValue = input.value;\n }\n onInputChange() {\n const input = this.getInput();\n if (input) {\n this.parseAndCommit(input.value);\n }\n }\n onInputKeydown(event2) {\n if (event2.key === \"Escape\") {\n if (this.open) {\n event2.preventDefault();\n this.setOpen(false);\n return;\n }\n this.editing = false;\n this.syncDisplayValue();\n }\n }\n onRootFocusOut(event2) {\n const target = event2.target;\n const relatedTarget = event2.relatedTarget;\n if (target.matches(\"[data-date-field-input]\") && target.localName === \"input\") {\n const input = target;\n queueMicrotask(() => {\n if (!this.editing) {\n return;\n }\n this.editing = false;\n this.parseAndCommit(input.value);\n });\n }\n queueMicrotask(() => {\n if (this.suppressPopoverDismiss) {\n this.suppressPopoverDismiss = false;\n return;\n }\n if (!this.open) {\n return;\n }\n const next = relatedTarget instanceof Node ? relatedTarget : document.activeElement;\n if (!shouldDismissPopoverFocus(this, this.popoverTarget, next)) {\n return;\n }\n this.setOpen(false);\n });\n }\n onTriggerPointerDown() {\n this.suppressPopoverDismiss = true;\n }\n onTriggerClick() {\n if (this.disabled || this.readOnly) {\n return;\n }\n this.setOpen(!this.open);\n }\n onPopoverMouseDown(event2) {\n event2.preventDefault();\n }\n onCalendarChange(event2) {\n const target = event2.target;\n if (!(target instanceof HTMLElement) || !target.matches(\"[data-date-field-calendar]\")) {\n return;\n }\n const detail = event2.detail;\n if (!detail?.value) {\n return;\n }\n this.commitValue(detail.value);\n this.setOpen(false);\n }\n onRootKeydown(event2) {\n if (event2.key === \"Escape\" && this.open) {\n event2.preventDefault();\n this.setOpen(false);\n }\n }\n static {\n _initClass();\n }\n}\nexport { _RuiDateField as RuiDateField };\nfunction dateToMaskDigits(date, locale) {\n const order = getNumericPartOrder(locale);\n const values = {\n month: String(date.getMonth() + 1).padStart(2, \"0\"),\n day: String(date.getDate()).padStart(2, \"0\"),\n year: String(date.getFullYear())\n };\n return order.map(part => values[part]).join(\"\");\n}", "export function isoToDate(iso) {\n if (iso == null) {\n return null;\n }\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(iso.trim());\n if (!match) {\n return null;\n }\n const year = Number(match[1]);\n const month = Number(match[2]) - 1;\n const day = Number(match[3]);\n const date = new Date(year, month, day);\n if (date.getFullYear() !== year || date.getMonth() !== month || date.getDate() !== day) {\n return null;\n }\n return date;\n}\nexport function dateToIso(date) {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n return `${year}-${month}-${day}`;\n}\nexport function isIsoInRange(iso, min, max) {\n if (min && iso < min) {\n return false;\n }\n if (max && iso > max) {\n return false;\n }\n return true;\n}", "const formatterCache = /* @__PURE__ */new Map();\nfunction cacheKey(locale, options) {\n return `${JSON.stringify(locale ?? null)}|${JSON.stringify(options)}`;\n}\nexport function getDateTimeFormat(locale, options) {\n const key = cacheKey(locale, options);\n const cached = formatterCache.get(key);\n if (cached) {\n return cached;\n }\n const formatter = new Intl.DateTimeFormat(locale, options);\n formatterCache.set(key, formatter);\n return formatter;\n}\nexport function formatDisplayDate(date, locale, style = \"medium\") {\n return getDateTimeFormat(locale, {\n dateStyle: style\n }).format(date);\n}\nexport function formatMonthYear(date, locale) {\n return getDateTimeFormat(locale, {\n month: \"long\",\n year: \"numeric\"\n }).format(date);\n}\nexport function getWeekdayLabels(locale, weekStartsOn) {\n const formatter = getDateTimeFormat(locale, {\n weekday: \"narrow\"\n });\n const labels = [];\n for (let offset = 0; offset < 7; offset += 1) {\n const dayIndex = (weekStartsOn + offset) % 7;\n const reference = new Date(2024, 0, dayIndex === 0 ? 7 : dayIndex);\n labels.push(formatter.format(reference));\n }\n return labels;\n}\nexport function formatDateRange(start, end, locale, style = \"medium\") {\n const formatter = getDateTimeFormat(locale, {\n dateStyle: style\n });\n if (typeof formatter.formatRange === \"function\") {\n return formatter.formatRange(start, end);\n }\n return `${formatter.format(start)} \\u2013 ${formatter.format(end)}`;\n}\nexport function formatTodayLabel(locale) {\n return new Intl.RelativeTimeFormat(locale, {\n numeric: \"auto\"\n }).format(0, \"day\");\n}", "const DEFAULT_DEFINITIONS = {\n \"0\": \"digit\",\n a: \"letter\",\n \"*\": \"any\"\n};\nconst LETTER = /\\p{L}/u;\nfunction resolveDefinition(char, definitions) {\n const custom = definitions?.[char];\n if (custom instanceof RegExp) {\n return {\n kind: \"any\",\n pattern: custom\n };\n }\n if (custom) {\n return {\n kind: custom\n };\n }\n const builtIn = DEFAULT_DEFINITIONS[char];\n return builtIn ? {\n kind: builtIn\n } : null;\n}\nfunction matchesInput(char, kind, pattern) {\n if (pattern) {\n return pattern.test(char);\n }\n if (kind === \"digit\") {\n return /\\d/.test(char);\n }\n if (kind === \"letter\") {\n return LETTER.test(char);\n }\n return char.length > 0;\n}\nfunction parseMaskPatternInternal(pattern, definitions, optional = false) {\n const tokens = [];\n let index = 0;\n while (index < pattern.length) {\n const char = pattern[index];\n if (char === \"\\\\\") {\n const next = pattern[index + 1];\n if (next) {\n tokens.push({\n type: \"literal\",\n value: next\n });\n }\n index += 2;\n continue;\n }\n if (char === \"{\") {\n const end = pattern.indexOf(\"}\", index + 1);\n if (end < 0) {\n tokens.push({\n type: \"literal\",\n value: \"{\"\n });\n index += 1;\n continue;\n }\n tokens.push({\n type: \"fixed\",\n value: pattern.slice(index + 1, end)\n });\n index = end + 1;\n continue;\n }\n if (char === \"[\") {\n const end = findClosingBracket(pattern, index + 1);\n if (end < 0) {\n tokens.push({\n type: \"literal\",\n value: \"[\"\n });\n index += 1;\n continue;\n }\n const inner = parseMaskPatternInternal(pattern.slice(index + 1, end), definitions, true);\n tokens.push(...inner);\n index = end + 1;\n continue;\n }\n if (char === \"]\") {\n break;\n }\n const definition = resolveDefinition(char, definitions);\n if (definition) {\n tokens.push({\n type: \"input\",\n definition: char,\n kind: definition.kind,\n pattern: definition.pattern,\n optional\n });\n index += 1;\n continue;\n }\n tokens.push({\n type: \"literal\",\n value: char\n });\n index += 1;\n }\n return tokens;\n}\nfunction findClosingBracket(pattern, start) {\n let depth = 1;\n for (let index = start; index < pattern.length; index += 1) {\n if (pattern[index] === \"[\" && pattern[index - 1] !== \"\\\\\") {\n depth += 1;\n }\n if (pattern[index] === \"]\" && pattern[index - 1] !== \"\\\\\") {\n depth -= 1;\n if (depth === 0) {\n return index;\n }\n }\n }\n return -1;\n}\nexport function parseMaskPattern(pattern, definitions) {\n return parseMaskPatternInternal(pattern, definitions);\n}\nexport function maskInputSlotCount(tokens, options = {}) {\n return tokens.filter(token => token.type === \"input\" && (!options.requiredOnly || !token.optional)).length;\n}\nexport function maskToPlaceholder(pattern, definitions) {\n const tokens = parseMaskPattern(pattern, definitions);\n let result = \"\";\n for (const token of tokens) {\n if (token.type === \"literal\" || token.type === \"fixed\") {\n result += token.value;\n continue;\n }\n result += \"_\";\n }\n return result;\n}\nexport function extractMaskInput(masked, tokens) {\n let input = \"\";\n let cursor = 0;\n for (const token of tokens) {\n if (token.type === \"fixed\" || token.type === \"literal\") {\n if (masked.slice(cursor, cursor + token.value.length) === token.value) {\n cursor += token.value.length;\n }\n continue;\n }\n if (cursor >= masked.length) {\n continue;\n }\n const char = masked[cursor];\n if (matchesInput(char, token.kind, token.pattern)) {\n input += char;\n cursor += 1;\n }\n }\n return input;\n}\nexport function formatWithMask(input, tokens) {\n if (!input) {\n return \"\";\n }\n let inputIndex = 0;\n let result = \"\";\n for (const token of tokens) {\n if (token.type === \"fixed\" || token.type === \"literal\") {\n result += token.value;\n continue;\n }\n if (inputIndex >= input.length) {\n if (token.optional) {\n continue;\n }\n break;\n }\n const char = input[inputIndex];\n if (!matchesInput(char, token.kind, token.pattern)) {\n if (token.optional) {\n continue;\n }\n break;\n }\n result += char;\n inputIndex += 1;\n }\n return result;\n}\nfunction isDigitOnlyPattern(tokens) {\n return tokens.every(token => token.type !== \"input\" || token.kind === \"digit\");\n}\nfunction looseInputFromRaw(raw, tokens) {\n const loose = raw.replace(/\\D/g, \"\");\n const fixedDigits = tokens.filter(token => token.type === \"fixed\").map(token => token.value.replace(/\\D/g, \"\")).join(\"\");\n if (fixedDigits && loose.startsWith(fixedDigits)) {\n return loose.slice(fixedDigits.length);\n }\n return loose;\n}\nexport function applyInputMask(raw, pattern, definitions) {\n const tokens = parseMaskPattern(pattern, definitions);\n const capacity = maskInputSlotCount(tokens);\n let input = extractMaskInput(raw, tokens);\n if (input.length === 0 && /\\S/.test(raw) && isDigitOnlyPattern(tokens)) {\n input = looseInputFromRaw(raw, tokens);\n }\n if (input.length > capacity) {\n input = input.slice(0, capacity);\n }\n return formatWithMask(input, tokens);\n}", "import { applyInputMask, maskInputSlotCount, parseMaskPattern } from \"./input-mask\";\nimport { getDateTimeFormat } from \"@/lib/intl-date/formatters\";\nconst REFERENCE_DATE = new Date(2001, 8, 3);\nfunction getNumericPartOrder(locale) {\n return getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\"\n }).formatToParts(REFERENCE_DATE).filter(part => part.type === \"year\" || part.type === \"month\" || part.type === \"day\").map(part => part.type);\n}\nexport function buildDateMaskPattern(locale) {\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\"\n }).formatToParts(REFERENCE_DATE);\n let pattern = \"\";\n for (const part of parts) {\n if (part.type === \"literal\") {\n pattern += part.value;\n continue;\n }\n if (part.type === \"month\" || part.type === \"day\" || part.type === \"year\") {\n pattern += part.value.replace(/\\d/g, \"0\");\n }\n }\n return pattern;\n}\nexport function getDefaultDatePlaceholder(locale) {\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\"\n }).formatToParts(REFERENCE_DATE);\n return parts.map(part => {\n if (part.type === \"literal\") {\n return part.value;\n }\n if (part.type === \"year\") {\n return \"yyyy\";\n }\n if (part.type === \"month\") {\n return \"mm\";\n }\n if (part.type === \"day\") {\n return \"dd\";\n }\n return \"\";\n }).join(\"\");\n}\nexport function extractMaskDigits(value) {\n return value.replace(/\\D/g, \"\");\n}\nexport function applyDateMask(digits, pattern) {\n return applyInputMask(extractMaskDigits(digits), pattern);\n}\nexport function maskDigitCapacity(pattern) {\n return maskInputSlotCount(parseMaskPattern(pattern), {\n requiredOnly: true\n });\n}\nfunction normalizeYear(value) {\n if (value >= 100) {\n return value;\n }\n return value >= 69 ? 1900 + value : 2e3 + value;\n}\nexport function maskedDigitsToParts(digits, locale) {\n const order = getNumericPartOrder(locale);\n let cursor = 0;\n const values = {};\n for (const type of order) {\n const width = type === \"year\" ? 4 : 2;\n const slice = digits.slice(cursor, cursor + width);\n if (slice.length < width) {\n return null;\n }\n let numeric = Number(slice);\n if (type === \"year\") {\n numeric = normalizeYear(numeric);\n }\n values[type] = numeric;\n cursor += width;\n }\n return values;\n}\nexport function partsToDate(parts) {\n if (parts.year == null || parts.month == null || parts.day == null) {\n return null;\n }\n const date = new Date(parts.year, parts.month - 1, parts.day);\n if (date.getFullYear() !== parts.year || date.getMonth() !== parts.month - 1 || date.getDate() !== parts.day) {\n return null;\n }\n return date;\n}\nexport { getNumericPartOrder };", "import { isoToDate } from \"./iso\";\nimport { getDateTimeFormat } from \"./formatters\";\nimport { buildDateMaskPattern, extractMaskDigits as extractDateMaskDigits, maskDigitCapacity, maskedDigitsToParts, partsToDate } from \"@/lib/mask/date-mask\";\nconst REFERENCE_DATE = new Date(2001, 8, 3);\nexport function getDatePartOrder(locale) {\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\"\n }).formatToParts(REFERENCE_DATE);\n return parts.filter(part => part.type === \"year\" || part.type === \"month\" || part.type === \"day\").map(part => part.type);\n}\nexport function getDateSeparators(locale) {\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\"\n }).formatToParts(REFERENCE_DATE);\n return parts.filter(part => part.type === \"literal\").map(part => part.value);\n}\nfunction normalizeYear(value) {\n if (value >= 100) {\n return value;\n }\n return value >= 69 ? 1900 + value : 2e3 + value;\n}\nfunction buildDateFromParts(parts) {\n const year = parts.year;\n const month = parts.month;\n const day = parts.day;\n if (!Number.isFinite(year) || !Number.isFinite(month) || !Number.isFinite(day)) {\n return null;\n }\n const date = new Date(year, month - 1, day);\n if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {\n return null;\n }\n return date;\n}\nexport function parseLocaleDateString(input, locale) {\n const trimmed = (input ?? \"\").trim();\n if (!trimmed) {\n return null;\n }\n const isoDate = isoToDate(trimmed);\n if (isoDate) {\n return isoDate;\n }\n const fromMask = parseMaskedInput(trimmed, locale);\n if (fromMask) {\n return fromMask;\n }\n const fromMonthName = parseDateWithMonthNames(trimmed, locale);\n if (fromMonthName) {\n return fromMonthName;\n }\n const order = getDatePartOrder(locale);\n const numbers = trimmed.match(/\\d+/g);\n if (!numbers || numbers.length < 3) {\n return null;\n }\n const values = {\n day: 0,\n month: 0,\n year: 0\n };\n for (let index = 0; index < 3; index += 1) {\n const partType = order[index];\n if (!partType) {\n return null;\n }\n let numeric = Number(numbers[index]);\n if (partType === \"year\") {\n numeric = normalizeYear(numeric);\n }\n values[partType] = numeric;\n }\n return buildDateFromParts(values);\n}\nfunction parseMaskedInput(input, locale) {\n const pattern = buildDateMaskPattern(locale);\n const digits = extractDateMaskDigits(input);\n if (digits.length < maskDigitCapacity(pattern)) {\n return null;\n }\n return partsToDate(maskedDigitsToParts(digits, locale) ?? {});\n}\nfunction getMonthNameLookup(locale) {\n const lookup = /* @__PURE__ */new Map();\n for (const style of [\"short\", \"long\"]) {\n for (let month = 0; month < 12; month += 1) {\n const label = getDateTimeFormat(locale, {\n month: style\n }).formatToParts(new Date(2020, month, 1)).find(part => part.type === \"month\")?.value;\n if (label) {\n lookup.set(label.toLowerCase(), month + 1);\n }\n }\n }\n return lookup;\n}\nfunction parseDateWithMonthNames(input, locale) {\n const months = getMonthNameLookup(locale);\n const normalized = input.toLowerCase();\n for (const [name, month] of months) {\n const index = normalized.indexOf(name);\n if (index < 0) {\n continue;\n }\n const numbers = input.match(/\\d+/g);\n if (!numbers || numbers.length < 2) {\n continue;\n }\n const yearToken = numbers.find(token => token.length === 4) ?? numbers[numbers.length - 1];\n const dayToken = numbers.find(token => token !== yearToken && Number(token) <= 31);\n if (!dayToken || !yearToken) {\n continue;\n }\n const year = normalizeYear(Number(yearToken));\n const day = Number(dayToken);\n return buildDateFromParts({\n year,\n month,\n day\n });\n }\n return null;\n}", "export function resolveLocale(locale) {\n if (!locale) {\n return void 0;\n }\n const tags = locale.split(\",\").map(tag => tag.trim()).filter(Boolean);\n return tags.length > 1 ? tags : tags[0];\n}", "const OPPOSITE = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n};\nconst DEFAULT_VIEWPORT_PADDING = 8;\nfunction parsePlacement(placement) {\n const dash = placement.indexOf(\"-\");\n if (dash === -1) return {\n side: placement,\n align: \"center\"\n };\n const side = placement.slice(0, dash);\n const align = placement.slice(dash + 1);\n return {\n side,\n align: align === \"start\" || align === \"end\" ? align : \"center\"\n };\n}\nfunction primaryAxis(side) {\n return side === \"top\" || side === \"bottom\" ? \"y\" : \"x\";\n}\nfunction coordsFor(anchor, size, side, align, gap) {\n const {\n width,\n height\n } = size;\n let x = 0;\n let y = 0;\n switch (side) {\n case \"top\":\n y = anchor.top - height - gap;\n break;\n case \"bottom\":\n y = anchor.bottom + gap;\n break;\n case \"left\":\n x = anchor.left - width - gap;\n break;\n case \"right\":\n x = anchor.right + gap;\n break;\n }\n if (primaryAxis(side) === \"y\") {\n if (align === \"start\") x = anchor.left;else if (align === \"end\") x = anchor.right - width;else x = anchor.left + (anchor.width - width) / 2;\n } else {\n if (align === \"start\") y = anchor.top;else if (align === \"end\") y = anchor.bottom - height;else y = anchor.top + (anchor.height - height) / 2;\n }\n return {\n x,\n y\n };\n}\nfunction overflowOnPrimary(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return Math.max(0, padding - coords.y);\n if (side === \"bottom\") return Math.max(0, coords.y + size.height - (vh - padding));\n if (side === \"left\") return Math.max(0, padding - coords.x);\n return Math.max(0, coords.x + size.width - (vw - padding));\n}\nfunction freeSpaceOnSide(anchor, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return anchor.top - padding - size.height;\n if (side === \"bottom\") return vh - padding - size.height - anchor.bottom;\n if (side === \"left\") return anchor.left - padding - size.width;\n return vw - padding - size.width - anchor.right;\n}\nfunction toPlacement(side, align) {\n if (align === \"center\") {\n return side;\n }\n return `${side}-${align}`;\n}\nfunction clampCrossAxis(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (primaryAxis(side) === \"y\") {\n const maxX = Math.max(padding, vw - padding - size.width);\n return {\n x: Math.min(Math.max(coords.x, padding), maxX),\n y: coords.y\n };\n }\n const maxY = Math.max(padding, vh - padding - size.height);\n return {\n x: coords.x,\n y: Math.min(Math.max(coords.y, padding), maxY)\n };\n}\nexport function computeFloatingCoords(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n return computeFloatingPosition(anchor, size, placement, gap, viewport).coords;\n}\nexport function computeFloatingPosition(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n const {\n side: preferred,\n align\n } = parsePlacement(placement);\n const preferredCoords = coordsFor(anchor, size, preferred, align, gap);\n const preferredOverflow = overflowOnPrimary(preferredCoords, size, preferred, viewport);\n let side = preferred;\n let coords = preferredCoords;\n if (preferredOverflow > 0) {\n const flipped = OPPOSITE[preferred];\n const flippedCoords = coordsFor(anchor, size, flipped, align, gap);\n const preferredFree = freeSpaceOnSide(anchor, size, preferred, viewport);\n const flippedFree = freeSpaceOnSide(anchor, size, flipped, viewport);\n if (flippedFree > preferredFree) {\n side = flipped;\n coords = flippedCoords;\n }\n }\n return {\n coords: clampCrossAxis(coords, size, side, viewport),\n placement: toPlacement(side, align)\n };\n}\nexport function applyFloatingPosition(anchor, floating, placement, gap, options = {}) {\n const {\n coords,\n placement: resolved\n } = computeFloatingPosition(anchor.getBoundingClientRect(), {\n width: floating.offsetWidth,\n height: floating.offsetHeight\n }, placement, gap);\n Object.assign(floating.style, {\n position: \"fixed\",\n left: `${coords.x}px`,\n top: `${coords.y}px`,\n right: \"auto\",\n bottom: \"auto\",\n visibility: \"visible\"\n });\n if (options.matchAnchorWidth) {\n floating.style.width = `${anchor.offsetWidth}px`;\n }\n floating.setAttribute(\"data-placement\", resolved);\n return resolved;\n}\nexport function attachFloating({\n anchor,\n floating,\n getPlacement,\n gap,\n matchAnchorWidth\n}) {\n const update = () => {\n if (floating.hidden) return;\n applyFloatingPosition(anchor, floating, getPlacement(), gap, {\n matchAnchorWidth\n });\n };\n update();\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n const observer = new ResizeObserver(update);\n observer.observe(anchor);\n observer.observe(floating);\n return () => {\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n observer.disconnect();\n };\n}", "export function mountPortal(node, container = document.body) {\n const parent = node.parentNode;\n if (!parent) {\n return {\n unmount: () => {}\n };\n }\n const placeholder = document.createComment(\"rui-portal\");\n parent.insertBefore(placeholder, node);\n container.appendChild(node);\n return {\n unmount: () => {\n const restoreParent = placeholder.parentNode;\n if (!restoreParent) {\n return;\n }\n restoreParent.insertBefore(node, placeholder);\n placeholder.remove();\n }\n };\n}", "import { attachFloating } from \"./floating-position\";\nimport { mountPortal } from \"./portal\";\nexport function popoverContains(anchor, floating, node) {\n if (!node) {\n return false;\n }\n return Boolean(anchor?.contains(node) || floating?.contains(node));\n}\nexport function shouldDismissPopoverFocus(anchor, floating, relatedTarget) {\n if (!(relatedTarget instanceof Node)) {\n return true;\n }\n return !popoverContains(anchor, floating, relatedTarget);\n}\nexport function shouldDismissPopoverPointer(anchor, floating, target) {\n return !popoverContains(anchor, floating, target);\n}\nexport class PopoverController {\n config;\n cleanupFloating = null;\n portalHandle = null;\n floatingElement = null;\n constructor(config) {\n this.config = config;\n }\n updateConfig(patch) {\n this.config = {\n ...this.config,\n ...patch\n };\n }\n sync() {\n const floating = this.resolveFloating();\n if (!floating) {\n return;\n }\n const open = this.config.getOpen();\n if (!open) {\n this.teardown();\n floating.toggleAttribute(\"hidden\", true);\n return;\n }\n const anchor = this.config.getAnchor();\n if (!anchor) {\n return;\n }\n floating.toggleAttribute(\"hidden\", false);\n const usePortal = this.config.portal !== false;\n if (usePortal) {\n if (!this.portalHandle) {\n this.portalHandle = mountPortal(floating, this.config.portalContainer ?? document.body);\n }\n } else if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n this.teardownFloating();\n this.cleanupFloating = attachFloating({\n anchor,\n floating,\n getPlacement: this.config.getPlacement,\n gap: this.config.gap ?? 8,\n matchAnchorWidth: this.config.matchAnchorWidth\n });\n }\n contains(node) {\n return popoverContains(this.config.getAnchor(), this.resolveFloating(), node);\n }\n getFloatingElement() {\n return this.resolveFloating();\n }\n teardown() {\n this.teardownFloating();\n if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n }\n destroy() {\n this.teardown();\n this.floatingElement = null;\n }\n resolveFloating() {\n const configuredFloating = this.config.getFloating();\n if (configuredFloating) {\n this.floatingElement = configuredFloating;\n }\n return configuredFloating ?? this.floatingElement;\n }\n teardownFloating() {\n this.cleanupFloating?.();\n this.cleanupFloating = null;\n }\n}", "export function findAssociatedLabel(owner) {\n const previous = owner.previousElementSibling;\n if (previous?.tagName.toLowerCase() === \"label\") {\n return previous;\n }\n return owner.parentElement?.querySelector(\"[data-rui-field-label], label.rui-label\") ?? null;\n}\nexport function syncFieldLabel(owner, control, options) {\n if (!control || control.hasAttribute(\"data-rui-field-managed\")) {\n return;\n }\n const labelElement = findAssociatedLabel(owner);\n if (labelElement) {\n if (!labelElement.id) {\n labelElement.id = options.labelId;\n }\n if (!labelElement.htmlFor) {\n labelElement.htmlFor = options.controlId;\n }\n control.setAttribute(\"aria-labelledby\", labelElement.id);\n control.removeAttribute(\"aria-label\");\n return;\n }\n if (options.label) {\n control.setAttribute(\"aria-label\", options.label);\n control.removeAttribute(\"aria-labelledby\");\n return;\n }\n control.removeAttribute(\"aria-label\");\n control.removeAttribute(\"aria-labelledby\");\n}", "import { Fragment, jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { withDefaultAriaLabel } from \"@/aria\";\nimport { cx } from \"@/lib/cx\";\nimport { RuiIconCalendar } from \"@/lib/icons\";\nimport { RuiCalendar } from \"../calendar\";\nimport \"./date-field.script\";\nexport function RuiDateFieldControl({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n class: cx(\"rui-date-field\", className),\n children: /* @__PURE__ */jsx(\"div\", {\n class: \"rui-date-field__group\",\n children\n })\n });\n}\nexport function RuiDateFieldInput({\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"input\", {\n ...props,\n type: \"text\",\n \"data-date-field-input\": true,\n \"data-rui-control\": true,\n \"data-rui-control-type\": \"text\",\n class: cx(\"rui-date-field__input\", className),\n autocomplete: \"off\"\n });\n}\nexport function RuiDateFieldToggle({\n children,\n class: className,\n aria,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"button\", {\n ...props,\n aria: withDefaultAriaLabel(aria, \"Open calendar\"),\n type: \"button\",\n \"data-ref\": \"trigger\",\n \"data-date-field-trigger\": true,\n class: cx(\"rui-control-toggle\", className),\n \"aria-haspopup\": \"dialog\",\n children: children ?? /* @__PURE__ */jsx(RuiIconCalendar, {})\n });\n}\nexport function RuiDateFieldPopover({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-ref\": \"popover\",\n \"data-date-field-popover\": true,\n class: cx(\"rui-date-field__popover rui-popover rui-floating\", className),\n hidden: true,\n role: \"dialog\",\n children\n });\n}\nexport function RuiDateFieldCalendar(props) {\n return /* @__PURE__ */jsx(RuiCalendar, {\n ...props,\n \"data-date-field-calendar\": true\n });\n}\nexport function RuiDateField({\n children,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-date-field\", {\n ...props,\n children: children ?? /* @__PURE__ */jsxs(Fragment, {\n children: [/* @__PURE__ */jsxs(RuiDateFieldControl, {\n children: [/* @__PURE__ */jsx(RuiDateFieldInput, {}), /* @__PURE__ */jsx(RuiDateFieldToggle, {})]\n }), /* @__PURE__ */jsx(RuiDateFieldPopover, {\n children: /* @__PURE__ */jsx(RuiDateFieldCalendar, {})\n })]\n })\n });\n}", "export function withDefaultAriaLabel(aria, fallback) {\n if (fallback === void 0 || aria?.label !== void 0) {\n return aria;\n }\n return {\n ...aria,\n label: fallback\n };\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nexport function RuiIconCalendar({\n class: className,\n size = \"sm\",\n ...props\n}) {\n return /* @__PURE__ */jsxs(\"svg\", {\n ...props,\n class: cx(\"rui-icon\", size === \"md\" && \"rui-icon--md\", className),\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": \"true\",\n children: [/* @__PURE__ */jsx(\"path\", {\n d: \"M8 2v4\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"M16 2v4\"\n }), /* @__PURE__ */jsx(\"rect\", {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"4\",\n rx: \"2\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"M3 10h18\"\n })]\n });\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport \"./calendar.script\";\nexport function RuiCalendar({\n children,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-calendar\", {\n ...props,\n children\n });\n}"],
5
- "mappings": "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",
6
- "names": ["RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "query", "state", "isoToDate", "iso", "match", "year", "month", "day", "date", "dateToIso", "formatterCache", "cacheKey", "locale", "options", "getDateTimeFormat", "key", "cached", "formatter", "formatDisplayDate", "date", "style", "DEFAULT_DEFINITIONS", "LETTER", "resolveDefinition", "char", "definitions", "custom", "builtIn", "matchesInput", "kind", "pattern", "parseMaskPatternInternal", "optional", "tokens", "index", "next", "end", "findClosingBracket", "inner", "definition", "start", "depth", "parseMaskPattern", "maskInputSlotCount", "options", "token", "extractMaskInput", "masked", "tokens", "input", "cursor", "token", "char", "matchesInput", "formatWithMask", "inputIndex", "result", "isDigitOnlyPattern", "looseInputFromRaw", "raw", "loose", "fixedDigits", "applyInputMask", "pattern", "definitions", "parseMaskPattern", "capacity", "maskInputSlotCount", "REFERENCE_DATE", "getNumericPartOrder", "locale", "getDateTimeFormat", "part", "buildDateMaskPattern", "parts", "pattern", "getDefaultDatePlaceholder", "extractMaskDigits", "value", "applyDateMask", "digits", "applyInputMask", "maskDigitCapacity", "maskInputSlotCount", "parseMaskPattern", "normalizeYear", "maskedDigitsToParts", "order", "cursor", "values", "type", "width", "slice", "numeric", "partsToDate", "date", "REFERENCE_DATE", "getDatePartOrder", "locale", "getDateTimeFormat", "part", "normalizeYear", "value", "buildDateFromParts", "parts", "year", "month", "day", "date", "parseLocaleDateString", "input", "locale", "trimmed", "isoDate", "isoToDate", "fromMask", "parseMaskedInput", "fromMonthName", "parseDateWithMonthNames", "order", "getDatePartOrder", "numbers", "values", "index", "partType", "numeric", "pattern", "buildDateMaskPattern", "digits", "extractMaskDigits", "maskDigitCapacity", "partsToDate", "maskedDigitsToParts", "getMonthNameLookup", "lookup", "style", "label", "getDateTimeFormat", "part", "months", "normalized", "name", "yearToken", "token", "dayToken", "resolveLocale", "locale", "tags", "tag", "OPPOSITE", "DEFAULT_VIEWPORT_PADDING", "parsePlacement", "placement", "dash", "side", "align", "primaryAxis", "coordsFor", "anchor", "size", "gap", "width", "height", "x", "y", "overflowOnPrimary", "coords", "viewport", "padding", "vw", "vh", "freeSpaceOnSide", "toPlacement", "clampCrossAxis", "maxX", "maxY", "computeFloatingPosition", "anchor", "size", "placement", "gap", "viewport", "DEFAULT_VIEWPORT_PADDING", "preferred", "align", "parsePlacement", "preferredCoords", "coordsFor", "preferredOverflow", "overflowOnPrimary", "side", "coords", "flipped", "OPPOSITE", "flippedCoords", "preferredFree", "freeSpaceOnSide", "clampCrossAxis", "toPlacement", "applyFloatingPosition", "floating", "options", "resolved", "attachFloating", "getPlacement", "matchAnchorWidth", "update", "observer", "mountPortal", "node", "container", "parent", "placeholder", "restoreParent", "popoverContains", "anchor", "floating", "node", "shouldDismissPopoverFocus", "relatedTarget", "PopoverController", "config", "patch", "floating", "anchor", "mountPortal", "attachFloating", "node", "popoverContains", "configuredFloating", "findAssociatedLabel", "owner", "previous", "syncFieldLabel", "control", "options", "labelElement", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_min", "_init_extra_min", "_init_max", "_init_extra_max", "_init_disabled", "_init_extra_disabled", "_init_readOnly", "_init_extra_readOnly", "_init_label", "_init_extra_label", "_init_name", "_init_extra_name", "_init_placeholder", "_init_extra_placeholder", "_init_locale", "_init_extra_locale", "_init_dateStyle", "_init_extra_dateStyle", "_init_masked", "_init_extra_masked", "_init_visibleMonths", "_init_extra_visibleMonths", "_init_changeEvent", "_init_extra_changeEvent", "_init_displayValue", "_init_extra_displayValue", "_init_editing", "_init_extra_editing", "_init_open", "_init_extra_open", "_init_popoverTarget", "_init_extra_popoverTarget", "_applyDecs", "r", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "n", "b", "e", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiDateField", "RuiDateField", "RadiantElement", "customElement", "prop", "event", "state", "query", "onUpdated", "onEvent", "args", "resolveLocale", "getDefaultDatePlaceholder", "input", "syncFieldLabel", "placeholder", "toggle", "calendar", "iso", "date", "isoToDate", "formatDisplayDate", "pattern", "buildDateMaskPattern", "digits", "dateToMaskDigits", "applyDateMask", "raw", "trimmed", "parsed", "parseLocaleDateString", "dateToIso", "extractMaskDigits", "masked", "maskDigitCapacity", "next", "PopoverController", "popover", "controller", "event2", "target", "relatedTarget", "shouldDismissPopoverFocus", "detail", "dateToMaskDigits", "date", "locale", "order", "getNumericPartOrder", "values", "part", "Fragment", "jsx", "jsxs", "withDefaultAriaLabel", "aria", "fallback", "cx", "parts", "jsx", "jsxs", "RuiIconCalendar", "className", "size", "props", "jsxs", "cx", "jsx", "jsx", "RuiCalendar", "children", "props", "jsx", "RuiDateFieldControl", "children", "className", "props", "jsx", "cx", "RuiDateFieldInput", "RuiDateFieldToggle", "aria", "withDefaultAriaLabel", "RuiIconCalendar", "RuiDateFieldPopover", "RuiDateFieldCalendar", "RuiCalendar", "RuiDateField", "jsxs", "Fragment"]
3
+ "sources": ["../../../../src/components/ui/date-field/date-field.script.tsx", "../../../../src/lib/viewport/mobile-layout.ts", "../../../../src/lib/unique-id.ts", "../../../../src/components/ui/shared/floating-position.ts", "../../../../src/components/ui/shared/portal.ts", "../../../../src/components/ui/shared/popover-controller.ts", "../../../../src/components/ui/shared/calendar-popover-behavior.ts", "../../../../src/components/ui/shared/field-label.ts", "../../../../src/components/ui/date-field/date-field.tsx", "../../../../src/aria.ts", "../../../../src/lib/cx.ts", "../../../../src/lib/icons/calendar.tsx", "../../../../src/components/ui/calendar/calendar.script.tsx", "../../../../src/lib/intl/locale.ts", "../../../../src/lib/intl-date/iso.ts", "../../../../src/lib/intl-date/selection.ts", "../../../../src/lib/intl-date/calendar.ts", "../../../../src/lib/intl-date/months.ts", "../../../../src/lib/intl-date/formatters.ts", "../../../../src/lib/intl-date/segments.ts", "../../../../src/lib/intl-date/segment-editing.ts", "../../../../src/components/ui/calendar/calendar.tsx", "../../../../src/components/ui/date-input/date-input.script.tsx", "../../../../src/components/ui/date-input/date-input-segment-dom.ts", "../../../../src/components/ui/date-input/date-input.tsx"],
4
+ "sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_disabled, _init_extra_disabled, _init_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _init_name, _init_extra_name, _init_locale, _init_extra_locale, _init_visibleMonths, _init_extra_visibleMonths, _init_changeEvent, _init_extra_changeEvent, _init_open, _init_extra_open, _init_popoverTarget, _init_extra_popoverTarget;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { RadiantElement, bindTo, customElement, event, onEvent, onUpdated, prop, query, state } from \"@ecopages/radiant\";\nimport { effectiveVisibleMonths, listenMobileLayoutViewport } from \"@/lib/viewport/mobile-layout\";\nimport { uniqueId } from \"@/lib/unique-id\";\nimport { CalendarPopoverBehavior } from \"../shared/calendar-popover-behavior\";\nimport { syncFieldLabel } from \"../shared/field-label\";\nlet _RuiDateField;\nclass RuiDateField extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_disabled, _init_extra_disabled, _init_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _init_name, _init_extra_name, _init_locale, _init_extra_locale, _init_visibleMonths, _init_extra_visibleMonths, _init_changeEvent, _init_extra_changeEvent, _init_open, _init_extra_open, _init_popoverTarget, _init_extra_popoverTarget, _initProto],\n c: [_RuiDateField, _initClass]\n } = _applyDecs(this, [customElement(\"rui-date-field\")], [[[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), bindTo([{\n selector: \"[data-date-field-input]\",\n attr: \"value\"\n }, {\n selector: \"[data-date-field-calendar]\",\n attr: \"value\"\n }])], 0, \"value\"], [[prop({\n type: String,\n defaultValue: \"\"\n }), bindTo([{\n selector: \"[data-date-field-input]\",\n attr: \"min\"\n }, {\n selector: \"[data-date-field-calendar]\",\n attr: \"min\"\n }])], 0, \"min\"], [[prop({\n type: String,\n defaultValue: \"\"\n }), bindTo([{\n selector: \"[data-date-field-input]\",\n attr: \"max\"\n }, {\n selector: \"[data-date-field-calendar]\",\n attr: \"max\"\n }])], 0, \"max\"], [[prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), bindTo([{\n selector: \"[data-date-field-input]\",\n bool: \"disabled\"\n }, {\n selector: \"[data-date-field-calendar]\",\n bool: \"disabled\"\n }])], 0, \"disabled\"], [[prop({\n type: Boolean,\n attribute: \"read-only\",\n reflect: true,\n defaultValue: false\n }), bindTo({\n selector: \"[data-date-field-input]\",\n bool: \"read-only\"\n })], 0, \"readOnly\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [[prop({\n type: String,\n defaultValue: \"\"\n }), bindTo({\n selector: \"[data-date-field-input]\",\n attr: \"name\"\n })], 0, \"name\"], [[prop({\n type: String,\n defaultValue: \"\"\n }), bindTo([{\n selector: \"[data-date-field-input]\",\n attr: \"locale\"\n }, {\n selector: \"[data-date-field-calendar]\",\n attr: \"locale\"\n }])], 0, \"locale\"], [prop({\n type: Number,\n attribute: \"visible-months\",\n defaultValue: 1\n }), 0, \"visibleMonths\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [[state, bindTo({\n selector: \"[data-date-field-trigger]\",\n attr: \"aria-expanded\"\n })], 0, \"open\"], [query({\n ref: \"popover\"\n }), 0, \"popoverTarget\"], [onUpdated([\"value\", \"min\", \"max\", \"label\", \"disabled\", \"readOnly\", \"locale\", \"visibleMonths\"]), 2, \"onPropsUpdated\"], [onUpdated([\"open\"]), 2, \"onOpenUpdated\"], [onEvent({\n selector: \"[data-date-field-input]\",\n type: \"rui-change\"\n }), 2, \"onDateInputChange\"], [onEvent({\n selector: \"[data-date-field-input]\",\n type: \"rui-form-reset\"\n }), 2, \"onDateInputReset\"], [onEvent({\n selector: \"[data-date-field-input], [data-date-field-trigger], [data-date-field-popover]\",\n type: \"focusout\"\n }), 2, \"onRootFocusOut\"], [onEvent({\n ref: \"trigger\",\n type: \"pointerdown\"\n }), 2, \"onTriggerPointerDown\"], [onEvent({\n ref: \"trigger\",\n type: \"click\"\n }), 2, \"onTriggerClick\"], [onEvent({\n selector: \"[data-date-field-popover]\",\n type: \"mousedown\"\n }), 2, \"onPopoverMouseDown\"], [onEvent({\n selector: \"[data-date-field-calendar]\",\n type: \"rui-change\"\n }), 2, \"onCalendarChange\"], [onEvent({\n selector: \"[data-date-field-input], [data-date-field-trigger], [data-date-field-calendar]\",\n type: \"keydown\"\n }), 2, \"onRootKeydown\"]], 0, void 0, RadiantElement));\n }\n value = (_initProto(this), _init_value(this));\n min = (_init_extra_value(this), _init_min(this));\n max = (_init_extra_min(this), _init_max(this));\n disabled = (_init_extra_max(this), _init_disabled(this));\n readOnly = (_init_extra_disabled(this), _init_readOnly(this));\n label = (_init_extra_readOnly(this), _init_label(this));\n name = (_init_extra_label(this), _init_name(this));\n locale = (_init_extra_name(this), _init_locale(this));\n visibleMonths = (_init_extra_locale(this), _init_visibleMonths(this));\n changeEvent = (_init_extra_visibleMonths(this), _init_changeEvent(this));\n open = (_init_extra_changeEvent(this), _init_open(this, false));\n uid = (_init_extra_open(this), uniqueId(\"rui-date-field\"));\n calendarPopover = new CalendarPopoverBehavior({\n getHost: () => this,\n getAnchor: () => this.getToggle()?.parentElement ?? this,\n getFloating: () => this.popoverTarget,\n getOpen: () => this.open,\n getCalendar: () => this.getCalendar(),\n getFocusIso: () => this.isoValue || void 0\n });\n disposeMobileLayoutListener = null;\n popoverTarget = _init_popoverTarget(this);\n onMediaChange = (_init_extra_popoverTarget(this), () => {\n this.syncCalendar();\n if (this.open) {\n this.calendarPopover.syncPopover();\n }\n });\n get isoValue() {\n return this.value ?? \"\";\n }\n get inputId() {\n return `${this.uid}-input`;\n }\n getDateInput() {\n return this.querySelector(\"[data-date-field-input]\");\n }\n getToggle() {\n return this.querySelector(\"[data-date-field-trigger]\");\n }\n getCalendar() {\n return this.querySelector(\"[data-date-field-calendar]\");\n }\n syncLabel() {\n const input = this.getDateInput();\n syncFieldLabel(this, input, {\n controlId: this.inputId,\n label: this.label,\n labelId: `${this.uid}-label`\n });\n }\n syncInput() {\n const input = this.getDateInput();\n if (!input?.id) {\n input?.setAttribute(\"id\", this.inputId);\n }\n }\n syncToggle() {\n const toggle = this.getToggle();\n if (!toggle) {\n return;\n }\n toggle.disabled = this.disabled || this.readOnly;\n }\n commitValue(iso) {\n if (iso === this.isoValue) {\n return;\n }\n this.value = iso;\n this.changeEvent.emit({\n value: iso\n });\n }\n syncCalendar() {\n const calendar = this.getCalendar();\n if (!calendar) {\n return;\n }\n calendar.setAttribute(\"selection-mode\", \"single\");\n calendar.setAttribute(\"visible-months\", String(effectiveVisibleMonths(this.visibleMonths)));\n }\n initialize() {\n this.syncLabel();\n this.syncInput();\n this.syncToggle();\n this.syncCalendar();\n this.setOpen(false);\n }\n setOpen(next) {\n this.open = next;\n queueMicrotask(() => {\n this.calendarPopover.syncPopover();\n if (next) {\n this.calendarPopover.focusCalendarDay();\n }\n });\n }\n onConnected() {\n this.disposeMobileLayoutListener = listenMobileLayoutViewport(this.onMediaChange);\n this.initialize();\n }\n disconnectedCallback() {\n this.disposeMobileLayoutListener?.();\n this.disposeMobileLayoutListener = null;\n this.calendarPopover.destroy();\n super.disconnectedCallback();\n }\n onPropsUpdated() {\n this.syncLabel();\n this.syncInput();\n this.syncToggle();\n this.syncCalendar();\n }\n onOpenUpdated() {\n this.syncToggle();\n this.calendarPopover.syncPopover();\n }\n onDateInputChange(event2) {\n const target = event2.target;\n if (!(target instanceof HTMLElement) || !target.matches(\"[data-date-field-input]\")) {\n return;\n }\n const detail = event2.detail;\n this.commitValue(detail?.value ?? \"\");\n }\n onDateInputReset() {\n const input = this.getDateInput();\n const value = input && Reflect.get(input, \"value\");\n this.value = typeof value === \"string\" ? value : \"\";\n }\n onRootFocusOut(event2) {\n this.calendarPopover.handleFocusOut(event2, () => this.setOpen(false));\n }\n onTriggerPointerDown() {\n this.calendarPopover.suppressDismiss();\n }\n onTriggerClick() {\n if (this.disabled || this.readOnly) {\n return;\n }\n this.setOpen(!this.open);\n }\n onPopoverMouseDown(event2) {\n event2.preventDefault();\n }\n onCalendarChange(event2) {\n const target = event2.target;\n if (!(target instanceof HTMLElement) || !target.matches(\"[data-date-field-calendar]\")) {\n return;\n }\n const detail = event2.detail;\n if (!detail?.value) {\n return;\n }\n this.commitValue(detail.value);\n this.setOpen(false);\n }\n onRootKeydown(event2) {\n if (event2.key === \"Escape\" && this.open) {\n event2.preventDefault();\n this.setOpen(false);\n }\n }\n static {\n _initClass();\n }\n}\nexport { _RuiDateField as RuiDateField };", "import { MOBILE_LAYOUT_MAX_WIDTH_PX } from \"./breakpoints\";\nexport { MOBILE_LAYOUT_MAX_WIDTH_PX };\nexport function isMobileLayoutViewport() {\n if (typeof window === \"undefined\" || typeof window.matchMedia !== \"function\") {\n return false;\n }\n return window.matchMedia(`(max-width: ${MOBILE_LAYOUT_MAX_WIDTH_PX}px)`).matches;\n}\nexport function effectiveVisibleMonths(requested) {\n if (requested <= 1 || !isMobileLayoutViewport()) {\n return requested;\n }\n return 1;\n}\nexport function listenMobileLayoutViewport(onChange) {\n if (typeof window === \"undefined\" || typeof window.matchMedia !== \"function\") {\n return null;\n }\n const mediaQueryList = window.matchMedia(`(max-width: ${MOBILE_LAYOUT_MAX_WIDTH_PX}px)`);\n mediaQueryList.addEventListener(\"change\", onChange);\n return () => mediaQueryList.removeEventListener(\"change\", onChange);\n}", "const CSS_SAFE_ID = /^[A-Za-z][A-Za-z0-9_-]*$/;\nexport function isCssSafeId(value) {\n return CSS_SAFE_ID.test(value);\n}\nfunction cssSafePrefix(prefix) {\n const trimmed = prefix.trim();\n if (isCssSafeId(trimmed)) {\n return trimmed;\n }\n const prefixed = `rui-${trimmed}`;\n if (trimmed && isCssSafeId(prefixed)) {\n return prefixed;\n }\n return \"rui\";\n}\nexport function uniqueId(prefix) {\n const token = typeof crypto.randomUUID === \"function\" ? crypto.randomUUID().replace(/-/g, \"\") : Array.from(crypto.getRandomValues(new Uint8Array(16)), byte => byte.toString(16).padStart(2, \"0\")).join(\"\");\n return `${cssSafePrefix(prefix)}-${token}`;\n}", "const OPPOSITE = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n};\nconst DEFAULT_VIEWPORT_PADDING = 8;\nconst matchAnchorWidthStylesApplied = /* @__PURE__ */new WeakMap();\nfunction clearMatchAnchorWidthStyles(floating) {\n if (!matchAnchorWidthStylesApplied.has(floating)) {\n return;\n }\n floating.style.width = \"\";\n floating.style.minWidth = \"\";\n floating.style.maxWidth = \"\";\n floating.style.boxSizing = \"\";\n matchAnchorWidthStylesApplied.delete(floating);\n}\nfunction parsePlacement(placement) {\n const dash = placement.indexOf(\"-\");\n if (dash === -1) return {\n side: placement,\n align: \"center\"\n };\n const side = placement.slice(0, dash);\n const align = placement.slice(dash + 1);\n return {\n side,\n align: align === \"start\" || align === \"end\" ? align : \"center\"\n };\n}\nfunction primaryAxis(side) {\n return side === \"top\" || side === \"bottom\" ? \"y\" : \"x\";\n}\nfunction coordsFor(anchor, size, side, align, gap) {\n const {\n width,\n height\n } = size;\n let x = 0;\n let y = 0;\n switch (side) {\n case \"top\":\n y = anchor.top - height - gap;\n break;\n case \"bottom\":\n y = anchor.bottom + gap;\n break;\n case \"left\":\n x = anchor.left - width - gap;\n break;\n case \"right\":\n x = anchor.right + gap;\n break;\n }\n if (primaryAxis(side) === \"y\") {\n if (align === \"start\") x = anchor.left;else if (align === \"end\") x = anchor.right - width;else x = anchor.left + (anchor.width - width) / 2;\n } else {\n if (align === \"start\") y = anchor.top;else if (align === \"end\") y = anchor.bottom - height;else y = anchor.top + (anchor.height - height) / 2;\n }\n return {\n x,\n y\n };\n}\nfunction overflowOnPrimary(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return Math.max(0, padding - coords.y);\n if (side === \"bottom\") return Math.max(0, coords.y + size.height - (vh - padding));\n if (side === \"left\") return Math.max(0, padding - coords.x);\n return Math.max(0, coords.x + size.width - (vw - padding));\n}\nfunction freeSpaceOnSide(anchor, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return anchor.top - padding - size.height;\n if (side === \"bottom\") return vh - padding - size.height - anchor.bottom;\n if (side === \"left\") return anchor.left - padding - size.width;\n return vw - padding - size.width - anchor.right;\n}\nfunction toPlacement(side, align) {\n if (align === \"center\") {\n return side;\n }\n return `${side}-${align}`;\n}\nfunction clampCrossAxis(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (primaryAxis(side) === \"y\") {\n const maxX = Math.max(padding, vw - padding - size.width);\n return {\n x: Math.min(Math.max(coords.x, padding), maxX),\n y: Math.max(padding, coords.y)\n };\n }\n const maxY = Math.max(padding, vh - padding - size.height);\n return {\n x: Math.max(padding, coords.x),\n y: Math.min(Math.max(coords.y, padding), maxY)\n };\n}\nexport function computeFloatingCoords(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n return computeFloatingPosition(anchor, size, placement, gap, viewport).coords;\n}\nexport function computeFloatingPosition(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n const {\n side: preferred,\n align\n } = parsePlacement(placement);\n const preferredCoords = coordsFor(anchor, size, preferred, align, gap);\n const preferredOverflow = overflowOnPrimary(preferredCoords, size, preferred, viewport);\n let side = preferred;\n let coords = preferredCoords;\n if (preferredOverflow > 0) {\n const flipped = OPPOSITE[preferred];\n const flippedCoords = coordsFor(anchor, size, flipped, align, gap);\n const preferredFree = freeSpaceOnSide(anchor, size, preferred, viewport);\n const flippedFree = freeSpaceOnSide(anchor, size, flipped, viewport);\n if (flippedFree > preferredFree) {\n side = flipped;\n coords = flippedCoords;\n }\n }\n return {\n coords: clampCrossAxis(coords, size, side, viewport),\n placement: toPlacement(side, align)\n };\n}\nexport function applyFloatingPosition(anchor, floating, placement, gap, options = {}) {\n const matchAnchorWidth = options.matchAnchorWidth === true;\n const anchorWidth = anchor.offsetWidth;\n const size = matchAnchorWidth ? {\n width: anchorWidth,\n height: floating.offsetHeight\n } : {\n width: floating.offsetWidth,\n height: floating.offsetHeight\n };\n if (matchAnchorWidth) {\n floating.style.width = `${anchorWidth}px`;\n floating.style.minWidth = `${anchorWidth}px`;\n floating.style.maxWidth = `${anchorWidth}px`;\n floating.style.boxSizing = \"border-box\";\n matchAnchorWidthStylesApplied.set(floating, true);\n } else {\n clearMatchAnchorWidthStyles(floating);\n }\n const {\n coords,\n placement: resolved\n } = computeFloatingPosition(anchor.getBoundingClientRect(), size, placement, gap);\n Object.assign(floating.style, {\n position: \"fixed\",\n left: `${coords.x}px`,\n top: `${coords.y}px`,\n right: \"auto\",\n bottom: \"auto\",\n visibility: \"visible\"\n });\n floating.setAttribute(\"data-placement\", resolved);\n return resolved;\n}\nexport function attachFloating({\n anchor,\n floating,\n getPlacement,\n gap,\n matchAnchorWidth\n}) {\n const update = () => {\n if (floating.hidden) return;\n applyFloatingPosition(anchor, floating, getPlacement(), gap, {\n matchAnchorWidth\n });\n };\n update();\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n const observer = new ResizeObserver(update);\n observer.observe(anchor);\n observer.observe(floating);\n return () => {\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n observer.disconnect();\n };\n}", "export function mountPortal(node, container = document.body) {\n const parent = node.parentNode;\n if (!parent) {\n return {\n unmount: () => {}\n };\n }\n const placeholder = document.createComment(\"rui-portal\");\n parent.insertBefore(placeholder, node);\n container.appendChild(node);\n return {\n unmount: () => {\n const restoreParent = placeholder.parentNode;\n if (!restoreParent) {\n return;\n }\n restoreParent.insertBefore(node, placeholder);\n placeholder.remove();\n }\n };\n}", "import { attachFloating } from \"./floating-position\";\nimport { mountPortal } from \"./portal\";\nexport function popoverContains(anchor, floating, node) {\n if (!node) {\n return false;\n }\n return Boolean(anchor?.contains(node) || floating?.contains(node));\n}\nexport function shouldDismissPopoverFocus(anchor, floating, relatedTarget) {\n if (!(relatedTarget instanceof Node)) {\n return true;\n }\n return !popoverContains(anchor, floating, relatedTarget);\n}\nexport function shouldDismissPopoverPointer(anchor, floating, target) {\n return !popoverContains(anchor, floating, target);\n}\nexport class PopoverController {\n config;\n cleanupFloating = null;\n portalHandle = null;\n floatingElement = null;\n constructor(config) {\n this.config = config;\n }\n updateConfig(patch) {\n this.config = {\n ...this.config,\n ...patch\n };\n }\n sync() {\n const floating = this.resolveFloating();\n if (!floating) {\n return;\n }\n const open = this.config.getOpen();\n if (!open) {\n this.teardown();\n floating.toggleAttribute(\"hidden\", true);\n return;\n }\n const anchor = this.config.getAnchor();\n if (!anchor) {\n return;\n }\n floating.toggleAttribute(\"hidden\", false);\n const usePortal = this.config.portal !== false;\n if (usePortal) {\n if (!this.portalHandle) {\n this.portalHandle = mountPortal(floating, this.config.portalContainer ?? document.body);\n }\n } else if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n this.teardownFloating();\n this.cleanupFloating = attachFloating({\n anchor,\n floating,\n getPlacement: this.config.getPlacement,\n gap: this.config.gap ?? 8,\n matchAnchorWidth: this.config.matchAnchorWidth\n });\n }\n contains(node) {\n return popoverContains(this.config.getAnchor(), this.resolveFloating(), node);\n }\n getFloatingElement() {\n return this.resolveFloating();\n }\n teardown() {\n this.teardownFloating();\n if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n }\n destroy() {\n this.teardown();\n this.floatingElement = null;\n }\n resolveFloating() {\n const configuredFloating = this.config.getFloating();\n if (configuredFloating) {\n this.floatingElement = configuredFloating;\n }\n return configuredFloating ?? this.floatingElement;\n }\n teardownFloating() {\n this.cleanupFloating?.();\n this.cleanupFloating = null;\n }\n}", "import { PopoverController, shouldDismissPopoverFocus } from \"./popover-controller\";\nexport class CalendarPopoverBehavior {\n config;\n popoverController = null;\n suppressPopoverDismiss = false;\n constructor(config) {\n this.config = config;\n }\n destroy() {\n this.popoverController?.destroy();\n this.popoverController = null;\n }\n suppressDismiss() {\n this.suppressPopoverDismiss = true;\n }\n syncPopover() {\n const popover = this.config.getFloating();\n if (!popover) {\n return;\n }\n popover.hidden = !this.config.getOpen();\n const controller = this.ensureController();\n controller.updateConfig({\n getOpen: () => this.config.getOpen()\n });\n controller.sync();\n }\n focusCalendarDay() {\n focusCalendarPickerDay(this.config.getCalendar(), this.config.getFocusIso());\n }\n handleFocusOut(event, onClose) {\n const relatedTarget = event.relatedTarget;\n queueMicrotask(() => {\n if (this.suppressPopoverDismiss) {\n this.suppressPopoverDismiss = false;\n return;\n }\n if (!this.config.getOpen()) {\n return;\n }\n const popover = this.config.getFloating();\n if (!popover) {\n return;\n }\n const next = relatedTarget instanceof Node ? relatedTarget : document.activeElement;\n if (!shouldDismissPopoverFocus(this.config.getHost(), popover, next)) {\n return;\n }\n onClose();\n });\n }\n ensureController() {\n if (!this.popoverController) {\n this.popoverController = new PopoverController({\n getAnchor: this.config.getAnchor,\n getFloating: this.config.getFloating,\n getOpen: this.config.getOpen,\n getPlacement: () => \"bottom-start\",\n gap: 4,\n portal: false\n });\n }\n return this.popoverController;\n }\n}\nexport function focusCalendarPickerDay(calendar, iso) {\n requestAnimationFrame(() => {\n if (!calendar) {\n return;\n }\n const selectedDay = iso ? calendar.querySelector(`[data-calendar-day][data-iso=\"${iso}\"]:not(:disabled)`) : null;\n (selectedDay ?? calendar.querySelector('[data-calendar-day][tabindex=\"0\"]:not(:disabled), [data-calendar-day]:not(:disabled)'))?.focus();\n });\n}", "export function findAssociatedLabel(owner) {\n const previous = owner.previousElementSibling;\n if (previous?.tagName.toLowerCase() === \"label\") {\n return previous;\n }\n return owner.parentElement?.querySelector(\"[data-rui-field-label]\") ?? null;\n}\nexport function bindVisibleLabel(label, control, options) {\n if (!label.id) {\n label.id = options.labelId;\n }\n if (!label.htmlFor) {\n label.htmlFor = options.controlId;\n }\n control.setAttribute(\"aria-labelledby\", label.id);\n control.removeAttribute(\"aria-label\");\n}\nexport function syncFieldLabel(owner, control, options) {\n if (!control || control.hasAttribute(\"data-rui-field-managed\")) {\n return;\n }\n const labelElement = findAssociatedLabel(owner);\n if (labelElement) {\n bindVisibleLabel(labelElement, control, options);\n return;\n }\n if (options.label) {\n control.setAttribute(\"aria-label\", options.label);\n control.removeAttribute(\"aria-labelledby\");\n return;\n }\n control.removeAttribute(\"aria-label\");\n control.removeAttribute(\"aria-labelledby\");\n}", "import { Fragment, jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { withDefaultAriaLabel } from \"@/aria\";\nimport { cx } from \"@/lib/cx\";\nimport { RuiIconCalendar } from \"@/lib/icons\";\nimport { RuiCalendar } from \"../calendar\";\nimport { RuiDateInput } from \"../date-input\";\nimport \"./date-field.script\";\nimport \"../date-input/date-input.script\";\nexport function RuiDateFieldControl({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n class: cx(\"rui-date-field\", className),\n children: /* @__PURE__ */jsx(\"div\", {\n class: \"rui-date-field__group\",\n \"data-ref\": \"control\",\n children\n })\n });\n}\nexport function RuiDateFieldInput({\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(RuiDateInput, {\n ...props,\n \"data-date-field-input\": true,\n class: cx(\"rui-date-field__input\", className)\n });\n}\nexport function RuiDateFieldToggle({\n children,\n class: className,\n aria,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"button\", {\n ...props,\n aria: withDefaultAriaLabel(aria, \"Open calendar\"),\n type: \"button\",\n \"data-ref\": \"trigger\",\n \"data-date-field-trigger\": true,\n class: cx(\"rui-control-toggle\", className),\n \"aria-haspopup\": \"dialog\",\n children: children ?? /* @__PURE__ */jsx(RuiIconCalendar, {})\n });\n}\nexport function RuiDateFieldPopover({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-ref\": \"popover\",\n \"data-date-field-popover\": true,\n class: cx(\"rui-date-field__popover rui-popover rui-floating\", className),\n hidden: true,\n role: \"dialog\",\n children\n });\n}\nexport function RuiDateFieldCalendar(props) {\n return /* @__PURE__ */jsx(RuiCalendar, {\n ...props,\n \"data-date-field-calendar\": true\n });\n}\nexport function RuiDateField(props) {\n const {\n children,\n value,\n min,\n max,\n disabled,\n readOnly,\n label,\n name,\n locale\n } = props;\n return /* @__PURE__ */jsx(\"rui-date-field\", {\n \"data-rui-aria-target\": '[data-date-field-input] [data-ref=\"root\"]',\n ...props,\n children: children ?? /* @__PURE__ */jsxs(Fragment, {\n children: [/* @__PURE__ */jsxs(RuiDateFieldControl, {\n children: [/* @__PURE__ */jsx(RuiDateFieldInput, {\n value,\n min,\n max,\n disabled,\n readOnly,\n label,\n name,\n locale\n }), /* @__PURE__ */jsx(RuiDateFieldToggle, {})]\n }), /* @__PURE__ */jsx(RuiDateFieldPopover, {\n children: /* @__PURE__ */jsx(RuiDateFieldCalendar, {})\n })]\n })\n });\n}", "export function withDefaultAriaLabel(aria, fallback) {\n if (fallback === void 0 || aria?.label !== void 0) {\n return aria;\n }\n return {\n ...aria,\n label: fallback\n };\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nexport function RuiIconCalendar({\n class: className,\n size = \"sm\",\n ...props\n}) {\n return /* @__PURE__ */jsxs(\"svg\", {\n ...props,\n class: cx(\"rui-icon\", size === \"md\" && \"rui-icon--md\", className),\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": \"true\",\n children: [/* @__PURE__ */jsx(\"path\", {\n d: \"M8 2v4\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"M16 2v4\"\n }), /* @__PURE__ */jsx(\"rect\", {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"4\",\n rx: \"2\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"M3 10h18\"\n })]\n });\n}", "let _initProto, _initClass, _init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_disabled, _init_extra_disabled, _init_locale, _init_extra_locale, _init_selectionMode, _init_extra_selectionMode, _init_visibleMonths, _init_extra_visibleMonths, _init_pageBehavior, _init_extra_pageBehavior, _init_changeEvent, _init_extra_changeEvent, _init_viewYear, _init_extra_viewYear, _init_viewMonth, _init_extra_viewMonth, _init_focusedIso, _init_extra_focusedIso, _init_weekdayLabels, _init_extra_weekdayLabels, _init_monthPanels, _init_extra_monthPanels, _init_todayLabel, _init_extra_todayLabel, _init_rangeAnchor, _init_extra_rangeAnchor, _init_rangeHover, _init_extra_rangeHover;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { RadiantElement, customElement, event, onEvent, onUpdated, prop, registerSsrPreparationCallback, state } from \"@ecopages/radiant\";\nimport { resolveLocale } from \"@/lib/intl/locale\";\nimport { addMonths, advanceRangeSelection, buildCalendarMonth, dateToIso, formatMonthYear, formatTodayLabel, getVisibleMonthViews, getWeekStartsOn, getWeekdayLabels, isoToDate, parseIsoRange, parseMultipleIsos, serializeIsoRange, serializeMultipleIsos, toggleMultipleIso } from \"@/lib/intl-date\";\nlet _RuiCalendar;\nclass RuiCalendar extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_disabled, _init_extra_disabled, _init_locale, _init_extra_locale, _init_selectionMode, _init_extra_selectionMode, _init_visibleMonths, _init_extra_visibleMonths, _init_pageBehavior, _init_extra_pageBehavior, _init_changeEvent, _init_extra_changeEvent, _init_viewYear, _init_extra_viewYear, _init_viewMonth, _init_extra_viewMonth, _init_focusedIso, _init_extra_focusedIso, _init_weekdayLabels, _init_extra_weekdayLabels, _init_monthPanels, _init_extra_monthPanels, _init_todayLabel, _init_extra_todayLabel, _init_rangeAnchor, _init_extra_rangeAnchor, _init_rangeHover, _init_extra_rangeHover, _initProto],\n c: [_RuiCalendar, _initClass]\n } = _applyDecs(this, [customElement(\"rui-calendar\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"value\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"min\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"max\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"locale\"], [prop({\n type: String,\n attribute: \"selection-mode\",\n defaultValue: \"single\"\n }), 0, \"selectionMode\"], [prop({\n type: Number,\n attribute: \"visible-months\",\n defaultValue: 1\n }), 0, \"visibleMonths\"], [prop({\n type: String,\n attribute: \"page-behavior\",\n defaultValue: \"visible\"\n }), 0, \"pageBehavior\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [state, 0, \"viewYear\"], [state, 0, \"viewMonth\"], [state, 0, \"focusedIso\"], [state, 0, \"weekdayLabels\"], [state, 0, \"monthPanels\"], [state, 0, \"todayLabel\"], [state, 0, \"rangeAnchor\"], [state, 0, \"rangeHover\"], [onUpdated([\"value\", \"min\", \"max\", \"disabled\", \"locale\", \"selectionMode\", \"visibleMonths\", \"pageBehavior\"]), 2, \"onPropsUpdated\"], [onEvent({\n selector: \"[data-calendar-prev-month]\",\n type: \"click\"\n }), 2, \"onPrevMonth\"], [onEvent({\n selector: \"[data-calendar-next-month]\",\n type: \"click\"\n }), 2, \"onNextMonth\"], [onEvent({\n selector: \"[data-calendar-today]\",\n type: \"click\"\n }), 2, \"onTodayClick\"], [onEvent({\n selector: \"[data-calendar-day]\",\n type: \"click\"\n }), 2, \"onDayClick\"], [onEvent({\n selector: \"[data-calendar-day]\",\n type: \"pointerenter\"\n }), 2, \"onDayPointerEnter\"], [onEvent({\n selector: \"[data-calendar-grid]\",\n type: \"pointerleave\"\n }), 2, \"onGridPointerLeave\"], [onEvent({\n selector: \"[data-calendar-day]\",\n type: \"keydown\"\n }), 2, \"onDayKeydown\"]], 0, void 0, RadiantElement));\n }\n value = (_initProto(this), _init_value(this));\n min = (_init_extra_value(this), _init_min(this));\n max = (_init_extra_min(this), _init_max(this));\n disabled = (_init_extra_max(this), _init_disabled(this));\n locale = (_init_extra_disabled(this), _init_locale(this));\n selectionMode = (_init_extra_locale(this), _init_selectionMode(this));\n visibleMonths = (_init_extra_selectionMode(this), _init_visibleMonths(this));\n pageBehavior = (_init_extra_visibleMonths(this), _init_pageBehavior(this));\n changeEvent = (_init_extra_pageBehavior(this), _init_changeEvent(this));\n viewYear = (_init_extra_changeEvent(this), _init_viewYear(this, (/* @__PURE__ */new Date()).getFullYear()));\n viewMonth = (_init_extra_viewYear(this), _init_viewMonth(this, (/* @__PURE__ */new Date()).getMonth()));\n focusedIso = (_init_extra_viewMonth(this), _init_focusedIso(this, \"\"));\n weekdayLabels = (_init_extra_focusedIso(this), _init_weekdayLabels(this, []));\n monthPanels = (_init_extra_weekdayLabels(this), _init_monthPanels(this, []));\n todayLabel = (_init_extra_monthPanels(this), _init_todayLabel(this, \"\"));\n rangeAnchor = (_init_extra_todayLabel(this), _init_rangeAnchor(this, null));\n rangeHover = (_init_extra_rangeAnchor(this), _init_rangeHover(this, null));\n get resolvedLocale() {\n return resolveLocale(this.locale);\n }\n get pageDelta() {\n if (this.pageBehavior === \"single\") {\n return 1;\n }\n return Math.max(1, Math.min(this.visibleMonths, 12));\n }\n get monthOptions() {\n return {\n locale: this.resolvedLocale,\n selectionMode: this.selectionMode,\n value: this.value ?? \"\",\n rangeDraft: {\n anchor: this.rangeAnchor,\n hover: this.rangeHover\n },\n min: this.min || void 0,\n max: this.max || void 0\n };\n }\n syncViewFromValue() {\n const iso = this.selectionMode === \"range\" ? parseIsoRange(this.value)?.start ?? \"\" : this.selectionMode === \"multiple\" ? parseMultipleIsos(this.value)[0] ?? \"\" : this.value;\n const date = isoToDate(iso);\n if (date) {\n this.viewYear = date.getFullYear();\n this.viewMonth = date.getMonth();\n this.focusedIso = iso;\n return;\n }\n const today = /* @__PURE__ */new Date();\n this.viewYear = today.getFullYear();\n this.viewMonth = today.getMonth();\n this.focusedIso = dateToIso(today);\n }\n refreshGrid() {\n this.weekdayLabels = getWeekdayLabels(this.resolvedLocale, getWeekStartsOn(this.resolvedLocale));\n this.monthPanels = getVisibleMonthViews(this.viewYear, this.viewMonth, this.visibleMonths).map(view => {\n const viewDate = new Date(view.year, view.month, 1);\n return {\n year: view.year,\n month: view.month,\n label: formatMonthYear(viewDate, this.resolvedLocale),\n weeks: buildCalendarMonth(view.year, view.month, this.monthOptions)\n };\n });\n this.todayLabel = formatTodayLabel(this.resolvedLocale);\n }\n moveMonth(delta) {\n const next = addMonths(this.viewYear, this.viewMonth, delta);\n this.viewYear = next.year;\n this.viewMonth = next.month;\n this.refreshGrid();\n }\n getFlatDays() {\n return this.monthPanels.flatMap(panel => panel.weeks.flat());\n }\n moveFocusedDay(delta) {\n const cells = this.getFlatDays().filter(cell => !cell.isDisabled);\n if (!cells.length) {\n return;\n }\n const currentIndex = cells.findIndex(cell => cell.iso === this.focusedIso);\n const nextIndex = currentIndex < 0 ? Math.max(0, cells.findIndex(cell => cell.inMonth)) : (currentIndex + delta + cells.length) % cells.length;\n const next = cells[nextIndex];\n if (!next) {\n return;\n }\n if (!this.isMonthVisible(next.date)) {\n this.viewYear = next.date.getFullYear();\n this.viewMonth = next.date.getMonth();\n this.focusedIso = next.iso;\n this.refreshGrid();\n this.focusFocusedDay();\n return;\n }\n this.focusedIso = next.iso;\n this.focusDayInCurrentGrid(next.iso);\n }\n isMonthVisible(date) {\n const visibleStart = this.viewYear * 12 + this.viewMonth;\n const visibleEnd = visibleStart + this.visibleMonths - 1;\n const target = date.getFullYear() * 12 + date.getMonth();\n return target >= visibleStart && target <= visibleEnd;\n }\n /** Moves roving focus without rebuilding a grid that already contains the target day. */\n focusDayInCurrentGrid(iso) {\n const current = this.querySelector('[data-calendar-day][tabindex=\"0\"]');\n const candidates = Array.from(this.querySelectorAll(`[data-calendar-day][data-iso=\"${iso}\"]:not(:disabled)`));\n const next = candidates.find(day => !day.hasAttribute(\"data-outside\")) ?? candidates[0];\n if (!next) {\n return;\n }\n if (current && current !== next) {\n current.tabIndex = -1;\n }\n next.tabIndex = 0;\n next.focus();\n }\n /** Restores DOM focus after rebuilding the grid around a newly visible day. */\n focusFocusedDay() {\n requestAnimationFrame(() => {\n this.focusDayInCurrentGrid(this.focusedIso);\n });\n }\n moveFocusedMonth(delta) {\n const current = isoToDate(this.focusedIso) ?? new Date(this.viewYear, this.viewMonth, 1);\n const target = new Date(current.getFullYear(), current.getMonth() + delta, 1);\n const lastDay = new Date(target.getFullYear(), target.getMonth() + 1, 0).getDate();\n const next = new Date(target.getFullYear(), target.getMonth(), Math.min(current.getDate(), lastDay));\n this.viewYear = next.getFullYear();\n this.viewMonth = next.getMonth();\n this.focusedIso = dateToIso(next);\n this.refreshGrid();\n this.focusFocusedDay();\n }\n isIsoAllowed(iso) {\n if (this.min && iso < this.min) {\n return false;\n }\n if (this.max && iso > this.max) {\n return false;\n }\n return true;\n }\n emitChange(value, extra = {}) {\n this.changeEvent.emit({\n value,\n ...extra\n });\n }\n selectSingle(iso) {\n if (!this.isIsoAllowed(iso) || iso === this.value) {\n return;\n }\n this.value = iso;\n this.emitChange(iso);\n this.refreshGrid();\n }\n selectMultiple(iso) {\n if (!this.isIsoAllowed(iso)) {\n return;\n }\n const next = serializeMultipleIsos(toggleMultipleIso(parseMultipleIsos(this.value), iso));\n if (next === this.value) {\n return;\n }\n this.value = next;\n this.emitChange(next);\n this.refreshGrid();\n }\n selectRange(iso) {\n if (!this.isIsoAllowed(iso)) {\n return;\n }\n const result = advanceRangeSelection(parseIsoRange(this.value), {\n anchor: this.rangeAnchor,\n hover: this.rangeHover\n }, iso);\n this.rangeAnchor = result.draft.anchor;\n this.rangeHover = result.draft.hover;\n if (result.committed) {\n const serialized = serializeIsoRange(result.committed);\n if (serialized !== this.value) {\n this.value = serialized;\n this.emitChange(serialized, {\n start: result.committed.start,\n end: result.committed.end\n });\n }\n }\n this.refreshGrid();\n }\n selectIso(iso) {\n if (this.selectionMode === \"multiple\") {\n this.selectMultiple(iso);\n return;\n }\n if (this.selectionMode === \"range\") {\n this.selectRange(iso);\n return;\n }\n this.selectSingle(iso);\n }\n previewRange(iso) {\n if (this.selectionMode !== \"range\" || !this.rangeAnchor || this.disabled) {\n return;\n }\n if (this.rangeHover === iso) {\n return;\n }\n this.rangeHover = iso;\n this.refreshGrid();\n }\n clearRangePreview() {\n if (!this.rangeHover) {\n return;\n }\n this.rangeHover = this.rangeAnchor;\n this.refreshGrid();\n }\n initialize() {\n this.syncViewFromValue();\n this.refreshGrid();\n }\n constructor() {\n super(), _init_extra_rangeHover(this);\n registerSsrPreparationCallback(this, () => this.initialize());\n }\n onConnected() {\n this.initialize();\n }\n onPropsUpdated() {\n if (this.selectionMode !== \"range\") {\n this.rangeAnchor = null;\n this.rangeHover = null;\n }\n this.syncViewFromValue();\n this.refreshGrid();\n }\n onPrevMonth(event2) {\n event2.preventDefault();\n this.moveMonth(-this.pageDelta);\n }\n onNextMonth(event2) {\n event2.preventDefault();\n this.moveMonth(this.pageDelta);\n }\n onTodayClick(event2) {\n event2.preventDefault();\n this.selectIso(dateToIso(/* @__PURE__ */new Date()));\n }\n onDayClick(event2) {\n const button = event2.target.closest(\"[data-calendar-day]\");\n const iso = button?.getAttribute(\"data-iso\");\n if (!iso || button?.disabled || this.disabled) {\n return;\n }\n this.selectIso(iso);\n }\n onDayPointerEnter(event2) {\n const button = event2.target.closest(\"[data-calendar-day]\");\n const iso = button?.getAttribute(\"data-iso\");\n if (!iso || button?.disabled) {\n return;\n }\n this.previewRange(iso);\n }\n onGridPointerLeave() {\n this.clearRangePreview();\n }\n onDayKeydown(event2) {\n if (this.disabled) {\n return;\n }\n const currentIso = event2.target.getAttribute(\"data-iso\");\n if (currentIso) {\n this.focusedIso = currentIso;\n }\n if (event2.key === \"ArrowLeft\") {\n event2.preventDefault();\n this.moveFocusedDay(-1);\n return;\n }\n if (event2.key === \"ArrowRight\") {\n event2.preventDefault();\n this.moveFocusedDay(1);\n return;\n }\n if (event2.key === \"ArrowUp\") {\n event2.preventDefault();\n this.moveFocusedDay(-7);\n return;\n }\n if (event2.key === \"ArrowDown\") {\n event2.preventDefault();\n this.moveFocusedDay(7);\n return;\n }\n if (event2.key === \"PageUp\") {\n event2.preventDefault();\n this.moveFocusedMonth(event2.shiftKey ? -12 : -this.pageDelta);\n return;\n }\n if (event2.key === \"PageDown\") {\n event2.preventDefault();\n this.moveFocusedMonth(event2.shiftKey ? 12 : this.pageDelta);\n return;\n }\n if (event2.key === \"Enter\" || event2.key === \" \") {\n event2.preventDefault();\n const button = event2.target;\n const iso = button.getAttribute(\"data-iso\");\n if (iso && !button.disabled) {\n this.selectIso(iso);\n }\n }\n }\n dayDataAttributes(dayCell) {\n return {\n \"data-range-start\": dayCell.isRangeStart ? \"true\" : void 0,\n \"data-range-end\": dayCell.isRangeEnd ? \"true\" : void 0,\n \"data-range-middle\": dayCell.isRangeMiddle ? \"true\" : void 0\n };\n }\n render() {\n const panelCount = this.monthPanels.length;\n const multiMonth = panelCount > 1;\n return /* @__PURE__ */jsxs(\"div\", {\n class: `rui-calendar${multiMonth ? \" rui-calendar--multi\" : \"\"}`,\n \"data-ref\": \"root\",\n role: \"application\",\n \"aria-label\": \"Calendar\",\n \"aria-multiselectable\": this.selectionMode === \"multiple\" ? \"true\" : void 0,\n children: [/* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__months\",\n children: this.monthPanels.map((panel, index) => /* @__PURE__ */jsxs(\"div\", {\n class: \"rui-calendar__month-panel\",\n \"data-calendar-month-panel\": true,\n children: [/* @__PURE__ */jsxs(\"div\", {\n class: \"rui-calendar__header\",\n children: [index === 0 ? /* @__PURE__ */jsx(\"button\", {\n type: \"button\",\n class: \"rui-calendar__nav\",\n \"data-calendar-prev-month\": true,\n \"aria-label\": \"Previous month\",\n disabled: this.disabled,\n children: \"\\u2039\"\n }) : /* @__PURE__ */jsx(\"span\", {\n class: \"rui-calendar__nav-spacer\",\n \"aria-hidden\": \"true\"\n }), /* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__month\",\n \"aria-live\": \"polite\",\n children: panel.label\n }), index === panelCount - 1 ? /* @__PURE__ */jsx(\"button\", {\n type: \"button\",\n class: \"rui-calendar__nav\",\n \"data-calendar-next-month\": true,\n \"aria-label\": \"Next month\",\n disabled: this.disabled,\n children: \"\\u203A\"\n }) : /* @__PURE__ */jsx(\"span\", {\n class: \"rui-calendar__nav-spacer\",\n \"aria-hidden\": \"true\"\n })]\n }), index === 0 ? /* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__weekdays\",\n role: \"row\",\n children: this.weekdayLabels.map(label => /* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__weekday\",\n role: \"columnheader\",\n \"aria-hidden\": \"true\",\n children: label\n }))\n }) : null, /* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__grid\",\n role: \"grid\",\n \"data-calendar-grid\": true,\n children: panel.weeks.map(weekRow => /* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__week\",\n role: \"row\",\n children: weekRow.map(dayCell => /* @__PURE__ */jsx(\"button\", {\n type: \"button\",\n class: \"rui-calendar__day\",\n \"data-calendar-day\": true,\n \"data-iso\": dayCell.iso,\n role: \"gridcell\",\n disabled: this.disabled || dayCell.isDisabled,\n tabIndex: dayCell.iso === this.focusedIso ? 0 : -1,\n \"aria-selected\": dayCell.isSelected ? \"true\" : \"false\",\n \"aria-current\": dayCell.isToday ? \"date\" : void 0,\n \"data-outside\": dayCell.inMonth ? void 0 : \"true\",\n ...this.dayDataAttributes(dayCell),\n children: dayCell.date.getDate()\n }))\n }))\n })]\n }))\n }), /* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__footer\",\n children: /* @__PURE__ */jsx(\"button\", {\n type: \"button\",\n class: \"rui-calendar__today\",\n \"data-calendar-today\": true,\n disabled: this.disabled,\n children: this.todayLabel\n })\n })]\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiCalendar as RuiCalendar };", "export function resolveLocale(locale) {\n if (!locale) {\n return void 0;\n }\n const tags = locale.split(\",\").map(tag => tag.trim()).filter(Boolean);\n return tags.length > 1 ? tags : tags[0];\n}", "export function isoToDate(iso) {\n if (iso == null) {\n return null;\n }\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(iso.trim());\n if (!match) {\n return null;\n }\n const year = Number(match[1]);\n const month = Number(match[2]) - 1;\n const day = Number(match[3]);\n const date = new Date(year, month, day);\n if (date.getFullYear() !== year || date.getMonth() !== month || date.getDate() !== day) {\n return null;\n }\n return date;\n}\nexport function dateToIso(date) {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n return `${year}-${month}-${day}`;\n}\nexport function isIsoInRange(iso, min, max) {\n if (min && iso < min) {\n return false;\n }\n if (max && iso > max) {\n return false;\n }\n return true;\n}", "const RANGE_SEPARATOR = \"/\";\nconst MULTIPLE_SEPARATOR = \",\";\nexport function compareIso(a, b) {\n return a.localeCompare(b);\n}\nexport function normalizeRange(start, end) {\n if (compareIso(start, end) <= 0) {\n return {\n start,\n end\n };\n }\n return {\n start: end,\n end: start\n };\n}\nexport function parseIsoRange(value) {\n if (!value) {\n return null;\n }\n const [start, end] = value.split(RANGE_SEPARATOR);\n if (!start || !end) {\n return null;\n }\n return normalizeRange(start, end);\n}\nexport function serializeIsoRange(range) {\n if (!range) {\n return \"\";\n }\n const normalized = normalizeRange(range.start, range.end);\n return `${normalized.start}${RANGE_SEPARATOR}${normalized.end}`;\n}\nexport function parseMultipleIsos(value) {\n if (!value) {\n return [];\n }\n return value.split(MULTIPLE_SEPARATOR).map(iso => iso.trim()).filter(Boolean).sort(compareIso);\n}\nexport function serializeMultipleIsos(values) {\n return [...new Set(values)].sort(compareIso).join(MULTIPLE_SEPARATOR);\n}\nexport function toggleMultipleIso(selected, iso) {\n const set = new Set(selected);\n if (set.has(iso)) {\n set.delete(iso);\n } else {\n set.add(iso);\n }\n return [...set].sort(compareIso);\n}\nexport function isIsoInSpan(iso, range) {\n const normalized = normalizeRange(range.start, range.end);\n return compareIso(iso, normalized.start) >= 0 && compareIso(iso, normalized.end) <= 0;\n}\nexport function getActiveRangeBounds(committed, draft) {\n if (draft.anchor) {\n const hover = draft.hover ?? draft.anchor;\n return normalizeRange(draft.anchor, hover);\n }\n return committed;\n}\nexport function getDaySelectionAppearance(iso, mode, options) {\n if (mode === \"single\") {\n const selected = options.singleIso === iso;\n return {\n isSelected: selected,\n isRangeStart: selected,\n isRangeEnd: selected,\n isRangeMiddle: false\n };\n }\n if (mode === \"multiple\") {\n const selected = options.multipleIsos?.includes(iso) ?? false;\n return {\n isSelected: selected,\n isRangeStart: selected,\n isRangeEnd: selected,\n isRangeMiddle: false\n };\n }\n const range = options.range;\n if (!range) {\n return {\n isSelected: false,\n isRangeStart: false,\n isRangeEnd: false,\n isRangeMiddle: false\n };\n }\n const normalized = normalizeRange(range.start, range.end);\n const inSpan = isIsoInSpan(iso, normalized);\n const isStart = iso === normalized.start;\n const isEnd = iso === normalized.end;\n const isMiddle = inSpan && !isStart && !isEnd;\n return {\n isSelected: inSpan,\n isRangeStart: isStart,\n isRangeEnd: isEnd,\n isRangeMiddle: isMiddle\n };\n}\nexport function advanceRangeSelection(committed, draft, iso) {\n if (!draft.anchor) {\n return {\n committed,\n draft: {\n anchor: iso,\n hover: iso\n }\n };\n }\n const next = normalizeRange(draft.anchor, iso);\n return {\n committed: next,\n draft: {\n anchor: null,\n hover: null\n }\n };\n}", "import { dateToIso, isIsoInRange } from \"./iso\";\nimport { getDaySelectionAppearance, parseIsoRange, parseMultipleIsos } from \"./selection\";\nexport function getWeekStartsOn(locale) {\n const tag = resolveLocaleTag(locale);\n try {\n const resolved = new Intl.Locale(tag);\n const weekInfo = resolved.weekInfo;\n if (weekInfo?.firstDay != null) {\n return weekInfo.firstDay === 7 ? 0 : weekInfo.firstDay;\n }\n } catch {}\n return tag.startsWith(\"en-US\") ? 0 : 1;\n}\nfunction resolveLocaleTag(locale) {\n if (Array.isArray(locale)) {\n return locale[0] ?? navigator.language;\n }\n return locale ?? navigator.language;\n}\nfunction startOfDay(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n}\nfunction isSameDay(a, b) {\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\n}\nfunction resolveSelectionContext(options) {\n const mode = options.selectionMode ?? \"single\";\n const value = options.value ?? \"\";\n if (mode === \"multiple\") {\n return {\n mode,\n multipleIsos: parseMultipleIsos(value)\n };\n }\n if (mode === \"range\") {\n const committed = parseIsoRange(value);\n if (options.rangeDraft?.anchor) {\n const hover = options.rangeDraft.hover ?? options.rangeDraft.anchor;\n return {\n mode,\n range: normalizeRangeFromDraft(options.rangeDraft.anchor, hover)\n };\n }\n return {\n mode,\n range: committed\n };\n }\n return {\n mode,\n singleIso: value || void 0\n };\n}\nfunction normalizeRangeFromDraft(anchor, hover) {\n if (anchor.localeCompare(hover) <= 0) {\n return {\n start: anchor,\n end: hover\n };\n }\n return {\n start: hover,\n end: anchor\n };\n}\nexport function buildCalendarMonth(year, month, options) {\n const weekStartsOn = getWeekStartsOn(options.locale);\n const today = startOfDay(options.today ?? /* @__PURE__ */new Date());\n const selection = resolveSelectionContext(options);\n const firstOfMonth = new Date(year, month, 1);\n const startOffset = (firstOfMonth.getDay() - weekStartsOn + 7) % 7;\n const gridStart = new Date(year, month, 1 - startOffset);\n const weeks = [];\n const cursor = new Date(gridStart);\n for (let week = 0; week < 6; week += 1) {\n const row = [];\n for (let day = 0; day < 7; day += 1) {\n const iso = dateToIso(cursor);\n const appearance = getDaySelectionAppearance(iso, selection.mode, {\n singleIso: selection.singleIso,\n multipleIsos: selection.multipleIsos,\n range: selection.range\n });\n row.push({\n date: new Date(cursor),\n iso,\n inMonth: cursor.getMonth() === month,\n isToday: isSameDay(cursor, today),\n isSelected: appearance.isSelected,\n isDisabled: !isIsoInRange(iso, options.min, options.max),\n isRangeStart: appearance.isRangeStart,\n isRangeEnd: appearance.isRangeEnd,\n isRangeMiddle: appearance.isRangeMiddle\n });\n cursor.setDate(cursor.getDate() + 1);\n }\n weeks.push(row);\n if (week >= 4 && cursor.getMonth() !== month && cursor.getDate() > 7) {\n break;\n }\n }\n return weeks;\n}", "export function addMonths(year, month, delta) {\n const date = new Date(year, month + delta, 1);\n return {\n year: date.getFullYear(),\n month: date.getMonth()\n };\n}\nexport function getVisibleMonthViews(year, month, count) {\n const safeCount = Math.max(1, Math.min(count, 12));\n return Array.from({\n length: safeCount\n }, (_, offset) => {\n const next = addMonths(year, month, offset);\n return {\n year: next.year,\n month: next.month,\n offset\n };\n });\n}", "const formatterCache = /* @__PURE__ */new Map();\nfunction cacheKey(locale, options) {\n return `${JSON.stringify(locale ?? null)}|${JSON.stringify(options)}`;\n}\nexport function getDateTimeFormat(locale, options) {\n const key = cacheKey(locale, options);\n const cached = formatterCache.get(key);\n if (cached) {\n return cached;\n }\n const formatter = new Intl.DateTimeFormat(locale, options);\n formatterCache.set(key, formatter);\n return formatter;\n}\nexport function formatDisplayDate(date, locale, style = \"medium\") {\n return getDateTimeFormat(locale, {\n dateStyle: style\n }).format(date);\n}\nexport function formatMonthYear(date, locale) {\n return getDateTimeFormat(locale, {\n month: \"long\",\n year: \"numeric\"\n }).format(date);\n}\nexport function getWeekdayLabels(locale, weekStartsOn) {\n const formatter = getDateTimeFormat(locale, {\n weekday: \"narrow\"\n });\n const labels = [];\n for (let offset = 0; offset < 7; offset += 1) {\n const dayIndex = (weekStartsOn + offset) % 7;\n const reference = new Date(2024, 0, dayIndex === 0 ? 7 : dayIndex);\n labels.push(formatter.format(reference));\n }\n return labels;\n}\nexport function formatDateRange(start, end, locale, style = \"medium\") {\n const formatter = getDateTimeFormat(locale, {\n dateStyle: style\n });\n if (typeof formatter.formatRange === \"function\") {\n return formatter.formatRange(start, end);\n }\n return `${formatter.format(start)} \\u2013 ${formatter.format(end)}`;\n}\nexport function formatTodayLabel(locale) {\n return new Intl.RelativeTimeFormat(locale, {\n numeric: \"auto\"\n }).format(0, \"day\");\n}", "import { getDateTimeFormat } from \"./formatters\";\nimport { dateToIso, isIsoInRange } from \"./iso\";\nconst PLACEHOLDER_DATE = new Date(2e3, 0, 1);\nfunction granularityIncludes(granularity, part) {\n if (granularity === \"year\") {\n return part === \"year\";\n }\n if (granularity === \"month\") {\n return part === \"year\" || part === \"month\";\n }\n return true;\n}\nfunction placeholderForPart(type, locale) {\n const sample = getDateTimeFormat(locale, {\n [type]: type === \"year\" ? \"numeric\" : \"2-digit\"\n }).formatToParts(PLACEHOLDER_DATE);\n const part = sample.find(entry => entry.type === type);\n if (!part) {\n return type === \"year\" ? \"yyyy\" : \"mm\";\n }\n return part.value.replace(/\\d/g, type === \"year\" ? \"y\" : type === \"month\" ? \"m\" : \"d\");\n}\nfunction formatPartValue(type, date, locale) {\n const options = type === \"year\" ? {\n year: \"numeric\"\n } : {\n [type]: \"2-digit\"\n };\n return getDateTimeFormat(locale, options).formatToParts(date).find(part => part.type === type)?.value ?? \"\";\n}\nexport function buildDateSegments(date, locale, options = {}) {\n const granularity = options.granularity ?? \"day\";\n const reference = date ?? options.placeholderDate ?? /* @__PURE__ */new Date();\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\"\n }).formatToParts(reference);\n return parts.filter(part => part.type !== \"era\").map(part => {\n if (part.type === \"literal\") {\n return {\n type: \"literal\",\n value: part.value,\n placeholder: part.value,\n isPlaceholder: false,\n editable: false\n };\n }\n const type = part.type;\n if (!granularityIncludes(granularity, type)) {\n return null;\n }\n const hasValue = date != null;\n return {\n type,\n value: hasValue ? formatPartValue(type, date, locale) : \"\",\n placeholder: placeholderForPart(type, locale),\n isPlaceholder: !hasValue,\n editable: true\n };\n }).filter(segment => segment != null);\n}\nfunction parseSegmentNumber(segment) {\n if (segment.isPlaceholder || segment.value === \"\") {\n return null;\n }\n const parsed = Number(segment.value);\n return Number.isFinite(parsed) ? parsed : null;\n}\nfunction normalizeYear(value) {\n if (value >= 100) {\n return value;\n }\n return value >= 69 ? 1900 + value : 2e3 + value;\n}\nexport function segmentsToDate(segments) {\n const values = {};\n for (const segment of segments) {\n if (!segment.editable) {\n continue;\n }\n const numeric = parseSegmentNumber(segment);\n if (numeric == null) {\n return null;\n }\n values[segment.type] = segment.type === \"year\" ? normalizeYear(numeric) : numeric;\n }\n if (values.year == null || values.month == null || values.day == null) {\n return null;\n }\n const date = new Date(values.year, values.month - 1, values.day);\n if (date.getFullYear() !== values.year || date.getMonth() !== values.month - 1 || date.getDate() !== values.day) {\n return null;\n }\n return date;\n}\nexport function allSegmentsEmpty(segments) {\n return segments.every(segment => !segment.editable || segment.isPlaceholder || segment.value === \"\");\n}\nexport function draftStatus(segments, range = {}) {\n const year = segments.find(segment => segment.editable && segment.type === \"year\");\n if (year && !year.isPlaceholder && year.value !== \"\" && year.value.replace(/\\D/g, \"\").length < 4) {\n return {\n kind: \"partial-year\"\n };\n }\n if (allSegmentsEmpty(segments)) {\n return {\n kind: \"empty\"\n };\n }\n const date = segmentsToDate(segments);\n if (!date) {\n return {\n kind: \"incomplete\"\n };\n }\n const iso = dateToIso(date);\n if (!isIsoInRange(iso, range.min, range.max)) {\n return {\n kind: \"out-of-range\"\n };\n }\n return {\n kind: \"date\",\n iso\n };\n}\nexport function getEditableSegmentIndices(segments) {\n return segments.map((segment, index) => segment.editable ? index : -1).filter(index => index >= 0);\n}\nexport function maxSegmentLength(type) {\n if (type === \"year\") {\n return 4;\n }\n return 2;\n}\nexport function clampSegmentValue(type, raw) {\n const digits = raw.replace(/\\D/g, \"\");\n return digits.slice(0, maxSegmentLength(type));\n}\nexport function incrementSegment(type, value, delta) {\n const numeric = Number(value || \"0\") + delta;\n if (type === \"month\") {\n const wrapped = (numeric - 1 + 12) % 12 + 1;\n return String(wrapped).padStart(2, \"0\");\n }\n if (type === \"day\") {\n const wrapped = (numeric - 1 + 31) % 31 + 1;\n return String(wrapped).padStart(2, \"0\");\n }\n const next = Math.max(1, numeric);\n return String(next).padStart(4, \"0\").slice(-4);\n}", "import { maxSegmentLength } from \"./segments\";\nfunction segmentIndex(segments, type) {\n return segments.findIndex(segment => segment.editable && segment.type === type);\n}\nfunction cloneSegments(segments) {\n return segments.map(segment => ({\n ...segment\n }));\n}\nfunction updateSegment(segments, type, patch) {\n const next = cloneSegments(segments);\n const index = segmentIndex(next, type);\n if (index < 0) {\n return next;\n }\n next[index] = {\n ...next[index],\n ...patch\n };\n return next;\n}\nfunction parseDigits(raw) {\n if (raw === \"\") {\n return null;\n }\n const parsed = Number(raw);\n return Number.isFinite(parsed) ? parsed : null;\n}\nexport function getSegmentBounds(type, segments) {\n return {\n min: 1,\n max: maxForPart(type, segments)\n };\n}\nfunction maxForPart(type, segments) {\n if (type === \"month\") {\n return 12;\n }\n if (type === \"day\") {\n const year = readPartNumber(segments, \"year\");\n const month = readPartNumber(segments, \"month\");\n if (year != null && month != null) {\n return new Date(year, month, 0).getDate();\n }\n return 31;\n }\n return 9999;\n}\nfunction readPartNumber(segments, type) {\n const segment = segments.find(entry => entry.editable && entry.type === type);\n if (!segment || segment.isPlaceholder || segment.value === \"\") {\n return null;\n }\n return Number(segment.value);\n}\nfunction padPart(type, value) {\n if (type === \"year\") {\n return String(value).padStart(4, \"0\");\n }\n return String(value).padStart(2, \"0\");\n}\nexport function segmentAriaName(type, locale) {\n try {\n const display = new Intl.DisplayNames(locale, {\n type: \"dateTimeField\"\n });\n const name = display.of(type);\n if (name) {\n return name;\n }\n } catch {}\n if (type === \"month\") {\n return \"Month\";\n }\n if (type === \"day\") {\n return \"Day\";\n }\n return \"Year\";\n}\nexport function segmentDisplayText(segment) {\n return segment.isPlaceholder || segment.value === \"\" ? segment.placeholder : segment.value;\n}\nexport function segmentNumericValue(segment) {\n if (segment.isPlaceholder || segment.value === \"\") {\n return null;\n }\n return parseDigits(segment.value.replace(/\\D/g, \"\"));\n}\nexport function clearSegmentValue(segments, type) {\n return updateSegment(segments, type, {\n value: \"\",\n isPlaceholder: true\n });\n}\nexport function setSegmentNumeric(segments, type, value) {\n return updateSegment(segments, type, {\n value: padPart(type, value),\n isPlaceholder: false\n });\n}\nexport function incrementSegmentValue(segments, type, delta) {\n const segment = segments.find(entry => entry.editable && entry.type === type);\n if (!segment) {\n return segments;\n }\n const {\n min,\n max\n } = getSegmentBounds(type, segments);\n const current = segmentNumericValue(segment) ?? (delta > 0 ? min - 1 : max + 1);\n let next = current + delta;\n if (type === \"month\" || type === \"day\") {\n if (next < min) {\n next = max;\n } else if (next > max) {\n next = min;\n }\n } else {\n next = Math.max(min, next);\n }\n return setSegmentNumeric(segments, type, next);\n}\nexport function applyDigitToSegment(segments, type, key, enteredKeys) {\n const digit = key.replace(/\\D/g, \"\");\n if (!digit) {\n return {\n segments,\n enteredKeys,\n focusNext: false\n };\n }\n const newEntered = enteredKeys + digit;\n const parsed = parseDigits(newEntered);\n if (parsed == null) {\n return {\n segments,\n enteredKeys,\n focusNext: false\n };\n }\n const max = maxForPart(type, segments);\n let segmentValue = parsed;\n if (segmentValue > max) {\n segmentValue = parseDigits(digit) ?? segmentValue;\n }\n const width = maxSegmentLength(type);\n const shouldFocusNext = Number(`${segmentValue}0`) > max || newEntered.length >= width || String(segmentValue).length >= width;\n const displayValue = shouldFocusNext ? padPart(type, segmentValue) : String(segmentValue);\n const nextSegments = updateSegment(segments, type, {\n value: displayValue,\n isPlaceholder: false\n });\n return {\n segments: nextSegments,\n enteredKeys: shouldFocusNext ? \"\" : newEntered,\n focusNext: shouldFocusNext\n };\n}\nexport function getEditablePartTypes(segments) {\n return segments.filter(segment => segment.editable).map(segment => segment.type);\n}\nexport function focusPartAfter(segments, type, direction) {\n const parts = getEditablePartTypes(segments);\n const index = parts.indexOf(type);\n if (index < 0) {\n return parts[0] ?? null;\n }\n const nextIndex = index + direction;\n if (nextIndex < 0 || nextIndex >= parts.length) {\n return null;\n }\n return parts[nextIndex] ?? null;\n}\nexport function firstEmptyOrFirstPart(segments) {\n let first = null;\n for (const segment of segments) {\n if (!segment.editable) {\n continue;\n }\n const type = segment.type;\n if (!first) {\n first = type;\n }\n if (segment.isPlaceholder || segment.value === \"\") {\n return type;\n }\n }\n return first;\n}\nexport function applyBackspaceToSegment(segments, part) {\n const segment = segments.find(entry => entry.editable && entry.type === part);\n if (!segment) {\n return {\n kind: \"focus-previous\"\n };\n }\n if (segment.isPlaceholder || segment.value === \"\") {\n return {\n kind: \"focus-previous\"\n };\n }\n const digits = segment.value.replace(/\\D/g, \"\");\n if (digits.length <= 1) {\n return {\n kind: \"updated\",\n segments: clearSegmentValue(segments, part),\n enteredKeys: \"\"\n };\n }\n const next = digits.slice(0, -1);\n return {\n kind: \"updated\",\n segments: segments.map(entry => entry.editable && entry.type === part ? {\n ...entry,\n value: next,\n isPlaceholder: false\n } : entry),\n enteredKeys: next\n };\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport \"./calendar.script\";\nexport function RuiCalendar({\n children,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-calendar\", {\n ...props,\n children\n });\n}", "let _initProto, _initClass, _init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _init_locale, _init_extra_locale, _init_changeEvent, _init_extra_changeEvent, _init_segments, _init_extra_segments, _init_focusedPart, _init_extra_focusedPart;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { customElement, event, onEvent, onUpdated, prop, registerSsrPreparationCallback, state } from \"@ecopages/radiant\";\nimport { FormAssociatedElement } from \"@ecopages/radiant/form-associated-element\";\nimport { applyBackspaceToSegment, applyDigitToSegment, buildDateSegments, draftStatus, firstEmptyOrFirstPart, focusPartAfter, incrementSegmentValue, isoToDate, segmentDisplayText } from \"@/lib/intl-date\";\nimport { resolveLocale } from \"@/lib/intl/locale\";\nimport { uniqueId } from \"@/lib/unique-id\";\nimport { getSegmentDomProps } from \"./date-input-segment-dom\";\nfunction isIosDevice() {\n if (typeof navigator === \"undefined\") {\n return false;\n }\n return /iPad|iPhone|iPod/.test(navigator.userAgent);\n}\nlet _RuiDateInput;\nclass RuiDateInput extends FormAssociatedElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _init_locale, _init_extra_locale, _init_changeEvent, _init_extra_changeEvent, _init_segments, _init_extra_segments, _init_focusedPart, _init_extra_focusedPart, _initProto],\n c: [_RuiDateInput, _initClass]\n } = _applyDecs(this, [customElement(\"rui-date-input\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"value\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"min\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"max\"], [prop({\n type: Boolean,\n attribute: \"read-only\",\n reflect: true,\n defaultValue: false\n }), 0, \"readOnly\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"locale\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [state, 0, \"segments\"], [state, 0, \"focusedPart\"], [onUpdated([\"value\", \"locale\"]), 2, \"syncSegmentsFromValue\"], [onUpdated(\"label\"), 2, \"syncGroupLabel\"], [onEvent({\n selector: '[data-ref=\"root\"]',\n type: \"focusin\"\n }), 2, \"onGroupFocusIn\"], [onEvent({\n selector: \"[data-date-segment]\",\n type: \"focusin\"\n }), 2, \"onSegmentFocusIn\"], [onEvent({\n selector: \"[data-date-segment]\",\n type: \"focusout\"\n }), 2, \"onSegmentFocusOut\"], [onEvent({\n selector: \"[data-date-segment]\",\n type: \"keydown\"\n }), 2, \"onSegmentKeyDown\"], [onEvent({\n selector: \"[data-date-segment]\",\n type: \"beforeinput\"\n }), 2, \"onSegmentBeforeInput\"], [onEvent({\n selector: \"[data-date-segment]\",\n type: \"pointerdown\"\n }), 2, \"onSegmentPointerDown\"]], 0, void 0, FormAssociatedElement));\n }\n value = (_initProto(this), _init_value(this));\n min = (_init_extra_value(this), _init_min(this));\n max = (_init_extra_min(this), _init_max(this));\n readOnly = (_init_extra_max(this), _init_readOnly(this));\n label = (_init_extra_readOnly(this), _init_label(this));\n locale = (_init_extra_label(this), _init_locale(this));\n changeEvent = (_init_extra_locale(this), _init_changeEvent(this));\n segments = (_init_extra_changeEvent(this), _init_segments(this, []));\n focusedPart = (_init_extra_segments(this), _init_focusedPart(this, null));\n uid = (_init_extra_focusedPart(this), uniqueId(\"rui-date-input\"));\n /** Digits typed into `focusedPart` that have not completed the unit yet. */\n buffer = \"\";\n useTextboxRole = isIosDevice();\n /**\n * Part `updated()` still has to move DOM focus to.\n *\n * @remarks The render commit can restore focus to the old segment first; that\n * `focusin` is ignored so it does not take editing back.\n */\n pendingFocus = null;\n get resolvedLocale() {\n return resolveLocale(this.locale);\n }\n get isoValue() {\n return this.value ?? \"\";\n }\n syncSegmentsFromValue() {\n this.segments = buildDateSegments(isoToDate(this.isoValue), this.resolvedLocale);\n this.buffer = \"\";\n }\n /**\n * @remarks SSR preparation and the connect-time `@onUpdated` both fill `segments`\n * before the first render; this derives from `value` only for a render before either.\n */\n get displaySegments() {\n if (this.segments.length > 0) {\n return this.segments;\n }\n return buildDateSegments(isoToDate(this.isoValue), this.resolvedLocale);\n }\n constructor() {\n super();\n registerSsrPreparationCallback(this, () => this.syncSegmentsFromValue());\n }\n getSegmentElement(type) {\n return this.querySelector(`[data-date-segment][data-type=\"${type}\"]`);\n }\n /**\n * Moves editing to `part` and commits the draft once, as `trigger`.\n *\n * @remarks A `leave` commits nothing when no part was focused, so first focus never\n * publishes. A `blur` always commits: an edge arrow or a completed last unit clears\n * `focusedPart` while focus stays inside, and that draft still gets the Blur column.\n */\n setFocusedPart(part, trigger = \"leave\") {\n const previous = this.focusedPart;\n if (part === previous && trigger === \"leave\") {\n return;\n }\n this.buffer = \"\";\n if (previous != null || trigger === \"blur\") {\n this.commit(trigger);\n }\n this.focusedPart = part;\n }\n focusPart(type) {\n this.setFocusedPart(type);\n this.pendingFocus = type;\n }\n /**\n * Moves focus and the caret to `focusedPart` after a cycle that changed it or rebuilt `segments`.\n *\n * @remarks Skipped once focus has left the control, so a rebuild in the turn focus\n * moved elsewhere (before the blur commit clears `focusedPart`) cannot pull it back.\n */\n updated(changed) {\n super.updated(changed);\n this.pendingFocus = null;\n const part = this.focusedPart;\n if (!part || !(changed.has(\"focusedPart\") || changed.has(\"segments\")) || !this.matches(\":focus-within\")) {\n return;\n }\n const segment = this.getSegmentElement(part);\n if (!segment) {\n return;\n }\n if (document.activeElement !== segment) {\n segment.focus();\n }\n if (document.activeElement === segment) {\n window.getSelection()?.collapse(segment, 0);\n }\n }\n /**\n * Publishes, keeps, or restores the draft after `trigger`, per the commit table in `README.md`.\n *\n * @remarks An in-progress buffer only holds back an `edit`; leaving the part clears it first.\n */\n commit(trigger) {\n if (trigger === \"edit\" && this.buffer) {\n return;\n }\n const status = draftStatus(this.segments, {\n min: this.min,\n max: this.max\n });\n switch (status.kind) {\n case \"partial-year\":\n if (trigger !== \"edit\") {\n this.syncSegmentsFromValue();\n }\n return;\n case \"incomplete\":\n if (trigger === \"blur\") {\n this.syncSegmentsFromValue();\n }\n return;\n case \"out-of-range\":\n this.syncSegmentsFromValue();\n return;\n case \"empty\":\n this.publish(\"\");\n return;\n case \"date\":\n this.publish(status.iso);\n }\n }\n /**\n * @remarks A changed `value` rebuilds `segments` through its `@onUpdated` in the next\n * update cycle, so `segments` still holds the draft until then. An unchanged value\n * rebuilds now so the display normalizes (`1` becomes `01`).\n */\n publish(iso) {\n if (iso === this.isoValue) {\n this.syncSegmentsFromValue();\n return;\n }\n this.value = iso;\n this.changeEvent.emit({\n value: iso\n });\n }\n partFromTarget(target) {\n if (!(target instanceof HTMLElement)) {\n return null;\n }\n const segment = target.closest(\"[data-date-segment]\");\n const type = segment?.getAttribute(\"data-type\");\n if (type === \"month\" || type === \"day\" || type === \"year\") {\n return type;\n }\n return null;\n }\n /** @remarks A completed unit commits once, as the `leave` of the focus move it triggers. */\n handleDigit(part, key) {\n this.setFocusedPart(part);\n const result = applyDigitToSegment(this.segments, part, key, this.buffer);\n this.segments = result.segments;\n this.buffer = result.enteredKeys;\n if (result.focusNext) {\n this.focusPart(focusPartAfter(this.segments, part, 1));\n return;\n }\n this.commit(\"edit\");\n }\n handleBackspace(part) {\n this.setFocusedPart(part);\n const result = applyBackspaceToSegment(this.segments, part);\n if (result.kind === \"focus-previous\") {\n this.focusPart(focusPartAfter(this.segments, part, -1));\n return;\n }\n this.segments = result.segments;\n this.buffer = result.enteredKeys;\n this.commit(\"edit\");\n }\n handleIncrement(part, delta) {\n this.setFocusedPart(part);\n this.buffer = \"\";\n this.segments = incrementSegmentValue(this.segments, part, delta);\n this.commit(\"edit\");\n }\n onConnected() {\n this.syncSegmentsFromValue();\n this.syncGroupLabel();\n }\n formValue() {\n return this.name ? this.isoValue : null;\n }\n /** @remarks The reset value must survive a name assigned after first connect. */\n formState() {\n return this.value;\n }\n restoreFormState(state2) {\n this.value = typeof state2 === \"string\" ? state2 : \"\";\n this.syncSegmentsFromValue();\n }\n formResetCallback() {\n super.formResetCallback();\n this.dispatchEvent(new Event(\"rui-form-reset\", {\n bubbles: true\n }));\n }\n syncGroupLabel() {\n const root = this.querySelector('[data-ref=\"root\"]');\n if (!root) {\n return;\n }\n if (!root.id) {\n root.id = `${this.uid}-group`;\n }\n const ariaLabel = this.label || this.getAttribute(\"aria-label\") || \"\";\n if (ariaLabel) {\n root.setAttribute(\"aria-label\", ariaLabel);\n } else {\n root.removeAttribute(\"aria-label\");\n }\n }\n onGroupFocusIn(event2) {\n if (this.partFromTarget(event2.target)) {\n return;\n }\n this.focusPart(firstEmptyOrFirstPart(this.segments));\n }\n onSegmentFocusIn(event2) {\n const part = this.partFromTarget(event2.target);\n if (!part) {\n return;\n }\n if (this.pendingFocus && this.pendingFocus !== part) {\n return;\n }\n this.setFocusedPart(part);\n }\n onSegmentFocusOut() {\n queueMicrotask(() => {\n if (this.matches(\":focus-within\")) {\n return;\n }\n this.setFocusedPart(null, \"blur\");\n });\n }\n onSegmentKeyDown(event2) {\n const part = this.partFromTarget(event2.target);\n if (!part || this.effectiveDisabled || this.readOnly) {\n return;\n }\n if (event2.key === \"ArrowLeft\") {\n event2.preventDefault();\n this.focusPart(focusPartAfter(this.segments, part, -1));\n return;\n }\n if (event2.key === \"ArrowRight\") {\n event2.preventDefault();\n this.focusPart(focusPartAfter(this.segments, part, 1));\n return;\n }\n if (event2.key === \"ArrowUp\") {\n event2.preventDefault();\n this.handleIncrement(part, 1);\n return;\n }\n if (event2.key === \"ArrowDown\") {\n event2.preventDefault();\n this.handleIncrement(part, -1);\n return;\n }\n if (event2.key === \"Backspace\" || event2.key === \"Delete\") {\n event2.preventDefault();\n event2.stopPropagation();\n this.handleBackspace(part);\n }\n }\n onSegmentBeforeInput(event2) {\n const part = this.partFromTarget(event2.target);\n if (!part || this.effectiveDisabled || this.readOnly) {\n return;\n }\n event2.preventDefault();\n switch (event2.inputType) {\n case \"deleteContentBackward\":\n case \"deleteContentForward\":\n this.handleBackspace(part);\n break;\n default:\n if (event2.data != null) {\n this.handleDigit(part, event2.data);\n }\n break;\n }\n }\n onSegmentPointerDown(event2) {\n event2.stopPropagation();\n }\n renderSegment(segment, index) {\n if (!segment.editable) {\n return /* @__PURE__ */jsx(\"span\", {\n class: \"rui-date-input__literal\",\n \"data-type\": \"literal\",\n \"aria-hidden\": \"true\",\n children: segment.value\n }, `literal-${index}`);\n }\n const type = segment.type;\n const focused = this.focusedPart === type;\n const dom = getSegmentDomProps(segment, {\n disabled: this.effectiveDisabled,\n locale: this.resolvedLocale,\n readOnly: this.readOnly,\n segments: this.displaySegments,\n useTextboxRole: this.useTextboxRole\n });\n return /* @__PURE__ */jsx(\"span\", {\n class: dom.className,\n \"data-date-segment\": true,\n \"data-type\": type,\n \"data-placeholder\": segment.isPlaceholder ? \"true\" : void 0,\n \"data-focused\": focused ? \"true\" : void 0,\n role: dom.ariaRole,\n \"aria-label\": dom.ariaLabel,\n \"aria-valuemin\": dom.ariaValuemin,\n \"aria-valuemax\": dom.ariaValuemax,\n \"aria-valuenow\": dom.ariaValuenow,\n \"aria-valuetext\": dom.ariaValuetext,\n \"aria-readonly\": dom.ariaReadonly,\n contenteditable: dom.contenteditable,\n suppresscontenteditablewarning: dom.suppresscontenteditablewarning,\n spellcheck: \"false\",\n inputmode: dom.inputmode,\n tabindex: dom.tabindex,\n children: segmentDisplayText(segment)\n }, type);\n }\n render() {\n return /* @__PURE__ */jsx(\"div\", {\n class: \"rui-date-input\",\n \"data-ref\": \"root\",\n role: \"group\",\n children: /* @__PURE__ */jsx(\"div\", {\n class: \"rui-date-input__segments\",\n children: this.displaySegments.map((segment, index) => this.renderSegment(segment, index))\n })\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiDateInput as RuiDateInput };", "import { cx } from \"@/lib/cx\";\nimport { getSegmentBounds, segmentAriaName, segmentDisplayText, segmentNumericValue } from \"@/lib/intl-date\";\nexport function getSegmentDomProps(segment, context) {\n const type = segment.type;\n const numeric = segmentNumericValue(segment);\n const spinbutton = !context.useTextboxRole;\n const ariaRole = spinbutton ? \"spinbutton\" : \"textbox\";\n const editable = !context.disabled && !context.readOnly;\n const bounds = getSegmentBounds(type, context.segments);\n return {\n ariaLabel: segmentAriaName(type, context.locale),\n ariaReadonly: context.readOnly || void 0,\n ariaRole,\n ariaValuemax: spinbutton ? bounds.max : void 0,\n ariaValuemin: spinbutton ? bounds.min : void 0,\n ariaValuenow: spinbutton && numeric != null ? numeric : void 0,\n ariaValuetext: spinbutton ? segmentDisplayText(segment) : void 0,\n className: cx(\"rui-date-input__segment\", segment.isPlaceholder && \"rui-date-input__segment--placeholder\"),\n contenteditable: editable ? \"true\" : void 0,\n inputmode: editable ? \"numeric\" : void 0,\n suppresscontenteditablewarning: editable ? \"true\" : void 0,\n tabindex: context.disabled ? void 0 : 0\n };\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport \"./date-input.script\";\nexport function RuiDateInput({\n children,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-date-input\", {\n \"data-rui-control\": true,\n \"data-rui-control-type\": \"date\",\n \"data-rui-aria-target\": '[data-ref=\"root\"]',\n ...props,\n children\n });\n}"],
5
+ "mappings": "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",
6
+ "names": ["RadiantElement", "bindTo", "customElement", "event", "onEvent", "onUpdated", "prop", "query", "state", "isMobileLayoutViewport", "effectiveVisibleMonths", "requested", "listenMobileLayoutViewport", "onChange", "mediaQueryList", "CSS_SAFE_ID", "isCssSafeId", "value", "cssSafePrefix", "prefix", "trimmed", "prefixed", "uniqueId", "token", "byte", "OPPOSITE", "DEFAULT_VIEWPORT_PADDING", "matchAnchorWidthStylesApplied", "clearMatchAnchorWidthStyles", "floating", "parsePlacement", "placement", "dash", "side", "align", "primaryAxis", "coordsFor", "anchor", "size", "gap", "width", "height", "x", "y", "overflowOnPrimary", "coords", "viewport", "padding", "vw", "vh", "freeSpaceOnSide", "toPlacement", "clampCrossAxis", "maxX", "maxY", "computeFloatingPosition", "anchor", "size", "placement", "gap", "viewport", "DEFAULT_VIEWPORT_PADDING", "preferred", "align", "parsePlacement", "preferredCoords", "coordsFor", "preferredOverflow", "overflowOnPrimary", "side", "coords", "flipped", "OPPOSITE", "flippedCoords", "preferredFree", "freeSpaceOnSide", "clampCrossAxis", "toPlacement", "applyFloatingPosition", "floating", "options", "matchAnchorWidth", "anchorWidth", "matchAnchorWidthStylesApplied", "clearMatchAnchorWidthStyles", "resolved", "attachFloating", "getPlacement", "update", "observer", "mountPortal", "node", "container", "parent", "placeholder", "restoreParent", "popoverContains", "anchor", "floating", "node", "shouldDismissPopoverFocus", "relatedTarget", "PopoverController", "config", "patch", "floating", "anchor", "mountPortal", "attachFloating", "node", "popoverContains", "configuredFloating", "CalendarPopoverBehavior", "config", "popover", "controller", "focusCalendarPickerDay", "event", "onClose", "relatedTarget", "next", "shouldDismissPopoverFocus", "PopoverController", "calendar", "iso", "findAssociatedLabel", "owner", "previous", "bindVisibleLabel", "label", "control", "options", "syncFieldLabel", "labelElement", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_min", "_init_extra_min", "_init_max", "_init_extra_max", "_init_disabled", "_init_extra_disabled", "_init_readOnly", "_init_extra_readOnly", "_init_label", "_init_extra_label", "_init_name", "_init_extra_name", "_init_locale", "_init_extra_locale", "_init_visibleMonths", "_init_extra_visibleMonths", "_init_changeEvent", "_init_extra_changeEvent", "_init_open", "_init_extra_open", "_init_popoverTarget", "_init_extra_popoverTarget", "_applyDecs", "e", "t", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "n", "r", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiDateField", "RuiDateField", "RadiantElement", "customElement", "prop", "bindTo", "event", "state", "query", "onUpdated", "onEvent", "uniqueId", "CalendarPopoverBehavior", "input", "syncFieldLabel", "toggle", "iso", "calendar", "effectiveVisibleMonths", "next", "listenMobileLayoutViewport", "event2", "target", "detail", "value", "Fragment", "jsx", "jsxs", "withDefaultAriaLabel", "aria", "fallback", "cx", "parts", "jsx", "jsxs", "RuiIconCalendar", "className", "size", "props", "jsxs", "cx", "jsx", "jsx", "jsxs", "RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "registerSsrPreparationCallback", "state", "resolveLocale", "locale", "tags", "tag", "isoToDate", "iso", "match", "year", "month", "day", "date", "dateToIso", "isIsoInRange", "min", "max", "compareIso", "a", "b", "normalizeRange", "start", "end", "parseIsoRange", "value", "serializeIsoRange", "range", "normalized", "parseMultipleIsos", "iso", "serializeMultipleIsos", "values", "toggleMultipleIso", "selected", "set", "isIsoInSpan", "getDaySelectionAppearance", "iso", "mode", "options", "selected", "range", "normalized", "normalizeRange", "inSpan", "isIsoInSpan", "isStart", "isEnd", "advanceRangeSelection", "committed", "draft", "getWeekStartsOn", "locale", "tag", "resolveLocaleTag", "weekInfo", "startOfDay", "date", "isSameDay", "a", "b", "resolveSelectionContext", "options", "mode", "value", "parseMultipleIsos", "committed", "parseIsoRange", "hover", "normalizeRangeFromDraft", "anchor", "buildCalendarMonth", "year", "month", "weekStartsOn", "today", "selection", "startOffset", "gridStart", "weeks", "cursor", "week", "row", "day", "iso", "dateToIso", "appearance", "getDaySelectionAppearance", "isIsoInRange", "addMonths", "year", "month", "delta", "date", "getVisibleMonthViews", "count", "safeCount", "_", "offset", "next", "formatterCache", "cacheKey", "locale", "options", "getDateTimeFormat", "key", "cached", "formatter", "formatMonthYear", "date", "locale", "getDateTimeFormat", "getWeekdayLabels", "weekStartsOn", "formatter", "labels", "offset", "dayIndex", "reference", "formatTodayLabel", "locale", "PLACEHOLDER_DATE", "granularityIncludes", "granularity", "part", "placeholderForPart", "type", "locale", "getDateTimeFormat", "entry", "formatPartValue", "date", "options", "buildDateSegments", "reference", "hasValue", "segment", "parseSegmentNumber", "parsed", "normalizeYear", "value", "segmentsToDate", "segments", "values", "numeric", "allSegmentsEmpty", "draftStatus", "range", "year", "iso", "dateToIso", "isIsoInRange", "maxSegmentLength", "type", "segmentIndex", "segments", "type", "segment", "cloneSegments", "updateSegment", "patch", "next", "index", "parseDigits", "raw", "parsed", "getSegmentBounds", "maxForPart", "year", "readPartNumber", "month", "entry", "padPart", "value", "segmentAriaName", "locale", "name", "segmentDisplayText", "segmentNumericValue", "clearSegmentValue", "setSegmentNumeric", "incrementSegmentValue", "delta", "min", "max", "applyDigitToSegment", "key", "enteredKeys", "digit", "newEntered", "segmentValue", "width", "maxSegmentLength", "shouldFocusNext", "displayValue", "getEditablePartTypes", "focusPartAfter", "direction", "parts", "nextIndex", "firstEmptyOrFirstPart", "first", "applyBackspaceToSegment", "part", "digits", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_min", "_init_extra_min", "_init_max", "_init_extra_max", "_init_disabled", "_init_extra_disabled", "_init_locale", "_init_extra_locale", "_init_selectionMode", "_init_extra_selectionMode", "_init_visibleMonths", "_init_extra_visibleMonths", "_init_pageBehavior", "_init_extra_pageBehavior", "_init_changeEvent", "_init_extra_changeEvent", "_init_viewYear", "_init_extra_viewYear", "_init_viewMonth", "_init_extra_viewMonth", "_init_focusedIso", "_init_extra_focusedIso", "_init_weekdayLabels", "_init_extra_weekdayLabels", "_init_monthPanels", "_init_extra_monthPanels", "_init_todayLabel", "_init_extra_todayLabel", "_init_rangeAnchor", "_init_extra_rangeAnchor", "_init_rangeHover", "_init_extra_rangeHover", "_applyDecs", "e", "t", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "n", "r", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiCalendar", "RuiCalendar", "RadiantElement", "customElement", "prop", "event", "state", "onUpdated", "onEvent", "resolveLocale", "iso", "parseIsoRange", "parseMultipleIsos", "date", "isoToDate", "today", "dateToIso", "getWeekdayLabels", "getWeekStartsOn", "getVisibleMonthViews", "view", "viewDate", "formatMonthYear", "buildCalendarMonth", "formatTodayLabel", "delta", "next", "addMonths", "panel", "cells", "cell", "currentIndex", "nextIndex", "visibleStart", "visibleEnd", "target", "current", "candidates", "day", "lastDay", "value", "extra", "serializeMultipleIsos", "toggleMultipleIso", "result", "advanceRangeSelection", "serialized", "serializeIsoRange", "registerSsrPreparationCallback", "event2", "button", "currentIso", "dayCell", "panelCount", "multiMonth", "jsxs", "jsx", "index", "label", "weekRow", "jsx", "RuiCalendar", "children", "props", "jsx", "jsx", "customElement", "event", "onEvent", "onUpdated", "prop", "registerSsrPreparationCallback", "state", "FormAssociatedElement", "getSegmentDomProps", "segment", "context", "type", "numeric", "segmentNumericValue", "spinbutton", "ariaRole", "editable", "bounds", "getSegmentBounds", "segmentAriaName", "segmentDisplayText", "cx", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_min", "_init_extra_min", "_init_max", "_init_extra_max", "_init_readOnly", "_init_extra_readOnly", "_init_label", "_init_extra_label", "_init_locale", "_init_extra_locale", "_init_changeEvent", "_init_extra_changeEvent", "_init_segments", "_init_extra_segments", "_init_focusedPart", "_init_extra_focusedPart", "_applyDecs", "e", "t", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "n", "r", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "isIosDevice", "_RuiDateInput", "RuiDateInput", "FormAssociatedElement", "customElement", "prop", "event", "state", "onUpdated", "onEvent", "uniqueId", "resolveLocale", "buildDateSegments", "isoToDate", "registerSsrPreparationCallback", "type", "part", "trigger", "previous", "changed", "segment", "status", "draftStatus", "iso", "target", "key", "result", "applyDigitToSegment", "focusPartAfter", "applyBackspaceToSegment", "delta", "incrementSegmentValue", "state2", "root", "ariaLabel", "event2", "firstEmptyOrFirstPart", "index", "jsx", "focused", "dom", "getSegmentDomProps", "segmentDisplayText", "jsx", "RuiDateInput", "children", "props", "jsx", "RuiDateFieldControl", "children", "className", "props", "jsx", "cx", "RuiDateFieldInput", "RuiDateInput", "RuiDateFieldToggle", "aria", "withDefaultAriaLabel", "RuiIconCalendar", "RuiDateFieldPopover", "RuiDateFieldCalendar", "RuiCalendar", "RuiDateField", "value", "min", "max", "disabled", "readOnly", "label", "name", "locale", "jsxs", "Fragment"]
7
7
  }