@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
@@ -9,17 +9,21 @@ export type RuiCycleToggleItemProps = Omit<JsxElementProps<HTMLSpanElement>, 'id
9
9
  };
10
10
  export type RuiCycleToggleButtonProps = JsxElementProps<HTMLButtonElement> & Pick<RuiCycleToggleProps, 'disabled' | 'label' | 'size' | 'variant'>;
11
11
  /**
12
- * One cycle option. Only the active item is visible inside the button.
12
+ * One cycle option inside the button. Stamps `[data-cycle-value]` from `id`.
13
13
  *
14
14
  * @cssclass rui-cycle-toggle__item - Cycle option row (icon + label).
15
15
  */
16
16
  export declare function RuiCycleToggleItem({ id, children, class: className, disabled, selected, ...props }: RuiCycleToggleItemProps): import("@ecopages/jsx").JsxRenderable;
17
17
  /**
18
- * Button chrome shared by cycle-toggle custom-element views.
18
+ * Button chrome for cycle-toggle views. Stamps `button[data-cycle-toggle-button]`.
19
19
  *
20
20
  * Composes `rui-button` with `rui-button--<variant> --<size>` (see button).
21
21
  *
22
22
  * @cssclass rui-cycle-toggle__button - Cycle toggle button root.
23
23
  */
24
24
  export declare function RuiCycleToggleButton({ children, variant, size, disabled, class: className, ...props }: RuiCycleToggleButtonProps): import("@ecopages/jsx").JsxRenderable;
25
+ /**
26
+ * Cycle toggle view. Stamps `<rui-cycle-toggle>` and `RuiCycleToggleButton`
27
+ * (`button[data-cycle-toggle-button]`) wrapping `RuiCycleToggleItem` children.
28
+ */
25
29
  export declare function RuiCycleToggle({ children, variant, size, disabled, ...props }: JsxCustomElementAttributes<RuiCycleToggleElement, RuiCycleToggleProps>): import("@ecopages/jsx").JsxRenderable;
