@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
3
  "sources": ["../../../../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/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_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, 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 constructor(...args) {\n super(...args);\n _init_extra_rangeHover(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 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 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 { 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": ["jsx", "jsxs", "RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "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", "_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", "a", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "n", "r", "i", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "c", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiCalendar", "RuiCalendar", "RadiantElement", "customElement", "prop", "event", "state", "onUpdated", "onEvent", "args", "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", "event2", "button", "currentIso", "dayCell", "panelCount", "multiMonth", "jsxs", "jsx", "index", "label", "weekRow", "jsx", "RuiCalendar", "children", "props", "jsx"]
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_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 { 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": ["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", "_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", "a", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "n", "r", "i", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "c", "_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"]
7
7
  }
@@ -0,0 +1,22 @@
1
+ export type CarouselAutoplayConfig = {
2
+ getInterval: () => number;
3
+ canRotate: () => boolean;
4
+ onTick: () => void;
5
+ /** Called after the timer starts or stops so the host can sync live-region state. */
6
+ onRunningChange: () => void;
7
+ };
8
+ /**
9
+ * Interval rotation for a carousel host.
10
+ *
11
+ * @remarks Pause policy, reduced motion, and wrap live on the host. This
12
+ * controller only owns the timer.
13
+ */
14
+ export declare class CarouselAutoplay {
15
+ private readonly config;
16
+ private timer;
17
+ constructor(config: CarouselAutoplayConfig);
18
+ get isRunning(): boolean;
19
+ start(): void;
20
+ stop(): void;
21
+ sync(): void;
22
+ }
@@ -0,0 +1,17 @@
1
+ export declare const SWIPE_THRESHOLD_PX = 48;
2
+ export type CarouselSwipeDirection = 'prev' | 'next';
3
+ /**
4
+ * Horizontal swipe past the threshold, ignoring mostly-vertical pointers.
5
+ */
6
+ export declare function resolveSwipeDirection(dx: number, dy: number, threshold?: number): CarouselSwipeDirection | null;
7
+ /**
8
+ * Pointer-id swipe gesture. The host decides whether the target is excluded.
9
+ */
10
+ export declare class CarouselSwipe {
11
+ private pointerId;
12
+ private startX;
13
+ private startY;
14
+ onPointerDown(event: PointerEvent, excluded: boolean): void;
15
+ onPointerUp(event: PointerEvent): CarouselSwipeDirection | null;
16
+ onPointerCancel(event: PointerEvent): void;
17
+ }
@@ -0,0 +1,63 @@
1
+ export type CarouselTrackMode = 'swap' | 'stack' | 'window';
2
+ export type CarouselSurface = 'shell' | 'cards';
3
+ export type CarouselWindowParams = {
4
+ index: number;
5
+ count: number;
6
+ slidesPerView: number;
7
+ slidesPerGroup: number;
8
+ wrap: boolean;
9
+ };
10
+ export type CarouselWindow = {
11
+ index: number;
12
+ slidesPerView: number;
13
+ slidesPerGroup: number;
14
+ maxStartIndex: number;
15
+ canGoPrev: boolean;
16
+ canGoNext: boolean;
17
+ };
18
+ /**
19
+ * How many slides fill the viewport. Values below 1 collapse to a single pane.
20
+ */
21
+ export declare function clampSlidesPerView(value: number): number;
22
+ /**
23
+ * How many slides prev/next/autoplay move. Fractional input truncates toward zero.
24
+ */
25
+ export declare function clampSlidesPerGroup(value: number): number;
26
+ /**
27
+ * Last valid window-start index so the viewport still has content.
28
+ *
29
+ * @remarks Integer `index` cannot flush a fractional peek against the end;
30
+ * `floor(slidesPerView)` is the visible count used for that bound. The track
31
+ * translate still clamps so the last card sits on the right edge.
32
+ */
33
+ export declare function maxStartIndex(count: number, slidesPerView: number): number;
34
+ /** Clamp an authored or requested index to a valid window start. */
35
+ export declare function clampIndex(raw: number, count: number, slidesPerView: number): number;
36
+ /**
37
+ * First slide overlapping the viewport. Near the end this moves left of `index`
38
+ * so a fractional peek shows the previous card and the last full card sits flush right.
39
+ */
40
+ export declare function visualStartIndex(index: number, count: number, slidesPerView: number): number;
41
+ export declare function isSlideInView(slideIndex: number, index: number, count: number, slidesPerView: number): boolean;
42
+ /**
43
+ * Track layout the host paints. A window of more than one slide cannot swap or
44
+ * cross-fade, so those transitions fall back to a sliding track.
45
+ */
46
+ export declare function resolveCarouselTrackMode(transition: 'none' | 'slide' | 'fade', slidesPerView: number): CarouselTrackMode;
47
+ /**
48
+ * One pane keeps chrome on the viewport. More than one slide paints each slide
49
+ * as a card with `--rui-carousel-gap` between them.
50
+ */
51
+ export declare function resolveCarouselSurface(slidesPerView: number): CarouselSurface;
52
+ /**
53
+ * Gaps visible in the window, including a peek of the next card.
54
+ *
55
+ * @remarks `slidesPerView` 3 → 2 gaps; `1.2` → 1 gap between the card and the peek.
56
+ */
57
+ export declare function carouselGapCount(slidesPerView: number): number;
58
+ export declare function resolveCarouselWindow(params: CarouselWindowParams): CarouselWindow;
59
+ /**
60
+ * Move by `slidesPerGroup`. Overflow wraps to the other end when `wrap` is set;
61
+ * otherwise the window clamps.
62
+ */
63
+ export declare function advanceIndex(params: CarouselWindowParams, deltaGroups: number): number;
@@ -1,6 +1,11 @@
1
1
  /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
2
  @layer properties;
3
3
  rui-carousel {
4
+ --rui-carousel-gap: var(--space-inline);
5
+ --rui-carousel-radius: var(--radius-container);
6
+ --rui-carousel-border-color: var(--border);
7
+ --rui-carousel-surface: var(--surface);
8
+ --rui-carousel-padding: var(--space-inset);
4
9
  display: block;
5
10
  width: 100%;
6
11
  max-width: 100%;
@@ -8,6 +13,7 @@ rui-carousel {
8
13
  }
9
14
  @layer components {
10
15
  .rui-carousel {
16
+ --rui-carousel-track-gap: 0px;
11
17
  display: flex;
12
18
  width: 100%;
13
19
  max-width: 100%;
@@ -15,8 +21,10 @@ rui-carousel {
15
21
  flex-direction: column;
16
22
  gap: var(--spacing-stack, var(--space-stack));
17
23
  }
24
+ .rui-carousel[data-carousel-surface='cards'] {
25
+ --rui-carousel-track-gap: var(--rui-carousel-gap);
26
+ }
18
27
  .rui-carousel:focus-visible {
19
- border-radius: var(--radius-container, var(--radius-container));
20
28
  --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
21
29
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
22
30
  --tw-ring-color: var(--color-focus-ring, var(--focus-ring));
@@ -26,6 +34,7 @@ rui-carousel {
26
34
  outline: 2px solid transparent;
27
35
  outline-offset: 2px;
28
36
  }
37
+ border-radius: var(--rui-carousel-radius);
29
38
  }
30
39
  .rui-carousel__stage {
31
40
  position: relative;
@@ -37,20 +46,31 @@ rui-carousel {
37
46
  width: 100%;
38
47
  min-width: 0px;
39
48
  overflow: hidden;
40
- border-radius: var(--radius-container, var(--radius-container));
41
- border-style: var(--tw-border-style);
42
- border-width: 1px;
43
- border-color: var(--color-border, var(--border));
44
- background-color: var(--color-surface, var(--surface));
45
49
  font-size: var(--text-sm, var(--text-sm));
46
50
  line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
47
51
  touch-action: pan-y;
48
52
  }
49
- .rui-carousel--controls-toolbar .rui-carousel__viewport {
50
- padding: var(--spacing-inset, var(--space-inset));
53
+ .rui-carousel[data-carousel-surface='shell'] .rui-carousel__viewport,
54
+ .rui-carousel:not([data-carousel-surface]) .rui-carousel__viewport {
55
+ border-style: var(--tw-border-style);
56
+ border-width: 1px;
57
+ border-color: var(--rui-carousel-border-color);
58
+ border-radius: var(--rui-carousel-radius);
59
+ background-color: var(--rui-carousel-surface);
60
+ }
61
+ .rui-carousel--controls-toolbar[data-carousel-surface='shell'] .rui-carousel__viewport,
62
+ .rui-carousel--controls-toolbar:not([data-carousel-surface]) .rui-carousel__viewport {
63
+ padding: var(--rui-carousel-padding);
51
64
  }
52
65
  .rui-carousel--controls-overlay .rui-carousel__viewport {
66
+ padding: 0;
67
+ }
68
+ .rui-carousel[data-carousel-surface='cards'] .rui-carousel__viewport {
69
+ border-style: var(--tw-border-style);
70
+ border-width: 0px;
71
+ background-color: transparent;
53
72
  padding: 0px;
73
+ border-radius: 0;
54
74
  }
55
75
  .rui-carousel__track {
56
76
  position: relative;
@@ -65,6 +85,14 @@ rui-carousel {
65
85
  align-items: center;
66
86
  justify-content: center;
67
87
  }
88
+ .rui-carousel[data-carousel-surface='cards'] .rui-carousel__slide {
89
+ border-style: var(--tw-border-style);
90
+ border-width: 1px;
91
+ border-color: var(--rui-carousel-border-color);
92
+ border-radius: var(--rui-carousel-radius);
93
+ background-color: var(--rui-carousel-surface);
94
+ padding: var(--rui-carousel-padding);
95
+ }
68
96
  .rui-carousel__footer {
69
97
  width: 100%;
70
98
  min-width: 0px;
@@ -235,7 +263,8 @@ rui-carousel {
235
263
  border-radius: var(--radius-full, var(--border-radius-full));
236
264
  }
237
265
  }
238
- .rui-carousel__indicator[aria-selected='true'] {
266
+ .rui-carousel__indicator[aria-selected='true'],
267
+ .rui-carousel__indicator[aria-current='true'] {
239
268
  border-radius: var(--radius-full, var(--border-radius-full));
240
269
  border-color: var(--color-primary, var(--primary));
241
270
  background-color: var(--color-primary, var(--primary));
@@ -255,12 +284,32 @@ rui-carousel {
255
284
  .rui-carousel__indicator:active {
256
285
  border-radius: var(--radius-full, var(--border-radius-full));
257
286
  }
258
- .rui-carousel--none .rui-carousel__slide[hidden] {
287
+ .rui-carousel--none .rui-carousel__slide[hidden],
288
+ .rui-carousel[data-carousel-track='swap'] .rui-carousel__slide[hidden] {
259
289
  display: none;
260
290
  }
261
- .rui-carousel--slide .rui-carousel__track {
291
+ .rui-carousel--slide .rui-carousel__track,
292
+ .rui-carousel[data-carousel-track='window'] .rui-carousel__track {
293
+ --rui-carousel-slide-size: calc(
294
+ (100% - (var(--rui-carousel-track-gap) * var(--rui-carousel-gap-count, 0))) /
295
+ var(--rui-carousel-slides-per-view, 1)
296
+ );
297
+ --rui-carousel-step: calc(var(--rui-carousel-slide-size) + var(--rui-carousel-track-gap));
298
+ --rui-carousel-track-extent: calc(
299
+ var(--rui-carousel-slide-count, 1) * var(--rui-carousel-slide-size) +
300
+ (var(--rui-carousel-slide-count, 1) - 1) * var(--rui-carousel-track-gap)
301
+ );
302
+ --rui-carousel-max-shift: max(0px, var(--rui-carousel-track-extent) - 100%);
303
+ --rui-carousel-shift: min(
304
+ calc(var(--rui-carousel-index, 0) * var(--rui-carousel-step)),
305
+ var(--rui-carousel-max-shift)
306
+ );
262
307
  display: flex;
263
308
  width: 100%;
309
+ gap: var(--rui-carousel-track-gap);
310
+ transform: translateX(calc(-1 * var(--rui-carousel-shift)));
311
+ }
312
+ .rui-carousel--slide .rui-carousel__track {
264
313
  transition-property: transform, translate, scale, rotate;
265
314
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
266
315
  transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
@@ -268,18 +317,21 @@ rui-carousel {
268
317
  transition-duration: var(--transition-duration-slow, var(--duration-slow));
269
318
  --tw-ease: var(--ease-in-out, cubic-bezier(0.4, 0, 0.2, 1));
270
319
  transition-timing-function: var(--ease-in-out, cubic-bezier(0.4, 0, 0.2, 1));
271
- transform: translateX(calc(var(--rui-carousel-index, 0) * -100%));
272
320
  }
273
- .rui-carousel--slide .rui-carousel__slide {
274
- width: 100%;
275
- min-width: 100%;
321
+ .rui-carousel--slide .rui-carousel__slide,
322
+ .rui-carousel[data-carousel-track='window'] .rui-carousel__slide {
323
+ min-width: 0px;
276
324
  flex-shrink: 0;
325
+ flex: 0 0 var(--rui-carousel-slide-size, 100%);
326
+ width: var(--rui-carousel-slide-size, 100%);
277
327
  }
278
- .rui-carousel--fade .rui-carousel__track {
328
+ .rui-carousel--fade[data-carousel-track='stack'] .rui-carousel__track,
329
+ .rui-carousel--fade:not([data-carousel-track]) .rui-carousel__track {
279
330
  display: grid;
280
331
  width: 100%;
281
332
  }
282
- .rui-carousel--fade .rui-carousel__slide {
333
+ .rui-carousel--fade[data-carousel-track='stack'] .rui-carousel__slide,
334
+ .rui-carousel--fade:not([data-carousel-track]) .rui-carousel__slide {
283
335
  grid-column-start: 1;
284
336
  grid-row-start: 1;
285
337
  width: 100%;
@@ -293,7 +345,8 @@ rui-carousel {
293
345
  opacity: 0;
294
346
  pointer-events: none;
295
347
  }
296
- .rui-carousel--fade .rui-carousel__slide[data-active='true'] {
348
+ .rui-carousel--fade[data-carousel-track='stack'] .rui-carousel__slide[data-active='true'],
349
+ .rui-carousel--fade:not([data-carousel-track]) .rui-carousel__slide[data-active='true'] {
297
350
  opacity: 1;
298
351
  pointer-events: auto;
299
352
  }
@@ -9,9 +9,11 @@ export type RuiCarouselSlideProps = Omit<JsxElementProps<HTMLDivElement>, 'id'>
9
9
  id: string;
10
10
  };
11
11
  /**
12
- * Slide in the carousel track (APG `group` / `tabpanel` roles are applied by the host).
12
+ * Slide in the carousel track. Host applies `group` / `tabpanel` roles and visibility.
13
13
  *
14
14
  * @cssclass rui-carousel__slide - Slide surface.
15
+ *
16
+ * @remarks Stamps `[data-slide]` with the slide `id`.
15
17
  */
16
18
  export declare function RuiCarouselSlide({ id, children, class: className, ...props }: RuiCarouselSlideProps): JsxRenderable;
17
19
  export type RuiCarouselControlProps = JsxElementProps<HTMLButtonElement> & {
@@ -23,16 +25,18 @@ export type RuiCarouselControlProps = JsxElementProps<HTMLButtonElement> & {
23
25
  * Previous carousel control.
24
26
  *
25
27
  * @cssclass rui-carousel__nav - Prev nav button (composed with `rui-button`).
28
+ *
29
+ * @remarks Stamps `[data-carousel-action="prev"]` and `data-ref="prev"`.
26
30
  */
27
31
  export declare function RuiCarouselPrev({ children, class: className, disabled, overlay, aria, ...props }: RuiCarouselControlProps): JsxRenderable;
28
- /** Next carousel control. */
32
+ /** Next carousel control. Stamps `[data-carousel-action="next"]` and `data-ref="next"`. */
29
33
  export declare function RuiCarouselNext({ children, class: className, disabled, overlay, aria, ...props }: RuiCarouselControlProps): JsxRenderable;
30
34
  export type RuiCarouselRotationProps = JsxElementProps<HTMLButtonElement> & {
31
35
  overlay?: boolean;
32
36
  };
33
- /** Play/pause rotation control when `autoplay` or `show-rotation-control` is set. */
37
+ /** Play/pause rotation control. Stamps `[data-carousel-action="rotation"]` and `data-ref="rotation"`. */
34
38
  export declare function RuiCarouselRotation({ children, class: className, overlay, aria, ...props }: RuiCarouselRotationProps): JsxRenderable;
35
- export declare function RuiCarousel({ slides, children, prev, next, rotation, label, transition, controlsVariant, showIndicators, showRotationControl, autoplay, ...props }: JsxCustomElementAttributes<RuiCarouselElement, RuiCarouselProps & {
39
+ export declare function RuiCarousel({ slides, children, prev, next, rotation, label, transition, controlsVariant, showIndicators, showRotationControl, autoplay, slidesPerView, slidesPerGroup, ...props }: JsxCustomElementAttributes<RuiCarouselElement, RuiCarouselProps & {
36
40
  slides?: RuiCarouselSlideData[];
37
41
  prev?: JsxRenderable;
38
42
  next?: JsxRenderable;