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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/README.md +1 -1
  2. package/dist/components/ui/alert/alert.css +88 -50
  3. package/dist/components/ui/alert/alert.d.ts +43 -5
  4. package/dist/components/ui/alert/alert.script.d.ts +51 -4
  5. package/dist/components/ui/alert/index.d.ts +2 -2
  6. package/dist/components/ui/alert/index.js +1 -1
  7. package/dist/components/ui/alert/index.js.map +4 -4
  8. package/dist/components/ui/autocomplete/autocomplete.css +4 -4
  9. package/dist/components/ui/autocomplete/autocomplete.d.ts +15 -5
  10. package/dist/components/ui/autocomplete/autocomplete.script.d.ts +9 -0
  11. package/dist/components/ui/autocomplete/index.js +1 -1
  12. package/dist/components/ui/autocomplete/index.js.map +4 -4
  13. package/dist/components/ui/avatar/avatar.d.ts +15 -1
  14. package/dist/components/ui/avatar/index.js +1 -1
  15. package/dist/components/ui/avatar/index.js.map +4 -4
  16. package/dist/components/ui/breadcrumb/breadcrumb.d.ts +32 -6
  17. package/dist/components/ui/breadcrumb/index.js +1 -1
  18. package/dist/components/ui/breadcrumb/index.js.map +4 -4
  19. package/dist/{styles/components → components/ui/button}/button.css +45 -31
  20. package/dist/components/ui/button/button.d.ts +21 -4
  21. package/dist/components/ui/button-group/button-group.d.ts +7 -1
  22. package/dist/components/ui/button-group/index.js +1 -1
  23. package/dist/components/ui/button-group/index.js.map +4 -4
  24. package/dist/components/ui/calendar/calendar.css +7 -7
  25. package/dist/components/ui/calendar/calendar.d.ts +3 -2
  26. package/dist/components/ui/calendar/calendar.script.d.ts +39 -1
  27. package/dist/components/ui/calendar/index.js +1 -1
  28. package/dist/components/ui/calendar/index.js.map +4 -4
  29. package/dist/components/ui/carousel/carousel.d.ts +32 -6
  30. package/dist/components/ui/carousel/carousel.script.d.ts +44 -0
  31. package/dist/components/ui/carousel/index.js +1 -1
  32. package/dist/components/ui/carousel/index.js.map +4 -4
  33. package/dist/components/ui/checkbox/checkbox.css +1 -1
  34. package/dist/components/ui/checkbox/checkbox.d.ts +3 -2
  35. package/dist/components/ui/checkbox/checkbox.script.d.ts +4 -0
  36. package/dist/components/ui/checkbox/index.js +1 -1
  37. package/dist/components/ui/checkbox/index.js.map +4 -4
  38. package/dist/components/ui/chip/chip.d.ts +8 -0
  39. package/dist/components/ui/chip/index.js +1 -1
  40. package/dist/components/ui/chip/index.js.map +4 -4
  41. package/dist/components/ui/chip-list/chip-list.d.ts +10 -2
  42. package/dist/components/ui/chip-list/index.js +1 -1
  43. package/dist/components/ui/chip-list/index.js.map +4 -4
  44. package/dist/components/ui/combobox/combobox.css +39 -1
  45. package/dist/components/ui/combobox/combobox.d.ts +15 -5
  46. package/dist/components/ui/combobox/combobox.script.d.ts +13 -1
  47. package/dist/components/ui/combobox/index.js +1 -1
  48. package/dist/components/ui/combobox/index.js.map +4 -4
  49. package/dist/components/ui/cycle-toggle/cycle-toggle.css +15 -0
  50. package/dist/components/ui/cycle-toggle/cycle-toggle.d.ts +29 -0
  51. package/dist/components/ui/cycle-toggle/cycle-toggle.script.d.ts +61 -0
  52. package/dist/components/ui/cycle-toggle/index.d.ts +5 -0
  53. package/dist/components/ui/cycle-toggle/index.js +2 -0
  54. package/dist/components/ui/cycle-toggle/index.js.map +7 -0
  55. package/dist/components/ui/cycle-toggle/theme-preference-icons.d.ts +12 -0
  56. package/dist/components/ui/date-field/date-field.css +37 -0
  57. package/dist/components/ui/date-field/date-field.d.ts +22 -3
  58. package/dist/components/ui/date-field/date-field.script.d.ts +29 -5
  59. package/dist/components/ui/date-field/index.d.ts +1 -1
  60. package/dist/components/ui/date-field/index.js +1 -1
  61. package/dist/components/ui/date-field/index.js.map +4 -4
  62. package/dist/components/ui/date-range-picker/date-range-picker.css +37 -0
  63. package/dist/components/ui/date-range-picker/date-range-picker.d.ts +37 -4
  64. package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +31 -5
  65. package/dist/components/ui/date-range-picker/index.d.ts +1 -1
  66. package/dist/components/ui/date-range-picker/index.js +1 -1
  67. package/dist/components/ui/date-range-picker/index.js.map +4 -4
  68. package/dist/components/ui/dialog/dialog.css +1 -1
  69. package/dist/components/ui/dialog/dialog.d.ts +30 -5
  70. package/dist/components/ui/dialog/dialog.script.d.ts +3 -0
  71. package/dist/components/ui/dialog/index.js +1 -1
  72. package/dist/components/ui/dialog/index.js.map +4 -4
  73. package/dist/components/ui/disclosure/disclosure-group.css +1 -1
  74. package/dist/components/ui/disclosure/disclosure-group.script.d.ts +6 -0
  75. package/dist/components/ui/disclosure/disclosure.d.ts +26 -7
  76. package/dist/components/ui/disclosure/disclosure.script.d.ts +5 -0
  77. package/dist/components/ui/disclosure/index.js +1 -1
  78. package/dist/components/ui/disclosure/index.js.map +4 -4
  79. package/dist/components/ui/feed/feed.d.ts +37 -7
  80. package/dist/components/ui/feed/index.js +1 -1
  81. package/dist/components/ui/feed/index.js.map +4 -4
  82. package/dist/components/ui/field/field-description.d.ts +5 -1
  83. package/dist/components/ui/field/field-error.d.ts +5 -0
  84. package/dist/components/ui/field/field.d.ts +8 -1
  85. package/dist/components/ui/field/field.script.d.ts +35 -0
  86. package/dist/components/ui/field/index.js +1 -1
  87. package/dist/components/ui/field/index.js.map +4 -4
  88. package/dist/components/ui/form/control-protocol.d.ts +6 -0
  89. package/dist/components/ui/form/form.d.ts +2 -1
  90. package/dist/components/ui/form/form.script.d.ts +16 -1
  91. package/dist/components/ui/form/index.d.ts +1 -1
  92. package/dist/components/ui/form/index.js +1 -1
  93. package/dist/components/ui/form/index.js.map +4 -4
  94. package/dist/components/ui/grid/grid.d.ts +12 -2
  95. package/dist/components/ui/grid/grid.script.d.ts +14 -0
  96. package/dist/components/ui/grid/index.js +1 -1
  97. package/dist/components/ui/grid/index.js.map +4 -4
  98. package/dist/components/ui/heading/heading.d.ts +26 -4
  99. package/dist/components/ui/heading/index.js +1 -1
  100. package/dist/components/ui/heading/index.js.map +4 -4
  101. package/dist/components/ui/headline/headline.d.ts +9 -1
  102. package/dist/components/ui/headline/index.js +1 -1
  103. package/dist/components/ui/headline/index.js.map +4 -4
  104. package/dist/components/ui/input/index.d.ts +1 -1
  105. package/dist/components/ui/input/index.js +1 -1
  106. package/dist/components/ui/input/index.js.map +4 -4
  107. package/dist/components/ui/input/input.css +2 -7
  108. package/dist/components/ui/input/input.d.ts +7 -2
  109. package/dist/components/ui/label/index.js +1 -1
  110. package/dist/components/ui/label/index.js.map +4 -4
  111. package/dist/components/ui/label/label.d.ts +8 -1
  112. package/dist/components/ui/listbox/index.js +1 -1
  113. package/dist/components/ui/listbox/index.js.map +4 -4
  114. package/dist/components/ui/listbox/listbox.css +2 -5
  115. package/dist/components/ui/listbox/listbox.d.ts +7 -3
  116. package/dist/components/ui/listbox/listbox.script.d.ts +14 -1
  117. package/dist/components/ui/menu-button/index.d.ts +1 -1
  118. package/dist/components/ui/menu-button/index.js +1 -1
  119. package/dist/components/ui/menu-button/index.js.map +4 -4
  120. package/dist/components/ui/menu-button/menu-button.css +2 -2
  121. package/dist/components/ui/menu-button/menu-button.d.ts +27 -5
  122. package/dist/components/ui/menu-button/menu-button.script.d.ts +8 -3
  123. package/dist/components/ui/menubar/index.js +1 -1
  124. package/dist/components/ui/menubar/index.js.map +4 -4
  125. package/dist/components/ui/menubar/menubar.css +4 -4
  126. package/dist/components/ui/menubar/menubar.d.ts +14 -2
  127. package/dist/components/ui/menubar/menubar.script.d.ts +10 -1
  128. package/dist/components/ui/meter/index.js +1 -1
  129. package/dist/components/ui/meter/index.js.map +4 -4
  130. package/dist/components/ui/meter/meter.css +1 -1
  131. package/dist/components/ui/meter/meter.d.ts +7 -2
  132. package/dist/components/ui/meter/meter.script.d.ts +21 -0
  133. package/dist/components/ui/navigation-menu/index.js +1 -1
  134. package/dist/components/ui/navigation-menu/index.js.map +4 -4
  135. package/dist/components/ui/navigation-menu/navigation-menu.css +2 -2
  136. package/dist/components/ui/navigation-menu/navigation-menu.d.ts +3 -2
  137. package/dist/components/ui/navigation-menu/navigation-menu.script.d.ts +4 -0
  138. package/dist/components/ui/number-field/index.d.ts +1 -1
  139. package/dist/components/ui/number-field/index.js +1 -1
  140. package/dist/components/ui/number-field/index.js.map +4 -4
  141. package/dist/components/ui/number-field/number-field.css +18 -3
  142. package/dist/components/ui/number-field/number-field.d.ts +36 -8
  143. package/dist/components/ui/number-field/number-field.script.d.ts +28 -1
  144. package/dist/components/ui/popover/index.js +1 -1
  145. package/dist/components/ui/popover/index.js.map +4 -4
  146. package/dist/components/ui/popover/popover.d.ts +5 -4
  147. package/dist/components/ui/popover/popover.script.d.ts +4 -0
  148. package/dist/components/ui/radio-group/index.d.ts +1 -1
  149. package/dist/components/ui/radio-group/index.js +1 -1
  150. package/dist/components/ui/radio-group/index.js.map +4 -4
  151. package/dist/components/ui/radio-group/radio-group.d.ts +29 -4
  152. package/dist/components/ui/radio-group/radio-group.script.d.ts +14 -9
  153. package/dist/components/ui/select/index.js +1 -1
  154. package/dist/components/ui/select/index.js.map +4 -4
  155. package/dist/components/ui/select/select.css +48 -6
  156. package/dist/components/ui/select/select.d.ts +29 -8
  157. package/dist/components/ui/select/select.script.d.ts +7 -0
  158. package/dist/components/ui/sidebar/index.js +1 -1
  159. package/dist/components/ui/sidebar/index.js.map +4 -4
  160. package/dist/components/ui/sidebar/sidebar-trigger.script.d.ts +4 -0
  161. package/dist/components/ui/sidebar/sidebar.css +41 -24
  162. package/dist/components/ui/sidebar/sidebar.d.ts +68 -14
  163. package/dist/components/ui/sidebar/sidebar.docs.css +5 -2
  164. package/dist/components/ui/sidebar/sidebar.script.d.ts +9 -0
  165. package/dist/components/ui/slider/index.js +1 -1
  166. package/dist/components/ui/slider/index.js.map +4 -4
  167. package/dist/components/ui/slider/slider.d.ts +2 -1
  168. package/dist/components/ui/slider/slider.script.d.ts +29 -1
  169. package/dist/components/ui/switch/index.js +1 -1
  170. package/dist/components/ui/switch/index.js.map +4 -4
  171. package/dist/components/ui/switch/switch.css +3 -3
  172. package/dist/components/ui/switch/switch.d.ts +11 -2
  173. package/dist/components/ui/switch/switch.script.d.ts +5 -0
  174. package/dist/components/ui/tabs/index.js +1 -1
  175. package/dist/components/ui/tabs/index.js.map +4 -4
  176. package/dist/components/ui/tabs/tabs.css +9 -10
  177. package/dist/components/ui/tabs/tabs.d.ts +30 -9
  178. package/dist/components/ui/tag-group/index.js +1 -1
  179. package/dist/components/ui/tag-group/index.js.map +4 -4
  180. package/dist/components/ui/tag-group/tag-group.css +2 -11
  181. package/dist/components/ui/tag-group/tag-group.d.ts +18 -5
  182. package/dist/components/ui/tag-group/tag-group.script.d.ts +9 -2
  183. package/dist/components/ui/textarea/index.d.ts +1 -1
  184. package/dist/components/ui/textarea/index.js +1 -1
  185. package/dist/components/ui/textarea/index.js.map +4 -4
  186. package/dist/components/ui/textarea/textarea.d.ts +7 -2
  187. package/dist/components/ui/toast/index.d.ts +1 -1
  188. package/dist/components/ui/toast/index.js +1 -1
  189. package/dist/components/ui/toast/index.js.map +4 -4
  190. package/dist/components/ui/toast/stack-layout.d.ts +18 -0
  191. package/dist/components/ui/toast/toast-context.d.ts +10 -0
  192. package/dist/components/ui/toast/toast.css +30 -9
  193. package/dist/components/ui/toast/toast.d.ts +12 -2
  194. package/dist/components/ui/toast/toast.script.d.ts +60 -4
  195. package/dist/components/ui/toast/toaster.script.d.ts +71 -2
  196. package/dist/components/ui/toc/index.js +1 -1
  197. package/dist/components/ui/toc/index.js.map +4 -4
  198. package/dist/components/ui/toc/toc.css +3 -0
  199. package/dist/components/ui/toc/toc.d.ts +2 -1
  200. package/dist/components/ui/toc/toc.script.d.ts +15 -0
  201. package/dist/components/ui/toolbar/index.js +1 -1
  202. package/dist/components/ui/toolbar/index.js.map +4 -4
  203. package/dist/components/ui/toolbar/toolbar.d.ts +3 -2
  204. package/dist/components/ui/toolbar/toolbar.script.d.ts +8 -0
  205. package/dist/components/ui/tooltip/index.js +1 -1
  206. package/dist/components/ui/tooltip/index.js.map +4 -4
  207. package/dist/components/ui/tooltip/tooltip.d.ts +3 -2
  208. package/dist/components/ui/tooltip/tooltip.script.d.ts +3 -0
  209. package/dist/components/ui/tree/index.js +1 -1
  210. package/dist/components/ui/tree/index.js.map +4 -4
  211. package/dist/components/ui/tree/tree.d.ts +12 -2
  212. package/dist/components/ui/tree/tree.script.d.ts +18 -1
  213. package/dist/components/ui/treegrid/index.js +1 -1
  214. package/dist/components/ui/treegrid/index.js.map +4 -4
  215. package/dist/components/ui/treegrid/treegrid.d.ts +15 -2
  216. package/dist/components/ui/treegrid/treegrid.script.d.ts +22 -1
  217. package/dist/components/ui/window-splitter/index.js +1 -1
  218. package/dist/components/ui/window-splitter/index.js.map +4 -4
  219. package/dist/components/ui/window-splitter/window-splitter.css +1 -1
  220. package/dist/components/ui/window-splitter/window-splitter.d.ts +3 -2
  221. package/dist/components/ui/window-splitter/window-splitter.script.d.ts +22 -0
  222. package/dist/index.d.ts +1 -0
  223. package/dist/index.js +1 -1
  224. package/dist/index.js.map +4 -4
  225. package/dist/lib/cycle-value.d.ts +8 -0
  226. package/dist/lib/intl-number/range.d.ts +8 -0
  227. package/dist/styles/radiant-ui-core.css +110 -341
  228. package/dist/styles/radiant-ui.css +413 -377
  229. package/dist/styles/styles.css +839 -2731
  230. package/dist/styles/tailwind.css +626 -530
  231. package/dist/styles/tokens/colors/aurora.css +2 -2
  232. package/dist/styles/tokens/colors/basalt.css +2 -1
  233. package/dist/styles/tokens/colors/glacier.css +2 -1
  234. package/dist/styles/tokens/presets/colors/aurora.css +42 -14
  235. package/dist/styles/tokens/presets/colors/basalt.css +28 -0
  236. package/dist/styles/tokens/presets/colors/ember.css +28 -0
  237. package/dist/styles/tokens/presets/colors/glacier.css +28 -0
  238. package/dist/styles/tokens/semantic.css +22 -2
  239. package/dist/styles/tokens/spacing/compact.css +12 -12
  240. package/package.json +21 -8
  241. package/dist/components/ui/dialog/dialog-registry.test.d.ts +0 -1
  242. package/dist/components/ui/field/field-ssr-hydration.test.d.ts +0 -1
  243. package/dist/components/ui/form/form-field.test.d.ts +0 -4
  244. package/dist/components/ui/form/form-store.test.d.ts +0 -1
  245. package/dist/components/ui/shared/collection-navigation.test.d.ts +0 -1
  246. package/dist/components/ui/shared/floating-position.test.d.ts +0 -1
  247. package/dist/components/ui/shared/listbox-popover-behavior.test.d.ts +0 -1
  248. package/dist/components/ui/shared/popover-controller.test.d.ts +0 -1
  249. package/dist/components/ui/shared/portal.test.d.ts +0 -1
  250. package/dist/components/ui/sidebar/sidebar.ssr.test.d.ts +0 -2
  251. package/dist/components/ui/sidebar/sidebar.test.d.ts +0 -1
  252. package/dist/components/ui/toast/toast.test.d.ts +0 -2
  253. package/dist/components/ui/toc/toc-helpers.test.d.ts +0 -1
  254. package/dist/components/ui/toc/toc.ssr.test.d.ts +0 -1
  255. package/dist/components/ui/toc/toc.test.d.ts +0 -1
  256. package/dist/lib/intl-date/parts.test.d.ts +0 -1
  257. package/dist/lib/intl-date/segments.test.d.ts +0 -1
  258. package/dist/lib/intl-date/selection.test.d.ts +0 -1
  259. package/dist/lib/mask/date-mask.test.d.ts +0 -1
  260. package/dist/lib/mask/input-mask.test.d.ts +0 -1
  261. package/dist/lib/radiant-view.d.ts +0 -43
  262. package/dist/lib/text-filter.test.d.ts +0 -1
  263. package/dist/styles/tokens/presets/radius.css +0 -45
  264. package/dist/styles/tokens/presets/spacing.css +0 -57
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/ui/select/select.script.tsx", "../../../../src/components/ui/shared/field-label.ts", "../../../../src/components/ui/shared/floating-position.ts", "../../../../src/components/ui/shared/portal.ts", "../../../../src/components/ui/shared/popover-controller.ts", "../../../../src/components/ui/shared/collection-navigation.ts", "../../../../src/components/ui/shared/listbox-popover-behavior.ts", "../../../../src/components/ui/shared/multi-value.ts", "../../../../src/components/ui/select/select.tsx", "../../../../src/lib/cx.ts", "../../../../src/lib/icons/chevron-down.tsx", "../../../../src/lib/radiant-view.ts", "../../../../src/components/ui/listbox/listbox.script.tsx", "../../../../src/lib/roving-tabindex.ts", "../../../../src/components/ui/listbox/listbox.tsx"],
4
- "sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_label, _init_extra_label, _init_placeholder, _init_extra_placeholder, _init_disabled, _init_extra_disabled, _init_selectionMode, _init_extra_selectionMode, _init_shouldCloseOnSelect, _init_extra_shouldCloseOnSelect, _init_changeEvent, _init_extra_changeEvent, _init_rootTarget, _init_extra_rootTarget;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { RadiantElement, customElement, event, onEvent, onUpdated, prop, query } from \"@ecopages/radiant\";\nimport { findAssociatedLabel, syncFieldLabel } from \"../shared/field-label\";\nimport { ListboxPopoverBehavior } from \"../shared/listbox-popover-behavior\";\nimport { parseMultiValue, serializeMultiValue } from \"../shared/multi-value\";\nlet _RuiSelect;\nclass RuiSelect extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_label, _init_extra_label, _init_placeholder, _init_extra_placeholder, _init_disabled, _init_extra_disabled, _init_selectionMode, _init_extra_selectionMode, _init_shouldCloseOnSelect, _init_extra_shouldCloseOnSelect, _init_changeEvent, _init_extra_changeEvent, _init_rootTarget, _init_extra_rootTarget, _initProto],\n c: [_RuiSelect, _initClass]\n } = _applyDecs(this, [customElement(\"rui-select\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"value\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"placeholder\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [prop({\n type: String,\n attribute: \"selection-mode\",\n defaultValue: \"single\"\n }), 0, \"selectionMode\"], [prop({\n type: Boolean,\n attribute: \"should-close-on-select\"\n }), 0, \"shouldCloseOnSelect\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [query({\n ref: \"root\"\n }), 0, \"rootTarget\"], [onUpdated([\"value\", \"label\", \"placeholder\", \"disabled\", \"selectionMode\", \"shouldCloseOnSelect\"]), 2, \"onPropsUpdated\"], [onEvent({\n selector: \"[data-select-trigger], [data-select-toggle]\",\n type: \"click\"\n }), 2, \"onTriggerClick\"], [onEvent({\n selector: \"[data-select-trigger]\",\n type: \"keydown\",\n options: {\n capture: true\n }\n }), 2, \"onTriggerKeydown\"], [onEvent({\n selector: \"[data-select-listbox] [data-autocomplete-input]\",\n type: \"keydown\",\n options: {\n capture: true\n }\n }), 2, \"onSearchKeydown\"], [onEvent({\n selector: \"[data-select-listbox] [data-autocomplete-input]\",\n type: \"input\"\n }), 2, \"onSearchInput\"], [onEvent({\n selector: \"[data-select-value] rui-tag-group\",\n type: \"rui-remove\"\n }), 2, \"onTagRemove\"], [onEvent({\n selector: \"[data-select-value] [data-tag]\",\n type: \"click\"\n }), 2, \"onTagClick\"], [onEvent({\n selector: '[data-select-listbox] [role=\"option\"]',\n type: \"pointerover\"\n }), 2, \"onOptionPointerOver\"], [onEvent({\n selector: '[data-select-listbox] [role=\"option\"]',\n type: \"mousedown\"\n }), 2, \"onOptionMouseDown\"], [onEvent({\n selector: '[data-select-listbox] [role=\"option\"]',\n type: \"click\"\n }), 2, \"onOptionClick\"], [onEvent({\n ref: \"root\",\n type: \"focusout\"\n }), 2, \"onFocusOut\"], [onEvent({\n document: true,\n type: \"pointerdown\"\n }), 2, \"onDocumentPointerDown\"]], 0, void 0, RadiantElement));\n }\n constructor(...args) {\n super(...args);\n _init_extra_rootTarget(this);\n }\n value = (_initProto(this), _init_value(this));\n label = (_init_extra_value(this), _init_label(this));\n placeholder = (_init_extra_label(this), _init_placeholder(this));\n disabled = (_init_extra_placeholder(this), _init_disabled(this));\n selectionMode = (_init_extra_disabled(this), _init_selectionMode(this));\n shouldCloseOnSelect = (_init_extra_selectionMode(this), _init_shouldCloseOnSelect(this));\n changeEvent = (_init_extra_shouldCloseOnSelect(this), _init_changeEvent(this));\n open = (_init_extra_changeEvent(this), false);\n uid = Math.random().toString(36).slice(2, 9);\n listboxBehavior = new ListboxPopoverBehavior({\n getAnchor: () => this.rootTarget,\n getFloating: () => this.getListboxPopup(),\n getOpen: () => this.open,\n getOptions: () => this.getOptions(),\n getActiveDescendantHost: () => this.getActiveDescendantHost(),\n getOptionIdPrefix: () => `rui-select-option-${this.uid}`\n });\n rootTarget = _init_rootTarget(this);\n get listboxId() {\n return `rui-select-list-${this.uid}`;\n }\n get triggerId() {\n return `rui-select-trigger-${this.uid}`;\n }\n isMultiple() {\n return this.selectionMode === \"multiple\";\n }\n closesOnSelect() {\n if (this.shouldCloseOnSelect != null) {\n return this.shouldCloseOnSelect;\n }\n return !this.isMultiple();\n }\n getSelectedValues() {\n if (!this.value) {\n return [];\n }\n return parseMultiValue(this.value);\n }\n setSelectedValues(values) {\n this.value = serializeMultiValue(values);\n }\n getSearchInput() {\n return this.querySelector(\"[data-select-listbox] [data-autocomplete-input]\");\n }\n hasSearchInput() {\n return this.getSearchInput() != null;\n }\n /** Element that receives `aria-activedescendant` while the popup is open. */\n getActiveDescendantHost() {\n if (this.open && this.hasSearchInput()) {\n return this.getSearchInput();\n }\n return this.getTrigger();\n }\n resetSearchFilter() {\n const search = this.getSearchInput();\n if (!search || search.value === \"\") {\n return;\n }\n search.value = \"\";\n search.dispatchEvent(new Event(\"input\", {\n bubbles: true\n }));\n }\n syncSearchInput() {\n const search = this.getSearchInput();\n const trigger = this.getTrigger();\n const listbox = this.getListbox();\n if (!search || !listbox || !trigger) {\n return;\n }\n if (this.open) {\n search.setAttribute(\"role\", \"combobox\");\n search.setAttribute(\"aria-autocomplete\", \"list\");\n search.setAttribute(\"aria-expanded\", \"true\");\n search.setAttribute(\"aria-controls\", this.listboxId);\n trigger.removeAttribute(\"aria-activedescendant\");\n return;\n }\n search.removeAttribute(\"role\");\n search.removeAttribute(\"aria-autocomplete\");\n search.removeAttribute(\"aria-expanded\");\n search.removeAttribute(\"aria-controls\");\n search.removeAttribute(\"aria-activedescendant\");\n }\n focusPopupInput() {\n queueMicrotask(() => {\n this.getSearchInput()?.focus();\n });\n }\n getTagGroup() {\n return this.querySelector(\"[data-select-value] rui-tag-group\");\n }\n hasTagGroup() {\n return this.getTagGroup() != null;\n }\n syncTagGroup() {\n const tagGroup = this.getTagGroup();\n const valueElement = this.getValueElement();\n if (!tagGroup || !valueElement) {\n return;\n }\n const selected = this.getSelectedValues();\n const items = selected.flatMap(value => {\n const option = this.getOptions().find(item => this.getOptionValue(item) === value);\n return option ? [{\n value,\n label: this.getOptionLabel(option)\n }] : [];\n });\n tagGroup.embedded = true;\n tagGroup.setItems(items);\n tagGroup.value = this.value;\n this.syncTagGroupPlaceholder(valueElement, selected.length);\n }\n syncTagGroupPlaceholder(valueElement, selectedCount) {\n let placeholder = valueElement.querySelector(\"[data-select-placeholder]\");\n if (!this.placeholder) {\n placeholder?.remove();\n return;\n }\n if (!placeholder) {\n placeholder = document.createElement(\"span\");\n placeholder.setAttribute(\"data-select-placeholder\", \"true\");\n valueElement.insertBefore(placeholder, valueElement.firstChild);\n }\n placeholder.textContent = this.placeholder;\n placeholder.hidden = selectedCount > 0;\n valueElement.toggleAttribute(\"data-placeholder\", selectedCount === 0);\n }\n removeSelectedValue(value) {\n const selected = new Set(this.getSelectedValues());\n if (!selected.has(value)) {\n return;\n }\n selected.delete(value);\n this.setSelectedValues([...selected]);\n this.syncValueDisplay();\n this.syncOptionSelection();\n this.syncTagGroup();\n this.changeEvent.emit({\n value: this.value\n });\n }\n getTrigger() {\n return this.querySelector(\"[data-select-trigger]\");\n }\n getToggle() {\n return this.querySelector(\"[data-select-toggle]\");\n }\n getValueElement() {\n return this.querySelector(\"[data-select-value]\");\n }\n getListboxPopup() {\n return this.querySelector(\"[data-select-listbox]\");\n }\n getListbox() {\n const host = this.querySelector(\"rui-listbox\");\n if (host) {\n return host.querySelector('[role=\"listbox\"]');\n }\n return this.getListboxPopup();\n }\n getListboxHost() {\n return this.querySelector(\"rui-listbox\");\n }\n getOptions() {\n const listbox = this.getListbox();\n if (!listbox) {\n return [];\n }\n return Array.from(listbox.querySelectorAll('[role=\"option\"]'));\n }\n getOptionLabel(option) {\n return option.getAttribute(\"data-label\") || option.textContent?.trim() || \"\";\n }\n getOptionValue(option) {\n return option.getAttribute(\"data-value\") || this.getOptionLabel(option);\n }\n ensureOptionIds() {\n this.listboxBehavior.ensureOptionIds();\n }\n getAccessibleName() {\n const labelElement = findAssociatedLabel(this);\n return labelElement?.textContent?.trim() || this.label || \"Options\";\n }\n syncLabel() {\n const trigger = this.getTrigger();\n syncFieldLabel(this, trigger, {\n controlId: this.triggerId,\n label: this.label,\n labelId: `rui-select-label-${this.uid}`\n });\n }\n syncTrigger() {\n const trigger = this.getTrigger();\n const listbox = this.getListbox();\n const popup = this.getListboxPopup();\n if (!trigger || !listbox) {\n return;\n }\n if (!trigger.id) {\n trigger.id = this.triggerId;\n }\n if (!listbox.id) {\n listbox.id = this.listboxId;\n }\n trigger.setAttribute(\"role\", \"combobox\");\n trigger.setAttribute(\"aria-haspopup\", \"listbox\");\n trigger.setAttribute(\"aria-autocomplete\", \"none\");\n trigger.setAttribute(\"aria-expanded\", String(this.open));\n trigger.setAttribute(\"aria-controls\", this.listboxId);\n listbox.setAttribute(\"aria-label\", this.getAccessibleName());\n if (this.isMultiple()) {\n listbox.setAttribute(\"aria-multiselectable\", \"true\");\n } else {\n listbox.removeAttribute(\"aria-multiselectable\");\n }\n if (popup) {\n popup.removeAttribute(\"role\");\n popup.removeAttribute(\"aria-label\");\n popup.removeAttribute(\"aria-multiselectable\");\n }\n if (this.disabled) {\n trigger.disabled = true;\n }\n this.syncToggle();\n this.syncSearchInput();\n }\n syncToggle() {\n const toggle = this.getToggle();\n if (!toggle) {\n return;\n }\n toggle.setAttribute(\"aria-expanded\", String(this.open));\n toggle.disabled = this.disabled;\n }\n syncListboxHost() {\n const host = this.getListboxHost();\n if (!host) {\n return;\n }\n host.embedded = true;\n if (!this.isMultiple()) {\n host.value = this.value;\n }\n }\n syncValueDisplay() {\n if (this.hasTagGroup()) {\n this.syncTagGroup();\n return;\n }\n const valueElement = this.getValueElement();\n if (!valueElement || valueElement.childElementCount > 0) {\n return;\n }\n const selected = this.getSelectedValues();\n if (selected.length === 0) {\n valueElement.textContent = \"\";\n valueElement.setAttribute(\"data-placeholder\", \"true\");\n if (this.placeholder) {\n valueElement.textContent = this.placeholder;\n }\n return;\n }\n valueElement.removeAttribute(\"data-placeholder\");\n if (this.isMultiple()) {\n const labels = selected.map(value => {\n const match2 = this.getOptions().find(option => this.getOptionValue(option) === value);\n return match2 ? this.getOptionLabel(match2) : value;\n });\n valueElement.textContent = labels.join(\", \");\n return;\n }\n const match = this.getOptions().find(option => this.getOptionValue(option) === selected[0]);\n valueElement.textContent = match ? this.getOptionLabel(match) : selected[0];\n }\n syncOptionSelection() {\n const selected = new Set(this.getSelectedValues());\n for (const option of this.getOptions()) {\n const value = this.getOptionValue(option);\n const isSelected = selected.has(value);\n option.setAttribute(\"aria-selected\", String(isSelected));\n }\n }\n setOpen(next, options = {}) {\n const activate = options.activate ?? \"none\";\n this.open = next;\n const trigger = this.getTrigger();\n const popup = this.getListboxPopup();\n if (!trigger || !popup) {\n return;\n }\n trigger.setAttribute(\"aria-expanded\", String(next));\n popup.hidden = !next;\n if (!next) {\n this.listboxBehavior.clearActiveOption();\n this.resetSearchFilter();\n this.syncSearchInput();\n this.listboxBehavior.syncPopoverPosition();\n return;\n }\n this.ensureOptionIds();\n this.syncSearchInput();\n this.listboxBehavior.syncPopoverPosition();\n if (this.hasSearchInput()) {\n this.focusPopupInput();\n }\n if (activate === \"first\") {\n const visible = this.listboxBehavior.getVisibleOptions();\n this.listboxBehavior.setActiveOption(visible.length ? 0 : -1);\n return;\n }\n if (activate === \"last\") {\n const visible = this.listboxBehavior.getVisibleOptions();\n this.listboxBehavior.setActiveOption(visible.length ? visible.length - 1 : -1);\n return;\n }\n this.listboxBehavior.clearActiveOption();\n }\n selectOption(option) {\n if (option.getAttribute(\"aria-disabled\") === \"true\") {\n return;\n }\n const optionValue = this.getOptionValue(option);\n if (this.isMultiple()) {\n const selected = new Set(this.getSelectedValues());\n if (selected.has(optionValue)) {\n selected.delete(optionValue);\n } else {\n selected.add(optionValue);\n }\n this.setSelectedValues([...selected]);\n } else {\n this.value = optionValue;\n }\n this.syncValueDisplay();\n this.syncOptionSelection();\n this.changeEvent.emit({\n value: this.value\n });\n if (this.closesOnSelect()) {\n this.resetSearchFilter();\n this.setOpen(false);\n this.getTrigger()?.focus();\n }\n }\n handleListboxKeydown(event2) {\n this.listboxBehavior.handleKeydown(event2, {\n isOpen: this.open,\n canUseSpace: !this.hasSearchInput(),\n closesOnTab: this.closesOnSelect(),\n enterWhenClosed: \"open\",\n enterWithoutActive: \"ignore\",\n onOpen: (activation = \"none\") => this.setOpen(true, {\n activate: activation\n }),\n onClose: reason => {\n this.setOpen(false);\n if (reason === \"arrow\" || reason === \"escape\") {\n this.getTrigger()?.focus();\n }\n },\n onSelectActive: () => {\n const option = this.listboxBehavior.getVisibleOptions()[this.listboxBehavior.activeOptionIndex];\n if (option) {\n this.selectOption(option);\n }\n }\n });\n }\n handleTriggerKeydown(event2) {\n this.handleListboxKeydown(event2);\n }\n initialize() {\n this.ensureOptionIds();\n this.syncLabel();\n this.syncTrigger();\n this.syncListboxHost();\n this.syncValueDisplay();\n this.syncOptionSelection();\n this.setOpen(false);\n }\n connectedCallback() {\n super.connectedCallback();\n queueMicrotask(() => this.initialize());\n }\n disconnectedCallback() {\n this.listboxBehavior.destroy();\n super.disconnectedCallback();\n }\n onPropsUpdated() {\n this.syncLabel();\n this.syncTrigger();\n this.syncListboxHost();\n this.syncValueDisplay();\n this.syncOptionSelection();\n }\n onTriggerClick(event2) {\n event2.preventDefault();\n const trigger = this.getTrigger();\n if (!trigger || trigger.disabled) {\n return;\n }\n if (this.open) {\n this.setOpen(false);\n } else {\n this.setOpen(true);\n }\n if (this.open && this.hasSearchInput()) {\n this.focusPopupInput();\n return;\n }\n trigger.focus();\n }\n onTriggerKeydown(event2) {\n this.handleTriggerKeydown(event2);\n }\n onSearchKeydown(event2) {\n this.handleListboxKeydown(event2);\n }\n onSearchInput() {\n if (!this.open) {\n return;\n }\n this.listboxBehavior.clearActiveOption();\n }\n onTagRemove(event2) {\n const detail = event2.detail;\n if (!detail?.value) {\n return;\n }\n this.removeSelectedValue(detail.value);\n }\n onTagClick(event2) {\n const target = event2.target;\n if (target.closest(\"[data-tag-remove]\")) {\n return;\n }\n event2.stopPropagation();\n }\n onOptionPointerOver(event2) {\n if (!this.open) {\n return;\n }\n const option = event2.target.closest('[role=\"option\"]');\n if (!option || option.getAttribute(\"aria-disabled\") === \"true\" || option.hidden) {\n return;\n }\n const visible = this.listboxBehavior.getVisibleOptions();\n const index = visible.indexOf(option);\n if (index >= 0) {\n this.listboxBehavior.setActiveOption(index);\n }\n }\n onOptionMouseDown(event2) {\n event2.preventDefault();\n }\n onOptionClick(event2) {\n const option = event2.target.closest('[role=\"option\"]');\n if (option) {\n this.selectOption(option);\n }\n }\n onFocusOut(event2) {\n if (!this.listboxBehavior.shouldDismissFocus(event2.relatedTarget)) {\n return;\n }\n this.setOpen(false);\n }\n onDocumentPointerDown(event2) {\n if (!this.open) {\n return;\n }\n if (!this.listboxBehavior.shouldDismissPointer(event2.target)) {\n return;\n }\n this.setOpen(false);\n }\n render() {\n return /* @__PURE__ */jsxs(\"div\", {\n class: \"rui-select\",\n \"data-ref\": \"root\",\n children: [/* @__PURE__ */jsx(\"slot\", {\n name: \"trigger\"\n }), /* @__PURE__ */jsx(\"slot\", {\n name: \"listbox\"\n })]\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiSelect as RuiSelect };", "export function findAssociatedLabel(owner) {\n const previous = owner.previousElementSibling;\n if (previous?.tagName.toLowerCase() === \"label\") {\n return previous;\n }\n return owner.parentElement?.querySelector(\"[data-rui-field-label], label.rui-label\") ?? null;\n}\nexport function syncFieldLabel(owner, control, options) {\n if (!control || control.hasAttribute(\"data-rui-field-managed\")) {\n return;\n }\n const labelElement = findAssociatedLabel(owner);\n if (labelElement) {\n if (!labelElement.id) {\n labelElement.id = options.labelId;\n }\n if (!labelElement.htmlFor) {\n labelElement.htmlFor = options.controlId;\n }\n control.setAttribute(\"aria-labelledby\", labelElement.id);\n control.removeAttribute(\"aria-label\");\n return;\n }\n if (options.label) {\n control.setAttribute(\"aria-label\", options.label);\n control.removeAttribute(\"aria-labelledby\");\n return;\n }\n control.removeAttribute(\"aria-label\");\n control.removeAttribute(\"aria-labelledby\");\n}", "const OPPOSITE = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n};\nconst DEFAULT_VIEWPORT_PADDING = 8;\nfunction parsePlacement(placement) {\n const dash = placement.indexOf(\"-\");\n if (dash === -1) return {\n side: placement,\n align: \"center\"\n };\n const side = placement.slice(0, dash);\n const align = placement.slice(dash + 1);\n return {\n side,\n align: align === \"start\" || align === \"end\" ? align : \"center\"\n };\n}\nfunction primaryAxis(side) {\n return side === \"top\" || side === \"bottom\" ? \"y\" : \"x\";\n}\nfunction coordsFor(anchor, size, side, align, gap) {\n const {\n width,\n height\n } = size;\n let x = 0;\n let y = 0;\n switch (side) {\n case \"top\":\n y = anchor.top - height - gap;\n break;\n case \"bottom\":\n y = anchor.bottom + gap;\n break;\n case \"left\":\n x = anchor.left - width - gap;\n break;\n case \"right\":\n x = anchor.right + gap;\n break;\n }\n if (primaryAxis(side) === \"y\") {\n if (align === \"start\") x = anchor.left;else if (align === \"end\") x = anchor.right - width;else x = anchor.left + (anchor.width - width) / 2;\n } else {\n if (align === \"start\") y = anchor.top;else if (align === \"end\") y = anchor.bottom - height;else y = anchor.top + (anchor.height - height) / 2;\n }\n return {\n x,\n y\n };\n}\nfunction overflowOnPrimary(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return Math.max(0, padding - coords.y);\n if (side === \"bottom\") return Math.max(0, coords.y + size.height - (vh - padding));\n if (side === \"left\") return Math.max(0, padding - coords.x);\n return Math.max(0, coords.x + size.width - (vw - padding));\n}\nfunction freeSpaceOnSide(anchor, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return anchor.top - padding - size.height;\n if (side === \"bottom\") return vh - padding - size.height - anchor.bottom;\n if (side === \"left\") return anchor.left - padding - size.width;\n return vw - padding - size.width - anchor.right;\n}\nfunction toPlacement(side, align) {\n if (align === \"center\") {\n return side;\n }\n return `${side}-${align}`;\n}\nfunction clampCrossAxis(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (primaryAxis(side) === \"y\") {\n const maxX = Math.max(padding, vw - padding - size.width);\n return {\n x: Math.min(Math.max(coords.x, padding), maxX),\n y: coords.y\n };\n }\n const maxY = Math.max(padding, vh - padding - size.height);\n return {\n x: coords.x,\n y: Math.min(Math.max(coords.y, padding), maxY)\n };\n}\nexport function computeFloatingCoords(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n return computeFloatingPosition(anchor, size, placement, gap, viewport).coords;\n}\nexport function computeFloatingPosition(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n const {\n side: preferred,\n align\n } = parsePlacement(placement);\n const preferredCoords = coordsFor(anchor, size, preferred, align, gap);\n const preferredOverflow = overflowOnPrimary(preferredCoords, size, preferred, viewport);\n let side = preferred;\n let coords = preferredCoords;\n if (preferredOverflow > 0) {\n const flipped = OPPOSITE[preferred];\n const flippedCoords = coordsFor(anchor, size, flipped, align, gap);\n const preferredFree = freeSpaceOnSide(anchor, size, preferred, viewport);\n const flippedFree = freeSpaceOnSide(anchor, size, flipped, viewport);\n if (flippedFree > preferredFree) {\n side = flipped;\n coords = flippedCoords;\n }\n }\n return {\n coords: clampCrossAxis(coords, size, side, viewport),\n placement: toPlacement(side, align)\n };\n}\nexport function applyFloatingPosition(anchor, floating, placement, gap, options = {}) {\n const {\n coords,\n placement: resolved\n } = computeFloatingPosition(anchor.getBoundingClientRect(), {\n width: floating.offsetWidth,\n height: floating.offsetHeight\n }, placement, gap);\n Object.assign(floating.style, {\n position: \"fixed\",\n left: `${coords.x}px`,\n top: `${coords.y}px`,\n right: \"auto\",\n bottom: \"auto\",\n visibility: \"visible\"\n });\n if (options.matchAnchorWidth) {\n floating.style.width = `${anchor.offsetWidth}px`;\n }\n floating.setAttribute(\"data-placement\", resolved);\n return resolved;\n}\nexport function attachFloating({\n anchor,\n floating,\n getPlacement,\n gap,\n matchAnchorWidth\n}) {\n const update = () => {\n if (floating.hidden) return;\n applyFloatingPosition(anchor, floating, getPlacement(), gap, {\n matchAnchorWidth\n });\n };\n update();\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n const observer = new ResizeObserver(update);\n observer.observe(anchor);\n observer.observe(floating);\n return () => {\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n observer.disconnect();\n };\n}", "export function mountPortal(node, container = document.body) {\n const parent = node.parentNode;\n if (!parent) {\n return {\n unmount: () => {}\n };\n }\n const placeholder = document.createComment(\"rui-portal\");\n parent.insertBefore(placeholder, node);\n container.appendChild(node);\n return {\n unmount: () => {\n const restoreParent = placeholder.parentNode;\n if (!restoreParent) {\n return;\n }\n restoreParent.insertBefore(node, placeholder);\n placeholder.remove();\n }\n };\n}", "import { attachFloating } from \"./floating-position\";\nimport { mountPortal } from \"./portal\";\nexport function popoverContains(anchor, floating, node) {\n if (!node) {\n return false;\n }\n return Boolean(anchor?.contains(node) || floating?.contains(node));\n}\nexport function shouldDismissPopoverFocus(anchor, floating, relatedTarget) {\n if (!(relatedTarget instanceof Node)) {\n return true;\n }\n return !popoverContains(anchor, floating, relatedTarget);\n}\nexport function shouldDismissPopoverPointer(anchor, floating, target) {\n return !popoverContains(anchor, floating, target);\n}\nexport class PopoverController {\n config;\n cleanupFloating = null;\n portalHandle = null;\n floatingElement = null;\n constructor(config) {\n this.config = config;\n }\n updateConfig(patch) {\n this.config = {\n ...this.config,\n ...patch\n };\n }\n sync() {\n const floating = this.resolveFloating();\n if (!floating) {\n return;\n }\n const open = this.config.getOpen();\n if (!open) {\n this.teardown();\n floating.hidden = true;\n return;\n }\n const anchor = this.config.getAnchor();\n if (!anchor) {\n return;\n }\n floating.hidden = false;\n const usePortal = this.config.portal !== false;\n if (usePortal) {\n if (!this.portalHandle) {\n this.portalHandle = mountPortal(floating, this.config.portalContainer ?? document.body);\n }\n } else if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n this.teardownFloating();\n this.cleanupFloating = attachFloating({\n anchor,\n floating,\n getPlacement: this.config.getPlacement,\n gap: this.config.gap ?? 8,\n matchAnchorWidth: this.config.matchAnchorWidth\n });\n }\n contains(node) {\n return popoverContains(this.config.getAnchor(), this.resolveFloating(), node);\n }\n getFloatingElement() {\n return this.resolveFloating();\n }\n teardown() {\n this.teardownFloating();\n if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n }\n destroy() {\n this.teardown();\n this.floatingElement = null;\n }\n resolveFloating() {\n const configuredFloating = this.config.getFloating();\n if (configuredFloating) {\n this.floatingElement = configuredFloating;\n }\n return configuredFloating ?? this.floatingElement;\n }\n teardownFloating() {\n this.cleanupFloating?.();\n this.cleanupFloating = null;\n }\n}", "export function getVisibleCollectionOptions(options) {\n return options.filter(option => !option.hidden && option.getAttribute(\"aria-disabled\") !== \"true\");\n}\nexport function wrapCollectionIndex(index, direction, length) {\n if (length === 0) {\n return -1;\n }\n if (direction === 1) {\n return index >= length - 1 ? 0 : index + 1;\n }\n return index <= 0 ? length - 1 : index - 1;\n}\nexport function clearCollectionActive(options, activeHost) {\n activeHost?.removeAttribute(\"aria-activedescendant\");\n for (const option of options) {\n option.removeAttribute(\"data-active\");\n }\n}\nexport function setCollectionActive(options, visibleOptions, index, activeHost, idPrefix) {\n clearCollectionActive(options, activeHost);\n const active = visibleOptions[index];\n if (!active || !activeHost) {\n return null;\n }\n if (!active.id) {\n active.id = `${idPrefix}-${index}`;\n }\n active.setAttribute(\"data-active\", \"true\");\n activeHost.setAttribute(\"aria-activedescendant\", active.id);\n active.scrollIntoView({\n block: \"nearest\"\n });\n return active;\n}", "import { PopoverController, shouldDismissPopoverFocus, shouldDismissPopoverPointer } from \"./popover-controller\";\nimport { clearCollectionActive, getVisibleCollectionOptions, setCollectionActive, wrapCollectionIndex } from \"./collection-navigation\";\nexport class ListboxPopoverBehavior {\n config;\n popoverController;\n activeIndex = -1;\n visualFocus = false;\n constructor(config) {\n this.config = config;\n this.popoverController = new PopoverController({\n getAnchor: config.getAnchor,\n getFloating: config.getFloating,\n getOpen: config.getOpen,\n getPlacement: () => \"bottom-start\",\n gap: 4,\n portal: false,\n matchAnchorWidth: true\n });\n }\n get activeOptionIndex() {\n return this.activeIndex;\n }\n get hasVisualFocus() {\n return this.visualFocus;\n }\n ensureOptionIds() {\n this.config.getOptions().forEach((option, index) => {\n if (!option.id) {\n option.id = `${this.config.getOptionIdPrefix()}-${index}`;\n }\n });\n }\n getVisibleOptions() {\n return getVisibleCollectionOptions(this.config.getOptions());\n }\n clearActiveOption() {\n this.activeIndex = -1;\n this.visualFocus = false;\n clearCollectionActive(this.config.getOptions(), this.config.getActiveDescendantHost());\n }\n setActiveOption(index) {\n const visible = this.getVisibleOptions();\n if (index < 0 || index >= visible.length) {\n this.clearActiveOption();\n return;\n }\n this.activeIndex = index;\n this.visualFocus = true;\n setCollectionActive(this.config.getOptions(), visible, index, this.config.getActiveDescendantHost(), this.config.getOptionIdPrefix());\n }\n moveActive(direction, onOpen) {\n const visible = this.getVisibleOptions();\n if (!visible.length) {\n return;\n }\n if (!this.config.getOpen()) {\n onOpen(direction === 1 ? \"first\" : \"last\");\n return;\n }\n if (this.visualFocus) {\n this.setActiveOption(wrapCollectionIndex(this.activeIndex, direction, visible.length));\n return;\n }\n this.setActiveOption(direction === 1 ? 0 : visible.length - 1);\n }\n /** Handles the APG keys shared by select-only and autocomplete listboxes. */\n handleKeydown(event, options) {\n if (event.ctrlKey || event.shiftKey || event.metaKey) {\n return;\n }\n if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n event.preventDefault();\n event.stopPropagation();\n const direction = event.key === \"ArrowDown\" ? 1 : -1;\n if (event.altKey) {\n if (direction === 1 && !options.isOpen) {\n options.onOpen();\n } else if (direction === -1 && options.isOpen) {\n options.onClose(\"arrow\");\n }\n return;\n }\n this.moveActive(direction, activation => options.onOpen(activation));\n return;\n }\n if (event.key === \"Escape\") {\n event.preventDefault();\n if (options.isOpen) {\n options.onClose(\"escape\");\n } else {\n options.onEscapeWhenClosed?.();\n }\n return;\n }\n if (event.key === \"Enter\" || event.key === \" \" && options.canUseSpace) {\n if (!options.isOpen && options.enterWhenClosed === \"open\") {\n event.preventDefault();\n options.onOpen();\n return;\n }\n const visible = this.getVisibleOptions();\n if (options.isOpen && this.visualFocus && visible[this.activeIndex]) {\n event.preventDefault();\n options.onSelectActive();\n } else if (event.key === \"Enter\" && options.isOpen && options.enterWithoutActive === \"close\") {\n event.preventDefault();\n options.onClose(\"enter\");\n }\n return;\n }\n if (event.key === \"Tab\" && options.isOpen) {\n const visible = this.getVisibleOptions();\n if (this.visualFocus && visible[this.activeIndex] && options.closesOnTab) {\n options.onSelectActive();\n return;\n }\n options.onClose(\"tab\");\n }\n }\n syncPopoverPosition() {\n this.popoverController.sync();\n }\n shouldDismissFocus(relatedTarget) {\n return shouldDismissPopoverFocus(this.config.getAnchor(), this.popoverController.getFloatingElement(), relatedTarget);\n }\n shouldDismissPointer(target) {\n return shouldDismissPopoverPointer(this.config.getAnchor(), this.popoverController.getFloatingElement(), target);\n }\n destroy() {\n this.popoverController.destroy();\n }\n}", "export function parseMultiValue(value) {\n return value.split(\",\").map(item => item.trim()).filter(Boolean);\n}\nexport function serializeMultiValue(values) {\n return values.join(\",\");\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport { RuiIconChevronDown } from \"@/lib/icons\";\nimport { defineRadiantView } from \"@/lib/radiant-view\";\nimport { RuiListbox, RuiListboxOption } from \"../listbox\";\nimport { RuiSelect as RuiSelectElement } from \"./select.script\";\nexport function RuiSelectControl({\n children,\n slot = \"trigger\",\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n slot,\n class: cx(\"rui-select__control\", className),\n children\n });\n}\nexport function RuiSelectTrigger({\n children,\n class: className,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"button\", {\n ...props,\n type: \"button\",\n \"data-select-trigger\": true,\n \"data-rui-control\": true,\n \"data-rui-control-type\": \"text\",\n class: cx(\"rui-select__trigger\", className),\n disabled,\n children\n });\n}\nexport function RuiSelectToggle({\n children,\n class: className,\n \"aria-label\": ariaLabel = \"Show options\",\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"button\", {\n ...props,\n type: \"button\",\n \"data-select-toggle\": true,\n class: cx(\"rui-control-toggle\", className),\n \"aria-label\": ariaLabel,\n disabled,\n tabIndex: -1,\n children: children ?? /* @__PURE__ */jsx(RuiIconChevronDown, {})\n });\n}\nexport function RuiSelectValue({\n children,\n slot,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"span\", {\n ...props,\n slot,\n \"data-select-value\": true,\n class: cx(\"rui-select__value\", className),\n children\n });\n}\nexport function RuiSelectListbox({\n children,\n slot = \"listbox\",\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n slot,\n \"data-select-listbox\": true,\n class: cx(\"rui-select__listbox rui-popover rui-popover--listbox rui-floating\", className),\n hidden: true,\n children\n });\n}\nexport function RuiSelectSearch({\n placeholder,\n slot = \"input\",\n class: className,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"input\", {\n ...props,\n type: \"search\",\n slot,\n \"data-autocomplete-input\": true,\n class: cx(\"rui-select__search\", className),\n placeholder,\n disabled,\n autocomplete: \"off\"\n });\n}\nexport const RuiSelectOption = RuiListboxOption;\nexport const RuiSelect = defineRadiantView(RuiSelectElement, ({\n options,\n children,\n ...props\n}) => {\n if (options != null) {\n return /* @__PURE__ */jsxs(\"rui-select\", {\n ...props,\n children: [/* @__PURE__ */jsxs(RuiSelectControl, {\n children: [/* @__PURE__ */jsx(RuiSelectTrigger, {\n children: /* @__PURE__ */jsx(RuiSelectValue, {})\n }), /* @__PURE__ */jsx(RuiSelectToggle, {})]\n }), /* @__PURE__ */jsx(RuiSelectListbox, {\n children: /* @__PURE__ */jsx(RuiListbox, {\n embedded: true,\n options\n })\n })]\n });\n }\n return /* @__PURE__ */jsx(\"rui-select\", {\n ...props,\n children\n });\n}, {\n stylesheets: [\"./select.css\", \"../shared/control-toggle.css\", \"../../../lib/icons/icons.css\"]\n});", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nexport function RuiIconChevronDown({\n class: className,\n size = \"sm\",\n ...props\n}) {\n return /* @__PURE__ */jsx(\"svg\", {\n ...props,\n class: cx(\"rui-icon\", size === \"md\" && \"rui-icon--md\", className),\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": \"true\",\n children: /* @__PURE__ */jsx(\"path\", {\n d: \"m6 9 6 6 6-6\"\n })\n });\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_value, _init_extra_value, _init_label, _init_extra_label, _init_disabled, _init_extra_disabled, _init_embedded, _init_extra_embedded, _init_bordered, _init_extra_bordered, _init_changeEvent, _init_extra_changeEvent;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { RadiantElement, customElement, event, onEvent, onUpdated, prop } from \"@ecopages/radiant\";\nimport { navigateRovingTabindex } from \"@/lib/roving-tabindex\";\nlet _RuiListbox;\nclass RuiListbox extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_label, _init_extra_label, _init_disabled, _init_extra_disabled, _init_embedded, _init_extra_embedded, _init_bordered, _init_extra_bordered, _init_changeEvent, _init_extra_changeEvent, _initProto],\n c: [_RuiListbox, _initClass]\n } = _applyDecs(this, [customElement(\"rui-listbox\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"value\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"embedded\"], [prop({\n type: Boolean,\n reflect: true\n }), 0, \"bordered\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [onUpdated([\"value\", \"disabled\", \"embedded\", \"bordered\"]), 2, \"onPropsUpdated\"], [onEvent({\n selector: '[role=\"option\"]',\n type: \"click\"\n }), 2, \"onOptionClick\"], [onEvent({\n selector: '[role=\"option\"]',\n type: \"keydown\"\n }), 2, \"onOptionKeydown\"]], 0, void 0, RadiantElement));\n }\n value = (_initProto(this), _init_value(this));\n label = (_init_extra_value(this), _init_label(this));\n disabled = (_init_extra_label(this), _init_disabled(this));\n embedded = (_init_extra_disabled(this), _init_embedded(this));\n bordered = (_init_extra_embedded(this), _init_bordered(this));\n changeEvent = (_init_extra_bordered(this), _init_changeEvent(this));\n resolvedAriaLabel = (_init_extra_changeEvent(this), this.$.label.map(label => label || void 0));\n resolvedAriaDisabled = this.$.disabled.map(disabled => disabled ? \"true\" : void 0);\n connectedCallback() {\n super.connectedCallback();\n queueMicrotask(() => {\n this.sync();\n this.syncPresentation();\n });\n }\n onPropsUpdated() {\n this.sync();\n this.syncPresentation();\n }\n getOptions() {\n return Array.from(this.querySelectorAll('[role=\"option\"]'));\n }\n sync() {\n const options = this.getOptions();\n for (const option of options) {\n const selected = option.getAttribute(\"data-value\") === this.value;\n option.setAttribute(\"aria-selected\", String(selected));\n option.tabIndex = this.embedded ? -1 : selected || !this.value && option === options[0] ? 0 : -1;\n }\n }\n select(option) {\n if (this.disabled || option.getAttribute(\"aria-disabled\") === \"true\") return;\n this.value = option.getAttribute(\"data-value\") || option.textContent?.trim() || \"\";\n this.sync();\n this.changeEvent.emit({\n value: this.value\n });\n option.focus();\n }\n onOptionClick(event2) {\n if (this.embedded) {\n return;\n }\n const option = event2.target.closest('[role=\"option\"]');\n if (option && this.contains(option)) this.select(option);\n }\n onOptionKeydown(event2) {\n if (this.embedded) {\n return;\n }\n const options = this.getOptions();\n const current = event2.target.closest('[role=\"option\"]');\n if (!current) return;\n if (event2.key === \"Enter\" || event2.key === \" \") {\n event2.preventDefault();\n this.select(current);\n return;\n }\n const result = navigateRovingTabindex({\n items: options,\n current,\n key: event2.key,\n orientation: \"vertical\"\n });\n if (!result.handled) return;\n event2.preventDefault();\n this.select(result.item);\n }\n isBordered() {\n if (this.bordered != null) {\n return this.bordered;\n }\n return !this.embedded;\n }\n syncPresentation() {\n const root = this.querySelector(\".rui-listbox\");\n if (!root) {\n return;\n }\n root.classList.toggle(\"rui-listbox--bordered\", this.isBordered());\n }\n render() {\n const bordered = this.isBordered();\n return /* @__PURE__ */jsx(\"div\", {\n class: `rui-listbox${bordered ? \" rui-listbox--bordered\" : \"\"}`,\n role: \"listbox\",\n \"data-rui-control\": true,\n \"data-rui-control-type\": \"text\",\n \"aria-label\": this.resolvedAriaLabel,\n \"aria-disabled\": this.resolvedAriaDisabled,\n children: /* @__PURE__ */jsx(\"slot\", {})\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiListbox as RuiListbox };", "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\";\nimport { defineRadiantView } from \"@/lib/radiant-view\";\nimport { RuiListbox as RuiListboxElement } from \"./listbox.script\";\nexport function RuiListboxOption({\n value,\n label,\n children,\n class: className,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n class: cx(\"rui-listbox__option\", className),\n role: \"option\",\n \"data-value\": value,\n \"data-label\": label,\n \"aria-disabled\": disabled ? \"true\" : void 0,\n tabindex: -1,\n children\n });\n}\nexport const RuiListbox = defineRadiantView(RuiListboxElement, ({\n options,\n children,\n ...props\n}) => {\n if (options != null) {\n return /* @__PURE__ */jsx(\"rui-listbox\", {\n ...props,\n children: options.map(option => /* @__PURE__ */jsx(RuiListboxOption, {\n value: option.value,\n label: typeof option.label === \"string\" ? option.label : void 0,\n disabled: option.disabled,\n children: option.label\n }))\n });\n }\n return /* @__PURE__ */jsx(\"rui-listbox\", {\n ...props,\n children\n });\n}, {\n stylesheets: [\"./listbox.css\"]\n});"],
5
- "mappings": "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",
6
- "names": ["jsx", "jsxs", "RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "query", "findAssociatedLabel", "owner", "previous", "syncFieldLabel", "control", "options", "labelElement", "OPPOSITE", "DEFAULT_VIEWPORT_PADDING", "parsePlacement", "placement", "dash", "side", "align", "primaryAxis", "coordsFor", "anchor", "size", "gap", "width", "height", "x", "y", "overflowOnPrimary", "coords", "viewport", "padding", "vw", "vh", "freeSpaceOnSide", "toPlacement", "clampCrossAxis", "maxX", "maxY", "computeFloatingPosition", "anchor", "size", "placement", "gap", "viewport", "DEFAULT_VIEWPORT_PADDING", "preferred", "align", "parsePlacement", "preferredCoords", "coordsFor", "preferredOverflow", "overflowOnPrimary", "side", "coords", "flipped", "OPPOSITE", "flippedCoords", "preferredFree", "freeSpaceOnSide", "clampCrossAxis", "toPlacement", "applyFloatingPosition", "floating", "options", "resolved", "attachFloating", "getPlacement", "matchAnchorWidth", "update", "observer", "mountPortal", "node", "container", "parent", "placeholder", "restoreParent", "popoverContains", "anchor", "floating", "node", "shouldDismissPopoverFocus", "relatedTarget", "shouldDismissPopoverPointer", "target", "PopoverController", "config", "patch", "mountPortal", "attachFloating", "configuredFloating", "getVisibleCollectionOptions", "options", "option", "wrapCollectionIndex", "index", "direction", "length", "clearCollectionActive", "activeHost", "setCollectionActive", "visibleOptions", "idPrefix", "active", "ListboxPopoverBehavior", "config", "PopoverController", "option", "index", "getVisibleCollectionOptions", "clearCollectionActive", "visible", "setCollectionActive", "direction", "onOpen", "wrapCollectionIndex", "event", "options", "activation", "relatedTarget", "shouldDismissPopoverFocus", "target", "shouldDismissPopoverPointer", "parseMultiValue", "value", "item", "serializeMultiValue", "values", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_label", "_init_extra_label", "_init_placeholder", "_init_extra_placeholder", "_init_disabled", "_init_extra_disabled", "_init_selectionMode", "_init_extra_selectionMode", "_init_shouldCloseOnSelect", "_init_extra_shouldCloseOnSelect", "_init_changeEvent", "_init_extra_changeEvent", "_init_rootTarget", "_init_extra_rootTarget", "_applyDecs", "e", "n", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "r", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiSelect", "RuiSelect", "RadiantElement", "customElement", "prop", "event", "query", "onUpdated", "onEvent", "args", "ListboxPopoverBehavior", "parseMultiValue", "values", "serializeMultiValue", "search", "trigger", "listbox", "tagGroup", "valueElement", "selected", "items", "value", "option", "item", "selectedCount", "placeholder", "host", "findAssociatedLabel", "syncFieldLabel", "popup", "toggle", "labels", "match2", "match", "isSelected", "next", "options", "activate", "visible", "optionValue", "event2", "activation", "reason", "detail", "index", "jsxs", "jsx", "jsx", "jsxs", "cx", "parts", "jsx", "RuiIconChevronDown", "className", "size", "props", "jsx", "cx", "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", "RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "applyRovingTabindex", "items", "activeIndex", "item", "index", "focusRovingItem", "next", "deltaForKey", "key", "orientation", "navigateRovingTabindex", "options", "current", "wrap", "delta", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_label", "_init_extra_label", "_init_disabled", "_init_extra_disabled", "_init_embedded", "_init_extra_embedded", "_init_bordered", "_init_extra_bordered", "_init_changeEvent", "_init_extra_changeEvent", "_applyDecs", "e", "n", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "r", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiListbox", "RuiListbox", "RadiantElement", "customElement", "prop", "event", "onUpdated", "onEvent", "label", "disabled", "options", "option", "selected", "event2", "current", "result", "navigateRovingTabindex", "root", "bordered", "jsx", "jsx", "RuiListboxOption", "value", "label", "children", "className", "disabled", "props", "jsx", "cx", "RuiListbox", "defineRadiantView", "_RuiListbox", "options", "option", "RuiSelectControl", "children", "slot", "className", "props", "jsx", "cx", "RuiSelectTrigger", "disabled", "RuiSelectToggle", "ariaLabel", "RuiIconChevronDown", "RuiSelectValue", "RuiSelectListbox", "RuiSelectSearch", "placeholder", "RuiSelectOption", "RuiListboxOption", "RuiSelect", "defineRadiantView", "_RuiSelect", "options", "jsxs", "RuiListbox"]
3
+ "sources": ["../../../../src/components/ui/select/select.script.tsx", "../../../../src/components/ui/shared/field-label.ts", "../../../../src/components/ui/shared/floating-position.ts", "../../../../src/components/ui/shared/portal.ts", "../../../../src/components/ui/shared/popover-controller.ts", "../../../../src/components/ui/shared/collection-navigation.ts", "../../../../src/components/ui/shared/listbox-popover-behavior.ts", "../../../../src/components/ui/shared/multi-value.ts", "../../../../src/components/ui/select/select.tsx", "../../../../src/lib/cx.ts", "../../../../src/lib/icons/chevron-down.tsx", "../../../../src/components/ui/listbox/listbox.tsx"],
4
+ "sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_label, _init_extra_label, _init_placeholder, _init_extra_placeholder, _init_disabled, _init_extra_disabled, _init_selectionMode, _init_extra_selectionMode, _init_shouldCloseOnSelect, _init_extra_shouldCloseOnSelect, _init_changeEvent, _init_extra_changeEvent, _init_rootTarget, _init_extra_rootTarget;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { RadiantElement, customElement, event, onEvent, onUpdated, prop, query } from \"@ecopages/radiant\";\nimport { findAssociatedLabel, syncFieldLabel } from \"../shared/field-label\";\nimport { ListboxPopoverBehavior } from \"../shared/listbox-popover-behavior\";\nimport { parseMultiValue, serializeMultiValue } from \"../shared/multi-value\";\nlet _RuiSelect;\nclass RuiSelect extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_label, _init_extra_label, _init_placeholder, _init_extra_placeholder, _init_disabled, _init_extra_disabled, _init_selectionMode, _init_extra_selectionMode, _init_shouldCloseOnSelect, _init_extra_shouldCloseOnSelect, _init_changeEvent, _init_extra_changeEvent, _init_rootTarget, _init_extra_rootTarget, _initProto],\n c: [_RuiSelect, _initClass]\n } = _applyDecs(this, [customElement(\"rui-select\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"value\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"placeholder\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [prop({\n type: String,\n attribute: \"selection-mode\",\n defaultValue: \"single\"\n }), 0, \"selectionMode\"], [prop({\n type: Boolean,\n attribute: \"should-close-on-select\"\n }), 0, \"shouldCloseOnSelect\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [query({\n ref: \"root\"\n }), 0, \"rootTarget\"], [onUpdated([\"value\", \"label\", \"placeholder\", \"disabled\", \"selectionMode\", \"shouldCloseOnSelect\"]), 2, \"onPropsUpdated\"], [onEvent({\n selector: \"[data-select-trigger], [data-select-toggle]\",\n type: \"click\"\n }), 2, \"onTriggerClick\"], [onEvent({\n selector: \"[data-select-trigger]\",\n type: \"keydown\",\n options: {\n capture: true\n }\n }), 2, \"onTriggerKeydown\"], [onEvent({\n selector: \"[data-select-listbox] [data-autocomplete-input]\",\n type: \"keydown\",\n options: {\n capture: true\n }\n }), 2, \"onSearchKeydown\"], [onEvent({\n selector: \"[data-select-listbox] [data-autocomplete-input]\",\n type: \"input\"\n }), 2, \"onSearchInput\"], [onEvent({\n selector: \"[data-select-value] rui-tag-group\",\n type: \"rui-remove\"\n }), 2, \"onTagRemove\"], [onEvent({\n selector: \"[data-select-value] [data-tag]\",\n type: \"click\"\n }), 2, \"onTagClick\"], [onEvent({\n selector: '[data-select-listbox] [role=\"option\"]',\n type: \"pointerover\"\n }), 2, \"onOptionPointerOver\"], [onEvent({\n selector: '[data-select-listbox] [role=\"option\"]',\n type: \"mousedown\"\n }), 2, \"onOptionMouseDown\"], [onEvent({\n selector: '[data-select-listbox] [role=\"option\"]',\n type: \"click\"\n }), 2, \"onOptionClick\"], [onEvent({\n ref: \"root\",\n type: \"focusout\"\n }), 2, \"onFocusOut\"], [onEvent({\n document: true,\n type: \"pointerdown\"\n }), 2, \"onDocumentPointerDown\"]], 0, void 0, RadiantElement));\n }\n constructor(...args) {\n super(...args);\n _init_extra_rootTarget(this);\n }\n value = (_initProto(this), _init_value(this));\n label = (_init_extra_value(this), _init_label(this));\n placeholder = (_init_extra_label(this), _init_placeholder(this));\n disabled = (_init_extra_placeholder(this), _init_disabled(this));\n selectionMode = (_init_extra_disabled(this), _init_selectionMode(this));\n shouldCloseOnSelect = (_init_extra_selectionMode(this), _init_shouldCloseOnSelect(this));\n changeEvent = (_init_extra_shouldCloseOnSelect(this), _init_changeEvent(this));\n open = (_init_extra_changeEvent(this), false);\n uid = Math.random().toString(36).slice(2, 9);\n listboxBehavior = new ListboxPopoverBehavior({\n getAnchor: () => this.rootTarget,\n getFloating: () => this.getListboxPopup(),\n getOpen: () => this.open,\n getOptions: () => this.getOptions(),\n getActiveDescendantHost: () => this.getActiveDescendantHost(),\n getOptionIdPrefix: () => `rui-select-option-${this.uid}`\n });\n rootTarget = _init_rootTarget(this);\n get listboxId() {\n return `rui-select-list-${this.uid}`;\n }\n get triggerId() {\n return `rui-select-trigger-${this.uid}`;\n }\n isMultiple() {\n return this.selectionMode === \"multiple\";\n }\n closesOnSelect() {\n if (this.shouldCloseOnSelect != null) {\n return this.shouldCloseOnSelect;\n }\n return !this.isMultiple();\n }\n getSelectedValues() {\n if (!this.value) {\n return [];\n }\n return parseMultiValue(this.value);\n }\n setSelectedValues(values) {\n this.value = serializeMultiValue(values);\n }\n getSearchInput() {\n return this.querySelector(\"[data-select-listbox] [data-autocomplete-input]\");\n }\n hasSearchInput() {\n return this.getSearchInput() != null;\n }\n /** Element that receives `aria-activedescendant` while the popup is open. */\n getActiveDescendantHost() {\n if (this.open && this.hasSearchInput()) {\n return this.getSearchInput();\n }\n return this.getTrigger();\n }\n resetSearchFilter() {\n const search = this.getSearchInput();\n if (!search || search.value === \"\") {\n return;\n }\n search.value = \"\";\n search.dispatchEvent(new Event(\"input\", {\n bubbles: true\n }));\n }\n syncSearchInput() {\n const search = this.getSearchInput();\n const trigger = this.getTrigger();\n const listbox = this.getListbox();\n if (!search || !listbox || !trigger) {\n return;\n }\n if (this.open) {\n search.setAttribute(\"role\", \"combobox\");\n search.setAttribute(\"aria-autocomplete\", \"list\");\n search.setAttribute(\"aria-expanded\", \"true\");\n search.setAttribute(\"aria-controls\", this.listboxId);\n trigger.removeAttribute(\"aria-activedescendant\");\n return;\n }\n search.removeAttribute(\"role\");\n search.removeAttribute(\"aria-autocomplete\");\n search.removeAttribute(\"aria-expanded\");\n search.removeAttribute(\"aria-controls\");\n search.removeAttribute(\"aria-activedescendant\");\n }\n focusPopupInput() {\n queueMicrotask(() => {\n this.getSearchInput()?.focus();\n });\n }\n /**\n * Resolves the multi-select chip host inside the value slot.\n *\n * @remarks\n * During Storybook/SSR upgrade, `querySelector` can return the host before\n * `rui-tag-group` is defined \u2014 treat that as absent until `setItems` exists.\n */\n getTagGroup() {\n const tagGroup = this.querySelector(\"[data-select-value] rui-tag-group\");\n if (!tagGroup || typeof tagGroup.setItems !== \"function\") {\n return null;\n }\n return tagGroup;\n }\n hasTagGroup() {\n return this.getTagGroup() != null;\n }\n syncTagGroup() {\n const tagGroup = this.getTagGroup();\n const valueElement = this.getValueElement();\n if (!tagGroup || !valueElement) {\n return;\n }\n const selected = this.getSelectedValues();\n const items = selected.flatMap(value => {\n const option = this.getOptions().find(item => this.getOptionValue(item) === value);\n return option ? [{\n value,\n label: this.getOptionLabel(option)\n }] : [];\n });\n tagGroup.embedded = true;\n tagGroup.setItems(items);\n tagGroup.value = this.value;\n this.syncTagGroupPlaceholder(valueElement, selected.length);\n }\n syncTagGroupPlaceholder(valueElement, selectedCount) {\n let placeholder = valueElement.querySelector(\"[data-select-placeholder]\");\n if (!this.placeholder) {\n placeholder?.remove();\n return;\n }\n if (!placeholder) {\n placeholder = document.createElement(\"span\");\n placeholder.setAttribute(\"data-select-placeholder\", \"true\");\n valueElement.insertBefore(placeholder, valueElement.firstChild);\n }\n placeholder.textContent = this.placeholder;\n placeholder.hidden = selectedCount > 0;\n valueElement.toggleAttribute(\"data-placeholder\", selectedCount === 0);\n }\n removeSelectedValue(value) {\n const selected = new Set(this.getSelectedValues());\n if (!selected.has(value)) {\n return;\n }\n selected.delete(value);\n this.setSelectedValues([...selected]);\n this.syncValueDisplay();\n this.syncOptionSelection();\n this.syncTagGroup();\n this.changeEvent.emit({\n value: this.value\n });\n }\n getTrigger() {\n return this.querySelector(\"[data-select-trigger]\");\n }\n getToggle() {\n return this.querySelector(\"[data-select-toggle]\");\n }\n getValueElement() {\n return this.querySelector(\"[data-select-value]\");\n }\n getListboxPopup() {\n return this.querySelector(\"[data-select-listbox]\");\n }\n getListbox() {\n const host = this.querySelector(\"rui-listbox\");\n if (host) {\n return host.querySelector('[role=\"listbox\"]');\n }\n return this.getListboxPopup();\n }\n getListboxHost() {\n return this.querySelector(\"rui-listbox\");\n }\n getOptions() {\n const listbox = this.getListbox();\n if (!listbox) {\n return [];\n }\n return Array.from(listbox.querySelectorAll('[role=\"option\"]'));\n }\n getOptionLabel(option) {\n return option.getAttribute(\"data-label\") || option.textContent?.trim() || \"\";\n }\n getOptionValue(option) {\n return option.getAttribute(\"data-value\") || this.getOptionLabel(option);\n }\n ensureOptionIds() {\n this.listboxBehavior.ensureOptionIds();\n }\n getAccessibleName() {\n const labelElement = findAssociatedLabel(this);\n return labelElement?.textContent?.trim() || this.label || \"Options\";\n }\n syncLabel() {\n const trigger = this.getTrigger();\n syncFieldLabel(this, trigger, {\n controlId: this.triggerId,\n label: this.label,\n labelId: `rui-select-label-${this.uid}`\n });\n }\n syncTrigger() {\n const trigger = this.getTrigger();\n const listbox = this.getListbox();\n const popup = this.getListboxPopup();\n if (!trigger || !listbox) {\n return;\n }\n if (!trigger.id) {\n trigger.id = this.triggerId;\n }\n if (!listbox.id) {\n listbox.id = this.listboxId;\n }\n trigger.setAttribute(\"role\", \"combobox\");\n trigger.setAttribute(\"aria-haspopup\", \"listbox\");\n trigger.setAttribute(\"aria-autocomplete\", \"none\");\n trigger.setAttribute(\"aria-expanded\", String(this.open));\n trigger.setAttribute(\"aria-controls\", this.listboxId);\n listbox.setAttribute(\"aria-label\", this.getAccessibleName());\n if (this.isMultiple()) {\n listbox.setAttribute(\"aria-multiselectable\", \"true\");\n } else {\n listbox.removeAttribute(\"aria-multiselectable\");\n }\n if (popup) {\n popup.removeAttribute(\"role\");\n popup.removeAttribute(\"aria-label\");\n popup.removeAttribute(\"aria-multiselectable\");\n }\n if (this.disabled) {\n trigger.disabled = true;\n }\n this.syncToggle();\n this.syncSearchInput();\n }\n syncToggle() {\n const toggle = this.getToggle();\n if (!toggle) {\n return;\n }\n toggle.setAttribute(\"aria-expanded\", String(this.open));\n toggle.disabled = this.disabled;\n }\n syncListboxHost() {\n const host = this.getListboxHost();\n if (!host) {\n return;\n }\n host.embedded = true;\n if (!this.isMultiple()) {\n host.value = this.value;\n }\n }\n syncValueDisplay() {\n if (this.hasTagGroup()) {\n this.syncTagGroup();\n return;\n }\n const valueElement = this.getValueElement();\n if (!valueElement || valueElement.childElementCount > 0) {\n return;\n }\n const selected = this.getSelectedValues();\n if (selected.length === 0) {\n valueElement.textContent = \"\";\n valueElement.setAttribute(\"data-placeholder\", \"true\");\n if (this.placeholder) {\n valueElement.textContent = this.placeholder;\n }\n return;\n }\n valueElement.removeAttribute(\"data-placeholder\");\n if (this.isMultiple()) {\n const labels = selected.map(value => {\n const match2 = this.getOptions().find(option => this.getOptionValue(option) === value);\n return match2 ? this.getOptionLabel(match2) : value;\n });\n valueElement.textContent = labels.join(\", \");\n return;\n }\n const match = this.getOptions().find(option => this.getOptionValue(option) === selected[0]);\n valueElement.textContent = match ? this.getOptionLabel(match) : selected[0];\n }\n syncOptionSelection() {\n const selected = new Set(this.getSelectedValues());\n for (const option of this.getOptions()) {\n const value = this.getOptionValue(option);\n const isSelected = selected.has(value);\n option.setAttribute(\"aria-selected\", String(isSelected));\n }\n }\n setOpen(next, options = {}) {\n const activate = options.activate ?? \"none\";\n this.open = next;\n const trigger = this.getTrigger();\n const popup = this.getListboxPopup();\n if (!trigger || !popup) {\n return;\n }\n trigger.setAttribute(\"aria-expanded\", String(next));\n popup.hidden = !next;\n if (!next) {\n this.listboxBehavior.clearActiveOption();\n this.resetSearchFilter();\n this.syncSearchInput();\n this.listboxBehavior.syncPopoverPosition();\n return;\n }\n this.ensureOptionIds();\n this.syncSearchInput();\n this.listboxBehavior.syncPopoverPosition();\n if (this.hasSearchInput()) {\n this.focusPopupInput();\n }\n if (activate === \"first\") {\n const visible = this.listboxBehavior.getVisibleOptions();\n this.listboxBehavior.setActiveOption(visible.length ? 0 : -1);\n return;\n }\n if (activate === \"last\") {\n const visible = this.listboxBehavior.getVisibleOptions();\n this.listboxBehavior.setActiveOption(visible.length ? visible.length - 1 : -1);\n return;\n }\n this.listboxBehavior.clearActiveOption();\n }\n selectOption(option) {\n if (option.getAttribute(\"aria-disabled\") === \"true\") {\n return;\n }\n const optionValue = this.getOptionValue(option);\n if (this.isMultiple()) {\n const selected = new Set(this.getSelectedValues());\n if (selected.has(optionValue)) {\n selected.delete(optionValue);\n } else {\n selected.add(optionValue);\n }\n this.setSelectedValues([...selected]);\n } else {\n this.value = optionValue;\n }\n this.syncValueDisplay();\n this.syncOptionSelection();\n this.changeEvent.emit({\n value: this.value\n });\n if (this.closesOnSelect()) {\n this.resetSearchFilter();\n this.setOpen(false);\n this.getTrigger()?.focus();\n }\n }\n handleListboxKeydown(event2) {\n this.listboxBehavior.handleKeydown(event2, {\n isOpen: this.open,\n canUseSpace: !this.hasSearchInput(),\n closesOnTab: this.closesOnSelect(),\n enterWhenClosed: \"open\",\n enterWithoutActive: \"ignore\",\n onOpen: (activation = \"none\") => this.setOpen(true, {\n activate: activation\n }),\n onClose: reason => {\n this.setOpen(false);\n if (reason === \"arrow\" || reason === \"escape\") {\n this.getTrigger()?.focus();\n }\n },\n onSelectActive: () => {\n const option = this.listboxBehavior.getVisibleOptions()[this.listboxBehavior.activeOptionIndex];\n if (option) {\n this.selectOption(option);\n }\n }\n });\n }\n handleTriggerKeydown(event2) {\n this.handleListboxKeydown(event2);\n }\n initialize() {\n this.ensureOptionIds();\n this.syncLabel();\n this.syncTrigger();\n this.syncListboxHost();\n this.syncValueDisplay();\n this.syncOptionSelection();\n this.setOpen(false);\n }\n connectedCallback() {\n super.connectedCallback();\n queueMicrotask(() => this.initialize());\n }\n disconnectedCallback() {\n this.listboxBehavior.destroy();\n super.disconnectedCallback();\n }\n onPropsUpdated() {\n this.syncLabel();\n this.syncTrigger();\n this.syncListboxHost();\n this.syncValueDisplay();\n this.syncOptionSelection();\n }\n onTriggerClick(event2) {\n event2.preventDefault();\n const trigger = this.getTrigger();\n if (!trigger || trigger.disabled) {\n return;\n }\n if (this.open) {\n this.setOpen(false);\n } else {\n this.setOpen(true);\n }\n if (this.open && this.hasSearchInput()) {\n this.focusPopupInput();\n return;\n }\n trigger.focus();\n }\n onTriggerKeydown(event2) {\n this.handleTriggerKeydown(event2);\n }\n onSearchKeydown(event2) {\n this.handleListboxKeydown(event2);\n }\n onSearchInput() {\n if (!this.open) {\n return;\n }\n this.listboxBehavior.clearActiveOption();\n }\n onTagRemove(event2) {\n const detail = event2.detail;\n if (!detail?.value) {\n return;\n }\n this.removeSelectedValue(detail.value);\n }\n onTagClick(event2) {\n const target = event2.target;\n if (target.closest(\"[data-tag-remove]\")) {\n return;\n }\n event2.stopPropagation();\n }\n onOptionPointerOver(event2) {\n if (!this.open) {\n return;\n }\n const option = event2.target.closest('[role=\"option\"]');\n if (!option || option.getAttribute(\"aria-disabled\") === \"true\" || option.hidden) {\n return;\n }\n const visible = this.listboxBehavior.getVisibleOptions();\n const index = visible.indexOf(option);\n if (index >= 0) {\n this.listboxBehavior.setActiveOption(index);\n }\n }\n onOptionMouseDown(event2) {\n event2.preventDefault();\n }\n onOptionClick(event2) {\n const option = event2.target.closest('[role=\"option\"]');\n if (option) {\n this.selectOption(option);\n }\n }\n onFocusOut(event2) {\n if (!this.listboxBehavior.shouldDismissFocus(event2.relatedTarget)) {\n return;\n }\n this.setOpen(false);\n }\n onDocumentPointerDown(event2) {\n if (!this.open) {\n return;\n }\n if (!this.listboxBehavior.shouldDismissPointer(event2.target)) {\n return;\n }\n this.setOpen(false);\n }\n render() {\n return /* @__PURE__ */jsxs(\"div\", {\n class: \"rui-select\",\n \"data-ref\": \"root\",\n children: [/* @__PURE__ */jsx(\"slot\", {\n name: \"trigger\"\n }), /* @__PURE__ */jsx(\"slot\", {\n name: \"listbox\"\n })]\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiSelect as RuiSelect };", "export function findAssociatedLabel(owner) {\n const previous = owner.previousElementSibling;\n if (previous?.tagName.toLowerCase() === \"label\") {\n return previous;\n }\n return owner.parentElement?.querySelector(\"[data-rui-field-label], label.rui-label\") ?? null;\n}\nexport function syncFieldLabel(owner, control, options) {\n if (!control || control.hasAttribute(\"data-rui-field-managed\")) {\n return;\n }\n const labelElement = findAssociatedLabel(owner);\n if (labelElement) {\n if (!labelElement.id) {\n labelElement.id = options.labelId;\n }\n if (!labelElement.htmlFor) {\n labelElement.htmlFor = options.controlId;\n }\n control.setAttribute(\"aria-labelledby\", labelElement.id);\n control.removeAttribute(\"aria-label\");\n return;\n }\n if (options.label) {\n control.setAttribute(\"aria-label\", options.label);\n control.removeAttribute(\"aria-labelledby\");\n return;\n }\n control.removeAttribute(\"aria-label\");\n control.removeAttribute(\"aria-labelledby\");\n}", "const OPPOSITE = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n};\nconst DEFAULT_VIEWPORT_PADDING = 8;\nfunction parsePlacement(placement) {\n const dash = placement.indexOf(\"-\");\n if (dash === -1) return {\n side: placement,\n align: \"center\"\n };\n const side = placement.slice(0, dash);\n const align = placement.slice(dash + 1);\n return {\n side,\n align: align === \"start\" || align === \"end\" ? align : \"center\"\n };\n}\nfunction primaryAxis(side) {\n return side === \"top\" || side === \"bottom\" ? \"y\" : \"x\";\n}\nfunction coordsFor(anchor, size, side, align, gap) {\n const {\n width,\n height\n } = size;\n let x = 0;\n let y = 0;\n switch (side) {\n case \"top\":\n y = anchor.top - height - gap;\n break;\n case \"bottom\":\n y = anchor.bottom + gap;\n break;\n case \"left\":\n x = anchor.left - width - gap;\n break;\n case \"right\":\n x = anchor.right + gap;\n break;\n }\n if (primaryAxis(side) === \"y\") {\n if (align === \"start\") x = anchor.left;else if (align === \"end\") x = anchor.right - width;else x = anchor.left + (anchor.width - width) / 2;\n } else {\n if (align === \"start\") y = anchor.top;else if (align === \"end\") y = anchor.bottom - height;else y = anchor.top + (anchor.height - height) / 2;\n }\n return {\n x,\n y\n };\n}\nfunction overflowOnPrimary(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return Math.max(0, padding - coords.y);\n if (side === \"bottom\") return Math.max(0, coords.y + size.height - (vh - padding));\n if (side === \"left\") return Math.max(0, padding - coords.x);\n return Math.max(0, coords.x + size.width - (vw - padding));\n}\nfunction freeSpaceOnSide(anchor, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return anchor.top - padding - size.height;\n if (side === \"bottom\") return vh - padding - size.height - anchor.bottom;\n if (side === \"left\") return anchor.left - padding - size.width;\n return vw - padding - size.width - anchor.right;\n}\nfunction toPlacement(side, align) {\n if (align === \"center\") {\n return side;\n }\n return `${side}-${align}`;\n}\nfunction clampCrossAxis(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (primaryAxis(side) === \"y\") {\n const maxX = Math.max(padding, vw - padding - size.width);\n return {\n x: Math.min(Math.max(coords.x, padding), maxX),\n y: coords.y\n };\n }\n const maxY = Math.max(padding, vh - padding - size.height);\n return {\n x: coords.x,\n y: Math.min(Math.max(coords.y, padding), maxY)\n };\n}\nexport function computeFloatingCoords(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n return computeFloatingPosition(anchor, size, placement, gap, viewport).coords;\n}\nexport function computeFloatingPosition(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n const {\n side: preferred,\n align\n } = parsePlacement(placement);\n const preferredCoords = coordsFor(anchor, size, preferred, align, gap);\n const preferredOverflow = overflowOnPrimary(preferredCoords, size, preferred, viewport);\n let side = preferred;\n let coords = preferredCoords;\n if (preferredOverflow > 0) {\n const flipped = OPPOSITE[preferred];\n const flippedCoords = coordsFor(anchor, size, flipped, align, gap);\n const preferredFree = freeSpaceOnSide(anchor, size, preferred, viewport);\n const flippedFree = freeSpaceOnSide(anchor, size, flipped, viewport);\n if (flippedFree > preferredFree) {\n side = flipped;\n coords = flippedCoords;\n }\n }\n return {\n coords: clampCrossAxis(coords, size, side, viewport),\n placement: toPlacement(side, align)\n };\n}\nexport function applyFloatingPosition(anchor, floating, placement, gap, options = {}) {\n const {\n coords,\n placement: resolved\n } = computeFloatingPosition(anchor.getBoundingClientRect(), {\n width: floating.offsetWidth,\n height: floating.offsetHeight\n }, placement, gap);\n Object.assign(floating.style, {\n position: \"fixed\",\n left: `${coords.x}px`,\n top: `${coords.y}px`,\n right: \"auto\",\n bottom: \"auto\",\n visibility: \"visible\"\n });\n if (options.matchAnchorWidth) {\n floating.style.width = `${anchor.offsetWidth}px`;\n }\n floating.setAttribute(\"data-placement\", resolved);\n return resolved;\n}\nexport function attachFloating({\n anchor,\n floating,\n getPlacement,\n gap,\n matchAnchorWidth\n}) {\n const update = () => {\n if (floating.hidden) return;\n applyFloatingPosition(anchor, floating, getPlacement(), gap, {\n matchAnchorWidth\n });\n };\n update();\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n const observer = new ResizeObserver(update);\n observer.observe(anchor);\n observer.observe(floating);\n return () => {\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n observer.disconnect();\n };\n}", "export function mountPortal(node, container = document.body) {\n const parent = node.parentNode;\n if (!parent) {\n return {\n unmount: () => {}\n };\n }\n const placeholder = document.createComment(\"rui-portal\");\n parent.insertBefore(placeholder, node);\n container.appendChild(node);\n return {\n unmount: () => {\n const restoreParent = placeholder.parentNode;\n if (!restoreParent) {\n return;\n }\n restoreParent.insertBefore(node, placeholder);\n placeholder.remove();\n }\n };\n}", "import { attachFloating } from \"./floating-position\";\nimport { mountPortal } from \"./portal\";\nexport function popoverContains(anchor, floating, node) {\n if (!node) {\n return false;\n }\n return Boolean(anchor?.contains(node) || floating?.contains(node));\n}\nexport function shouldDismissPopoverFocus(anchor, floating, relatedTarget) {\n if (!(relatedTarget instanceof Node)) {\n return true;\n }\n return !popoverContains(anchor, floating, relatedTarget);\n}\nexport function shouldDismissPopoverPointer(anchor, floating, target) {\n return !popoverContains(anchor, floating, target);\n}\nexport class PopoverController {\n config;\n cleanupFloating = null;\n portalHandle = null;\n floatingElement = null;\n constructor(config) {\n this.config = config;\n }\n updateConfig(patch) {\n this.config = {\n ...this.config,\n ...patch\n };\n }\n sync() {\n const floating = this.resolveFloating();\n if (!floating) {\n return;\n }\n const open = this.config.getOpen();\n if (!open) {\n this.teardown();\n floating.hidden = true;\n return;\n }\n const anchor = this.config.getAnchor();\n if (!anchor) {\n return;\n }\n floating.hidden = false;\n const usePortal = this.config.portal !== false;\n if (usePortal) {\n if (!this.portalHandle) {\n this.portalHandle = mountPortal(floating, this.config.portalContainer ?? document.body);\n }\n } else if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n this.teardownFloating();\n this.cleanupFloating = attachFloating({\n anchor,\n floating,\n getPlacement: this.config.getPlacement,\n gap: this.config.gap ?? 8,\n matchAnchorWidth: this.config.matchAnchorWidth\n });\n }\n contains(node) {\n return popoverContains(this.config.getAnchor(), this.resolveFloating(), node);\n }\n getFloatingElement() {\n return this.resolveFloating();\n }\n teardown() {\n this.teardownFloating();\n if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n }\n destroy() {\n this.teardown();\n this.floatingElement = null;\n }\n resolveFloating() {\n const configuredFloating = this.config.getFloating();\n if (configuredFloating) {\n this.floatingElement = configuredFloating;\n }\n return configuredFloating ?? this.floatingElement;\n }\n teardownFloating() {\n this.cleanupFloating?.();\n this.cleanupFloating = null;\n }\n}", "export function getVisibleCollectionOptions(options) {\n return options.filter(option => !option.hidden && option.getAttribute(\"aria-disabled\") !== \"true\");\n}\nexport function wrapCollectionIndex(index, direction, length) {\n if (length === 0) {\n return -1;\n }\n if (direction === 1) {\n return index >= length - 1 ? 0 : index + 1;\n }\n return index <= 0 ? length - 1 : index - 1;\n}\nexport function clearCollectionActive(options, activeHost) {\n activeHost?.removeAttribute(\"aria-activedescendant\");\n for (const option of options) {\n option.removeAttribute(\"data-active\");\n }\n}\nexport function setCollectionActive(options, visibleOptions, index, activeHost, idPrefix) {\n clearCollectionActive(options, activeHost);\n const active = visibleOptions[index];\n if (!active || !activeHost) {\n return null;\n }\n if (!active.id) {\n active.id = `${idPrefix}-${index}`;\n }\n active.setAttribute(\"data-active\", \"true\");\n activeHost.setAttribute(\"aria-activedescendant\", active.id);\n active.scrollIntoView({\n block: \"nearest\"\n });\n return active;\n}", "import { PopoverController, shouldDismissPopoverFocus, shouldDismissPopoverPointer } from \"./popover-controller\";\nimport { clearCollectionActive, getVisibleCollectionOptions, setCollectionActive, wrapCollectionIndex } from \"./collection-navigation\";\nexport class ListboxPopoverBehavior {\n config;\n popoverController;\n activeIndex = -1;\n visualFocus = false;\n constructor(config) {\n this.config = config;\n this.popoverController = new PopoverController({\n getAnchor: config.getAnchor,\n getFloating: config.getFloating,\n getOpen: config.getOpen,\n getPlacement: () => \"bottom-start\",\n gap: 4,\n portal: false,\n matchAnchorWidth: true\n });\n }\n get activeOptionIndex() {\n return this.activeIndex;\n }\n get hasVisualFocus() {\n return this.visualFocus;\n }\n ensureOptionIds() {\n this.config.getOptions().forEach((option, index) => {\n if (!option.id) {\n option.id = `${this.config.getOptionIdPrefix()}-${index}`;\n }\n });\n }\n getVisibleOptions() {\n return getVisibleCollectionOptions(this.config.getOptions());\n }\n clearActiveOption() {\n this.activeIndex = -1;\n this.visualFocus = false;\n clearCollectionActive(this.config.getOptions(), this.config.getActiveDescendantHost());\n }\n setActiveOption(index) {\n const visible = this.getVisibleOptions();\n if (index < 0 || index >= visible.length) {\n this.clearActiveOption();\n return;\n }\n this.activeIndex = index;\n this.visualFocus = true;\n setCollectionActive(this.config.getOptions(), visible, index, this.config.getActiveDescendantHost(), this.config.getOptionIdPrefix());\n }\n moveActive(direction, onOpen) {\n const visible = this.getVisibleOptions();\n if (!visible.length) {\n return;\n }\n if (!this.config.getOpen()) {\n onOpen(direction === 1 ? \"first\" : \"last\");\n return;\n }\n if (this.visualFocus) {\n this.setActiveOption(wrapCollectionIndex(this.activeIndex, direction, visible.length));\n return;\n }\n this.setActiveOption(direction === 1 ? 0 : visible.length - 1);\n }\n /** Handles the APG keys shared by select-only and autocomplete listboxes. */\n handleKeydown(event, options) {\n if (event.ctrlKey || event.shiftKey || event.metaKey) {\n return;\n }\n if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n event.preventDefault();\n event.stopPropagation();\n const direction = event.key === \"ArrowDown\" ? 1 : -1;\n if (event.altKey) {\n if (direction === 1 && !options.isOpen) {\n options.onOpen();\n } else if (direction === -1 && options.isOpen) {\n options.onClose(\"arrow\");\n }\n return;\n }\n this.moveActive(direction, activation => options.onOpen(activation));\n return;\n }\n if (event.key === \"Escape\") {\n event.preventDefault();\n if (options.isOpen) {\n options.onClose(\"escape\");\n } else {\n options.onEscapeWhenClosed?.();\n }\n return;\n }\n if (event.key === \"Enter\" || event.key === \" \" && options.canUseSpace) {\n if (!options.isOpen && options.enterWhenClosed === \"open\") {\n event.preventDefault();\n options.onOpen();\n return;\n }\n const visible = this.getVisibleOptions();\n if (options.isOpen && this.visualFocus && visible[this.activeIndex]) {\n event.preventDefault();\n options.onSelectActive();\n } else if (event.key === \"Enter\" && options.isOpen && options.enterWithoutActive === \"close\") {\n event.preventDefault();\n options.onClose(\"enter\");\n }\n return;\n }\n if (event.key === \"Tab\" && options.isOpen) {\n const visible = this.getVisibleOptions();\n if (this.visualFocus && visible[this.activeIndex] && options.closesOnTab) {\n options.onSelectActive();\n return;\n }\n options.onClose(\"tab\");\n }\n }\n syncPopoverPosition() {\n this.popoverController.sync();\n }\n shouldDismissFocus(relatedTarget) {\n return shouldDismissPopoverFocus(this.config.getAnchor(), this.popoverController.getFloatingElement(), relatedTarget);\n }\n shouldDismissPointer(target) {\n return shouldDismissPopoverPointer(this.config.getAnchor(), this.popoverController.getFloatingElement(), target);\n }\n destroy() {\n this.popoverController.destroy();\n }\n}", "export function parseMultiValue(value) {\n return value.split(\",\").map(item => item.trim()).filter(Boolean);\n}\nexport function serializeMultiValue(values) {\n return values.join(\",\");\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport { RuiIconChevronDown } from \"@/lib/icons\";\nimport { RuiListbox, RuiListboxOption } from \"../listbox\";\nimport \"./select.script\";\nexport function RuiSelectControl({\n children,\n slot = \"trigger\",\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n slot,\n class: cx(\"rui-select__control\", className),\n children\n });\n}\nexport function RuiSelectTrigger({\n children,\n class: className,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"button\", {\n ...props,\n type: \"button\",\n \"data-select-trigger\": true,\n \"data-rui-control\": true,\n \"data-rui-control-type\": \"text\",\n class: cx(\"rui-select__trigger\", className),\n disabled,\n children\n });\n}\nexport function RuiSelectToggle({\n children,\n class: className,\n \"aria-label\": ariaLabel = \"Show options\",\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"button\", {\n ...props,\n type: \"button\",\n \"data-select-toggle\": true,\n class: cx(\"rui-control-toggle\", className),\n \"aria-label\": ariaLabel,\n disabled,\n tabIndex: -1,\n children: children ?? /* @__PURE__ */jsx(RuiIconChevronDown, {})\n });\n}\nexport function RuiSelectValue({\n children,\n slot,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"span\", {\n ...props,\n slot,\n \"data-select-value\": true,\n class: cx(\"rui-select__value\", className),\n children\n });\n}\nexport function RuiSelectListbox({\n children,\n slot = \"listbox\",\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n slot,\n \"data-select-listbox\": true,\n class: cx(\"rui-select__listbox rui-popover rui-popover--listbox rui-floating\", className),\n hidden: true,\n children\n });\n}\nexport function RuiSelectSearch({\n placeholder,\n slot = \"input\",\n class: className,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"input\", {\n ...props,\n type: \"search\",\n slot,\n \"data-autocomplete-input\": true,\n class: cx(\"rui-select__search\", className),\n placeholder,\n disabled,\n autocomplete: \"off\"\n });\n}\nexport const RuiSelectOption = RuiListboxOption;\nfunction resolveSelectDisplayText(options, value, placeholder) {\n const selected = typeof value === \"string\" ? value.trim() : \"\";\n const fallback = typeof placeholder === \"string\" ? placeholder : \"\";\n if (!selected) {\n return fallback;\n }\n const match = options?.find(option => option.value === selected);\n if (!match) {\n return selected;\n }\n return typeof match.label === \"string\" ? match.label : selected;\n}\nexport function RuiSelect({\n options,\n children,\n ...props\n}) {\n if (options != null) {\n const displayText = resolveSelectDisplayText(options, props.value, props.placeholder);\n const isPlaceholder = !(typeof props.value === \"string\" && props.value.trim()) && Boolean(props.placeholder);\n return /* @__PURE__ */jsxs(\"rui-select\", {\n ...props,\n children: [/* @__PURE__ */jsxs(RuiSelectControl, {\n children: [/* @__PURE__ */jsx(RuiSelectTrigger, {\n children: /* @__PURE__ */jsx(RuiSelectValue, {\n ...(isPlaceholder ? {\n \"data-placeholder\": true\n } : {}),\n children: displayText\n })\n }), /* @__PURE__ */jsx(RuiSelectToggle, {})]\n }), /* @__PURE__ */jsx(RuiSelectListbox, {\n children: /* @__PURE__ */jsx(RuiListbox, {\n embedded: true,\n options\n })\n })]\n });\n }\n return /* @__PURE__ */jsx(\"rui-select\", {\n ...props,\n children\n });\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nexport function RuiIconChevronDown({\n class: className,\n size = \"sm\",\n ...props\n}) {\n return /* @__PURE__ */jsx(\"svg\", {\n ...props,\n class: cx(\"rui-icon\", size === \"md\" && \"rui-icon--md\", className),\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": \"true\",\n children: /* @__PURE__ */jsx(\"path\", {\n d: \"m6 9 6 6 6-6\"\n })\n });\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport \"./listbox.script\";\nexport function RuiListboxOption({\n value,\n label,\n children,\n class: className,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n class: cx(\"rui-listbox__option\", className),\n role: \"option\",\n \"data-value\": value,\n \"data-label\": label,\n \"aria-disabled\": disabled ? \"true\" : void 0,\n tabindex: -1,\n children\n });\n}\nexport function RuiListbox({\n options,\n children,\n ...props\n}) {\n if (options != null) {\n return /* @__PURE__ */jsx(\"rui-listbox\", {\n ...props,\n children: options.map(option => /* @__PURE__ */jsx(RuiListboxOption, {\n value: option.value,\n label: typeof option.label === \"string\" ? option.label : void 0,\n disabled: option.disabled,\n children: option.label\n }))\n });\n }\n return /* @__PURE__ */jsx(\"rui-listbox\", {\n ...props,\n children\n });\n}"],
5
+ "mappings": "AAMA,OAAS,OAAAA,GAAK,QAAAC,OAAY,4BAC1B,OAAS,kBAAAC,GAAgB,iBAAAC,GAAe,SAAAC,GAAO,WAAAC,EAAS,aAAAC,GAAW,QAAAC,EAAM,SAAAC,OAAa,oBCP/E,SAASC,EAAoBC,EAAO,CACzC,IAAMC,EAAWD,EAAM,uBACvB,OAAIC,GAAU,QAAQ,YAAY,IAAM,QAC/BA,EAEFD,EAAM,eAAe,cAAc,yCAAyC,GAAK,IAC1F,CACO,SAASE,GAAeF,EAAOG,EAASC,EAAS,CACtD,GAAI,CAACD,GAAWA,EAAQ,aAAa,wBAAwB,EAC3D,OAEF,IAAME,EAAeN,EAAoBC,CAAK,EAC9C,GAAIK,EAAc,CACXA,EAAa,KAChBA,EAAa,GAAKD,EAAQ,SAEvBC,EAAa,UAChBA,EAAa,QAAUD,EAAQ,WAEjCD,EAAQ,aAAa,kBAAmBE,EAAa,EAAE,EACvDF,EAAQ,gBAAgB,YAAY,EACpC,MACF,CACA,GAAIC,EAAQ,MAAO,CACjBD,EAAQ,aAAa,aAAcC,EAAQ,KAAK,EAChDD,EAAQ,gBAAgB,iBAAiB,EACzC,MACF,CACAA,EAAQ,gBAAgB,YAAY,EACpCA,EAAQ,gBAAgB,iBAAiB,CAC3C,CC9BA,IAAMG,GAAW,CACf,IAAK,SACL,OAAQ,MACR,KAAM,QACN,MAAO,MACT,EACMC,GAA2B,EACjC,SAASC,GAAeC,EAAW,CACjC,IAAMC,EAAOD,EAAU,QAAQ,GAAG,EAClC,GAAIC,IAAS,GAAI,MAAO,CACtB,KAAMD,EACN,MAAO,QACT,EACA,IAAME,EAAOF,EAAU,MAAM,EAAGC,CAAI,EAC9BE,EAAQH,EAAU,MAAMC,EAAO,CAAC,EACtC,MAAO,CACL,KAAAC,EACA,MAAOC,IAAU,SAAWA,IAAU,MAAQA,EAAQ,QACxD,CACF,CACA,SAASC,GAAYF,EAAM,CACzB,OAAOA,IAAS,OAASA,IAAS,SAAW,IAAM,GACrD,CACA,SAASG,GAAUC,EAAQC,EAAML,EAAMC,EAAOK,EAAK,CACjD,GAAM,CACJ,MAAAC,EACA,OAAAC,CACF,EAAIH,EACAI,EAAI,EACJC,EAAI,EACR,OAAQV,EAAM,CACZ,IAAK,MACHU,EAAIN,EAAO,IAAMI,EAASF,EAC1B,MACF,IAAK,SACHI,EAAIN,EAAO,OAASE,EACpB,MACF,IAAK,OACHG,EAAIL,EAAO,KAAOG,EAAQD,EAC1B,MACF,IAAK,QACHG,EAAIL,EAAO,MAAQE,EACnB,KACJ,CACA,OAAIJ,GAAYF,CAAI,IAAM,IACpBC,IAAU,QAASQ,EAAIL,EAAO,KAAcH,IAAU,MAAOQ,EAAIL,EAAO,MAAQG,EAAWE,EAAIL,EAAO,MAAQA,EAAO,MAAQG,GAAS,EAEtIN,IAAU,QAASS,EAAIN,EAAO,IAAaH,IAAU,MAAOS,EAAIN,EAAO,OAASI,EAAYE,EAAIN,EAAO,KAAOA,EAAO,OAASI,GAAU,EAEvI,CACL,EAAAC,EACA,EAAAC,CACF,CACF,CACA,SAASC,GAAkBC,EAAQP,EAAML,EAAMa,EAAU,CACvD,GAAM,CACJ,QAAAC,EACA,MAAOC,EACP,OAAQC,CACV,EAAIH,EACJ,OAAIb,IAAS,MAAc,KAAK,IAAI,EAAGc,EAAUF,EAAO,CAAC,EACrDZ,IAAS,SAAiB,KAAK,IAAI,EAAGY,EAAO,EAAIP,EAAK,QAAUW,EAAKF,EAAQ,EAC7Ed,IAAS,OAAe,KAAK,IAAI,EAAGc,EAAUF,EAAO,CAAC,EACnD,KAAK,IAAI,EAAGA,EAAO,EAAIP,EAAK,OAASU,EAAKD,EAAQ,CAC3D,CACA,SAASG,GAAgBb,EAAQC,EAAML,EAAMa,EAAU,CACrD,GAAM,CACJ,QAAAC,EACA,MAAOC,EACP,OAAQC,CACV,EAAIH,EACJ,OAAIb,IAAS,MAAcI,EAAO,IAAMU,EAAUT,EAAK,OACnDL,IAAS,SAAiBgB,EAAKF,EAAUT,EAAK,OAASD,EAAO,OAC9DJ,IAAS,OAAeI,EAAO,KAAOU,EAAUT,EAAK,MAClDU,EAAKD,EAAUT,EAAK,MAAQD,EAAO,KAC5C,CACA,SAASc,GAAYlB,EAAMC,EAAO,CAChC,OAAIA,IAAU,SACLD,EAEF,GAAGA,CAAI,IAAIC,CAAK,EACzB,CACA,SAASkB,GAAeP,EAAQP,EAAML,EAAMa,EAAU,CACpD,GAAM,CACJ,QAAAC,EACA,MAAOC,EACP,OAAQC,CACV,EAAIH,EACJ,GAAIX,GAAYF,CAAI,IAAM,IAAK,CAC7B,IAAMoB,EAAO,KAAK,IAAIN,EAASC,EAAKD,EAAUT,EAAK,KAAK,EACxD,MAAO,CACL,EAAG,KAAK,IAAI,KAAK,IAAIO,EAAO,EAAGE,CAAO,EAAGM,CAAI,EAC7C,EAAGR,EAAO,CACZ,CACF,CACA,IAAMS,EAAO,KAAK,IAAIP,EAASE,EAAKF,EAAUT,EAAK,MAAM,EACzD,MAAO,CACL,EAAGO,EAAO,EACV,EAAG,KAAK,IAAI,KAAK,IAAIA,EAAO,EAAGE,CAAO,EAAGO,CAAI,CAC/C,CACF,CAQO,SAASC,GAAwBC,EAAQC,EAAMC,EAAWC,EAAKC,EAAW,CAC/E,MAAO,OAAO,OAAW,IAAc,EAAI,OAAO,WAClD,OAAQ,OAAO,OAAW,IAAc,EAAI,OAAO,YACnD,QAASC,EACX,EAAG,CACD,GAAM,CACJ,KAAMC,EACN,MAAAC,CACF,EAAIC,GAAeN,CAAS,EACtBO,EAAkBC,GAAUV,EAAQC,EAAMK,EAAWC,EAAOJ,CAAG,EAC/DQ,EAAoBC,GAAkBH,EAAiBR,EAAMK,EAAWF,CAAQ,EAClFS,EAAOP,EACPQ,EAASL,EACb,GAAIE,EAAoB,EAAG,CACzB,IAAMI,EAAUC,GAASV,CAAS,EAC5BW,EAAgBP,GAAUV,EAAQC,EAAMc,EAASR,EAAOJ,CAAG,EAC3De,EAAgBC,GAAgBnB,EAAQC,EAAMK,EAAWF,CAAQ,EACnDe,GAAgBnB,EAAQC,EAAMc,EAASX,CAAQ,EACjDc,IAChBL,EAAOE,EACPD,EAASG,EAEb,CACA,MAAO,CACL,OAAQG,GAAeN,EAAQb,EAAMY,EAAMT,CAAQ,EACnD,UAAWiB,GAAYR,EAAMN,CAAK,CACpC,CACF,CACO,SAASe,GAAsBtB,EAAQuB,EAAUrB,EAAWC,EAAKqB,EAAU,CAAC,EAAG,CACpF,GAAM,CACJ,OAAAV,EACA,UAAWW,CACb,EAAI1B,GAAwBC,EAAO,sBAAsB,EAAG,CAC1D,MAAOuB,EAAS,YAChB,OAAQA,EAAS,YACnB,EAAGrB,EAAWC,CAAG,EACjB,cAAO,OAAOoB,EAAS,MAAO,CAC5B,SAAU,QACV,KAAM,GAAGT,EAAO,CAAC,KACjB,IAAK,GAAGA,EAAO,CAAC,KAChB,MAAO,OACP,OAAQ,OACR,WAAY,SACd,CAAC,EACGU,EAAQ,mBACVD,EAAS,MAAM,MAAQ,GAAGvB,EAAO,WAAW,MAE9CuB,EAAS,aAAa,iBAAkBE,CAAQ,EACzCA,CACT,CACO,SAASC,GAAe,CAC7B,OAAA1B,EACA,SAAAuB,EACA,aAAAI,EACA,IAAAxB,EACA,iBAAAyB,CACF,EAAG,CACD,IAAMC,EAAS,IAAM,CACfN,EAAS,QACbD,GAAsBtB,EAAQuB,EAAUI,EAAa,EAAGxB,EAAK,CAC3D,iBAAAyB,CACF,CAAC,CACH,EACAC,EAAO,EACP,OAAO,iBAAiB,SAAUA,CAAM,EACxC,OAAO,iBAAiB,SAAUA,EAAQ,EAAI,EAC9C,IAAMC,EAAW,IAAI,eAAeD,CAAM,EAC1C,OAAAC,EAAS,QAAQ9B,CAAM,EACvB8B,EAAS,QAAQP,CAAQ,EAClB,IAAM,CACX,OAAO,oBAAoB,SAAUM,CAAM,EAC3C,OAAO,oBAAoB,SAAUA,EAAQ,EAAI,EACjDC,EAAS,WAAW,CACtB,CACF,CCtLO,SAASC,GAAYC,EAAMC,EAAY,SAAS,KAAM,CAC3D,IAAMC,EAASF,EAAK,WACpB,GAAI,CAACE,EACH,MAAO,CACL,QAAS,IAAM,CAAC,CAClB,EAEF,IAAMC,EAAc,SAAS,cAAc,YAAY,EACvD,OAAAD,EAAO,aAAaC,EAAaH,CAAI,EACrCC,EAAU,YAAYD,CAAI,EACnB,CACL,QAAS,IAAM,CACb,IAAMI,EAAgBD,EAAY,WAC7BC,IAGLA,EAAc,aAAaJ,EAAMG,CAAW,EAC5CA,EAAY,OAAO,EACrB,CACF,CACF,CClBO,SAASE,GAAgBC,EAAQC,EAAUC,EAAM,CACtD,OAAKA,EAGE,GAAQF,GAAQ,SAASE,CAAI,GAAKD,GAAU,SAASC,CAAI,GAFvD,EAGX,CACO,SAASC,GAA0BH,EAAQC,EAAUG,EAAe,CACzE,OAAMA,aAAyB,KAGxB,CAACL,GAAgBC,EAAQC,EAAUG,CAAa,EAF9C,EAGX,CACO,SAASC,GAA4BL,EAAQC,EAAUK,EAAQ,CACpE,MAAO,CAACP,GAAgBC,EAAQC,EAAUK,CAAM,CAClD,CACO,IAAMC,EAAN,KAAwB,CAC7B,OACA,gBAAkB,KAClB,aAAe,KACf,gBAAkB,KAClB,YAAYC,EAAQ,CAClB,KAAK,OAASA,CAChB,CACA,aAAaC,EAAO,CAClB,KAAK,OAAS,CACZ,GAAG,KAAK,OACR,GAAGA,CACL,CACF,CACA,MAAO,CACL,IAAMR,EAAW,KAAK,gBAAgB,EACtC,GAAI,CAACA,EACH,OAGF,GAAI,CADS,KAAK,OAAO,QAAQ,EACtB,CACT,KAAK,SAAS,EACdA,EAAS,OAAS,GAClB,MACF,CACA,IAAMD,EAAS,KAAK,OAAO,UAAU,EACrC,GAAI,CAACA,EACH,OAEFC,EAAS,OAAS,GACA,KAAK,OAAO,SAAW,GAElC,KAAK,eACR,KAAK,aAAeS,GAAYT,EAAU,KAAK,OAAO,iBAAmB,SAAS,IAAI,GAE/E,KAAK,eACd,KAAK,aAAa,QAAQ,EAC1B,KAAK,aAAe,MAEtB,KAAK,iBAAiB,EACtB,KAAK,gBAAkBU,GAAe,CACpC,OAAAX,EACA,SAAAC,EACA,aAAc,KAAK,OAAO,aAC1B,IAAK,KAAK,OAAO,KAAO,EACxB,iBAAkB,KAAK,OAAO,gBAChC,CAAC,CACH,CACA,SAASC,EAAM,CACb,OAAOH,GAAgB,KAAK,OAAO,UAAU,EAAG,KAAK,gBAAgB,EAAGG,CAAI,CAC9E,CACA,oBAAqB,CACnB,OAAO,KAAK,gBAAgB,CAC9B,CACA,UAAW,CACT,KAAK,iBAAiB,EAClB,KAAK,eACP,KAAK,aAAa,QAAQ,EAC1B,KAAK,aAAe,KAExB,CACA,SAAU,CACR,KAAK,SAAS,EACd,KAAK,gBAAkB,IACzB,CACA,iBAAkB,CAChB,IAAMU,EAAqB,KAAK,OAAO,YAAY,EACnD,OAAIA,IACF,KAAK,gBAAkBA,GAElBA,GAAsB,KAAK,eACpC,CACA,kBAAmB,CACjB,KAAK,kBAAkB,EACvB,KAAK,gBAAkB,IACzB,CACF,EC7FO,SAASC,GAA4BC,EAAS,CACnD,OAAOA,EAAQ,OAAOC,GAAU,CAACA,EAAO,QAAUA,EAAO,aAAa,eAAe,IAAM,MAAM,CACnG,CACO,SAASC,GAAoBC,EAAOC,EAAWC,EAAQ,CAC5D,OAAIA,IAAW,EACN,GAELD,IAAc,EACTD,GAASE,EAAS,EAAI,EAAIF,EAAQ,EAEpCA,GAAS,EAAIE,EAAS,EAAIF,EAAQ,CAC3C,CACO,SAASG,GAAsBN,EAASO,EAAY,CACzDA,GAAY,gBAAgB,uBAAuB,EACnD,QAAWN,KAAUD,EACnBC,EAAO,gBAAgB,aAAa,CAExC,CACO,SAASO,GAAoBR,EAASS,EAAgBN,EAAOI,EAAYG,EAAU,CACxFJ,GAAsBN,EAASO,CAAU,EACzC,IAAMI,EAASF,EAAeN,CAAK,EACnC,MAAI,CAACQ,GAAU,CAACJ,EACP,MAEJI,EAAO,KACVA,EAAO,GAAK,GAAGD,CAAQ,IAAIP,CAAK,IAElCQ,EAAO,aAAa,cAAe,MAAM,EACzCJ,EAAW,aAAa,wBAAyBI,EAAO,EAAE,EAC1DA,EAAO,eAAe,CACpB,MAAO,SACT,CAAC,EACMA,EACT,CC/BO,IAAMC,EAAN,KAA6B,CAClC,OACA,kBACA,YAAc,GACd,YAAc,GACd,YAAYC,EAAQ,CAClB,KAAK,OAASA,EACd,KAAK,kBAAoB,IAAIC,EAAkB,CAC7C,UAAWD,EAAO,UAClB,YAAaA,EAAO,YACpB,QAASA,EAAO,QAChB,aAAc,IAAM,eACpB,IAAK,EACL,OAAQ,GACR,iBAAkB,EACpB,CAAC,CACH,CACA,IAAI,mBAAoB,CACtB,OAAO,KAAK,WACd,CACA,IAAI,gBAAiB,CACnB,OAAO,KAAK,WACd,CACA,iBAAkB,CAChB,KAAK,OAAO,WAAW,EAAE,QAAQ,CAACE,EAAQC,IAAU,CAC7CD,EAAO,KACVA,EAAO,GAAK,GAAG,KAAK,OAAO,kBAAkB,CAAC,IAAIC,CAAK,GAE3D,CAAC,CACH,CACA,mBAAoB,CAClB,OAAOC,GAA4B,KAAK,OAAO,WAAW,CAAC,CAC7D,CACA,mBAAoB,CAClB,KAAK,YAAc,GACnB,KAAK,YAAc,GACnBC,GAAsB,KAAK,OAAO,WAAW,EAAG,KAAK,OAAO,wBAAwB,CAAC,CACvF,CACA,gBAAgBF,EAAO,CACrB,IAAMG,EAAU,KAAK,kBAAkB,EACvC,GAAIH,EAAQ,GAAKA,GAASG,EAAQ,OAAQ,CACxC,KAAK,kBAAkB,EACvB,MACF,CACA,KAAK,YAAcH,EACnB,KAAK,YAAc,GACnBI,GAAoB,KAAK,OAAO,WAAW,EAAGD,EAASH,EAAO,KAAK,OAAO,wBAAwB,EAAG,KAAK,OAAO,kBAAkB,CAAC,CACtI,CACA,WAAWK,EAAWC,EAAQ,CAC5B,IAAMH,EAAU,KAAK,kBAAkB,EACvC,GAAKA,EAAQ,OAGb,IAAI,CAAC,KAAK,OAAO,QAAQ,EAAG,CAC1BG,EAAOD,IAAc,EAAI,QAAU,MAAM,EACzC,MACF,CACA,GAAI,KAAK,YAAa,CACpB,KAAK,gBAAgBE,GAAoB,KAAK,YAAaF,EAAWF,EAAQ,MAAM,CAAC,EACrF,MACF,CACA,KAAK,gBAAgBE,IAAc,EAAI,EAAIF,EAAQ,OAAS,CAAC,EAC/D,CAEA,cAAcK,EAAOC,EAAS,CAC5B,GAAI,EAAAD,EAAM,SAAWA,EAAM,UAAYA,EAAM,SAG7C,IAAIA,EAAM,MAAQ,aAAeA,EAAM,MAAQ,UAAW,CACxDA,EAAM,eAAe,EACrBA,EAAM,gBAAgB,EACtB,IAAMH,EAAYG,EAAM,MAAQ,YAAc,EAAI,GAClD,GAAIA,EAAM,OAAQ,CACZH,IAAc,GAAK,CAACI,EAAQ,OAC9BA,EAAQ,OAAO,EACNJ,IAAc,IAAMI,EAAQ,QACrCA,EAAQ,QAAQ,OAAO,EAEzB,MACF,CACA,KAAK,WAAWJ,EAAWK,GAAcD,EAAQ,OAAOC,CAAU,CAAC,EACnE,MACF,CACA,GAAIF,EAAM,MAAQ,SAAU,CAC1BA,EAAM,eAAe,EACjBC,EAAQ,OACVA,EAAQ,QAAQ,QAAQ,EAExBA,EAAQ,qBAAqB,EAE/B,MACF,CACA,GAAID,EAAM,MAAQ,SAAWA,EAAM,MAAQ,KAAOC,EAAQ,YAAa,CACrE,GAAI,CAACA,EAAQ,QAAUA,EAAQ,kBAAoB,OAAQ,CACzDD,EAAM,eAAe,EACrBC,EAAQ,OAAO,EACf,MACF,CACA,IAAMN,EAAU,KAAK,kBAAkB,EACnCM,EAAQ,QAAU,KAAK,aAAeN,EAAQ,KAAK,WAAW,GAChEK,EAAM,eAAe,EACrBC,EAAQ,eAAe,GACdD,EAAM,MAAQ,SAAWC,EAAQ,QAAUA,EAAQ,qBAAuB,UACnFD,EAAM,eAAe,EACrBC,EAAQ,QAAQ,OAAO,GAEzB,MACF,CACA,GAAID,EAAM,MAAQ,OAASC,EAAQ,OAAQ,CACzC,IAAMN,EAAU,KAAK,kBAAkB,EACvC,GAAI,KAAK,aAAeA,EAAQ,KAAK,WAAW,GAAKM,EAAQ,YAAa,CACxEA,EAAQ,eAAe,EACvB,MACF,CACAA,EAAQ,QAAQ,KAAK,CACvB,EACF,CACA,qBAAsB,CACpB,KAAK,kBAAkB,KAAK,CAC9B,CACA,mBAAmBE,EAAe,CAChC,OAAOC,GAA0B,KAAK,OAAO,UAAU,EAAG,KAAK,kBAAkB,mBAAmB,EAAGD,CAAa,CACtH,CACA,qBAAqBE,EAAQ,CAC3B,OAAOC,GAA4B,KAAK,OAAO,UAAU,EAAG,KAAK,kBAAkB,mBAAmB,EAAGD,CAAM,CACjH,CACA,SAAU,CACR,KAAK,kBAAkB,QAAQ,CACjC,CACF,ECnIO,SAASE,GAAgBC,EAAO,CACrC,OAAOA,EAAM,MAAM,GAAG,EAAE,IAAIC,GAAQA,EAAK,KAAK,CAAC,EAAE,OAAO,OAAO,CACjE,CACO,SAASC,GAAoBC,EAAQ,CAC1C,OAAOA,EAAO,KAAK,GAAG,CACxB,CPLA,IAAIC,GAAYC,GAAYC,GAAaC,GAAmBC,GAAaC,GAAmBC,GAAmBC,GAAyBC,GAAgBC,GAAsBC,GAAqBC,GAA2BC,GAA2BC,GAAiCC,GAAmBC,GAAyBC,GAAkBC,GACxV,SAASC,GAAWC,EAAG,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,GAAI,CAACD,EAAE,IAAI,EAAGA,EAAE,IAAI,CAAC,EAAGE,GAAI,EAAE,OAAQ,SAASC,EAAEC,EAAGf,EAAGgB,EAAG,CAAE,OAAO,SAAUC,EAAGhB,EAAG,CAAED,IAAMC,EAAIgB,EAAGA,EAAIlB,GAAI,QAASG,EAAI,EAAGA,EAAIa,EAAE,OAAQb,IAAKD,EAAIc,EAAEb,CAAC,EAAE,MAAMe,EAAGD,EAAI,CAACf,CAAC,EAAI,CAAC,CAAC,EAAG,OAAOe,EAAIf,EAAIgB,CAAG,CAAG,CAAE,SAASC,EAAEnB,EAAGgB,EAAGf,EAAGgB,EAAG,CAAE,GAAkB,OAAOjB,GAArB,aAA2BiB,GAAgBjB,IAAX,QAAe,MAAM,IAAI,UAAUgB,EAAI,UAAYf,GAAK,MAAQ,eAAiBgB,EAAI,GAAK,gBAAgB,EAAG,OAAOjB,CAAG,CAAE,SAASoB,GAASpB,EAAGgB,EAAGf,EAAGgB,EAAGC,EAAGhB,EAAGG,EAAGC,EAAGC,EAAGC,EAAGC,GAAG,CAAE,SAASC,EAAEV,EAAG,CAAE,GAAI,CAACS,GAAET,CAAC,EAAG,MAAM,IAAI,UAAU,qDAAqD,CAAG,CAAE,IAAIY,EAAI,CAAC,EAAE,OAAOI,EAAE,CAAC,CAAC,EAAGF,GAAIE,EAAE,CAAC,EAAGK,EAAI,CAAChB,EAAG,EAAUa,IAAN,EAASI,GAAUJ,IAAN,EAASK,GAAUL,IAAN,EAASM,EAAUN,IAAN,EAAS,SAASO,EAAET,EAAGf,EAAGgB,GAAG,CAAE,OAAO,SAAUC,EAAGhB,GAAG,CAAE,OAAOD,IAAMC,GAAIgB,EAAGA,EAAIlB,GAAIiB,IAAKA,GAAEC,CAAC,EAAGQ,EAAEV,CAAC,EAAE,KAAKE,EAAGhB,EAAC,CAAG,CAAG,CAAE,GAAI,CAACmB,EAAG,CAAE,IAAIK,EAAI,CAAC,EAAGC,EAAI,CAAC,EAAGC,EAAIN,GAAI,MAAQC,IAAK,EAAI,MAAQ,QAAS,GAAIhB,GAAKC,GAAK,EAAIkB,EAAI,CAAE,IAAKG,GAAiB,UAAY,CAAE,OAAOf,GAAE,IAAI,CAAG,EAAGG,EAAG,KAAK,EAAG,IAAK,SAAUjB,EAAG,CAAEgB,EAAE,CAAC,EAAE,KAAMhB,CAAC,CAAG,CAAE,EAAI0B,EAAEE,CAAC,EAAId,GAAGN,GAAKqB,GAAiBH,EAAEE,CAAC,EAAGX,EAAGO,EAAI,GAAKI,CAAC,GAAKpB,IAAMkB,EAAI,OAAO,yBAAyB1B,EAAGiB,CAAC,GAAI,CAACT,GAAK,CAACD,EAAG,CAAE,IAAKH,EAAIS,GAAE,CAACP,CAAC,EAAEW,CAAC,KAAab,EAAIc,KAAX,EAAe,MAAM,MAAM,+CAAiDQ,EAAEE,CAAC,EAAE,KAAO,wBAAwB,EAAGf,GAAE,CAACP,CAAC,EAAEW,CAAC,EAAIC,EAAI,EAAI,EAAIA,CAAG,CAAE,CAAE,QAASY,EAAI9B,EAAG+B,EAAInB,EAAE,OAAS,EAAGmB,GAAK,EAAGA,GAAK9B,EAAI,EAAI,EAAG,CAAE,IAAI+B,GAAIb,EAAEP,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,EAAEjB,CAAC,EAAG,KAAMD,EAAG,SAAUd,EAAG,eAAgB,SAAUH,EAAGgB,EAAG,CAAE,GAAIhB,EAAE,EAAG,MAAM,IAAI,UAAU,gEAAgE,EAAGmB,EAAEH,EAAG,iBAAkB,KAAM,EAAE,EAAGd,EAAE,KAAKc,CAAC,CAAG,EAAE,KAAK,KAAMkB,CAAC,CAAE,EAAG,GAAIb,EAAGjB,EAAI4B,GAAE,KAAKC,GAAGH,EAAGK,CAAC,EAAGD,EAAE,EAAI,EAAGf,EAAEf,EAAG,mBAAoB,QAAQ,IAAM0B,EAAI1B,WAAY+B,EAAE,OAAS7B,EAAG6B,EAAE,QAAU5B,EAAGH,EAAI+B,EAAE,OAAS,CAAE,IAAK5B,EAAIE,GAAE,KAAK,EAAI,SAAUT,EAAG,CAAE,OAAOiB,KAAKjB,CAAG,CAAE,EAAGuB,KAAMnB,EAAE,IAAMG,EAAIiB,EAAI,SAAUxB,EAAG,CAAE,OAAOU,EAAEV,CAAC,EAAG0B,EAAE,KAAO,EAAID,EAAE,MAAO,EAAGf,CAAC,EAAI,SAAUV,EAAG,CAAE,OAAOA,EAAEiB,CAAC,CAAG,GAAIO,GAAKF,KAAMlB,EAAE,IAAMG,EAAIkB,EAAE,MAAO,EAAGf,CAAC,EAAI,SAAUV,EAAGgB,EAAG,CAAEhB,EAAEiB,CAAC,EAAID,CAAG,GAAIc,EAAIE,GAAE,KAAKC,GAAG,EAAI,CAAE,IAAKP,EAAE,IAAK,IAAKA,EAAE,GAAI,EAAIA,EAAEE,CAAC,EAAGO,CAAC,EAAGD,EAAE,EAAI,EAAG,GAAK,GAAgB,OAAOJ,GAAnB,UAAwBA,GAAI1B,EAAIe,EAAEW,EAAE,IAAK,cAAc,KAAOJ,EAAE,IAAMtB,IAAKA,EAAIe,EAAEW,EAAE,IAAK,cAAc,KAAOJ,EAAE,IAAMtB,IAAKA,EAAIe,EAAEW,EAAE,KAAM,eAAe,IAAMH,EAAE,QAAQvB,CAAC,UAAsB0B,IAAX,OAAc,MAAM,IAAI,UAAU,0FAA0F,OAAUX,EAAEW,GAAItB,EAAI,QAAU,UAAY,cAAe,QAAQ,IAAMA,EAAImB,EAAE,QAAQG,CAAC,EAAIJ,EAAEE,CAAC,EAAIE,EAAI,CAAE,OAAOZ,EAAI,GAAKb,EAAE,KAAKU,EAAEY,EAAGrB,EAAG,CAAC,EAAGS,EAAEb,EAAGI,EAAG,CAAC,CAAC,EAAGE,GAAKa,IAAMd,EAAI,EAAIF,EAAE,OAAO,GAAI,EAAGoB,EAAE,MAAOnB,CAAC,EAAGmB,EAAE,MAAOnB,CAAC,CAAC,EAAID,EAAE,KAAKmB,EAAIE,EAAEE,CAAC,EAAIT,EAAE,KAAK,KAAKO,EAAEE,CAAC,CAAC,CAAC,EAAIjB,EAAEX,EAAGiB,EAAGS,CAAC,GAAII,CAAG,CAAE,SAAST,GAAErB,EAAG,CAAE,OAAOW,EAAEX,EAAGU,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,SAAUR,EAAG,CAAEA,GAAKO,EAAE,KAAKQ,EAAEf,CAAC,CAAC,CAAG,EAAGS,EAAI,SAAUO,EAAGC,EAAG,CAAE,QAASf,EAAI,EAAGA,EAAID,EAAE,OAAQC,IAAK,CAAE,IAAIC,EAAIF,EAAEC,CAAC,EAAG,EAAIC,EAAE,CAAC,EAAGK,EAAI,EAAI,EAAG,IAAK,EAAI,IAAMQ,GAAK,CAACR,GAAKS,EAAG,CAAE,IAAIR,EAAIN,EAAE,CAAC,EAAGO,EAAI,CAAC,CAACP,EAAE,CAAC,EAAGQ,EAAI,GAAK,EAAGS,GAASJ,EAAIhB,EAAIA,EAAE,UAAWG,EAAGQ,EAAGD,EAAI,IAAMD,EAAI2B,GAAe3B,CAAC,EAAGD,EAAGA,EAAI,EAAI,CAAC,EAAIQ,EAAIV,EAAIA,GAAK,CAAC,EAAID,EAAIA,GAAK,CAAC,EAAGE,EAAG,CAAC,CAACS,EAAGN,EAAGO,EAAGD,GAAKN,EAAI,SAAUM,EAAG,CAAE,OAAOqB,GAAYrB,CAAC,IAAMhB,CAAG,EAAI,CAAC,CAAG,CAAE,CAAE,EAAGS,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGD,EAAEH,CAAC,EAAGG,EAAEF,CAAC,EAAGF,EAAIG,EAAGO,IAAKO,GAAErB,CAAC,EAAG,CAAE,EAAGI,EAAG,IAAI,GAAI,CAAE,IAAIH,EAAI,CAAC,EAAG,OAAOa,IAAK,CAACO,GAAErB,EAAIoB,GAASpB,EAAG,CAAC,CAAC,EAAG,EAAGA,EAAE,KAAM,EAAGC,CAAC,CAAC,EAAGc,EAAEd,EAAG,CAAC,CAAC,CAAG,CAAE,CAAG,CACn/G,SAASmC,GAAepB,EAAG,CAAE,IAAId,EAAIoC,GAAatB,EAAG,QAAQ,EAAG,OAAmB,OAAOd,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASoC,GAAatB,EAAGC,EAAG,CAAE,GAAgB,OAAOD,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAI,EAAIA,EAAE,OAAO,WAAW,EAAG,GAAe,IAAX,OAAc,CAAE,IAAId,EAAI,EAAE,KAAKc,EAAGC,GAAK,SAAS,EAAG,GAAgB,OAAOf,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBe,IAAb,SAAiB,OAAS,QAAQD,CAAC,CAAG,CACvT,SAASa,GAAiB7B,EAAG,EAAGC,EAAG,CAAc,OAAO,GAAnB,WAAyB,GAAK,EAAI,EAAE,aAAe,IAAM,EAAI,IAAM,IAAK,GAAI,CAAE,OAAO,eAAeD,EAAG,OAAQ,CAAE,aAAc,GAAI,MAAOC,EAAIA,EAAI,IAAM,EAAI,CAAE,CAAC,CAAG,MAAY,CAAC,CAAE,OAAOD,CAAG,CAChO,SAASqC,GAAYrC,EAAG,CAAE,GAAI,OAAOA,CAAC,IAAMA,EAAG,MAAM,UAAU,qDAAgEA,IAAT,KAAa,OAAOA,EAAI,OAAO,EAAG,OAAOA,CAAG,CAMlK,IAAIuC,GACEC,GAAN,cAAwBC,EAAe,CACrC,MAAO,EACJ,CACC,EAAG,CAAC1D,GAAaC,GAAmBC,GAAaC,GAAmBC,GAAmBC,GAAyBC,GAAgBC,GAAsBC,GAAqBC,GAA2BC,GAA2BC,GAAiCC,GAAmBC,GAAyBC,GAAkBC,GAAwBjB,EAAU,EAClW,EAAG,CAAC0D,GAAYzD,EAAU,CAC5B,EAAIiB,GAAW,KAAM,CAAC2C,GAAc,YAAY,CAAC,EAAG,CAAC,CAACC,EAAK,CACzD,KAAM,OACN,QAAS,GACT,aAAc,EAChB,CAAC,EAAG,EAAG,OAAO,EAAG,CAACA,EAAK,CACrB,KAAM,OACN,aAAc,EAChB,CAAC,EAAG,EAAG,OAAO,EAAG,CAACA,EAAK,CACrB,KAAM,OACN,aAAc,EAChB,CAAC,EAAG,EAAG,aAAa,EAAG,CAACA,EAAK,CAC3B,KAAM,QACN,QAAS,GACT,aAAc,EAChB,CAAC,EAAG,EAAG,UAAU,EAAG,CAACA,EAAK,CACxB,KAAM,OACN,UAAW,iBACX,aAAc,QAChB,CAAC,EAAG,EAAG,eAAe,EAAG,CAACA,EAAK,CAC7B,KAAM,QACN,UAAW,wBACb,CAAC,EAAG,EAAG,qBAAqB,EAAG,CAACC,GAAM,CACpC,KAAM,aACN,QAAS,GACT,SAAU,EACZ,CAAC,EAAG,EAAG,aAAa,EAAG,CAACC,GAAM,CAC5B,IAAK,MACP,CAAC,EAAG,EAAG,YAAY,EAAG,CAACC,GAAU,CAAC,QAAS,QAAS,cAAe,WAAY,gBAAiB,qBAAqB,CAAC,EAAG,EAAG,gBAAgB,EAAG,CAACC,EAAQ,CACtJ,SAAU,8CACV,KAAM,OACR,CAAC,EAAG,EAAG,gBAAgB,EAAG,CAACA,EAAQ,CACjC,SAAU,wBACV,KAAM,UACN,QAAS,CACP,QAAS,EACX,CACF,CAAC,EAAG,EAAG,kBAAkB,EAAG,CAACA,EAAQ,CACnC,SAAU,kDACV,KAAM,UACN,QAAS,CACP,QAAS,EACX,CACF,CAAC,EAAG,EAAG,iBAAiB,EAAG,CAACA,EAAQ,CAClC,SAAU,kDACV,KAAM,OACR,CAAC,EAAG,EAAG,eAAe,EAAG,CAACA,EAAQ,CAChC,SAAU,oCACV,KAAM,YACR,CAAC,EAAG,EAAG,aAAa,EAAG,CAACA,EAAQ,CAC9B,SAAU,iCACV,KAAM,OACR,CAAC,EAAG,EAAG,YAAY,EAAG,CAACA,EAAQ,CAC7B,SAAU,wCACV,KAAM,aACR,CAAC,EAAG,EAAG,qBAAqB,EAAG,CAACA,EAAQ,CACtC,SAAU,wCACV,KAAM,WACR,CAAC,EAAG,EAAG,mBAAmB,EAAG,CAACA,EAAQ,CACpC,SAAU,wCACV,KAAM,OACR,CAAC,EAAG,EAAG,eAAe,EAAG,CAACA,EAAQ,CAChC,IAAK,OACL,KAAM,UACR,CAAC,EAAG,EAAG,YAAY,EAAG,CAACA,EAAQ,CAC7B,SAAU,GACV,KAAM,aACR,CAAC,EAAG,EAAG,uBAAuB,CAAC,EAAG,EAAG,OAAQN,EAAc,EAC7D,CACA,eAAeO,EAAM,CACnB,MAAM,GAAGA,CAAI,EACblD,GAAuB,IAAI,CAC7B,CACA,OAASjB,GAAW,IAAI,EAAGE,GAAY,IAAI,GAC3C,OAASC,GAAkB,IAAI,EAAGC,GAAY,IAAI,GAClD,aAAeC,GAAkB,IAAI,EAAGC,GAAkB,IAAI,GAC9D,UAAYC,GAAwB,IAAI,EAAGC,GAAe,IAAI,GAC9D,eAAiBC,GAAqB,IAAI,EAAGC,GAAoB,IAAI,GACrE,qBAAuBC,GAA0B,IAAI,EAAGC,GAA0B,IAAI,GACtF,aAAeC,GAAgC,IAAI,EAAGC,GAAkB,IAAI,GAC5E,MAAQC,GAAwB,IAAI,EAAG,IACvC,IAAM,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAG,CAAC,EAC3C,gBAAkB,IAAIqD,EAAuB,CAC3C,UAAW,IAAM,KAAK,WACtB,YAAa,IAAM,KAAK,gBAAgB,EACxC,QAAS,IAAM,KAAK,KACpB,WAAY,IAAM,KAAK,WAAW,EAClC,wBAAyB,IAAM,KAAK,wBAAwB,EAC5D,kBAAmB,IAAM,qBAAqB,KAAK,GAAG,EACxD,CAAC,EACD,WAAapD,GAAiB,IAAI,EAClC,IAAI,WAAY,CACd,MAAO,mBAAmB,KAAK,GAAG,EACpC,CACA,IAAI,WAAY,CACd,MAAO,sBAAsB,KAAK,GAAG,EACvC,CACA,YAAa,CACX,OAAO,KAAK,gBAAkB,UAChC,CACA,gBAAiB,CACf,OAAI,KAAK,qBAAuB,KACvB,KAAK,oBAEP,CAAC,KAAK,WAAW,CAC1B,CACA,mBAAoB,CAClB,OAAK,KAAK,MAGHqD,GAAgB,KAAK,KAAK,EAFxB,CAAC,CAGZ,CACA,kBAAkBC,EAAQ,CACxB,KAAK,MAAQC,GAAoBD,CAAM,CACzC,CACA,gBAAiB,CACf,OAAO,KAAK,cAAc,iDAAiD,CAC7E,CACA,gBAAiB,CACf,OAAO,KAAK,eAAe,GAAK,IAClC,CAEA,yBAA0B,CACxB,OAAI,KAAK,MAAQ,KAAK,eAAe,EAC5B,KAAK,eAAe,EAEtB,KAAK,WAAW,CACzB,CACA,mBAAoB,CAClB,IAAME,EAAS,KAAK,eAAe,EAC/B,CAACA,GAAUA,EAAO,QAAU,KAGhCA,EAAO,MAAQ,GACfA,EAAO,cAAc,IAAI,MAAM,QAAS,CACtC,QAAS,EACX,CAAC,CAAC,EACJ,CACA,iBAAkB,CAChB,IAAMA,EAAS,KAAK,eAAe,EAC7BC,EAAU,KAAK,WAAW,EAC1BC,EAAU,KAAK,WAAW,EAChC,GAAI,GAACF,GAAU,CAACE,GAAW,CAACD,GAG5B,IAAI,KAAK,KAAM,CACbD,EAAO,aAAa,OAAQ,UAAU,EACtCA,EAAO,aAAa,oBAAqB,MAAM,EAC/CA,EAAO,aAAa,gBAAiB,MAAM,EAC3CA,EAAO,aAAa,gBAAiB,KAAK,SAAS,EACnDC,EAAQ,gBAAgB,uBAAuB,EAC/C,MACF,CACAD,EAAO,gBAAgB,MAAM,EAC7BA,EAAO,gBAAgB,mBAAmB,EAC1CA,EAAO,gBAAgB,eAAe,EACtCA,EAAO,gBAAgB,eAAe,EACtCA,EAAO,gBAAgB,uBAAuB,EAChD,CACA,iBAAkB,CAChB,eAAe,IAAM,CACnB,KAAK,eAAe,GAAG,MAAM,CAC/B,CAAC,CACH,CAQA,aAAc,CACZ,IAAMG,EAAW,KAAK,cAAc,mCAAmC,EACvE,MAAI,CAACA,GAAY,OAAOA,EAAS,UAAa,WACrC,KAEFA,CACT,CACA,aAAc,CACZ,OAAO,KAAK,YAAY,GAAK,IAC/B,CACA,cAAe,CACb,IAAMA,EAAW,KAAK,YAAY,EAC5BC,EAAe,KAAK,gBAAgB,EAC1C,GAAI,CAACD,GAAY,CAACC,EAChB,OAEF,IAAMC,EAAW,KAAK,kBAAkB,EAClCC,EAAQD,EAAS,QAAQE,GAAS,CACtC,IAAMC,EAAS,KAAK,WAAW,EAAE,KAAKC,GAAQ,KAAK,eAAeA,CAAI,IAAMF,CAAK,EACjF,OAAOC,EAAS,CAAC,CACf,MAAAD,EACA,MAAO,KAAK,eAAeC,CAAM,CACnC,CAAC,EAAI,CAAC,CACR,CAAC,EACDL,EAAS,SAAW,GACpBA,EAAS,SAASG,CAAK,EACvBH,EAAS,MAAQ,KAAK,MACtB,KAAK,wBAAwBC,EAAcC,EAAS,MAAM,CAC5D,CACA,wBAAwBD,EAAcM,EAAe,CACnD,IAAIC,EAAcP,EAAa,cAAc,2BAA2B,EACxE,GAAI,CAAC,KAAK,YAAa,CACrBO,GAAa,OAAO,EACpB,MACF,CACKA,IACHA,EAAc,SAAS,cAAc,MAAM,EAC3CA,EAAY,aAAa,0BAA2B,MAAM,EAC1DP,EAAa,aAAaO,EAAaP,EAAa,UAAU,GAEhEO,EAAY,YAAc,KAAK,YAC/BA,EAAY,OAASD,EAAgB,EACrCN,EAAa,gBAAgB,mBAAoBM,IAAkB,CAAC,CACtE,CACA,oBAAoBH,EAAO,CACzB,IAAMF,EAAW,IAAI,IAAI,KAAK,kBAAkB,CAAC,EAC5CA,EAAS,IAAIE,CAAK,IAGvBF,EAAS,OAAOE,CAAK,EACrB,KAAK,kBAAkB,CAAC,GAAGF,CAAQ,CAAC,EACpC,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,YAAY,KAAK,CACpB,MAAO,KAAK,KACd,CAAC,EACH,CACA,YAAa,CACX,OAAO,KAAK,cAAc,uBAAuB,CACnD,CACA,WAAY,CACV,OAAO,KAAK,cAAc,sBAAsB,CAClD,CACA,iBAAkB,CAChB,OAAO,KAAK,cAAc,qBAAqB,CACjD,CACA,iBAAkB,CAChB,OAAO,KAAK,cAAc,uBAAuB,CACnD,CACA,YAAa,CACX,IAAMO,EAAO,KAAK,cAAc,aAAa,EAC7C,OAAIA,EACKA,EAAK,cAAc,kBAAkB,EAEvC,KAAK,gBAAgB,CAC9B,CACA,gBAAiB,CACf,OAAO,KAAK,cAAc,aAAa,CACzC,CACA,YAAa,CACX,IAAMV,EAAU,KAAK,WAAW,EAChC,OAAKA,EAGE,MAAM,KAAKA,EAAQ,iBAAiB,iBAAiB,CAAC,EAFpD,CAAC,CAGZ,CACA,eAAeM,EAAQ,CACrB,OAAOA,EAAO,aAAa,YAAY,GAAKA,EAAO,aAAa,KAAK,GAAK,EAC5E,CACA,eAAeA,EAAQ,CACrB,OAAOA,EAAO,aAAa,YAAY,GAAK,KAAK,eAAeA,CAAM,CACxE,CACA,iBAAkB,CAChB,KAAK,gBAAgB,gBAAgB,CACvC,CACA,mBAAoB,CAElB,OADqBK,EAAoB,IAAI,GACxB,aAAa,KAAK,GAAK,KAAK,OAAS,SAC5D,CACA,WAAY,CACV,IAAMZ,EAAU,KAAK,WAAW,EAChCa,GAAe,KAAMb,EAAS,CAC5B,UAAW,KAAK,UAChB,MAAO,KAAK,MACZ,QAAS,oBAAoB,KAAK,GAAG,EACvC,CAAC,CACH,CACA,aAAc,CACZ,IAAMA,EAAU,KAAK,WAAW,EAC1BC,EAAU,KAAK,WAAW,EAC1Ba,EAAQ,KAAK,gBAAgB,EAC/B,CAACd,GAAW,CAACC,IAGZD,EAAQ,KACXA,EAAQ,GAAK,KAAK,WAEfC,EAAQ,KACXA,EAAQ,GAAK,KAAK,WAEpBD,EAAQ,aAAa,OAAQ,UAAU,EACvCA,EAAQ,aAAa,gBAAiB,SAAS,EAC/CA,EAAQ,aAAa,oBAAqB,MAAM,EAChDA,EAAQ,aAAa,gBAAiB,OAAO,KAAK,IAAI,CAAC,EACvDA,EAAQ,aAAa,gBAAiB,KAAK,SAAS,EACpDC,EAAQ,aAAa,aAAc,KAAK,kBAAkB,CAAC,EACvD,KAAK,WAAW,EAClBA,EAAQ,aAAa,uBAAwB,MAAM,EAEnDA,EAAQ,gBAAgB,sBAAsB,EAE5Ca,IACFA,EAAM,gBAAgB,MAAM,EAC5BA,EAAM,gBAAgB,YAAY,EAClCA,EAAM,gBAAgB,sBAAsB,GAE1C,KAAK,WACPd,EAAQ,SAAW,IAErB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACvB,CACA,YAAa,CACX,IAAMe,EAAS,KAAK,UAAU,EACzBA,IAGLA,EAAO,aAAa,gBAAiB,OAAO,KAAK,IAAI,CAAC,EACtDA,EAAO,SAAW,KAAK,SACzB,CACA,iBAAkB,CAChB,IAAMJ,EAAO,KAAK,eAAe,EAC5BA,IAGLA,EAAK,SAAW,GACX,KAAK,WAAW,IACnBA,EAAK,MAAQ,KAAK,OAEtB,CACA,kBAAmB,CACjB,GAAI,KAAK,YAAY,EAAG,CACtB,KAAK,aAAa,EAClB,MACF,CACA,IAAMR,EAAe,KAAK,gBAAgB,EAC1C,GAAI,CAACA,GAAgBA,EAAa,kBAAoB,EACpD,OAEF,IAAMC,EAAW,KAAK,kBAAkB,EACxC,GAAIA,EAAS,SAAW,EAAG,CACzBD,EAAa,YAAc,GAC3BA,EAAa,aAAa,mBAAoB,MAAM,EAChD,KAAK,cACPA,EAAa,YAAc,KAAK,aAElC,MACF,CAEA,GADAA,EAAa,gBAAgB,kBAAkB,EAC3C,KAAK,WAAW,EAAG,CACrB,IAAMa,EAASZ,EAAS,IAAIE,GAAS,CACnC,IAAMW,EAAS,KAAK,WAAW,EAAE,KAAKV,GAAU,KAAK,eAAeA,CAAM,IAAMD,CAAK,EACrF,OAAOW,EAAS,KAAK,eAAeA,CAAM,EAAIX,CAChD,CAAC,EACDH,EAAa,YAAca,EAAO,KAAK,IAAI,EAC3C,MACF,CACA,IAAME,EAAQ,KAAK,WAAW,EAAE,KAAKX,GAAU,KAAK,eAAeA,CAAM,IAAMH,EAAS,CAAC,CAAC,EAC1FD,EAAa,YAAce,EAAQ,KAAK,eAAeA,CAAK,EAAId,EAAS,CAAC,CAC5E,CACA,qBAAsB,CACpB,IAAMA,EAAW,IAAI,IAAI,KAAK,kBAAkB,CAAC,EACjD,QAAWG,KAAU,KAAK,WAAW,EAAG,CACtC,IAAMD,EAAQ,KAAK,eAAeC,CAAM,EAClCY,EAAaf,EAAS,IAAIE,CAAK,EACrCC,EAAO,aAAa,gBAAiB,OAAOY,CAAU,CAAC,CACzD,CACF,CACA,QAAQC,EAAMC,EAAU,CAAC,EAAG,CAC1B,IAAMC,EAAWD,EAAQ,UAAY,OACrC,KAAK,KAAOD,EACZ,IAAMpB,EAAU,KAAK,WAAW,EAC1Bc,EAAQ,KAAK,gBAAgB,EACnC,GAAI,GAACd,GAAW,CAACc,GAKjB,IAFAd,EAAQ,aAAa,gBAAiB,OAAOoB,CAAI,CAAC,EAClDN,EAAM,OAAS,CAACM,EACZ,CAACA,EAAM,CACT,KAAK,gBAAgB,kBAAkB,EACvC,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,oBAAoB,EACzC,MACF,CAOA,GANA,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,oBAAoB,EACrC,KAAK,eAAe,GACtB,KAAK,gBAAgB,EAEnBE,IAAa,QAAS,CACxB,IAAMC,EAAU,KAAK,gBAAgB,kBAAkB,EACvD,KAAK,gBAAgB,gBAAgBA,EAAQ,OAAS,EAAI,EAAE,EAC5D,MACF,CACA,GAAID,IAAa,OAAQ,CACvB,IAAMC,EAAU,KAAK,gBAAgB,kBAAkB,EACvD,KAAK,gBAAgB,gBAAgBA,EAAQ,OAASA,EAAQ,OAAS,EAAI,EAAE,EAC7E,MACF,CACA,KAAK,gBAAgB,kBAAkB,EACzC,CACA,aAAahB,EAAQ,CACnB,GAAIA,EAAO,aAAa,eAAe,IAAM,OAC3C,OAEF,IAAMiB,EAAc,KAAK,eAAejB,CAAM,EAC9C,GAAI,KAAK,WAAW,EAAG,CACrB,IAAMH,EAAW,IAAI,IAAI,KAAK,kBAAkB,CAAC,EAC7CA,EAAS,IAAIoB,CAAW,EAC1BpB,EAAS,OAAOoB,CAAW,EAE3BpB,EAAS,IAAIoB,CAAW,EAE1B,KAAK,kBAAkB,CAAC,GAAGpB,CAAQ,CAAC,CACtC,MACE,KAAK,MAAQoB,EAEf,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,YAAY,KAAK,CACpB,MAAO,KAAK,KACd,CAAC,EACG,KAAK,eAAe,IACtB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EAAK,EAClB,KAAK,WAAW,GAAG,MAAM,EAE7B,CACA,qBAAqBC,EAAQ,CAC3B,KAAK,gBAAgB,cAAcA,EAAQ,CACzC,OAAQ,KAAK,KACb,YAAa,CAAC,KAAK,eAAe,EAClC,YAAa,KAAK,eAAe,EACjC,gBAAiB,OACjB,mBAAoB,SACpB,OAAQ,CAACC,EAAa,SAAW,KAAK,QAAQ,GAAM,CAClD,SAAUA,CACZ,CAAC,EACD,QAASC,GAAU,CACjB,KAAK,QAAQ,EAAK,GACdA,IAAW,SAAWA,IAAW,WACnC,KAAK,WAAW,GAAG,MAAM,CAE7B,EACA,eAAgB,IAAM,CACpB,IAAMpB,EAAS,KAAK,gBAAgB,kBAAkB,EAAE,KAAK,gBAAgB,iBAAiB,EAC1FA,GACF,KAAK,aAAaA,CAAM,CAE5B,CACF,CAAC,CACH,CACA,qBAAqBkB,EAAQ,CAC3B,KAAK,qBAAqBA,CAAM,CAClC,CACA,YAAa,CACX,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EAAK,CACpB,CACA,mBAAoB,CAClB,MAAM,kBAAkB,EACxB,eAAe,IAAM,KAAK,WAAW,CAAC,CACxC,CACA,sBAAuB,CACrB,KAAK,gBAAgB,QAAQ,EAC7B,MAAM,qBAAqB,CAC7B,CACA,gBAAiB,CACf,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,CAC3B,CACA,eAAeA,EAAQ,CACrBA,EAAO,eAAe,EACtB,IAAMzB,EAAU,KAAK,WAAW,EAChC,GAAI,GAACA,GAAWA,EAAQ,UAQxB,IALI,KAAK,KACP,KAAK,QAAQ,EAAK,EAElB,KAAK,QAAQ,EAAI,EAEf,KAAK,MAAQ,KAAK,eAAe,EAAG,CACtC,KAAK,gBAAgB,EACrB,MACF,CACAA,EAAQ,MAAM,EAChB,CACA,iBAAiByB,EAAQ,CACvB,KAAK,qBAAqBA,CAAM,CAClC,CACA,gBAAgBA,EAAQ,CACtB,KAAK,qBAAqBA,CAAM,CAClC,CACA,eAAgB,CACT,KAAK,MAGV,KAAK,gBAAgB,kBAAkB,CACzC,CACA,YAAYA,EAAQ,CAClB,IAAMG,EAASH,EAAO,OACjBG,GAAQ,OAGb,KAAK,oBAAoBA,EAAO,KAAK,CACvC,CACA,WAAWH,EAAQ,CACFA,EAAO,OACX,QAAQ,mBAAmB,GAGtCA,EAAO,gBAAgB,CACzB,CACA,oBAAoBA,EAAQ,CAC1B,GAAI,CAAC,KAAK,KACR,OAEF,IAAMlB,EAASkB,EAAO,OAAO,QAAQ,iBAAiB,EACtD,GAAI,CAAClB,GAAUA,EAAO,aAAa,eAAe,IAAM,QAAUA,EAAO,OACvE,OAGF,IAAMsB,EADU,KAAK,gBAAgB,kBAAkB,EACjC,QAAQtB,CAAM,EAChCsB,GAAS,GACX,KAAK,gBAAgB,gBAAgBA,CAAK,CAE9C,CACA,kBAAkBJ,EAAQ,CACxBA,EAAO,eAAe,CACxB,CACA,cAAcA,EAAQ,CACpB,IAAMlB,EAASkB,EAAO,OAAO,QAAQ,iBAAiB,EAClDlB,GACF,KAAK,aAAaA,CAAM,CAE5B,CACA,WAAWkB,EAAQ,CACZ,KAAK,gBAAgB,mBAAmBA,EAAO,aAAa,GAGjE,KAAK,QAAQ,EAAK,CACpB,CACA,sBAAsBA,EAAQ,CACvB,KAAK,MAGL,KAAK,gBAAgB,qBAAqBA,EAAO,MAAM,GAG5D,KAAK,QAAQ,EAAK,CACpB,CACA,QAAS,CACP,OAAsBK,GAAK,MAAO,CAChC,MAAO,aACP,WAAY,OACZ,SAAU,CAAgBC,GAAI,OAAQ,CACpC,KAAM,SACR,CAAC,EAAkBA,GAAI,OAAQ,CAC7B,KAAM,SACR,CAAC,CAAC,CACJ,CAAC,CACH,CACA,MAAO,CACLvG,GAAW,CACb,CACF,EQllBA,OAAS,OAAAwG,EAAK,QAAAC,OAAY,4BCAnB,SAASC,KAAMC,EAAO,CAC3B,OAAOA,EAAM,OAAO,OAAO,EAAE,KAAK,GAAG,CACvC,CCFA,OAAS,OAAAC,OAAW,4BAEb,SAASC,GAAmB,CACjC,MAAOC,EACP,KAAAC,EAAO,KACP,GAAGC,CACL,EAAG,CACD,OAAsBC,GAAI,MAAO,CAC/B,GAAGD,EACH,MAAOE,EAAG,WAAYH,IAAS,MAAQ,eAAgBD,CAAS,EAChE,QAAS,YACT,KAAM,OACN,OAAQ,eACR,eAAgB,IAChB,iBAAkB,QAClB,kBAAmB,QACnB,cAAe,OACf,SAAyBG,GAAI,OAAQ,CACnC,EAAG,cACL,CAAC,CACH,CAAC,CACH,CCrBA,OAAS,OAAAE,MAAW,4BAGb,SAASC,EAAiB,CAC/B,MAAAC,EACA,MAAAC,EACA,SAAAC,EACA,MAAOC,EACP,SAAAC,EACA,GAAGC,CACL,EAAG,CACD,OAAsBC,EAAI,MAAO,CAC/B,GAAGD,EACH,MAAOE,EAAG,sBAAuBJ,CAAS,EAC1C,KAAM,SACN,aAAcH,EACd,aAAcC,EACd,gBAAiBG,EAAW,OAAS,OACrC,SAAU,GACV,SAAAF,CACF,CAAC,CACH,CACO,SAASM,EAAW,CACzB,QAAAC,EACA,SAAAP,EACA,GAAGG,CACL,EAAG,CACD,OAAII,GAAW,KACSH,EAAI,cAAe,CACvC,GAAGD,EACH,SAAUI,EAAQ,IAAIC,GAAyBJ,EAAIP,EAAkB,CACnE,MAAOW,EAAO,MACd,MAAO,OAAOA,EAAO,OAAU,SAAWA,EAAO,MAAQ,OACzD,SAAUA,EAAO,SACjB,SAAUA,EAAO,KACnB,CAAC,CAAC,CACJ,CAAC,EAEmBJ,EAAI,cAAe,CACvC,GAAGD,EACH,SAAAH,CACF,CAAC,CACH,CHrCO,SAASS,GAAiB,CAC/B,SAAAC,EACA,KAAAC,EAAO,UACP,MAAOC,EACP,GAAGC,CACL,EAAG,CACD,OAAsBC,EAAI,MAAO,CAC/B,GAAGD,EACH,KAAAF,EACA,MAAOI,EAAG,sBAAuBH,CAAS,EAC1C,SAAAF,CACF,CAAC,CACH,CACO,SAASM,GAAiB,CAC/B,SAAAN,EACA,MAAOE,EACP,SAAAK,EACA,GAAGJ,CACL,EAAG,CACD,OAAsBC,EAAI,SAAU,CAClC,GAAGD,EACH,KAAM,SACN,sBAAuB,GACvB,mBAAoB,GACpB,wBAAyB,OACzB,MAAOE,EAAG,sBAAuBH,CAAS,EAC1C,SAAAK,EACA,SAAAP,CACF,CAAC,CACH,CACO,SAASQ,GAAgB,CAC9B,SAAAR,EACA,MAAOE,EACP,aAAcO,EAAY,eAC1B,SAAAF,EACA,GAAGJ,CACL,EAAG,CACD,OAAsBC,EAAI,SAAU,CAClC,GAAGD,EACH,KAAM,SACN,qBAAsB,GACtB,MAAOE,EAAG,qBAAsBH,CAAS,EACzC,aAAcO,EACd,SAAAF,EACA,SAAU,GACV,SAAUP,GAA2BI,EAAIM,GAAoB,CAAC,CAAC,CACjE,CAAC,CACH,CACO,SAASC,GAAe,CAC7B,SAAAX,EACA,KAAAC,EACA,MAAOC,EACP,GAAGC,CACL,EAAG,CACD,OAAsBC,EAAI,OAAQ,CAChC,GAAGD,EACH,KAAAF,EACA,oBAAqB,GACrB,MAAOI,EAAG,oBAAqBH,CAAS,EACxC,SAAAF,CACF,CAAC,CACH,CACO,SAASY,GAAiB,CAC/B,SAAAZ,EACA,KAAAC,EAAO,UACP,MAAOC,EACP,GAAGC,CACL,EAAG,CACD,OAAsBC,EAAI,MAAO,CAC/B,GAAGD,EACH,KAAAF,EACA,sBAAuB,GACvB,MAAOI,EAAG,oEAAqEH,CAAS,EACxF,OAAQ,GACR,SAAAF,CACF,CAAC,CACH,CACO,SAASa,GAAgB,CAC9B,YAAAC,EACA,KAAAb,EAAO,QACP,MAAOC,EACP,SAAAK,EACA,GAAGJ,CACL,EAAG,CACD,OAAsBC,EAAI,QAAS,CACjC,GAAGD,EACH,KAAM,SACN,KAAAF,EACA,0BAA2B,GAC3B,MAAOI,EAAG,qBAAsBH,CAAS,EACzC,YAAAY,EACA,SAAAP,EACA,aAAc,KAChB,CAAC,CACH,CACO,IAAMQ,GAAkBC,EAC/B,SAASC,GAAyBC,EAASC,EAAOL,EAAa,CAC7D,IAAMM,EAAW,OAAOD,GAAU,SAAWA,EAAM,KAAK,EAAI,GACtDE,EAAW,OAAOP,GAAgB,SAAWA,EAAc,GACjE,GAAI,CAACM,EACH,OAAOC,EAET,IAAMC,EAAQJ,GAAS,KAAKK,GAAUA,EAAO,QAAUH,CAAQ,EAC/D,OAAKE,GAGE,OAAOA,EAAM,OAAU,SAAWA,EAAM,MAFtCF,CAGX,CACO,SAASI,GAAU,CACxB,QAAAN,EACA,SAAAlB,EACA,GAAGG,CACL,EAAG,CACD,GAAIe,GAAW,KAAM,CACnB,IAAMO,EAAcR,GAAyBC,EAASf,EAAM,MAAOA,EAAM,WAAW,EAC9EuB,EAAgB,EAAE,OAAOvB,EAAM,OAAU,UAAYA,EAAM,MAAM,KAAK,IAAM,EAAQA,EAAM,YAChG,OAAsBwB,GAAK,aAAc,CACvC,GAAGxB,EACH,SAAU,CAAgBwB,GAAK5B,GAAkB,CAC/C,SAAU,CAAgBK,EAAIE,GAAkB,CAC9C,SAAyBF,EAAIO,GAAgB,CAC3C,GAAIe,EAAgB,CAClB,mBAAoB,EACtB,EAAI,CAAC,EACL,SAAUD,CACZ,CAAC,CACH,CAAC,EAAkBrB,EAAII,GAAiB,CAAC,CAAC,CAAC,CAC7C,CAAC,EAAkBJ,EAAIQ,GAAkB,CACvC,SAAyBR,EAAIwB,EAAY,CACvC,SAAU,GACV,QAAAV,CACF,CAAC,CACH,CAAC,CAAC,CACJ,CAAC,CACH,CACA,OAAsBd,EAAI,aAAc,CACtC,GAAGD,EACH,SAAAH,CACF,CAAC,CACH",
6
+ "names": ["jsx", "jsxs", "RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "query", "findAssociatedLabel", "owner", "previous", "syncFieldLabel", "control", "options", "labelElement", "OPPOSITE", "DEFAULT_VIEWPORT_PADDING", "parsePlacement", "placement", "dash", "side", "align", "primaryAxis", "coordsFor", "anchor", "size", "gap", "width", "height", "x", "y", "overflowOnPrimary", "coords", "viewport", "padding", "vw", "vh", "freeSpaceOnSide", "toPlacement", "clampCrossAxis", "maxX", "maxY", "computeFloatingPosition", "anchor", "size", "placement", "gap", "viewport", "DEFAULT_VIEWPORT_PADDING", "preferred", "align", "parsePlacement", "preferredCoords", "coordsFor", "preferredOverflow", "overflowOnPrimary", "side", "coords", "flipped", "OPPOSITE", "flippedCoords", "preferredFree", "freeSpaceOnSide", "clampCrossAxis", "toPlacement", "applyFloatingPosition", "floating", "options", "resolved", "attachFloating", "getPlacement", "matchAnchorWidth", "update", "observer", "mountPortal", "node", "container", "parent", "placeholder", "restoreParent", "popoverContains", "anchor", "floating", "node", "shouldDismissPopoverFocus", "relatedTarget", "shouldDismissPopoverPointer", "target", "PopoverController", "config", "patch", "mountPortal", "attachFloating", "configuredFloating", "getVisibleCollectionOptions", "options", "option", "wrapCollectionIndex", "index", "direction", "length", "clearCollectionActive", "activeHost", "setCollectionActive", "visibleOptions", "idPrefix", "active", "ListboxPopoverBehavior", "config", "PopoverController", "option", "index", "getVisibleCollectionOptions", "clearCollectionActive", "visible", "setCollectionActive", "direction", "onOpen", "wrapCollectionIndex", "event", "options", "activation", "relatedTarget", "shouldDismissPopoverFocus", "target", "shouldDismissPopoverPointer", "parseMultiValue", "value", "item", "serializeMultiValue", "values", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_label", "_init_extra_label", "_init_placeholder", "_init_extra_placeholder", "_init_disabled", "_init_extra_disabled", "_init_selectionMode", "_init_extra_selectionMode", "_init_shouldCloseOnSelect", "_init_extra_shouldCloseOnSelect", "_init_changeEvent", "_init_extra_changeEvent", "_init_rootTarget", "_init_extra_rootTarget", "_applyDecs", "e", "n", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "r", "o", "b", "applyDec", "w", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiSelect", "RuiSelect", "RadiantElement", "customElement", "prop", "event", "query", "onUpdated", "onEvent", "args", "ListboxPopoverBehavior", "parseMultiValue", "values", "serializeMultiValue", "search", "trigger", "listbox", "tagGroup", "valueElement", "selected", "items", "value", "option", "item", "selectedCount", "placeholder", "host", "findAssociatedLabel", "syncFieldLabel", "popup", "toggle", "labels", "match2", "match", "isSelected", "next", "options", "activate", "visible", "optionValue", "event2", "activation", "reason", "detail", "index", "jsxs", "jsx", "jsx", "jsxs", "cx", "parts", "jsx", "RuiIconChevronDown", "className", "size", "props", "jsx", "cx", "jsx", "RuiListboxOption", "value", "label", "children", "className", "disabled", "props", "jsx", "cx", "RuiListbox", "options", "option", "RuiSelectControl", "children", "slot", "className", "props", "jsx", "cx", "RuiSelectTrigger", "disabled", "RuiSelectToggle", "ariaLabel", "RuiIconChevronDown", "RuiSelectValue", "RuiSelectListbox", "RuiSelectSearch", "placeholder", "RuiSelectOption", "RuiListboxOption", "resolveSelectDisplayText", "options", "value", "selected", "fallback", "match", "option", "RuiSelect", "displayText", "isPlaceholder", "jsxs", "RuiListbox"]
7
7
  }
