@ecopages/radiant-ui 0.1.0-beta.7 → 0.1.0-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/README.md +1 -1
  2. package/dist/components/ui/alert/alert.css +88 -50
  3. package/dist/components/ui/alert/alert.d.ts +43 -5
  4. package/dist/components/ui/alert/alert.script.d.ts +51 -4
  5. package/dist/components/ui/alert/index.d.ts +2 -2
  6. package/dist/components/ui/alert/index.js +1 -1
  7. package/dist/components/ui/alert/index.js.map +4 -4
  8. package/dist/components/ui/autocomplete/autocomplete.css +4 -4
  9. package/dist/components/ui/autocomplete/autocomplete.d.ts +15 -5
  10. package/dist/components/ui/autocomplete/autocomplete.script.d.ts +9 -0
  11. package/dist/components/ui/autocomplete/index.js +1 -1
  12. package/dist/components/ui/autocomplete/index.js.map +4 -4
  13. package/dist/components/ui/avatar/avatar.d.ts +15 -1
  14. package/dist/components/ui/avatar/index.js +1 -1
  15. package/dist/components/ui/avatar/index.js.map +4 -4
  16. package/dist/components/ui/breadcrumb/breadcrumb.d.ts +32 -6
  17. package/dist/components/ui/breadcrumb/index.js +1 -1
  18. package/dist/components/ui/breadcrumb/index.js.map +4 -4
  19. package/dist/{styles/components → components/ui/button}/button.css +45 -31
  20. package/dist/components/ui/button/button.d.ts +21 -4
  21. package/dist/components/ui/button-group/button-group.d.ts +7 -1
  22. package/dist/components/ui/button-group/index.js +1 -1
  23. package/dist/components/ui/button-group/index.js.map +4 -4
  24. package/dist/components/ui/calendar/calendar.css +7 -7
  25. package/dist/components/ui/calendar/calendar.d.ts +3 -2
  26. package/dist/components/ui/calendar/calendar.script.d.ts +39 -1
  27. package/dist/components/ui/calendar/index.js +1 -1
  28. package/dist/components/ui/calendar/index.js.map +4 -4
  29. package/dist/components/ui/carousel/carousel.d.ts +32 -6
  30. package/dist/components/ui/carousel/carousel.script.d.ts +44 -0
  31. package/dist/components/ui/carousel/index.js +1 -1
  32. package/dist/components/ui/carousel/index.js.map +4 -4
  33. package/dist/components/ui/checkbox/checkbox.css +1 -1
  34. package/dist/components/ui/checkbox/checkbox.d.ts +3 -2
  35. package/dist/components/ui/checkbox/checkbox.script.d.ts +4 -0
  36. package/dist/components/ui/checkbox/index.js +1 -1
  37. package/dist/components/ui/checkbox/index.js.map +4 -4
  38. package/dist/components/ui/chip/chip.d.ts +8 -0
  39. package/dist/components/ui/chip/index.js +1 -1
  40. package/dist/components/ui/chip/index.js.map +4 -4
  41. package/dist/components/ui/chip-list/chip-list.d.ts +10 -2
  42. package/dist/components/ui/chip-list/index.js +1 -1
  43. package/dist/components/ui/chip-list/index.js.map +4 -4
  44. package/dist/components/ui/combobox/combobox.css +39 -1
  45. package/dist/components/ui/combobox/combobox.d.ts +15 -5
  46. package/dist/components/ui/combobox/combobox.script.d.ts +13 -1
  47. package/dist/components/ui/combobox/index.js +1 -1
  48. package/dist/components/ui/combobox/index.js.map +4 -4
  49. package/dist/components/ui/cycle-toggle/cycle-toggle.css +15 -0
  50. package/dist/components/ui/cycle-toggle/cycle-toggle.d.ts +29 -0
  51. package/dist/components/ui/cycle-toggle/cycle-toggle.script.d.ts +61 -0
  52. package/dist/components/ui/cycle-toggle/index.d.ts +5 -0
  53. package/dist/components/ui/cycle-toggle/index.js +2 -0
  54. package/dist/components/ui/cycle-toggle/index.js.map +7 -0
  55. package/dist/components/ui/cycle-toggle/theme-preference-icons.d.ts +12 -0
  56. package/dist/components/ui/date-field/date-field.css +37 -0
  57. package/dist/components/ui/date-field/date-field.d.ts +22 -3
  58. package/dist/components/ui/date-field/date-field.script.d.ts +29 -5
  59. package/dist/components/ui/date-field/index.d.ts +1 -1
  60. package/dist/components/ui/date-field/index.js +1 -1
  61. package/dist/components/ui/date-field/index.js.map +4 -4
  62. package/dist/components/ui/date-range-picker/date-range-picker.css +37 -0
  63. package/dist/components/ui/date-range-picker/date-range-picker.d.ts +37 -4
  64. package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +31 -5
  65. package/dist/components/ui/date-range-picker/index.d.ts +1 -1
  66. package/dist/components/ui/date-range-picker/index.js +1 -1
  67. package/dist/components/ui/date-range-picker/index.js.map +4 -4
  68. package/dist/components/ui/dialog/dialog.css +1 -1
  69. package/dist/components/ui/dialog/dialog.d.ts +30 -5
  70. package/dist/components/ui/dialog/dialog.script.d.ts +3 -0
  71. package/dist/components/ui/dialog/index.js +1 -1
  72. package/dist/components/ui/dialog/index.js.map +4 -4
  73. package/dist/components/ui/disclosure/disclosure-group.css +1 -1
  74. package/dist/components/ui/disclosure/disclosure-group.script.d.ts +6 -0
  75. package/dist/components/ui/disclosure/disclosure.d.ts +26 -7
  76. package/dist/components/ui/disclosure/disclosure.script.d.ts +5 -0
  77. package/dist/components/ui/disclosure/index.js +1 -1
  78. package/dist/components/ui/disclosure/index.js.map +4 -4
  79. package/dist/components/ui/feed/feed.d.ts +37 -7
  80. package/dist/components/ui/feed/index.js +1 -1
  81. package/dist/components/ui/feed/index.js.map +4 -4
  82. package/dist/components/ui/field/field-description.d.ts +5 -1
  83. package/dist/components/ui/field/field-error.d.ts +5 -0
  84. package/dist/components/ui/field/field.d.ts +8 -1
  85. package/dist/components/ui/field/field.script.d.ts +35 -0
  86. package/dist/components/ui/field/index.js +1 -1
  87. package/dist/components/ui/field/index.js.map +4 -4
  88. package/dist/components/ui/form/control-protocol.d.ts +6 -0
  89. package/dist/components/ui/form/form.d.ts +2 -1
  90. package/dist/components/ui/form/form.script.d.ts +16 -1
  91. package/dist/components/ui/form/index.d.ts +1 -1
  92. package/dist/components/ui/form/index.js +1 -1
  93. package/dist/components/ui/form/index.js.map +4 -4
  94. package/dist/components/ui/grid/grid.d.ts +12 -2
  95. package/dist/components/ui/grid/grid.script.d.ts +14 -0
  96. package/dist/components/ui/grid/index.js +1 -1
  97. package/dist/components/ui/grid/index.js.map +4 -4
  98. package/dist/components/ui/heading/heading.d.ts +26 -4
  99. package/dist/components/ui/heading/index.js +1 -1
  100. package/dist/components/ui/heading/index.js.map +4 -4
  101. package/dist/components/ui/headline/headline.d.ts +9 -1
  102. package/dist/components/ui/headline/index.js +1 -1
  103. package/dist/components/ui/headline/index.js.map +4 -4
  104. package/dist/components/ui/input/index.d.ts +1 -1
  105. package/dist/components/ui/input/index.js +1 -1
  106. package/dist/components/ui/input/index.js.map +4 -4
  107. package/dist/components/ui/input/input.css +2 -7
  108. package/dist/components/ui/input/input.d.ts +7 -2
  109. package/dist/components/ui/label/index.js +1 -1
  110. package/dist/components/ui/label/index.js.map +4 -4
  111. package/dist/components/ui/label/label.d.ts +8 -1
  112. package/dist/components/ui/listbox/index.js +1 -1
  113. package/dist/components/ui/listbox/index.js.map +4 -4
  114. package/dist/components/ui/listbox/listbox.css +2 -5
  115. package/dist/components/ui/listbox/listbox.d.ts +7 -3
  116. package/dist/components/ui/listbox/listbox.script.d.ts +14 -1
  117. package/dist/components/ui/menu-button/index.d.ts +1 -1
  118. package/dist/components/ui/menu-button/index.js +1 -1
  119. package/dist/components/ui/menu-button/index.js.map +4 -4
  120. package/dist/components/ui/menu-button/menu-button.css +2 -2
  121. package/dist/components/ui/menu-button/menu-button.d.ts +27 -5
  122. package/dist/components/ui/menu-button/menu-button.script.d.ts +8 -3
  123. package/dist/components/ui/menubar/index.js +1 -1
  124. package/dist/components/ui/menubar/index.js.map +4 -4
  125. package/dist/components/ui/menubar/menubar.css +4 -4
  126. package/dist/components/ui/menubar/menubar.d.ts +14 -2
  127. package/dist/components/ui/menubar/menubar.script.d.ts +10 -1
  128. package/dist/components/ui/meter/index.js +1 -1
  129. package/dist/components/ui/meter/index.js.map +4 -4
  130. package/dist/components/ui/meter/meter.css +1 -1
  131. package/dist/components/ui/meter/meter.d.ts +7 -2
  132. package/dist/components/ui/meter/meter.script.d.ts +21 -0
  133. package/dist/components/ui/navigation-menu/index.js +1 -1
  134. package/dist/components/ui/navigation-menu/index.js.map +4 -4
  135. package/dist/components/ui/navigation-menu/navigation-menu.css +2 -2
  136. package/dist/components/ui/navigation-menu/navigation-menu.d.ts +3 -2
  137. package/dist/components/ui/navigation-menu/navigation-menu.script.d.ts +4 -0
  138. package/dist/components/ui/number-field/index.d.ts +1 -1
  139. package/dist/components/ui/number-field/index.js +1 -1
  140. package/dist/components/ui/number-field/index.js.map +4 -4
  141. package/dist/components/ui/number-field/number-field.css +18 -3
  142. package/dist/components/ui/number-field/number-field.d.ts +36 -8
  143. package/dist/components/ui/number-field/number-field.script.d.ts +28 -1
  144. package/dist/components/ui/popover/index.js +1 -1
  145. package/dist/components/ui/popover/index.js.map +4 -4
  146. package/dist/components/ui/popover/popover.d.ts +5 -4
  147. package/dist/components/ui/popover/popover.script.d.ts +4 -0
  148. package/dist/components/ui/radio-group/index.d.ts +1 -1
  149. package/dist/components/ui/radio-group/index.js +1 -1
  150. package/dist/components/ui/radio-group/index.js.map +4 -4
  151. package/dist/components/ui/radio-group/radio-group.d.ts +29 -4
  152. package/dist/components/ui/radio-group/radio-group.script.d.ts +14 -9
  153. package/dist/components/ui/select/index.js +1 -1
  154. package/dist/components/ui/select/index.js.map +4 -4
  155. package/dist/components/ui/select/select.css +48 -6
  156. package/dist/components/ui/select/select.d.ts +29 -8
  157. package/dist/components/ui/select/select.script.d.ts +7 -0
  158. package/dist/components/ui/sidebar/index.js +1 -1
  159. package/dist/components/ui/sidebar/index.js.map +4 -4
  160. package/dist/components/ui/sidebar/sidebar-trigger.script.d.ts +4 -0
  161. package/dist/components/ui/sidebar/sidebar.css +41 -24
  162. package/dist/components/ui/sidebar/sidebar.d.ts +68 -14
  163. package/dist/components/ui/sidebar/sidebar.docs.css +5 -2
  164. package/dist/components/ui/sidebar/sidebar.script.d.ts +9 -0
  165. package/dist/components/ui/slider/index.js +1 -1
  166. package/dist/components/ui/slider/index.js.map +4 -4
  167. package/dist/components/ui/slider/slider.d.ts +2 -1
  168. package/dist/components/ui/slider/slider.script.d.ts +29 -1
  169. package/dist/components/ui/switch/index.js +1 -1
  170. package/dist/components/ui/switch/index.js.map +4 -4
  171. package/dist/components/ui/switch/switch.css +3 -3
  172. package/dist/components/ui/switch/switch.d.ts +11 -2
  173. package/dist/components/ui/switch/switch.script.d.ts +5 -0
  174. package/dist/components/ui/tabs/index.js +1 -1
  175. package/dist/components/ui/tabs/index.js.map +4 -4
  176. package/dist/components/ui/tabs/tabs.css +9 -10
  177. package/dist/components/ui/tabs/tabs.d.ts +30 -9
  178. package/dist/components/ui/tag-group/index.js +1 -1
  179. package/dist/components/ui/tag-group/index.js.map +4 -4
  180. package/dist/components/ui/tag-group/tag-group.css +2 -11
  181. package/dist/components/ui/tag-group/tag-group.d.ts +18 -5
  182. package/dist/components/ui/tag-group/tag-group.script.d.ts +9 -2
  183. package/dist/components/ui/textarea/index.d.ts +1 -1
  184. package/dist/components/ui/textarea/index.js +1 -1
  185. package/dist/components/ui/textarea/index.js.map +4 -4
  186. package/dist/components/ui/textarea/textarea.d.ts +7 -2
  187. package/dist/components/ui/toast/index.d.ts +1 -1
  188. package/dist/components/ui/toast/index.js +1 -1
  189. package/dist/components/ui/toast/index.js.map +4 -4
  190. package/dist/components/ui/toast/stack-layout.d.ts +18 -0
  191. package/dist/components/ui/toast/toast-context.d.ts +10 -0
  192. package/dist/components/ui/toast/toast.css +30 -9
  193. package/dist/components/ui/toast/toast.d.ts +12 -2
  194. package/dist/components/ui/toast/toast.script.d.ts +60 -4
  195. package/dist/components/ui/toast/toaster.script.d.ts +71 -2
  196. package/dist/components/ui/toc/index.js +1 -1
  197. package/dist/components/ui/toc/index.js.map +4 -4
  198. package/dist/components/ui/toc/toc.css +3 -0
  199. package/dist/components/ui/toc/toc.d.ts +2 -1
  200. package/dist/components/ui/toc/toc.script.d.ts +15 -0
  201. package/dist/components/ui/toolbar/index.js +1 -1
  202. package/dist/components/ui/toolbar/index.js.map +4 -4
  203. package/dist/components/ui/toolbar/toolbar.d.ts +3 -2
  204. package/dist/components/ui/toolbar/toolbar.script.d.ts +8 -0
  205. package/dist/components/ui/tooltip/index.js +1 -1
  206. package/dist/components/ui/tooltip/index.js.map +4 -4
  207. package/dist/components/ui/tooltip/tooltip.d.ts +3 -2
  208. package/dist/components/ui/tooltip/tooltip.script.d.ts +3 -0
  209. package/dist/components/ui/tree/index.js +1 -1
  210. package/dist/components/ui/tree/index.js.map +4 -4
  211. package/dist/components/ui/tree/tree.d.ts +12 -2
  212. package/dist/components/ui/tree/tree.script.d.ts +18 -1
  213. package/dist/components/ui/treegrid/index.js +1 -1
  214. package/dist/components/ui/treegrid/index.js.map +4 -4
  215. package/dist/components/ui/treegrid/treegrid.d.ts +15 -2
  216. package/dist/components/ui/treegrid/treegrid.script.d.ts +22 -1
  217. package/dist/components/ui/window-splitter/index.js +1 -1
  218. package/dist/components/ui/window-splitter/index.js.map +4 -4
  219. package/dist/components/ui/window-splitter/window-splitter.css +1 -1
  220. package/dist/components/ui/window-splitter/window-splitter.d.ts +3 -2
  221. package/dist/components/ui/window-splitter/window-splitter.script.d.ts +22 -0
  222. package/dist/index.d.ts +1 -0
  223. package/dist/index.js +1 -1
  224. package/dist/index.js.map +4 -4
  225. package/dist/lib/cycle-value.d.ts +8 -0
  226. package/dist/lib/intl-number/range.d.ts +8 -0
  227. package/dist/styles/radiant-ui-core.css +110 -341
  228. package/dist/styles/radiant-ui.css +413 -377
  229. package/dist/styles/styles.css +839 -2731
  230. package/dist/styles/tailwind.css +626 -530
  231. package/dist/styles/tokens/colors/aurora.css +2 -2
  232. package/dist/styles/tokens/colors/basalt.css +2 -1
  233. package/dist/styles/tokens/colors/glacier.css +2 -1
  234. package/dist/styles/tokens/presets/colors/aurora.css +42 -14
  235. package/dist/styles/tokens/presets/colors/basalt.css +28 -0
  236. package/dist/styles/tokens/presets/colors/ember.css +28 -0
  237. package/dist/styles/tokens/presets/colors/glacier.css +28 -0
  238. package/dist/styles/tokens/semantic.css +22 -2
  239. package/dist/styles/tokens/spacing/compact.css +12 -12
  240. package/package.json +21 -8
  241. package/dist/components/ui/dialog/dialog-registry.test.d.ts +0 -1
  242. package/dist/components/ui/field/field-ssr-hydration.test.d.ts +0 -1
  243. package/dist/components/ui/form/form-field.test.d.ts +0 -4
  244. package/dist/components/ui/form/form-store.test.d.ts +0 -1
  245. package/dist/components/ui/shared/collection-navigation.test.d.ts +0 -1
  246. package/dist/components/ui/shared/floating-position.test.d.ts +0 -1
  247. package/dist/components/ui/shared/listbox-popover-behavior.test.d.ts +0 -1
  248. package/dist/components/ui/shared/popover-controller.test.d.ts +0 -1
  249. package/dist/components/ui/shared/portal.test.d.ts +0 -1
  250. package/dist/components/ui/sidebar/sidebar.ssr.test.d.ts +0 -2
  251. package/dist/components/ui/sidebar/sidebar.test.d.ts +0 -1
  252. package/dist/components/ui/toast/toast.test.d.ts +0 -2
  253. package/dist/components/ui/toc/toc-helpers.test.d.ts +0 -1
  254. package/dist/components/ui/toc/toc.ssr.test.d.ts +0 -1
  255. package/dist/components/ui/toc/toc.test.d.ts +0 -1
  256. package/dist/lib/intl-date/parts.test.d.ts +0 -1
  257. package/dist/lib/intl-date/segments.test.d.ts +0 -1
  258. package/dist/lib/intl-date/selection.test.d.ts +0 -1
  259. package/dist/lib/mask/date-mask.test.d.ts +0 -1
  260. package/dist/lib/mask/input-mask.test.d.ts +0 -1
  261. package/dist/lib/radiant-view.d.ts +0 -43
  262. package/dist/lib/text-filter.test.d.ts +0 -1
  263. package/dist/styles/tokens/presets/radius.css +0 -45
  264. package/dist/styles/tokens/presets/spacing.css +0 -57