@@ -19,8 +19,25 @@ export type RuiCycleToggleChangeDetail = {
19
19
  /**
20
20
  * `<rui-cycle-toggle>` — cycles through exclusive values on each button press.
21
21
  *
22
- * Compose with `RuiCycleToggleItem` children inside the rendered button. Only the
23
- * active item is visible; click advances to the next enabled item and wraps.
22
+ * The custom element is a behavior host: it does not render the composed tree.
23
+ * Import the script and place light-DOM children that match the contract below,
24
+ * or use the `RuiCycleToggle` view helpers which stamp the same targets.
25
+ *
26
+ * Only the active item is visible; click advances to the next enabled item and wraps.
27
+ *
28
+ * ## Light-DOM contract
29
+ *
30
+ * Required:
31
+ * - `button[data-cycle-toggle-button]` — cycle control. Host sets `aria-label`, `disabled`, `rui-button--*` classes.
32
+ * - `[data-cycle-value]` — one per option inside the button. Host sets `hidden` on inactive items.
33
+ *
34
+ * Per item:
35
+ * - `data-cycle-value` — item identity (matches host `value`).
36
+ * - `aria-disabled="true"` — skip item when cycling.
37
+ *
38
+ * Do not set `hidden` on items — the host owns visibility.
39
+ *
40
+ * Nested hosts: none.
24
41
  *
25
42
  * @see https://www.w3.org/WAI/ARIA/apg/patterns/button/
26
43
  *
@@ -33,9 +50,23 @@ export type RuiCycleToggleChangeDetail = {
33
50
  * @attr {string} label - Accessible name prefix for the cycle button. Default: `''`.
34
51
  * @attr {boolean} disabled - Disables the cycle button. Default: `false`.
35
52
  *
36
- * @slot - `RuiCycleToggleItem` nodes projected into the inner button by the view.
37
- *
38
53
  * @fires rui-change - Emitted after `value` advances; `detail.value` is the new id.
54
+ *
55
+ * @remarks
56
+ * Minimum headless tree:
57
+ *
58
+ * ```html
59
+ * <rui-cycle-toggle value="light" label="Theme">
60
+ * <button type="button" data-cycle-toggle-button>
61
+ * <span data-cycle-value="system">System</span>
62
+ * <span data-cycle-value="light">Light</span>
63
+ * <span data-cycle-value="dark">Dark</span>
64
+ * </button>
65
+ * </rui-cycle-toggle>
66
+ * ```
67
+ *
68
+ * The host writes `rui-button--*` variant and size classes onto the cycle button.
69
+ * Query targets are `button[data-cycle-toggle-button]` and `[data-cycle-value]`.
39
70
  */
40
71
  export declare class RuiCycleToggle extends RadiantElement {
41
72
  value: string;
@@ -1,2 +1,2 @@
1
- import{RadiantElement as Te,customElement as Ae,event as Me,onEvent as De,onUpdated as $e,prop as j}from"@ecopages/radiant";function G(e,t){if(e.length===0)throw new RangeError("cycleValue requires at least one value");let n=t===void 0?-1:e.indexOf(t);return n===-1?e[0]:e[(n+1)%e.length]}var ue,de,he,fe,me,ge,be,pe,ye,ve,_e,xe,we,Ee;function Be(e,t,n,o,d,_){var f,a,A,M,V,D,T,Z=Symbol.metadata||Symbol.for("Symbol.metadata"),H=Object.defineProperty,$=Object.create,F=[$(null),$(null)],N=t.length;function k(i,b,m){return function(r,l){b&&(l=r,r=e);for(var p=0;p<i.length;p++)l=i[p].apply(r,m?[l]:[]);return m?l:r}}function x(i,b,m,r){if(typeof i!="function"&&(r||i!==void 0))throw new TypeError(b+" must "+(m||"be")+" a function"+(r?"":" or undefined"));return i}function ee(i,b,m,r,l,p,E,g,y,v,ne){function q(u){if(!ne(u))throw new TypeError("Attempted to access private element on non-instance")}var U=[].concat(b[0]),ie=b[3],P=!E,C=l===1,re=l===3,oe=l===4,R=l===2;function B(u,I,se){return function(O,ce){return I&&(ce=O,O=i),se&&se(O),s[u].call(O,ce)}}if(!P){var s={},K=[],w=re?"get":oe||C?"set":"value";if(y?(v||C?s={get:Ie(function(){return ie(this)},r,"get"),set:function(u){b[4](this,u)}}:s[w]=ie,v||Ie(s[w],r,R?"":w)):v||(s=Object.getOwnPropertyDescriptor(i,r)),!v&&!y){if((a=F[+g][r])&&(a^l)!==7)throw Error("Decorating two elements with the same name ("+s[w].name+") is not supported yet");F[+g][r]=l<3?1:l}}for(var h=i,L=U.length-1;L>=0;L-=m?2:1){var le=x(U[L],"A decorator","be",!0),ae=m?U[L-1]:void 0,W={},S={kind:["field","accessor","method","getter","setter","class"][l],name:r,metadata:f,addInitializer:function(u,I){if(u.v)throw new TypeError("attempted to call addInitializer after decoration was finished");x(I,"An initializer","be",!0),p.push(I)}.bind(null,W)};if(P)a=le.call(ae,h,S),W.v=1,x(a,"class decorators","return")&&(h=a);else if(S.static=g,S.private=y,a=S.access={has:y?ne.bind():function(u){return r in u}},oe||(a.get=y?R?function(u){return q(u),s.value}:B("get",0,q):function(u){return u[r]}),R||re||(a.set=y?B("set",0,q):function(u,I){u[r]=I}),h=le.call(ae,C?{get:s.get,set:s.set}:s[w],S),W.v=1,C){if(typeof h=="object"&&h)(a=x(h.get,"accessor.get"))&&(s.get=a),(a=x(h.set,"accessor.set"))&&(s.set=a),(a=x(h.init,"accessor.init"))&&K.unshift(a);else if(h!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else x(h,(v?"field":"method")+" decorators","return")&&(v?K.unshift(h):s[w]=h)}return l<2&&E.push(k(K,g,1),k(p,g,0)),v||P||(y?C?E.splice(-1,0,B("get",g),B("set",g)):E.push(R?s[w]:x.call.bind(s[w])):H(i,r,s)),h}function te(i){return H(i,Z,{configurable:!0,enumerable:!0,value:f})}return _!==void 0&&(f=_[Z]),f=$(f??null),V=[],D=function(i){i&&V.push(k(i))},T=function(i,b){for(var m=0;m<n.length;m++){var r=n[m],l=r[1],p=7&l;if((8&l)==i&&!p==b){var E=r[2],g=!!r[3],y=16&l;ee(i?e:e.prototype,r,y,g?"#"+E:Le(E),p,p<2?[]:i?M=M||[]:A=A||[],V,!!i,g,b,i&&g?function(v){return ze(v)===e}:d)}}},T(8,0),T(0,0),T(8,1),T(0,1),D(A),D(M),a=V,N||te(e),{e:a,get c(){var i=[];return N&&[te(e=ee(e,[t],o,e.name,5,i)),k(i,1)]}}}function Le(e){var t=Oe(e,"string");return typeof t=="symbol"?t:t+""}function Oe(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var o=n.call(e,t||"default");if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ie(e,t,n){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+" "+t:t})}catch{}return e}function ze(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(e!==null?typeof e:"null"));return e}var qe="[data-cycle-value]",J="button[data-cycle-toggle-button]",Se,Ce=class extends Te{static{({e:[he,fe,me,ge,be,pe,ye,ve,_e,xe,we,Ee,ue],c:[Se,de]}=Be(this,[Ae("rui-cycle-toggle")],[[j({type:String,reflect:!0,defaultValue:""}),0,"value"],[j({type:String,reflect:!0,defaultValue:"filled"}),0,"variant"],[j({type:String,reflect:!0,defaultValue:"md"}),0,"size"],[j({type:String,defaultValue:""}),0,"label"],[j({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[Me({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[$e(["value","label","disabled","size","variant"]),2,"onPropsUpdated"],[De({selector:J,type:"click"}),2,"onButtonClick"]],0,void 0,Te))}value=(ue(this),he(this));variant=(fe(this),me(this));size=(ge(this),be(this));label=(pe(this),ye(this));disabled=(ve(this),_e(this));changeEvent=(xe(this),we(this));childObserver=(Ee(this),null);connectedCallback(){super.connectedCallback(),this.childObserver=new MutationObserver(()=>this.resync()),this.childObserver.observe(this,{childList:!0,subtree:!0})}onConnected(){this.resync()}disconnectedCallback(){this.childObserver?.disconnect(),this.childObserver=null,super.disconnectedCallback()}onPropsUpdated(){this.resync()}resync(){let t=this.syncSelection(this.value||this.getItemValue(this.getEnabledItems()[0])||"");this.syncButtonPresentation(),this.syncButtonLabel(t)}getItems(){return Array.from(this.querySelectorAll(qe))}getEnabledItems(){return this.getItems().filter(t=>t.getAttribute("aria-disabled")!=="true")}getItemValue(t){return t?t.dataset.cycleValue??"":""}syncButtonLabel(t){let n=this.querySelector(J);if(!n)return;let o=t?.querySelector("[aria-label]")?.ariaLabel??t?.textContent?.trim();if(!this.label||!o){n.removeAttribute("aria-label");return}n.setAttribute("aria-label",`${this.label}: ${o}`)}syncButtonPresentation(){let t=this.querySelector(J);if(t){t.disabled=this.disabled;for(let n of Array.from(t.classList))n.startsWith("rui-button--")&&t.classList.remove(n);t.classList.add(`rui-button--${this.variant}`,`rui-button--${this.size}`)}}syncSelection(t){let n=this.getItems();if(!n.length)return;let o=this.getEnabledItems(),d=n.find(f=>this.getItemValue(f)===t&&o.includes(f))??o[0]??n[0],_=this.getItemValue(d);this.value=_;for(let f of n)f.hidden=f!==d;return d}cycle(){if(this.disabled)return;let n=this.getEnabledItems().map(d=>this.getItemValue(d)).filter(Boolean);if(!n.length)return;let o=G(n,this.value||void 0);o!==this.value&&(this.syncSelection(o),this.changeEvent.emit({value:this.value}))}onButtonClick(){this.cycle()}static{de()}};import{jsx as z}from"@ecopages/jsx/jsx-runtime";function Q(...e){return e.filter(Boolean).join(" ")}function Ue({id:e,children:t,class:n,disabled:o,selected:d,..._}){return z("span",{..._,class:Q("rui-cycle-toggle__item",n),"data-cycle-value":e,hidden:d===void 0?void 0:!d,"aria-disabled":o?"true":void 0,children:t})}function je({children:e,variant:t="filled",size:n="md",disabled:o,class:d,..._}){return z("button",{..._,type:"button",class:Q("rui-button","rui-cycle-toggle__button",`rui-button--${t}`,`rui-button--${n}`,d),disabled:o,"data-cycle-toggle-button":!0,children:e})}function Pe({children:e,variant:t,size:n,disabled:o,...d}){return z("rui-cycle-toggle",{...d,variant:t,size:n,disabled:o,children:z(je,{variant:t,size:n,disabled:o,children:e})})}import{jsx as c,jsxs as Y}from"@ecopages/jsx/jsx-runtime";var Ve={system:"System",light:"Light",dark:"Dark"},X={xmlns:"http://www.w3.org/2000/svg",width:16,height:16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":!0},Ke={system:Y("svg",{...X,children:[c("rect",{width:"20",height:"14",x:"2",y:"3",rx:"2"}),c("line",{x1:"8",x2:"16",y1:"21",y2:"21"}),c("line",{x1:"12",x2:"12",y1:"17",y2:"21"})]}),light:Y("svg",{...X,children:[c("circle",{cx:"12",cy:"12",r:"4"}),c("path",{d:"M12 2v2"}),c("path",{d:"M12 20v2"}),c("path",{d:"m4.93 4.93 1.41 1.41"}),c("path",{d:"m17.66 17.66 1.41 1.41"}),c("path",{d:"M2 12h2"}),c("path",{d:"M20 12h2"}),c("path",{d:"m6.34 17.66-1.41 1.41"}),c("path",{d:"m19.07 4.93-1.41 1.41"})]}),dark:c("svg",{...X,children:c("path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9"})})};function ke({preference:e}){return Ke[e]}function Re({preference:e}){return Ve[e]}function We({preference:e,showLabel:t=!0}){return Y("span",{class:"inline-flex items-center gap-inline","aria-label":t?void 0:Ve[e],children:[c(ke,{preference:e}),t?c(Re,{preference:e}):void 0]})}export{Pe as RuiCycleToggle,je as RuiCycleToggleButton,Se as RuiCycleToggleElement,Ue as RuiCycleToggleItem,Re as ThemeItemLabel,ke as ThemePreferenceIcon,We as ThemePreferenceItemContent,G as cycleValue};
1
+ import{RadiantElement as Te,bindTo as Ae,customElement as Me,event as De,onEvent as $e,onUpdated as qe,prop as j}from"@ecopages/radiant";function G(e,t){if(e.length===0)throw new RangeError("cycleValue requires at least one value");let n=t===void 0?-1:e.indexOf(t);return n===-1?e[0]:e[(n+1)%e.length]}var ue,de,he,fe,ge,me,be,pe,ye,ve,_e,xe,we,Ee;function Be(e,t,n,o,d,_){var f,a,A,M,V,D,T,Z=Symbol.metadata||Symbol.for("Symbol.metadata"),H=Object.defineProperty,$=Object.create,F=[$(null),$(null)],N=t.length;function k(r,b,g){return function(i,l){b&&(l=i,i=e);for(var p=0;p<r.length;p++)l=r[p].apply(i,g?[l]:[]);return g?l:i}}function x(r,b,g,i){if(typeof r!="function"&&(i||r!==void 0))throw new TypeError(b+" must "+(g||"be")+" a function"+(i?"":" or undefined"));return r}function ee(r,b,g,i,l,p,E,m,y,v,ne){function q(u){if(!ne(u))throw new TypeError("Attempted to access private element on non-instance")}var U=[].concat(b[0]),re=b[3],P=!E,C=l===1,ie=l===3,oe=l===4,R=l===2;function B(u,I,se){return function(O,ce){return I&&(ce=O,O=r),se&&se(O),s[u].call(O,ce)}}if(!P){var s={},K=[],w=ie?"get":oe||C?"set":"value";if(y?(v||C?s={get:Ie(function(){return re(this)},i,"get"),set:function(u){b[4](this,u)}}:s[w]=re,v||Ie(s[w],i,R?"":w)):v||(s=Object.getOwnPropertyDescriptor(r,i)),!v&&!y){if((a=F[+m][i])&&(a^l)!==7)throw Error("Decorating two elements with the same name ("+s[w].name+") is not supported yet");F[+m][i]=l<3?1:l}}for(var h=r,L=U.length-1;L>=0;L-=g?2:1){var le=x(U[L],"A decorator","be",!0),ae=g?U[L-1]:void 0,W={},S={kind:["field","accessor","method","getter","setter","class"][l],name:i,metadata:f,addInitializer:function(u,I){if(u.v)throw new TypeError("attempted to call addInitializer after decoration was finished");x(I,"An initializer","be",!0),p.push(I)}.bind(null,W)};if(P)a=le.call(ae,h,S),W.v=1,x(a,"class decorators","return")&&(h=a);else if(S.static=m,S.private=y,a=S.access={has:y?ne.bind():function(u){return i in u}},oe||(a.get=y?R?function(u){return q(u),s.value}:B("get",0,q):function(u){return u[i]}),R||ie||(a.set=y?B("set",0,q):function(u,I){u[i]=I}),h=le.call(ae,C?{get:s.get,set:s.set}:s[w],S),W.v=1,C){if(typeof h=="object"&&h)(a=x(h.get,"accessor.get"))&&(s.get=a),(a=x(h.set,"accessor.set"))&&(s.set=a),(a=x(h.init,"accessor.init"))&&K.unshift(a);else if(h!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else x(h,(v?"field":"method")+" decorators","return")&&(v?K.unshift(h):s[w]=h)}return l<2&&E.push(k(K,m,1),k(p,m,0)),v||P||(y?C?E.splice(-1,0,B("get",m),B("set",m)):E.push(R?s[w]:x.call.bind(s[w])):H(r,i,s)),h}function te(r){return H(r,Z,{configurable:!0,enumerable:!0,value:f})}return _!==void 0&&(f=_[Z]),f=$(f??null),V=[],D=function(r){r&&V.push(k(r))},T=function(r,b){for(var g=0;g<n.length;g++){var i=n[g],l=i[1],p=7&l;if((8&l)==r&&!p==b){var E=i[2],m=!!i[3],y=16&l;ee(r?e:e.prototype,i,y,m?"#"+E:Le(E),p,p<2?[]:r?M=M||[]:A=A||[],V,!!r,m,b,r&&m?function(v){return ze(v)===e}:d)}}},T(8,0),T(0,0),T(8,1),T(0,1),D(A),D(M),a=V,N||te(e),{e:a,get c(){var r=[];return N&&[te(e=ee(e,[t],o,e.name,5,r)),k(r,1)]}}}function Le(e){var t=Oe(e,"string");return typeof t=="symbol"?t:t+""}function Oe(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var o=n.call(e,t||"default");if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ie(e,t,n){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+" "+t:t})}catch{}return e}function ze(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(e!==null?typeof e:"null"));return e}var Ue="[data-cycle-value]",J="button[data-cycle-toggle-button]",Se,Ce=class extends Te{static{({e:[he,fe,ge,me,be,pe,ye,ve,_e,xe,we,Ee,ue],c:[Se,de]}=Be(this,[Me("rui-cycle-toggle")],[[j({type:String,reflect:!0,defaultValue:""}),0,"value"],[j({type:String,reflect:!0,defaultValue:"filled"}),0,"variant"],[j({type:String,reflect:!0,defaultValue:"md"}),0,"size"],[j({type:String,defaultValue:""}),0,"label"],[[j({type:Boolean,reflect:!0,defaultValue:!1}),Ae({selector:"button[data-cycle-toggle-button]",prop:"disabled"})],0,"disabled"],[De({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[qe(["value","label","disabled","size","variant"]),2,"onPropsUpdated"],[$e({selector:J,type:"click"}),2,"onButtonClick"]],0,void 0,Te))}value=(ue(this),he(this));variant=(fe(this),ge(this));size=(me(this),be(this));label=(pe(this),ye(this));disabled=(ve(this),_e(this));changeEvent=(xe(this),we(this));childObserver=(Ee(this),null);connectedCallback(){super.connectedCallback(),this.childObserver=new MutationObserver(()=>this.resync()),this.childObserver.observe(this,{childList:!0,subtree:!0})}onConnected(){this.resync()}disconnectedCallback(){this.childObserver?.disconnect(),this.childObserver=null,super.disconnectedCallback()}onPropsUpdated(){this.resync()}resync(){let t=this.syncSelection(this.value||this.getItemValue(this.getEnabledItems()[0])||"");this.syncButtonPresentation(),this.syncButtonLabel(t)}getItems(){return Array.from(this.querySelectorAll(Ue))}getEnabledItems(){return this.getItems().filter(t=>t.getAttribute("aria-disabled")!=="true")}getItemValue(t){return t?t.dataset.cycleValue??"":""}syncButtonLabel(t){let n=this.querySelector(J);if(!n)return;let o=t?.querySelector("[aria-label]")?.ariaLabel??t?.textContent?.trim();if(!this.label||!o){n.removeAttribute("aria-label");return}n.setAttribute("aria-label",`${this.label}: ${o}`)}syncButtonPresentation(){let t=this.querySelector(J);if(t){for(let n of Array.from(t.classList))n.startsWith("rui-button--")&&t.classList.remove(n);t.classList.add(`rui-button--${this.variant}`,`rui-button--${this.size}`)}}syncSelection(t){let n=this.getItems();if(!n.length)return;let o=this.getEnabledItems(),d=n.find(f=>this.getItemValue(f)===t&&o.includes(f))??o[0]??n[0],_=this.getItemValue(d);this.value=_;for(let f of n)f.hidden=f!==d;return d}cycle(){if(this.disabled)return;let n=this.getEnabledItems().map(d=>this.getItemValue(d)).filter(Boolean);if(!n.length)return;let o=G(n,this.value||void 0);o!==this.value&&(this.syncSelection(o),this.changeEvent.emit({value:this.value}))}onButtonClick(){this.cycle()}static{de()}};import{jsx as z}from"@ecopages/jsx/jsx-runtime";function Q(...e){return e.filter(Boolean).join(" ")}function Pe({id:e,children:t,class:n,disabled:o,selected:d,..._}){return z("span",{..._,class:Q("rui-cycle-toggle__item",n),"data-cycle-value":e,hidden:d===void 0?void 0:!d,"aria-disabled":o?"true":void 0,children:t})}function je({children:e,variant:t="filled",size:n="md",disabled:o,class:d,..._}){return z("button",{..._,type:"button",class:Q("rui-button","rui-cycle-toggle__button",`rui-button--${t}`,`rui-button--${n}`,d),disabled:o,"data-cycle-toggle-button":!0,children:e})}function Ke({children:e,variant:t,size:n,disabled:o,...d}){return z("rui-cycle-toggle",{...d,variant:t,size:n,disabled:o,children:z(je,{variant:t,size:n,disabled:o,children:e})})}import{jsx as c,jsxs as Y}from"@ecopages/jsx/jsx-runtime";var Ve={system:"System",light:"Light",dark:"Dark"},X={xmlns:"http://www.w3.org/2000/svg",width:16,height:16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":!0},We={system:Y("svg",{...X,children:[c("rect",{width:"20",height:"14",x:"2",y:"3",rx:"2"}),c("line",{x1:"8",x2:"16",y1:"21",y2:"21"}),c("line",{x1:"12",x2:"12",y1:"17",y2:"21"})]}),light:Y("svg",{...X,children:[c("circle",{cx:"12",cy:"12",r:"4"}),c("path",{d:"M12 2v2"}),c("path",{d:"M12 20v2"}),c("path",{d:"m4.93 4.93 1.41 1.41"}),c("path",{d:"m17.66 17.66 1.41 1.41"}),c("path",{d:"M2 12h2"}),c("path",{d:"M20 12h2"}),c("path",{d:"m6.34 17.66-1.41 1.41"}),c("path",{d:"m19.07 4.93-1.41 1.41"})]}),dark:c("svg",{...X,children:c("path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9"})})};function ke({preference:e}){return We[e]}function Re({preference:e}){return Ve[e]}function Ge({preference:e,showLabel:t=!0}){return Y("span",{class:"inline-flex items-center gap-inline","aria-label":t?void 0:Ve[e],children:[c(ke,{preference:e}),t?c(Re,{preference:e}):void 0]})}export{Ke as RuiCycleToggle,je as RuiCycleToggleButton,Se as RuiCycleToggleElement,Pe as RuiCycleToggleItem,Re as ThemeItemLabel,ke as ThemePreferenceIcon,Ge as ThemePreferenceItemContent,G as cycleValue};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/ui/cycle-toggle/cycle-toggle.script.tsx", "../../../../src/lib/cycle-value.ts", "../../../../src/components/ui/cycle-toggle/cycle-toggle.tsx", "../../../../src/lib/cx.ts", "../../../../src/components/ui/cycle-toggle/theme-preference-icons.tsx"],
4
- "sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_variant, _init_extra_variant, _init_size, _init_extra_size, _init_label, _init_extra_label, _init_disabled, _init_extra_disabled, _init_changeEvent, _init_extra_changeEvent;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { RadiantElement, customElement, event, onEvent, onUpdated, prop } from \"@ecopages/radiant\";\nimport { cycleValue } from \"@/lib/cycle-value\";\nconst ITEM_SELECTOR = \"[data-cycle-value]\";\nconst BUTTON_SELECTOR = \"button[data-cycle-toggle-button]\";\nlet _RuiCycleToggle;\nclass RuiCycleToggle extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_variant, _init_extra_variant, _init_size, _init_extra_size, _init_label, _init_extra_label, _init_disabled, _init_extra_disabled, _init_changeEvent, _init_extra_changeEvent, _initProto],\n c: [_RuiCycleToggle, _initClass]\n } = _applyDecs(this, [customElement(\"rui-cycle-toggle\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"value\"], [prop({\n type: String,\n reflect: true,\n defaultValue: \"filled\"\n }), 0, \"variant\"], [prop({\n type: String,\n reflect: true,\n defaultValue: \"md\"\n }), 0, \"size\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [onUpdated([\"value\", \"label\", \"disabled\", \"size\", \"variant\"]), 2, \"onPropsUpdated\"], [onEvent({\n selector: BUTTON_SELECTOR,\n type: \"click\"\n }), 2, \"onButtonClick\"]], 0, void 0, RadiantElement));\n }\n value = (_initProto(this), _init_value(this));\n variant = (_init_extra_value(this), _init_variant(this));\n size = (_init_extra_variant(this), _init_size(this));\n label = (_init_extra_size(this), _init_label(this));\n disabled = (_init_extra_label(this), _init_disabled(this));\n changeEvent = (_init_extra_disabled(this), _init_changeEvent(this));\n childObserver = (_init_extra_changeEvent(this), null);\n connectedCallback() {\n super.connectedCallback();\n this.childObserver = new MutationObserver(() => this.resync());\n this.childObserver.observe(this, {\n childList: true,\n subtree: true\n });\n }\n onConnected() {\n this.resync();\n }\n disconnectedCallback() {\n this.childObserver?.disconnect();\n this.childObserver = null;\n super.disconnectedCallback();\n }\n onPropsUpdated() {\n this.resync();\n }\n /** Re-applies button labeling and the visible cycle item from the current `value`. */\n resync() {\n const selected = this.syncSelection(this.value || this.getItemValue(this.getEnabledItems()[0]) || \"\");\n this.syncButtonPresentation();\n this.syncButtonLabel(selected);\n }\n getItems() {\n return Array.from(this.querySelectorAll(ITEM_SELECTOR));\n }\n getEnabledItems() {\n return this.getItems().filter(item => item.getAttribute(\"aria-disabled\") !== \"true\");\n }\n getItemValue(item) {\n if (!item) return \"\";\n return item.dataset.cycleValue ?? \"\";\n }\n syncButtonLabel(selected) {\n const button = this.querySelector(BUTTON_SELECTOR);\n if (!button) return;\n const selectedLabel = selected?.querySelector(\"[aria-label]\")?.ariaLabel ?? selected?.textContent?.trim();\n if (!this.label || !selectedLabel) {\n button.removeAttribute(\"aria-label\");\n return;\n }\n button.setAttribute(\"aria-label\", `${this.label}: ${selectedLabel}`);\n }\n syncButtonPresentation() {\n const button = this.querySelector(BUTTON_SELECTOR);\n if (!button) return;\n button.disabled = this.disabled;\n for (const className of Array.from(button.classList)) {\n if (className.startsWith(\"rui-button--\")) button.classList.remove(className);\n }\n button.classList.add(`rui-button--${this.variant}`, `rui-button--${this.size}`);\n }\n syncSelection(nextValue) {\n const items = this.getItems();\n if (!items.length) return void 0;\n const enabled = this.getEnabledItems();\n const selected = items.find(item => this.getItemValue(item) === nextValue && enabled.includes(item)) ?? enabled[0] ?? items[0];\n const selectedValue = this.getItemValue(selected);\n this.value = selectedValue;\n for (const item of items) {\n item.hidden = item !== selected;\n }\n return selected;\n }\n cycle() {\n if (this.disabled) return;\n const enabled = this.getEnabledItems();\n const values = enabled.map(item => this.getItemValue(item)).filter(Boolean);\n if (!values.length) return;\n const next = cycleValue(values, this.value || void 0);\n if (next === this.value) return;\n this.syncSelection(next);\n this.changeEvent.emit({\n value: this.value\n });\n }\n onButtonClick() {\n this.cycle();\n }\n static {\n _initClass();\n }\n}\nexport { _RuiCycleToggle as RuiCycleToggle };", "export function cycleValue(values, current) {\n if (values.length === 0) {\n throw new RangeError(\"cycleValue requires at least one value\");\n }\n const index = current === void 0 ? -1 : values.indexOf(current);\n if (index === -1) {\n return values[0];\n }\n return values[(index + 1) % values.length];\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport \"./cycle-toggle.script\";\nexport function RuiCycleToggleItem({\n id,\n children,\n class: className,\n disabled,\n selected,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"span\", {\n ...props,\n class: cx(\"rui-cycle-toggle__item\", className),\n \"data-cycle-value\": id,\n hidden: selected === void 0 ? void 0 : !selected,\n \"aria-disabled\": disabled ? \"true\" : void 0,\n children\n });\n}\nexport function RuiCycleToggleButton({\n children,\n variant = \"filled\",\n size = \"md\",\n disabled,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"button\", {\n ...props,\n type: \"button\",\n class: cx(\"rui-button\", \"rui-cycle-toggle__button\", `rui-button--${variant}`, `rui-button--${size}`, className),\n disabled,\n \"data-cycle-toggle-button\": true,\n children\n });\n}\nexport function RuiCycleToggle({\n children,\n variant,\n size,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-cycle-toggle\", {\n ...props,\n variant,\n size,\n disabled,\n children: /* @__PURE__ */jsx(RuiCycleToggleButton, {\n variant,\n size,\n disabled,\n children\n })\n });\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nconst themeLabels = {\n system: \"System\",\n light: \"Light\",\n dark: \"Dark\"\n};\nconst lucideIconProps = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": 2,\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": true\n};\nconst themeIcons = {\n system: /* @__PURE__ */jsxs(\"svg\", {\n ...lucideIconProps,\n children: [/* @__PURE__ */jsx(\"rect\", {\n width: \"20\",\n height: \"14\",\n x: \"2\",\n y: \"3\",\n rx: \"2\"\n }), /* @__PURE__ */jsx(\"line\", {\n x1: \"8\",\n x2: \"16\",\n y1: \"21\",\n y2: \"21\"\n }), /* @__PURE__ */jsx(\"line\", {\n x1: \"12\",\n x2: \"12\",\n y1: \"17\",\n y2: \"21\"\n })]\n }),\n light: /* @__PURE__ */jsxs(\"svg\", {\n ...lucideIconProps,\n children: [/* @__PURE__ */jsx(\"circle\", {\n cx: \"12\",\n cy: \"12\",\n r: \"4\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"M12 2v2\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"M12 20v2\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"m4.93 4.93 1.41 1.41\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"m17.66 17.66 1.41 1.41\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"M2 12h2\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"M20 12h2\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"m6.34 17.66-1.41 1.41\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"m19.07 4.93-1.41 1.41\"\n })]\n }),\n dark: /* @__PURE__ */jsx(\"svg\", {\n ...lucideIconProps,\n children: /* @__PURE__ */jsx(\"path\", {\n d: \"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9\"\n })\n })\n};\nexport function ThemePreferenceIcon({\n preference\n}) {\n return themeIcons[preference];\n}\nexport function ThemeItemLabel({\n preference\n}) {\n return themeLabels[preference];\n}\nexport function ThemePreferenceItemContent({\n preference,\n showLabel = true\n}) {\n return /* @__PURE__ */jsxs(\"span\", {\n class: \"inline-flex items-center gap-inline\",\n \"aria-label\": showLabel ? void 0 : themeLabels[preference],\n children: [/* @__PURE__ */jsx(ThemePreferenceIcon, {\n preference\n }), showLabel ? /* @__PURE__ */jsx(ThemeItemLabel, {\n preference\n }) : void 0]\n });\n}"],
5
- "mappings": "AAMA,OAAS,kBAAAA,GAAgB,iBAAAC,GAAe,SAAAC,GAAO,WAAAC,GAAS,aAAAC,GAAW,QAAAC,MAAY,oBCNxE,SAASC,EAAWC,EAAQC,EAAS,CAC1C,GAAID,EAAO,SAAW,EACpB,MAAM,IAAI,WAAW,wCAAwC,EAE/D,IAAME,EAAQD,IAAY,OAAS,GAAKD,EAAO,QAAQC,CAAO,EAC9D,OAAIC,IAAU,GACLF,EAAO,CAAC,EAEVA,GAAQE,EAAQ,GAAKF,EAAO,MAAM,CAC3C,CDTA,IAAIG,GAAYC,GAAYC,GAAaC,GAAmBC,GAAeC,GAAqBC,GAAYC,GAAkBC,GAAaC,GAAmBC,GAAgBC,GAAsBC,GAAmBC,GACvN,SAASC,GAAW,EAAG,EAAG,EAAGC,EAAGC,EAAGC,EAAG,CAAE,IAAIC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAI,OAAO,UAAY,OAAO,IAAI,iBAAiB,EAAGC,EAAI,OAAO,eAAgBC,EAAI,OAAO,OAAQC,EAAI,CAACD,EAAE,IAAI,EAAGA,EAAE,IAAI,CAAC,EAAGE,EAAI,EAAE,OAAQ,SAASC,EAAEC,EAAGC,EAAGjB,EAAG,CAAE,OAAO,SAAUC,EAAGC,EAAG,CAAEe,IAAMf,EAAID,EAAGA,EAAI,GAAI,QAASE,EAAI,EAAGA,EAAIa,EAAE,OAAQb,IAAKD,EAAIc,EAAEb,CAAC,EAAE,MAAMF,EAAGD,EAAI,CAACE,CAAC,EAAI,CAAC,CAAC,EAAG,OAAOF,EAAIE,EAAID,CAAG,CAAG,CAAE,SAASiB,EAAEC,EAAGH,EAAGC,EAAG,EAAG,CAAE,GAAkB,OAAOE,GAArB,aAA2B,GAAgBA,IAAX,QAAe,MAAM,IAAI,UAAUH,EAAI,UAAYC,GAAK,MAAQ,eAAiB,EAAI,GAAK,gBAAgB,EAAG,OAAOE,CAAG,CAAE,SAASC,GAASD,EAAGH,EAAGC,EAAG,EAAGhB,EAAGC,EAAGG,EAAGC,EAAGC,EAAGC,EAAGC,GAAG,CAAE,SAASC,EAAES,EAAG,CAAE,GAAI,CAACV,GAAEU,CAAC,EAAG,MAAM,IAAI,UAAU,qDAAqD,CAAG,CAAE,IAAIP,EAAI,CAAC,EAAE,OAAOI,EAAE,CAAC,CAAC,EAAGF,GAAIE,EAAE,CAAC,EAAGK,EAAI,CAAChB,EAAGiB,EAAUrB,IAAN,EAASsB,GAAUtB,IAAN,EAASuB,GAAUvB,IAAN,EAASwB,EAAUxB,IAAN,EAAS,SAASyB,EAAEV,EAAGC,EAAGjB,GAAG,CAAE,OAAO,SAAUC,EAAGC,GAAG,CAAE,OAAOe,IAAMf,GAAID,EAAGA,EAAIkB,GAAInB,IAAKA,GAAEC,CAAC,EAAG0B,EAAEX,CAAC,EAAE,KAAKf,EAAGC,EAAC,CAAG,CAAG,CAAE,GAAI,CAACmB,EAAG,CAAE,IAAIM,EAAI,CAAC,EAAGC,EAAI,CAAC,EAAGC,EAAIN,GAAI,MAAQC,IAAKF,EAAI,MAAQ,QAAS,GAAIf,GAAKC,GAAKc,EAAIK,EAAI,CAAE,IAAKG,GAAiB,UAAY,CAAE,OAAOhB,GAAE,IAAI,CAAG,EAAG,EAAG,KAAK,EAAG,IAAK,SAAUK,EAAG,CAAEH,EAAE,CAAC,EAAE,KAAMG,CAAC,CAAG,CAAE,EAAIQ,EAAEE,CAAC,EAAIf,GAAGN,GAAKsB,GAAiBH,EAAEE,CAAC,EAAG,EAAGJ,EAAI,GAAKI,CAAC,GAAKrB,IAAMmB,EAAI,OAAO,yBAAyBR,EAAG,CAAC,GAAI,CAACX,GAAK,CAACD,EAAG,CAAE,IAAKH,EAAIS,EAAE,CAACP,CAAC,EAAE,CAAC,KAAaF,EAAIH,KAAX,EAAe,MAAM,MAAM,+CAAiD0B,EAAEE,CAAC,EAAE,KAAO,wBAAwB,EAAGhB,EAAE,CAACP,CAAC,EAAE,CAAC,EAAIL,EAAI,EAAI,EAAIA,CAAG,CAAE,CAAE,QAAS8B,EAAIZ,EAAGa,EAAIpB,EAAE,OAAS,EAAGoB,GAAK,EAAGA,GAAKf,EAAI,EAAI,EAAG,CAAE,IAAIgB,GAAIf,EAAEN,EAAEoB,CAAC,EAAG,cAAe,KAAM,EAAE,EAAGE,GAAIjB,EAAIL,EAAEoB,EAAI,CAAC,EAAI,OAAQG,EAAI,CAAC,EAAGC,EAAI,CAAE,KAAM,CAAC,QAAS,WAAY,SAAU,SAAU,SAAU,OAAO,EAAEnC,CAAC,EAAG,KAAM,EAAG,SAAUE,EAAG,eAAgB,SAAUgB,EAAGH,EAAG,CAAE,GAAIG,EAAE,EAAG,MAAM,IAAI,UAAU,gEAAgE,EAAGD,EAAEF,EAAG,iBAAkB,KAAM,EAAE,EAAGd,EAAE,KAAKc,CAAC,CAAG,EAAE,KAAK,KAAMmB,CAAC,CAAE,EAAG,GAAId,EAAGjB,EAAI6B,GAAE,KAAKC,GAAGH,EAAGK,CAAC,EAAGD,EAAE,EAAI,EAAGjB,EAAEd,EAAG,mBAAoB,QAAQ,IAAM2B,EAAI3B,WAAYgC,EAAE,OAAS9B,EAAG8B,EAAE,QAAU7B,EAAGH,EAAIgC,EAAE,OAAS,CAAE,IAAK7B,EAAIE,GAAE,KAAK,EAAI,SAAUU,EAAG,CAAE,OAAO,KAAKA,CAAG,CAAE,EAAGK,KAAMpB,EAAE,IAAMG,EAAIkB,EAAI,SAAUN,EAAG,CAAE,OAAOT,EAAES,CAAC,EAAGQ,EAAE,KAAO,EAAID,EAAE,MAAO,EAAGhB,CAAC,EAAI,SAAUS,EAAG,CAAE,OAAOA,EAAE,CAAC,CAAG,GAAIM,GAAKF,KAAMnB,EAAE,IAAMG,EAAImB,EAAE,MAAO,EAAGhB,CAAC,EAAI,SAAUS,EAAGH,EAAG,CAAEG,EAAE,CAAC,EAAIH,CAAG,GAAIe,EAAIE,GAAE,KAAKC,GAAGZ,EAAI,CAAE,IAAKK,EAAE,IAAK,IAAKA,EAAE,GAAI,EAAIA,EAAEE,CAAC,EAAGO,CAAC,EAAGD,EAAE,EAAI,EAAGb,GAAK,GAAgB,OAAOS,GAAnB,UAAwBA,GAAI3B,EAAIc,EAAEa,EAAE,IAAK,cAAc,KAAOJ,EAAE,IAAMvB,IAAKA,EAAIc,EAAEa,EAAE,IAAK,cAAc,KAAOJ,EAAE,IAAMvB,IAAKA,EAAIc,EAAEa,EAAE,KAAM,eAAe,IAAMH,EAAE,QAAQxB,CAAC,UAAsB2B,IAAX,OAAc,MAAM,IAAI,UAAU,0FAA0F,OAAUb,EAAEa,GAAIvB,EAAI,QAAU,UAAY,cAAe,QAAQ,IAAMA,EAAIoB,EAAE,QAAQG,CAAC,EAAIJ,EAAEE,CAAC,EAAIE,EAAI,CAAE,OAAO9B,EAAI,GAAKI,EAAE,KAAKU,EAAEa,EAAGtB,EAAG,CAAC,EAAGS,EAAEb,EAAGI,EAAG,CAAC,CAAC,EAAGE,GAAKa,IAAMd,EAAIe,EAAIjB,EAAE,OAAO,GAAI,EAAGqB,EAAE,MAAOpB,CAAC,EAAGoB,EAAE,MAAOpB,CAAC,CAAC,EAAID,EAAE,KAAKoB,EAAIE,EAAEE,CAAC,EAAIX,EAAE,KAAK,KAAKS,EAAEE,CAAC,CAAC,CAAC,EAAIlB,EAAEQ,EAAG,EAAGQ,CAAC,GAAII,CAAG,CAAE,SAASV,GAAEF,EAAG,CAAE,OAAOR,EAAEQ,EAAGT,EAAG,CAAE,aAAc,GAAI,WAAY,GAAI,MAAOP,CAAE,CAAC,CAAG,CAAE,OAAkBD,IAAX,SAAiBC,EAAID,EAAEQ,CAAC,GAAIP,EAAIS,EAAUT,GAAI,IAAQ,EAAGI,EAAI,CAAC,EAAGC,EAAI,SAAUW,EAAG,CAAEA,GAAKZ,EAAE,KAAKQ,EAAEI,CAAC,CAAC,CAAG,EAAGV,EAAI,SAAUO,EAAGhB,EAAG,CAAE,QAASE,EAAI,EAAGA,EAAI,EAAE,OAAQA,IAAK,CAAE,IAAIC,EAAI,EAAED,CAAC,EAAGE,EAAID,EAAE,CAAC,EAAGK,EAAI,EAAIJ,EAAG,IAAK,EAAIA,IAAMY,GAAK,CAACR,GAAKR,EAAG,CAAE,IAAIS,EAAIN,EAAE,CAAC,EAAGO,EAAI,CAAC,CAACP,EAAE,CAAC,EAAGQ,EAAI,GAAKP,EAAGgB,GAASJ,EAAI,EAAI,EAAE,UAAWb,EAAGQ,EAAGD,EAAI,IAAMD,EAAI4B,GAAe5B,CAAC,EAAGD,EAAGA,EAAI,EAAI,CAAC,EAAIQ,EAAIV,EAAIA,GAAK,CAAC,EAAID,EAAIA,GAAK,CAAC,EAAGE,EAAG,CAAC,CAACS,EAAGN,EAAGV,EAAGgB,GAAKN,EAAI,SAAUM,EAAG,CAAE,OAAOsB,GAAYtB,CAAC,IAAM,CAAG,EAAIf,CAAC,CAAG,CAAE,CAAE,EAAGQ,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGD,EAAEH,CAAC,EAAGG,EAAEF,CAAC,EAAGF,EAAIG,EAAGO,GAAKO,GAAE,CAAC,EAAG,CAAE,EAAGjB,EAAG,IAAI,GAAI,CAAE,IAAIa,EAAI,CAAC,EAAG,OAAOH,GAAK,CAACO,GAAE,EAAID,GAAS,EAAG,CAAC,CAAC,EAAGpB,EAAG,EAAE,KAAM,EAAGiB,CAAC,CAAC,EAAGF,EAAEE,EAAG,CAAC,CAAC,CAAG,CAAE,CAAG,CACn/G,SAASoB,GAAerB,EAAG,CAAE,IAAId,EAAIqC,GAAavB,EAAG,QAAQ,EAAG,OAAmB,OAAOd,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASqC,GAAavB,EAAGhB,EAAG,CAAE,GAAgB,OAAOgB,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAIG,EAAIH,EAAE,OAAO,WAAW,EAAG,GAAeG,IAAX,OAAc,CAAE,IAAIjB,EAAIiB,EAAE,KAAKH,EAAGhB,GAAK,SAAS,EAAG,GAAgB,OAAOE,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBF,IAAb,SAAiB,OAAS,QAAQgB,CAAC,CAAG,CACvT,SAASc,GAAiB,EAAG,EAAG,EAAG,CAAc,OAAO,GAAnB,WAAyB,GAAK,EAAI,EAAE,aAAe,IAAM,EAAI,IAAM,IAAK,GAAI,CAAE,OAAO,eAAe,EAAG,OAAQ,CAAE,aAAc,GAAI,MAAO,EAAI,EAAI,IAAM,EAAI,CAAE,CAAC,CAAG,MAAY,CAAC,CAAE,OAAO,CAAG,CAChO,SAASQ,GAAY,EAAG,CAAE,GAAI,OAAO,CAAC,IAAM,EAAG,MAAM,UAAU,qDAAgE,IAAT,KAAa,OAAO,EAAI,OAAO,EAAG,OAAO,CAAG,CAGlK,IAAME,GAAgB,qBAChBC,EAAkB,mCACpBC,GACEC,GAAN,cAA6BC,EAAe,CAC1C,MAAO,EACJ,CACC,EAAG,CAACzD,GAAaC,GAAmBC,GAAeC,GAAqBC,GAAYC,GAAkBC,GAAaC,GAAmBC,GAAgBC,GAAsBC,GAAmBC,GAAyBb,EAAU,EAClO,EAAG,CAACyD,GAAiBxD,EAAU,CACjC,EAAIa,GAAW,KAAM,CAAC8C,GAAc,kBAAkB,CAAC,EAAG,CAAC,CAACC,EAAK,CAC/D,KAAM,OACN,QAAS,GACT,aAAc,EAChB,CAAC,EAAG,EAAG,OAAO,EAAG,CAACA,EAAK,CACrB,KAAM,OACN,QAAS,GACT,aAAc,QAChB,CAAC,EAAG,EAAG,SAAS,EAAG,CAACA,EAAK,CACvB,KAAM,OACN,QAAS,GACT,aAAc,IAChB,CAAC,EAAG,EAAG,MAAM,EAAG,CAACA,EAAK,CACpB,KAAM,OACN,aAAc,EAChB,CAAC,EAAG,EAAG,OAAO,EAAG,CAACA,EAAK,CACrB,KAAM,QACN,QAAS,GACT,aAAc,EAChB,CAAC,EAAG,EAAG,UAAU,EAAG,CAACC,GAAM,CACzB,KAAM,aACN,QAAS,GACT,SAAU,EACZ,CAAC,EAAG,EAAG,aAAa,EAAG,CAACC,GAAU,CAAC,QAAS,QAAS,WAAY,OAAQ,SAAS,CAAC,EAAG,EAAG,gBAAgB,EAAG,CAACC,GAAQ,CACnH,SAAUR,EACV,KAAM,OACR,CAAC,EAAG,EAAG,eAAe,CAAC,EAAG,EAAG,OAAQG,EAAc,EACrD,CACA,OAAS3D,GAAW,IAAI,EAAGE,GAAY,IAAI,GAC3C,SAAWC,GAAkB,IAAI,EAAGC,GAAc,IAAI,GACtD,MAAQC,GAAoB,IAAI,EAAGC,GAAW,IAAI,GAClD,OAASC,GAAiB,IAAI,EAAGC,GAAY,IAAI,GACjD,UAAYC,GAAkB,IAAI,EAAGC,GAAe,IAAI,GACxD,aAAeC,GAAqB,IAAI,EAAGC,GAAkB,IAAI,GACjE,eAAiBC,GAAwB,IAAI,EAAG,MAChD,mBAAoB,CAClB,MAAM,kBAAkB,EACxB,KAAK,cAAgB,IAAI,iBAAiB,IAAM,KAAK,OAAO,CAAC,EAC7D,KAAK,cAAc,QAAQ,KAAM,CAC/B,UAAW,GACX,QAAS,EACX,CAAC,CACH,CACA,aAAc,CACZ,KAAK,OAAO,CACd,CACA,sBAAuB,CACrB,KAAK,eAAe,WAAW,EAC/B,KAAK,cAAgB,KACrB,MAAM,qBAAqB,CAC7B,CACA,gBAAiB,CACf,KAAK,OAAO,CACd,CAEA,QAAS,CACP,IAAMoD,EAAW,KAAK,cAAc,KAAK,OAAS,KAAK,aAAa,KAAK,gBAAgB,EAAE,CAAC,CAAC,GAAK,EAAE,EACpG,KAAK,uBAAuB,EAC5B,KAAK,gBAAgBA,CAAQ,CAC/B,CACA,UAAW,CACT,OAAO,MAAM,KAAK,KAAK,iBAAiBV,EAAa,CAAC,CACxD,CACA,iBAAkB,CAChB,OAAO,KAAK,SAAS,EAAE,OAAOW,GAAQA,EAAK,aAAa,eAAe,IAAM,MAAM,CACrF,CACA,aAAaA,EAAM,CACjB,OAAKA,EACEA,EAAK,QAAQ,YAAc,GADhB,EAEpB,CACA,gBAAgBD,EAAU,CACxB,IAAME,EAAS,KAAK,cAAcX,CAAe,EACjD,GAAI,CAACW,EAAQ,OACb,IAAMC,EAAgBH,GAAU,cAAc,cAAc,GAAG,WAAaA,GAAU,aAAa,KAAK,EACxG,GAAI,CAAC,KAAK,OAAS,CAACG,EAAe,CACjCD,EAAO,gBAAgB,YAAY,EACnC,MACF,CACAA,EAAO,aAAa,aAAc,GAAG,KAAK,KAAK,KAAKC,CAAa,EAAE,CACrE,CACA,wBAAyB,CACvB,IAAMD,EAAS,KAAK,cAAcX,CAAe,EACjD,GAAKW,EACL,CAAAA,EAAO,SAAW,KAAK,SACvB,QAAWE,KAAa,MAAM,KAAKF,EAAO,SAAS,EAC7CE,EAAU,WAAW,cAAc,GAAGF,EAAO,UAAU,OAAOE,CAAS,EAE7EF,EAAO,UAAU,IAAI,eAAe,KAAK,OAAO,GAAI,eAAe,KAAK,IAAI,EAAE,EAChF,CACA,cAAcG,EAAW,CACvB,IAAMC,EAAQ,KAAK,SAAS,EAC5B,GAAI,CAACA,EAAM,OAAQ,OACnB,IAAMC,EAAU,KAAK,gBAAgB,EAC/BP,EAAWM,EAAM,KAAKL,GAAQ,KAAK,aAAaA,CAAI,IAAMI,GAAaE,EAAQ,SAASN,CAAI,CAAC,GAAKM,EAAQ,CAAC,GAAKD,EAAM,CAAC,EACvHE,EAAgB,KAAK,aAAaR,CAAQ,EAChD,KAAK,MAAQQ,EACb,QAAWP,KAAQK,EACjBL,EAAK,OAASA,IAASD,EAEzB,OAAOA,CACT,CACA,OAAQ,CACN,GAAI,KAAK,SAAU,OAEnB,IAAMS,EADU,KAAK,gBAAgB,EACd,IAAIR,GAAQ,KAAK,aAAaA,CAAI,CAAC,EAAE,OAAO,OAAO,EAC1E,GAAI,CAACQ,EAAO,OAAQ,OACpB,IAAMC,EAAOC,EAAWF,EAAQ,KAAK,OAAS,MAAM,EAChDC,IAAS,KAAK,QAClB,KAAK,cAAcA,CAAI,EACvB,KAAK,YAAY,KAAK,CACpB,MAAO,KAAK,KACd,CAAC,EACH,CACA,eAAgB,CACd,KAAK,MAAM,CACb,CACA,MAAO,CACL1E,GAAW,CACb,CACF,EEvIA,OAAS,OAAA4E,MAAW,4BCAb,SAASC,KAAMC,EAAO,CAC3B,OAAOA,EAAM,OAAO,OAAO,EAAE,KAAK,GAAG,CACvC,CDCO,SAASC,GAAmB,CACjC,GAAAC,EACA,SAAAC,EACA,MAAOC,EACP,SAAAC,EACA,SAAAC,EACA,GAAGC,CACL,EAAG,CACD,OAAsBC,EAAI,OAAQ,CAChC,GAAGD,EACH,MAAOE,EAAG,yBAA0BL,CAAS,EAC7C,mBAAoBF,EACpB,OAAQI,IAAa,OAAS,OAAS,CAACA,EACxC,gBAAiBD,EAAW,OAAS,OACrC,SAAAF,CACF,CAAC,CACH,CACO,SAASO,GAAqB,CACnC,SAAAP,EACA,QAAAQ,EAAU,SACV,KAAAC,EAAO,KACP,SAAAP,EACA,MAAOD,EACP,GAAGG,CACL,EAAG,CACD,OAAsBC,EAAI,SAAU,CAClC,GAAGD,EACH,KAAM,SACN,MAAOE,EAAG,aAAc,2BAA4B,eAAeE,CAAO,GAAI,eAAeC,CAAI,GAAIR,CAAS,EAC9G,SAAAC,EACA,2BAA4B,GAC5B,SAAAF,CACF,CAAC,CACH,CACO,SAASU,GAAe,CAC7B,SAAAV,EACA,QAAAQ,EACA,KAAAC,EACA,SAAAP,EACA,GAAGE,CACL,EAAG,CACD,OAAsBC,EAAI,mBAAoB,CAC5C,GAAGD,EACH,QAAAI,EACA,KAAAC,EACA,SAAAP,EACA,SAAyBG,EAAIE,GAAsB,CACjD,QAAAC,EACA,KAAAC,EACA,SAAAP,EACA,SAAAF,CACF,CAAC,CACH,CAAC,CACH,CExDA,OAAS,OAAAW,EAAK,QAAAC,MAAY,4BAC1B,IAAMC,GAAc,CAClB,OAAQ,SACR,MAAO,QACP,KAAM,MACR,EACMC,EAAkB,CACtB,MAAO,6BACP,MAAO,GACP,OAAQ,GACR,QAAS,YACT,KAAM,OACN,OAAQ,eACR,eAAgB,EAChB,iBAAkB,QAClB,kBAAmB,QACnB,cAAe,EACjB,EACMC,GAAa,CACjB,OAAuBH,EAAK,MAAO,CACjC,GAAGE,EACH,SAAU,CAAgBH,EAAI,OAAQ,CACpC,MAAO,KACP,OAAQ,KACR,EAAG,IACH,EAAG,IACH,GAAI,GACN,CAAC,EAAkBA,EAAI,OAAQ,CAC7B,GAAI,IACJ,GAAI,KACJ,GAAI,KACJ,GAAI,IACN,CAAC,EAAkBA,EAAI,OAAQ,CAC7B,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,IACN,CAAC,CAAC,CACJ,CAAC,EACD,MAAsBC,EAAK,MAAO,CAChC,GAAGE,EACH,SAAU,CAAgBH,EAAI,SAAU,CACtC,GAAI,KACJ,GAAI,KACJ,EAAG,GACL,CAAC,EAAkBA,EAAI,OAAQ,CAC7B,EAAG,SACL,CAAC,EAAkBA,EAAI,OAAQ,CAC7B,EAAG,UACL,CAAC,EAAkBA,EAAI,OAAQ,CAC7B,EAAG,sBACL,CAAC,EAAkBA,EAAI,OAAQ,CAC7B,EAAG,wBACL,CAAC,EAAkBA,EAAI,OAAQ,CAC7B,EAAG,SACL,CAAC,EAAkBA,EAAI,OAAQ,CAC7B,EAAG,UACL,CAAC,EAAkBA,EAAI,OAAQ,CAC7B,EAAG,uBACL,CAAC,EAAkBA,EAAI,OAAQ,CAC7B,EAAG,uBACL,CAAC,CAAC,CACJ,CAAC,EACD,KAAqBA,EAAI,MAAO,CAC9B,GAAGG,EACH,SAAyBH,EAAI,OAAQ,CACnC,EAAG,mCACL,CAAC,CACH,CAAC,CACH,EACO,SAASK,GAAoB,CAClC,WAAAC,CACF,EAAG,CACD,OAAOF,GAAWE,CAAU,CAC9B,CACO,SAASC,GAAe,CAC7B,WAAAD,CACF,EAAG,CACD,OAAOJ,GAAYI,CAAU,CAC/B,CACO,SAASE,GAA2B,CACzC,WAAAF,EACA,UAAAG,EAAY,EACd,EAAG,CACD,OAAsBR,EAAK,OAAQ,CACjC,MAAO,sCACP,aAAcQ,EAAY,OAASP,GAAYI,CAAU,EACzD,SAAU,CAAgBN,EAAIK,GAAqB,CACjD,WAAAC,CACF,CAAC,EAAGG,EAA2BT,EAAIO,GAAgB,CACjD,WAAAD,CACF,CAAC,EAAI,MAAM,CACb,CAAC,CACH",
6
- "names": ["RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "cycleValue", "values", "current", "index", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_variant", "_init_extra_variant", "_init_size", "_init_extra_size", "_init_label", "_init_extra_label", "_init_disabled", "_init_extra_disabled", "_init_changeEvent", "_init_extra_changeEvent", "_applyDecs", "r", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "n", "b", "e", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "ITEM_SELECTOR", "BUTTON_SELECTOR", "_RuiCycleToggle", "RuiCycleToggle", "RadiantElement", "customElement", "prop", "event", "onUpdated", "onEvent", "selected", "item", "button", "selectedLabel", "className", "nextValue", "items", "enabled", "selectedValue", "values", "next", "cycleValue", "jsx", "cx", "parts", "RuiCycleToggleItem", "id", "children", "className", "disabled", "selected", "props", "jsx", "cx", "RuiCycleToggleButton", "variant", "size", "RuiCycleToggle", "jsx", "jsxs", "themeLabels", "lucideIconProps", "themeIcons", "ThemePreferenceIcon", "preference", "ThemeItemLabel", "ThemePreferenceItemContent", "showLabel"]
4
+ "sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_variant, _init_extra_variant, _init_size, _init_extra_size, _init_label, _init_extra_label, _init_disabled, _init_extra_disabled, _init_changeEvent, _init_extra_changeEvent;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { RadiantElement, bindTo, customElement, event, onEvent, onUpdated, prop } from \"@ecopages/radiant\";\nimport { cycleValue } from \"@/lib/cycle-value\";\nconst ITEM_SELECTOR = \"[data-cycle-value]\";\nconst BUTTON_SELECTOR = \"button[data-cycle-toggle-button]\";\nlet _RuiCycleToggle;\nclass RuiCycleToggle extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_variant, _init_extra_variant, _init_size, _init_extra_size, _init_label, _init_extra_label, _init_disabled, _init_extra_disabled, _init_changeEvent, _init_extra_changeEvent, _initProto],\n c: [_RuiCycleToggle, _initClass]\n } = _applyDecs(this, [customElement(\"rui-cycle-toggle\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"value\"], [prop({\n type: String,\n reflect: true,\n defaultValue: \"filled\"\n }), 0, \"variant\"], [prop({\n type: String,\n reflect: true,\n defaultValue: \"md\"\n }), 0, \"size\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [[prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), bindTo({\n selector: \"button[data-cycle-toggle-button]\",\n prop: \"disabled\"\n })], 0, \"disabled\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [onUpdated([\"value\", \"label\", \"disabled\", \"size\", \"variant\"]), 2, \"onPropsUpdated\"], [onEvent({\n selector: BUTTON_SELECTOR,\n type: \"click\"\n }), 2, \"onButtonClick\"]], 0, void 0, RadiantElement));\n }\n value = (_initProto(this), _init_value(this));\n variant = (_init_extra_value(this), _init_variant(this));\n size = (_init_extra_variant(this), _init_size(this));\n label = (_init_extra_size(this), _init_label(this));\n disabled = (_init_extra_label(this), _init_disabled(this));\n changeEvent = (_init_extra_disabled(this), _init_changeEvent(this));\n childObserver = (_init_extra_changeEvent(this), null);\n connectedCallback() {\n super.connectedCallback();\n this.childObserver = new MutationObserver(() => this.resync());\n this.childObserver.observe(this, {\n childList: true,\n subtree: true\n });\n }\n onConnected() {\n this.resync();\n }\n disconnectedCallback() {\n this.childObserver?.disconnect();\n this.childObserver = null;\n super.disconnectedCallback();\n }\n onPropsUpdated() {\n this.resync();\n }\n /** Re-applies button labeling and the visible cycle item from the current `value`. */\n resync() {\n const selected = this.syncSelection(this.value || this.getItemValue(this.getEnabledItems()[0]) || \"\");\n this.syncButtonPresentation();\n this.syncButtonLabel(selected);\n }\n getItems() {\n return Array.from(this.querySelectorAll(ITEM_SELECTOR));\n }\n getEnabledItems() {\n return this.getItems().filter(item => item.getAttribute(\"aria-disabled\") !== \"true\");\n }\n getItemValue(item) {\n if (!item) return \"\";\n return item.dataset.cycleValue ?? \"\";\n }\n syncButtonLabel(selected) {\n const button = this.querySelector(BUTTON_SELECTOR);\n if (!button) return;\n const selectedLabel = selected?.querySelector(\"[aria-label]\")?.ariaLabel ?? selected?.textContent?.trim();\n if (!this.label || !selectedLabel) {\n button.removeAttribute(\"aria-label\");\n return;\n }\n button.setAttribute(\"aria-label\", `${this.label}: ${selectedLabel}`);\n }\n syncButtonPresentation() {\n const button = this.querySelector(BUTTON_SELECTOR);\n if (!button) return;\n for (const className of Array.from(button.classList)) {\n if (className.startsWith(\"rui-button--\")) button.classList.remove(className);\n }\n button.classList.add(`rui-button--${this.variant}`, `rui-button--${this.size}`);\n }\n syncSelection(nextValue) {\n const items = this.getItems();\n if (!items.length) return void 0;\n const enabled = this.getEnabledItems();\n const selected = items.find(item => this.getItemValue(item) === nextValue && enabled.includes(item)) ?? enabled[0] ?? items[0];\n const selectedValue = this.getItemValue(selected);\n this.value = selectedValue;\n for (const item of items) {\n item.hidden = item !== selected;\n }\n return selected;\n }\n cycle() {\n if (this.disabled) return;\n const enabled = this.getEnabledItems();\n const values = enabled.map(item => this.getItemValue(item)).filter(Boolean);\n if (!values.length) return;\n const next = cycleValue(values, this.value || void 0);\n if (next === this.value) return;\n this.syncSelection(next);\n this.changeEvent.emit({\n value: this.value\n });\n }\n onButtonClick() {\n this.cycle();\n }\n static {\n _initClass();\n }\n}\nexport { _RuiCycleToggle as RuiCycleToggle };", "export function cycleValue(values, current) {\n if (values.length === 0) {\n throw new RangeError(\"cycleValue requires at least one value\");\n }\n const index = current === void 0 ? -1 : values.indexOf(current);\n if (index === -1) {\n return values[0];\n }\n return values[(index + 1) % values.length];\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport \"./cycle-toggle.script\";\nexport function RuiCycleToggleItem({\n id,\n children,\n class: className,\n disabled,\n selected,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"span\", {\n ...props,\n class: cx(\"rui-cycle-toggle__item\", className),\n \"data-cycle-value\": id,\n hidden: selected === void 0 ? void 0 : !selected,\n \"aria-disabled\": disabled ? \"true\" : void 0,\n children\n });\n}\nexport function RuiCycleToggleButton({\n children,\n variant = \"filled\",\n size = \"md\",\n disabled,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"button\", {\n ...props,\n type: \"button\",\n class: cx(\"rui-button\", \"rui-cycle-toggle__button\", `rui-button--${variant}`, `rui-button--${size}`, className),\n disabled,\n \"data-cycle-toggle-button\": true,\n children\n });\n}\nexport function RuiCycleToggle({\n children,\n variant,\n size,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-cycle-toggle\", {\n ...props,\n variant,\n size,\n disabled,\n children: /* @__PURE__ */jsx(RuiCycleToggleButton, {\n variant,\n size,\n disabled,\n children\n })\n });\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nconst themeLabels = {\n system: \"System\",\n light: \"Light\",\n dark: \"Dark\"\n};\nconst lucideIconProps = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": 2,\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": true\n};\nconst themeIcons = {\n system: /* @__PURE__ */jsxs(\"svg\", {\n ...lucideIconProps,\n children: [/* @__PURE__ */jsx(\"rect\", {\n width: \"20\",\n height: \"14\",\n x: \"2\",\n y: \"3\",\n rx: \"2\"\n }), /* @__PURE__ */jsx(\"line\", {\n x1: \"8\",\n x2: \"16\",\n y1: \"21\",\n y2: \"21\"\n }), /* @__PURE__ */jsx(\"line\", {\n x1: \"12\",\n x2: \"12\",\n y1: \"17\",\n y2: \"21\"\n })]\n }),\n light: /* @__PURE__ */jsxs(\"svg\", {\n ...lucideIconProps,\n children: [/* @__PURE__ */jsx(\"circle\", {\n cx: \"12\",\n cy: \"12\",\n r: \"4\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"M12 2v2\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"M12 20v2\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"m4.93 4.93 1.41 1.41\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"m17.66 17.66 1.41 1.41\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"M2 12h2\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"M20 12h2\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"m6.34 17.66-1.41 1.41\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"m19.07 4.93-1.41 1.41\"\n })]\n }),\n dark: /* @__PURE__ */jsx(\"svg\", {\n ...lucideIconProps,\n children: /* @__PURE__ */jsx(\"path\", {\n d: \"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9\"\n })\n })\n};\nexport function ThemePreferenceIcon({\n preference\n}) {\n return themeIcons[preference];\n}\nexport function ThemeItemLabel({\n preference\n}) {\n return themeLabels[preference];\n}\nexport function ThemePreferenceItemContent({\n preference,\n showLabel = true\n}) {\n return /* @__PURE__ */jsxs(\"span\", {\n class: \"inline-flex items-center gap-inline\",\n \"aria-label\": showLabel ? void 0 : themeLabels[preference],\n children: [/* @__PURE__ */jsx(ThemePreferenceIcon, {\n preference\n }), showLabel ? /* @__PURE__ */jsx(ThemeItemLabel, {\n preference\n }) : void 0]\n });\n}"],
5
+ "mappings": "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",
6
+ "names": ["RadiantElement", "bindTo", "customElement", "event", "onEvent", "onUpdated", "prop", "cycleValue", "values", "current", "index", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_variant", "_init_extra_variant", "_init_size", "_init_extra_size", "_init_label", "_init_extra_label", "_init_disabled", "_init_extra_disabled", "_init_changeEvent", "_init_extra_changeEvent", "_applyDecs", "r", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "n", "b", "e", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "ITEM_SELECTOR", "BUTTON_SELECTOR", "_RuiCycleToggle", "RuiCycleToggle", "RadiantElement", "customElement", "prop", "bindTo", "event", "onUpdated", "onEvent", "selected", "item", "button", "selectedLabel", "className", "nextValue", "items", "enabled", "selectedValue", "values", "next", "cycleValue", "jsx", "cx", "parts", "RuiCycleToggleItem", "id", "children", "className", "disabled", "selected", "props", "jsx", "cx", "RuiCycleToggleButton", "variant", "size", "RuiCycleToggle", "jsx", "jsxs", "themeLabels", "lucideIconProps", "themeIcons", "ThemePreferenceIcon", "preference", "ThemeItemLabel", "ThemePreferenceItemContent", "showLabel"]
7
7
  }
@@ -14,7 +14,7 @@ rui-date-field {
14
14
  .rui-date-field__group {
15
15
  display: flex;
16
16
  width: 100%;
17
- min-width: calc(var(--spacing, 0.25rem) * 40);
17
+ min-width: 0px;
18
18
  align-items: center;
19
19
  gap: var(--spacing-1, var(--space-1));
20
20
  border-radius: var(--radius-control, var(--radius-control));
@@ -35,28 +35,24 @@ rui-date-field {
35
35
  border-style: var(--tw-border-style);
36
36
  border-width: 0px;
37
37
  background-color: transparent;
38
- color: var(--color-on-background, var(--on-background));
38
+ padding: 0px;
39
39
  --tw-outline-style: none;
40
40
  outline-style: none;
41
- padding-inline: var(--space-control-x);
42
- padding-block: var(--space-control-y);
43
- font-size: var(--text-control, 0.875rem);
44
- font-variant-numeric: tabular-nums;
45
- }
46
- .rui-date-field__input::placeholder {
47
- color: var(--color-on-surface, var(--on-surface));
48
- opacity: var(--opacity-muted, var(--opacity-muted));
49
- }
50
- .rui-date-field__input:disabled {
51
- cursor: not-allowed;
52
- opacity: var(--opacity-disabled, var(--opacity-disabled));
53
- }
54
- .rui-date-field__input[aria-invalid='true'] {
55
- border-color: var(--color-error, var(--error));
56
41
  }
57
42
  .rui-date-field__popover {
43
+ box-sizing: border-box;
44
+ max-width: calc(100vw - 1rem);
45
+ min-width: 0px;
58
46
  padding: 0px;
59
47
  }
48
+ .rui-date-field__popover .rui-calendar {
49
+ width: auto;
50
+ max-width: 100%;
51
+ border-style: var(--tw-border-style);
52
+ border-width: 0px;
53
+ --tw-shadow: 0 0 #0000;
54
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
55
+ }
60
56
  .rui-date-field__popover[hidden] {
61
57
  display: none;
62
58
  }
@@ -1,25 +1,27 @@
1
1
  import type { JsxCustomElementAttributes, JsxElementProps } from '@ecopages/jsx';
2
2
  import { type RuiCalendarElement, type RuiCalendarProps } from '../calendar';
3
+ import { type RuiDateInputElement, type RuiDateInputProps } from '../date-input';
3
4
  import type { RuiDateField as RuiDateFieldElement, RuiDateFieldProps } from './date-field.script';
4
5
  import './date-field.script';
6
+ import '../date-input/date-input.script';
5
7
  export type RuiDateFieldControlProps = JsxElementProps<HTMLDivElement>;
6
- /** Bordered control row containing the date input and calendar toggle. */
8
+ /** Bordered control row containing the date segments and calendar toggle. */
7
9
  export declare function RuiDateFieldControl({ children, class: className, ...props }: RuiDateFieldControlProps): import("@ecopages/jsx").JsxRenderable;
8
- export type RuiDateFieldInputProps = JsxElementProps<HTMLInputElement>;
9
- /** Text input controlled by the date-field host. */
10
+ export type RuiDateFieldInputProps = JsxCustomElementAttributes<RuiDateInputElement, RuiDateInputProps>;
11
+ /** Nested `rui-date-input`. Stamps `[data-date-field-input]`. */
10
12
  export declare function RuiDateFieldInput({ class: className, ...props }: RuiDateFieldInputProps): import("@ecopages/jsx").JsxRenderable;
11
13
  export type RuiDateFieldToggleProps = JsxElementProps<HTMLButtonElement>;
12
- /** Toggle button for the date calendar. */
14
+ /** Calendar toggle. Stamps `[data-date-field-trigger]` and `data-ref="trigger"`. */
13
15
  export declare function RuiDateFieldToggle({ children, class: className, aria, ...props }: RuiDateFieldToggleProps): import("@ecopages/jsx").JsxRenderable;
14
16
  export type RuiDateFieldPopoverProps = JsxElementProps<HTMLDivElement>;
15
- /** Floating shell for a `RuiDateFieldCalendar`. */
17
+ /** Popup shell. Stamps `[data-date-field-popover]` and `data-ref="popover"`. */
16
18
  export declare function RuiDateFieldPopover({ children, class: className, ...props }: RuiDateFieldPopoverProps): import("@ecopages/jsx").JsxRenderable;
17
19
  export type RuiDateFieldCalendarProps = JsxCustomElementAttributes<RuiCalendarElement, RuiCalendarProps>;
18
- /** Calendar whose value and constraints are synchronized by the date-field host. */
20
+ /** Nested `rui-calendar`. Stamps `[data-date-field-calendar]`. */
19
21
  export declare function RuiDateFieldCalendar(props: RuiDateFieldCalendarProps): import("@ecopages/jsx").JsxRenderable;
20
22
  /**
21
- * Locale-aware date field with optional digit masking, flexible parsing, and a calendar popover.
23
+ * Locale-aware date field with segment editing and a calendar popover.
22
24
  *
23
25
  * Pair with `RuiLabel` / `RuiField` for labeling and validation.
24
26
  */
25
- export declare function RuiDateField({ children, ...props }: JsxCustomElementAttributes<RuiDateFieldElement, RuiDateFieldProps>): import("@ecopages/jsx").JsxRenderable;
27
+ export declare function RuiDateField(props: JsxCustomElementAttributes<RuiDateFieldElement, RuiDateFieldProps>): import("@ecopages/jsx").JsxRenderable;
@@ -1,6 +1,5 @@
1
1
  import { RadiantElement } from '@ecopages/radiant';
2
2
  import type { EventEmitter } from '@ecopages/radiant/tools/event-emitter';
3
- import type { DateDisplayStyle } from '@/lib/intl-date';
4
3
  export type RuiDateFieldProps = {
5
4
  value?: string;
6
5
  min?: string;
@@ -9,16 +8,8 @@ export type RuiDateFieldProps = {
9
8
  readOnly?: boolean;
10
9
  label?: string;
11
10
  name?: string;
12
- placeholder?: string;
13
11
  /** BCP 47 locale tag, or comma-separated fallback list (e.g. `en-US,en`). */
14
12
  locale?: string;
15
- /** How the committed value is shown when the field is not being edited. */
16
- dateStyle?: DateDisplayStyle;
17
- /**
18
- * When true (default), digits are guided by a locale mask while typing (`08/21/2002`).
19
- * When false, free text is accepted (`Aug 21, 2002`, `2022/08/22`, …) and parsed on blur.
20
- */
21
- masked?: boolean;
22
13
  /** Month grids shown in the calendar popover. @default 1 */
23
14
  visibleMonths?: number;
24
15
  };
@@ -26,38 +17,48 @@ export type RuiDateFieldChangeDetail = {
26
17
  value: string;
27
18
  };
28
19
  /**
29
- * `<rui-date-field>` — a locale-aware date text field powered by `Intl`.
20
+ * `<rui-date-field>` — locale-aware date segments with an optional calendar popup.
30
21
  *
31
- * While typing, optional digit masking follows the locale pattern from `formatToParts()`.
32
- * On blur, values are parsed flexibly (numeric, masked, or month names like "Aug 21, 2002")
33
- * and displayed with `dateStyle`. Canonical `value` is ISO `YYYY-MM-DD`.
22
+ * The custom element is a behavior host: it does not render the composed tree.
23
+ * Import the script and place light-DOM children that match the contract below,
24
+ * or use the `RuiDateField*` view helpers which stamp the same targets.
25
+ * `RuiDateField` supplies the default composition when it has no children.
34
26
  *
35
- * Compose the input, toggle, popover, and calendar with the `RuiDateField*`
36
- * view helpers. `RuiDateField` supplies that composition when it has no children.
27
+ * Canonical `value` is ISO `YYYY-MM-DD`.
37
28
  *
38
- * @see https://react-aria.adobe.com/DatePicker
29
+ * ## Light-DOM contract
39
30
  *
40
- * @element rui-date-field
31
+ * Required:
32
+ * - `[data-date-field-input]` — nested `rui-date-input`. Host syncs `value`, `name`,
33
+ * `locale`, `min`, `max`, `disabled`, and `read-only`.
34
+ * - `[data-date-field-trigger]` — calendar toggle (`data-ref="trigger"`). Host sets
35
+ * `aria-expanded` and `disabled`.
36
+ * - `[data-date-field-popover]` — popup shell (`data-ref="popover"`). Host sets `hidden`.
37
+ * - `[data-date-field-calendar]` — nested `rui-calendar`. Host syncs `selection-mode`,
38
+ * `visible-months`, `value`, `min`, `max`, `locale`, and `disabled`.
39
+ *
40
+ * Nested hosts:
41
+ * - `rui-date-input` at `[data-date-field-input]` — segment editor; listen for
42
+ * `rui-change` and `rui-form-reset` to keep the parent value aligned.
43
+ * - `rui-calendar` at `[data-date-field-calendar]` — parent queries day targets when the popup opens.
41
44
  *
45
+ * Do not set `aria-expanded` on the trigger — the host owns it.
46
+ *
47
+ * @see https://react-aria.adobe.com/DatePicker
48
+ * @element rui-date-field
42
49
  * @attr {string} value - Canonical ISO `YYYY-MM-DD` value. Default: `''`.
43
50
  * @attr {string} min - Earliest selectable ISO date. Default: `''`.
44
51
  * @attr {string} max - Latest selectable ISO date. Default: `''`.
45
52
  * @attr {boolean} disabled - Disable the field and calendar. Default: `false`.
46
53
  * @attr {boolean} read-only - Disable editing while keeping the value visible. Default: `false`.
47
54
  * @attr {string} label - Accessible name when there is no associated label. Default: `''`.
48
- * @attr {string} name - Native `name` for the underlying input. Default: `''`.
49
- * @attr {string} placeholder - Overrides the locale-derived placeholder. Default: `''`.
55
+ * @attr {string} name - Form field name on the nested `rui-date-input`. Default: `''`.
50
56
  * @attr {string} locale - BCP 47 locale tag, or comma-separated fallback list. Default: `''`.
51
- * @attr {string} date-style - How the committed value is displayed when not editing. Default: `medium`.
52
- * @attr {boolean} masked - Guide digits with a locale mask while typing. Default: `true`.
53
- * @attr {number} visible-months - Month grids shown in the calendar popover. Default: `1`.
54
- *
57
+ * @attr {number} visible-months - Month grids in the popover (adapts to 1 on screens under 640px when greater than 1). Default: `1`.
55
58
  * @fires rui-change - Emitted when a valid date is committed (typing or calendar pick).
56
59
  *
57
- * @cssclass rui-date-field - Root surface.
58
- * @cssclass rui-date-field__group - Bordered control-height row wrapping input and toggle.
59
- * @cssclass rui-date-field__input - The masked / formatted text input.
60
- * @cssclass rui-date-field__popover - Calendar popup shell (`rui-popover` / `rui-floating`).
60
+ * @remarks
61
+ * BEM classes live on the view helpers; the host never queries them.
61
62
  */
62
63
  export declare class RuiDateField extends RadiantElement {
63
64
  value: string;
@@ -67,51 +68,33 @@ export declare class RuiDateField extends RadiantElement {
67
68
  readOnly: boolean;
68
69
  label: string;
69
70
  name: string;
70
- placeholder: string;
71
71
  locale: string;
72
- dateStyle: DateDisplayStyle;
73
- masked: boolean;
74
72
  visibleMonths: number;
75
73
  changeEvent: EventEmitter<RuiDateFieldChangeDetail>;
76
- displayValue: string;
77
- editing: boolean;
78
74
  open: boolean;
79
75
  private readonly uid;
80
- private popoverController;
81
- private suppressPopoverDismiss;
76
+ private readonly calendarPopover;
77
+ private disposeMobileLayoutListener;
82
78
  popoverTarget: HTMLElement;
79
+ private readonly onMediaChange;
83
80
  private get isoValue();
84
- private get resolvedLocale();
85
81
  private get inputId();
86
- private get resolvedPlaceholder();
87
- private getInput;
82
+ private getDateInput;
88
83
  private getToggle;
89
84
  private getCalendar;
90
85
  private syncLabel;
91
86
  private syncInput;
92
87
  private syncToggle;
93
- private syncCalendar;
94
- private formatForDisplay;
95
- private formatForEditing;
96
- private syncDisplayValue;
97
- private isIsoAllowed;
98
88
  private commitValue;
99
- private parseAndCommit;
100
- private handleMaskedInput;
89
+ private syncCalendar;
101
90
  private initialize;
102
91
  private setOpen;
103
- /** Focus the calendar's roving day, falling back to its first available day. */
104
- private focusCalendarDay;
105
- private ensurePopoverController;
106
- private syncPopoverPosition;
107
92
  protected onConnected(): void;
108
93
  disconnectedCallback(): void;
109
94
  onPropsUpdated(): void;
110
95
  onOpenUpdated(): void;
111
- onInputFocus(): void;
112
- onInput(event: Event): void;
113
- onInputChange(): void;
114
- onInputKeydown(event: KeyboardEvent): void;
96
+ onDateInputChange(event: Event): void;
97
+ onDateInputReset(): void;
115
98
  onRootFocusOut(event: FocusEvent): void;
116
99
  onTriggerPointerDown(): void;
117
100
  onTriggerClick(): void;