@@ -1,6 +1,43 @@
1
1
  /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
2
  @layer properties;
3
3
  @layer components {
4
+ .rui-icon {
5
+ width: var(--size-icon-sm);
6
+ height: var(--size-icon-sm);
7
+ flex-shrink: 0;
8
+ }
9
+ .rui-icon--md {
10
+ width: var(--size-icon-md);
11
+ height: var(--size-icon-md);
12
+ }
13
+ .rui-control-toggle {
14
+ display: inline-flex;
15
+ height: var(--spacing-8, var(--space-8));
16
+ width: var(--spacing-8, var(--space-8));
17
+ flex-shrink: 0;
18
+ align-items: center;
19
+ justify-content: center;
20
+ border-radius: var(--radius-control, var(--radius-control));
21
+ border-style: var(--tw-border-style);
22
+ border-width: 0px;
23
+ background-color: transparent;
24
+ color: var(--color-on-surface, var(--on-surface));
25
+ cursor: pointer;
26
+ }
27
+ .rui-control-toggle:hover:not(:disabled) {
28
+ background-color: var(--color-surface-container-low, var(--surface-container-low));
29
+ }
30
+ .rui-control-toggle:focus-visible {
31
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
32
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
33
+ --tw-ring-color: var(--color-focus-ring, var(--focus-ring));
34
+ --tw-outline-style: none;
35
+ outline-style: none;
36
+ }
37
+ .rui-control-toggle:disabled {
38
+ cursor: not-allowed;
39
+ opacity: var(--opacity-muted, var(--opacity-muted));
40
+ }
4
41
  .rui-floating {
5
42
  position: fixed;
6
43
  visibility: hidden;
@@ -33,17 +70,19 @@
33
70
  rui-select {
34
71
  position: relative;
35
72
  display: inline-flex;
73
+ width: 100%;
36
74
  flex-direction: column;
37
75
  }
38
76
  @layer components {
39
77
  .rui-select {
40
78
  position: relative;
41
- width: calc(var(--spacing, 0.25rem) * 64);
79
+ width: 100%;
42
80
  font-size: var(--text-sm, var(--text-sm));
43
81
  line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
44
82
  }
45
83
  .rui-select__control {
46
84
  display: flex;
85
+ min-height: calc(var(--spacing, 0.25rem) * 10);
47
86
  width: 100%;
48
87
  min-width: 0px;
49
88
  align-items: center;
@@ -62,20 +101,22 @@ rui-select {
62
101
  }
63
102
  .rui-select__trigger {
64
103
  display: inline-flex;
104
+ min-height: var(--spacing-8, var(--space-8));
65
105
  min-width: 0px;
66
106
  flex: 1;
67
107
  cursor: pointer;
68
108
  align-items: center;
69
- gap: var(--spacing-2, var(--space-2));
109
+ gap: var(--spacing-inline, var(--space-inline));
70
110
  border-style: var(--tw-border-style);
71
111
  border-width: 0px;
72
112
  background-color: transparent;
73
- padding-inline: var(--spacing-3, var(--space-3));
74
- padding-block: var(--spacing-2, var(--space-2));
113
+ padding-inline: var(--spacing-control-x, var(--space-control-x));
114
+ padding-block: var(--spacing-control-y, var(--space-control-y));
75
115
  text-align: start;
76
116
  color: var(--color-on-background, var(--on-background));
77
117
  --tw-outline-style: none;
78
118
  outline-style: none;
119
+ font-size: var(--text-control, 0.875rem);
79
120
  }
80
121
  .rui-select__trigger:disabled {
81
122
  cursor: not-allowed;
@@ -87,6 +128,7 @@ rui-select {
87
128
  overflow: hidden;
88
129
  text-overflow: ellipsis;
89
130
  white-space: nowrap;
131
+ min-height: 1.25em;
90
132
  }
91
133
  .rui-select__value[data-placeholder] {
92
134
  color: var(--color-on-surface, var(--on-surface));
@@ -111,8 +153,8 @@ rui-select {
111
153
  border-width: 1px;
112
154
  border-color: var(--color-border, var(--border));
113
155
  background-color: var(--color-background, var(--background));
114
- padding-inline: var(--spacing-3, var(--space-3));
115
- padding-block: var(--spacing-2, var(--space-2));
156
+ padding-inline: var(--spacing-control-x, var(--space-control-x));
157
+ padding-block: var(--spacing-control-y, var(--space-control-y));
116
158
  color: var(--color-on-background, var(--on-background));
117
159
  --tw-outline-style: none;
118
160
  outline-style: none;