@@ -18,7 +18,28 @@ type RuiMeterBindings = {
18
18
  * Uses the native `<meter>` element, which maps to the APG Meter pattern.
19
19
  *
20
20
  * @see https://www.w3.org/WAI/ARIA/apg/patterns/meter/
21
+ *
21
22
  * @element rui-meter
23
+ *
24
+ * @attr {number} value - Current value. Default: `0`.
25
+ * @attr {number} min - Range minimum. Default: `0`.
26
+ * @attr {number} max - Range maximum. Default: `100`.
27
+ * @attr {string} label - Text describing what is measured (also the accessible
28
+ * name). Default: `''`.
29
+ *
30
+ * @remarks
31
+ * The bar itself is the native `<meter>` (`role="meter"` with
32
+ * `aria-valuenow/min/max`); the CE composes label, bar, and a numeric readout
33
+ * (`aria-hidden`) in a row. Styling classes are authored here.
34
+ *
35
+ * **Why a custom element?** The view wraps the native element to compose label
36
+ * + value chrome; percent derivation from `value`/`min`/`max` is reactive prop
37
+ * math, which a JSX view would need manual subscription for.
38
+ *
39
+ * @cssclass rui-meter - Root row (label, bar, value).
40
+ * @cssclass rui-meter__label - Text describing the measurement.
41
+ * @cssclass rui-meter__bar - The native `<meter>`.
42
+ * @cssclass rui-meter__value - Numeric readout (`aria-hidden`).
22
43
  */
23
44
  export declare class RuiMeter extends RadiantElement<RuiMeterBindings> {
24
45
  value: number;
@@ -1,2 +1,2 @@
1
- import{jsx as X}from"@ecopages/jsx/jsx-runtime";function B(...n){return n.filter(Boolean).join(" ")}var Ee=Symbol.for("@ecopages/storybook-radiant.viewElement"),le=Symbol.for("@ecopages/storybook-radiant.scriptModule"),ce=Symbol.for("@ecopages/storybook-radiant.scriptExport");function we(n,e){n[Ee]=e;let t=e[le];t&&(n[le]=t,n[ce]=e[ce]??e.name)}function fe(n,e,t){let r=o=>e(o);return we(r,n),r}import{jsx as F,jsxs as Se}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as ve,customElement as Pe,onEvent as V,prop as Ve}from"@ecopages/radiant";var Te="a[href], button, input, select, textarea, [tabindex]";function de(n){return Array.from(n.querySelectorAll(Te)).filter(e=>!e.hasAttribute("disabled"))}function H(n,e){n.forEach((t,r)=>{t.tabIndex=r===e?0:-1})}function Re(n,e){if(!n.length)return null;let t=Math.max(0,Math.min(n.length-1,e));return H(n,t),n[t]?.focus(),n[t]??null}function ke(n,e){return n==="Home"?"first":n==="End"?"last":e==="horizontal"?n==="ArrowRight"?"next":n==="ArrowLeft"?"prev":null:n==="ArrowDown"?"next":n==="ArrowUp"?"prev":null}function ee(n){let{items:e,current:t,key:r,orientation:o="horizontal",wrap:l=!0}=n;if(!e.length||!t)return{handled:!1};let u=e.indexOf(t);if(u<0)return{handled:!1};let i=ke(r,o);if(!i)return{handled:!1};let f=u;i==="first"?f=0:i==="last"?f=e.length-1:i==="next"?f=l?(u+1)%e.length:Math.min(e.length-1,u+1):f=l?(u-1+e.length)%e.length:Math.max(0,u-1);let v=Re(e,f);return v?{handled:!0,index:f,item:v}:{handled:!1}}var ge,pe,he,me;function Me(n,e,t,r,o,l){var u,i,f,v,A,I,k,L=Symbol.metadata||Symbol.for("Symbol.metadata"),M=Object.defineProperty,T=Object.create,_=[T(null),T(null)],q=e.length;function S(a,m,p){return function(s,c){m&&(c=s,s=n);for(var x=0;x<a.length;x++)c=a[x].apply(s,p?[c]:[]);return p?c:s}}function y(a,m,p,s){if(typeof a!="function"&&(s||a!==void 0))throw new TypeError(m+" must "+(p||"be")+" a function"+(s?"":" or undefined"));return a}function N(a,m,p,s,c,x,D,b,E,w,te){function G(g){if(!te(g))throw new TypeError("Attempted to access private element on non-instance")}var J=[].concat(m[0]),ne=m[3],Q=!D,C=c===1,re=c===3,ie=c===4,K=c===2;function $(g,P,se){return function(U,ue){return P&&(ue=U,U=a),se&&se(U),d[g].call(U,ue)}}if(!Q){var d={},Y=[],R=re?"get":ie||C?"set":"value";if(E?(w||C?d={get:be(function(){return ne(this)},s,"get"),set:function(g){m[4](this,g)}}:d[R]=ne,w||be(d[R],s,K?"":R)):w||(d=Object.getOwnPropertyDescriptor(a,s)),!w&&!E){if((i=_[+b][s])&&(i^c)!==7)throw Error("Decorating two elements with the same name ("+d[R].name+") is not supported yet");_[+b][s]=c<3?1:c}}for(var h=a,z=J.length-1;z>=0;z-=p?2:1){var ae=y(J[z],"A decorator","be",!0),oe=p?J[z-1]:void 0,Z={},j={kind:["field","accessor","method","getter","setter","class"][c],name:s,metadata:u,addInitializer:function(g,P){if(g.v)throw new TypeError("attempted to call addInitializer after decoration was finished");y(P,"An initializer","be",!0),x.push(P)}.bind(null,Z)};if(Q)i=ae.call(oe,h,j),Z.v=1,y(i,"class decorators","return")&&(h=i);else if(j.static=b,j.private=E,i=j.access={has:E?te.bind():function(g){return s in g}},ie||(i.get=E?K?function(g){return G(g),d.value}:$("get",0,G):function(g){return g[s]}),K||re||(i.set=E?$("set",0,G):function(g,P){g[s]=P}),h=ae.call(oe,C?{get:d.get,set:d.set}:d[R],j),Z.v=1,C){if(typeof h=="object"&&h)(i=y(h.get,"accessor.get"))&&(d.get=i),(i=y(h.set,"accessor.set"))&&(d.set=i),(i=y(h.init,"accessor.init"))&&Y.unshift(i);else if(h!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else y(h,(w?"field":"method")+" decorators","return")&&(w?Y.unshift(h):d[R]=h)}return c<2&&D.push(S(Y,b,1),S(x,b,0)),w||Q||(E?C?D.splice(-1,0,$("get",b),$("set",b)):D.push(K?d[R]:y.call.bind(d[R])):M(a,s,d)),h}function O(a){return M(a,L,{configurable:!0,enumerable:!0,value:u})}return l!==void 0&&(u=l[L]),u=T(u??null),A=[],I=function(a){a&&A.push(S(a))},k=function(a,m){for(var p=0;p<t.length;p++){var s=t[p],c=s[1],x=7&c;if((8&c)==a&&!x==m){var D=s[2],b=!!s[3],E=16&c;N(a?n:n.prototype,s,E,b?"#"+D:De(D),x,x<2?[]:a?v=v||[]:f=f||[],A,!!a,b,m,a&&b?function(w){return _e(w)===n}:o)}}},k(8,0),k(0,0),k(8,1),k(0,1),I(f),I(v),i=A,q||O(n),{e:i,get c(){var a=[];return q&&[O(n=N(n,[e],r,n.name,5,a)),S(a,1)]}}}function De(n){var e=Ie(n,"string");return typeof e=="symbol"?e:e+""}function Ie(n,e){if(typeof n!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function be(n,e,t){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(n,"name",{configurable:!0,value:t?t+" "+e:e})}catch{}return n}function _e(n){if(Object(n)!==n)throw TypeError("right-hand side of 'in' should be an object, got "+(n!==null?typeof n:"null"));return n}var W,ye=class extends ve{static{({e:[he,me,ge],c:[W,pe]}=Me(this,[Pe("rui-navigation-menu")],[[Ve({type:String,defaultValue:""}),0,"label"],[V({document:!0,type:"click"}),2,"onDocumentClick"],[V({document:!0,type:"keydown"}),2,"onDocumentKeydown"],[V({ref:"root",type:"keydown"}),2,"onRootKeydown"],[V({selector:"[data-navigation-trigger]",type:"click"}),2,"onTriggerClick"],[V({selector:"[data-navigation-item]",type:"keydown"}),2,"onBarItemKeydown"],[V({selector:"[data-navigation-panel]",type:"keydown"}),2,"onPanelKeydown"]],0,void 0,ve))}label=(ge(this),he(this));resolvedAriaLabel=(me(this),this.$.label.map(e=>e||void 0));openValue=null;connectedCallback(){super.connectedCallback(),queueMicrotask(()=>{this.syncPanels(),this.syncBarRovingTabindex()})}getBarItems(){return Array.from(this.querySelectorAll("[data-navigation-item]"))}syncBarRovingTabindex(){let e=this.getBarItems(),t=Math.max(0,e.findIndex(r=>r.tabIndex===0||r===document.activeElement));H(e,t)}isBarTrigger(e){return e.hasAttribute("data-navigation-trigger")}getTriggers(){return Array.from(this.querySelectorAll("[data-navigation-trigger]"))}getPanel(e){return this.querySelector(`[data-navigation-panel][data-value="${e}"]`)}getTrigger(e){return this.querySelector(`[data-navigation-trigger][data-value="${e}"]`)}getPanels(){return Array.from(this.querySelectorAll("[data-navigation-panel]"))}getPanelFocusables(e){return de(e)}focusPanelEntry(e){let t=this.getPanel(e);if(!t){this.getTrigger(e)?.focus();return}let r=this.getPanelFocusables(t);if(r.length>0){r[0].focus();return}t.hasAttribute("tabindex")||(t.tabIndex=-1),t.focus()}syncPanels(){for(let e of this.getPanels()){let t=e.getAttribute("data-value")??"",r=this.openValue===t;e.hidden=!r,e.dataset.state=r?"open":"closed",e.setAttribute("aria-hidden",String(!r));let o=this.getTrigger(t);o&&(o.setAttribute("aria-expanded",String(r)),e.setAttribute("role","region"),e.setAttribute("aria-labelledby",o.id||`${t}-trigger`),o.id||(o.id=`${t}-trigger`))}for(let e of this.getTriggers()){let t=e.getAttribute("data-value")??"",r=this.openValue===t;e.setAttribute("aria-expanded",String(r)),this.getPanel(t)?e.setAttribute("aria-haspopup","true"):e.removeAttribute("aria-haspopup")}}closeMenu(e=!1){let t=this.openValue;t&&(this.openValue=null,this.syncPanels(),e&&this.getTrigger(t)?.focus())}openPanel(e,t=!0){if(this.openValue===e){this.closeMenu(!0);return}this.openValue=e,this.syncPanels(),queueMicrotask(()=>{t?this.focusPanelEntry(e):this.getTrigger(e)?.focus()})}getEventElement(e){let t=e.target;return t instanceof Element?t:t instanceof Text?t.parentElement:null}isWithinOpenPanel(e){if(!this.openValue)return!1;let t=this.getPanel(this.openValue);return t?e.composedPath().some(r=>r instanceof Node&&t.contains(r)):!1}onDocumentClick(e){if(!this.openValue||this.isWithinOpenPanel(e))return;let t=this.getEventElement(e);t&&this.contains(t)||this.closeMenu()}onDocumentKeydown(e){if(e.key!=="Escape"||!this.openValue)return;let t=document.activeElement;t&&!this.contains(t)||(e.preventDefault(),this.closeMenu(!0))}onRootKeydown(e){e.key==="Escape"&&this.openValue&&(e.preventDefault(),this.closeMenu(!0))}onTriggerClick(e){let t=e.target.closest("[data-navigation-trigger]"),r=t?.getAttribute("data-value");!t||!r||(e.preventDefault(),this.openPanel(r))}onBarItemKeydown(e){let t=e.target.closest("[data-navigation-item]");if(!t)return;let r=this.getBarItems(),o=this.isBarTrigger(t),l=t.getAttribute("data-value");if(e.key==="Escape"){this.openValue&&(e.preventDefault(),this.closeMenu(!0));return}if(o&&l&&(e.key==="Enter"||e.key===" ")){e.preventDefault(),this.openPanel(l);return}if(o&&l&&e.key==="ArrowDown"){e.preventDefault(),this.openValue===l?this.focusPanelEntry(l):this.openPanel(l);return}let u=ee({items:r,current:t,key:e.key,orientation:"horizontal",wrap:!1});if(!u.handled)return;e.preventDefault();let i=u.item,f=i.getAttribute("data-value"),v=this.isBarTrigger(i);this.openValue&&(v&&f?this.openPanel(f):this.closeMenu(!1))}onPanelKeydown(e){let t=e.target;if(!(t instanceof Element))return;let r=t.closest("[data-navigation-panel]");if(!r||r.hidden)return;let o=r.getAttribute("data-value");if(!o||this.openValue!==o)return;let l=document.activeElement instanceof HTMLElement?document.activeElement:null;if(!l||!r.contains(l))return;if(e.key==="Escape"){e.preventDefault(),this.closeMenu(!0);return}let u=this.getPanelFocusables(r);if(e.key==="ArrowUp"&&l===u[0]){e.preventDefault(),this.getTrigger(o)?.focus();return}!u.length||!ee({items:u,current:l,key:e.key,orientation:"vertical",wrap:!1}).handled||e.preventDefault()}render(){return Se("nav",{class:"rui-navigation-menu","data-ref":"root","aria-label":this.resolvedAriaLabel,children:[F("div",{class:"rui-navigation-menu__bar",children:F("slot",{name:"triggers"})}),F("div",{class:"rui-navigation-menu__panels",children:F("slot",{name:"panels"})})]})}static{pe()}};import{jsx as xe}from"@ecopages/jsx/jsx-runtime";function Ce(n,e,t){if(n!==void 0)return n;if(e)return t}function Ae(n){if(n.href!==void 0){let{href:M,target:T,rel:_,download:q,"aria-label":S,"aria-current":y,"on:click":N,children:O,class:a,variant:m,size:p,...s}=n;return xe("a",{...s,href:M,target:T,rel:_,download:q,class:B("rui-button",`rui-button--${m??"filled"}`,`rui-button--${p??"md"}`,a),"aria-label":S,"aria-current":y,"on:click":N,children:O})}let{variant:e,size:t,class:r,children:o,"aria-label":l,type:u="button",disabled:i,pressed:f,defaultPressed:v=!1,toggle:A=!1,"on:click":I,...k}=n,L=M=>{if(A&&f===void 0){let T=M.currentTarget,_=T.getAttribute("aria-pressed")!=="true";T.setAttribute("aria-pressed",String(_))}I?.(M)};return xe("button",{...k,type:u,class:B("rui-button",`rui-button--${e??"filled"}`,`rui-button--${t??"md"}`,r),disabled:i,"aria-label":l,"aria-pressed":Ce(f,A,v),"data-toggle":A&&f===void 0?"":void 0,"on:click":A||I?L:void 0,children:o})}var je=fe(W,({children:n,...e})=>X("rui-navigation-menu",{...e,children:n}),{stylesheets:["./navigation-menu.css"]});function Be({children:n,slot:e="triggers",value:t,variant:r="ghost",...o}){return X(Ae,{...o,slot:e,variant:r,"data-navigation-item":!0,"data-navigation-trigger":!0,"data-value":t,children:n})}function Le({children:n,slot:e="triggers",href:t,class:r,...o}){return X("a",{...o,slot:e,href:t,"data-navigation-item":!0,class:B("rui-button","rui-button--ghost","rui-button--md",r),children:n})}function qe({children:n,slot:e="panels",value:t,class:r,...o}){return X("div",{...o,slot:e,class:r,"data-navigation-panel":!0,"data-value":t,children:n})}export{je as RuiNavigationMenu,W as RuiNavigationMenuElement,Le as RuiNavigationMenuLink,qe as RuiNavigationMenuPanel,Be as RuiNavigationMenuTrigger};
1
+ import{jsx as W}from"@ecopages/jsx/jsx-runtime";function B(...n){return n.filter(Boolean).join(" ")}import{jsx as U,jsxs as Re}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as he,customElement as Me,onEvent as _,prop as Pe}from"@ecopages/radiant";var ye="a[href], button, input, select, textarea, [tabindex]";function ue(n){return Array.from(n.querySelectorAll(ye)).filter(e=>!e.hasAttribute("disabled"))}function Z(n,e){n.forEach((t,r)=>{t.tabIndex=r===e?0:-1})}function xe(n,e){if(!n.length)return null;let t=Math.max(0,Math.min(n.length-1,e));return Z(n,t),n[t]?.focus(),n[t]??null}function we(n,e){return n==="Home"?"first":n==="End"?"last":e==="horizontal"?n==="ArrowRight"?"next":n==="ArrowLeft"?"prev":null:n==="ArrowDown"?"next":n==="ArrowUp"?"prev":null}function H(n){let{items:e,current:t,key:r,orientation:s="horizontal",wrap:l=!0}=n;if(!e.length||!t)return{handled:!1};let u=e.indexOf(t);if(u<0)return{handled:!1};let i=we(r,s);if(!i)return{handled:!1};let f=u;i==="first"?f=0:i==="last"?f=e.length-1:i==="next"?f=l?(u+1)%e.length:Math.min(e.length-1,u+1):f=l?(u-1+e.length)%e.length:Math.max(0,u-1);let b=xe(e,f);return b?{handled:!0,index:f,item:b}:{handled:!1}}var le,ce,fe,ge;function Ae(n,e,t,r,s,l){var u,i,f,b,w,D,R,q=Symbol.metadata||Symbol.for("Symbol.metadata"),M=Object.defineProperty,T=Object.create,I=[T(null),T(null)],K=e.length;function S(a,m,h){return function(o,c){m&&(c=o,o=n);for(var x=0;x<a.length;x++)c=a[x].apply(o,h?[c]:[]);return h?c:o}}function y(a,m,h,o){if(typeof a!="function"&&(o||a!==void 0))throw new TypeError(m+" must "+(h||"be")+" a function"+(o?"":" or undefined"));return a}function L(a,m,h,o,c,x,P,v,A,E,ee){function G(d){if(!ee(d))throw new TypeError("Attempted to access private element on non-instance")}var J=[].concat(m[0]),te=m[3],Q=!P,C=c===1,ne=c===3,re=c===4,z=c===2;function O(d,V,oe){return function(F,se){return V&&(se=F,F=a),oe&&oe(F),g[d].call(F,se)}}if(!Q){var g={},X=[],k=ne?"get":re||C?"set":"value";if(A?(E||C?g={get:de(function(){return te(this)},o,"get"),set:function(d){m[4](this,d)}}:g[k]=te,E||de(g[k],o,z?"":k)):E||(g=Object.getOwnPropertyDescriptor(a,o)),!E&&!A){if((i=I[+v][o])&&(i^c)!==7)throw Error("Decorating two elements with the same name ("+g[k].name+") is not supported yet");I[+v][o]=c<3?1:c}}for(var p=a,N=J.length-1;N>=0;N-=h?2:1){var ie=y(J[N],"A decorator","be",!0),ae=h?J[N-1]:void 0,Y={},j={kind:["field","accessor","method","getter","setter","class"][c],name:o,metadata:u,addInitializer:function(d,V){if(d.v)throw new TypeError("attempted to call addInitializer after decoration was finished");y(V,"An initializer","be",!0),x.push(V)}.bind(null,Y)};if(Q)i=ie.call(ae,p,j),Y.v=1,y(i,"class decorators","return")&&(p=i);else if(j.static=v,j.private=A,i=j.access={has:A?ee.bind():function(d){return o in d}},re||(i.get=A?z?function(d){return G(d),g.value}:O("get",0,G):function(d){return d[o]}),z||ne||(i.set=A?O("set",0,G):function(d,V){d[o]=V}),p=ie.call(ae,C?{get:g.get,set:g.set}:g[k],j),Y.v=1,C){if(typeof p=="object"&&p)(i=y(p.get,"accessor.get"))&&(g.get=i),(i=y(p.set,"accessor.set"))&&(g.set=i),(i=y(p.init,"accessor.init"))&&X.unshift(i);else if(p!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else y(p,(E?"field":"method")+" decorators","return")&&(E?X.unshift(p):g[k]=p)}return c<2&&P.push(S(X,v,1),S(x,v,0)),E||Q||(A?C?P.splice(-1,0,O("get",v),O("set",v)):P.push(z?g[k]:y.call.bind(g[k])):M(a,o,g)),p}function $(a){return M(a,q,{configurable:!0,enumerable:!0,value:u})}return l!==void 0&&(u=l[q]),u=T(u??null),w=[],D=function(a){a&&w.push(S(a))},R=function(a,m){for(var h=0;h<t.length;h++){var o=t[h],c=o[1],x=7&c;if((8&c)==a&&!x==m){var P=o[2],v=!!o[3],A=16&c;L(a?n:n.prototype,o,A,v?"#"+P:Ee(P),x,x<2?[]:a?b=b||[]:f=f||[],w,!!a,v,m,a&&v?function(E){return ke(E)===n}:s)}}},R(8,0),R(0,0),R(8,1),R(0,1),D(f),D(b),i=w,K||$(n),{e:i,get c(){var a=[];return K&&[$(n=L(n,[e],r,n.name,5,a)),S(a,1)]}}}function Ee(n){var e=Te(n,"string");return typeof e=="symbol"?e:e+""}function Te(n,e){if(typeof n!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function de(n,e,t){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(n,"name",{configurable:!0,value:t?t+" "+e:e})}catch{}return n}function ke(n){if(Object(n)!==n)throw TypeError("right-hand side of 'in' should be an object, got "+(n!==null?typeof n:"null"));return n}var me,pe=class extends he{static{({e:[fe,ge,le],c:[me,ce]}=Ae(this,[Me("rui-navigation-menu")],[[Pe({type:String,defaultValue:""}),0,"label"],[_({document:!0,type:"click"}),2,"onDocumentClick"],[_({document:!0,type:"keydown"}),2,"onDocumentKeydown"],[_({ref:"root",type:"keydown"}),2,"onRootKeydown"],[_({selector:"[data-navigation-trigger]",type:"click"}),2,"onTriggerClick"],[_({selector:"[data-navigation-item]",type:"keydown"}),2,"onBarItemKeydown"],[_({selector:"[data-navigation-panel]",type:"keydown"}),2,"onPanelKeydown"]],0,void 0,he))}label=(le(this),fe(this));resolvedAriaLabel=(ge(this),this.$.label.map(e=>e||void 0));openValue=null;connectedCallback(){super.connectedCallback(),queueMicrotask(()=>{this.syncPanels(),this.syncBarRovingTabindex()})}getBarItems(){return Array.from(this.querySelectorAll("[data-navigation-item]"))}syncBarRovingTabindex(){let e=this.getBarItems(),t=Math.max(0,e.findIndex(r=>r.tabIndex===0||r===document.activeElement));Z(e,t)}isBarTrigger(e){return e.hasAttribute("data-navigation-trigger")}getTriggers(){return Array.from(this.querySelectorAll("[data-navigation-trigger]"))}getPanel(e){return this.querySelector(`[data-navigation-panel][data-value="${e}"]`)}getTrigger(e){return this.querySelector(`[data-navigation-trigger][data-value="${e}"]`)}getPanels(){return Array.from(this.querySelectorAll("[data-navigation-panel]"))}getPanelFocusables(e){return ue(e)}focusPanelEntry(e){let t=this.getPanel(e);if(!t){this.getTrigger(e)?.focus();return}let r=this.getPanelFocusables(t);if(r.length>0){r[0].focus();return}t.hasAttribute("tabindex")||(t.tabIndex=-1),t.focus()}syncPanels(){for(let e of this.getPanels()){let t=e.getAttribute("data-value")??"",r=this.openValue===t;e.hidden=!r,e.dataset.state=r?"open":"closed",e.setAttribute("aria-hidden",String(!r));let s=this.getTrigger(t);s&&(s.setAttribute("aria-expanded",String(r)),e.setAttribute("role","region"),e.setAttribute("aria-labelledby",s.id||`${t}-trigger`),s.id||(s.id=`${t}-trigger`))}for(let e of this.getTriggers()){let t=e.getAttribute("data-value")??"",r=this.openValue===t;e.setAttribute("aria-expanded",String(r)),this.getPanel(t)?e.setAttribute("aria-haspopup","true"):e.removeAttribute("aria-haspopup")}}closeMenu(e=!1){let t=this.openValue;t&&(this.openValue=null,this.syncPanels(),e&&this.getTrigger(t)?.focus())}openPanel(e,t=!0){if(this.openValue===e){this.closeMenu(!0);return}this.openValue=e,this.syncPanels(),queueMicrotask(()=>{t?this.focusPanelEntry(e):this.getTrigger(e)?.focus()})}getEventElement(e){let t=e.target;return t instanceof Element?t:t instanceof Text?t.parentElement:null}isWithinOpenPanel(e){if(!this.openValue)return!1;let t=this.getPanel(this.openValue);return t?e.composedPath().some(r=>r instanceof Node&&t.contains(r)):!1}onDocumentClick(e){if(!this.openValue||this.isWithinOpenPanel(e))return;let t=this.getEventElement(e);t&&this.contains(t)||this.closeMenu()}onDocumentKeydown(e){if(e.key!=="Escape"||!this.openValue)return;let t=document.activeElement;t&&!this.contains(t)||(e.preventDefault(),this.closeMenu(!0))}onRootKeydown(e){e.key==="Escape"&&this.openValue&&(e.preventDefault(),this.closeMenu(!0))}onTriggerClick(e){let t=e.target.closest("[data-navigation-trigger]"),r=t?.getAttribute("data-value");!t||!r||(e.preventDefault(),this.openPanel(r))}onBarItemKeydown(e){let t=e.target.closest("[data-navigation-item]");if(!t)return;let r=this.getBarItems(),s=this.isBarTrigger(t),l=t.getAttribute("data-value");if(e.key==="Escape"){this.openValue&&(e.preventDefault(),this.closeMenu(!0));return}if(s&&l&&(e.key==="Enter"||e.key===" ")){e.preventDefault(),this.openPanel(l);return}if(s&&l&&e.key==="ArrowDown"){e.preventDefault(),this.openValue===l?this.focusPanelEntry(l):this.openPanel(l);return}let u=H({items:r,current:t,key:e.key,orientation:"horizontal",wrap:!1});if(!u.handled)return;e.preventDefault();let i=u.item,f=i.getAttribute("data-value"),b=this.isBarTrigger(i);this.openValue&&(b&&f?this.openPanel(f):this.closeMenu(!1))}onPanelKeydown(e){let t=e.target;if(!(t instanceof Element))return;let r=t.closest("[data-navigation-panel]");if(!r||r.hidden)return;let s=r.getAttribute("data-value");if(!s||this.openValue!==s)return;let l=document.activeElement instanceof HTMLElement?document.activeElement:null;if(!l||!r.contains(l))return;if(e.key==="Escape"){e.preventDefault(),this.closeMenu(!0);return}let u=this.getPanelFocusables(r);if(e.key==="ArrowUp"&&l===u[0]){e.preventDefault(),this.getTrigger(s)?.focus();return}!u.length||!H({items:u,current:l,key:e.key,orientation:"vertical",wrap:!1}).handled||e.preventDefault()}render(){return Re("nav",{class:"rui-navigation-menu","data-ref":"root","aria-label":this.resolvedAriaLabel,children:[U("div",{class:"rui-navigation-menu__bar",children:U("slot",{name:"triggers"})}),U("div",{class:"rui-navigation-menu__panels",children:U("slot",{name:"panels"})})]})}static{ce()}};import{jsx as ve}from"@ecopages/jsx/jsx-runtime";function De(n,e,t){if(n!==void 0)return n;if(e)return t}function be(n){if(n.href!==void 0){let{href:M,target:T,rel:I,download:K,"aria-label":S,"aria-current":y,"on:click":L,children:$,class:a,variant:m,size:h,...o}=n;return ve("a",{...o,href:M,target:T,rel:I,download:K,class:B("rui-button",`rui-button--${m??"filled"}`,`rui-button--${h??"md"}`,a),"aria-label":S,"aria-current":y,"on:click":L,children:$})}let{variant:e,size:t,class:r,children:s,"aria-label":l,type:u="button",disabled:i,pressed:f,defaultPressed:b=!1,toggle:w=!1,"on:click":D,...R}=n,q=M=>{if(w&&f===void 0){let T=M.currentTarget,I=T.getAttribute("aria-pressed")!=="true";T.setAttribute("aria-pressed",String(I))}D?.(M)};return ve("button",{...R,type:u,class:B("rui-button",`rui-button--${e??"filled"}`,`rui-button--${t??"md"}`,r),disabled:i,"aria-label":l,"aria-pressed":De(f,w,b),"data-toggle":w&&f===void 0?"":void 0,"on:click":w||D?q:void 0,children:s})}function Ie({children:n,...e}){return W("rui-navigation-menu",{...e,children:n})}function Se({children:n,slot:e="triggers",value:t,variant:r="ghost",...s}){return W(be,{...s,slot:e,variant:r,"data-navigation-item":!0,"data-navigation-trigger":!0,"data-value":t,children:n})}function Ve({children:n,slot:e="triggers",href:t,class:r,...s}){return W("a",{...s,slot:e,href:t,"data-navigation-item":!0,class:B("rui-button","rui-button--ghost","rui-button--md",r),children:n})}function _e({children:n,slot:e="panels",value:t,class:r,...s}){return W("div",{...s,slot:e,class:r,"data-navigation-panel":!0,"data-value":t,children:n})}export{Ie as RuiNavigationMenu,me as RuiNavigationMenuElement,Ve as RuiNavigationMenuLink,_e as RuiNavigationMenuPanel,Se as RuiNavigationMenuTrigger};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/ui/navigation-menu/navigation-menu.tsx", "../../../../src/lib/cx.ts", "../../../../src/lib/radiant-view.ts", "../../../../src/components/ui/navigation-menu/navigation-menu.script.tsx", "../../../../src/lib/focusable-elements.ts", "../../../../src/lib/roving-tabindex.ts", "../../../../src/components/ui/button/button.tsx"],
4
- "sourcesContent": ["import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport { defineRadiantView } from \"@/lib/radiant-view\";\nimport { RuiNavigationMenu as RuiNavigationMenuElement } from \"./navigation-menu.script\";\nimport { RuiButton } from \"../button/button\";\nexport const RuiNavigationMenu = defineRadiantView(RuiNavigationMenuElement, ({\n children,\n ...props\n}) => /* @__PURE__ */jsx(\"rui-navigation-menu\", {\n ...props,\n children\n}), {\n stylesheets: [\"./navigation-menu.css\"]\n});\nexport function RuiNavigationMenuTrigger({\n children,\n slot = \"triggers\",\n value,\n variant = \"ghost\",\n ...props\n}) {\n return /* @__PURE__ */jsx(RuiButton, {\n ...props,\n slot,\n variant,\n \"data-navigation-item\": true,\n \"data-navigation-trigger\": true,\n \"data-value\": value,\n children\n });\n}\nexport function RuiNavigationMenuLink({\n children,\n slot = \"triggers\",\n href,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"a\", {\n ...props,\n slot,\n href,\n \"data-navigation-item\": true,\n class: cx(\"rui-button\", \"rui-button--ghost\", \"rui-button--md\", className),\n children\n });\n}\nexport function RuiNavigationMenuPanel({\n children,\n slot = \"panels\",\n value,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n slot,\n class: className,\n \"data-navigation-panel\": true,\n \"data-value\": value,\n children\n });\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "const RADIANT_VIEW_ELEMENT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewElement\");\nconst RADIANT_SCRIPT_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptModule\");\nconst RADIANT_SCRIPT_EXPORT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptExport\");\nconst RADIANT_VIEW_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewModule\");\nfunction linkViewToElement(view, element) {\n view[RADIANT_VIEW_ELEMENT] = element;\n const ssrModule = element[RADIANT_SCRIPT_MODULE];\n if (ssrModule) {\n view[RADIANT_SCRIPT_MODULE] = ssrModule;\n view[RADIANT_SCRIPT_EXPORT] = element[RADIANT_SCRIPT_EXPORT] ?? element.name;\n }\n}\nexport function defineRadiantView(element, render, _options) {\n const view = args => render(args);\n linkViewToElement(view, element);\n return view;\n}\nexport function attachRadiantStylesheets(target, _stylesheets, moduleUrl) {\n const view = target;\n view[RADIANT_VIEW_MODULE] = moduleUrl;\n return target;\n}\nexport function syncRadiantViewMetadata(view) {\n const element = view[RADIANT_VIEW_ELEMENT];\n if (element) {\n linkViewToElement(view, element);\n }\n}", "let _initProto, _initClass, _init_label, _init_extra_label;\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, onEvent, prop } from \"@ecopages/radiant\";\nimport { queryRovingTabindexItems } from \"@/lib/focusable-elements\";\nimport { applyRovingTabindex, navigateRovingTabindex } from \"@/lib/roving-tabindex\";\nlet _RuiNavigationMenu;\nclass RuiNavigationMenu extends RadiantElement {\n static {\n ({\n e: [_init_label, _init_extra_label, _initProto],\n c: [_RuiNavigationMenu, _initClass]\n } = _applyDecs(this, [customElement(\"rui-navigation-menu\")], [[prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [onEvent({\n document: true,\n type: \"click\"\n }), 2, \"onDocumentClick\"], [onEvent({\n document: true,\n type: \"keydown\"\n }), 2, \"onDocumentKeydown\"], [onEvent({\n ref: \"root\",\n type: \"keydown\"\n }), 2, \"onRootKeydown\"], [onEvent({\n selector: \"[data-navigation-trigger]\",\n type: \"click\"\n }), 2, \"onTriggerClick\"], [onEvent({\n selector: \"[data-navigation-item]\",\n type: \"keydown\"\n }), 2, \"onBarItemKeydown\"], [onEvent({\n selector: \"[data-navigation-panel]\",\n type: \"keydown\"\n }), 2, \"onPanelKeydown\"]], 0, void 0, RadiantElement));\n }\n label = (_initProto(this), _init_label(this));\n resolvedAriaLabel = (_init_extra_label(this), this.$.label.map(label => label || void 0));\n openValue = null;\n connectedCallback() {\n super.connectedCallback();\n queueMicrotask(() => {\n this.syncPanels();\n this.syncBarRovingTabindex();\n });\n }\n getBarItems() {\n return Array.from(this.querySelectorAll(\"[data-navigation-item]\"));\n }\n syncBarRovingTabindex() {\n const items = this.getBarItems();\n const activeIndex = Math.max(0, items.findIndex(item => item.tabIndex === 0 || item === document.activeElement));\n applyRovingTabindex(items, activeIndex);\n }\n isBarTrigger(item) {\n return item.hasAttribute(\"data-navigation-trigger\");\n }\n getTriggers() {\n return Array.from(this.querySelectorAll(\"[data-navigation-trigger]\"));\n }\n getPanel(value) {\n return this.querySelector(`[data-navigation-panel][data-value=\"${value}\"]`);\n }\n getTrigger(value) {\n return this.querySelector(`[data-navigation-trigger][data-value=\"${value}\"]`);\n }\n getPanels() {\n return Array.from(this.querySelectorAll(\"[data-navigation-panel]\"));\n }\n getPanelFocusables(panel) {\n return queryRovingTabindexItems(panel);\n }\n focusPanelEntry(value) {\n const panel = this.getPanel(value);\n if (!panel) {\n this.getTrigger(value)?.focus();\n return;\n }\n const focusables = this.getPanelFocusables(panel);\n if (focusables.length > 0) {\n focusables[0].focus();\n return;\n }\n if (!panel.hasAttribute(\"tabindex\")) {\n panel.tabIndex = -1;\n }\n panel.focus();\n }\n syncPanels() {\n for (const panel of this.getPanels()) {\n const value = panel.getAttribute(\"data-value\") ?? \"\";\n const open = this.openValue === value;\n panel.hidden = !open;\n panel.dataset.state = open ? \"open\" : \"closed\";\n panel.setAttribute(\"aria-hidden\", String(!open));\n const trigger = this.getTrigger(value);\n if (trigger) {\n trigger.setAttribute(\"aria-expanded\", String(open));\n panel.setAttribute(\"role\", \"region\");\n panel.setAttribute(\"aria-labelledby\", trigger.id || `${value}-trigger`);\n if (!trigger.id) {\n trigger.id = `${value}-trigger`;\n }\n }\n }\n for (const trigger of this.getTriggers()) {\n const value = trigger.getAttribute(\"data-value\") ?? \"\";\n const open = this.openValue === value;\n trigger.setAttribute(\"aria-expanded\", String(open));\n if (this.getPanel(value)) {\n trigger.setAttribute(\"aria-haspopup\", \"true\");\n } else {\n trigger.removeAttribute(\"aria-haspopup\");\n }\n }\n }\n closeMenu(returnFocus = false) {\n const previous = this.openValue;\n if (!previous) {\n return;\n }\n this.openValue = null;\n this.syncPanels();\n if (returnFocus) {\n this.getTrigger(previous)?.focus();\n }\n }\n openPanel(value, focusPanel = true) {\n if (this.openValue === value) {\n this.closeMenu(true);\n return;\n }\n this.openValue = value;\n this.syncPanels();\n queueMicrotask(() => {\n if (focusPanel) {\n this.focusPanelEntry(value);\n } else {\n this.getTrigger(value)?.focus();\n }\n });\n }\n getEventElement(event) {\n const target = event.target;\n if (target instanceof Element) {\n return target;\n }\n if (target instanceof Text) {\n return target.parentElement;\n }\n return null;\n }\n isWithinOpenPanel(event) {\n if (!this.openValue) {\n return false;\n }\n const openPanel = this.getPanel(this.openValue);\n if (!openPanel) {\n return false;\n }\n return event.composedPath().some(node => node instanceof Node && openPanel.contains(node));\n }\n onDocumentClick(event) {\n if (!this.openValue) {\n return;\n }\n if (this.isWithinOpenPanel(event)) {\n return;\n }\n const element = this.getEventElement(event);\n if (element && this.contains(element)) {\n return;\n }\n this.closeMenu();\n }\n onDocumentKeydown(event) {\n if (event.key !== \"Escape\" || !this.openValue) {\n return;\n }\n const active = document.activeElement;\n if (active && !this.contains(active)) {\n return;\n }\n event.preventDefault();\n this.closeMenu(true);\n }\n onRootKeydown(event) {\n if (event.key === \"Escape\" && this.openValue) {\n event.preventDefault();\n this.closeMenu(true);\n }\n }\n onTriggerClick(event) {\n const trigger = event.target.closest(\"[data-navigation-trigger]\");\n const value = trigger?.getAttribute(\"data-value\");\n if (!trigger || !value) {\n return;\n }\n event.preventDefault();\n this.openPanel(value);\n }\n onBarItemKeydown(event) {\n const item = event.target.closest(\"[data-navigation-item]\");\n if (!item) {\n return;\n }\n const barItems = this.getBarItems();\n const isTrigger = this.isBarTrigger(item);\n const value = item.getAttribute(\"data-value\");\n if (event.key === \"Escape\") {\n if (this.openValue) {\n event.preventDefault();\n this.closeMenu(true);\n }\n return;\n }\n if (isTrigger && value && (event.key === \"Enter\" || event.key === \" \")) {\n event.preventDefault();\n this.openPanel(value);\n return;\n }\n if (isTrigger && value && event.key === \"ArrowDown\") {\n event.preventDefault();\n if (this.openValue === value) {\n this.focusPanelEntry(value);\n } else {\n this.openPanel(value);\n }\n return;\n }\n const result = navigateRovingTabindex({\n items: barItems,\n current: item,\n key: event.key,\n orientation: \"horizontal\",\n wrap: false\n });\n if (!result.handled) {\n return;\n }\n event.preventDefault();\n const nextItem = result.item;\n const nextValue = nextItem.getAttribute(\"data-value\");\n const nextIsTrigger = this.isBarTrigger(nextItem);\n if (this.openValue) {\n if (nextIsTrigger && nextValue) {\n this.openPanel(nextValue);\n } else {\n this.closeMenu(false);\n }\n }\n }\n onPanelKeydown(event) {\n const target = event.target;\n if (!(target instanceof Element)) {\n return;\n }\n const panel = target.closest(\"[data-navigation-panel]\");\n if (!panel || panel.hidden) {\n return;\n }\n const value = panel.getAttribute(\"data-value\");\n if (!value || this.openValue !== value) {\n return;\n }\n const active = document.activeElement instanceof HTMLElement ? document.activeElement : null;\n if (!active || !panel.contains(active)) {\n return;\n }\n if (event.key === \"Escape\") {\n event.preventDefault();\n this.closeMenu(true);\n return;\n }\n const focusables = this.getPanelFocusables(panel);\n if (event.key === \"ArrowUp\" && active === focusables[0]) {\n event.preventDefault();\n this.getTrigger(value)?.focus();\n return;\n }\n if (!focusables.length) {\n return;\n }\n const result = navigateRovingTabindex({\n items: focusables,\n current: active,\n key: event.key,\n orientation: \"vertical\",\n wrap: false\n });\n if (!result.handled) {\n return;\n }\n event.preventDefault();\n }\n render() {\n return /* @__PURE__ */jsxs(\"nav\", {\n class: \"rui-navigation-menu\",\n \"data-ref\": \"root\",\n \"aria-label\": this.resolvedAriaLabel,\n children: [/* @__PURE__ */jsx(\"div\", {\n class: \"rui-navigation-menu__bar\",\n children: /* @__PURE__ */jsx(\"slot\", {\n name: \"triggers\"\n })\n }), /* @__PURE__ */jsx(\"div\", {\n class: \"rui-navigation-menu__panels\",\n children: /* @__PURE__ */jsx(\"slot\", {\n name: \"panels\"\n })\n })]\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiNavigationMenu as RuiNavigationMenu };", "const FOCUSABLE_CANDIDATE_SELECTOR = \"a[href], button, input, select, textarea, [tabindex]\";\nfunction isFocusableCandidate(element) {\n return !element.hasAttribute(\"disabled\") && element.getAttribute(\"tabindex\") !== \"-1\";\n}\nexport function queryFocusableCandidates(root) {\n return Array.from(root.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR)).filter(isFocusableCandidate);\n}\nexport function queryRovingTabindexItems(root) {\n return Array.from(root.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR)).filter(element => !element.hasAttribute(\"disabled\"));\n}\nexport function findFirstFocusableCandidate(root) {\n return queryFocusableCandidates(root)[0];\n}\nfunction isVisible(element) {\n return element.getClientRects().length > 0 && !element.closest(\"[hidden]\");\n}\nexport function getFocusableElements(root) {\n return queryFocusableCandidates(root).filter(isVisible);\n}", "export function applyRovingTabindex(items, activeIndex) {\n items.forEach((item, index) => {\n item.tabIndex = index === activeIndex ? 0 : -1;\n });\n}\nexport function focusRovingItem(items, index) {\n if (!items.length) return null;\n const next = Math.max(0, Math.min(items.length - 1, index));\n applyRovingTabindex(items, next);\n items[next]?.focus();\n return items[next] ?? null;\n}\nfunction deltaForKey(key, orientation) {\n if (key === \"Home\") return \"first\";\n if (key === \"End\") return \"last\";\n if (orientation === \"horizontal\") {\n if (key === \"ArrowRight\") return \"next\";\n if (key === \"ArrowLeft\") return \"prev\";\n return null;\n }\n if (key === \"ArrowDown\") return \"next\";\n if (key === \"ArrowUp\") return \"prev\";\n return null;\n}\nexport function navigateRovingTabindex(options) {\n const {\n items,\n current,\n key,\n orientation = \"horizontal\",\n wrap = true\n } = options;\n if (!items.length || !current) return {\n handled: false\n };\n const index = items.indexOf(current);\n if (index < 0) return {\n handled: false\n };\n const delta = deltaForKey(key, orientation);\n if (!delta) return {\n handled: false\n };\n let next = index;\n if (delta === \"first\") next = 0;else if (delta === \"last\") next = items.length - 1;else if (delta === \"next\") next = wrap ? (index + 1) % items.length : Math.min(items.length - 1, index + 1);else next = wrap ? (index - 1 + items.length) % items.length : Math.max(0, index - 1);\n const item = focusRovingItem(items, next);\n if (!item) return {\n handled: false\n };\n return {\n handled: true,\n index: next,\n item\n };\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nfunction resolveAriaPressed(pressed, toggle, defaultPressed) {\n if (pressed !== void 0) {\n return pressed;\n }\n if (toggle) {\n return defaultPressed;\n }\n return void 0;\n}\nexport function RuiButton(props) {\n if (props.href !== void 0) {\n const {\n href,\n target,\n rel,\n download,\n \"aria-label\": ariaLabel2,\n \"aria-current\": ariaCurrent,\n \"on:click\": onClick2,\n children: children2,\n class: className2,\n variant: variant2,\n size: size2,\n ...host2\n } = props;\n return /* @__PURE__ */jsx(\"a\", {\n ...host2,\n href,\n target,\n rel,\n download,\n class: cx(\"rui-button\", `rui-button--${variant2 ?? \"filled\"}`, `rui-button--${size2 ?? \"md\"}`, className2),\n \"aria-label\": ariaLabel2,\n \"aria-current\": ariaCurrent,\n \"on:click\": onClick2,\n children: children2\n });\n }\n const {\n variant,\n size,\n class: className,\n children,\n \"aria-label\": ariaLabel,\n type = \"button\",\n disabled,\n pressed,\n defaultPressed = false,\n toggle = false,\n \"on:click\": onClick,\n ...host\n } = props;\n const handleClick = event => {\n if (toggle && pressed === void 0) {\n const button = event.currentTarget;\n const next = button.getAttribute(\"aria-pressed\") !== \"true\";\n button.setAttribute(\"aria-pressed\", String(next));\n }\n onClick?.(event);\n };\n return /* @__PURE__ */jsx(\"button\", {\n ...host,\n type,\n class: cx(\"rui-button\", `rui-button--${variant ?? \"filled\"}`, `rui-button--${size ?? \"md\"}`, className),\n disabled,\n \"aria-label\": ariaLabel,\n \"aria-pressed\": resolveAriaPressed(pressed, toggle, defaultPressed),\n \"data-toggle\": toggle && pressed === void 0 ? \"\" : void 0,\n \"on:click\": toggle || onClick ? handleClick : void 0,\n children\n });\n}"],
5
- "mappings": "AAAA,OAAS,OAAAA,MAAW,4BCAb,SAASC,KAAMC,EAAO,CAC3B,OAAOA,EAAM,OAAO,OAAO,EAAE,KAAK,GAAG,CACvC,CCFA,IAAMC,GAAsC,OAAO,IAAI,yCAAyC,EAC1FC,GAAuC,OAAO,IAAI,0CAA0C,EAC5FC,GAAuC,OAAO,IAAI,0CAA0C,EAElG,SAASC,GAAkBC,EAAMC,EAAS,CACxCD,EAAKE,EAAoB,EAAID,EAC7B,IAAME,EAAYF,EAAQG,EAAqB,EAC3CD,IACFH,EAAKI,EAAqB,EAAID,EAC9BH,EAAKK,EAAqB,EAAIJ,EAAQI,EAAqB,GAAKJ,EAAQ,KAE5E,CACO,SAASK,GAAkBL,EAASM,EAAQC,EAAU,CAC3D,IAAMR,EAAOS,GAAQF,EAAOE,CAAI,EAChC,OAAAV,GAAkBC,EAAMC,CAAO,EACxBD,CACT,CCVA,OAAS,OAAAU,EAAK,QAAAC,OAAY,4BAC1B,OAAS,kBAAAC,GAAgB,iBAAAC,GAAe,WAAAC,EAAS,QAAAC,OAAY,oBCP7D,IAAMC,GAA+B,uDAO9B,SAASC,GAAyBC,EAAM,CAC7C,OAAO,MAAM,KAAKA,EAAK,iBAAiBC,EAA4B,CAAC,EAAE,OAAOC,GAAW,CAACA,EAAQ,aAAa,UAAU,CAAC,CAC5H,CCTO,SAASC,EAAoBC,EAAOC,EAAa,CACtDD,EAAM,QAAQ,CAACE,EAAMC,IAAU,CAC7BD,EAAK,SAAWC,IAAUF,EAAc,EAAI,EAC9C,CAAC,CACH,CACO,SAASG,GAAgBJ,EAAOG,EAAO,CAC5C,GAAI,CAACH,EAAM,OAAQ,OAAO,KAC1B,IAAMK,EAAO,KAAK,IAAI,EAAG,KAAK,IAAIL,EAAM,OAAS,EAAGG,CAAK,CAAC,EAC1D,OAAAJ,EAAoBC,EAAOK,CAAI,EAC/BL,EAAMK,CAAI,GAAG,MAAM,EACZL,EAAMK,CAAI,GAAK,IACxB,CACA,SAASC,GAAYC,EAAKC,EAAa,CACrC,OAAID,IAAQ,OAAe,QACvBA,IAAQ,MAAc,OACtBC,IAAgB,aACdD,IAAQ,aAAqB,OAC7BA,IAAQ,YAAoB,OACzB,KAELA,IAAQ,YAAoB,OAC5BA,IAAQ,UAAkB,OACvB,IACT,CACO,SAASE,GAAuBC,EAAS,CAC9C,GAAM,CACJ,MAAAV,EACA,QAAAW,EACA,IAAAJ,EACA,YAAAC,EAAc,aACd,KAAAI,EAAO,EACT,EAAIF,EACJ,GAAI,CAACV,EAAM,QAAU,CAACW,EAAS,MAAO,CACpC,QAAS,EACX,EACA,IAAMR,EAAQH,EAAM,QAAQW,CAAO,EACnC,GAAIR,EAAQ,EAAG,MAAO,CACpB,QAAS,EACX,EACA,IAAMU,EAAQP,GAAYC,EAAKC,CAAW,EAC1C,GAAI,CAACK,EAAO,MAAO,CACjB,QAAS,EACX,EACA,IAAIR,EAAOF,EACPU,IAAU,QAASR,EAAO,EAAWQ,IAAU,OAAQR,EAAOL,EAAM,OAAS,EAAWa,IAAU,OAAQR,EAAOO,GAAQT,EAAQ,GAAKH,EAAM,OAAS,KAAK,IAAIA,EAAM,OAAS,EAAGG,EAAQ,CAAC,EAAOE,EAAOO,GAAQT,EAAQ,EAAIH,EAAM,QAAUA,EAAM,OAAS,KAAK,IAAI,EAAGG,EAAQ,CAAC,EACnR,IAAMD,EAAOE,GAAgBJ,EAAOK,CAAI,EACxC,OAAKH,EAGE,CACL,QAAS,GACT,MAAOG,EACP,KAAAH,CACF,EAPkB,CAChB,QAAS,EACX,CAMF,CFtDA,IAAIY,GAAYC,GAAYC,GAAaC,GACzC,SAASC,GAAWC,EAAGC,EAAGC,EAAG,EAAG,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,EAAId,EAAE,OAAQ,SAASe,EAAEf,EAAGC,EAAGe,EAAG,CAAE,OAAO,SAAUC,EAAGf,EAAG,CAAED,IAAMC,EAAIe,EAAGA,EAAIlB,GAAI,QAASI,EAAI,EAAGA,EAAIH,EAAE,OAAQG,IAAKD,EAAIF,EAAEG,CAAC,EAAE,MAAMc,EAAGD,EAAI,CAACd,CAAC,EAAI,CAAC,CAAC,EAAG,OAAOc,EAAId,EAAIe,CAAG,CAAG,CAAE,SAASC,EAAEnB,EAAGC,EAAGC,EAAGe,EAAG,CAAE,GAAkB,OAAOjB,GAArB,aAA2BiB,GAAgBjB,IAAX,QAAe,MAAM,IAAI,UAAUC,EAAI,UAAYC,GAAK,MAAQ,eAAiBe,EAAI,GAAK,gBAAgB,EAAG,OAAOjB,CAAG,CAAE,SAASoB,EAASpB,EAAGC,EAAGC,EAAGe,EAAGC,EAAGf,EAAGG,EAAGC,EAAGC,EAAGC,EAAGC,GAAG,CAAE,SAASC,EAAEX,EAAG,CAAE,GAAI,CAACU,GAAEV,CAAC,EAAG,MAAM,IAAI,UAAU,qDAAqD,CAAG,CAAE,IAAIa,EAAI,CAAC,EAAE,OAAOZ,EAAE,CAAC,CAAC,EAAGc,GAAId,EAAE,CAAC,EAAGoB,EAAI,CAACf,EAAGgB,EAAUJ,IAAN,EAASK,GAAUL,IAAN,EAASM,GAAUN,IAAN,EAASO,EAAUP,IAAN,EAAS,SAASQ,EAAEzB,EAAGC,EAAGe,GAAG,CAAE,OAAO,SAAUC,EAAGf,GAAG,CAAE,OAAOD,IAAMC,GAAIe,EAAGA,EAAIlB,GAAIiB,IAAKA,GAAEC,CAAC,EAAGS,EAAE1B,CAAC,EAAE,KAAKiB,EAAGf,EAAC,CAAG,CAAG,CAAE,GAAI,CAACkB,EAAG,CAAE,IAAIM,EAAI,CAAC,EAAGC,EAAI,CAAC,EAAGC,EAAIN,GAAI,MAAQC,IAAKF,EAAI,MAAQ,QAAS,GAAId,GAAKC,GAAKa,EAAIK,EAAI,CAAE,IAAKG,GAAiB,UAAY,CAAE,OAAOf,GAAE,IAAI,CAAG,EAAGE,EAAG,KAAK,EAAG,IAAK,SAAUjB,EAAG,CAAEC,EAAE,CAAC,EAAE,KAAMD,CAAC,CAAG,CAAE,EAAI2B,EAAEE,CAAC,EAAId,GAAGN,GAAKqB,GAAiBH,EAAEE,CAAC,EAAGZ,EAAGQ,EAAI,GAAKI,CAAC,GAAKpB,IAAMkB,EAAI,OAAO,yBAAyB3B,EAAGiB,CAAC,GAAI,CAACR,GAAK,CAACD,EAAG,CAAE,IAAKH,EAAIS,EAAE,CAACP,CAAC,EAAEU,CAAC,KAAaZ,EAAIa,KAAX,EAAe,MAAM,MAAM,+CAAiDS,EAAEE,CAAC,EAAE,KAAO,wBAAwB,EAAGf,EAAE,CAACP,CAAC,EAAEU,CAAC,EAAIC,EAAI,EAAI,EAAIA,CAAG,CAAE,CAAE,QAASa,EAAI/B,EAAGgC,EAAInB,EAAE,OAAS,EAAGmB,GAAK,EAAGA,GAAK9B,EAAI,EAAI,EAAG,CAAE,IAAI+B,GAAId,EAAEN,EAAEmB,CAAC,EAAG,cAAe,KAAM,EAAE,EAAGE,GAAIhC,EAAIW,EAAEmB,EAAI,CAAC,EAAI,OAAQG,EAAI,CAAC,EAAGC,EAAI,CAAE,KAAM,CAAC,QAAS,WAAY,SAAU,SAAU,SAAU,OAAO,EAAElB,CAAC,EAAG,KAAMD,EAAG,SAAUb,EAAG,eAAgB,SAAUJ,EAAGC,EAAG,CAAE,GAAID,EAAE,EAAG,MAAM,IAAI,UAAU,gEAAgE,EAAGmB,EAAElB,EAAG,iBAAkB,KAAM,EAAE,EAAGE,EAAE,KAAKF,CAAC,CAAG,EAAE,KAAK,KAAMkC,CAAC,CAAE,EAAG,GAAId,EAAGhB,EAAI4B,GAAE,KAAKC,GAAGH,EAAGK,CAAC,EAAGD,EAAE,EAAI,EAAGhB,EAAEd,EAAG,mBAAoB,QAAQ,IAAM0B,EAAI1B,WAAY+B,EAAE,OAAS7B,EAAG6B,EAAE,QAAU5B,EAAGH,EAAI+B,EAAE,OAAS,CAAE,IAAK5B,EAAIE,GAAE,KAAK,EAAI,SAAUV,EAAG,CAAE,OAAOiB,KAAKjB,CAAG,CAAE,EAAGwB,KAAMnB,EAAE,IAAMG,EAAIiB,EAAI,SAAUzB,EAAG,CAAE,OAAOW,EAAEX,CAAC,EAAG2B,EAAE,KAAO,EAAID,EAAE,MAAO,EAAGf,CAAC,EAAI,SAAUX,EAAG,CAAE,OAAOA,EAAEiB,CAAC,CAAG,GAAIQ,GAAKF,KAAMlB,EAAE,IAAMG,EAAIkB,EAAE,MAAO,EAAGf,CAAC,EAAI,SAAUX,EAAGC,EAAG,CAAED,EAAEiB,CAAC,EAAIhB,CAAG,GAAI8B,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,GAAI1B,EAAIc,EAAEY,EAAE,IAAK,cAAc,KAAOJ,EAAE,IAAMtB,IAAKA,EAAIc,EAAEY,EAAE,IAAK,cAAc,KAAOJ,EAAE,IAAMtB,IAAKA,EAAIc,EAAEY,EAAE,KAAM,eAAe,IAAMH,EAAE,QAAQvB,CAAC,UAAsB0B,IAAX,OAAc,MAAM,IAAI,UAAU,0FAA0F,OAAUZ,EAAEY,GAAItB,EAAI,QAAU,UAAY,cAAe,QAAQ,IAAMA,EAAImB,EAAE,QAAQG,CAAC,EAAIJ,EAAEE,CAAC,EAAIE,EAAI,CAAE,OAAOb,EAAI,GAAKZ,EAAE,KAAKU,EAAEY,EAAGrB,EAAG,CAAC,EAAGS,EAAEb,EAAGI,EAAG,CAAC,CAAC,EAAGE,GAAKY,IAAMb,EAAIc,EAAIhB,EAAE,OAAO,GAAI,EAAGoB,EAAE,MAAOnB,CAAC,EAAGmB,EAAE,MAAOnB,CAAC,CAAC,EAAID,EAAE,KAAKmB,EAAIE,EAAEE,CAAC,EAAIV,EAAE,KAAK,KAAKQ,EAAEE,CAAC,CAAC,CAAC,EAAIjB,EAAEZ,EAAGiB,EAAGU,CAAC,GAAII,CAAG,CAAE,SAASV,EAAErB,EAAG,CAAE,OAAOY,EAAEZ,EAAGW,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,SAAUT,EAAG,CAAEA,GAAKQ,EAAE,KAAKQ,EAAEhB,CAAC,CAAC,CAAG,EAAGU,EAAI,SAAUT,EAAGgB,EAAG,CAAE,QAASd,EAAI,EAAGA,EAAID,EAAE,OAAQC,IAAK,CAAE,IAAIC,EAAIF,EAAEC,CAAC,EAAG,EAAIC,EAAE,CAAC,EAAGK,EAAI,EAAI,EAAG,IAAK,EAAI,IAAMR,GAAK,CAACQ,GAAKQ,EAAG,CAAE,IAAIP,EAAIN,EAAE,CAAC,EAAGO,EAAI,CAAC,CAACP,EAAE,CAAC,EAAGQ,EAAI,GAAK,EAAGQ,EAASnB,EAAID,EAAIA,EAAE,UAAWI,EAAGQ,EAAGD,EAAI,IAAMD,EAAI2B,GAAe3B,CAAC,EAAGD,EAAGA,EAAI,EAAI,CAAC,EAAIR,EAAIM,EAAIA,GAAK,CAAC,EAAID,EAAIA,GAAK,CAAC,EAAGE,EAAG,CAAC,CAACP,EAAGU,EAAGM,EAAGhB,GAAKU,EAAI,SAAUV,EAAG,CAAE,OAAOqC,GAAYrC,CAAC,IAAMD,CAAG,EAAI,CAAC,CAAG,CAAE,CAAE,EAAGU,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGD,EAAEH,CAAC,EAAGG,EAAEF,CAAC,EAAGF,EAAIG,EAAGO,GAAKM,EAAErB,CAAC,EAAG,CAAE,EAAGK,EAAG,IAAI,GAAI,CAAE,IAAIH,EAAI,CAAC,EAAG,OAAOa,GAAK,CAACM,EAAErB,EAAIoB,EAASpB,EAAG,CAACC,CAAC,EAAG,EAAGD,EAAE,KAAM,EAAGE,CAAC,CAAC,EAAGc,EAAEd,EAAG,CAAC,CAAC,CAAG,CAAE,CAAG,CACn/G,SAASmC,GAAepC,EAAG,CAAE,IAAIE,EAAIoC,GAAatC,EAAG,QAAQ,EAAG,OAAmB,OAAOE,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASoC,GAAatC,EAAGgB,EAAG,CAAE,GAAgB,OAAOhB,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAID,EAAIC,EAAE,OAAO,WAAW,EAAG,GAAeD,IAAX,OAAc,CAAE,IAAIG,EAAIH,EAAE,KAAKC,EAAGgB,GAAK,SAAS,EAAG,GAAgB,OAAOd,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBc,IAAb,SAAiB,OAAS,QAAQhB,CAAC,CAAG,CACvT,SAAS6B,GAAiB9B,EAAGC,EAAGC,EAAG,CAAc,OAAOD,GAAnB,WAAyBA,GAAKA,EAAIA,EAAE,aAAe,IAAMA,EAAI,IAAM,IAAK,GAAI,CAAE,OAAO,eAAeD,EAAG,OAAQ,CAAE,aAAc,GAAI,MAAOE,EAAIA,EAAI,IAAMD,EAAIA,CAAE,CAAC,CAAG,MAAY,CAAC,CAAE,OAAOD,CAAG,CAChO,SAASsC,GAAYtC,EAAG,CAAE,GAAI,OAAOA,CAAC,IAAMA,EAAG,MAAM,UAAU,qDAAgEA,IAAT,KAAa,OAAOA,EAAI,OAAO,EAAG,OAAOA,CAAG,CAKlK,IAAIwC,EACEC,GAAN,cAAgCC,EAAe,CAC7C,MAAO,EACJ,CACC,EAAG,CAAC7C,GAAaC,GAAmBH,EAAU,EAC9C,EAAG,CAAC6C,EAAoB5C,EAAU,CACpC,EAAIG,GAAW,KAAM,CAAC4C,GAAc,qBAAqB,CAAC,EAAG,CAAC,CAACC,GAAK,CAClE,KAAM,OACN,aAAc,EAChB,CAAC,EAAG,EAAG,OAAO,EAAG,CAACC,EAAQ,CACxB,SAAU,GACV,KAAM,OACR,CAAC,EAAG,EAAG,iBAAiB,EAAG,CAACA,EAAQ,CAClC,SAAU,GACV,KAAM,SACR,CAAC,EAAG,EAAG,mBAAmB,EAAG,CAACA,EAAQ,CACpC,IAAK,OACL,KAAM,SACR,CAAC,EAAG,EAAG,eAAe,EAAG,CAACA,EAAQ,CAChC,SAAU,4BACV,KAAM,OACR,CAAC,EAAG,EAAG,gBAAgB,EAAG,CAACA,EAAQ,CACjC,SAAU,yBACV,KAAM,SACR,CAAC,EAAG,EAAG,kBAAkB,EAAG,CAACA,EAAQ,CACnC,SAAU,0BACV,KAAM,SACR,CAAC,EAAG,EAAG,gBAAgB,CAAC,EAAG,EAAG,OAAQH,EAAc,EACtD,CACA,OAAS/C,GAAW,IAAI,EAAGE,GAAY,IAAI,GAC3C,mBAAqBC,GAAkB,IAAI,EAAG,KAAK,EAAE,MAAM,IAAIgD,GAASA,GAAS,MAAM,GACvF,UAAY,KACZ,mBAAoB,CAClB,MAAM,kBAAkB,EACxB,eAAe,IAAM,CACnB,KAAK,WAAW,EAChB,KAAK,sBAAsB,CAC7B,CAAC,CACH,CACA,aAAc,CACZ,OAAO,MAAM,KAAK,KAAK,iBAAiB,wBAAwB,CAAC,CACnE,CACA,uBAAwB,CACtB,IAAMC,EAAQ,KAAK,YAAY,EACzBC,EAAc,KAAK,IAAI,EAAGD,EAAM,UAAUE,GAAQA,EAAK,WAAa,GAAKA,IAAS,SAAS,aAAa,CAAC,EAC/GC,EAAoBH,EAAOC,CAAW,CACxC,CACA,aAAaC,EAAM,CACjB,OAAOA,EAAK,aAAa,yBAAyB,CACpD,CACA,aAAc,CACZ,OAAO,MAAM,KAAK,KAAK,iBAAiB,2BAA2B,CAAC,CACtE,CACA,SAASE,EAAO,CACd,OAAO,KAAK,cAAc,uCAAuCA,CAAK,IAAI,CAC5E,CACA,WAAWA,EAAO,CAChB,OAAO,KAAK,cAAc,yCAAyCA,CAAK,IAAI,CAC9E,CACA,WAAY,CACV,OAAO,MAAM,KAAK,KAAK,iBAAiB,yBAAyB,CAAC,CACpE,CACA,mBAAmBC,EAAO,CACxB,OAAOC,GAAyBD,CAAK,CACvC,CACA,gBAAgBD,EAAO,CACrB,IAAMC,EAAQ,KAAK,SAASD,CAAK,EACjC,GAAI,CAACC,EAAO,CACV,KAAK,WAAWD,CAAK,GAAG,MAAM,EAC9B,MACF,CACA,IAAMG,EAAa,KAAK,mBAAmBF,CAAK,EAChD,GAAIE,EAAW,OAAS,EAAG,CACzBA,EAAW,CAAC,EAAE,MAAM,EACpB,MACF,CACKF,EAAM,aAAa,UAAU,IAChCA,EAAM,SAAW,IAEnBA,EAAM,MAAM,CACd,CACA,YAAa,CACX,QAAWA,KAAS,KAAK,UAAU,EAAG,CACpC,IAAMD,EAAQC,EAAM,aAAa,YAAY,GAAK,GAC5CG,EAAO,KAAK,YAAcJ,EAChCC,EAAM,OAAS,CAACG,EAChBH,EAAM,QAAQ,MAAQG,EAAO,OAAS,SACtCH,EAAM,aAAa,cAAe,OAAO,CAACG,CAAI,CAAC,EAC/C,IAAMC,EAAU,KAAK,WAAWL,CAAK,EACjCK,IACFA,EAAQ,aAAa,gBAAiB,OAAOD,CAAI,CAAC,EAClDH,EAAM,aAAa,OAAQ,QAAQ,EACnCA,EAAM,aAAa,kBAAmBI,EAAQ,IAAM,GAAGL,CAAK,UAAU,EACjEK,EAAQ,KACXA,EAAQ,GAAK,GAAGL,CAAK,YAG3B,CACA,QAAWK,KAAW,KAAK,YAAY,EAAG,CACxC,IAAML,EAAQK,EAAQ,aAAa,YAAY,GAAK,GAC9CD,EAAO,KAAK,YAAcJ,EAChCK,EAAQ,aAAa,gBAAiB,OAAOD,CAAI,CAAC,EAC9C,KAAK,SAASJ,CAAK,EACrBK,EAAQ,aAAa,gBAAiB,MAAM,EAE5CA,EAAQ,gBAAgB,eAAe,CAE3C,CACF,CACA,UAAUC,EAAc,GAAO,CAC7B,IAAMC,EAAW,KAAK,UACjBA,IAGL,KAAK,UAAY,KACjB,KAAK,WAAW,EACZD,GACF,KAAK,WAAWC,CAAQ,GAAG,MAAM,EAErC,CACA,UAAUP,EAAOQ,EAAa,GAAM,CAClC,GAAI,KAAK,YAAcR,EAAO,CAC5B,KAAK,UAAU,EAAI,EACnB,MACF,CACA,KAAK,UAAYA,EACjB,KAAK,WAAW,EAChB,eAAe,IAAM,CACfQ,EACF,KAAK,gBAAgBR,CAAK,EAE1B,KAAK,WAAWA,CAAK,GAAG,MAAM,CAElC,CAAC,CACH,CACA,gBAAgBS,EAAO,CACrB,IAAMC,EAASD,EAAM,OACrB,OAAIC,aAAkB,QACbA,EAELA,aAAkB,KACbA,EAAO,cAET,IACT,CACA,kBAAkBD,EAAO,CACvB,GAAI,CAAC,KAAK,UACR,MAAO,GAET,IAAME,EAAY,KAAK,SAAS,KAAK,SAAS,EAC9C,OAAKA,EAGEF,EAAM,aAAa,EAAE,KAAKG,GAAQA,aAAgB,MAAQD,EAAU,SAASC,CAAI,CAAC,EAFhF,EAGX,CACA,gBAAgBH,EAAO,CAIrB,GAHI,CAAC,KAAK,WAGN,KAAK,kBAAkBA,CAAK,EAC9B,OAEF,IAAMI,EAAU,KAAK,gBAAgBJ,CAAK,EACtCI,GAAW,KAAK,SAASA,CAAO,GAGpC,KAAK,UAAU,CACjB,CACA,kBAAkBJ,EAAO,CACvB,GAAIA,EAAM,MAAQ,UAAY,CAAC,KAAK,UAClC,OAEF,IAAMK,EAAS,SAAS,cACpBA,GAAU,CAAC,KAAK,SAASA,CAAM,IAGnCL,EAAM,eAAe,EACrB,KAAK,UAAU,EAAI,EACrB,CACA,cAAcA,EAAO,CACfA,EAAM,MAAQ,UAAY,KAAK,YACjCA,EAAM,eAAe,EACrB,KAAK,UAAU,EAAI,EAEvB,CACA,eAAeA,EAAO,CACpB,IAAMJ,EAAUI,EAAM,OAAO,QAAQ,2BAA2B,EAC1DT,EAAQK,GAAS,aAAa,YAAY,EAC5C,CAACA,GAAW,CAACL,IAGjBS,EAAM,eAAe,EACrB,KAAK,UAAUT,CAAK,EACtB,CACA,iBAAiBS,EAAO,CACtB,IAAMX,EAAOW,EAAM,OAAO,QAAQ,wBAAwB,EAC1D,GAAI,CAACX,EACH,OAEF,IAAMiB,EAAW,KAAK,YAAY,EAC5BC,EAAY,KAAK,aAAalB,CAAI,EAClCE,EAAQF,EAAK,aAAa,YAAY,EAC5C,GAAIW,EAAM,MAAQ,SAAU,CACtB,KAAK,YACPA,EAAM,eAAe,EACrB,KAAK,UAAU,EAAI,GAErB,MACF,CACA,GAAIO,GAAahB,IAAUS,EAAM,MAAQ,SAAWA,EAAM,MAAQ,KAAM,CACtEA,EAAM,eAAe,EACrB,KAAK,UAAUT,CAAK,EACpB,MACF,CACA,GAAIgB,GAAahB,GAASS,EAAM,MAAQ,YAAa,CACnDA,EAAM,eAAe,EACjB,KAAK,YAAcT,EACrB,KAAK,gBAAgBA,CAAK,EAE1B,KAAK,UAAUA,CAAK,EAEtB,MACF,CACA,IAAMiB,EAASC,GAAuB,CACpC,MAAOH,EACP,QAASjB,EACT,IAAKW,EAAM,IACX,YAAa,aACb,KAAM,EACR,CAAC,EACD,GAAI,CAACQ,EAAO,QACV,OAEFR,EAAM,eAAe,EACrB,IAAMU,EAAWF,EAAO,KAClBG,EAAYD,EAAS,aAAa,YAAY,EAC9CE,EAAgB,KAAK,aAAaF,CAAQ,EAC5C,KAAK,YACHE,GAAiBD,EACnB,KAAK,UAAUA,CAAS,EAExB,KAAK,UAAU,EAAK,EAG1B,CACA,eAAeX,EAAO,CACpB,IAAMC,EAASD,EAAM,OACrB,GAAI,EAAEC,aAAkB,SACtB,OAEF,IAAMT,EAAQS,EAAO,QAAQ,yBAAyB,EACtD,GAAI,CAACT,GAASA,EAAM,OAClB,OAEF,IAAMD,EAAQC,EAAM,aAAa,YAAY,EAC7C,GAAI,CAACD,GAAS,KAAK,YAAcA,EAC/B,OAEF,IAAMc,EAAS,SAAS,yBAAyB,YAAc,SAAS,cAAgB,KACxF,GAAI,CAACA,GAAU,CAACb,EAAM,SAASa,CAAM,EACnC,OAEF,GAAIL,EAAM,MAAQ,SAAU,CAC1BA,EAAM,eAAe,EACrB,KAAK,UAAU,EAAI,EACnB,MACF,CACA,IAAMN,EAAa,KAAK,mBAAmBF,CAAK,EAChD,GAAIQ,EAAM,MAAQ,WAAaK,IAAWX,EAAW,CAAC,EAAG,CACvDM,EAAM,eAAe,EACrB,KAAK,WAAWT,CAAK,GAAG,MAAM,EAC9B,MACF,CACI,CAACG,EAAW,QAUZ,CAPWe,GAAuB,CACpC,MAAOf,EACP,QAASW,EACT,IAAKL,EAAM,IACX,YAAa,WACb,KAAM,EACR,CAAC,EACW,SAGZA,EAAM,eAAe,CACvB,CACA,QAAS,CACP,OAAsBa,GAAK,MAAO,CAChC,MAAO,sBACP,WAAY,OACZ,aAAc,KAAK,kBACnB,SAAU,CAAgBC,EAAI,MAAO,CACnC,MAAO,2BACP,SAAyBA,EAAI,OAAQ,CACnC,KAAM,UACR,CAAC,CACH,CAAC,EAAkBA,EAAI,MAAO,CAC5B,MAAO,8BACP,SAAyBA,EAAI,OAAQ,CACnC,KAAM,QACR,CAAC,CACH,CAAC,CAAC,CACJ,CAAC,CACH,CACA,MAAO,CACL9E,GAAW,CACb,CACF,EG/TA,OAAS,OAAA+E,OAAW,4BAEpB,SAASC,GAAmBC,EAASC,EAAQC,EAAgB,CAC3D,GAAIF,IAAY,OACd,OAAOA,EAET,GAAIC,EACF,OAAOC,CAGX,CACO,SAASC,GAAUC,EAAO,CAC/B,GAAIA,EAAM,OAAS,OAAQ,CACzB,GAAM,CACJ,KAAAC,EACA,OAAAC,EACA,IAAAC,EACA,SAAAC,EACA,aAAcC,EACd,eAAgBC,EAChB,WAAYC,EACZ,SAAUC,EACV,MAAOC,EACP,QAASC,EACT,KAAMC,EACN,GAAGC,CACL,EAAIZ,EACJ,OAAsBa,GAAI,IAAK,CAC7B,GAAGD,EACH,KAAAX,EACA,OAAAC,EACA,IAAAC,EACA,SAAAC,EACA,MAAOU,EAAG,aAAc,eAAeJ,GAAY,QAAQ,GAAI,eAAeC,GAAS,IAAI,GAAIF,CAAU,EACzG,aAAcJ,EACd,eAAgBC,EAChB,WAAYC,EACZ,SAAUC,CACZ,CAAC,CACH,CACA,GAAM,CACJ,QAAAO,EACA,KAAAC,EACA,MAAOC,EACP,SAAAC,EACA,aAAcC,EACd,KAAAC,EAAO,SACP,SAAAC,EACA,QAAAzB,EACA,eAAAE,EAAiB,GACjB,OAAAD,EAAS,GACT,WAAYyB,EACZ,GAAGC,CACL,EAAIvB,EACEwB,EAAcC,GAAS,CAC3B,GAAI5B,GAAUD,IAAY,OAAQ,CAChC,IAAM8B,EAASD,EAAM,cACfE,EAAOD,EAAO,aAAa,cAAc,IAAM,OACrDA,EAAO,aAAa,eAAgB,OAAOC,CAAI,CAAC,CAClD,CACAL,IAAUG,CAAK,CACjB,EACA,OAAsBZ,GAAI,SAAU,CAClC,GAAGU,EACH,KAAAH,EACA,MAAON,EAAG,aAAc,eAAeC,GAAW,QAAQ,GAAI,eAAeC,GAAQ,IAAI,GAAIC,CAAS,EACtG,SAAAI,EACA,aAAcF,EACd,eAAgBxB,GAAmBC,EAASC,EAAQC,CAAc,EAClE,cAAeD,GAAUD,IAAY,OAAS,GAAK,OACnD,WAAYC,GAAUyB,EAAUE,EAAc,OAC9C,SAAAN,CACF,CAAC,CACH,CNpEO,IAAMU,GAAoBC,GAAkBC,EAA0B,CAAC,CAC5E,SAAAC,EACA,GAAGC,CACL,IAAqBC,EAAI,sBAAuB,CAC9C,GAAGD,EACH,SAAAD,CACF,CAAC,EAAG,CACF,YAAa,CAAC,uBAAuB,CACvC,CAAC,EACM,SAASG,GAAyB,CACvC,SAAAH,EACA,KAAAI,EAAO,WACP,MAAAC,EACA,QAAAC,EAAU,QACV,GAAGL,CACL,EAAG,CACD,OAAsBC,EAAIK,GAAW,CACnC,GAAGN,EACH,KAAAG,EACA,QAAAE,EACA,uBAAwB,GACxB,0BAA2B,GAC3B,aAAcD,EACd,SAAAL,CACF,CAAC,CACH,CACO,SAASQ,GAAsB,CACpC,SAAAR,EACA,KAAAI,EAAO,WACP,KAAAK,EACA,MAAOC,EACP,GAAGT,CACL,EAAG,CACD,OAAsBC,EAAI,IAAK,CAC7B,GAAGD,EACH,KAAAG,EACA,KAAAK,EACA,uBAAwB,GACxB,MAAOE,EAAG,aAAc,oBAAqB,iBAAkBD,CAAS,EACxE,SAAAV,CACF,CAAC,CACH,CACO,SAASY,GAAuB,CACrC,SAAAZ,EACA,KAAAI,EAAO,SACP,MAAAC,EACA,MAAOK,EACP,GAAGT,CACL,EAAG,CACD,OAAsBC,EAAI,MAAO,CAC/B,GAAGD,EACH,KAAAG,EACA,MAAOM,EACP,wBAAyB,GACzB,aAAcL,EACd,SAAAL,CACF,CAAC,CACH",
6
- "names": ["jsx", "cx", "parts", "RADIANT_VIEW_ELEMENT", "RADIANT_SCRIPT_MODULE", "RADIANT_SCRIPT_EXPORT", "linkViewToElement", "view", "element", "RADIANT_VIEW_ELEMENT", "ssrModule", "RADIANT_SCRIPT_MODULE", "RADIANT_SCRIPT_EXPORT", "defineRadiantView", "render", "_options", "args", "jsx", "jsxs", "RadiantElement", "customElement", "onEvent", "prop", "FOCUSABLE_CANDIDATE_SELECTOR", "queryRovingTabindexItems", "root", "FOCUSABLE_CANDIDATE_SELECTOR", "element", "applyRovingTabindex", "items", "activeIndex", "item", "index", "focusRovingItem", "next", "deltaForKey", "key", "orientation", "navigateRovingTabindex", "options", "current", "wrap", "delta", "_initProto", "_initClass", "_init_label", "_init_extra_label", "_applyDecs", "e", "t", "n", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "r", "o", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiNavigationMenu", "RuiNavigationMenu", "RadiantElement", "customElement", "prop", "onEvent", "label", "items", "activeIndex", "item", "applyRovingTabindex", "value", "panel", "queryRovingTabindexItems", "focusables", "open", "trigger", "returnFocus", "previous", "focusPanel", "event", "target", "openPanel", "node", "element", "active", "barItems", "isTrigger", "result", "navigateRovingTabindex", "nextItem", "nextValue", "nextIsTrigger", "jsxs", "jsx", "jsx", "resolveAriaPressed", "pressed", "toggle", "defaultPressed", "RuiButton", "props", "href", "target", "rel", "download", "ariaLabel2", "ariaCurrent", "onClick2", "children2", "className2", "variant2", "size2", "host2", "jsx", "cx", "variant", "size", "className", "children", "ariaLabel", "type", "disabled", "onClick", "host", "handleClick", "event", "button", "next", "RuiNavigationMenu", "defineRadiantView", "_RuiNavigationMenu", "children", "props", "jsx", "RuiNavigationMenuTrigger", "slot", "value", "variant", "RuiButton", "RuiNavigationMenuLink", "href", "className", "cx", "RuiNavigationMenuPanel"]
3
+ "sources": ["../../../../src/components/ui/navigation-menu/navigation-menu.tsx", "../../../../src/lib/cx.ts", "../../../../src/components/ui/navigation-menu/navigation-menu.script.tsx", "../../../../src/lib/focusable-elements.ts", "../../../../src/lib/roving-tabindex.ts", "../../../../src/components/ui/button/button.tsx"],
4
+ "sourcesContent": ["import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport \"./navigation-menu.script\";\nimport { RuiButton } from \"../button/button\";\nexport function RuiNavigationMenu({\n children,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-navigation-menu\", {\n ...props,\n children\n });\n}\nexport function RuiNavigationMenuTrigger({\n children,\n slot = \"triggers\",\n value,\n variant = \"ghost\",\n ...props\n}) {\n return /* @__PURE__ */jsx(RuiButton, {\n ...props,\n slot,\n variant,\n \"data-navigation-item\": true,\n \"data-navigation-trigger\": true,\n \"data-value\": value,\n children\n });\n}\nexport function RuiNavigationMenuLink({\n children,\n slot = \"triggers\",\n href,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"a\", {\n ...props,\n slot,\n href,\n \"data-navigation-item\": true,\n class: cx(\"rui-button\", \"rui-button--ghost\", \"rui-button--md\", className),\n children\n });\n}\nexport function RuiNavigationMenuPanel({\n children,\n slot = \"panels\",\n value,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n slot,\n class: className,\n \"data-navigation-panel\": true,\n \"data-value\": value,\n children\n });\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "let _initProto, _initClass, _init_label, _init_extra_label;\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, onEvent, prop } from \"@ecopages/radiant\";\nimport { queryRovingTabindexItems } from \"@/lib/focusable-elements\";\nimport { applyRovingTabindex, navigateRovingTabindex } from \"@/lib/roving-tabindex\";\nlet _RuiNavigationMenu;\nclass RuiNavigationMenu extends RadiantElement {\n static {\n ({\n e: [_init_label, _init_extra_label, _initProto],\n c: [_RuiNavigationMenu, _initClass]\n } = _applyDecs(this, [customElement(\"rui-navigation-menu\")], [[prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [onEvent({\n document: true,\n type: \"click\"\n }), 2, \"onDocumentClick\"], [onEvent({\n document: true,\n type: \"keydown\"\n }), 2, \"onDocumentKeydown\"], [onEvent({\n ref: \"root\",\n type: \"keydown\"\n }), 2, \"onRootKeydown\"], [onEvent({\n selector: \"[data-navigation-trigger]\",\n type: \"click\"\n }), 2, \"onTriggerClick\"], [onEvent({\n selector: \"[data-navigation-item]\",\n type: \"keydown\"\n }), 2, \"onBarItemKeydown\"], [onEvent({\n selector: \"[data-navigation-panel]\",\n type: \"keydown\"\n }), 2, \"onPanelKeydown\"]], 0, void 0, RadiantElement));\n }\n label = (_initProto(this), _init_label(this));\n resolvedAriaLabel = (_init_extra_label(this), this.$.label.map(label => label || void 0));\n openValue = null;\n connectedCallback() {\n super.connectedCallback();\n queueMicrotask(() => {\n this.syncPanels();\n this.syncBarRovingTabindex();\n });\n }\n getBarItems() {\n return Array.from(this.querySelectorAll(\"[data-navigation-item]\"));\n }\n syncBarRovingTabindex() {\n const items = this.getBarItems();\n const activeIndex = Math.max(0, items.findIndex(item => item.tabIndex === 0 || item === document.activeElement));\n applyRovingTabindex(items, activeIndex);\n }\n isBarTrigger(item) {\n return item.hasAttribute(\"data-navigation-trigger\");\n }\n getTriggers() {\n return Array.from(this.querySelectorAll(\"[data-navigation-trigger]\"));\n }\n getPanel(value) {\n return this.querySelector(`[data-navigation-panel][data-value=\"${value}\"]`);\n }\n getTrigger(value) {\n return this.querySelector(`[data-navigation-trigger][data-value=\"${value}\"]`);\n }\n getPanels() {\n return Array.from(this.querySelectorAll(\"[data-navigation-panel]\"));\n }\n getPanelFocusables(panel) {\n return queryRovingTabindexItems(panel);\n }\n focusPanelEntry(value) {\n const panel = this.getPanel(value);\n if (!panel) {\n this.getTrigger(value)?.focus();\n return;\n }\n const focusables = this.getPanelFocusables(panel);\n if (focusables.length > 0) {\n focusables[0].focus();\n return;\n }\n if (!panel.hasAttribute(\"tabindex\")) {\n panel.tabIndex = -1;\n }\n panel.focus();\n }\n syncPanels() {\n for (const panel of this.getPanels()) {\n const value = panel.getAttribute(\"data-value\") ?? \"\";\n const open = this.openValue === value;\n panel.hidden = !open;\n panel.dataset.state = open ? \"open\" : \"closed\";\n panel.setAttribute(\"aria-hidden\", String(!open));\n const trigger = this.getTrigger(value);\n if (trigger) {\n trigger.setAttribute(\"aria-expanded\", String(open));\n panel.setAttribute(\"role\", \"region\");\n panel.setAttribute(\"aria-labelledby\", trigger.id || `${value}-trigger`);\n if (!trigger.id) {\n trigger.id = `${value}-trigger`;\n }\n }\n }\n for (const trigger of this.getTriggers()) {\n const value = trigger.getAttribute(\"data-value\") ?? \"\";\n const open = this.openValue === value;\n trigger.setAttribute(\"aria-expanded\", String(open));\n if (this.getPanel(value)) {\n trigger.setAttribute(\"aria-haspopup\", \"true\");\n } else {\n trigger.removeAttribute(\"aria-haspopup\");\n }\n }\n }\n closeMenu(returnFocus = false) {\n const previous = this.openValue;\n if (!previous) {\n return;\n }\n this.openValue = null;\n this.syncPanels();\n if (returnFocus) {\n this.getTrigger(previous)?.focus();\n }\n }\n openPanel(value, focusPanel = true) {\n if (this.openValue === value) {\n this.closeMenu(true);\n return;\n }\n this.openValue = value;\n this.syncPanels();\n queueMicrotask(() => {\n if (focusPanel) {\n this.focusPanelEntry(value);\n } else {\n this.getTrigger(value)?.focus();\n }\n });\n }\n getEventElement(event) {\n const target = event.target;\n if (target instanceof Element) {\n return target;\n }\n if (target instanceof Text) {\n return target.parentElement;\n }\n return null;\n }\n isWithinOpenPanel(event) {\n if (!this.openValue) {\n return false;\n }\n const openPanel = this.getPanel(this.openValue);\n if (!openPanel) {\n return false;\n }\n return event.composedPath().some(node => node instanceof Node && openPanel.contains(node));\n }\n onDocumentClick(event) {\n if (!this.openValue) {\n return;\n }\n if (this.isWithinOpenPanel(event)) {\n return;\n }\n const element = this.getEventElement(event);\n if (element && this.contains(element)) {\n return;\n }\n this.closeMenu();\n }\n onDocumentKeydown(event) {\n if (event.key !== \"Escape\" || !this.openValue) {\n return;\n }\n const active = document.activeElement;\n if (active && !this.contains(active)) {\n return;\n }\n event.preventDefault();\n this.closeMenu(true);\n }\n onRootKeydown(event) {\n if (event.key === \"Escape\" && this.openValue) {\n event.preventDefault();\n this.closeMenu(true);\n }\n }\n onTriggerClick(event) {\n const trigger = event.target.closest(\"[data-navigation-trigger]\");\n const value = trigger?.getAttribute(\"data-value\");\n if (!trigger || !value) {\n return;\n }\n event.preventDefault();\n this.openPanel(value);\n }\n onBarItemKeydown(event) {\n const item = event.target.closest(\"[data-navigation-item]\");\n if (!item) {\n return;\n }\n const barItems = this.getBarItems();\n const isTrigger = this.isBarTrigger(item);\n const value = item.getAttribute(\"data-value\");\n if (event.key === \"Escape\") {\n if (this.openValue) {\n event.preventDefault();\n this.closeMenu(true);\n }\n return;\n }\n if (isTrigger && value && (event.key === \"Enter\" || event.key === \" \")) {\n event.preventDefault();\n this.openPanel(value);\n return;\n }\n if (isTrigger && value && event.key === \"ArrowDown\") {\n event.preventDefault();\n if (this.openValue === value) {\n this.focusPanelEntry(value);\n } else {\n this.openPanel(value);\n }\n return;\n }\n const result = navigateRovingTabindex({\n items: barItems,\n current: item,\n key: event.key,\n orientation: \"horizontal\",\n wrap: false\n });\n if (!result.handled) {\n return;\n }\n event.preventDefault();\n const nextItem = result.item;\n const nextValue = nextItem.getAttribute(\"data-value\");\n const nextIsTrigger = this.isBarTrigger(nextItem);\n if (this.openValue) {\n if (nextIsTrigger && nextValue) {\n this.openPanel(nextValue);\n } else {\n this.closeMenu(false);\n }\n }\n }\n onPanelKeydown(event) {\n const target = event.target;\n if (!(target instanceof Element)) {\n return;\n }\n const panel = target.closest(\"[data-navigation-panel]\");\n if (!panel || panel.hidden) {\n return;\n }\n const value = panel.getAttribute(\"data-value\");\n if (!value || this.openValue !== value) {\n return;\n }\n const active = document.activeElement instanceof HTMLElement ? document.activeElement : null;\n if (!active || !panel.contains(active)) {\n return;\n }\n if (event.key === \"Escape\") {\n event.preventDefault();\n this.closeMenu(true);\n return;\n }\n const focusables = this.getPanelFocusables(panel);\n if (event.key === \"ArrowUp\" && active === focusables[0]) {\n event.preventDefault();\n this.getTrigger(value)?.focus();\n return;\n }\n if (!focusables.length) {\n return;\n }\n const result = navigateRovingTabindex({\n items: focusables,\n current: active,\n key: event.key,\n orientation: \"vertical\",\n wrap: false\n });\n if (!result.handled) {\n return;\n }\n event.preventDefault();\n }\n render() {\n return /* @__PURE__ */jsxs(\"nav\", {\n class: \"rui-navigation-menu\",\n \"data-ref\": \"root\",\n \"aria-label\": this.resolvedAriaLabel,\n children: [/* @__PURE__ */jsx(\"div\", {\n class: \"rui-navigation-menu__bar\",\n children: /* @__PURE__ */jsx(\"slot\", {\n name: \"triggers\"\n })\n }), /* @__PURE__ */jsx(\"div\", {\n class: \"rui-navigation-menu__panels\",\n children: /* @__PURE__ */jsx(\"slot\", {\n name: \"panels\"\n })\n })]\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiNavigationMenu as RuiNavigationMenu };", "const FOCUSABLE_CANDIDATE_SELECTOR = \"a[href], button, input, select, textarea, [tabindex]\";\nfunction isFocusableCandidate(element) {\n return !element.hasAttribute(\"disabled\") && element.getAttribute(\"tabindex\") !== \"-1\";\n}\nexport function queryFocusableCandidates(root) {\n return Array.from(root.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR)).filter(isFocusableCandidate);\n}\nexport function queryRovingTabindexItems(root) {\n return Array.from(root.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR)).filter(element => !element.hasAttribute(\"disabled\"));\n}\nexport function findFirstFocusableCandidate(root) {\n return queryFocusableCandidates(root)[0];\n}\nfunction isVisible(element) {\n return element.getClientRects().length > 0 && !element.closest(\"[hidden]\");\n}\nexport function getFocusableElements(root) {\n return queryFocusableCandidates(root).filter(isVisible);\n}", "export function applyRovingTabindex(items, activeIndex) {\n items.forEach((item, index) => {\n item.tabIndex = index === activeIndex ? 0 : -1;\n });\n}\nexport function focusRovingItem(items, index) {\n if (!items.length) return null;\n const next = Math.max(0, Math.min(items.length - 1, index));\n applyRovingTabindex(items, next);\n items[next]?.focus();\n return items[next] ?? null;\n}\nfunction deltaForKey(key, orientation) {\n if (key === \"Home\") return \"first\";\n if (key === \"End\") return \"last\";\n if (orientation === \"horizontal\") {\n if (key === \"ArrowRight\") return \"next\";\n if (key === \"ArrowLeft\") return \"prev\";\n return null;\n }\n if (key === \"ArrowDown\") return \"next\";\n if (key === \"ArrowUp\") return \"prev\";\n return null;\n}\nexport function navigateRovingTabindex(options) {\n const {\n items,\n current,\n key,\n orientation = \"horizontal\",\n wrap = true\n } = options;\n if (!items.length || !current) return {\n handled: false\n };\n const index = items.indexOf(current);\n if (index < 0) return {\n handled: false\n };\n const delta = deltaForKey(key, orientation);\n if (!delta) return {\n handled: false\n };\n let next = index;\n if (delta === \"first\") next = 0;else if (delta === \"last\") next = items.length - 1;else if (delta === \"next\") next = wrap ? (index + 1) % items.length : Math.min(items.length - 1, index + 1);else next = wrap ? (index - 1 + items.length) % items.length : Math.max(0, index - 1);\n const item = focusRovingItem(items, next);\n if (!item) return {\n handled: false\n };\n return {\n handled: true,\n index: next,\n item\n };\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nfunction resolveAriaPressed(pressed, toggle, defaultPressed) {\n if (pressed !== void 0) {\n return pressed;\n }\n if (toggle) {\n return defaultPressed;\n }\n return void 0;\n}\nexport function RuiButton(props) {\n if (props.href !== void 0) {\n const {\n href,\n target,\n rel,\n download,\n \"aria-label\": ariaLabel2,\n \"aria-current\": ariaCurrent,\n \"on:click\": onClick2,\n children: children2,\n class: className2,\n variant: variant2,\n size: size2,\n ...host2\n } = props;\n return /* @__PURE__ */jsx(\"a\", {\n ...host2,\n href,\n target,\n rel,\n download,\n class: cx(\"rui-button\", `rui-button--${variant2 ?? \"filled\"}`, `rui-button--${size2 ?? \"md\"}`, className2),\n \"aria-label\": ariaLabel2,\n \"aria-current\": ariaCurrent,\n \"on:click\": onClick2,\n children: children2\n });\n }\n const {\n variant,\n size,\n class: className,\n children,\n \"aria-label\": ariaLabel,\n type = \"button\",\n disabled,\n pressed,\n defaultPressed = false,\n toggle = false,\n \"on:click\": onClick,\n ...host\n } = props;\n const handleClick = event => {\n if (toggle && pressed === void 0) {\n const button = event.currentTarget;\n const next = button.getAttribute(\"aria-pressed\") !== \"true\";\n button.setAttribute(\"aria-pressed\", String(next));\n }\n onClick?.(event);\n };\n return /* @__PURE__ */jsx(\"button\", {\n ...host,\n type,\n class: cx(\"rui-button\", `rui-button--${variant ?? \"filled\"}`, `rui-button--${size ?? \"md\"}`, className),\n disabled,\n \"aria-label\": ariaLabel,\n \"aria-pressed\": resolveAriaPressed(pressed, toggle, defaultPressed),\n \"data-toggle\": toggle && pressed === void 0 ? \"\" : void 0,\n \"on:click\": toggle || onClick ? handleClick : void 0,\n children\n });\n}"],
5
+ "mappings": "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",
6
+ "names": ["jsx", "cx", "parts", "jsx", "jsxs", "RadiantElement", "customElement", "onEvent", "prop", "FOCUSABLE_CANDIDATE_SELECTOR", "queryRovingTabindexItems", "root", "FOCUSABLE_CANDIDATE_SELECTOR", "element", "applyRovingTabindex", "items", "activeIndex", "item", "index", "focusRovingItem", "next", "deltaForKey", "key", "orientation", "navigateRovingTabindex", "options", "current", "wrap", "delta", "_initProto", "_initClass", "_init_label", "_init_extra_label", "_applyDecs", "e", "t", "n", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "r", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiNavigationMenu", "RuiNavigationMenu", "RadiantElement", "customElement", "prop", "onEvent", "label", "items", "activeIndex", "item", "applyRovingTabindex", "value", "panel", "queryRovingTabindexItems", "focusables", "open", "trigger", "returnFocus", "previous", "focusPanel", "event", "target", "openPanel", "node", "element", "active", "barItems", "isTrigger", "result", "navigateRovingTabindex", "nextItem", "nextValue", "nextIsTrigger", "jsxs", "jsx", "jsx", "resolveAriaPressed", "pressed", "toggle", "defaultPressed", "RuiButton", "props", "href", "target", "rel", "download", "ariaLabel2", "ariaCurrent", "onClick2", "children2", "className2", "variant2", "size2", "host2", "jsx", "cx", "variant", "size", "className", "children", "ariaLabel", "type", "disabled", "onClick", "host", "handleClick", "event", "button", "next", "RuiNavigationMenu", "children", "props", "jsx", "RuiNavigationMenuTrigger", "slot", "value", "variant", "RuiButton", "RuiNavigationMenuLink", "href", "className", "cx", "RuiNavigationMenuPanel"]
7
7
  }
@@ -26,8 +26,8 @@ rui-navigation-menu {
26
26
  border-bottom-width: 1px;
27
27
  border-color: var(--color-border, var(--border));
28
28
  background-color: var(--color-background, var(--background));
29
- padding-inline: var(--spacing-3, var(--space-3));
30
- padding-block: var(--spacing-2, var(--space-2));
29
+ padding-inline: var(--spacing-control-x, var(--space-control-x));
30
+ padding-block: var(--spacing-control-y, var(--space-control-y));
31
31
  }
32
32
  .rui-navigation-menu__bar .rui-button,
33
33
  .rui-navigation-menu__bar a.rui-button {
@@ -1,9 +1,10 @@
1
1
  import type { JsxHtmlPropsWithChildren } from '@ecopages/jsx';
2
2
  import type { RuiNavigationMenuProps } from './navigation-menu.script';
3
+ import './navigation-menu.script';
3
4
  import { type RuiButtonControlProps } from '../button/button';
4
- export declare const RuiNavigationMenu: import("@/lib/radiant-view").RadiantViewComponent<JsxHtmlPropsWithChildren<RuiNavigationMenuProps & {
5
+ export declare function RuiNavigationMenu({ children, ...props }: JsxHtmlPropsWithChildren<RuiNavigationMenuProps & {
5
6
  slot?: string;
6
- }>>;
7
+ }>): import("@ecopages/jsx").JsxRenderable;
7
8
  export type RuiNavigationMenuTriggerProps = JsxHtmlPropsWithChildren<Pick<RuiButtonControlProps, 'variant' | 'disabled' | 'class' | 'type'> & {
8
9
  slot?: string;
9
10
  value: string;
@@ -17,8 +17,12 @@ type RuiNavigationMenuBindings = {
17
17
  *
18
18
  * @see https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/examples/disclosure-navigation/
19
19
  * @element rui-navigation-menu
20
+ * @attr {string} label - Accessible name for the `nav` landmark.
20
21
  * @slot triggers - Top-level navigation triggers and plain links.
21
22
  * @slot panels - Disclosure panels composed from other primitives.
23
+ * @cssclass rui-navigation-menu - Root `nav` surface.
24
+ * @cssclass rui-navigation-menu__bar - Top-level trigger / link bar.
25
+ * @cssclass rui-navigation-menu__panels - Panel region (`aria-hidden` toggling).
22
26
  */
23
27
  export declare class RuiNavigationMenu extends RadiantElement<RuiNavigationMenuBindings> {
24
28
  label: string;
@@ -1,2 +1,2 @@
1
1
  export { RuiNumberField as RuiNumberFieldElement, type RuiNumberFieldProps, type RuiNumberFieldChangeDetail, type RuiNumberFieldCommitBehavior, } from './number-field.script';
2
- export { RuiNumberField, RuiNumberFieldGroup, RuiNumberFieldInput, RuiNumberFieldIncrementButton, RuiNumberFieldDecrementButton, } from './number-field';
2
+ export { RuiNumberField, RuiNumberFieldGroup, RuiNumberFieldInput, RuiNumberFieldIncrementButton, RuiNumberFieldDecrementButton, RuiNumberFieldSteppers, } from './number-field';
@@ -1,2 +1,2 @@
1
- import{jsx as S,jsxs as et}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as tt,customElement as pt,event as bt,onEvent as D,onUpdated as ft,prop as d,state as it}from"@ecopages/radiant";function q(t){if(!t)return;let e=t.split(",").map(i=>i.trim()).filter(Boolean);return e.length>1?e:e[0]}function J(t,e){return new Intl.NumberFormat(t,e)}function X(t,e,i){return Number.isFinite(t)?J(e,i).format(t):""}function H(t,e,i){let r=t.trim();if(!r)return null;let y=J(e,i).formatToParts(1234.5),v=y.find(V=>V.type==="decimal")?.value??".",l=y.find(V=>V.type==="group")?.value??",",w=r.replaceAll(l,"").replace(v,".").replace(/[^\d.-]/g,""),A=Number(w);return Number.isFinite(A)?A:null}function Q(t){if(t)try{let e=JSON.parse(t);return ut(e)?(new Intl.NumberFormat(void 0,e),e):void 0}catch{return}}function ut(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Z(t,e,i,r){let m=Math.round((t-e)/r)*r+e;return Math.min(i,Math.max(e,m))}function st(t){let e=t.previousElementSibling;return e?.tagName.toLowerCase()==="label"?e:t.parentElement?.querySelector("[data-rui-field-label], label.rui-label")??null}function be(t,e,i){if(!e||e.hasAttribute("data-rui-field-managed"))return;let r=st(t);if(r){r.id||(r.id=i.labelId),r.htmlFor||(r.htmlFor=i.controlId),e.setAttribute("aria-labelledby",r.id),e.removeAttribute("aria-label");return}if(i.label){e.setAttribute("aria-label",i.label),e.removeAttribute("aria-labelledby");return}e.removeAttribute("aria-label"),e.removeAttribute("aria-labelledby")}var fe,he,ye,_e,ge,ve,Ve,xe,Ie,Se,Ne,De,Ae,Ee,we,Oe,Fe,Le,Re,Te,Be,je,ke,Me,ze,qe,$e,Ce,Ue,We,Ye,Ge,Ke,Pe,Je,Xe,He,Qe;function ot(t,e,i,r,m,y){var v,l,w,A,V,C,O,ee=Symbol.metadata||Symbol.for("Symbol.metadata"),te=Object.defineProperty,U=Object.create,ie=[U(null),U(null)],re=e.length;function B(a,f,p){return function(n,u){f&&(u=n,n=t);for(var h=0;h<a.length;h++)u=a[h].apply(n,p?[u]:[]);return p?u:n}}function x(a,f,p,n){if(typeof a!="function"&&(n||a!==void 0))throw new TypeError(f+" must "+(p||"be")+" a function"+(n?"":" or undefined"));return a}function ae(a,f,p,n,u,h,N,b,_,g,le){function W(o){if(!le(o))throw new TypeError("Attempted to access private element on non-instance")}var Y=[].concat(f[0]),ue=f[3],G=!N,F=u===1,se=u===3,oe=u===4,j=u===2;function k(o,E,me){return function(z,pe){return E&&(pe=z,z=a),me&&me(z),s[o].call(z,pe)}}if(!G){var s={},K=[],I=se?"get":oe||F?"set":"value";if(_?(g||F?s={get:Ze(function(){return ue(this)},n,"get"),set:function(o){f[4](this,o)}}:s[I]=ue,g||Ze(s[I],n,j?"":I)):g||(s=Object.getOwnPropertyDescriptor(a,n)),!g&&!_){if((l=ie[+b][n])&&(l^u)!==7)throw Error("Decorating two elements with the same name ("+s[I].name+") is not supported yet");ie[+b][n]=u<3?1:u}}for(var c=a,M=Y.length-1;M>=0;M-=p?2:1){var de=x(Y[M],"A decorator","be",!0),ce=p?Y[M-1]:void 0,P={},L={kind:["field","accessor","method","getter","setter","class"][u],name:n,metadata:v,addInitializer:function(o,E){if(o.v)throw new TypeError("attempted to call addInitializer after decoration was finished");x(E,"An initializer","be",!0),h.push(E)}.bind(null,P)};if(G)l=de.call(ce,c,L),P.v=1,x(l,"class decorators","return")&&(c=l);else if(L.static=b,L.private=_,l=L.access={has:_?le.bind():function(o){return n in o}},oe||(l.get=_?j?function(o){return W(o),s.value}:k("get",0,W):function(o){return o[n]}),j||se||(l.set=_?k("set",0,W):function(o,E){o[n]=E}),c=de.call(ce,F?{get:s.get,set:s.set}:s[I],L),P.v=1,F){if(typeof c=="object"&&c)(l=x(c.get,"accessor.get"))&&(s.get=l),(l=x(c.set,"accessor.set"))&&(s.set=l),(l=x(c.init,"accessor.init"))&&K.unshift(l);else if(c!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else x(c,(g?"field":"method")+" decorators","return")&&(g?K.unshift(c):s[I]=c)}return u<2&&N.push(B(K,b,1),B(h,b,0)),g||G||(_?F?N.splice(-1,0,k("get",b),k("set",b)):N.push(j?s[I]:x.call.bind(s[I])):te(a,n,s)),c}function ne(a){return te(a,ee,{configurable:!0,enumerable:!0,value:v})}return y!==void 0&&(v=y[ee]),v=U(v??null),V=[],C=function(a){a&&V.push(B(a))},O=function(a,f){for(var p=0;p<i.length;p++){var n=i[p],u=n[1],h=7&u;if((8&u)==a&&!h==f){var N=n[2],b=!!n[3],_=16&u;ae(a?t:t.prototype,n,_,b?"#"+N:dt(N),h,h<2?[]:a?A=A||[]:w=w||[],V,!!a,b,f,a&&b?function(g){return mt(g)===t}:m)}}},O(8,0),O(0,0),O(8,1),O(0,1),C(w),C(A),l=V,re||ne(t),{e:l,get c(){var a=[];return re&&[ne(t=ae(t,[e],r,t.name,5,a)),B(a,1)]}}}function dt(t){var e=ct(t,"string");return typeof e=="symbol"?e:e+""}function ct(t,e){if(typeof t!="object"||!t)return t;var i=t[Symbol.toPrimitive];if(i!==void 0){var r=i.call(t,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Ze(t,e,i){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:i?i+" "+e:e})}catch{}return t}function mt(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(t!==null?typeof t:"null"));return t}var $,rt=class extends tt{static{({e:[ye,_e,ge,ve,Ve,xe,Ie,Se,Ne,De,Ae,Ee,we,Oe,Fe,Le,Re,Te,Be,je,ke,Me,ze,qe,$e,Ce,Ue,We,Ye,Ge,Ke,Pe,Je,Xe,He,Qe,fe],c:[$,he]}=ot(this,[pt("rui-number-field")],[[d({type:Number,reflect:!0}),0,"value"],[d({type:Number,attribute:"default-value"}),0,"defaultValue"],[d({type:Number,attribute:"min-value",defaultValue:Number.NEGATIVE_INFINITY}),0,"minValue"],[d({type:Number,attribute:"max-value",defaultValue:Number.POSITIVE_INFINITY}),0,"maxValue"],[d({type:Number,defaultValue:1}),0,"step"],[d({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[d({type:Boolean,attribute:"read-only",reflect:!0,defaultValue:!1}),0,"readOnly"],[d({type:String,defaultValue:""}),0,"label"],[d({type:String,defaultValue:""}),0,"name"],[d({type:String,defaultValue:""}),0,"locale"],[d({type:String,attribute:"format-options",defaultValue:""}),0,"formatOptions"],[d({type:String,attribute:"commit-behavior",defaultValue:"snap"}),0,"commitBehavior"],[d({type:String,attribute:"increment-aria-label",defaultValue:""}),0,"incrementAriaLabel"],[d({type:String,attribute:"decrement-aria-label",defaultValue:""}),0,"decrementAriaLabel"],[d({type:Boolean,attribute:"wheel-disabled",defaultValue:!1}),0,"wheelDisabled"],[bt({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[it,0,"decreaseDisabled"],[it,0,"increaseDisabled"],[ft(["value","defaultValue","minValue","maxValue","step","label","disabled","readOnly","locale","formatOptions","commitBehavior"]),2,"onPropsUpdated"],[D({selector:'[data-number-field-action="decrement"]',type:"click"}),2,"decrement"],[D({selector:'[data-number-field-action="increment"]',type:"click"}),2,"increment"],[D({selector:"[data-number-field-input]",type:"focus"}),2,"onInputFocus"],[D({selector:"[data-number-field-input]",type:"blur"}),2,"onInputBlur"],[D({selector:"[data-number-field-input]",type:"input"}),2,"onInput"],[D({selector:"[data-number-field-input]",type:"keydown"}),2,"onKeydown"],[D({selector:"[data-number-field-input]",type:"wheel"}),2,"onWheel"]],0,void 0,tt))}value=(fe(this),ye(this));defaultValue=(_e(this),ge(this));minValue=(ve(this),Ve(this));maxValue=(xe(this),Ie(this));step=(Se(this),Ne(this));disabled=(De(this),Ae(this));readOnly=(Ee(this),we(this));label=(Oe(this),Fe(this));name=(Le(this),Re(this));locale=(Te(this),Be(this));formatOptions=(je(this),ke(this));commitBehavior=(Me(this),ze(this));incrementAriaLabel=(qe(this),$e(this));decrementAriaLabel=(Ce(this),Ue(this));wheelDisabled=(We(this),Ye(this));changeEvent=(Ge(this),Ke(this));decreaseDisabled=(Pe(this),Je(this,!1));increaseDisabled=(Xe(this),He(this,!1));editing=(Qe(this),!1);draftValue="";initialized=!1;uid=Math.random().toString(36).slice(2,9);nameAttr=this.$.name.map(e=>e||void 0);get resolvedLocale(){return q(this.locale)}get resolvedFormatOptions(){return Q(this.formatOptions)}get inputId(){return`rui-number-field-input-${this.uid}`}getNumericValue(){return typeof this.value=="number"&&Number.isFinite(this.value)?this.value:typeof this.defaultValue=="number"&&Number.isFinite(this.defaultValue)?this.defaultValue:0}getInput(){return this.querySelector("[data-number-field-input]")}getHiddenInput(){return this.querySelector("[data-number-field-value]")}syncLabel(){let e=this.getInput();be(this,e,{controlId:this.inputId,label:this.label,labelId:`rui-number-field-label-${this.uid}`})}syncInput(){let e=this.getInput(),i=this.getHiddenInput();if(!e)return;e.id||(e.id=this.inputId);let r=this.getNumericValue();e.setAttribute("role","spinbutton"),e.setAttribute("inputmode","decimal"),e.toggleAttribute("data-disabled",this.disabled),e.toggleAttribute("data-readonly",this.readOnly),Number.isFinite(this.minValue)?e.setAttribute("aria-valuemin",String(this.minValue)):e.removeAttribute("aria-valuemin"),Number.isFinite(this.maxValue)?e.setAttribute("aria-valuemax",String(this.maxValue)):e.removeAttribute("aria-valuemax"),e.setAttribute("aria-valuenow",String(r)),this.editing||(e.value=X(r,this.resolvedLocale,this.resolvedFormatOptions)),i&&(i.value=String(r),this.name&&(i.name=this.name),i.disabled=this.disabled)}updateStepperState(){let e=this.getNumericValue();this.decreaseDisabled=this.disabled||this.readOnly||e<=this.minValue,this.increaseDisabled=this.disabled||this.readOnly||e>=this.maxValue,queueMicrotask(()=>this.syncSlottedSteppers())}syncSlottedSteppers(){for(let e of this.querySelectorAll('[data-number-field-action="decrement"]'))e.disabled=this.decreaseDisabled;for(let e of this.querySelectorAll('[data-number-field-action="increment"]'))e.disabled=this.increaseDisabled}commitValue(e,i=!1){let r=e;if((this.commitBehavior==="snap"||i)&&(r=Z(e,this.minValue,this.maxValue,this.step)),r===this.getNumericValue()){this.editing=!1,this.syncInput(),this.updateStepperState();return}this.value=r,this.changeEvent.emit({value:r}),this.editing=!1,this.syncInput(),this.updateStepperState()}commitDraft(){let e=H(this.draftValue,this.resolvedLocale,this.resolvedFormatOptions);if(e==null){this.editing=!1,this.syncInput();return}if(this.commitBehavior==="validate"&&(e<this.minValue||e>this.maxValue)){this.editing=!1,this.syncInput();return}this.commitValue(e)}initialize(){this.initialized||(this.initialized=!0,this.value==null&&this.defaultValue!=null&&(this.value=this.defaultValue),this.syncLabel(),this.syncInput(),this.updateStepperState())}connectedCallback(){super.connectedCallback(),queueMicrotask(()=>this.initialize())}onPropsUpdated(){this.syncLabel(),this.syncInput(),this.updateStepperState()}decrement(e){e.preventDefault(),!this.decreaseDisabled&&this.commitValue(this.getNumericValue()-this.step,!0)}increment(e){e.preventDefault(),!this.increaseDisabled&&this.commitValue(this.getNumericValue()+this.step,!0)}onInputFocus(e){if(this.disabled||this.readOnly)return;let i=e.target;this.editing=!0,this.draftValue=String(this.getNumericValue()),i.value=this.draftValue,i.select()}onInputBlur(){this.editing&&this.commitDraft()}onInput(e){this.disabled||this.readOnly||(this.editing=!0,this.draftValue=e.target.value)}onKeydown(e){if(!(this.disabled||this.readOnly)){if(e.key==="ArrowUp"){e.preventDefault(),this.increment(e);return}if(e.key==="ArrowDown"){e.preventDefault(),this.decrement(e);return}if(e.key==="Home"&&Number.isFinite(this.minValue)){e.preventDefault(),this.commitValue(this.minValue,!0);return}if(e.key==="End"&&Number.isFinite(this.maxValue)){e.preventDefault(),this.commitValue(this.maxValue,!0);return}e.key==="Enter"&&(e.preventDefault(),this.commitDraft(),this.getInput()?.blur())}}onWheel(e){if(this.wheelDisabled||this.disabled||this.readOnly)return;let i=e.target;document.activeElement===i&&(e.preventDefault(),e.deltaY<0?this.increment(e):e.deltaY>0&&this.decrement(e))}render(){let e=this.incrementAriaLabel||"Increment",i=this.decrementAriaLabel||"Decrement";return S("div",{class:"rui-number-field",children:S("slot",{name:"group",children:et("div",{class:"rui-number-field__group","data-number-field-group":!0,children:[et("slot",{name:"input",children:[S("input",{type:"text","data-number-field-input":!0,"data-rui-control":!0,"data-rui-control-type":"number",class:"rui-number-field__input",disabled:this.$.disabled,readOnly:this.$.readOnly,name:this.nameAttr}),S("input",{type:"hidden","data-number-field-value":!0})]}),S("slot",{name:"decrement",children:S("button",{type:"button",class:"rui-number-field__stepper","data-number-field-action":"decrement","aria-label":i,disabled:this.$.decreaseDisabled,tabIndex:-1,children:"\u2212"})}),S("slot",{name:"increment",children:S("button",{type:"button",class:"rui-number-field__stepper","data-number-field-action":"increment","aria-label":e,disabled:this.$.increaseDisabled,tabIndex:-1,children:"+"})})]})})})}static{he()}};import{jsx as T}from"@ecopages/jsx/jsx-runtime";function R(...t){return t.filter(Boolean).join(" ")}var ht=Symbol.for("@ecopages/storybook-radiant.viewElement"),at=Symbol.for("@ecopages/storybook-radiant.scriptModule"),nt=Symbol.for("@ecopages/storybook-radiant.scriptExport");function yt(t,e){t[ht]=e;let i=e[at];i&&(t[at]=i,t[nt]=e[nt]??e.name)}function lt(t,e,i){let r=m=>e(m);return yt(r,t),r}function _t({children:t,slot:e="group",class:i,...r}){return T("div",{...r,slot:e,"data-number-field-group":!0,class:R("rui-number-field__group",i),children:t})}function gt({slot:t="input",class:e,disabled:i,readOnly:r,...m}){return T("input",{...m,type:"text",slot:t,"data-number-field-input":!0,"data-rui-control":!0,"data-rui-control-type":"number",class:R("rui-number-field__input",e),disabled:i,readOnly:r})}function vt({children:t,slot:e="increment",class:i,"aria-label":r="Increment",disabled:m,...y}){return T("button",{...y,type:"button",slot:e,"data-number-field-action":"increment",class:R("rui-number-field__stepper",i),"aria-label":r,disabled:m,tabIndex:-1,children:t??"+"})}function Vt({children:t,slot:e="decrement",class:i,"aria-label":r="Decrement",disabled:m,...y}){return T("button",{...y,type:"button",slot:e,"data-number-field-action":"decrement",class:R("rui-number-field__stepper",i),"aria-label":r,disabled:m,tabIndex:-1,children:t??"\u2212"})}var xt=lt($,({children:t,...e})=>T("rui-number-field",{...e,children:t}),{stylesheets:["./number-field.css"]});export{xt as RuiNumberField,Vt as RuiNumberFieldDecrementButton,$ as RuiNumberFieldElement,_t as RuiNumberFieldGroup,vt as RuiNumberFieldIncrementButton,gt as RuiNumberFieldInput};
1
+ import{jsx as I,jsxs as P}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as tt,customElement as ct,event as mt,onEvent as D,onUpdated as bt,prop as d,state as it}from"@ecopages/radiant";function q(t){if(!t)return;let e=t.split(",").map(i=>i.trim()).filter(Boolean);return e.length>1?e:e[0]}function J(t,e){return new Intl.NumberFormat(t,e)}function H(t,e,i){return Number.isFinite(t)?J(e,i).format(t):""}function Q(t,e,i){let r=t.trim();if(!r)return null;let b=J(e,i).formatToParts(1234.5),v=b.find(V=>V.type==="decimal")?.value??".",u=b.find(V=>V.type==="group")?.value??",",E=r.replaceAll(u,"").replace(v,".").replace(/[^\d.-]/g,""),F=Number(E);return Number.isFinite(F)?F:null}function X(t){if(t)try{let e=JSON.parse(t);return at(e)?(new Intl.NumberFormat(void 0,e),e):void 0}catch{return}}function at(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Z(t,e,i,r){if(!Number.isFinite(t))return Number.isFinite(e)?e:0;if(!Number.isFinite(r)||r===0)return pe(t,e,i);let m=Number.isFinite(e)?e:0,b=Math.round((t-m)/r)*r+m;return pe(b,e,i)}function pe(t,e,i){let r=t;return Number.isFinite(e)&&(r=Math.max(e,r)),Number.isFinite(i)&&(r=Math.min(i,r)),r}function ut(t){let e=t.previousElementSibling;return e?.tagName.toLowerCase()==="label"?e:t.parentElement?.querySelector("[data-rui-field-label], label.rui-label")??null}function fe(t,e,i){if(!e||e.hasAttribute("data-rui-field-managed"))return;let r=ut(t);if(r){r.id||(r.id=i.labelId),r.htmlFor||(r.htmlFor=i.controlId),e.setAttribute("aria-labelledby",r.id),e.removeAttribute("aria-label");return}if(i.label){e.setAttribute("aria-label",i.label),e.removeAttribute("aria-labelledby");return}e.removeAttribute("aria-label"),e.removeAttribute("aria-labelledby")}var he,_e,ye,ge,ve,Ve,xe,Ne,Ie,Se,De,Fe,Ae,Oe,we,Ee,Le,Re,Be,je,Te,ke,ze,Me,qe,$e,Ce,Ue,We,Ye,Ge,Ke,Je,He,Qe,Xe,Ze,Pe;function lt(t,e,i,r,m,b){var v,u,E,F,V,$,L,ee=Symbol.metadata||Symbol.for("Symbol.metadata"),te=Object.defineProperty,C=Object.create,ie=[C(null),C(null)],re=e.length;function j(n,h,p){return function(a,l){h&&(l=a,a=t);for(var _=0;_<n.length;_++)l=n[_].apply(a,p?[l]:[]);return p?l:a}}function x(n,h,p,a){if(typeof n!="function"&&(a||n!==void 0))throw new TypeError(h+" must "+(p||"be")+" a function"+(a?"":" or undefined"));return n}function ne(n,h,p,a,l,_,S,f,y,g,ue){function U(o){if(!ue(o))throw new TypeError("Attempted to access private element on non-instance")}var W=[].concat(h[0]),le=h[3],Y=!S,R=l===1,se=l===3,oe=l===4,T=l===2;function k(o,A,me){return function(M,be){return A&&(be=M,M=n),me&&me(M),s[o].call(M,be)}}if(!Y){var s={},G=[],N=se?"get":oe||R?"set":"value";if(y?(g||R?s={get:et(function(){return le(this)},a,"get"),set:function(o){h[4](this,o)}}:s[N]=le,g||et(s[N],a,T?"":N)):g||(s=Object.getOwnPropertyDescriptor(n,a)),!g&&!y){if((u=ie[+f][a])&&(u^l)!==7)throw Error("Decorating two elements with the same name ("+s[N].name+") is not supported yet");ie[+f][a]=l<3?1:l}}for(var c=n,z=W.length-1;z>=0;z-=p?2:1){var de=x(W[z],"A decorator","be",!0),ce=p?W[z-1]:void 0,K={},B={kind:["field","accessor","method","getter","setter","class"][l],name:a,metadata:v,addInitializer:function(o,A){if(o.v)throw new TypeError("attempted to call addInitializer after decoration was finished");x(A,"An initializer","be",!0),_.push(A)}.bind(null,K)};if(Y)u=de.call(ce,c,B),K.v=1,x(u,"class decorators","return")&&(c=u);else if(B.static=f,B.private=y,u=B.access={has:y?ue.bind():function(o){return a in o}},oe||(u.get=y?T?function(o){return U(o),s.value}:k("get",0,U):function(o){return o[a]}),T||se||(u.set=y?k("set",0,U):function(o,A){o[a]=A}),c=de.call(ce,R?{get:s.get,set:s.set}:s[N],B),K.v=1,R){if(typeof c=="object"&&c)(u=x(c.get,"accessor.get"))&&(s.get=u),(u=x(c.set,"accessor.set"))&&(s.set=u),(u=x(c.init,"accessor.init"))&&G.unshift(u);else if(c!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else x(c,(g?"field":"method")+" decorators","return")&&(g?G.unshift(c):s[N]=c)}return l<2&&S.push(j(G,f,1),j(_,f,0)),g||Y||(y?R?S.splice(-1,0,k("get",f),k("set",f)):S.push(T?s[N]:x.call.bind(s[N])):te(n,a,s)),c}function ae(n){return te(n,ee,{configurable:!0,enumerable:!0,value:v})}return b!==void 0&&(v=b[ee]),v=C(v??null),V=[],$=function(n){n&&V.push(j(n))},L=function(n,h){for(var p=0;p<i.length;p++){var a=i[p],l=a[1],_=7&l;if((8&l)==n&&!_==h){var S=a[2],f=!!a[3],y=16&l;ne(n?t:t.prototype,a,y,f?"#"+S:st(S),_,_<2?[]:n?F=F||[]:E=E||[],V,!!n,f,h,n&&f?function(g){return dt(g)===t}:m)}}},L(8,0),L(0,0),L(8,1),L(0,1),$(E),$(F),u=V,re||ae(t),{e:u,get c(){var n=[];return re&&[ae(t=ne(t,[e],r,t.name,5,n)),j(n,1)]}}}function st(t){var e=ot(t,"string");return typeof e=="symbol"?e:e+""}function ot(t,e){if(typeof t!="object"||!t)return t;var i=t[Symbol.toPrimitive];if(i!==void 0){var r=i.call(t,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function et(t,e,i){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:i?i+" "+e:e})}catch{}return t}function dt(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(t!==null?typeof t:"null"));return t}var nt,rt=class extends tt{static{({e:[ye,ge,ve,Ve,xe,Ne,Ie,Se,De,Fe,Ae,Oe,we,Ee,Le,Re,Be,je,Te,ke,ze,Me,qe,$e,Ce,Ue,We,Ye,Ge,Ke,Je,He,Qe,Xe,Ze,Pe,he],c:[nt,_e]}=lt(this,[ct("rui-number-field")],[[d({type:Number,reflect:!0}),0,"value"],[d({type:Number,attribute:"default-value"}),0,"defaultValue"],[d({type:Number,attribute:"min-value",defaultValue:Number.NEGATIVE_INFINITY}),0,"minValue"],[d({type:Number,attribute:"max-value",defaultValue:Number.POSITIVE_INFINITY}),0,"maxValue"],[d({type:Number,defaultValue:1}),0,"step"],[d({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[d({type:Boolean,attribute:"read-only",reflect:!0,defaultValue:!1}),0,"readOnly"],[d({type:String,defaultValue:""}),0,"label"],[d({type:String,defaultValue:""}),0,"name"],[d({type:String,defaultValue:""}),0,"locale"],[d({type:String,attribute:"format-options",defaultValue:""}),0,"formatOptions"],[d({type:String,attribute:"commit-behavior",defaultValue:"snap"}),0,"commitBehavior"],[d({type:String,attribute:"increment-aria-label",defaultValue:""}),0,"incrementAriaLabel"],[d({type:String,attribute:"decrement-aria-label",defaultValue:""}),0,"decrementAriaLabel"],[d({type:Boolean,attribute:"wheel-disabled",defaultValue:!1}),0,"wheelDisabled"],[mt({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[it,0,"decreaseDisabled"],[it,0,"increaseDisabled"],[bt(["value","defaultValue","minValue","maxValue","step","label","disabled","readOnly","locale","formatOptions","commitBehavior"]),2,"onPropsUpdated"],[D({selector:'[data-number-field-action="decrement"]',type:"click"}),2,"decrement"],[D({selector:'[data-number-field-action="increment"]',type:"click"}),2,"increment"],[D({selector:"[data-number-field-input]",type:"focus"}),2,"onInputFocus"],[D({selector:"[data-number-field-input]",type:"blur"}),2,"onInputBlur"],[D({selector:"[data-number-field-input]",type:"input"}),2,"onInput"],[D({selector:"[data-number-field-input]",type:"keydown"}),2,"onKeydown"],[D({selector:"[data-number-field-input]",type:"wheel"}),2,"onWheel"]],0,void 0,tt))}value=(he(this),ye(this));defaultValue=(ge(this),ve(this));minValue=(Ve(this),xe(this));maxValue=(Ne(this),Ie(this));step=(Se(this),De(this));disabled=(Fe(this),Ae(this));readOnly=(Oe(this),we(this));label=(Ee(this),Le(this));name=(Re(this),Be(this));locale=(je(this),Te(this));formatOptions=(ke(this),ze(this));commitBehavior=(Me(this),qe(this));incrementAriaLabel=($e(this),Ce(this));decrementAriaLabel=(Ue(this),We(this));wheelDisabled=(Ye(this),Ge(this));changeEvent=(Ke(this),Je(this));decreaseDisabled=(He(this),Qe(this,!1));increaseDisabled=(Xe(this),Ze(this,!1));editing=(Pe(this),!1);draftValue="";initialized=!1;uid=Math.random().toString(36).slice(2,9);nameAttr=this.$.name.map(e=>e||void 0);get resolvedLocale(){return q(this.locale)}get resolvedFormatOptions(){return X(this.formatOptions)}get inputId(){return`rui-number-field-input-${this.uid}`}getNumericValue(){return typeof this.value=="number"&&Number.isFinite(this.value)?this.value:typeof this.defaultValue=="number"&&Number.isFinite(this.defaultValue)?this.defaultValue:0}getInput(){return this.querySelector("[data-number-field-input]")}getHiddenInput(){return this.querySelector("[data-number-field-value]")}syncLabel(){let e=this.getInput();fe(this,e,{controlId:this.inputId,label:this.label,labelId:`rui-number-field-label-${this.uid}`})}syncInput(){let e=this.getInput(),i=this.getHiddenInput();if(!e)return;e.id||(e.id=this.inputId);let r=this.getNumericValue();e.setAttribute("role","spinbutton"),e.setAttribute("inputmode","decimal"),e.toggleAttribute("data-disabled",this.disabled),e.toggleAttribute("data-readonly",this.readOnly),Number.isFinite(this.minValue)?e.setAttribute("aria-valuemin",String(this.minValue)):e.removeAttribute("aria-valuemin"),Number.isFinite(this.maxValue)?e.setAttribute("aria-valuemax",String(this.maxValue)):e.removeAttribute("aria-valuemax"),e.setAttribute("aria-valuenow",String(r)),this.editing||(e.value=H(r,this.resolvedLocale,this.resolvedFormatOptions)),i&&(i.value=String(r),this.name&&(i.name=this.name),i.disabled=this.disabled)}updateStepperState(){let e=this.getNumericValue();this.decreaseDisabled=this.disabled||this.readOnly||e<=this.minValue,this.increaseDisabled=this.disabled||this.readOnly||e>=this.maxValue,queueMicrotask(()=>this.syncSlottedSteppers())}syncSlottedSteppers(){for(let e of this.querySelectorAll('[data-number-field-action="decrement"]'))e.disabled=this.decreaseDisabled;for(let e of this.querySelectorAll('[data-number-field-action="increment"]'))e.disabled=this.increaseDisabled}commitValue(e,i=!1){let r=e;if((this.commitBehavior==="snap"||i)&&(r=Z(e,this.minValue,this.maxValue,this.step)),r===this.getNumericValue()){this.editing=!1,this.syncInput(),this.updateStepperState();return}this.value=r,this.changeEvent.emit({value:r}),this.editing=!1,this.syncInput(),this.updateStepperState()}commitDraft(){let e=Q(this.draftValue,this.resolvedLocale,this.resolvedFormatOptions);if(e==null){this.editing=!1,this.syncInput();return}if(this.commitBehavior==="validate"&&(e<this.minValue||e>this.maxValue)){this.editing=!1,this.syncInput();return}this.commitValue(e)}initialize(){this.initialized||(this.initialized=!0,this.value==null&&this.defaultValue!=null&&(this.value=this.defaultValue),this.syncLabel(),this.syncInput(),this.updateStepperState())}connectedCallback(){super.connectedCallback(),queueMicrotask(()=>this.initialize())}onPropsUpdated(){this.syncLabel(),this.syncInput(),this.updateStepperState()}decrement(e){e.preventDefault(),!this.decreaseDisabled&&this.commitValue(this.getNumericValue()-this.step,!0)}increment(e){e.preventDefault(),!this.increaseDisabled&&this.commitValue(this.getNumericValue()+this.step,!0)}onInputFocus(e){if(this.disabled||this.readOnly)return;let i=e.target;this.editing=!0,this.draftValue=String(this.getNumericValue()),i.value=this.draftValue,i.select()}onInputBlur(){this.editing&&this.commitDraft()}onInput(e){this.disabled||this.readOnly||(this.editing=!0,this.draftValue=e.target.value)}onKeydown(e){if(!(this.disabled||this.readOnly)){if(e.key==="ArrowUp"){e.preventDefault(),this.increment(e);return}if(e.key==="ArrowDown"){e.preventDefault(),this.decrement(e);return}if(e.key==="Home"&&Number.isFinite(this.minValue)){e.preventDefault(),this.commitValue(this.minValue,!0);return}if(e.key==="End"&&Number.isFinite(this.maxValue)){e.preventDefault(),this.commitValue(this.maxValue,!0);return}e.key==="Enter"&&(e.preventDefault(),this.commitDraft(),this.getInput()?.blur())}}onWheel(e){if(this.wheelDisabled||this.disabled||this.readOnly)return;let i=e.target;document.activeElement===i&&(e.preventDefault(),e.deltaY<0?this.increment(e):e.deltaY>0&&this.decrement(e))}render(){let e=this.incrementAriaLabel||"Increment",i=this.decrementAriaLabel||"Decrement";return I("div",{class:"rui-number-field",children:I("slot",{name:"group",children:P("div",{class:"rui-number-field__group","data-number-field-group":!0,children:[P("slot",{name:"input",children:[I("input",{type:"text","data-number-field-input":!0,"data-rui-control":!0,"data-rui-control-type":"number",class:"rui-number-field__input",disabled:this.$.disabled,readOnly:this.$.readOnly,name:this.nameAttr}),I("input",{type:"hidden","data-number-field-value":!0})]}),P("div",{class:"rui-number-field__steppers",children:[I("slot",{name:"decrement",children:I("button",{type:"button",class:"rui-number-field__stepper","data-number-field-action":"decrement","aria-label":i,disabled:this.$.decreaseDisabled,tabIndex:-1,children:"\u2212"})}),I("slot",{name:"increment",children:I("button",{type:"button",class:"rui-number-field__stepper","data-number-field-action":"increment","aria-label":e,disabled:this.$.increaseDisabled,tabIndex:-1,children:"+"})})]})]})})})}static{_e()}};import{jsx as w}from"@ecopages/jsx/jsx-runtime";function O(...t){return t.filter(Boolean).join(" ")}function pt({children:t,slot:e="group",class:i,...r}){return w("div",{...r,slot:e,"data-number-field-group":!0,class:O("rui-number-field__group",i),children:t})}function ft({slot:t="input",class:e,disabled:i,readOnly:r,...m}){return w("input",{...m,type:"text",slot:t,"data-number-field-input":!0,"data-rui-control":!0,"data-rui-control-type":"number",class:O("rui-number-field__input",e),disabled:i,readOnly:r})}function ht({children:t,slot:e,class:i,...r}){return w("div",{...r,slot:e,class:O("rui-number-field__steppers",i),children:t})}function _t({children:t,slot:e="increment",class:i,"aria-label":r="Increment",disabled:m,...b}){return w("button",{...b,type:"button",slot:e,"data-number-field-action":"increment",class:O("rui-number-field__stepper",i),"aria-label":r,disabled:m,tabIndex:-1,children:t??"+"})}function yt({children:t,slot:e="decrement",class:i,"aria-label":r="Decrement",disabled:m,...b}){return w("button",{...b,type:"button",slot:e,"data-number-field-action":"decrement",class:O("rui-number-field__stepper",i),"aria-label":r,disabled:m,tabIndex:-1,children:t??"\u2212"})}function gt({children:t,...e}){return w("rui-number-field",{...e,children:t})}export{gt as RuiNumberField,yt as RuiNumberFieldDecrementButton,nt as RuiNumberFieldElement,pt as RuiNumberFieldGroup,_t as RuiNumberFieldIncrementButton,ft as RuiNumberFieldInput,ht as RuiNumberFieldSteppers};
2
2
  //# sourceMappingURL=index.js.map