@ecopages/radiant-ui 0.2.4 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/README.md +2 -0
  2. package/dist/components/ui/alert/alert.d.ts +1 -3
  3. package/dist/components/ui/alert/alert.script.d.ts +7 -0
  4. package/dist/components/ui/alert/index.js +1 -1
  5. package/dist/components/ui/alert/index.js.map +3 -3
  6. package/dist/components/ui/autocomplete/autocomplete.d.ts +1 -2
  7. package/dist/components/ui/autocomplete/autocomplete.script.d.ts +7 -0
  8. package/dist/components/ui/autocomplete/index.js +1 -1
  9. package/dist/components/ui/autocomplete/index.js.map +3 -3
  10. package/dist/components/ui/breadcrumb/breadcrumb.d.ts +1 -2
  11. package/dist/components/ui/breadcrumb/breadcrumb.script.d.ts +7 -0
  12. package/dist/components/ui/breadcrumb/index.js +1 -1
  13. package/dist/components/ui/breadcrumb/index.js.map +3 -3
  14. package/dist/components/ui/calendar/calendar.script.d.ts +8 -0
  15. package/dist/components/ui/calendar/index.d.ts +1 -2
  16. package/dist/components/ui/calendar/index.js +1 -1
  17. package/dist/components/ui/calendar/index.js.map +4 -4
  18. package/dist/components/ui/carousel/carousel.d.ts +1 -2
  19. package/dist/components/ui/carousel/carousel.script.d.ts +7 -0
  20. package/dist/components/ui/carousel/index.js +1 -1
  21. package/dist/components/ui/carousel/index.js.map +3 -3
  22. package/dist/components/ui/checkbox/checkbox.d.ts +1 -2
  23. package/dist/components/ui/checkbox/checkbox.script.d.ts +7 -0
  24. package/dist/components/ui/checkbox/index.js +1 -1
  25. package/dist/components/ui/checkbox/index.js.map +3 -3
  26. package/dist/components/ui/checkbox-group/checkbox-group.d.ts +1 -2
  27. package/dist/components/ui/checkbox-group/checkbox-group.script.d.ts +7 -0
  28. package/dist/components/ui/checkbox-group/index.js +1 -1
  29. package/dist/components/ui/checkbox-group/index.js.map +3 -3
  30. package/dist/components/ui/combobox/combobox.d.ts +1 -2
  31. package/dist/components/ui/combobox/combobox.script.d.ts +7 -0
  32. package/dist/components/ui/combobox/index.js +1 -1
  33. package/dist/components/ui/combobox/index.js.map +3 -3
  34. package/dist/components/ui/cycle-toggle/cycle-toggle.d.ts +1 -2
  35. package/dist/components/ui/cycle-toggle/cycle-toggle.script.d.ts +7 -0
  36. package/dist/components/ui/cycle-toggle/index.js +1 -1
  37. package/dist/components/ui/cycle-toggle/index.js.map +3 -3
  38. package/dist/components/ui/date-field/date-field.d.ts +4 -5
  39. package/dist/components/ui/date-field/date-field.script.d.ts +7 -0
  40. package/dist/components/ui/date-field/index.js +1 -1
  41. package/dist/components/ui/date-field/index.js.map +4 -4
  42. package/dist/components/ui/date-input/date-input.d.ts +4 -4
  43. package/dist/components/ui/date-input/date-input.script.d.ts +8 -0
  44. package/dist/components/ui/date-input/index.js +1 -1
  45. package/dist/components/ui/date-input/index.js.map +3 -3
  46. package/dist/components/ui/date-range-picker/date-range-picker.d.ts +5 -6
  47. package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +7 -0
  48. package/dist/components/ui/date-range-picker/index.js +1 -1
  49. package/dist/components/ui/date-range-picker/index.js.map +4 -4
  50. package/dist/components/ui/dialog/dialog-registry.d.ts +0 -1
  51. package/dist/components/ui/dialog/dialog.d.ts +1 -2
  52. package/dist/components/ui/dialog/dialog.script.d.ts +7 -0
  53. package/dist/components/ui/dialog/index.js +1 -1
  54. package/dist/components/ui/dialog/index.js.map +3 -3
  55. package/dist/components/ui/disclosure/disclosure-group.script.d.ts +7 -0
  56. package/dist/components/ui/disclosure/disclosure.d.ts +2 -4
  57. package/dist/components/ui/disclosure/disclosure.script.d.ts +7 -0
  58. package/dist/components/ui/disclosure/index.js +1 -1
  59. package/dist/components/ui/disclosure/index.js.map +3 -3
  60. package/dist/components/ui/field/field.d.ts +1 -2
  61. package/dist/components/ui/field/field.script.d.ts +7 -0
  62. package/dist/components/ui/field/index.js +1 -1
  63. package/dist/components/ui/field/index.js.map +3 -3
  64. package/dist/components/ui/form/form.d.ts +1 -2
  65. package/dist/components/ui/form/form.script.d.ts +7 -0
  66. package/dist/components/ui/form/index.js +1 -1
  67. package/dist/components/ui/form/index.js.map +3 -3
  68. package/dist/components/ui/grid/grid.d.ts +1 -2
  69. package/dist/components/ui/grid/grid.script.d.ts +7 -0
  70. package/dist/components/ui/grid/index.js +1 -1
  71. package/dist/components/ui/grid/index.js.map +3 -3
  72. package/dist/components/ui/hover-card/hover-card.d.ts +1 -2
  73. package/dist/components/ui/hover-card/hover-card.script.d.ts +7 -0
  74. package/dist/components/ui/hover-card/index.js +1 -1
  75. package/dist/components/ui/hover-card/index.js.map +3 -3
  76. package/dist/components/ui/knob/index.js +1 -1
  77. package/dist/components/ui/knob/index.js.map +3 -3
  78. package/dist/components/ui/knob/knob.d.ts +1 -2
  79. package/dist/components/ui/knob/knob.script.d.ts +7 -0
  80. package/dist/components/ui/listbox/index.js +1 -1
  81. package/dist/components/ui/listbox/index.js.map +3 -3
  82. package/dist/components/ui/listbox/listbox.d.ts +1 -2
  83. package/dist/components/ui/listbox/listbox.script.d.ts +7 -0
  84. package/dist/components/ui/menu-button/index.js +1 -1
  85. package/dist/components/ui/menu-button/index.js.map +3 -3
  86. package/dist/components/ui/menu-button/menu-button.d.ts +1 -2
  87. package/dist/components/ui/menu-button/menu-button.script.d.ts +7 -0
  88. package/dist/components/ui/menubar/index.js +1 -1
  89. package/dist/components/ui/menubar/index.js.map +3 -3
  90. package/dist/components/ui/menubar/menubar.d.ts +1 -2
  91. package/dist/components/ui/menubar/menubar.script.d.ts +7 -0
  92. package/dist/components/ui/meter/index.d.ts +1 -2
  93. package/dist/components/ui/meter/index.js +1 -1
  94. package/dist/components/ui/meter/index.js.map +4 -4
  95. package/dist/components/ui/meter/meter.script.d.ts +8 -0
  96. package/dist/components/ui/navigation-menu/index.js +1 -1
  97. package/dist/components/ui/navigation-menu/index.js.map +3 -3
  98. package/dist/components/ui/navigation-menu/navigation-menu.css +2 -1
  99. package/dist/components/ui/navigation-menu/navigation-menu.d.ts +1 -2
  100. package/dist/components/ui/navigation-menu/navigation-menu.script.d.ts +7 -0
  101. package/dist/components/ui/number-field/index.js +1 -1
  102. package/dist/components/ui/number-field/index.js.map +3 -3
  103. package/dist/components/ui/number-field/number-field.d.ts +1 -2
  104. package/dist/components/ui/number-field/number-field.script.d.ts +7 -0
  105. package/dist/components/ui/pagination/index.js +1 -1
  106. package/dist/components/ui/pagination/index.js.map +3 -3
  107. package/dist/components/ui/pagination/pagination.d.ts +1 -2
  108. package/dist/components/ui/pagination/pagination.script.d.ts +7 -0
  109. package/dist/components/ui/popover/index.js +1 -1
  110. package/dist/components/ui/popover/index.js.map +3 -3
  111. package/dist/components/ui/popover/popover.d.ts +1 -2
  112. package/dist/components/ui/popover/popover.script.d.ts +9 -0
  113. package/dist/components/ui/radio-group/index.js +1 -1
  114. package/dist/components/ui/radio-group/index.js.map +3 -3
  115. package/dist/components/ui/radio-group/radio-group.d.ts +1 -2
  116. package/dist/components/ui/radio-group/radio-group.script.d.ts +7 -0
  117. package/dist/components/ui/select/index.js +1 -1
  118. package/dist/components/ui/select/index.js.map +3 -3
  119. package/dist/components/ui/select/select.d.ts +1 -2
  120. package/dist/components/ui/select/select.script.d.ts +7 -0
  121. package/dist/components/ui/separator/separator.d.ts +2 -1
  122. package/dist/components/ui/sidebar/index.js +1 -1
  123. package/dist/components/ui/sidebar/index.js.map +3 -3
  124. package/dist/components/ui/sidebar/sidebar-trigger.d.ts +1 -2
  125. package/dist/components/ui/sidebar/sidebar-trigger.script.d.ts +7 -0
  126. package/dist/components/ui/sidebar/sidebar.d.ts +1 -3
  127. package/dist/components/ui/sidebar/sidebar.script.d.ts +7 -0
  128. package/dist/components/ui/slider/index.js +1 -1
  129. package/dist/components/ui/slider/index.js.map +3 -3
  130. package/dist/components/ui/slider/slider.d.ts +1 -2
  131. package/dist/components/ui/slider/slider.script.d.ts +7 -0
  132. package/dist/components/ui/switch/index.js +1 -1
  133. package/dist/components/ui/switch/index.js.map +3 -3
  134. package/dist/components/ui/switch/switch.d.ts +1 -2
  135. package/dist/components/ui/switch/switch.script.d.ts +7 -0
  136. package/dist/components/ui/table/index.js +1 -1
  137. package/dist/components/ui/table/index.js.map +3 -3
  138. package/dist/components/ui/table/table.d.ts +1 -2
  139. package/dist/components/ui/table/table.script.d.ts +7 -0
  140. package/dist/components/ui/tabs/index.d.ts +2 -2
  141. package/dist/components/ui/tabs/index.js +1 -1
  142. package/dist/components/ui/tabs/index.js.map +3 -3
  143. package/dist/components/ui/tabs/tabs.d.ts +1 -4
  144. package/dist/components/ui/tabs/tabs.script.d.ts +7 -0
  145. package/dist/components/ui/tag-group/index.js +1 -1
  146. package/dist/components/ui/tag-group/index.js.map +3 -3
  147. package/dist/components/ui/tag-group/tag-group.d.ts +1 -2
  148. package/dist/components/ui/tag-group/tag-group.script.d.ts +7 -0
  149. package/dist/components/ui/toast/index.d.ts +2 -2
  150. package/dist/components/ui/toast/index.js +1 -1
  151. package/dist/components/ui/toast/index.js.map +3 -3
  152. package/dist/components/ui/toast/toast.d.ts +6 -10
  153. package/dist/components/ui/toast/toast.script.d.ts +8 -0
  154. package/dist/components/ui/toast/toaster.script.d.ts +8 -1
  155. package/dist/components/ui/toc/index.d.ts +6 -2
  156. package/dist/components/ui/toc/index.js +1 -1
  157. package/dist/components/ui/toc/index.js.map +4 -4
  158. package/dist/components/ui/toc/toc.script.d.ts +8 -0
  159. package/dist/components/ui/toolbar/index.js +1 -1
  160. package/dist/components/ui/toolbar/index.js.map +3 -3
  161. package/dist/components/ui/toolbar/toolbar.d.ts +1 -2
  162. package/dist/components/ui/toolbar/toolbar.script.d.ts +7 -0
  163. package/dist/components/ui/tooltip/index.js +1 -1
  164. package/dist/components/ui/tooltip/index.js.map +3 -3
  165. package/dist/components/ui/tooltip/tooltip.d.ts +1 -2
  166. package/dist/components/ui/tooltip/tooltip.script.d.ts +14 -14
  167. package/dist/components/ui/tree/index.js +1 -1
  168. package/dist/components/ui/tree/index.js.map +3 -3
  169. package/dist/components/ui/tree/tree.d.ts +1 -2
  170. package/dist/components/ui/tree/tree.script.d.ts +7 -0
  171. package/dist/components/ui/treegrid/index.js +1 -1
  172. package/dist/components/ui/treegrid/index.js.map +3 -3
  173. package/dist/components/ui/treegrid/treegrid.d.ts +1 -2
  174. package/dist/components/ui/treegrid/treegrid.script.d.ts +7 -0
  175. package/dist/components/ui/window-splitter/index.js +1 -1
  176. package/dist/components/ui/window-splitter/index.js.map +3 -3
  177. package/dist/components/ui/window-splitter/window-splitter.d.ts +1 -2
  178. package/dist/components/ui/window-splitter/window-splitter.script.d.ts +7 -0
  179. package/dist/index.js +1 -1
  180. package/dist/index.js.map +4 -4
  181. package/dist/lib/without-children.d.ts +10 -0
  182. package/dist/styles/radiant-ui-core.css +3 -0
  183. package/dist/styles/radiant-ui.css +3 -0
  184. package/dist/styles/styles.css +1 -1
  185. package/dist/styles/tailwind.css +3 -0
  186. package/package.json +10 -10
  187. package/dist/components/ui/calendar/calendar.d.ts +0 -4
  188. package/dist/components/ui/meter/meter.d.ts +0 -8
  189. package/dist/components/ui/toc/toc.d.ts +0 -5
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/ui/knob/knob.script.tsx", "../../../../src/components/ui/shared/numeric-range.ts", "../../../../src/components/ui/knob/knob-geometry.ts", "../../../../src/components/ui/knob/knob.tsx"],
4
- "sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_step, _init_extra_step, _init_valuePrecision, _init_extra_valuePrecision, _init_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _init_size, _init_extra_size, _init_strokeWidth, _init_extra_strokeWidth, _init_showValue, _init_extra_showValue, _init_valuePosition, _init_extra_valuePosition, _init_valueTemplate, _init_extra_valueTemplate, _init_changeEvent, _init_extra_changeEvent, _init_rootTarget, _init_extra_rootTarget, _init_labelTarget, _init_extra_labelTarget, _init_controlTarget, _init_extra_controlTarget, _init_trackTarget, _init_extra_trackTarget, _init_progressTarget, _init_extra_progressTarget, _init_centerValueTarget, _init_extra_centerValueTarget, _init_belowValueTarget, _init_extra_belowValueTarget;\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 { bindTo, customElement, event, onEvent, onUpdated, prop, query } from \"@ecopages/radiant\";\nimport { FormAssociatedElement } from \"@ecopages/radiant/form-associated-element\";\nimport { createNumericRange, valueFromSliderKey, valuesAlignOnStep } from \"../shared/numeric-range\";\nimport { createKnobRing, knobValueFromPointer } from \"./knob-geometry\";\nexport const KNOB_DEFAULT_VALUE = 50;\nlet _RuiKnob;\nclass RuiKnob extends FormAssociatedElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_step, _init_extra_step, _init_valuePrecision, _init_extra_valuePrecision, _init_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _init_size, _init_extra_size, _init_strokeWidth, _init_extra_strokeWidth, _init_showValue, _init_extra_showValue, _init_valuePosition, _init_extra_valuePosition, _init_valueTemplate, _init_extra_valueTemplate, _init_changeEvent, _init_extra_changeEvent, _init_rootTarget, _init_extra_rootTarget, _init_labelTarget, _init_extra_labelTarget, _init_controlTarget, _init_extra_controlTarget, _init_trackTarget, _init_extra_trackTarget, _init_progressTarget, _init_extra_progressTarget, _init_centerValueTarget, _init_extra_centerValueTarget, _init_belowValueTarget, _init_extra_belowValueTarget, _initProto],\n c: [_RuiKnob, _initClass]\n } = _applyDecs(this, [customElement(\"rui-knob\")], [[prop({\n type: Number,\n reflect: true,\n defaultValue: KNOB_DEFAULT_VALUE\n }), 0, \"value\"], [prop({\n type: Number,\n defaultValue: 0\n }), 0, \"min\"], [prop({\n type: Number,\n defaultValue: 100\n }), 0, \"max\"], [prop({\n type: Number,\n defaultValue: 1\n }), 0, \"step\"], [prop({\n type: Number,\n attribute: \"value-precision\",\n defaultValue: Number.NaN\n }), 0, \"valuePrecision\"], [[prop({\n type: Boolean,\n attribute: \"read-only\",\n reflect: true,\n defaultValue: false\n }), bindTo({\n ref: \"control\",\n attr: \"aria-readonly\",\n map: readOnly => String(readOnly)\n })], 0, \"readOnly\"], [[prop({\n type: String,\n defaultValue: \"\"\n }), bindTo([{\n ref: \"label\",\n bool: \"hidden\",\n invert: true\n }, {\n ref: \"label\",\n text: true\n }, {\n ref: \"control\",\n attr: \"aria-label\",\n map: label => label || void 0\n }])], 0, \"label\"], [prop({\n type: Number,\n defaultValue: void 0\n }), 0, \"size\"], [prop({\n type: Number,\n attribute: \"stroke-width\",\n defaultValue: 14\n }), 0, \"strokeWidth\"], [prop({\n type: Boolean,\n attribute: \"show-value\",\n defaultValue: true\n }), 0, \"showValue\"], [prop({\n type: String,\n attribute: \"value-position\",\n defaultValue: \"center\"\n }), 0, \"valuePosition\"], [prop({\n type: String,\n attribute: \"value-template\",\n defaultValue: \"{value}\"\n }), 0, \"valueTemplate\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [query({\n ref: \"root\"\n }), 0, \"rootTarget\"], [query({\n ref: \"label\"\n }), 0, \"labelTarget\"], [query({\n ref: \"control\"\n }), 0, \"controlTarget\"], [query({\n ref: \"track\"\n }), 0, \"trackTarget\"], [query({\n ref: \"progress\"\n }), 0, \"progressTarget\"], [query({\n ref: \"centerValue\"\n }), 0, \"centerValueTarget\"], [query({\n ref: \"belowValue\"\n }), 0, \"belowValueTarget\"], [onUpdated([\"value\", \"min\", \"max\", \"step\", \"valuePrecision\", \"disabled\", \"readOnly\", \"effectiveDisabled\", \"name\", \"label\", \"size\", \"strokeWidth\", \"showValue\", \"valuePosition\", \"valueTemplate\"]), 2, \"onPropsUpdated\"], [onEvent({\n ref: \"control\",\n type: \"pointerdown\"\n }), 2, \"onPointerDown\"], [onEvent({\n ref: \"control\",\n type: \"pointermove\"\n }), 2, \"onPointerMove\"], [onEvent({\n ref: \"control\",\n type: \"pointerup\"\n }), 2, \"onPointerUp\"], [onEvent({\n ref: \"control\",\n type: \"pointercancel\"\n }), 2, \"onPointerCancel\"], [onEvent({\n ref: \"control\",\n type: \"keydown\"\n }), 2, \"onKeydown\"]], 0, void 0, FormAssociatedElement));\n }\n value = (_initProto(this), _init_value(this));\n min = (_init_extra_value(this), _init_min(this));\n max = (_init_extra_min(this), _init_max(this));\n step = (_init_extra_max(this), _init_step(this));\n valuePrecision = (_init_extra_step(this), _init_valuePrecision(this));\n readOnly = (_init_extra_valuePrecision(this), _init_readOnly(this));\n label = (_init_extra_readOnly(this), _init_label(this));\n size = (_init_extra_label(this), _init_size(this));\n strokeWidth = (_init_extra_size(this), _init_strokeWidth(this));\n showValue = (_init_extra_strokeWidth(this), _init_showValue(this));\n valuePosition = (_init_extra_showValue(this), _init_valuePosition(this));\n valueTemplate = (_init_extra_valuePosition(this), _init_valueTemplate(this));\n changeEvent = (_init_extra_valueTemplate(this), _init_changeEvent(this));\n rootTarget = (_init_extra_changeEvent(this), _init_rootTarget(this));\n labelTarget = (_init_extra_rootTarget(this), _init_labelTarget(this));\n controlTarget = (_init_extra_labelTarget(this), _init_controlTarget(this));\n trackTarget = (_init_extra_controlTarget(this), _init_trackTarget(this));\n progressTarget = (_init_extra_trackTarget(this), _init_progressTarget(this));\n centerValueTarget = (_init_extra_progressTarget(this), _init_centerValueTarget(this));\n belowValueTarget = (_init_extra_centerValueTarget(this), _init_belowValueTarget(this));\n activePointerId = (_init_extra_belowValueTarget(this), null);\n lastEmitted = null;\n rangeCommitQueued = false;\n onConnected() {\n this.syncPresentation();\n }\n formValue() {\n return this.name ? String(this.numericRange.clamp(this.value)) : null;\n }\n /** @remarks The reset value must survive a name assigned after first connect. */\n formState() {\n return String(this.value);\n }\n restoreFormState(state) {\n this.value = Number(state);\n this.syncPresentation();\n }\n onPropsUpdated() {\n this.syncPresentation();\n }\n get numericRange() {\n return createNumericRange(this.min, this.max, this.step);\n }\n get resolvedSize() {\n return typeof this.size === \"number\" && Number.isFinite(this.size) && this.size > 0 ? this.size : void 0;\n }\n get resolvedValuePosition() {\n return this.valuePosition === \"below\" ? \"below\" : \"center\";\n }\n paint(value) {\n const ring = createKnobRing(value, this.min, this.max, this.step, this.strokeWidth, this.valueTemplate, this.valuePrecision);\n const valuePosition = this.resolvedValuePosition;\n this.syncKnobLayout(valuePosition);\n this.syncControlValues(value, ring.valueText);\n this.syncRing(ring);\n this.syncReadout(ring.valueText, valuePosition);\n }\n syncKnobLayout(valuePosition) {\n this.rootTarget?.classList.toggle(\"rui-knob--value-below\", valuePosition === \"below\");\n if (this.resolvedSize) {\n this.style.setProperty(\"--rui-knob-size\", `${this.resolvedSize}px`);\n } else {\n this.style.removeProperty(\"--rui-knob-size\");\n }\n }\n syncControlValues(value, valueText) {\n const control = this.controlTarget;\n if (!control) return;\n control.setAttribute(\"aria-valuemin\", String(this.numericRange.lowerBound));\n control.setAttribute(\"aria-valuemax\", String(this.numericRange.upperBound));\n control.setAttribute(\"aria-valuenow\", String(value));\n control.setAttribute(\"aria-valuetext\", valueText);\n }\n syncRing(ring) {\n for (const circle of [this.trackTarget, this.progressTarget]) {\n circle?.setAttribute(\"r\", String(ring.radius));\n circle?.setAttribute(\"stroke-width\", String(ring.strokeWidth));\n }\n this.trackTarget?.setAttribute(\"stroke-dasharray\", `${ring.arcLength} ${ring.circumference}`);\n this.progressTarget?.setAttribute(\"stroke-dasharray\", `${ring.progressLength} ${ring.circumference}`);\n }\n syncReadout(valueText, valuePosition) {\n for (const [target, visible] of [[this.centerValueTarget, this.showValue && valuePosition === \"center\"], [this.belowValueTarget, this.showValue && valuePosition === \"below\"]]) {\n if (!target) {\n continue;\n }\n target.textContent = valueText;\n target.toggleAttribute(\"hidden\", !visible);\n }\n }\n syncPresentation() {\n if (this.controlTarget) this.controlTarget.disabled = this.effectiveDisabled;\n this.paint(this.numericRange.clamp(this.value));\n this.queueNormalizedValueCommit();\n }\n /**\n * @remarks JSX and Storybook can set `value` before `step` / `max`. Snapping in\n * that same turn would round `0.2` onto the default step of `1`.\n */\n queueNormalizedValueCommit() {\n if (this.rangeCommitQueued) return;\n this.rangeCommitQueued = true;\n queueMicrotask(() => {\n this.rangeCommitQueued = false;\n const value = this.numericRange.clamp(this.value);\n this.paint(value);\n if (!valuesAlignOnStep(this.value, value, this.step)) {\n this.value = value;\n }\n });\n }\n commitValue(next) {\n if (this.effectiveDisabled || this.readOnly) {\n return;\n }\n const value = this.numericRange.clamp(next);\n this.paint(value);\n if (valuesAlignOnStep(value, this.value, this.step)) {\n return;\n }\n this.value = value;\n if (this.lastEmitted !== value) {\n this.lastEmitted = value;\n this.changeEvent.emit({\n value\n });\n }\n }\n onPointerDown(event2) {\n const control = this.controlTarget;\n if (event2.button !== 0 || this.effectiveDisabled || this.readOnly || !control) {\n return;\n }\n this.activePointerId = event2.pointerId;\n this.lastEmitted = this.value;\n control.setPointerCapture(event2.pointerId);\n const rect = control.getBoundingClientRect();\n const value = knobValueFromPointer(event2.clientX, event2.clientY, rect, this.numericRange);\n if (value != null) {\n this.commitValue(value);\n }\n event2.preventDefault();\n }\n onPointerMove(event2) {\n const control = this.controlTarget;\n if (event2.pointerId !== this.activePointerId || !control) {\n return;\n }\n const rect = control.getBoundingClientRect();\n const value = knobValueFromPointer(event2.clientX, event2.clientY, rect, this.numericRange);\n if (value != null) {\n this.commitValue(value);\n }\n }\n onPointerUp(event2) {\n if (event2.pointerId !== this.activePointerId) {\n return;\n }\n this.controlTarget?.releasePointerCapture(event2.pointerId);\n this.activePointerId = null;\n }\n onPointerCancel(event2) {\n if (event2.pointerId !== this.activePointerId) {\n return;\n }\n const control = this.controlTarget;\n if (control?.hasPointerCapture(event2.pointerId)) {\n control.releasePointerCapture(event2.pointerId);\n }\n this.activePointerId = null;\n }\n onKeydown(event2) {\n if (this.effectiveDisabled || this.readOnly) {\n return;\n }\n const next = valueFromSliderKey(this.numericRange, this.value, event2.key);\n if (next == null) {\n return;\n }\n event2.preventDefault();\n this.lastEmitted = this.value;\n this.commitValue(next);\n }\n static {\n _initClass();\n }\n}\nexport { _RuiKnob as RuiKnob };", "export const SLIDER_PAGE_STEP_MULTIPLIER = 10;\nexport const MAX_VALUE_FRACTION_DIGITS = 15;\nexport function fractionDigitsFromStep(step) {\n if (!Number.isFinite(step) || step <= 0) {\n return 0;\n }\n const match = step.toString().match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n if (!match) {\n return 0;\n }\n const decimals = match[1]?.length ?? 0;\n const exponent = match[2] ? Number(match[2]) : 0;\n return Math.min(MAX_VALUE_FRACTION_DIGITS, Math.max(0, decimals - exponent));\n}\nexport function resolveValuePrecision(step, valuePrecision) {\n if (typeof valuePrecision === \"number\" && Number.isFinite(valuePrecision) && valuePrecision >= 0) {\n return Math.min(MAX_VALUE_FRACTION_DIGITS, Math.round(valuePrecision));\n }\n return fractionDigitsFromStep(step);\n}\nexport function formatNumericValue(value, valuePrecision) {\n return Number.isFinite(value) ? value.toFixed(valuePrecision) : \"\";\n}\nexport function valuesAlignOnStep(left, right, step) {\n if (Object.is(left, right)) {\n return true;\n }\n if (!Number.isFinite(left) || !Number.isFinite(right)) {\n return false;\n }\n const resolvedStep = Number.isFinite(step) && step > 0 ? step : 1;\n const roundingNoise = Number.EPSILON * Math.max(Math.abs(left), Math.abs(right), resolvedStep) * 4;\n return Math.abs(left - right) <= Math.min(roundingNoise, resolvedStep * 1e-6);\n}\nexport function createNumericRange(min, max, step) {\n const resolvedMin = Number.isFinite(min) ? min : 0;\n const resolvedMax = Number.isFinite(max) ? max : 100;\n const lowerBound = Math.min(resolvedMin, resolvedMax);\n const upperBound = Math.max(resolvedMin, resolvedMax);\n const resolvedStep = Number.isFinite(step) && step > 0 ? step : 1;\n const span = upperBound - lowerBound;\n const clamp = value => {\n const candidate = Number.isFinite(value) ? value : lowerBound;\n const stepped = lowerBound + Math.round((candidate - lowerBound) / resolvedStep) * resolvedStep;\n return Math.min(upperBound, Math.max(lowerBound, stepped));\n };\n return {\n lowerBound,\n upperBound,\n step: resolvedStep,\n clamp,\n ratioFor: value => span === 0 ? 0 : (clamp(value) - lowerBound) / span,\n valueFromRatio: ratio => {\n const unit = Math.min(1, Math.max(0, Number.isFinite(ratio) ? ratio : 0));\n return clamp(lowerBound + unit * span);\n }\n };\n}\nexport function valueFromSliderKey(range, current, key) {\n switch (key) {\n case \"ArrowRight\":\n case \"ArrowUp\":\n return range.clamp(current + range.step);\n case \"ArrowLeft\":\n case \"ArrowDown\":\n return range.clamp(current - range.step);\n case \"Home\":\n return range.lowerBound;\n case \"End\":\n return range.upperBound;\n case \"PageUp\":\n return range.clamp(current + range.step * SLIDER_PAGE_STEP_MULTIPLIER);\n case \"PageDown\":\n return range.clamp(current - range.step * SLIDER_PAGE_STEP_MULTIPLIER);\n default:\n return void 0;\n }\n}", "import { createNumericRange, formatNumericValue, resolveValuePrecision } from \"../shared/numeric-range\";\nexport const KNOB_START_ANGLE = 120;\nexport const KNOB_ARC_ANGLE = 300;\nexport const KNOB_DEFAULT_STROKE_WIDTH = 14;\nconst KNOB_GAP_MIDPOINT = KNOB_ARC_ANGLE + (360 - KNOB_ARC_ANGLE) / 2;\nexport function resolveKnobStrokeWidth(strokeWidth) {\n return Math.min(100, Math.max(0, Number.isFinite(strokeWidth) ? Number(strokeWidth) : KNOB_DEFAULT_STROKE_WIDTH));\n}\nexport function formatKnobValue(value, valuePrecision, template) {\n return template.replace(\"{value}\", formatNumericValue(value, valuePrecision));\n}\nexport function createKnobRing(value, min, max, step, strokeWidth, valueTemplate, valuePrecision) {\n const range = createNumericRange(min, max, step);\n const resolvedStrokeWidth = resolveKnobStrokeWidth(strokeWidth);\n const radius = 50 - resolvedStrokeWidth / 2;\n const circumference = 2 * Math.PI * radius;\n const arcLength = KNOB_ARC_ANGLE / 360 * circumference;\n const clamped = range.clamp(value);\n const precision = resolveValuePrecision(step, valuePrecision);\n return {\n startAngle: KNOB_START_ANGLE,\n strokeWidth: resolvedStrokeWidth,\n radius,\n circumference,\n arcLength,\n progressLength: range.ratioFor(clamped) * arcLength,\n valueText: formatKnobValue(clamped, precision, valueTemplate)\n };\n}\nexport function knobValueFromPointer(clientX, clientY, rect, range) {\n if (rect.width === 0 || rect.height === 0) {\n return null;\n }\n const pointerAngle = Math.atan2(clientY - (rect.top + rect.height / 2), clientX - (rect.left + rect.width / 2)) * 180 / Math.PI;\n const alongArc = (pointerAngle - KNOB_START_ANGLE + 360) % 360;\n const clampedAlong = alongArc <= KNOB_ARC_ANGLE ? alongArc : alongArc <= KNOB_GAP_MIDPOINT ? KNOB_ARC_ANGLE : 0;\n return range.valueFromRatio(clampedAlong / KNOB_ARC_ANGLE);\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { createNumericRange } from \"../shared/numeric-range\";\nimport { createKnobRing } from \"./knob-geometry\";\nimport { KNOB_DEFAULT_VALUE } from \"./knob.script\";\nimport \"./knob.script\";\nexport function RuiKnob({\n value = KNOB_DEFAULT_VALUE,\n min = 0,\n max = 100,\n step = 1,\n disabled = false,\n readOnly = false,\n label,\n name,\n size,\n strokeWidth = 14,\n showValue = true,\n valuePosition = \"center\",\n valueTemplate = \"{value}\",\n valuePrecision,\n ...props\n}) {\n const range = createNumericRange(min, max, step);\n const resolvedValue = range.clamp(value);\n const ring = createKnobRing(resolvedValue, min, max, step, strokeWidth, valueTemplate, valuePrecision);\n return /* @__PURE__ */jsx(KnobSurface, {\n props,\n value: resolvedValue,\n min,\n max,\n step,\n disabled,\n readOnly,\n label,\n name,\n size,\n strokeWidth,\n showValue,\n valuePosition,\n valueTemplate,\n valuePrecision,\n ring,\n range\n });\n}\nfunction KnobSurface({\n props,\n ring,\n range,\n ...knob\n}) {\n return /* @__PURE__ */jsx(\"rui-knob\", {\n ...props,\n value: knob.value,\n min: knob.min,\n max: knob.max,\n step: knob.step,\n disabled: knob.disabled,\n \"prop:readOnly\": knob.readOnly,\n label: knob.label,\n name: knob.name,\n size: knob.size,\n strokeWidth: knob.strokeWidth,\n showValue: knob.showValue,\n valuePosition: knob.valuePosition,\n valueTemplate: knob.valueTemplate,\n valuePrecision: knob.valuePrecision,\n style: knob.size ? {\n \"--rui-knob-size\": `${knob.size}px`\n } : void 0,\n children: /* @__PURE__ */jsx(KnobBody, {\n knob,\n ring,\n range\n })\n });\n}\nfunction KnobBody({\n knob,\n ring,\n range\n}) {\n const valueBelow = knob.valuePosition === \"below\";\n return /* @__PURE__ */jsxs(\"div\", {\n class: valueBelow ? \"rui-knob rui-knob--value-below\" : \"rui-knob\",\n \"data-ref\": \"root\",\n children: [/* @__PURE__ */jsx(\"span\", {\n class: \"rui-knob__label\",\n \"data-ref\": \"label\",\n hidden: !knob.label,\n children: knob.label\n }), /* @__PURE__ */jsx(KnobControl, {\n knob,\n ring,\n range,\n valueBelow\n }), /* @__PURE__ */jsx(\"span\", {\n class: \"rui-knob__value rui-knob__value--below\",\n \"data-ref\": \"belowValue\",\n \"aria-hidden\": \"true\",\n hidden: !knob.showValue || !valueBelow,\n children: ring.valueText\n })]\n });\n}\nfunction KnobControl({\n knob,\n ring,\n range,\n valueBelow\n}) {\n return /* @__PURE__ */jsxs(\"button\", {\n type: \"button\",\n class: \"rui-knob__control\",\n \"data-ref\": \"control\",\n \"data-knob-control\": true,\n role: \"slider\",\n \"aria-label\": knob.label || void 0,\n \"aria-valuemin\": range.lowerBound,\n \"aria-valuemax\": range.upperBound,\n \"aria-valuenow\": knob.value,\n \"aria-valuetext\": ring.valueText,\n \"aria-readonly\": knob.readOnly,\n disabled: knob.disabled,\n children: [/* @__PURE__ */jsxs(\"svg\", {\n class: \"rui-knob__svg\",\n viewBox: \"0 0 100 100\",\n \"aria-hidden\": \"true\",\n children: [/* @__PURE__ */jsx(\"circle\", {\n class: \"rui-knob__track\",\n \"data-ref\": \"track\",\n cx: \"50\",\n cy: \"50\",\n r: ring.radius,\n fill: \"none\",\n \"stroke-width\": ring.strokeWidth,\n \"stroke-dasharray\": `${ring.arcLength} ${ring.circumference}`,\n transform: `rotate(${ring.startAngle} 50 50)`\n }), /* @__PURE__ */jsx(\"circle\", {\n class: \"rui-knob__progress\",\n \"data-ref\": \"progress\",\n cx: \"50\",\n cy: \"50\",\n r: ring.radius,\n fill: \"none\",\n \"stroke-width\": ring.strokeWidth,\n \"stroke-dasharray\": `${ring.progressLength} ${ring.circumference}`,\n transform: `rotate(${ring.startAngle} 50 50)`\n })]\n }), /* @__PURE__ */jsx(\"span\", {\n class: \"rui-knob__value\",\n \"data-ref\": \"centerValue\",\n \"aria-hidden\": \"true\",\n hidden: !knob.showValue || valueBelow,\n children: ring.valueText\n })]\n });\n}"],
5
- "mappings": "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",
6
- "names": ["bindTo", "customElement", "event", "onEvent", "onUpdated", "prop", "query", "FormAssociatedElement", "fractionDigitsFromStep", "step", "match", "decimals", "exponent", "resolveValuePrecision", "valuePrecision", "formatNumericValue", "value", "valuesAlignOnStep", "left", "right", "resolvedStep", "roundingNoise", "createNumericRange", "min", "max", "resolvedMin", "resolvedMax", "lowerBound", "upperBound", "span", "clamp", "candidate", "stepped", "ratio", "unit", "valueFromSliderKey", "range", "current", "key", "KNOB_START_ANGLE", "KNOB_ARC_ANGLE", "KNOB_DEFAULT_STROKE_WIDTH", "KNOB_GAP_MIDPOINT", "resolveKnobStrokeWidth", "strokeWidth", "formatKnobValue", "value", "valuePrecision", "template", "formatNumericValue", "createKnobRing", "min", "max", "step", "valueTemplate", "range", "createNumericRange", "resolvedStrokeWidth", "radius", "circumference", "arcLength", "clamped", "precision", "resolveValuePrecision", "knobValueFromPointer", "clientX", "clientY", "rect", "alongArc", "clampedAlong", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_min", "_init_extra_min", "_init_max", "_init_extra_max", "_init_step", "_init_extra_step", "_init_valuePrecision", "_init_extra_valuePrecision", "_init_readOnly", "_init_extra_readOnly", "_init_label", "_init_extra_label", "_init_size", "_init_extra_size", "_init_strokeWidth", "_init_extra_strokeWidth", "_init_showValue", "_init_extra_showValue", "_init_valuePosition", "_init_extra_valuePosition", "_init_valueTemplate", "_init_extra_valueTemplate", "_init_changeEvent", "_init_extra_changeEvent", "_init_rootTarget", "_init_extra_rootTarget", "_init_labelTarget", "_init_extra_labelTarget", "_init_controlTarget", "_init_extra_controlTarget", "_init_trackTarget", "_init_extra_trackTarget", "_init_progressTarget", "_init_extra_progressTarget", "_init_centerValueTarget", "_init_extra_centerValueTarget", "_init_belowValueTarget", "_init_extra_belowValueTarget", "_applyDecs", "e", "t", "n", "r", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "KNOB_DEFAULT_VALUE", "_RuiKnob", "RuiKnob", "FormAssociatedElement", "customElement", "prop", "bindTo", "readOnly", "label", "event", "query", "onUpdated", "onEvent", "state", "createNumericRange", "value", "ring", "createKnobRing", "valuePosition", "valueText", "control", "circle", "target", "visible", "valuesAlignOnStep", "next", "event2", "rect", "knobValueFromPointer", "valueFromSliderKey", "jsx", "jsxs", "RuiKnob", "value", "KNOB_DEFAULT_VALUE", "min", "max", "step", "disabled", "readOnly", "label", "name", "size", "strokeWidth", "showValue", "valuePosition", "valueTemplate", "valuePrecision", "props", "range", "createNumericRange", "resolvedValue", "ring", "createKnobRing", "jsx", "KnobSurface", "knob", "KnobBody", "valueBelow", "jsxs", "KnobControl"]
4
+ "sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_step, _init_extra_step, _init_valuePrecision, _init_extra_valuePrecision, _init_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _init_size, _init_extra_size, _init_strokeWidth, _init_extra_strokeWidth, _init_showValue, _init_extra_showValue, _init_valuePosition, _init_extra_valuePosition, _init_valueTemplate, _init_extra_valueTemplate, _init_changeEvent, _init_extra_changeEvent, _init_rootTarget, _init_extra_rootTarget, _init_labelTarget, _init_extra_labelTarget, _init_controlTarget, _init_extra_controlTarget, _init_trackTarget, _init_extra_trackTarget, _init_progressTarget, _init_extra_progressTarget, _init_centerValueTarget, _init_extra_centerValueTarget, _init_belowValueTarget, _init_extra_belowValueTarget;\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 { bindTo, customElement, event, onEvent, onUpdated, prop, query } from \"@ecopages/radiant\";\nimport { FormAssociatedElement } from \"@ecopages/radiant/form-associated-element\";\nimport { createNumericRange, valueFromSliderKey, valuesAlignOnStep } from \"../shared/numeric-range\";\nimport { createKnobRing, knobValueFromPointer } from \"./knob-geometry\";\nexport const KNOB_DEFAULT_VALUE = 50;\nlet _RuiKnob;\nclass RuiKnob extends FormAssociatedElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_step, _init_extra_step, _init_valuePrecision, _init_extra_valuePrecision, _init_readOnly, _init_extra_readOnly, _init_label, _init_extra_label, _init_size, _init_extra_size, _init_strokeWidth, _init_extra_strokeWidth, _init_showValue, _init_extra_showValue, _init_valuePosition, _init_extra_valuePosition, _init_valueTemplate, _init_extra_valueTemplate, _init_changeEvent, _init_extra_changeEvent, _init_rootTarget, _init_extra_rootTarget, _init_labelTarget, _init_extra_labelTarget, _init_controlTarget, _init_extra_controlTarget, _init_trackTarget, _init_extra_trackTarget, _init_progressTarget, _init_extra_progressTarget, _init_centerValueTarget, _init_extra_centerValueTarget, _init_belowValueTarget, _init_extra_belowValueTarget, _initProto],\n c: [_RuiKnob, _initClass]\n } = _applyDecs(this, [customElement(\"rui-knob\")], [[prop({\n type: Number,\n reflect: true,\n defaultValue: KNOB_DEFAULT_VALUE\n }), 0, \"value\"], [prop({\n type: Number,\n defaultValue: 0\n }), 0, \"min\"], [prop({\n type: Number,\n defaultValue: 100\n }), 0, \"max\"], [prop({\n type: Number,\n defaultValue: 1\n }), 0, \"step\"], [prop({\n type: Number,\n attribute: \"value-precision\",\n defaultValue: Number.NaN\n }), 0, \"valuePrecision\"], [[prop({\n type: Boolean,\n attribute: \"read-only\",\n reflect: true,\n defaultValue: false\n }), bindTo({\n ref: \"control\",\n attr: \"aria-readonly\",\n map: readOnly => String(readOnly)\n })], 0, \"readOnly\"], [[prop({\n type: String,\n defaultValue: \"\"\n }), bindTo([{\n ref: \"label\",\n bool: \"hidden\",\n invert: true\n }, {\n ref: \"label\",\n text: true\n }, {\n ref: \"control\",\n attr: \"aria-label\",\n map: label => label || void 0\n }])], 0, \"label\"], [prop({\n type: Number,\n defaultValue: void 0\n }), 0, \"size\"], [prop({\n type: Number,\n attribute: \"stroke-width\",\n defaultValue: 14\n }), 0, \"strokeWidth\"], [prop({\n type: Boolean,\n attribute: \"show-value\",\n defaultValue: true\n }), 0, \"showValue\"], [prop({\n type: String,\n attribute: \"value-position\",\n defaultValue: \"center\"\n }), 0, \"valuePosition\"], [prop({\n type: String,\n attribute: \"value-template\",\n defaultValue: \"{value}\"\n }), 0, \"valueTemplate\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [query({\n ref: \"root\"\n }), 0, \"rootTarget\"], [query({\n ref: \"label\"\n }), 0, \"labelTarget\"], [query({\n ref: \"control\"\n }), 0, \"controlTarget\"], [query({\n ref: \"track\"\n }), 0, \"trackTarget\"], [query({\n ref: \"progress\"\n }), 0, \"progressTarget\"], [query({\n ref: \"centerValue\"\n }), 0, \"centerValueTarget\"], [query({\n ref: \"belowValue\"\n }), 0, \"belowValueTarget\"], [onUpdated([\"value\", \"min\", \"max\", \"step\", \"valuePrecision\", \"disabled\", \"readOnly\", \"effectiveDisabled\", \"name\", \"label\", \"size\", \"strokeWidth\", \"showValue\", \"valuePosition\", \"valueTemplate\"]), 2, \"onPropsUpdated\"], [onEvent({\n ref: \"control\",\n type: \"pointerdown\"\n }), 2, \"onPointerDown\"], [onEvent({\n ref: \"control\",\n type: \"pointermove\"\n }), 2, \"onPointerMove\"], [onEvent({\n ref: \"control\",\n type: \"pointerup\"\n }), 2, \"onPointerUp\"], [onEvent({\n ref: \"control\",\n type: \"pointercancel\"\n }), 2, \"onPointerCancel\"], [onEvent({\n ref: \"control\",\n type: \"keydown\"\n }), 2, \"onKeydown\"]], 0, void 0, FormAssociatedElement));\n }\n value = (_initProto(this), _init_value(this));\n min = (_init_extra_value(this), _init_min(this));\n max = (_init_extra_min(this), _init_max(this));\n step = (_init_extra_max(this), _init_step(this));\n valuePrecision = (_init_extra_step(this), _init_valuePrecision(this));\n readOnly = (_init_extra_valuePrecision(this), _init_readOnly(this));\n label = (_init_extra_readOnly(this), _init_label(this));\n size = (_init_extra_label(this), _init_size(this));\n strokeWidth = (_init_extra_size(this), _init_strokeWidth(this));\n showValue = (_init_extra_strokeWidth(this), _init_showValue(this));\n valuePosition = (_init_extra_showValue(this), _init_valuePosition(this));\n valueTemplate = (_init_extra_valuePosition(this), _init_valueTemplate(this));\n changeEvent = (_init_extra_valueTemplate(this), _init_changeEvent(this));\n rootTarget = (_init_extra_changeEvent(this), _init_rootTarget(this));\n labelTarget = (_init_extra_rootTarget(this), _init_labelTarget(this));\n controlTarget = (_init_extra_labelTarget(this), _init_controlTarget(this));\n trackTarget = (_init_extra_controlTarget(this), _init_trackTarget(this));\n progressTarget = (_init_extra_trackTarget(this), _init_progressTarget(this));\n centerValueTarget = (_init_extra_progressTarget(this), _init_centerValueTarget(this));\n belowValueTarget = (_init_extra_centerValueTarget(this), _init_belowValueTarget(this));\n activePointerId = (_init_extra_belowValueTarget(this), null);\n lastEmitted = null;\n rangeCommitQueued = false;\n onConnected() {\n this.syncPresentation();\n }\n formValue() {\n return this.name ? String(this.numericRange.clamp(this.value)) : null;\n }\n /** @remarks The reset value must survive a name assigned after first connect. */\n formState() {\n return String(this.value);\n }\n restoreFormState(state) {\n this.value = Number(state);\n this.syncPresentation();\n }\n onPropsUpdated() {\n this.syncPresentation();\n }\n get numericRange() {\n return createNumericRange(this.min, this.max, this.step);\n }\n get resolvedSize() {\n return typeof this.size === \"number\" && Number.isFinite(this.size) && this.size > 0 ? this.size : void 0;\n }\n get resolvedValuePosition() {\n return this.valuePosition === \"below\" ? \"below\" : \"center\";\n }\n paint(value) {\n const ring = createKnobRing(value, this.min, this.max, this.step, this.strokeWidth, this.valueTemplate, this.valuePrecision);\n const valuePosition = this.resolvedValuePosition;\n this.syncKnobLayout(valuePosition);\n this.syncControlValues(value, ring.valueText);\n this.syncRing(ring);\n this.syncReadout(ring.valueText, valuePosition);\n }\n syncKnobLayout(valuePosition) {\n this.rootTarget?.classList.toggle(\"rui-knob--value-below\", valuePosition === \"below\");\n if (this.resolvedSize) {\n this.style.setProperty(\"--rui-knob-size\", `${this.resolvedSize}px`);\n } else {\n this.style.removeProperty(\"--rui-knob-size\");\n }\n }\n syncControlValues(value, valueText) {\n const control = this.controlTarget;\n if (!control) return;\n control.setAttribute(\"aria-valuemin\", String(this.numericRange.lowerBound));\n control.setAttribute(\"aria-valuemax\", String(this.numericRange.upperBound));\n control.setAttribute(\"aria-valuenow\", String(value));\n control.setAttribute(\"aria-valuetext\", valueText);\n }\n syncRing(ring) {\n for (const circle of [this.trackTarget, this.progressTarget]) {\n circle?.setAttribute(\"r\", String(ring.radius));\n circle?.setAttribute(\"stroke-width\", String(ring.strokeWidth));\n }\n this.trackTarget?.setAttribute(\"stroke-dasharray\", `${ring.arcLength} ${ring.circumference}`);\n this.progressTarget?.setAttribute(\"stroke-dasharray\", `${ring.progressLength} ${ring.circumference}`);\n }\n syncReadout(valueText, valuePosition) {\n for (const [target, visible] of [[this.centerValueTarget, this.showValue && valuePosition === \"center\"], [this.belowValueTarget, this.showValue && valuePosition === \"below\"]]) {\n if (!target) {\n continue;\n }\n target.textContent = valueText;\n target.toggleAttribute(\"hidden\", !visible);\n }\n }\n syncPresentation() {\n if (this.controlTarget) this.controlTarget.disabled = this.effectiveDisabled;\n this.paint(this.numericRange.clamp(this.value));\n this.queueNormalizedValueCommit();\n }\n /**\n * @remarks JSX and Storybook can set `value` before `step` / `max`. Snapping in\n * that same turn would round `0.2` onto the default step of `1`.\n */\n queueNormalizedValueCommit() {\n if (this.rangeCommitQueued) return;\n this.rangeCommitQueued = true;\n queueMicrotask(() => {\n this.rangeCommitQueued = false;\n const value = this.numericRange.clamp(this.value);\n this.paint(value);\n if (!valuesAlignOnStep(this.value, value, this.step)) {\n this.value = value;\n }\n });\n }\n commitValue(next) {\n if (this.effectiveDisabled || this.readOnly) {\n return;\n }\n const value = this.numericRange.clamp(next);\n this.paint(value);\n if (valuesAlignOnStep(value, this.value, this.step)) {\n return;\n }\n this.value = value;\n if (this.lastEmitted !== value) {\n this.lastEmitted = value;\n this.changeEvent.emit({\n value\n });\n }\n }\n onPointerDown(event2) {\n const control = this.controlTarget;\n if (event2.button !== 0 || this.effectiveDisabled || this.readOnly || !control) {\n return;\n }\n this.activePointerId = event2.pointerId;\n this.lastEmitted = this.value;\n control.setPointerCapture(event2.pointerId);\n const rect = control.getBoundingClientRect();\n const value = knobValueFromPointer(event2.clientX, event2.clientY, rect, this.numericRange);\n if (value != null) {\n this.commitValue(value);\n }\n event2.preventDefault();\n }\n onPointerMove(event2) {\n const control = this.controlTarget;\n if (event2.pointerId !== this.activePointerId || !control) {\n return;\n }\n const rect = control.getBoundingClientRect();\n const value = knobValueFromPointer(event2.clientX, event2.clientY, rect, this.numericRange);\n if (value != null) {\n this.commitValue(value);\n }\n }\n onPointerUp(event2) {\n if (event2.pointerId !== this.activePointerId) {\n return;\n }\n this.controlTarget?.releasePointerCapture(event2.pointerId);\n this.activePointerId = null;\n }\n onPointerCancel(event2) {\n if (event2.pointerId !== this.activePointerId) {\n return;\n }\n const control = this.controlTarget;\n if (control?.hasPointerCapture(event2.pointerId)) {\n control.releasePointerCapture(event2.pointerId);\n }\n this.activePointerId = null;\n }\n onKeydown(event2) {\n if (this.effectiveDisabled || this.readOnly) {\n return;\n }\n const next = valueFromSliderKey(this.numericRange, this.value, event2.key);\n if (next == null) {\n return;\n }\n event2.preventDefault();\n this.lastEmitted = this.value;\n this.commitValue(next);\n }\n static {\n _initClass();\n }\n}\nexport { _RuiKnob as RuiKnob };", "export const SLIDER_PAGE_STEP_MULTIPLIER = 10;\nexport const MAX_VALUE_FRACTION_DIGITS = 15;\nexport function fractionDigitsFromStep(step) {\n if (!Number.isFinite(step) || step <= 0) {\n return 0;\n }\n const match = step.toString().match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n if (!match) {\n return 0;\n }\n const decimals = match[1]?.length ?? 0;\n const exponent = match[2] ? Number(match[2]) : 0;\n return Math.min(MAX_VALUE_FRACTION_DIGITS, Math.max(0, decimals - exponent));\n}\nexport function resolveValuePrecision(step, valuePrecision) {\n if (typeof valuePrecision === \"number\" && Number.isFinite(valuePrecision) && valuePrecision >= 0) {\n return Math.min(MAX_VALUE_FRACTION_DIGITS, Math.round(valuePrecision));\n }\n return fractionDigitsFromStep(step);\n}\nexport function formatNumericValue(value, valuePrecision) {\n return Number.isFinite(value) ? value.toFixed(valuePrecision) : \"\";\n}\nexport function valuesAlignOnStep(left, right, step) {\n if (Object.is(left, right)) {\n return true;\n }\n if (!Number.isFinite(left) || !Number.isFinite(right)) {\n return false;\n }\n const resolvedStep = Number.isFinite(step) && step > 0 ? step : 1;\n const roundingNoise = Number.EPSILON * Math.max(Math.abs(left), Math.abs(right), resolvedStep) * 4;\n return Math.abs(left - right) <= Math.min(roundingNoise, resolvedStep * 1e-6);\n}\nexport function createNumericRange(min, max, step) {\n const resolvedMin = Number.isFinite(min) ? min : 0;\n const resolvedMax = Number.isFinite(max) ? max : 100;\n const lowerBound = Math.min(resolvedMin, resolvedMax);\n const upperBound = Math.max(resolvedMin, resolvedMax);\n const resolvedStep = Number.isFinite(step) && step > 0 ? step : 1;\n const span = upperBound - lowerBound;\n const clamp = value => {\n const candidate = Number.isFinite(value) ? value : lowerBound;\n const stepped = lowerBound + Math.round((candidate - lowerBound) / resolvedStep) * resolvedStep;\n return Math.min(upperBound, Math.max(lowerBound, stepped));\n };\n return {\n lowerBound,\n upperBound,\n step: resolvedStep,\n clamp,\n ratioFor: value => span === 0 ? 0 : (clamp(value) - lowerBound) / span,\n valueFromRatio: ratio => {\n const unit = Math.min(1, Math.max(0, Number.isFinite(ratio) ? ratio : 0));\n return clamp(lowerBound + unit * span);\n }\n };\n}\nexport function valueFromSliderKey(range, current, key) {\n switch (key) {\n case \"ArrowRight\":\n case \"ArrowUp\":\n return range.clamp(current + range.step);\n case \"ArrowLeft\":\n case \"ArrowDown\":\n return range.clamp(current - range.step);\n case \"Home\":\n return range.lowerBound;\n case \"End\":\n return range.upperBound;\n case \"PageUp\":\n return range.clamp(current + range.step * SLIDER_PAGE_STEP_MULTIPLIER);\n case \"PageDown\":\n return range.clamp(current - range.step * SLIDER_PAGE_STEP_MULTIPLIER);\n default:\n return void 0;\n }\n}", "import { createNumericRange, formatNumericValue, resolveValuePrecision } from \"../shared/numeric-range\";\nexport const KNOB_START_ANGLE = 120;\nexport const KNOB_ARC_ANGLE = 300;\nexport const KNOB_DEFAULT_STROKE_WIDTH = 14;\nconst KNOB_GAP_MIDPOINT = KNOB_ARC_ANGLE + (360 - KNOB_ARC_ANGLE) / 2;\nexport function resolveKnobStrokeWidth(strokeWidth) {\n return Math.min(100, Math.max(0, Number.isFinite(strokeWidth) ? Number(strokeWidth) : KNOB_DEFAULT_STROKE_WIDTH));\n}\nexport function formatKnobValue(value, valuePrecision, template) {\n return template.replace(\"{value}\", formatNumericValue(value, valuePrecision));\n}\nexport function createKnobRing(value, min, max, step, strokeWidth, valueTemplate, valuePrecision) {\n const range = createNumericRange(min, max, step);\n const resolvedStrokeWidth = resolveKnobStrokeWidth(strokeWidth);\n const radius = 50 - resolvedStrokeWidth / 2;\n const circumference = 2 * Math.PI * radius;\n const arcLength = KNOB_ARC_ANGLE / 360 * circumference;\n const clamped = range.clamp(value);\n const precision = resolveValuePrecision(step, valuePrecision);\n return {\n startAngle: KNOB_START_ANGLE,\n strokeWidth: resolvedStrokeWidth,\n radius,\n circumference,\n arcLength,\n progressLength: range.ratioFor(clamped) * arcLength,\n valueText: formatKnobValue(clamped, precision, valueTemplate)\n };\n}\nexport function knobValueFromPointer(clientX, clientY, rect, range) {\n if (rect.width === 0 || rect.height === 0) {\n return null;\n }\n const pointerAngle = Math.atan2(clientY - (rect.top + rect.height / 2), clientX - (rect.left + rect.width / 2)) * 180 / Math.PI;\n const alongArc = (pointerAngle - KNOB_START_ANGLE + 360) % 360;\n const clampedAlong = alongArc <= KNOB_ARC_ANGLE ? alongArc : alongArc <= KNOB_GAP_MIDPOINT ? KNOB_ARC_ANGLE : 0;\n return range.valueFromRatio(clampedAlong / KNOB_ARC_ANGLE);\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { createNumericRange } from \"../shared/numeric-range\";\nimport { createKnobRing } from \"./knob-geometry\";\nimport { KNOB_DEFAULT_VALUE, RuiKnob as RuiKnobElement } from \"./knob.script\";\nexport function RuiKnob({\n value = KNOB_DEFAULT_VALUE,\n min = 0,\n max = 100,\n step = 1,\n disabled = false,\n readOnly = false,\n label,\n name,\n size,\n strokeWidth = 14,\n showValue = true,\n valuePosition = \"center\",\n valueTemplate = \"{value}\",\n valuePrecision,\n ...props\n}) {\n const range = createNumericRange(min, max, step);\n const resolvedValue = range.clamp(value);\n const ring = createKnobRing(resolvedValue, min, max, step, strokeWidth, valueTemplate, valuePrecision);\n return /* @__PURE__ */jsx(KnobSurface, {\n props,\n value: resolvedValue,\n min,\n max,\n step,\n disabled,\n readOnly,\n label,\n name,\n size,\n strokeWidth,\n showValue,\n valuePosition,\n valueTemplate,\n valuePrecision,\n ring,\n range\n });\n}\nfunction KnobSurface({\n props,\n ring,\n range,\n ...knob\n}) {\n return /* @__PURE__ */jsx(RuiKnobElement, {\n ...props,\n value: knob.value,\n min: knob.min,\n max: knob.max,\n step: knob.step,\n disabled: knob.disabled,\n \"prop:readOnly\": knob.readOnly,\n label: knob.label,\n name: knob.name,\n size: knob.size,\n strokeWidth: knob.strokeWidth,\n showValue: knob.showValue,\n valuePosition: knob.valuePosition,\n valueTemplate: knob.valueTemplate,\n valuePrecision: knob.valuePrecision,\n style: knob.size ? {\n \"--rui-knob-size\": `${knob.size}px`\n } : void 0,\n children: /* @__PURE__ */jsx(KnobBody, {\n knob,\n ring,\n range\n })\n });\n}\nfunction KnobBody({\n knob,\n ring,\n range\n}) {\n const valueBelow = knob.valuePosition === \"below\";\n return /* @__PURE__ */jsxs(\"div\", {\n class: valueBelow ? \"rui-knob rui-knob--value-below\" : \"rui-knob\",\n \"data-ref\": \"root\",\n children: [/* @__PURE__ */jsx(\"span\", {\n class: \"rui-knob__label\",\n \"data-ref\": \"label\",\n hidden: !knob.label,\n children: knob.label\n }), /* @__PURE__ */jsx(KnobControl, {\n knob,\n ring,\n range,\n valueBelow\n }), /* @__PURE__ */jsx(\"span\", {\n class: \"rui-knob__value rui-knob__value--below\",\n \"data-ref\": \"belowValue\",\n \"aria-hidden\": \"true\",\n hidden: !knob.showValue || !valueBelow,\n children: ring.valueText\n })]\n });\n}\nfunction KnobControl({\n knob,\n ring,\n range,\n valueBelow\n}) {\n return /* @__PURE__ */jsxs(\"button\", {\n type: \"button\",\n class: \"rui-knob__control\",\n \"data-ref\": \"control\",\n \"data-knob-control\": true,\n role: \"slider\",\n \"aria-label\": knob.label || void 0,\n \"aria-valuemin\": range.lowerBound,\n \"aria-valuemax\": range.upperBound,\n \"aria-valuenow\": knob.value,\n \"aria-valuetext\": ring.valueText,\n \"aria-readonly\": knob.readOnly,\n disabled: knob.disabled,\n children: [/* @__PURE__ */jsxs(\"svg\", {\n class: \"rui-knob__svg\",\n viewBox: \"0 0 100 100\",\n \"aria-hidden\": \"true\",\n children: [/* @__PURE__ */jsx(\"circle\", {\n class: \"rui-knob__track\",\n \"data-ref\": \"track\",\n cx: \"50\",\n cy: \"50\",\n r: ring.radius,\n fill: \"none\",\n \"stroke-width\": ring.strokeWidth,\n \"stroke-dasharray\": `${ring.arcLength} ${ring.circumference}`,\n transform: `rotate(${ring.startAngle} 50 50)`\n }), /* @__PURE__ */jsx(\"circle\", {\n class: \"rui-knob__progress\",\n \"data-ref\": \"progress\",\n cx: \"50\",\n cy: \"50\",\n r: ring.radius,\n fill: \"none\",\n \"stroke-width\": ring.strokeWidth,\n \"stroke-dasharray\": `${ring.progressLength} ${ring.circumference}`,\n transform: `rotate(${ring.startAngle} 50 50)`\n })]\n }), /* @__PURE__ */jsx(\"span\", {\n class: \"rui-knob__value\",\n \"data-ref\": \"centerValue\",\n \"aria-hidden\": \"true\",\n hidden: !knob.showValue || valueBelow,\n children: ring.valueText\n })]\n });\n}"],
5
+ "mappings": "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",
6
+ "names": ["bindTo", "customElement", "event", "onEvent", "onUpdated", "prop", "query", "FormAssociatedElement", "fractionDigitsFromStep", "step", "match", "decimals", "exponent", "resolveValuePrecision", "valuePrecision", "formatNumericValue", "value", "valuesAlignOnStep", "left", "right", "resolvedStep", "roundingNoise", "createNumericRange", "min", "max", "resolvedMin", "resolvedMax", "lowerBound", "upperBound", "span", "clamp", "candidate", "stepped", "ratio", "unit", "valueFromSliderKey", "range", "current", "key", "KNOB_START_ANGLE", "KNOB_ARC_ANGLE", "KNOB_DEFAULT_STROKE_WIDTH", "KNOB_GAP_MIDPOINT", "resolveKnobStrokeWidth", "strokeWidth", "formatKnobValue", "value", "valuePrecision", "template", "formatNumericValue", "createKnobRing", "min", "max", "step", "valueTemplate", "range", "createNumericRange", "resolvedStrokeWidth", "radius", "circumference", "arcLength", "clamped", "precision", "resolveValuePrecision", "knobValueFromPointer", "clientX", "clientY", "rect", "alongArc", "clampedAlong", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_min", "_init_extra_min", "_init_max", "_init_extra_max", "_init_step", "_init_extra_step", "_init_valuePrecision", "_init_extra_valuePrecision", "_init_readOnly", "_init_extra_readOnly", "_init_label", "_init_extra_label", "_init_size", "_init_extra_size", "_init_strokeWidth", "_init_extra_strokeWidth", "_init_showValue", "_init_extra_showValue", "_init_valuePosition", "_init_extra_valuePosition", "_init_valueTemplate", "_init_extra_valueTemplate", "_init_changeEvent", "_init_extra_changeEvent", "_init_rootTarget", "_init_extra_rootTarget", "_init_labelTarget", "_init_extra_labelTarget", "_init_controlTarget", "_init_extra_controlTarget", "_init_trackTarget", "_init_extra_trackTarget", "_init_progressTarget", "_init_extra_progressTarget", "_init_centerValueTarget", "_init_extra_centerValueTarget", "_init_belowValueTarget", "_init_extra_belowValueTarget", "_applyDecs", "e", "t", "n", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "r", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "KNOB_DEFAULT_VALUE", "_RuiKnob", "RuiKnob", "FormAssociatedElement", "customElement", "prop", "bindTo", "readOnly", "label", "event", "query", "onUpdated", "onEvent", "state", "createNumericRange", "value", "ring", "createKnobRing", "valuePosition", "valueText", "control", "circle", "target", "visible", "valuesAlignOnStep", "next", "event2", "rect", "knobValueFromPointer", "valueFromSliderKey", "jsx", "jsxs", "RuiKnob", "value", "KNOB_DEFAULT_VALUE", "min", "max", "step", "disabled", "readOnly", "label", "name", "size", "strokeWidth", "showValue", "valuePosition", "valueTemplate", "valuePrecision", "props", "range", "createNumericRange", "resolvedValue", "ring", "createKnobRing", "jsx", "KnobSurface", "knob", "_RuiKnob", "KnobBody", "valueBelow", "jsxs", "KnobControl"]
7
7
  }
@@ -1,6 +1,5 @@
1
1
  import type { JsxCustomElementAttributes } from '@ecopages/jsx';
2
- import { type RuiKnob as RuiKnobElement, type RuiKnobProps } from './knob.script';
3
- import './knob.script';
2
+ import { RuiKnob as RuiKnobElement, type RuiKnobProps } from './knob.script';
4
3
  /**
5
4
  * Rotary numeric control. Stamps the full `[data-ref]` tree under `[data-ref="root"]`.
6
5
  *
@@ -1,3 +1,4 @@
1
+ import type { JSX_PROPS } from '@ecopages/jsx';
1
2
  import { FormAssociatedElement, type FormValue } from '@ecopages/radiant/form-associated-element';
2
3
  import type { EventEmitter } from '@ecopages/radiant/tools/event-emitter';
3
4
  export type RuiKnobValuePosition = 'center' | 'below';
@@ -101,6 +102,7 @@ export declare const KNOB_DEFAULT_VALUE = 50;
101
102
  * the host never queries them. The control also carries `data-knob-control` for field wiring.
102
103
  */
103
104
  export declare class RuiKnob extends FormAssociatedElement {
105
+ readonly [JSX_PROPS]?: RuiKnobProps;
104
106
  value: number;
105
107
  min: number;
106
108
  max: number;
@@ -151,3 +153,8 @@ export declare class RuiKnob extends FormAssociatedElement {
151
153
  onPointerCancel(event: PointerEvent): void;
152
154
  onKeydown(event: KeyboardEvent): void;
153
155
  }
156
+ declare global {
157
+ interface HTMLElementTagNameMap {
158
+ 'rui-knob': RuiKnob;
159
+ }
160
+ }
@@ -1,2 +1,2 @@
1
- import{RadiantElement as De,bindTo as rt,customElement as it,event as nt,onEvent as ke,onUpdated as ot,prop as O}from"@ecopages/radiant";function $e(e,t){e.forEach((r,i)=>{let l=i===t?0:-1;r.tabIndex!==l&&(r.tabIndex=l)})}function Fe(e,t){if(!e.length)return null;let r=Math.max(0,Math.min(e.length-1,t));return $e(e,r),e[r]?.focus(),e[r]??null}function Ke(e,t){return e==="Home"?"first":e==="End"?"last":t==="horizontal"?e==="ArrowRight"?"next":e==="ArrowLeft"?"prev":null:e==="ArrowDown"?"next":e==="ArrowUp"?"prev":null}function ae(e){let{items:t,current:r,key:i,orientation:l="horizontal",wrap:f=!0}=e;if(!t.length||!r)return{handled:!1};let u=t.indexOf(r);if(u<0)return{handled:!1};let n=Ke(i,l);if(!n)return{handled:!1};let b=u;n==="first"?b=0:n==="last"?b=t.length-1:n==="next"?b=f?(u+1)%t.length:Math.min(t.length-1,u+1):b=f?(u-1+t.length)%t.length:Math.max(0,u-1);let A=Fe(t,b);return A?{handled:!0,index:b,item:A}:{handled:!1}}var Ne=/^[A-Za-z][A-Za-z0-9_-]*$/;function se(e){return Ne.test(e)}function Pe(e){let t=e.trim();if(se(t))return t;let r=`rui-${t}`;return t&&se(r)?r:"rui"}function ue(e){let t=typeof crypto.randomUUID=="function"?crypto.randomUUID().replace(/-/g,""):Array.from(crypto.getRandomValues(new Uint8Array(16)),r=>r.toString(16).padStart(2,"0")).join("");return`${Pe(e)}-${t}`}function Xe(e){let t=e.previousElementSibling;return t?.tagName.toLowerCase()==="label"?t:e.parentElement?.querySelector("[data-rui-field-label]")??null}function Ze(e,t,r){e.id||(e.id=r.labelId),e.htmlFor||(e.htmlFor=r.controlId),t.setAttribute("aria-labelledby",e.id),t.removeAttribute("aria-label")}function ce(e,t,r){if(!t||t.hasAttribute("data-rui-field-managed"))return;let i=Xe(e);if(i){Ze(i,t,r);return}if(r.label){t.setAttribute("aria-label",r.label),t.removeAttribute("aria-labelledby");return}t.removeAttribute("aria-label"),t.removeAttribute("aria-labelledby")}var Ge="data-listbox-option-indicator";function Je(e){let t=e.getAttribute("data-label");return t||de(e).trim()}function B(e){return e.getAttribute("data-value")||Je(e)}function de(e){if(Qe(e))return"";if(e.nodeType===Node.TEXT_NODE)return e.textContent??"";let t="";for(let r of e.childNodes)t+=de(r);return t}function Qe(e){return e instanceof HTMLElement&&e.hasAttribute(Ge)}function fe(e){return e?he(e.split(",")):[]}function We(e){return e.join(",")}var pe={fromAttribute:e=>fe(e),toAttribute:e=>e.length>0?We(e):null,fromProperty:e=>Array.isArray(e)?he(e.map(String)):typeof e=="string"?fe(e):[]},be={type:Array,reflect:!0,transform:pe};function me(e){return pe.fromProperty?.(e)??[]}function he(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))]}var xe,ge,ye,ve,_e,Ae,we,Ie,Se,Re,Ee,Le,Oe,Ve,Te,je;function Ye(e,t,r,i,l,f){var u,n,b,A,S,T,m,Z=Symbol.metadata||Symbol.for("Symbol.metadata"),G=Object.defineProperty,q=Object.create,J=[q(null),q(null)],Q=t.length;function D(o,g,h){return function(a,s){g&&(s=a,a=e);for(var y=0;y<o.length;y++)s=o[y].apply(a,h?[s]:[]);return h?s:a}}function w(o,g,h,a){if(typeof o!="function"&&(a||o!==void 0))throw new TypeError(g+" must "+(h||"be")+" a function"+(a?"":" or undefined"));return o}function W(o,g,h,a,s,y,R,x,v,_,H){function $(d){if(!H(d))throw new TypeError("Attempted to access private element on non-instance")}var F=[].concat(g[0]),ee=g[3],K=!R,j=s===1,te=s===3,re=s===4,k=s===2;function M(d,L,oe){return function(z,le){return L&&(le=z,z=o),oe&&oe(z),c[d].call(z,le)}}if(!K){var c={},N=[],I=te?"get":re||j?"set":"value";if(v?(_||j?c={get:Ce(function(){return ee(this)},a,"get"),set:function(d){g[4](this,d)}}:c[I]=ee,_||Ce(c[I],a,k?"":I)):_||(c=Object.getOwnPropertyDescriptor(o,a)),!_&&!v){if((n=J[+x][a])&&(n^s)!==7)throw Error("Decorating two elements with the same name ("+c[I].name+") is not supported yet");J[+x][a]=s<3?1:s}}for(var p=o,U=F.length-1;U>=0;U-=h?2:1){var ie=w(F[U],"A decorator","be",!0),ne=h?F[U-1]:void 0,P={},C={kind:["field","accessor","method","getter","setter","class"][s],name:a,metadata:u,addInitializer:function(d,L){if(d.v)throw new TypeError("attempted to call addInitializer after decoration was finished");w(L,"An initializer","be",!0),y.push(L)}.bind(null,P)};if(K)n=ie.call(ne,p,C),P.v=1,w(n,"class decorators","return")&&(p=n);else if(C.static=x,C.private=v,n=C.access={has:v?H.bind():function(d){return a in d}},re||(n.get=v?k?function(d){return $(d),c.value}:M("get",0,$):function(d){return d[a]}),k||te||(n.set=v?M("set",0,$):function(d,L){d[a]=L}),p=ie.call(ne,j?{get:c.get,set:c.set}:c[I],C),P.v=1,j){if(typeof p=="object"&&p)(n=w(p.get,"accessor.get"))&&(c.get=n),(n=w(p.set,"accessor.set"))&&(c.set=n),(n=w(p.init,"accessor.init"))&&N.unshift(n);else if(p!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else w(p,(_?"field":"method")+" decorators","return")&&(_?N.unshift(p):c[I]=p)}return s<2&&R.push(D(N,x,1),D(y,x,0)),_||K||(v?j?R.splice(-1,0,M("get",x),M("set",x)):R.push(k?c[I]:w.call.bind(c[I])):G(o,a,c)),p}function Y(o){return G(o,Z,{configurable:!0,enumerable:!0,value:u})}return f!==void 0&&(u=f[Z]),u=q(u??null),S=[],T=function(o){o&&S.push(D(o))},m=function(o,g){for(var h=0;h<r.length;h++){var a=r[h],s=a[1],y=7&s;if((8&s)==o&&!y==g){var R=a[2],x=!!a[3],v=16&s;W(o?e:e.prototype,a,v,x?"#"+R:He(R),y,y<2?[]:o?A=A||[]:b=b||[],S,!!o,x,g,o&&x?function(_){return tt(_)===e}:l)}}},m(8,0),m(0,0),m(8,1),m(0,1),T(b),T(A),n=S,Q||Y(e),{e:n,get c(){var o=[];return Q&&[Y(e=W(e,[t],i,e.name,5,o)),D(o,1)]}}}function He(e){var t=et(e,"string");return typeof t=="symbol"?t:t+""}function et(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var i=r.call(e,t||"default");if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ce(e,t,r){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:r?r+" "+t:t})}catch{}return e}function tt(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(e!==null?typeof e:"null"));return e}var Ue,Me=class extends De{static{({e:[ye,ve,_e,Ae,we,Ie,Se,Re,Ee,Le,Oe,Ve,Te,je,xe],c:[Ue,ge]}=Ye(this,[it("rui-listbox")],[[O({...be,defaultValue:[]}),0,"value"],[O({type:String,defaultValue:""}),0,"label"],[O({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[[O({type:String,attribute:"selection-mode",defaultValue:"single"}),rt({selector:'[role="listbox"]',attr:"aria-multiselectable",map:t=>t==="multiple"?"true":void 0})],0,"selectionMode"],[O({type:Boolean,reflect:!0,defaultValue:!1}),0,"embedded"],[O({type:Boolean,reflect:!0}),0,"bordered"],[nt({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[ot(["value","label","disabled","embedded","selectionMode"]),2,"onPropsUpdated"],[ke({selector:'[role="option"]',type:"click"}),2,"onOptionClick"],[ke({selector:'[role="option"]',type:"keydown"}),2,"onOptionKeydown"]],0,void 0,De))}value=(xe(this),ye(this));label=(ve(this),_e(this));disabled=(Ae(this),we(this));selectionMode=(Ie(this),Se(this));embedded=(Re(this),Ee(this));bordered=(Le(this),Oe(this));changeEvent=(Ve(this),Te(this));uid=(je(this),ue("rui-listbox"));onConnected(){this.syncLabel(),this.sync()}onPropsUpdated(){this.syncLabel(),this.sync()}getOptions(){return Array.from(this.querySelectorAll('[role="option"]'))}syncLabel(){if(this.embedded)return;let t=this.querySelector('[role="listbox"]');t&&(t.id||(t.id=`${this.uid}-list`),ce(this,t,{controlId:t.id,label:this.label,labelId:`${this.uid}-label`}))}getSelectedValues(){return this.value}setSelectedValues(t){this.value=t}tabIndexFor(t,r){return this.embedded?-1:t===r?0:-1}sync(){let t=this.getOptions(),r=new Set(this.getSelectedValues()),i=t.find(l=>r.has(B(l)))??t[0];for(let l of t){let f=r.has(B(l));l.setAttribute("aria-selected",String(f)),l.tabIndex=this.tabIndexFor(l,i)}}select(t){if(this.disabled||t.getAttribute("aria-disabled")==="true")return;let r=B(t);if(this.selectionMode==="multiple"){let i=new Set(this.getSelectedValues());i.has(r)?i.delete(r):i.add(r),this.setSelectedValues([...i])}else this.setSelectedValues([r]);this.sync(),this.changeEvent.emit({value:this.value}),t.focus()}onOptionClick(t){if(this.embedded)return;let r=t.target.closest('[role="option"]');r&&this.contains(r)&&this.select(r)}onOptionKeydown(t){if(this.embedded)return;let r=this.getOptions(),i=t.target.closest('[role="option"]');if(!i)return;if(t.key==="Enter"||t.key===" "){t.preventDefault(),this.select(i);return}let l=ae({items:r,current:i,key:t.key,orientation:"vertical"});if(l.handled){if(t.preventDefault(),this.selectionMode==="multiple"){l.item.focus();return}this.select(l.item)}}static{ge()}};import{jsx as E,jsxs as lt}from"@ecopages/jsx/jsx-runtime";function V(...e){return e.filter(Boolean).join(" ")}import{jsx as ze}from"@ecopages/jsx/jsx-runtime";function X({class:e,size:t="sm",...r}){return ze("svg",{...r,class:V("rui-icon",t==="md"&&"rui-icon--md",e),viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:ze("path",{d:"m5 12 4 4L19 6"})})}function Be({value:e,label:t,children:r,class:i,disabled:l,...f}){return E("div",{...f,class:V("rui-listbox__option",i),role:"option","data-value":e,"data-label":t,"aria-disabled":l?"true":void 0,tabindex:-1,children:r})}function qe({children:e,class:t,...r}){return E("span",{...r,"data-listbox-option-indicator":!0,"aria-hidden":"true",class:V("rui-listbox__option-indicator",t),children:e??E(X,{})})}function at(e,t){return t??!e}function st({bordered:e,children:t,disabled:r,embedded:i,label:l,selectionMode:f="single"}){return E("div",{class:V("rui-listbox",e&&"rui-listbox--bordered"),role:"listbox","data-rui-control":i?void 0:!0,"data-rui-control-type":i?void 0:"text","aria-label":l||void 0,"aria-disabled":r?"true":void 0,"aria-multiselectable":f==="multiple"?"true":void 0,children:t})}function ut({options:e,children:t,value:r,embedded:i,bordered:l,label:f,disabled:u,selectionMode:n="single",...b}){let A=at(i,l),S=me(r),T=new Set(S);return E("rui-listbox",{...b,value:S,embedded:i,bordered:l,label:f,disabled:u,selectionMode:n,children:E(st,{bordered:A,disabled:u,embedded:i,label:f,selectionMode:n,children:e!=null?e.map(m=>lt(Be,{value:m.value,label:typeof m.label=="string"?m.label:void 0,disabled:m.disabled,"aria-selected":T.has(m.value)?"true":void 0,children:[m.label,n==="multiple"?E(qe,{}):null]})):t})})}export{ut as RuiListbox,Ue as RuiListboxElement,Be as RuiListboxOption,qe as RuiListboxOptionIndicator};
1
+ import{RadiantElement as ke,bindTo as rt,customElement as it,event as nt,onEvent as Me,onUpdated as ot,prop as O}from"@ecopages/radiant";function $e(e,t){e.forEach((r,i)=>{let l=i===t?0:-1;r.tabIndex!==l&&(r.tabIndex=l)})}function Fe(e,t){if(!e.length)return null;let r=Math.max(0,Math.min(e.length-1,t));return $e(e,r),e[r]?.focus(),e[r]??null}function Ke(e,t){return e==="Home"?"first":e==="End"?"last":t==="horizontal"?e==="ArrowRight"?"next":e==="ArrowLeft"?"prev":null:e==="ArrowDown"?"next":e==="ArrowUp"?"prev":null}function se(e){let{items:t,current:r,key:i,orientation:l="horizontal",wrap:f=!0}=e;if(!t.length||!r)return{handled:!1};let u=t.indexOf(r);if(u<0)return{handled:!1};let n=Ke(i,l);if(!n)return{handled:!1};let b=u;n==="first"?b=0:n==="last"?b=t.length-1:n==="next"?b=f?(u+1)%t.length:Math.min(t.length-1,u+1):b=f?(u-1+t.length)%t.length:Math.max(0,u-1);let A=Fe(t,b);return A?{handled:!0,index:b,item:A}:{handled:!1}}var Ne=/^[A-Za-z][A-Za-z0-9_-]*$/;function ue(e){return Ne.test(e)}function Pe(e){let t=e.trim();if(ue(t))return t;let r=`rui-${t}`;return t&&ue(r)?r:"rui"}function ce(e){let t=typeof crypto.randomUUID=="function"?crypto.randomUUID().replace(/-/g,""):Array.from(crypto.getRandomValues(new Uint8Array(16)),r=>r.toString(16).padStart(2,"0")).join("");return`${Pe(e)}-${t}`}function Xe(e){let t=e.previousElementSibling;return t?.tagName.toLowerCase()==="label"?t:e.parentElement?.querySelector("[data-rui-field-label]")??null}function Ze(e,t,r){e.id||(e.id=r.labelId),e.htmlFor||(e.htmlFor=r.controlId),t.setAttribute("aria-labelledby",e.id),t.removeAttribute("aria-label")}function de(e,t,r){if(!t||t.hasAttribute("data-rui-field-managed"))return;let i=Xe(e);if(i){Ze(i,t,r);return}if(r.label){t.setAttribute("aria-label",r.label),t.removeAttribute("aria-labelledby");return}t.removeAttribute("aria-label"),t.removeAttribute("aria-labelledby")}var Ge="data-listbox-option-indicator";function Je(e){let t=e.getAttribute("data-label");return t||fe(e).trim()}function B(e){return e.getAttribute("data-value")||Je(e)}function fe(e){if(Qe(e))return"";if(e.nodeType===Node.TEXT_NODE)return e.textContent??"";let t="";for(let r of e.childNodes)t+=fe(r);return t}function Qe(e){return e instanceof HTMLElement&&e.hasAttribute(Ge)}function pe(e){return e?xe(e.split(",")):[]}function We(e){return e.join(",")}var be={fromAttribute:e=>pe(e),toAttribute:e=>e.length>0?We(e):null,fromProperty:e=>Array.isArray(e)?xe(e.map(String)):typeof e=="string"?pe(e):[]},me={type:Array,reflect:!0,transform:be};function he(e){return be.fromProperty?.(e)??[]}function xe(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))]}var ge,ye,ve,_e,Ae,we,Ie,Se,Re,Le,Ee,Oe,Ve,Te,je,Ce;function Ye(e,t,r,i,l,f){var u,n,b,A,S,T,m,G=Symbol.metadata||Symbol.for("Symbol.metadata"),J=Object.defineProperty,$=Object.create,Q=[$(null),$(null)],W=t.length;function D(o,g,h){return function(a,s){g&&(s=a,a=e);for(var y=0;y<o.length;y++)s=o[y].apply(a,h?[s]:[]);return h?s:a}}function w(o,g,h,a){if(typeof o!="function"&&(a||o!==void 0))throw new TypeError(g+" must "+(h||"be")+" a function"+(a?"":" or undefined"));return o}function Y(o,g,h,a,s,y,R,x,v,_,ee){function F(d){if(!ee(d))throw new TypeError("Attempted to access private element on non-instance")}var K=[].concat(g[0]),te=g[3],N=!R,j=s===1,re=s===3,ie=s===4,k=s===2;function M(d,E,le){return function(z,ae){return E&&(ae=z,z=o),le&&le(z),c[d].call(z,ae)}}if(!N){var c={},P=[],I=re?"get":ie||j?"set":"value";if(v?(_||j?c={get:De(function(){return te(this)},a,"get"),set:function(d){g[4](this,d)}}:c[I]=te,_||De(c[I],a,k?"":I)):_||(c=Object.getOwnPropertyDescriptor(o,a)),!_&&!v){if((n=Q[+x][a])&&(n^s)!==7)throw Error("Decorating two elements with the same name ("+c[I].name+") is not supported yet");Q[+x][a]=s<3?1:s}}for(var p=o,U=K.length-1;U>=0;U-=h?2:1){var ne=w(K[U],"A decorator","be",!0),oe=h?K[U-1]:void 0,X={},C={kind:["field","accessor","method","getter","setter","class"][s],name:a,metadata:u,addInitializer:function(d,E){if(d.v)throw new TypeError("attempted to call addInitializer after decoration was finished");w(E,"An initializer","be",!0),y.push(E)}.bind(null,X)};if(N)n=ne.call(oe,p,C),X.v=1,w(n,"class decorators","return")&&(p=n);else if(C.static=x,C.private=v,n=C.access={has:v?ee.bind():function(d){return a in d}},ie||(n.get=v?k?function(d){return F(d),c.value}:M("get",0,F):function(d){return d[a]}),k||re||(n.set=v?M("set",0,F):function(d,E){d[a]=E}),p=ne.call(oe,j?{get:c.get,set:c.set}:c[I],C),X.v=1,j){if(typeof p=="object"&&p)(n=w(p.get,"accessor.get"))&&(c.get=n),(n=w(p.set,"accessor.set"))&&(c.set=n),(n=w(p.init,"accessor.init"))&&P.unshift(n);else if(p!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else w(p,(_?"field":"method")+" decorators","return")&&(_?P.unshift(p):c[I]=p)}return s<2&&R.push(D(P,x,1),D(y,x,0)),_||N||(v?j?R.splice(-1,0,M("get",x),M("set",x)):R.push(k?c[I]:w.call.bind(c[I])):J(o,a,c)),p}function H(o){return J(o,G,{configurable:!0,enumerable:!0,value:u})}return f!==void 0&&(u=f[G]),u=$(u??null),S=[],T=function(o){o&&S.push(D(o))},m=function(o,g){for(var h=0;h<r.length;h++){var a=r[h],s=a[1],y=7&s;if((8&s)==o&&!y==g){var R=a[2],x=!!a[3],v=16&s;Y(o?e:e.prototype,a,v,x?"#"+R:He(R),y,y<2?[]:o?A=A||[]:b=b||[],S,!!o,x,g,o&&x?function(_){return tt(_)===e}:l)}}},m(8,0),m(0,0),m(8,1),m(0,1),T(b),T(A),n=S,W||H(e),{e:n,get c(){var o=[];return W&&[H(e=Y(e,[t],i,e.name,5,o)),D(o,1)]}}}function He(e){var t=et(e,"string");return typeof t=="symbol"?t:t+""}function et(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var i=r.call(e,t||"default");if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function De(e,t,r){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:r?r+" "+t:t})}catch{}return e}function tt(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(e!==null?typeof e:"null"));return e}var q,Ue=class extends ke{static{({e:[ve,_e,Ae,we,Ie,Se,Re,Le,Ee,Oe,Ve,Te,je,Ce,ge],c:[q,ye]}=Ye(this,[it("rui-listbox")],[[O({...me,defaultValue:[]}),0,"value"],[O({type:String,defaultValue:""}),0,"label"],[O({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[[O({type:String,attribute:"selection-mode",defaultValue:"single"}),rt({selector:'[role="listbox"]',attr:"aria-multiselectable",map:t=>t==="multiple"?"true":void 0})],0,"selectionMode"],[O({type:Boolean,reflect:!0,defaultValue:!1}),0,"embedded"],[O({type:Boolean,reflect:!0}),0,"bordered"],[nt({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[ot(["value","label","disabled","embedded","selectionMode"]),2,"onPropsUpdated"],[Me({selector:'[role="option"]',type:"click"}),2,"onOptionClick"],[Me({selector:'[role="option"]',type:"keydown"}),2,"onOptionKeydown"]],0,void 0,ke))}value=(ge(this),ve(this));label=(_e(this),Ae(this));disabled=(we(this),Ie(this));selectionMode=(Se(this),Re(this));embedded=(Le(this),Ee(this));bordered=(Oe(this),Ve(this));changeEvent=(Te(this),je(this));uid=(Ce(this),ce("rui-listbox"));onConnected(){this.syncLabel(),this.sync()}onPropsUpdated(){this.syncLabel(),this.sync()}getOptions(){return Array.from(this.querySelectorAll('[role="option"]'))}syncLabel(){if(this.embedded)return;let t=this.querySelector('[role="listbox"]');t&&(t.id||(t.id=`${this.uid}-list`),de(this,t,{controlId:t.id,label:this.label,labelId:`${this.uid}-label`}))}getSelectedValues(){return this.value}setSelectedValues(t){this.value=t}tabIndexFor(t,r){return this.embedded?-1:t===r?0:-1}sync(){let t=this.getOptions(),r=new Set(this.getSelectedValues()),i=t.find(l=>r.has(B(l)))??t[0];for(let l of t){let f=r.has(B(l));l.setAttribute("aria-selected",String(f)),l.tabIndex=this.tabIndexFor(l,i)}}select(t){if(this.disabled||t.getAttribute("aria-disabled")==="true")return;let r=B(t);if(this.selectionMode==="multiple"){let i=new Set(this.getSelectedValues());i.has(r)?i.delete(r):i.add(r),this.setSelectedValues([...i])}else this.setSelectedValues([r]);this.sync(),this.changeEvent.emit({value:this.value}),t.focus()}onOptionClick(t){if(this.embedded)return;let r=t.target.closest('[role="option"]');r&&this.contains(r)&&this.select(r)}onOptionKeydown(t){if(this.embedded)return;let r=this.getOptions(),i=t.target.closest('[role="option"]');if(!i)return;if(t.key==="Enter"||t.key===" "){t.preventDefault(),this.select(i);return}let l=se({items:r,current:i,key:t.key,orientation:"vertical"});if(l.handled){if(t.preventDefault(),this.selectionMode==="multiple"){l.item.focus();return}this.select(l.item)}}static{ye()}};import{jsx as L,jsxs as lt}from"@ecopages/jsx/jsx-runtime";function V(...e){return e.filter(Boolean).join(" ")}import{jsx as ze}from"@ecopages/jsx/jsx-runtime";function Z({class:e,size:t="sm",...r}){return ze("svg",{...r,class:V("rui-icon",t==="md"&&"rui-icon--md",e),viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:ze("path",{d:"m5 12 4 4L19 6"})})}function Be({value:e,label:t,children:r,class:i,disabled:l,...f}){return L("div",{...f,class:V("rui-listbox__option",i),role:"option","data-value":e,"data-label":t,"aria-disabled":l?"true":void 0,tabindex:-1,children:r})}function qe({children:e,class:t,...r}){return L("span",{...r,"data-listbox-option-indicator":!0,"aria-hidden":"true",class:V("rui-listbox__option-indicator",t),children:e??L(Z,{})})}function at(e,t){return t??!e}function st({bordered:e,children:t,disabled:r,embedded:i,label:l,selectionMode:f="single"}){return L("div",{class:V("rui-listbox",e&&"rui-listbox--bordered"),role:"listbox","data-rui-control":i?void 0:!0,"data-rui-control-type":i?void 0:"text","aria-label":l||void 0,"aria-disabled":r?"true":void 0,"aria-multiselectable":f==="multiple"?"true":void 0,children:t})}function ut({options:e,children:t,value:r,embedded:i,bordered:l,label:f,disabled:u,selectionMode:n="single",...b}){let A=at(i,l),S=he(r),T=new Set(S);return L(q,{...b,value:S,embedded:i,bordered:l,label:f,disabled:u,selectionMode:n,children:L(st,{bordered:A,disabled:u,embedded:i,label:f,selectionMode:n,children:e!=null?e.map(m=>lt(Be,{value:m.value,label:typeof m.label=="string"?m.label:void 0,disabled:m.disabled,"aria-selected":T.has(m.value)?"true":void 0,children:[m.label,n==="multiple"?L(qe,{}):null]})):t})})}export{ut as RuiListbox,q as RuiListboxElement,Be as RuiListboxOption,qe as RuiListboxOptionIndicator};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/ui/listbox/listbox.script.tsx", "../../../../src/lib/roving-tabindex.ts", "../../../../src/lib/unique-id.ts", "../../../../src/components/ui/shared/field-label.ts", "../../../../src/components/ui/shared/listbox-option.ts", "../../../../src/components/ui/shared/multi-value.ts", "../../../../src/components/ui/listbox/listbox.tsx", "../../../../src/lib/cx.ts", "../../../../src/lib/icons/check.tsx"],
4
- "sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_label, _init_extra_label, _init_disabled, _init_extra_disabled, _init_selectionMode, _init_extra_selectionMode, _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 { RadiantElement, bindTo, customElement, event, onEvent, onUpdated, prop } from \"@ecopages/radiant\";\nimport { navigateRovingTabindex } from \"@/lib/roving-tabindex\";\nimport { uniqueId } from \"@/lib/unique-id\";\nimport { syncFieldLabel } from \"../shared/field-label\";\nimport { getListboxOptionValue } from \"../shared/listbox-option\";\nimport { multiValuePropOptions } from \"../shared/multi-value\";\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_selectionMode, _init_extra_selectionMode, _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 ...multiValuePropOptions,\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: String,\n attribute: \"selection-mode\",\n defaultValue: \"single\"\n }), bindTo({\n selector: '[role=\"listbox\"]',\n attr: \"aria-multiselectable\",\n map: mode => mode === \"multiple\" ? \"true\" : void 0\n })], 0, \"selectionMode\"], [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\", \"label\", \"disabled\", \"embedded\", \"selectionMode\"]), 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 selectionMode = (_init_extra_disabled(this), _init_selectionMode(this));\n embedded = (_init_extra_selectionMode(this), _init_embedded(this));\n bordered = (_init_extra_embedded(this), _init_bordered(this));\n changeEvent = (_init_extra_bordered(this), _init_changeEvent(this));\n uid = (_init_extra_changeEvent(this), uniqueId(\"rui-listbox\"));\n onConnected() {\n this.syncLabel();\n this.sync();\n }\n onPropsUpdated() {\n this.syncLabel();\n this.sync();\n }\n getOptions() {\n return Array.from(this.querySelectorAll('[role=\"option\"]'));\n }\n syncLabel() {\n if (this.embedded) return;\n const list = this.querySelector('[role=\"listbox\"]');\n if (!list) return;\n if (!list.id) list.id = `${this.uid}-list`;\n syncFieldLabel(this, list, {\n controlId: list.id,\n label: this.label,\n labelId: `${this.uid}-label`\n });\n }\n getSelectedValues() {\n return this.value;\n }\n setSelectedValues(values) {\n this.value = values;\n }\n tabIndexFor(option, tabStop) {\n if (this.embedded) {\n return -1;\n }\n return option === tabStop ? 0 : -1;\n }\n sync() {\n const options = this.getOptions();\n const selected = new Set(this.getSelectedValues());\n const tabStop = options.find(option => selected.has(getListboxOptionValue(option))) ?? options[0];\n for (const option of options) {\n const isSelected = selected.has(getListboxOptionValue(option));\n option.setAttribute(\"aria-selected\", String(isSelected));\n option.tabIndex = this.tabIndexFor(option, tabStop);\n }\n }\n select(option) {\n if (this.disabled || option.getAttribute(\"aria-disabled\") === \"true\") return;\n const value = getListboxOptionValue(option);\n if (this.selectionMode === \"multiple\") {\n const selected = new Set(this.getSelectedValues());\n if (selected.has(value)) selected.delete(value);else selected.add(value);\n this.setSelectedValues([...selected]);\n } else {\n this.setSelectedValues([value]);\n }\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 if (this.selectionMode === \"multiple\") {\n result.item.focus();\n return;\n }\n this.select(result.item);\n }\n static {\n _initClass();\n }\n}\nexport { _RuiListbox as RuiListbox };", "export function applyRovingTabindex(items, activeIndex) {\n items.forEach((item, index) => {\n const next = index === activeIndex ? 0 : -1;\n if (item.tabIndex !== next) {\n item.tabIndex = next;\n }\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}", "const CSS_SAFE_ID = /^[A-Za-z][A-Za-z0-9_-]*$/;\nexport function isCssSafeId(value) {\n return CSS_SAFE_ID.test(value);\n}\nfunction cssSafePrefix(prefix) {\n const trimmed = prefix.trim();\n if (isCssSafeId(trimmed)) {\n return trimmed;\n }\n const prefixed = `rui-${trimmed}`;\n if (trimmed && isCssSafeId(prefixed)) {\n return prefixed;\n }\n return \"rui\";\n}\nexport function uniqueId(prefix) {\n const token = typeof crypto.randomUUID === \"function\" ? crypto.randomUUID().replace(/-/g, \"\") : Array.from(crypto.getRandomValues(new Uint8Array(16)), byte => byte.toString(16).padStart(2, \"0\")).join(\"\");\n return `${cssSafePrefix(prefix)}-${token}`;\n}", "export function findAssociatedLabel(owner) {\n const previous = owner.previousElementSibling;\n if (previous?.tagName.toLowerCase() === \"label\") {\n return previous;\n }\n return owner.parentElement?.querySelector(\"[data-rui-field-label]\") ?? null;\n}\nexport function bindVisibleLabel(label, control, options) {\n if (!label.id) {\n label.id = options.labelId;\n }\n if (!label.htmlFor) {\n label.htmlFor = options.controlId;\n }\n control.setAttribute(\"aria-labelledby\", label.id);\n control.removeAttribute(\"aria-label\");\n}\nexport function syncFieldLabel(owner, control, options) {\n if (!control || control.hasAttribute(\"data-rui-field-managed\")) {\n return;\n }\n const labelElement = findAssociatedLabel(owner);\n if (labelElement) {\n bindVisibleLabel(labelElement, control, options);\n return;\n }\n if (options.label) {\n control.setAttribute(\"aria-label\", options.label);\n control.removeAttribute(\"aria-labelledby\");\n return;\n }\n control.removeAttribute(\"aria-label\");\n control.removeAttribute(\"aria-labelledby\");\n}", "const OPTION_INDICATOR_ATTR = \"data-listbox-option-indicator\";\nexport function getListboxOptionLabel(option) {\n const label = option.getAttribute(\"data-label\");\n if (label) {\n return label;\n }\n return collectLabelText(option).trim();\n}\nexport function getListboxOptionValue(option) {\n return option.getAttribute(\"data-value\") || getListboxOptionLabel(option);\n}\nfunction collectLabelText(node) {\n if (isOptionIndicator(node)) {\n return \"\";\n }\n if (node.nodeType === Node.TEXT_NODE) {\n return node.textContent ?? \"\";\n }\n let text = \"\";\n for (const child of node.childNodes) {\n text += collectLabelText(child);\n }\n return text;\n}\nfunction isOptionIndicator(node) {\n return node instanceof HTMLElement && node.hasAttribute(OPTION_INDICATOR_ATTR);\n}", "export function parseMultiValue(value) {\n if (!value) {\n return [];\n }\n return uniqueTrimmed(value.split(\",\"));\n}\nexport function serializeMultiValue(values) {\n return values.join(\",\");\n}\nexport const multiValueTransform = {\n fromAttribute: value => parseMultiValue(value),\n toAttribute: values => values.length > 0 ? serializeMultiValue(values) : null,\n fromProperty: value => {\n if (Array.isArray(value)) {\n return uniqueTrimmed(value.map(String));\n }\n if (typeof value === \"string\") {\n return parseMultiValue(value);\n }\n return [];\n }\n};\nexport const multiValuePropOptions = {\n type: Array,\n reflect: true,\n transform: multiValueTransform\n};\nexport function parseViewValue(value) {\n return multiValueTransform.fromProperty?.(value) ?? [];\n}\nfunction parseNumberArray(value) {\n if (!value) {\n return [];\n }\n return value.split(\",\").map(item => Number(item.trim())).filter(item => Number.isFinite(item));\n}\nfunction serializeNumberArray(values) {\n return values.join(\",\");\n}\nexport const numberArrayTransform = {\n fromAttribute: value => parseNumberArray(value),\n toAttribute: values => values.length > 0 ? serializeNumberArray(values) : null,\n fromProperty: value => {\n if (Array.isArray(value)) {\n return value.map(Number).filter(item => Number.isFinite(item));\n }\n if (typeof value === \"number\" && Number.isFinite(value)) {\n return [value];\n }\n if (typeof value === \"string\") {\n return parseNumberArray(value);\n }\n return [];\n }\n};\nfunction uniqueTrimmed(values) {\n return [...new Set(values.map(item => item.trim()).filter(Boolean))];\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport { RuiIconCheck } from \"@/lib/icons\";\nimport { parseViewValue } from \"../shared/multi-value\";\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 RuiListboxOptionIndicator({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"span\", {\n ...props,\n \"data-listbox-option-indicator\": true,\n \"aria-hidden\": \"true\",\n class: cx(\"rui-listbox__option-indicator\", className),\n children: children ?? /* @__PURE__ */jsx(RuiIconCheck, {})\n });\n}\nfunction listboxIsBordered(embedded, bordered) {\n if (bordered != null) {\n return bordered;\n }\n return !embedded;\n}\nfunction ListboxShell({\n bordered,\n children,\n disabled,\n embedded,\n label,\n selectionMode = \"single\"\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n class: cx(\"rui-listbox\", bordered && \"rui-listbox--bordered\"),\n role: \"listbox\",\n \"data-rui-control\": embedded ? void 0 : true,\n \"data-rui-control-type\": embedded ? void 0 : \"text\",\n \"aria-label\": label || void 0,\n \"aria-disabled\": disabled ? \"true\" : void 0,\n \"aria-multiselectable\": selectionMode === \"multiple\" ? \"true\" : void 0,\n children\n });\n}\nexport function RuiListbox({\n options,\n children,\n value,\n embedded,\n bordered,\n label,\n disabled,\n selectionMode = \"single\",\n ...props\n}) {\n const isBordered = listboxIsBordered(embedded, bordered);\n const selectedValues = parseViewValue(value);\n const selected = new Set(selectedValues);\n return /* @__PURE__ */jsx(\"rui-listbox\", {\n ...props,\n value: selectedValues,\n embedded,\n bordered,\n label,\n disabled,\n selectionMode,\n children: /* @__PURE__ */jsx(ListboxShell, {\n bordered: isBordered,\n disabled,\n embedded,\n label,\n selectionMode,\n children: options != null ? options.map(option => /* @__PURE__ */jsxs(RuiListboxOption, {\n value: option.value,\n label: typeof option.label === \"string\" ? option.label : void 0,\n disabled: option.disabled,\n \"aria-selected\": selected.has(option.value) ? \"true\" : void 0,\n children: [option.label, selectionMode === \"multiple\" ? /* @__PURE__ */jsx(RuiListboxOptionIndicator, {}) : null]\n })) : children\n })\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 RuiIconCheck({\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: \"m5 12 4 4L19 6\"\n })\n });\n}"],
5
- "mappings": "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",
6
- "names": ["RadiantElement", "bindTo", "customElement", "event", "onEvent", "onUpdated", "prop", "applyRovingTabindex", "items", "activeIndex", "item", "index", "next", "focusRovingItem", "deltaForKey", "key", "orientation", "navigateRovingTabindex", "options", "current", "wrap", "delta", "CSS_SAFE_ID", "isCssSafeId", "value", "cssSafePrefix", "prefix", "trimmed", "prefixed", "uniqueId", "token", "byte", "findAssociatedLabel", "owner", "previous", "bindVisibleLabel", "label", "control", "options", "syncFieldLabel", "labelElement", "OPTION_INDICATOR_ATTR", "getListboxOptionLabel", "option", "label", "collectLabelText", "getListboxOptionValue", "node", "isOptionIndicator", "text", "child", "parseMultiValue", "value", "uniqueTrimmed", "serializeMultiValue", "values", "multiValueTransform", "multiValuePropOptions", "parseViewValue", "uniqueTrimmed", "values", "item", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_label", "_init_extra_label", "_init_disabled", "_init_extra_disabled", "_init_selectionMode", "_init_extra_selectionMode", "_init_embedded", "_init_extra_embedded", "_init_bordered", "_init_extra_bordered", "_init_changeEvent", "_init_extra_changeEvent", "_applyDecs", "n", "r", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "b", "e", "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", "multiValuePropOptions", "bindTo", "mode", "event", "onUpdated", "onEvent", "uniqueId", "list", "syncFieldLabel", "values", "option", "tabStop", "options", "selected", "getListboxOptionValue", "isSelected", "value", "event2", "current", "result", "navigateRovingTabindex", "jsx", "jsxs", "cx", "parts", "jsx", "RuiIconCheck", "className", "size", "props", "jsx", "cx", "RuiListboxOption", "value", "label", "children", "className", "disabled", "props", "jsx", "cx", "RuiListboxOptionIndicator", "RuiIconCheck", "listboxIsBordered", "embedded", "bordered", "ListboxShell", "selectionMode", "RuiListbox", "options", "isBordered", "selectedValues", "parseViewValue", "selected", "option", "jsxs"]
4
+ "sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_label, _init_extra_label, _init_disabled, _init_extra_disabled, _init_selectionMode, _init_extra_selectionMode, _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 { RadiantElement, bindTo, customElement, event, onEvent, onUpdated, prop } from \"@ecopages/radiant\";\nimport { navigateRovingTabindex } from \"@/lib/roving-tabindex\";\nimport { uniqueId } from \"@/lib/unique-id\";\nimport { syncFieldLabel } from \"../shared/field-label\";\nimport { getListboxOptionValue } from \"../shared/listbox-option\";\nimport { multiValuePropOptions } from \"../shared/multi-value\";\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_selectionMode, _init_extra_selectionMode, _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 ...multiValuePropOptions,\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: String,\n attribute: \"selection-mode\",\n defaultValue: \"single\"\n }), bindTo({\n selector: '[role=\"listbox\"]',\n attr: \"aria-multiselectable\",\n map: mode => mode === \"multiple\" ? \"true\" : void 0\n })], 0, \"selectionMode\"], [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\", \"label\", \"disabled\", \"embedded\", \"selectionMode\"]), 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 selectionMode = (_init_extra_disabled(this), _init_selectionMode(this));\n embedded = (_init_extra_selectionMode(this), _init_embedded(this));\n bordered = (_init_extra_embedded(this), _init_bordered(this));\n changeEvent = (_init_extra_bordered(this), _init_changeEvent(this));\n uid = (_init_extra_changeEvent(this), uniqueId(\"rui-listbox\"));\n onConnected() {\n this.syncLabel();\n this.sync();\n }\n onPropsUpdated() {\n this.syncLabel();\n this.sync();\n }\n getOptions() {\n return Array.from(this.querySelectorAll('[role=\"option\"]'));\n }\n syncLabel() {\n if (this.embedded) return;\n const list = this.querySelector('[role=\"listbox\"]');\n if (!list) return;\n if (!list.id) list.id = `${this.uid}-list`;\n syncFieldLabel(this, list, {\n controlId: list.id,\n label: this.label,\n labelId: `${this.uid}-label`\n });\n }\n getSelectedValues() {\n return this.value;\n }\n setSelectedValues(values) {\n this.value = values;\n }\n tabIndexFor(option, tabStop) {\n if (this.embedded) {\n return -1;\n }\n return option === tabStop ? 0 : -1;\n }\n sync() {\n const options = this.getOptions();\n const selected = new Set(this.getSelectedValues());\n const tabStop = options.find(option => selected.has(getListboxOptionValue(option))) ?? options[0];\n for (const option of options) {\n const isSelected = selected.has(getListboxOptionValue(option));\n option.setAttribute(\"aria-selected\", String(isSelected));\n option.tabIndex = this.tabIndexFor(option, tabStop);\n }\n }\n select(option) {\n if (this.disabled || option.getAttribute(\"aria-disabled\") === \"true\") return;\n const value = getListboxOptionValue(option);\n if (this.selectionMode === \"multiple\") {\n const selected = new Set(this.getSelectedValues());\n if (selected.has(value)) selected.delete(value);else selected.add(value);\n this.setSelectedValues([...selected]);\n } else {\n this.setSelectedValues([value]);\n }\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 if (this.selectionMode === \"multiple\") {\n result.item.focus();\n return;\n }\n this.select(result.item);\n }\n static {\n _initClass();\n }\n}\nexport { _RuiListbox as RuiListbox };", "export function applyRovingTabindex(items, activeIndex) {\n items.forEach((item, index) => {\n const next = index === activeIndex ? 0 : -1;\n if (item.tabIndex !== next) {\n item.tabIndex = next;\n }\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}", "const CSS_SAFE_ID = /^[A-Za-z][A-Za-z0-9_-]*$/;\nexport function isCssSafeId(value) {\n return CSS_SAFE_ID.test(value);\n}\nfunction cssSafePrefix(prefix) {\n const trimmed = prefix.trim();\n if (isCssSafeId(trimmed)) {\n return trimmed;\n }\n const prefixed = `rui-${trimmed}`;\n if (trimmed && isCssSafeId(prefixed)) {\n return prefixed;\n }\n return \"rui\";\n}\nexport function uniqueId(prefix) {\n const token = typeof crypto.randomUUID === \"function\" ? crypto.randomUUID().replace(/-/g, \"\") : Array.from(crypto.getRandomValues(new Uint8Array(16)), byte => byte.toString(16).padStart(2, \"0\")).join(\"\");\n return `${cssSafePrefix(prefix)}-${token}`;\n}", "export function findAssociatedLabel(owner) {\n const previous = owner.previousElementSibling;\n if (previous?.tagName.toLowerCase() === \"label\") {\n return previous;\n }\n return owner.parentElement?.querySelector(\"[data-rui-field-label]\") ?? null;\n}\nexport function bindVisibleLabel(label, control, options) {\n if (!label.id) {\n label.id = options.labelId;\n }\n if (!label.htmlFor) {\n label.htmlFor = options.controlId;\n }\n control.setAttribute(\"aria-labelledby\", label.id);\n control.removeAttribute(\"aria-label\");\n}\nexport function syncFieldLabel(owner, control, options) {\n if (!control || control.hasAttribute(\"data-rui-field-managed\")) {\n return;\n }\n const labelElement = findAssociatedLabel(owner);\n if (labelElement) {\n bindVisibleLabel(labelElement, control, options);\n return;\n }\n if (options.label) {\n control.setAttribute(\"aria-label\", options.label);\n control.removeAttribute(\"aria-labelledby\");\n return;\n }\n control.removeAttribute(\"aria-label\");\n control.removeAttribute(\"aria-labelledby\");\n}", "const OPTION_INDICATOR_ATTR = \"data-listbox-option-indicator\";\nexport function getListboxOptionLabel(option) {\n const label = option.getAttribute(\"data-label\");\n if (label) {\n return label;\n }\n return collectLabelText(option).trim();\n}\nexport function getListboxOptionValue(option) {\n return option.getAttribute(\"data-value\") || getListboxOptionLabel(option);\n}\nfunction collectLabelText(node) {\n if (isOptionIndicator(node)) {\n return \"\";\n }\n if (node.nodeType === Node.TEXT_NODE) {\n return node.textContent ?? \"\";\n }\n let text = \"\";\n for (const child of node.childNodes) {\n text += collectLabelText(child);\n }\n return text;\n}\nfunction isOptionIndicator(node) {\n return node instanceof HTMLElement && node.hasAttribute(OPTION_INDICATOR_ATTR);\n}", "export function parseMultiValue(value) {\n if (!value) {\n return [];\n }\n return uniqueTrimmed(value.split(\",\"));\n}\nexport function serializeMultiValue(values) {\n return values.join(\",\");\n}\nexport const multiValueTransform = {\n fromAttribute: value => parseMultiValue(value),\n toAttribute: values => values.length > 0 ? serializeMultiValue(values) : null,\n fromProperty: value => {\n if (Array.isArray(value)) {\n return uniqueTrimmed(value.map(String));\n }\n if (typeof value === \"string\") {\n return parseMultiValue(value);\n }\n return [];\n }\n};\nexport const multiValuePropOptions = {\n type: Array,\n reflect: true,\n transform: multiValueTransform\n};\nexport function parseViewValue(value) {\n return multiValueTransform.fromProperty?.(value) ?? [];\n}\nfunction parseNumberArray(value) {\n if (!value) {\n return [];\n }\n return value.split(\",\").map(item => Number(item.trim())).filter(item => Number.isFinite(item));\n}\nfunction serializeNumberArray(values) {\n return values.join(\",\");\n}\nexport const numberArrayTransform = {\n fromAttribute: value => parseNumberArray(value),\n toAttribute: values => values.length > 0 ? serializeNumberArray(values) : null,\n fromProperty: value => {\n if (Array.isArray(value)) {\n return value.map(Number).filter(item => Number.isFinite(item));\n }\n if (typeof value === \"number\" && Number.isFinite(value)) {\n return [value];\n }\n if (typeof value === \"string\") {\n return parseNumberArray(value);\n }\n return [];\n }\n};\nfunction uniqueTrimmed(values) {\n return [...new Set(values.map(item => item.trim()).filter(Boolean))];\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport { RuiIconCheck } from \"@/lib/icons\";\nimport { parseViewValue } from \"../shared/multi-value\";\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 function RuiListboxOptionIndicator({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"span\", {\n ...props,\n \"data-listbox-option-indicator\": true,\n \"aria-hidden\": \"true\",\n class: cx(\"rui-listbox__option-indicator\", className),\n children: children ?? /* @__PURE__ */jsx(RuiIconCheck, {})\n });\n}\nfunction listboxIsBordered(embedded, bordered) {\n if (bordered != null) {\n return bordered;\n }\n return !embedded;\n}\nfunction ListboxShell({\n bordered,\n children,\n disabled,\n embedded,\n label,\n selectionMode = \"single\"\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n class: cx(\"rui-listbox\", bordered && \"rui-listbox--bordered\"),\n role: \"listbox\",\n \"data-rui-control\": embedded ? void 0 : true,\n \"data-rui-control-type\": embedded ? void 0 : \"text\",\n \"aria-label\": label || void 0,\n \"aria-disabled\": disabled ? \"true\" : void 0,\n \"aria-multiselectable\": selectionMode === \"multiple\" ? \"true\" : void 0,\n children\n });\n}\nexport function RuiListbox({\n options,\n children,\n value,\n embedded,\n bordered,\n label,\n disabled,\n selectionMode = \"single\",\n ...props\n}) {\n const isBordered = listboxIsBordered(embedded, bordered);\n const selectedValues = parseViewValue(value);\n const selected = new Set(selectedValues);\n return /* @__PURE__ */jsx(RuiListboxElement, {\n ...props,\n value: selectedValues,\n embedded,\n bordered,\n label,\n disabled,\n selectionMode,\n children: /* @__PURE__ */jsx(ListboxShell, {\n bordered: isBordered,\n disabled,\n embedded,\n label,\n selectionMode,\n children: options != null ? options.map(option => /* @__PURE__ */jsxs(RuiListboxOption, {\n value: option.value,\n label: typeof option.label === \"string\" ? option.label : void 0,\n disabled: option.disabled,\n \"aria-selected\": selected.has(option.value) ? \"true\" : void 0,\n children: [option.label, selectionMode === \"multiple\" ? /* @__PURE__ */jsx(RuiListboxOptionIndicator, {}) : null]\n })) : children\n })\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 RuiIconCheck({\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: \"m5 12 4 4L19 6\"\n })\n });\n}"],
5
+ "mappings": "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",
6
+ "names": ["RadiantElement", "bindTo", "customElement", "event", "onEvent", "onUpdated", "prop", "applyRovingTabindex", "items", "activeIndex", "item", "index", "next", "focusRovingItem", "deltaForKey", "key", "orientation", "navigateRovingTabindex", "options", "current", "wrap", "delta", "CSS_SAFE_ID", "isCssSafeId", "value", "cssSafePrefix", "prefix", "trimmed", "prefixed", "uniqueId", "token", "byte", "findAssociatedLabel", "owner", "previous", "bindVisibleLabel", "label", "control", "options", "syncFieldLabel", "labelElement", "OPTION_INDICATOR_ATTR", "getListboxOptionLabel", "option", "label", "collectLabelText", "getListboxOptionValue", "node", "isOptionIndicator", "text", "child", "parseMultiValue", "value", "uniqueTrimmed", "serializeMultiValue", "values", "multiValueTransform", "multiValuePropOptions", "parseViewValue", "uniqueTrimmed", "values", "item", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_label", "_init_extra_label", "_init_disabled", "_init_extra_disabled", "_init_selectionMode", "_init_extra_selectionMode", "_init_embedded", "_init_extra_embedded", "_init_bordered", "_init_extra_bordered", "_init_changeEvent", "_init_extra_changeEvent", "_applyDecs", "n", "r", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "b", "e", "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", "multiValuePropOptions", "bindTo", "mode", "event", "onUpdated", "onEvent", "uniqueId", "list", "syncFieldLabel", "values", "option", "tabStop", "options", "selected", "getListboxOptionValue", "isSelected", "value", "event2", "current", "result", "navigateRovingTabindex", "jsx", "jsxs", "cx", "parts", "jsx", "RuiIconCheck", "className", "size", "props", "jsx", "cx", "RuiListboxOption", "value", "label", "children", "className", "disabled", "props", "jsx", "cx", "RuiListboxOptionIndicator", "RuiIconCheck", "listboxIsBordered", "embedded", "bordered", "ListboxShell", "selectionMode", "RuiListbox", "options", "isBordered", "selectedValues", "parseViewValue", "selected", "_RuiListbox", "option", "jsxs"]
7
7
  }
@@ -1,6 +1,5 @@
1
1
  import type { JsxCustomElementAttributes, JsxElementProps, JsxRenderable } from '@ecopages/jsx';
2
- import type { RuiListbox as RuiListboxElement, RuiListboxProps } from './listbox.script';
3
- import './listbox.script';
2
+ import { RuiListbox as RuiListboxElement, type RuiListboxProps } from './listbox.script';
4
3
  export type RuiListboxOptionProps = JsxElementProps<HTMLDivElement> & {
5
4
  value: string;
6
5
  /** Text used for accessibility and parent display when selected. Defaults to `children` text. */
@@ -1,3 +1,4 @@
1
+ import type { JSX_PROPS } from '@ecopages/jsx';
1
2
  import { RadiantElement } from '@ecopages/radiant';
2
3
  import type { EventEmitter } from '@ecopages/radiant/tools/event-emitter';
3
4
  import { type ViewMultiValue } from '../shared/multi-value';
@@ -76,6 +77,7 @@ export type RuiListboxChangeDetail = {
76
77
  * Not form-associated. An `embedded` listbox is the parent's option surface, not a field control.
77
78
  */
78
79
  export declare class RuiListbox extends RadiantElement {
80
+ readonly [JSX_PROPS]?: RuiListboxProps;
79
81
  value: string[];
80
82
  label: string;
81
83
  disabled: boolean;
@@ -96,3 +98,8 @@ export declare class RuiListbox extends RadiantElement {
96
98
  onOptionClick(event: Event): void;
97
99
  onOptionKeydown(event: KeyboardEvent): void;
98
100
  }
101
+ declare global {
102
+ interface HTMLElementTagNameMap {
103
+ 'rui-listbox': RuiListbox;
104
+ }
105
+ }