@ecopages/radiant-ui 0.1.0-rc.7 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -3
- package/dist/components/ui/alert/alert.d.ts +2 -4
- package/dist/components/ui/alert/alert.script.d.ts +25 -15
- package/dist/components/ui/autocomplete/autocomplete.css +1 -2
- package/dist/components/ui/autocomplete/autocomplete.d.ts +8 -3
- package/dist/components/ui/autocomplete/autocomplete.script.d.ts +29 -4
- package/dist/components/ui/avatar/avatar.css +10 -8
- package/dist/components/ui/avatar/avatar.d.ts +3 -1
- package/dist/components/ui/breadcrumb/breadcrumb.d.ts +11 -11
- package/dist/components/ui/breadcrumb/breadcrumb.script.d.ts +10 -10
- package/dist/components/ui/calendar/calendar.css +10 -5
- package/dist/components/ui/calendar/calendar.script.d.ts +24 -21
- package/dist/components/ui/calendar/index.js +1 -1
- package/dist/components/ui/calendar/index.js.map +3 -3
- package/dist/components/ui/carousel/carousel-autoplay.d.ts +22 -0
- package/dist/components/ui/carousel/carousel-swipe.d.ts +17 -0
- package/dist/components/ui/carousel/carousel-window.d.ts +63 -0
- package/dist/components/ui/carousel/carousel.css +71 -18
- package/dist/components/ui/carousel/carousel.d.ts +8 -4
- package/dist/components/ui/carousel/carousel.script.d.ts +73 -40
- package/dist/components/ui/carousel/index.js +1 -1
- package/dist/components/ui/carousel/index.js.map +4 -4
- package/dist/components/ui/checkbox/checkbox.d.ts +11 -0
- package/dist/components/ui/checkbox/checkbox.script.d.ts +31 -8
- package/dist/components/ui/checkbox/index.js +1 -1
- package/dist/components/ui/checkbox/index.js.map +4 -4
- package/dist/components/ui/checkbox-group/checkbox-group.d.ts +4 -2
- package/dist/components/ui/checkbox-group/checkbox-group.script.d.ts +39 -20
- package/dist/components/ui/checkbox-group/index.js +1 -1
- package/dist/components/ui/checkbox-group/index.js.map +4 -4
- package/dist/components/ui/combobox/combobox.css +9 -1
- package/dist/components/ui/combobox/combobox.d.ts +12 -4
- package/dist/components/ui/combobox/combobox.script.d.ts +74 -25
- package/dist/components/ui/combobox/index.d.ts +2 -2
- package/dist/components/ui/combobox/index.js +1 -1
- package/dist/components/ui/combobox/index.js.map +4 -4
- package/dist/components/ui/cycle-toggle/cycle-toggle.d.ts +6 -2
- package/dist/components/ui/cycle-toggle/cycle-toggle.script.d.ts +35 -4
- package/dist/components/ui/cycle-toggle/index.js +1 -1
- package/dist/components/ui/cycle-toggle/index.js.map +3 -3
- package/dist/components/ui/date-field/date-field.css +13 -17
- package/dist/components/ui/date-field/date-field.d.ts +10 -8
- package/dist/components/ui/date-field/date-field.script.d.ts +35 -52
- package/dist/components/ui/date-field/index.js +1 -1
- package/dist/components/ui/date-field/index.js.map +4 -4
- package/dist/components/ui/date-input/date-input-segment-dom.d.ts +24 -0
- package/dist/components/ui/date-input/date-input.css +50 -0
- package/dist/components/ui/date-input/date-input.d.ts +8 -0
- package/dist/components/ui/date-input/date-input.script.d.ts +137 -0
- package/dist/components/ui/date-input/index.d.ts +2 -0
- package/dist/components/ui/date-input/index.js +2 -0
- package/dist/components/ui/date-input/index.js.map +7 -0
- package/dist/components/ui/date-range-picker/date-range-picker.css +18 -19
- package/dist/components/ui/date-range-picker/date-range-picker.d.ts +11 -9
- package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +42 -51
- package/dist/components/ui/date-range-picker/index.js +1 -1
- package/dist/components/ui/date-range-picker/index.js.map +4 -4
- package/dist/components/ui/dialog/dialog.css +18 -14
- package/dist/components/ui/dialog/dialog.d.ts +6 -0
- package/dist/components/ui/dialog/dialog.script.d.ts +43 -10
- package/dist/components/ui/dialog/index.js +1 -1
- package/dist/components/ui/dialog/index.js.map +4 -4
- package/dist/components/ui/disclosure/disclosure-group.script.d.ts +19 -3
- package/dist/components/ui/disclosure/disclosure.css +3 -6
- package/dist/components/ui/disclosure/disclosure.d.ts +23 -7
- package/dist/components/ui/disclosure/disclosure.script.d.ts +31 -7
- package/dist/components/ui/disclosure/index.d.ts +1 -1
- package/dist/components/ui/disclosure/index.js +1 -1
- package/dist/components/ui/disclosure/index.js.map +4 -4
- package/dist/components/ui/field/field-description.d.ts +1 -0
- package/dist/components/ui/field/field-error.d.ts +2 -2
- package/dist/components/ui/field/field.d.ts +4 -4
- package/dist/components/ui/field/field.script.d.ts +54 -24
- package/dist/components/ui/field/index.js +1 -1
- package/dist/components/ui/field/index.js.map +4 -4
- package/dist/components/ui/form/control-protocol.d.ts +38 -1
- package/dist/components/ui/form/form-context.d.ts +3 -0
- package/dist/components/ui/form/form.d.ts +6 -0
- package/dist/components/ui/form/form.script.d.ts +29 -12
- package/dist/components/ui/form/index.d.ts +2 -1
- package/dist/components/ui/form/index.js +1 -1
- package/dist/components/ui/form/index.js.map +4 -4
- package/dist/components/ui/grid/grid.d.ts +4 -3
- package/dist/components/ui/grid/grid.script.d.ts +19 -11
- package/dist/components/ui/hover-card/hover-card.css +12 -101
- package/dist/components/ui/hover-card/hover-card.d.ts +7 -2
- package/dist/components/ui/hover-card/hover-card.script.d.ts +36 -5
- package/dist/components/ui/hover-card/index.js +1 -1
- package/dist/components/ui/hover-card/index.js.map +4 -4
- package/dist/components/ui/input/index.js +1 -1
- package/dist/components/ui/input/index.js.map +4 -4
- package/dist/components/ui/input/input.css +1 -1
- package/dist/components/ui/knob/index.js +1 -1
- package/dist/components/ui/knob/index.js.map +3 -3
- package/dist/components/ui/knob/knob.css +6 -1
- package/dist/components/ui/knob/knob.d.ts +4 -4
- package/dist/components/ui/knob/knob.script.d.ts +55 -20
- package/dist/components/ui/label/index.js +1 -1
- package/dist/components/ui/label/index.js.map +4 -4
- package/dist/components/ui/label/label.d.ts +2 -1
- package/dist/components/ui/listbox/index.d.ts +2 -2
- package/dist/components/ui/listbox/index.js +1 -1
- package/dist/components/ui/listbox/index.js.map +4 -4
- package/dist/components/ui/listbox/listbox.css +14 -0
- package/dist/components/ui/listbox/listbox.d.ts +16 -2
- package/dist/components/ui/listbox/listbox.script.d.ts +55 -12
- package/dist/components/ui/menu-button/index.js +1 -1
- package/dist/components/ui/menu-button/index.js.map +4 -4
- package/dist/components/ui/menu-button/menu-button.d.ts +2 -2
- package/dist/components/ui/menu-button/menu-button.script.d.ts +30 -27
- package/dist/components/ui/menubar/index.js +1 -1
- package/dist/components/ui/menubar/index.js.map +4 -4
- package/dist/components/ui/menubar/menubar.script.d.ts +41 -15
- package/dist/components/ui/meter/index.js +1 -1
- package/dist/components/ui/meter/index.js.map +3 -3
- package/dist/components/ui/meter/meter.css +27 -2
- package/dist/components/ui/meter/meter.script.d.ts +19 -14
- package/dist/components/ui/navigation-menu/index.d.ts +1 -1
- package/dist/components/ui/navigation-menu/index.js +1 -1
- package/dist/components/ui/navigation-menu/index.js.map +4 -4
- package/dist/components/ui/navigation-menu/navigation-menu.css +32 -34
- package/dist/components/ui/navigation-menu/navigation-menu.d.ts +34 -5
- package/dist/components/ui/navigation-menu/navigation-menu.script.d.ts +93 -12
- package/dist/components/ui/number-field/index.js +1 -1
- package/dist/components/ui/number-field/index.js.map +4 -4
- package/dist/components/ui/number-field/number-field.css +1 -1
- package/dist/components/ui/number-field/number-field.d.ts +8 -19
- package/dist/components/ui/number-field/number-field.script.d.ts +30 -9
- package/dist/components/ui/pagination/index.d.ts +1 -1
- package/dist/components/ui/pagination/index.js +1 -1
- package/dist/components/ui/pagination/index.js.map +3 -3
- package/dist/components/ui/pagination/pagination.css +50 -13
- package/dist/components/ui/pagination/pagination.d.ts +33 -9
- package/dist/components/ui/pagination/pagination.script.d.ts +29 -9
- package/dist/components/ui/popover/index.js +1 -1
- package/dist/components/ui/popover/index.js.map +4 -4
- package/dist/components/ui/popover/popover.d.ts +17 -1
- package/dist/components/ui/popover/popover.script.d.ts +57 -9
- package/dist/components/ui/radio-group/index.js +1 -1
- package/dist/components/ui/radio-group/index.js.map +4 -4
- package/dist/components/ui/radio-group/radio-group.d.ts +2 -2
- package/dist/components/ui/radio-group/radio-group.script.d.ts +35 -16
- package/dist/components/ui/select/index.d.ts +2 -2
- package/dist/components/ui/select/index.js +1 -1
- package/dist/components/ui/select/index.js.map +4 -4
- package/dist/components/ui/select/select.css +8 -6
- package/dist/components/ui/select/select.d.ts +18 -9
- package/dist/components/ui/select/select.script.d.ts +74 -26
- package/dist/components/ui/shared/calendar-popover-behavior.d.ts +27 -0
- package/dist/components/ui/shared/control-toggle.css +8 -4
- package/dist/components/ui/shared/field-label.d.ts +5 -0
- package/dist/components/ui/shared/listbox-host-controller.d.ts +41 -0
- package/dist/components/ui/shared/listbox-option.d.ts +4 -0
- package/dist/components/ui/shared/multi-value.d.ts +23 -1
- package/dist/components/ui/shared/numeric-range.d.ts +8 -0
- package/dist/components/ui/shared/popover.css +10 -99
- package/dist/components/ui/sidebar/index.d.ts +2 -1
- package/dist/components/ui/sidebar/index.js +1 -1
- package/dist/components/ui/sidebar/index.js.map +4 -4
- package/dist/components/ui/sidebar/sidebar-trigger.d.ts +12 -0
- package/dist/components/ui/sidebar/sidebar-trigger.script.d.ts +52 -31
- package/dist/components/ui/sidebar/sidebar.css +67 -61
- package/dist/components/ui/sidebar/sidebar.d.ts +9 -4
- package/dist/components/ui/sidebar/sidebar.script.d.ts +42 -20
- package/dist/components/ui/slider/index.js +1 -1
- package/dist/components/ui/slider/index.js.map +4 -4
- package/dist/components/ui/slider/slider.css +5 -5
- package/dist/components/ui/slider/slider.d.ts +20 -10
- package/dist/components/ui/slider/slider.script.d.ts +103 -27
- package/dist/components/ui/switch/index.js +1 -1
- package/dist/components/ui/switch/index.js.map +4 -4
- package/dist/components/ui/switch/switch.css +28 -22
- package/dist/components/ui/switch/switch.d.ts +13 -0
- package/dist/components/ui/switch/switch.script.d.ts +34 -8
- package/dist/components/ui/table/index.js +1 -1
- package/dist/components/ui/table/index.js.map +4 -4
- package/dist/components/ui/table/table.d.ts +9 -7
- package/dist/components/ui/table/table.script.d.ts +55 -12
- package/dist/components/ui/tabs/tabs.css +18 -12
- package/dist/components/ui/tabs/tabs.d.ts +7 -4
- package/dist/components/ui/tabs/tabs.script.d.ts +39 -9
- package/dist/components/ui/tag-group/index.js +1 -1
- package/dist/components/ui/tag-group/index.js.map +4 -4
- package/dist/components/ui/tag-group/tag-group.d.ts +19 -7
- package/dist/components/ui/tag-group/tag-group.script.d.ts +58 -10
- package/dist/components/ui/textarea/index.js +1 -1
- package/dist/components/ui/textarea/index.js.map +4 -4
- package/dist/components/ui/textarea/textarea.css +1 -1
- package/dist/components/ui/toast/index.js +1 -1
- package/dist/components/ui/toast/index.js.map +4 -4
- package/dist/components/ui/toast/toast.css +35 -32
- package/dist/components/ui/toast/toast.script.d.ts +17 -31
- package/dist/components/ui/toast/toaster.script.d.ts +24 -12
- package/dist/components/ui/toc/toc.script.d.ts +19 -8
- package/dist/components/ui/toolbar/toolbar.d.ts +5 -0
- package/dist/components/ui/toolbar/toolbar.script.d.ts +24 -4
- package/dist/components/ui/tooltip/index.js +1 -1
- package/dist/components/ui/tooltip/index.js.map +4 -4
- package/dist/components/ui/tooltip/tooltip.css +14 -94
- package/dist/components/ui/tooltip/tooltip.d.ts +7 -0
- package/dist/components/ui/tooltip/tooltip.script.d.ts +36 -6
- package/dist/components/ui/tree/tree.d.ts +4 -3
- package/dist/components/ui/tree/tree.script.d.ts +28 -15
- package/dist/components/ui/treegrid/treegrid.d.ts +5 -3
- package/dist/components/ui/treegrid/treegrid.script.d.ts +33 -14
- package/dist/components/ui/window-splitter/index.d.ts +1 -1
- package/dist/components/ui/window-splitter/index.js +1 -1
- package/dist/components/ui/window-splitter/index.js.map +3 -3
- package/dist/components/ui/window-splitter/window-splitter.d.ts +10 -1
- package/dist/components/ui/window-splitter/window-splitter.script.d.ts +26 -8
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +4 -4
- package/dist/lib/icons/check.d.ts +3 -0
- package/dist/lib/icons/chevron-down.d.ts +0 -1
- package/dist/lib/icons/index.d.ts +2 -0
- package/dist/lib/icons/x.d.ts +5 -0
- package/dist/lib/intl-date/index.d.ts +4 -2
- package/dist/lib/intl-date/segment-editing.d.ts +34 -0
- package/dist/lib/intl-date/segments.d.ts +26 -4
- package/dist/lib/non-empty.d.ts +6 -0
- package/dist/lib/unique-id.d.ts +11 -0
- package/dist/lib/viewport/breakpoints.d.ts +6 -0
- package/dist/lib/viewport/mobile-layout.d.ts +15 -0
- package/dist/styles/primitives.css +14 -11
- package/dist/styles/radiant-ui-core.css +10 -0
- package/dist/styles/radiant-ui.css +40 -11
- package/dist/styles/style-dependencies.json +38 -13
- package/dist/styles/styles.css +485 -252
- package/dist/styles/tailwind.css +40 -101
- package/dist/styles/tokens/presets/colors/aurora.css +2 -0
- package/dist/styles/tokens/presets/colors/basalt.css +2 -0
- package/dist/styles/tokens/presets/colors/ember.css +2 -0
- package/dist/styles/tokens/presets/colors/glacier.css +2 -0
- package/dist/styles/tokens/semantic.css +1 -0
- package/dist/styles/tokens/system.css +11 -3
- package/dist/styles/tokens/typography/default.css +8 -0
- package/package.json +27 -13
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/ui/combobox/combobox.script.tsx", "../../../../src/lib/text-filter.ts", "../../../../src/components/ui/shared/field-label.ts", "../../../../src/components/ui/shared/floating-position.ts", "../../../../src/components/ui/shared/portal.ts", "../../../../src/components/ui/shared/popover-controller.ts", "../../../../src/components/ui/shared/collection-navigation.ts", "../../../../src/components/ui/shared/listbox-popover-behavior.ts", "../../../../src/components/ui/combobox/combobox.tsx", "../../../../src/aria.ts", "../../../../src/lib/cx.ts", "../../../../src/lib/icons/chevron-down.tsx", "../../../../src/components/ui/autocomplete/autocomplete.tsx", "../../../../src/components/ui/listbox/listbox.tsx"],
|
|
4
|
-
"sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_label, _init_extra_label, _init_placeholder, _init_extra_placeholder, _init_disabled, _init_extra_disabled, _init_openOnFocus, _init_extra_openOnFocus, _init_changeEvent, _init_extra_changeEvent, _init_rootTarget, _init_extra_rootTarget;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { RadiantElement, customElement, event, onEvent, onUpdated, prop, query } from \"@ecopages/radiant\";\nimport { textContains } from \"@/lib/text-filter\";\nimport { findAssociatedLabel, syncFieldLabel } from \"../shared/field-label\";\nimport { ListboxPopoverBehavior } from \"../shared/listbox-popover-behavior\";\nlet _RuiCombobox;\nclass RuiCombobox extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_label, _init_extra_label, _init_placeholder, _init_extra_placeholder, _init_disabled, _init_extra_disabled, _init_openOnFocus, _init_extra_openOnFocus, _init_changeEvent, _init_extra_changeEvent, _init_rootTarget, _init_extra_rootTarget, _initProto],\n c: [_RuiCombobox, _initClass]\n } = _applyDecs(this, [customElement(\"rui-combobox\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"value\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"placeholder\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"openOnFocus\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [query({\n ref: \"root\"\n }), 0, \"rootTarget\"], [onUpdated([\"value\", \"label\", \"placeholder\", \"disabled\", \"openOnFocus\"]), 2, \"onPropsUpdated\"], [onEvent({\n ref: \"root\",\n type: \"focusin\"\n }), 2, \"onRootFocusIn\"], [onEvent({\n ref: \"root\",\n type: \"input\"\n }), 2, \"onRootInput\"], [onEvent({\n ref: \"root\",\n type: \"keydown\",\n options: {\n capture: true\n }\n }), 2, \"onRootKeydown\"], [onEvent({\n selector: \"[data-combobox-trigger]\",\n type: \"click\"\n }), 2, \"onTriggerClick\"], [onEvent({\n selector: '[data-combobox-listbox] [role=\"option\"]',\n type: \"pointerover\"\n }), 2, \"onOptionPointerOver\"], [onEvent({\n selector: '[data-combobox-listbox] [role=\"option\"]',\n type: \"mousedown\"\n }), 2, \"onOptionMouseDown\"], [onEvent({\n selector: '[data-combobox-listbox] [role=\"option\"]',\n type: \"click\"\n }), 2, \"onOptionClick\"], [onEvent({\n ref: \"root\",\n type: \"focusout\"\n }), 2, \"onFocusOut\"], [onEvent({\n document: true,\n type: \"pointerdown\"\n }), 2, \"onDocumentPointerDown\"]], 0, void 0, RadiantElement));\n }\n constructor(...args) {\n super(...args);\n _init_extra_rootTarget(this);\n }\n value = (_initProto(this), _init_value(this));\n label = (_init_extra_value(this), _init_label(this));\n placeholder = (_init_extra_label(this), _init_placeholder(this));\n disabled = (_init_extra_placeholder(this), _init_disabled(this));\n openOnFocus = (_init_extra_disabled(this), _init_openOnFocus(this));\n changeEvent = (_init_extra_openOnFocus(this), _init_changeEvent(this));\n open = (_init_extra_changeEvent(this), false);\n skipNextFocusOpen = false;\n uid = Math.random().toString(36).slice(2, 9);\n listboxBehavior = new ListboxPopoverBehavior({\n getAnchor: () => this.rootTarget,\n getFloating: () => this.getListboxPopup(),\n getOpen: () => this.open,\n getOptions: () => this.getOptions(),\n getActiveDescendantHost: () => this.getInput(),\n getOptionIdPrefix: () => `rui-combobox-option-${this.uid}`\n });\n rootTarget = _init_rootTarget(this);\n get listboxId() {\n return `rui-combobox-list-${this.uid}`;\n }\n get inputId() {\n return `rui-combobox-input-${this.uid}`;\n }\n getInput() {\n return this.querySelector(\"[data-combobox-input]\");\n }\n getTrigger() {\n return this.querySelector(\"[data-combobox-trigger]\");\n }\n getListboxPopup() {\n return this.querySelector(\"[data-combobox-listbox]\");\n }\n getListbox() {\n const host = this.querySelector(\"rui-listbox\");\n if (host instanceof HTMLElement) {\n return host.querySelector('[role=\"listbox\"]') ?? host;\n }\n return this.getListboxPopup();\n }\n getListboxHost() {\n return this.querySelector(\"rui-listbox\");\n }\n getOptions() {\n const listbox = this.getListbox();\n if (!listbox) {\n return [];\n }\n return Array.from(listbox.querySelectorAll('[role=\"option\"]'));\n }\n getOptionLabel(option) {\n return option.getAttribute(\"data-label\") || option.textContent?.trim() || \"\";\n }\n ensureOptionIds() {\n this.listboxBehavior.ensureOptionIds();\n }\n getAccessibleName() {\n const labelElement = findAssociatedLabel(this);\n return labelElement?.textContent?.trim() || this.label || \"Suggestions\";\n }\n isComboboxInput(target) {\n return target instanceof HTMLElement && target.localName === \"input\" && target.hasAttribute(\"data-combobox-input\");\n }\n syncLabel() {\n const input = this.getInput();\n syncFieldLabel(this, input, {\n controlId: this.inputId,\n label: this.label,\n labelId: `rui-combobox-label-${this.uid}`\n });\n }\n syncTrigger() {\n const trigger = this.getTrigger();\n const listbox = this.getListbox();\n if (!trigger || !listbox) {\n return;\n }\n trigger.setAttribute(\"aria-expanded\", String(this.open));\n trigger.setAttribute(\"aria-controls\", listbox.id || this.listboxId);\n trigger.tabIndex = -1;\n if (this.disabled) {\n trigger.disabled = true;\n }\n }\n syncInput() {\n const input = this.getInput();\n const listbox = this.getListbox();\n const popup = this.getListboxPopup();\n if (!input || !listbox) {\n return;\n }\n if (!input.id) {\n input.id = this.inputId;\n }\n if (!listbox.id) {\n listbox.id = this.listboxId;\n }\n input.setAttribute(\"role\", \"combobox\");\n input.setAttribute(\"aria-haspopup\", \"listbox\");\n input.setAttribute(\"aria-autocomplete\", \"list\");\n input.setAttribute(\"aria-expanded\", String(this.open));\n input.setAttribute(\"aria-controls\", this.listboxId);\n listbox.setAttribute(\"aria-label\", this.getAccessibleName());\n if (popup) {\n popup.removeAttribute(\"role\");\n popup.removeAttribute(\"aria-label\");\n }\n if (this.placeholder && !input.placeholder) {\n input.placeholder = this.placeholder;\n }\n if (this.disabled) {\n input.disabled = true;\n }\n this.syncTrigger();\n }\n syncListboxHost() {\n const host = this.getListboxHost();\n if (!host) {\n return;\n }\n host.embedded = true;\n host.value = this.value;\n }\n syncOptionSelection() {\n for (const option of this.getOptions()) {\n const optionValue = option.getAttribute(\"data-value\") || this.getOptionLabel(option);\n const isSelected = optionValue === this.value && this.value !== \"\";\n option.setAttribute(\"aria-selected\", String(isSelected));\n }\n }\n setVisualFocusCombobox() {\n this.listboxBehavior.clearActiveOption();\n this.syncOptionSelection();\n }\n setOpen(next, options = {}) {\n const activate = options.activate ?? \"none\";\n this.open = next;\n const input = this.getInput();\n const popup = this.getListboxPopup();\n if (!input || !popup) {\n return;\n }\n input.setAttribute(\"aria-expanded\", String(next));\n popup.toggleAttribute(\"hidden\", !next);\n this.syncTrigger();\n if (!next) {\n this.listboxBehavior.clearActiveOption();\n this.listboxBehavior.syncPopoverPosition();\n return;\n }\n this.ensureOptionIds();\n this.listboxBehavior.syncPopoverPosition();\n if (activate === \"first\") {\n const visible = this.listboxBehavior.getVisibleOptions();\n this.listboxBehavior.setActiveOption(visible.length ? 0 : -1);\n return;\n }\n if (activate === \"last\") {\n const visible = this.listboxBehavior.getVisibleOptions();\n this.listboxBehavior.setActiveOption(visible.length ? visible.length - 1 : -1);\n return;\n }\n this.listboxBehavior.clearActiveOption();\n }\n getAutocomplete() {\n return this.querySelector(\"rui-autocomplete\");\n }\n syncAutocompleteFilter() {\n const autocomplete = this.getAutocomplete();\n if (autocomplete) {\n autocomplete.syncFilter();\n return;\n }\n const query2 = this.getInput()?.value ?? \"\";\n for (const option of this.getOptions()) {\n const matches = textContains(this.getOptionLabel(option), query2, \"base\");\n option.hidden = query2.trim() !== \"\" && !matches;\n }\n }\n /** Restores the unfiltered collection when arrow navigation has no match to enter. */\n showAllOptions() {\n for (const option of this.getOptions()) {\n option.hidden = false;\n }\n }\n syncFilter() {\n this.syncAutocompleteFilter();\n }\n select(option) {\n if (option.getAttribute(\"aria-disabled\") === \"true\") {\n return;\n }\n const value = option.getAttribute(\"data-value\") || this.getOptionLabel(option);\n const label = this.getOptionLabel(option) || value;\n this.value = value;\n const input = this.getInput();\n if (input) {\n input.value = label;\n }\n this.changeEvent.emit({\n value\n });\n this.syncOptionSelection();\n this.skipNextFocusOpen = true;\n this.setOpen(false);\n input?.focus();\n }\n syncFromValue() {\n const input = this.getInput();\n if (!input) {\n return;\n }\n const match = this.getOptions().find(option => option.getAttribute(\"data-value\") === this.value);\n const label = match ? this.getOptionLabel(match) : this.value || \"\";\n input.value = label;\n }\n initialize() {\n this.ensureOptionIds();\n this.syncLabel();\n this.syncInput();\n this.syncListboxHost();\n this.syncFromValue();\n this.syncOptionSelection();\n this.setOpen(false);\n }\n onConnected() {\n this.initialize();\n }\n disconnectedCallback() {\n this.listboxBehavior.destroy();\n super.disconnectedCallback();\n }\n onPropsUpdated() {\n this.syncLabel();\n this.syncInput();\n this.syncListboxHost();\n this.syncFromValue();\n this.syncOptionSelection();\n }\n onRootFocusIn(event2) {\n if (!this.isComboboxInput(event2.target)) {\n return;\n }\n if (this.skipNextFocusOpen) {\n this.skipNextFocusOpen = false;\n return;\n }\n if (!this.openOnFocus) {\n return;\n }\n this.syncFilter();\n this.setOpen(true);\n this.setVisualFocusCombobox();\n }\n onRootInput(event2) {\n if (!this.isComboboxInput(event2.target)) {\n return;\n }\n const input = event2.target;\n this.syncFilter();\n if (input.value.trim() !== \"\" && this.listboxBehavior.getVisibleOptions().length) {\n this.setOpen(true);\n } else if (input.value.trim() === \"\" && this.openOnFocus) {\n this.setOpen(true);\n } else if (input.value.trim() === \"\" || !this.listboxBehavior.getVisibleOptions().length) {\n this.setOpen(false);\n }\n this.setVisualFocusCombobox();\n }\n onRootKeydown(event2) {\n if (!this.isComboboxInput(event2.target)) {\n return;\n }\n this.handleInputKeydown(event2);\n }\n handleInputKeydown(event2) {\n if (event2.key === \"Home\") {\n const input = this.getInput();\n if (!input) {\n return;\n }\n event2.preventDefault();\n input.setSelectionRange(0, 0);\n this.setVisualFocusCombobox();\n return;\n }\n if (event2.key === \"End\") {\n const input = this.getInput();\n if (!input) {\n return;\n }\n event2.preventDefault();\n const length = input.value.length;\n input.setSelectionRange(length, length);\n this.setVisualFocusCombobox();\n return;\n }\n if (event2.key === \"ArrowDown\" || event2.key === \"ArrowUp\") {\n this.syncFilter();\n if (!this.listboxBehavior.getVisibleOptions().length) {\n this.showAllOptions();\n }\n }\n this.listboxBehavior.handleKeydown(event2, {\n isOpen: this.open,\n canUseSpace: false,\n closesOnTab: true,\n enterWhenClosed: \"ignore\",\n enterWithoutActive: \"close\",\n onOpen: (activation = \"none\") => {\n this.syncFilter();\n this.setOpen(true, {\n activate: activation\n });\n },\n onClose: () => this.setOpen(false),\n onSelectActive: () => {\n const option = this.listboxBehavior.getVisibleOptions()[this.listboxBehavior.activeOptionIndex];\n if (option) {\n this.select(option);\n }\n },\n onEscapeWhenClosed: () => {\n const input = this.getInput();\n if (input && input.value) {\n input.value = \"\";\n this.value = \"\";\n this.changeEvent.emit({\n value: \"\"\n });\n this.syncFilter();\n }\n }\n });\n }\n onTriggerClick(event2) {\n event2.preventDefault();\n const input = this.getInput();\n if (!input || input.disabled) {\n return;\n }\n if (this.open) {\n this.skipNextFocusOpen = true;\n this.setOpen(false);\n } else {\n this.syncFilter();\n this.setOpen(true);\n this.setVisualFocusCombobox();\n }\n input.focus();\n }\n onOptionPointerOver(event2) {\n if (!this.open) {\n return;\n }\n const option = event2.target.closest('[role=\"option\"]');\n if (!option || option.getAttribute(\"aria-disabled\") === \"true\" || option.hidden) {\n return;\n }\n const visible = this.listboxBehavior.getVisibleOptions();\n const index = visible.indexOf(option);\n if (index >= 0) {\n this.listboxBehavior.setActiveOption(index);\n }\n }\n onOptionMouseDown(event2) {\n event2.preventDefault();\n }\n onOptionClick(event2) {\n const option = event2.target.closest('[role=\"option\"]');\n if (option) {\n this.select(option);\n }\n }\n onFocusOut(event2) {\n if (!this.listboxBehavior.shouldDismissFocus(event2.relatedTarget)) {\n return;\n }\n this.setOpen(false);\n }\n onDocumentPointerDown(event2) {\n if (!this.open) {\n return;\n }\n if (!this.listboxBehavior.shouldDismissPointer(event2.target)) {\n return;\n }\n this.setOpen(false);\n }\n static {\n _initClass();\n }\n}\nexport { _RuiCombobox as RuiCombobox };", "export function textContains(text, query, sensitivity = \"base\") {\n if (!query) {\n return true;\n }\n if (sensitivity === \"case\") {\n return text.includes(query);\n }\n const collator = new Intl.Collator(void 0, {\n sensitivity: sensitivity === \"accent\" ? \"accent\" : \"base\",\n usage: \"search\"\n });\n for (let index = 0; index <= text.length - query.length; index += 1) {\n const slice = text.slice(index, index + query.length);\n if (collator.compare(slice, query) === 0) {\n return true;\n }\n }\n return false;\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], label.rui-label\") ?? null;\n}\nexport function syncFieldLabel(owner, control, options) {\n if (!control || control.hasAttribute(\"data-rui-field-managed\")) {\n return;\n }\n const labelElement = findAssociatedLabel(owner);\n if (labelElement) {\n if (!labelElement.id) {\n labelElement.id = options.labelId;\n }\n if (!labelElement.htmlFor) {\n labelElement.htmlFor = options.controlId;\n }\n control.setAttribute(\"aria-labelledby\", labelElement.id);\n control.removeAttribute(\"aria-label\");\n return;\n }\n if (options.label) {\n control.setAttribute(\"aria-label\", options.label);\n control.removeAttribute(\"aria-labelledby\");\n return;\n }\n control.removeAttribute(\"aria-label\");\n control.removeAttribute(\"aria-labelledby\");\n}", "const OPPOSITE = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n};\nconst DEFAULT_VIEWPORT_PADDING = 8;\nfunction parsePlacement(placement) {\n const dash = placement.indexOf(\"-\");\n if (dash === -1) return {\n side: placement,\n align: \"center\"\n };\n const side = placement.slice(0, dash);\n const align = placement.slice(dash + 1);\n return {\n side,\n align: align === \"start\" || align === \"end\" ? align : \"center\"\n };\n}\nfunction primaryAxis(side) {\n return side === \"top\" || side === \"bottom\" ? \"y\" : \"x\";\n}\nfunction coordsFor(anchor, size, side, align, gap) {\n const {\n width,\n height\n } = size;\n let x = 0;\n let y = 0;\n switch (side) {\n case \"top\":\n y = anchor.top - height - gap;\n break;\n case \"bottom\":\n y = anchor.bottom + gap;\n break;\n case \"left\":\n x = anchor.left - width - gap;\n break;\n case \"right\":\n x = anchor.right + gap;\n break;\n }\n if (primaryAxis(side) === \"y\") {\n if (align === \"start\") x = anchor.left;else if (align === \"end\") x = anchor.right - width;else x = anchor.left + (anchor.width - width) / 2;\n } else {\n if (align === \"start\") y = anchor.top;else if (align === \"end\") y = anchor.bottom - height;else y = anchor.top + (anchor.height - height) / 2;\n }\n return {\n x,\n y\n };\n}\nfunction overflowOnPrimary(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return Math.max(0, padding - coords.y);\n if (side === \"bottom\") return Math.max(0, coords.y + size.height - (vh - padding));\n if (side === \"left\") return Math.max(0, padding - coords.x);\n return Math.max(0, coords.x + size.width - (vw - padding));\n}\nfunction freeSpaceOnSide(anchor, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return anchor.top - padding - size.height;\n if (side === \"bottom\") return vh - padding - size.height - anchor.bottom;\n if (side === \"left\") return anchor.left - padding - size.width;\n return vw - padding - size.width - anchor.right;\n}\nfunction toPlacement(side, align) {\n if (align === \"center\") {\n return side;\n }\n return `${side}-${align}`;\n}\nfunction clampCrossAxis(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (primaryAxis(side) === \"y\") {\n const maxX = Math.max(padding, vw - padding - size.width);\n return {\n x: Math.min(Math.max(coords.x, padding), maxX),\n y: coords.y\n };\n }\n const maxY = Math.max(padding, vh - padding - size.height);\n return {\n x: coords.x,\n y: Math.min(Math.max(coords.y, padding), maxY)\n };\n}\nexport function computeFloatingCoords(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n return computeFloatingPosition(anchor, size, placement, gap, viewport).coords;\n}\nexport function computeFloatingPosition(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n const {\n side: preferred,\n align\n } = parsePlacement(placement);\n const preferredCoords = coordsFor(anchor, size, preferred, align, gap);\n const preferredOverflow = overflowOnPrimary(preferredCoords, size, preferred, viewport);\n let side = preferred;\n let coords = preferredCoords;\n if (preferredOverflow > 0) {\n const flipped = OPPOSITE[preferred];\n const flippedCoords = coordsFor(anchor, size, flipped, align, gap);\n const preferredFree = freeSpaceOnSide(anchor, size, preferred, viewport);\n const flippedFree = freeSpaceOnSide(anchor, size, flipped, viewport);\n if (flippedFree > preferredFree) {\n side = flipped;\n coords = flippedCoords;\n }\n }\n return {\n coords: clampCrossAxis(coords, size, side, viewport),\n placement: toPlacement(side, align)\n };\n}\nexport function applyFloatingPosition(anchor, floating, placement, gap, options = {}) {\n const {\n coords,\n placement: resolved\n } = computeFloatingPosition(anchor.getBoundingClientRect(), {\n width: floating.offsetWidth,\n height: floating.offsetHeight\n }, placement, gap);\n Object.assign(floating.style, {\n position: \"fixed\",\n left: `${coords.x}px`,\n top: `${coords.y}px`,\n right: \"auto\",\n bottom: \"auto\",\n visibility: \"visible\"\n });\n if (options.matchAnchorWidth) {\n floating.style.width = `${anchor.offsetWidth}px`;\n }\n floating.setAttribute(\"data-placement\", resolved);\n return resolved;\n}\nexport function attachFloating({\n anchor,\n floating,\n getPlacement,\n gap,\n matchAnchorWidth\n}) {\n const update = () => {\n if (floating.hidden) return;\n applyFloatingPosition(anchor, floating, getPlacement(), gap, {\n matchAnchorWidth\n });\n };\n update();\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n const observer = new ResizeObserver(update);\n observer.observe(anchor);\n observer.observe(floating);\n return () => {\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n observer.disconnect();\n };\n}", "export function mountPortal(node, container = document.body) {\n const parent = node.parentNode;\n if (!parent) {\n return {\n unmount: () => {}\n };\n }\n const placeholder = document.createComment(\"rui-portal\");\n parent.insertBefore(placeholder, node);\n container.appendChild(node);\n return {\n unmount: () => {\n const restoreParent = placeholder.parentNode;\n if (!restoreParent) {\n return;\n }\n restoreParent.insertBefore(node, placeholder);\n placeholder.remove();\n }\n };\n}", "import { attachFloating } from \"./floating-position\";\nimport { mountPortal } from \"./portal\";\nexport function popoverContains(anchor, floating, node) {\n if (!node) {\n return false;\n }\n return Boolean(anchor?.contains(node) || floating?.contains(node));\n}\nexport function shouldDismissPopoverFocus(anchor, floating, relatedTarget) {\n if (!(relatedTarget instanceof Node)) {\n return true;\n }\n return !popoverContains(anchor, floating, relatedTarget);\n}\nexport function shouldDismissPopoverPointer(anchor, floating, target) {\n return !popoverContains(anchor, floating, target);\n}\nexport class PopoverController {\n config;\n cleanupFloating = null;\n portalHandle = null;\n floatingElement = null;\n constructor(config) {\n this.config = config;\n }\n updateConfig(patch) {\n this.config = {\n ...this.config,\n ...patch\n };\n }\n sync() {\n const floating = this.resolveFloating();\n if (!floating) {\n return;\n }\n const open = this.config.getOpen();\n if (!open) {\n this.teardown();\n floating.toggleAttribute(\"hidden\", true);\n return;\n }\n const anchor = this.config.getAnchor();\n if (!anchor) {\n return;\n }\n floating.toggleAttribute(\"hidden\", false);\n const usePortal = this.config.portal !== false;\n if (usePortal) {\n if (!this.portalHandle) {\n this.portalHandle = mountPortal(floating, this.config.portalContainer ?? document.body);\n }\n } else if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n this.teardownFloating();\n this.cleanupFloating = attachFloating({\n anchor,\n floating,\n getPlacement: this.config.getPlacement,\n gap: this.config.gap ?? 8,\n matchAnchorWidth: this.config.matchAnchorWidth\n });\n }\n contains(node) {\n return popoverContains(this.config.getAnchor(), this.resolveFloating(), node);\n }\n getFloatingElement() {\n return this.resolveFloating();\n }\n teardown() {\n this.teardownFloating();\n if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n }\n destroy() {\n this.teardown();\n this.floatingElement = null;\n }\n resolveFloating() {\n const configuredFloating = this.config.getFloating();\n if (configuredFloating) {\n this.floatingElement = configuredFloating;\n }\n return configuredFloating ?? this.floatingElement;\n }\n teardownFloating() {\n this.cleanupFloating?.();\n this.cleanupFloating = null;\n }\n}", "export function getVisibleCollectionOptions(options) {\n return options.filter(option => !option.hidden && option.getAttribute(\"aria-disabled\") !== \"true\");\n}\nexport function wrapCollectionIndex(index, direction, length) {\n if (length === 0) {\n return -1;\n }\n if (direction === 1) {\n return index >= length - 1 ? 0 : index + 1;\n }\n return index <= 0 ? length - 1 : index - 1;\n}\nexport function clearCollectionActive(options, activeHost) {\n activeHost?.removeAttribute(\"aria-activedescendant\");\n for (const option of options) {\n option.removeAttribute(\"data-active\");\n }\n}\nexport function setCollectionActive(options, visibleOptions, index, activeHost, idPrefix) {\n clearCollectionActive(options, activeHost);\n const active = visibleOptions[index];\n if (!active || !activeHost) {\n return null;\n }\n if (!active.id) {\n active.id = `${idPrefix}-${index}`;\n }\n active.setAttribute(\"data-active\", \"true\");\n activeHost.setAttribute(\"aria-activedescendant\", active.id);\n active.scrollIntoView({\n block: \"nearest\"\n });\n return active;\n}", "import { PopoverController, shouldDismissPopoverFocus, shouldDismissPopoverPointer } from \"./popover-controller\";\nimport { clearCollectionActive, getVisibleCollectionOptions, setCollectionActive, wrapCollectionIndex } from \"./collection-navigation\";\nexport class ListboxPopoverBehavior {\n config;\n popoverController;\n activeIndex = -1;\n visualFocus = false;\n constructor(config) {\n this.config = config;\n this.popoverController = new PopoverController({\n getAnchor: config.getAnchor,\n getFloating: config.getFloating,\n getOpen: config.getOpen,\n getPlacement: () => \"bottom-start\",\n gap: 4,\n portal: false,\n matchAnchorWidth: true\n });\n }\n get activeOptionIndex() {\n return this.activeIndex;\n }\n get hasVisualFocus() {\n return this.visualFocus;\n }\n ensureOptionIds() {\n this.config.getOptions().forEach((option, index) => {\n if (!option.id) {\n option.id = `${this.config.getOptionIdPrefix()}-${index}`;\n }\n });\n }\n getVisibleOptions() {\n return getVisibleCollectionOptions(this.config.getOptions());\n }\n clearActiveOption() {\n this.activeIndex = -1;\n this.visualFocus = false;\n clearCollectionActive(this.config.getOptions(), this.config.getActiveDescendantHost());\n }\n setActiveOption(index) {\n const visible = this.getVisibleOptions();\n if (index < 0 || index >= visible.length) {\n this.clearActiveOption();\n return;\n }\n this.activeIndex = index;\n this.visualFocus = true;\n setCollectionActive(this.config.getOptions(), visible, index, this.config.getActiveDescendantHost(), this.config.getOptionIdPrefix());\n }\n moveActive(direction, onOpen) {\n const visible = this.getVisibleOptions();\n if (!visible.length) {\n return;\n }\n if (!this.config.getOpen()) {\n onOpen(direction === 1 ? \"first\" : \"last\");\n return;\n }\n if (this.visualFocus) {\n this.setActiveOption(wrapCollectionIndex(this.activeIndex, direction, visible.length));\n return;\n }\n this.setActiveOption(direction === 1 ? 0 : visible.length - 1);\n }\n /** Handles the APG keys shared by select-only and autocomplete listboxes. */\n handleKeydown(event, options) {\n if (event.ctrlKey || event.shiftKey || event.metaKey) return;\n const handler = this.keydownHandlers[event.key];\n handler?.call(this, event, options);\n }\n keydownHandlers = {\n ArrowDown: this.handleArrowKey,\n ArrowUp: this.handleArrowKey,\n Escape: this.handleEscapeKey,\n Enter: this.handleActivationKey,\n \" \": this.handleActivationKey,\n Tab: this.handleTabKey\n };\n handleArrowKey(event, options) {\n event.preventDefault();\n event.stopPropagation();\n const direction = event.key === \"ArrowDown\" ? 1 : -1;\n if (event.altKey) {\n this.handleModifiedArrow(direction, options);\n return;\n }\n this.moveActive(direction, activation => options.onOpen(activation));\n }\n handleModifiedArrow(direction, options) {\n if (direction === 1 && !options.isOpen) options.onOpen();\n if (direction === -1 && options.isOpen) options.onClose(\"arrow\");\n }\n handleEscapeKey(event, options) {\n event.preventDefault();\n if (options.isOpen) options.onClose(\"escape\");else options.onEscapeWhenClosed?.();\n }\n handleActivationKey(event, options) {\n if (event.key === \" \" && !options.canUseSpace) return;\n if (!options.isOpen && options.enterWhenClosed === \"open\") {\n event.preventDefault();\n options.onOpen();\n return;\n }\n if (!options.isOpen) return;\n if (this.hasActiveOption()) {\n event.preventDefault();\n options.onSelectActive();\n return;\n }\n if (event.key === \"Enter\" && options.enterWithoutActive === \"close\") {\n event.preventDefault();\n options.onClose(\"enter\");\n }\n }\n handleTabKey(_event, options) {\n if (!options.isOpen) return;\n if (this.hasActiveOption() && options.closesOnTab) options.onSelectActive();else options.onClose(\"tab\");\n }\n hasActiveOption() {\n return this.visualFocus && Boolean(this.getVisibleOptions()[this.activeIndex]);\n }\n syncPopoverPosition() {\n this.popoverController.sync();\n }\n shouldDismissFocus(relatedTarget) {\n return shouldDismissPopoverFocus(this.config.getAnchor(), this.popoverController.getFloatingElement(), relatedTarget);\n }\n shouldDismissPointer(target) {\n return shouldDismissPopoverPointer(this.config.getAnchor(), this.popoverController.getFloatingElement(), target);\n }\n destroy() {\n this.popoverController.destroy();\n }\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { withDefaultAriaLabel } from \"@/aria\";\nimport { cx } from \"@/lib/cx\";\nimport { RuiIconChevronDown } from \"@/lib/icons\";\nimport { RuiAutocomplete, RuiAutocompleteCollection, RuiAutocompleteEmpty } from \"../autocomplete\";\nimport { RuiListbox } from \"../listbox\";\nimport \"./combobox.script\";\nexport function RuiComboboxControl({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n class: cx(\"rui-combobox__control\", className),\n children\n });\n}\nexport function RuiComboboxInput({\n placeholder,\n disabled,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"input\", {\n ...props,\n type: \"text\",\n \"data-combobox-input\": true,\n \"data-autocomplete-input\": true,\n \"data-rui-control\": true,\n \"data-rui-control-type\": \"text\",\n class: cx(\"rui-combobox__input\", className),\n placeholder,\n disabled,\n autocomplete: \"off\"\n });\n}\nexport function RuiComboboxTrigger({\n children,\n class: className,\n aria,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"button\", {\n ...props,\n aria: withDefaultAriaLabel(aria, \"Show suggestions\"),\n type: \"button\",\n \"data-combobox-trigger\": true,\n class: cx(\"rui-control-toggle\", className),\n disabled,\n tabIndex: -1,\n children: children ?? /* @__PURE__ */jsx(RuiIconChevronDown, {})\n });\n}\nexport function RuiComboboxListbox({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-combobox-listbox\": true,\n class: cx(\"rui-combobox__listbox rui-popover rui-popover--listbox rui-floating\", className),\n children\n });\n}\nfunction ComboboxShell({\n children\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n class: \"rui-combobox\",\n \"data-ref\": \"root\",\n children\n });\n}\nexport function RuiCombobox({\n options,\n children,\n ...props\n}) {\n if (options != null) {\n return /* @__PURE__ */jsx(\"rui-combobox\", {\n ...props,\n children: /* @__PURE__ */jsxs(ComboboxShell, {\n children: [/* @__PURE__ */jsxs(RuiComboboxControl, {\n children: [/* @__PURE__ */jsx(RuiComboboxInput, {\n placeholder: props.placeholder,\n disabled: props.disabled\n }), /* @__PURE__ */jsx(RuiComboboxTrigger, {})]\n }), /* @__PURE__ */jsx(RuiComboboxListbox, {\n children: /* @__PURE__ */jsx(RuiAutocomplete, {\n children: /* @__PURE__ */jsxs(RuiAutocompleteCollection, {\n children: [/* @__PURE__ */jsx(RuiListbox, {\n embedded: true,\n options\n }), /* @__PURE__ */jsx(RuiAutocompleteEmpty, {\n children: \"No results found.\"\n })]\n })\n })\n })]\n })\n });\n }\n return /* @__PURE__ */jsx(\"rui-combobox\", {\n ...props,\n children: /* @__PURE__ */jsx(ComboboxShell, {\n children\n })\n });\n}", "export function withDefaultAriaLabel(aria, fallback) {\n if (fallback === void 0 || aria?.label !== void 0) {\n return aria;\n }\n return {\n ...aria,\n label: fallback\n };\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nexport function RuiIconChevronDown({\n class: className,\n size = \"sm\",\n ...props\n}) {\n return /* @__PURE__ */jsx(\"svg\", {\n ...props,\n class: cx(\"rui-icon\", size === \"md\" && \"rui-icon--md\", className),\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": \"true\",\n children: /* @__PURE__ */jsx(\"path\", {\n d: \"m6 9 6 6 6-6\"\n })\n });\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport \"./autocomplete.script\";\nexport function RuiAutocompleteInput({\n placeholder,\n class: className,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"input\", {\n ...props,\n type: \"search\",\n \"data-autocomplete-input\": true,\n class: cx(\"rui-autocomplete__input\", className),\n placeholder,\n disabled,\n autocomplete: \"off\"\n });\n}\nexport function RuiAutocompleteCollection({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-autocomplete-collection\": true,\n class: cx(\"rui-autocomplete__collection\", className),\n children\n });\n}\nexport function RuiAutocompleteEmpty({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-autocomplete-empty\": true,\n class: cx(\"rui-autocomplete__empty\", className),\n children\n });\n}\nfunction AutocompleteShell({\n children\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n class: \"rui-autocomplete\",\n \"data-ref\": \"root\",\n children\n });\n}\nexport function RuiAutocomplete({\n children,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-autocomplete\", {\n ...props,\n children: /* @__PURE__ */jsx(AutocompleteShell, {\n children\n })\n });\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport \"./listbox.script\";\nexport function RuiListboxOption({\n value,\n label,\n children,\n class: className,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n class: cx(\"rui-listbox__option\", className),\n role: \"option\",\n \"data-value\": value,\n \"data-label\": label,\n \"aria-disabled\": disabled ? \"true\" : void 0,\n tabindex: -1,\n children\n });\n}\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 label\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n class: cx(\"rui-listbox\", bordered && \"rui-listbox--bordered\"),\n role: \"listbox\",\n \"data-rui-control\": true,\n \"data-rui-control-type\": \"text\",\n \"aria-label\": label || void 0,\n \"aria-disabled\": disabled ? \"true\" : void 0,\n children\n });\n}\nexport function RuiListbox({\n options,\n children,\n embedded,\n bordered,\n label,\n disabled,\n ...props\n}) {\n const isBordered = listboxIsBordered(embedded, bordered);\n if (options != null) {\n return /* @__PURE__ */jsx(\"rui-listbox\", {\n ...props,\n embedded,\n bordered,\n label,\n disabled,\n children: /* @__PURE__ */jsx(ListboxShell, {\n bordered: isBordered,\n disabled,\n label,\n children: options.map(option => /* @__PURE__ */jsx(RuiListboxOption, {\n value: option.value,\n label: typeof option.label === \"string\" ? option.label : void 0,\n disabled: option.disabled,\n children: option.label\n }))\n })\n });\n }\n return /* @__PURE__ */jsx(\"rui-listbox\", {\n ...props,\n embedded,\n bordered,\n label,\n disabled,\n children: /* @__PURE__ */jsx(ListboxShell, {\n bordered: isBordered,\n disabled,\n label,\n children\n })\n });\n}"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "query", "textContains", "text", "query", "sensitivity", "collator", "index", "slice", "findAssociatedLabel", "owner", "previous", "
|
|
3
|
+
"sources": ["../../../../src/components/ui/combobox/combobox.script.tsx", "../../../../src/lib/text-filter.ts", "../../../../src/lib/unique-id.ts", "../../../../src/components/ui/shared/field-label.ts", "../../../../src/components/ui/shared/listbox-option.ts", "../../../../src/components/ui/shared/listbox-host-controller.ts", "../../../../src/components/ui/shared/floating-position.ts", "../../../../src/components/ui/shared/portal.ts", "../../../../src/components/ui/shared/popover-controller.ts", "../../../../src/components/ui/shared/collection-navigation.ts", "../../../../src/components/ui/shared/listbox-popover-behavior.ts", "../../../../src/components/ui/shared/multi-value.ts", "../../../../src/components/ui/combobox/combobox.tsx", "../../../../src/aria.ts", "../../../../src/lib/cx.ts", "../../../../src/lib/icons/check.tsx", "../../../../src/lib/icons/chevron-down.tsx", "../../../../src/lib/icons/x.tsx", "../../../../src/components/ui/autocomplete/autocomplete.script.tsx", "../../../../src/components/ui/autocomplete/autocomplete.tsx", "../../../../src/components/ui/listbox/listbox.script.tsx", "../../../../src/lib/roving-tabindex.ts", "../../../../src/components/ui/listbox/listbox.tsx", "../../../../src/components/ui/tag-group/tag-group.script.tsx", "../../../../src/components/ui/tag-group/tag-group.tsx"],
|
|
4
|
+
"sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_label, _init_extra_label, _init_placeholder, _init_extra_placeholder, _init_disabled, _init_extra_disabled, _init_selectionMode, _init_extra_selectionMode, _init_shouldCloseOnSelect, _init_extra_shouldCloseOnSelect, _init_triggerKind, _init_extra_triggerKind, _init_changeEvent, _init_extra_changeEvent, _init_rootTarget, _init_extra_rootTarget;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { RadiantElement, bindTo, customElement, event, onEvent, onUpdated, prop, query } from \"@ecopages/radiant\";\nimport { textContains } from \"@/lib/text-filter\";\nimport { uniqueId } from \"@/lib/unique-id\";\nimport { findAssociatedLabel, syncFieldLabel } from \"../shared/field-label\";\nimport { ListboxHostController } from \"../shared/listbox-host-controller\";\nimport { getListboxOptionLabel, getListboxOptionValue } from \"../shared/listbox-option\";\nimport { ListboxPopoverBehavior } from \"../shared/listbox-popover-behavior\";\nimport { multiValuePropOptions } from \"../shared/multi-value\";\nlet _RuiCombobox;\nclass RuiCombobox extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_label, _init_extra_label, _init_placeholder, _init_extra_placeholder, _init_disabled, _init_extra_disabled, _init_selectionMode, _init_extra_selectionMode, _init_shouldCloseOnSelect, _init_extra_shouldCloseOnSelect, _init_triggerKind, _init_extra_triggerKind, _init_changeEvent, _init_extra_changeEvent, _init_rootTarget, _init_extra_rootTarget, _initProto],\n c: [_RuiCombobox, _initClass]\n } = _applyDecs(this, [customElement(\"rui-combobox\")], [[prop({\n ...multiValuePropOptions,\n defaultValue: []\n }), 0, \"value\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"placeholder\"], [[prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), bindTo({\n selector: \"[data-combobox-clear]\",\n prop: \"disabled\"\n })], 0, \"disabled\"], [prop({\n type: String,\n attribute: \"selection-mode\",\n defaultValue: \"single\"\n }), 0, \"selectionMode\"], [prop({\n type: Boolean,\n attribute: \"should-close-on-select\"\n }), 0, \"shouldCloseOnSelect\"], [prop({\n type: String,\n attribute: \"trigger-kind\",\n reflect: true,\n defaultValue: \"input\"\n }), 0, \"triggerKind\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [query({\n ref: \"root\"\n }), 0, \"rootTarget\"], [onUpdated([\"value\", \"label\", \"placeholder\", \"disabled\", \"triggerKind\", \"selectionMode\", \"shouldCloseOnSelect\"]), 2, \"onPropsUpdated\"], [onEvent({\n ref: \"root\",\n type: \"focusin\"\n }), 2, \"onRootFocusIn\"], [onEvent({\n ref: \"root\",\n type: \"input\"\n }), 2, \"onRootInput\"], [onEvent({\n ref: \"root\",\n type: \"keydown\",\n options: {\n capture: true\n }\n }), 2, \"onRootKeydown\"], [onEvent({\n selector: \"[data-combobox-trigger]\",\n type: \"click\"\n }), 2, \"onTriggerClick\"], [onEvent({\n selector: '[data-combobox-listbox] [role=\"option\"]',\n type: \"pointerover\"\n }), 2, \"onOptionPointerOver\"], [onEvent({\n selector: '[data-combobox-listbox] [role=\"option\"]',\n type: \"mousedown\"\n }), 2, \"onOptionMouseDown\"], [onEvent({\n selector: '[data-combobox-listbox] [role=\"option\"]',\n type: \"click\"\n }), 2, \"onOptionClick\"], [onEvent({\n selector: \"[data-combobox-value] rui-tag-group\",\n type: \"rui-remove\"\n }), 2, \"onTagRemove\"], [onEvent({\n selector: \"[data-combobox-clear]\",\n type: \"click\"\n }), 2, \"onClearClick\"], [onEvent({\n ref: \"root\",\n type: \"focusout\"\n }), 2, \"onFocusOut\"], [onEvent({\n document: true,\n type: \"pointerdown\"\n }), 2, \"onDocumentPointerDown\"]], 0, void 0, RadiantElement));\n }\n constructor(...args) {\n super(...args);\n _init_extra_rootTarget(this);\n }\n value = (_initProto(this), _init_value(this));\n label = (_init_extra_value(this), _init_label(this));\n placeholder = (_init_extra_label(this), _init_placeholder(this));\n disabled = (_init_extra_placeholder(this), _init_disabled(this));\n selectionMode = (_init_extra_disabled(this), _init_selectionMode(this));\n shouldCloseOnSelect = (_init_extra_selectionMode(this), _init_shouldCloseOnSelect(this));\n triggerKind = (_init_extra_shouldCloseOnSelect(this), _init_triggerKind(this));\n changeEvent = (_init_extra_triggerKind(this), _init_changeEvent(this));\n open = (_init_extra_changeEvent(this), false);\n uid = uniqueId(\"rui-combobox\");\n collection = new ListboxHostController({\n getRoot: () => this,\n getSelectionMode: () => this.selectionMode,\n getValue: () => this.value,\n setValue: value => {\n this.value = value;\n },\n getPopup: () => this.getListboxPopup(),\n tagGroupSelector: \"[data-combobox-value] rui-tag-group\"\n });\n listboxBehavior = new ListboxPopoverBehavior({\n getAnchor: () => this.rootTarget,\n getFloating: () => this.getListboxPopup(),\n getOpen: () => this.open,\n getOptions: () => this.collection.getOptions(),\n getActiveDescendantHost: () => this.getInput(),\n getOptionIdPrefix: () => `${this.uid}-option`\n });\n rootTarget = _init_rootTarget(this);\n get listboxId() {\n return `${this.uid}-list`;\n }\n get inputId() {\n return `${this.uid}-input`;\n }\n isMultiple() {\n return this.selectionMode === \"multiple\";\n }\n closesOnSelect() {\n return this.shouldCloseOnSelect ?? !this.isMultiple();\n }\n getInput() {\n return this.querySelector(\"[data-combobox-input]\");\n }\n getTrigger() {\n return this.querySelector(\"[data-combobox-trigger]\");\n }\n getClear() {\n return this.querySelector(\"[data-combobox-clear]\");\n }\n getListboxPopup() {\n return this.querySelector(\"[data-combobox-listbox]\");\n }\n ensureOptionIds() {\n this.listboxBehavior.ensureOptionIds();\n }\n getAccessibleName() {\n const labelElement = findAssociatedLabel(this);\n return labelElement?.textContent?.trim() || this.label || \"Suggestions\";\n }\n isComboboxInput(target) {\n return target instanceof HTMLElement && target.localName === \"input\" && target.hasAttribute(\"data-combobox-input\");\n }\n syncLabel() {\n const input = this.getInput();\n syncFieldLabel(this, input, {\n controlId: this.inputId,\n label: this.label,\n labelId: `${this.uid}-label`\n });\n }\n syncTrigger() {\n const trigger = this.getTrigger();\n const listbox = this.collection.getListbox();\n if (!trigger || !listbox) {\n return;\n }\n trigger.setAttribute(\"aria-expanded\", String(this.open));\n trigger.setAttribute(\"aria-controls\", listbox.id || this.listboxId);\n trigger.tabIndex = -1;\n if (this.disabled) {\n trigger.disabled = true;\n }\n }\n syncInput() {\n const input = this.getInput();\n const listbox = this.collection.getListbox();\n const popup = this.getListboxPopup();\n if (!input || !listbox) {\n return;\n }\n if (!input.id) {\n input.id = this.inputId;\n }\n if (!listbox.id) {\n listbox.id = this.listboxId;\n }\n input.setAttribute(\"role\", \"combobox\");\n input.setAttribute(\"aria-haspopup\", \"listbox\");\n input.setAttribute(\"aria-autocomplete\", \"list\");\n input.setAttribute(\"aria-expanded\", String(this.open));\n input.setAttribute(\"aria-controls\", this.listboxId);\n listbox.setAttribute(\"aria-label\", this.getAccessibleName());\n this.collection.syncMultiselectable(listbox);\n if (popup) {\n popup.removeAttribute(\"role\");\n popup.removeAttribute(\"aria-label\");\n }\n if (this.placeholder) {\n input.placeholder = this.isMultiple() && this.collection.getSelectedValues().length ? \"\" : this.placeholder;\n }\n if (this.disabled) {\n input.disabled = true;\n }\n this.syncClear();\n this.syncTrigger();\n }\n syncClear() {\n const clear = this.getClear();\n if (!clear) return;\n clear.hidden = this.collection.getSelectedValues().length === 0 && !(this.getInput()?.value ?? \"\");\n }\n setVisualFocusCombobox() {\n this.listboxBehavior.clearActiveOption();\n this.collection.syncOptionSelection();\n }\n setOpen(next, options = {}) {\n const activate = options.activate ?? \"none\";\n this.open = next;\n const input = this.getInput();\n const popup = this.getListboxPopup();\n if (!input || !popup) {\n return;\n }\n input.setAttribute(\"aria-expanded\", String(next));\n popup.toggleAttribute(\"hidden\", !next);\n this.syncTrigger();\n if (!next) {\n this.listboxBehavior.clearActiveOption();\n this.listboxBehavior.syncPopoverPosition();\n return;\n }\n this.ensureOptionIds();\n this.listboxBehavior.syncPopoverPosition();\n if (activate === \"first\") {\n const visible = this.listboxBehavior.getVisibleOptions();\n this.listboxBehavior.setActiveOption(visible.length ? 0 : -1);\n return;\n }\n if (activate === \"last\") {\n const visible = this.listboxBehavior.getVisibleOptions();\n this.listboxBehavior.setActiveOption(visible.length ? visible.length - 1 : -1);\n return;\n }\n this.listboxBehavior.clearActiveOption();\n }\n getAutocomplete() {\n return this.querySelector(\"rui-autocomplete\");\n }\n syncAutocompleteFilter() {\n const autocomplete = this.getAutocomplete();\n if (autocomplete) {\n autocomplete.syncFilter();\n return;\n }\n const query2 = this.getInput()?.value ?? \"\";\n for (const option of this.collection.getOptions()) {\n const matches = textContains(getListboxOptionLabel(option), query2, \"base\");\n option.hidden = query2.trim() !== \"\" && !matches;\n }\n }\n /** Restores the unfiltered collection when arrow navigation has no match to enter. */\n showAllOptions() {\n for (const option of this.collection.getOptions()) {\n option.hidden = false;\n }\n }\n syncFilter() {\n this.syncAutocompleteFilter();\n }\n select(option) {\n if (!this.collection.isSelectableOption(option)) {\n return;\n }\n const value = getListboxOptionValue(option);\n const label = getListboxOptionLabel(option) || value;\n this.collection.toggleValue(value);\n const input = this.getInput();\n if (input) {\n input.value = this.isMultiple() ? \"\" : label;\n }\n this.collection.syncTagGroup();\n this.syncInput();\n this.collection.syncOptionSelection();\n this.changeEvent.emit({\n value: this.value\n });\n if (this.closesOnSelect()) {\n this.setOpen(false);\n }\n this.syncFilter();\n input?.focus();\n }\n syncFromValue() {\n const input = this.getInput();\n if (!input) {\n return;\n }\n if (this.isMultiple()) {\n input.value = \"\";\n return;\n }\n const selected = this.collection.getSelectedValues()[0] ?? \"\";\n input.value = selected ? this.collection.labelForValue(selected) : \"\";\n }\n removeSelectedValue(value) {\n if (!this.collection.removeValue(value)) return;\n this.collection.syncTagGroup();\n this.syncInput();\n this.collection.syncOptionSelection();\n this.changeEvent.emit({\n value: this.value\n });\n this.getInput()?.focus();\n }\n clearSelection() {\n const input = this.getInput();\n const hadValue = this.value.length > 0;\n const hadInput = Boolean(input?.value);\n this.collection.clearValues();\n if (input) input.value = \"\";\n this.syncFilter();\n this.syncInput();\n this.collection.syncTagGroup();\n this.collection.syncOptionSelection();\n if (hadValue) this.changeEvent.emit({\n value: []\n });\n if (hadInput || hadValue) input?.focus();\n }\n initialize() {\n this.ensureOptionIds();\n this.syncLabel();\n this.syncInput();\n this.collection.syncListboxHost();\n this.syncFromValue();\n this.collection.syncOptionSelection();\n this.collection.syncTagGroup();\n this.setOpen(false);\n }\n onConnected() {\n this.initialize();\n }\n disconnectedCallback() {\n this.listboxBehavior.destroy();\n super.disconnectedCallback();\n }\n onPropsUpdated() {\n this.syncLabel();\n this.syncInput();\n this.collection.syncListboxHost();\n this.syncFromValue();\n this.collection.syncOptionSelection();\n this.collection.syncTagGroup();\n }\n onRootFocusIn(event2) {\n if (this.triggerKind !== \"focus\" || !this.isComboboxInput(event2.target)) {\n return;\n }\n if (event2.relatedTarget instanceof Node && this.contains(event2.relatedTarget)) {\n return;\n }\n this.syncFilter();\n this.setOpen(true);\n this.setVisualFocusCombobox();\n }\n onRootInput(event2) {\n if (!this.isComboboxInput(event2.target)) {\n return;\n }\n const input = event2.target;\n this.syncFilter();\n const hasQuery = input.value.trim() !== \"\";\n const hasVisibleOptions = this.listboxBehavior.getVisibleOptions().length > 0;\n if (hasQuery && hasVisibleOptions && (this.open || this.triggerKind !== \"manual\")) {\n this.setOpen(true);\n } else if (!hasQuery && this.triggerKind === \"focus\") {\n this.setOpen(true);\n } else if (!hasQuery || !hasVisibleOptions) {\n this.setOpen(false);\n }\n this.setVisualFocusCombobox();\n }\n onRootKeydown(event2) {\n if (!this.isComboboxInput(event2.target)) {\n return;\n }\n this.handleInputKeydown(event2);\n }\n handleInputKeydown(event2) {\n if (event2.key === \"Home\") {\n const input = this.getInput();\n if (!input) {\n return;\n }\n event2.preventDefault();\n input.setSelectionRange(0, 0);\n this.setVisualFocusCombobox();\n return;\n }\n if (event2.key === \"End\") {\n const input = this.getInput();\n if (!input) {\n return;\n }\n event2.preventDefault();\n const length = input.value.length;\n input.setSelectionRange(length, length);\n this.setVisualFocusCombobox();\n return;\n }\n if (event2.key === \"ArrowDown\" || event2.key === \"ArrowUp\") {\n this.syncFilter();\n if (!this.listboxBehavior.getVisibleOptions().length) {\n this.showAllOptions();\n }\n }\n this.listboxBehavior.handleKeydown(event2, {\n isOpen: this.open,\n canUseSpace: false,\n closesOnTab: true,\n enterWhenClosed: \"ignore\",\n enterWithoutActive: \"close\",\n onOpen: (activation = \"none\") => {\n this.syncFilter();\n this.setOpen(true, {\n activate: activation\n });\n },\n onClose: () => this.setOpen(false),\n onSelectActive: () => {\n const option = this.listboxBehavior.getVisibleOptions()[this.listboxBehavior.activeOptionIndex];\n if (option) {\n this.select(option);\n }\n },\n onEscapeWhenClosed: () => {\n const input = this.getInput();\n if (input && input.value) {\n input.value = \"\";\n this.value = [];\n this.changeEvent.emit({\n value: []\n });\n this.syncFilter();\n }\n }\n });\n }\n onTriggerClick(event2) {\n event2.preventDefault();\n const input = this.getInput();\n if (!input || input.disabled) {\n return;\n }\n if (this.open) {\n this.setOpen(false);\n } else {\n this.syncFilter();\n this.setOpen(true);\n this.setVisualFocusCombobox();\n }\n input.focus();\n }\n onOptionPointerOver(event2) {\n if (!this.open) {\n return;\n }\n const option = this.collection.findOption(event2.target);\n if (!this.collection.isSelectableOption(option)) {\n return;\n }\n const visible = this.listboxBehavior.getVisibleOptions();\n const index = visible.indexOf(option);\n if (index >= 0) {\n this.listboxBehavior.setActiveOption(index);\n }\n }\n onOptionMouseDown(event2) {\n event2.preventDefault();\n }\n onOptionClick(event2) {\n const option = this.collection.findOption(event2.target);\n if (option) {\n this.select(option);\n }\n }\n onTagRemove(event2) {\n const detail = event2.detail;\n if (detail?.value) this.removeSelectedValue(detail.value);\n }\n onClearClick(event2) {\n event2.preventDefault();\n event2.stopPropagation();\n this.clearSelection();\n }\n onFocusOut(event2) {\n if (!this.listboxBehavior.shouldDismissFocus(event2.relatedTarget)) {\n return;\n }\n this.setOpen(false);\n }\n onDocumentPointerDown(event2) {\n if (!this.open) {\n return;\n }\n if (!this.listboxBehavior.shouldDismissPointer(event2.target)) {\n return;\n }\n this.setOpen(false);\n }\n static {\n _initClass();\n }\n}\nexport { _RuiCombobox as RuiCombobox };", "export function textContains(text, query, sensitivity = \"base\") {\n if (!query) {\n return true;\n }\n if (sensitivity === \"case\") {\n return text.includes(query);\n }\n const collator = new Intl.Collator(void 0, {\n sensitivity: sensitivity === \"accent\" ? \"accent\" : \"base\",\n usage: \"search\"\n });\n for (let index = 0; index <= text.length - query.length; index += 1) {\n const slice = text.slice(index, index + query.length);\n if (collator.compare(slice, query) === 0) {\n return true;\n }\n }\n return false;\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}", "import { getListboxOptionLabel, getListboxOptionValue } from \"./listbox-option\";\nexport class ListboxHostController {\n config;\n constructor(config) {\n this.config = config;\n }\n getListboxHost() {\n return this.config.getRoot()?.querySelector(\"rui-listbox\") ?? null;\n }\n getListbox() {\n const host = this.getListboxHost();\n if (host) {\n return host.querySelector('[role=\"listbox\"]') ?? host;\n }\n return this.config.getPopup?.() ?? null;\n }\n getOptions() {\n const listbox = this.getListbox();\n if (!listbox) {\n return [];\n }\n return Array.from(listbox.querySelectorAll('[role=\"option\"]'));\n }\n getSelectedValues() {\n return this.config.getValue();\n }\n setSelectedValues(values) {\n this.config.setValue(values);\n }\n toggleValue(optionValue) {\n if (this.config.getSelectionMode() === \"multiple\") {\n const selected = new Set(this.getSelectedValues());\n if (selected.has(optionValue)) {\n selected.delete(optionValue);\n } else {\n selected.add(optionValue);\n }\n this.setSelectedValues([...selected]);\n return;\n }\n this.setSelectedValues([optionValue]);\n }\n removeValue(optionValue) {\n const selected = new Set(this.getSelectedValues());\n if (!selected.delete(optionValue)) {\n return false;\n }\n this.setSelectedValues([...selected]);\n return true;\n }\n clearValues() {\n if (this.getSelectedValues().length === 0) {\n return false;\n }\n this.setSelectedValues([]);\n return true;\n }\n findOption(eventTarget) {\n if (!(eventTarget instanceof Element)) {\n return null;\n }\n const option = eventTarget.closest('[role=\"option\"]');\n return option ?? null;\n }\n isSelectableOption(option) {\n return option != null && option.getAttribute(\"aria-disabled\") !== \"true\" && !option.hidden;\n }\n syncListboxHost() {\n const host = this.getListboxHost();\n if (!host) {\n return;\n }\n host.embedded = true;\n host.selectionMode = this.config.getSelectionMode();\n host.value = this.config.getValue();\n }\n syncOptionSelection() {\n const selected = new Set(this.getSelectedValues());\n for (const option of this.getOptions()) {\n option.setAttribute(\"aria-selected\", String(selected.has(getListboxOptionValue(option))));\n }\n }\n syncMultiselectable(listbox) {\n if (!listbox) {\n return;\n }\n if (this.config.getSelectionMode() === \"multiple\") {\n listbox.setAttribute(\"aria-multiselectable\", \"true\");\n return;\n }\n listbox.removeAttribute(\"aria-multiselectable\");\n }\n getTagGroup() {\n const selector = this.config.tagGroupSelector;\n if (!selector) {\n return null;\n }\n const tagGroup = this.config.getRoot()?.querySelector(selector) ?? null;\n if (!tagGroup || typeof tagGroup.setItems !== \"function\") {\n return null;\n }\n return tagGroup;\n }\n syncTagGroup() {\n const tagGroup = this.getTagGroup();\n if (!tagGroup) {\n return;\n }\n const items = this.getSelectedValues().flatMap(value => {\n const option = this.getOptions().find(item => getListboxOptionValue(item) === value);\n return option ? [{\n value,\n label: getListboxOptionLabel(option)\n }] : [];\n });\n tagGroup.embedded = true;\n tagGroup.setItems(items);\n tagGroup.value = this.config.getValue();\n }\n labelForValue(value) {\n const match = this.getOptions().find(option => getListboxOptionValue(option) === value);\n return match ? getListboxOptionLabel(match) : value;\n }\n}", "const OPPOSITE = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n};\nconst DEFAULT_VIEWPORT_PADDING = 8;\nconst matchAnchorWidthStylesApplied = /* @__PURE__ */new WeakMap();\nfunction clearMatchAnchorWidthStyles(floating) {\n if (!matchAnchorWidthStylesApplied.has(floating)) {\n return;\n }\n floating.style.width = \"\";\n floating.style.minWidth = \"\";\n floating.style.maxWidth = \"\";\n floating.style.boxSizing = \"\";\n matchAnchorWidthStylesApplied.delete(floating);\n}\nfunction parsePlacement(placement) {\n const dash = placement.indexOf(\"-\");\n if (dash === -1) return {\n side: placement,\n align: \"center\"\n };\n const side = placement.slice(0, dash);\n const align = placement.slice(dash + 1);\n return {\n side,\n align: align === \"start\" || align === \"end\" ? align : \"center\"\n };\n}\nfunction primaryAxis(side) {\n return side === \"top\" || side === \"bottom\" ? \"y\" : \"x\";\n}\nfunction coordsFor(anchor, size, side, align, gap) {\n const {\n width,\n height\n } = size;\n let x = 0;\n let y = 0;\n switch (side) {\n case \"top\":\n y = anchor.top - height - gap;\n break;\n case \"bottom\":\n y = anchor.bottom + gap;\n break;\n case \"left\":\n x = anchor.left - width - gap;\n break;\n case \"right\":\n x = anchor.right + gap;\n break;\n }\n if (primaryAxis(side) === \"y\") {\n if (align === \"start\") x = anchor.left;else if (align === \"end\") x = anchor.right - width;else x = anchor.left + (anchor.width - width) / 2;\n } else {\n if (align === \"start\") y = anchor.top;else if (align === \"end\") y = anchor.bottom - height;else y = anchor.top + (anchor.height - height) / 2;\n }\n return {\n x,\n y\n };\n}\nfunction overflowOnPrimary(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return Math.max(0, padding - coords.y);\n if (side === \"bottom\") return Math.max(0, coords.y + size.height - (vh - padding));\n if (side === \"left\") return Math.max(0, padding - coords.x);\n return Math.max(0, coords.x + size.width - (vw - padding));\n}\nfunction freeSpaceOnSide(anchor, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return anchor.top - padding - size.height;\n if (side === \"bottom\") return vh - padding - size.height - anchor.bottom;\n if (side === \"left\") return anchor.left - padding - size.width;\n return vw - padding - size.width - anchor.right;\n}\nfunction toPlacement(side, align) {\n if (align === \"center\") {\n return side;\n }\n return `${side}-${align}`;\n}\nfunction clampCrossAxis(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (primaryAxis(side) === \"y\") {\n const maxX = Math.max(padding, vw - padding - size.width);\n return {\n x: Math.min(Math.max(coords.x, padding), maxX),\n y: Math.max(padding, coords.y)\n };\n }\n const maxY = Math.max(padding, vh - padding - size.height);\n return {\n x: Math.max(padding, coords.x),\n y: Math.min(Math.max(coords.y, padding), maxY)\n };\n}\nexport function computeFloatingCoords(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n return computeFloatingPosition(anchor, size, placement, gap, viewport).coords;\n}\nexport function computeFloatingPosition(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n const {\n side: preferred,\n align\n } = parsePlacement(placement);\n const preferredCoords = coordsFor(anchor, size, preferred, align, gap);\n const preferredOverflow = overflowOnPrimary(preferredCoords, size, preferred, viewport);\n let side = preferred;\n let coords = preferredCoords;\n if (preferredOverflow > 0) {\n const flipped = OPPOSITE[preferred];\n const flippedCoords = coordsFor(anchor, size, flipped, align, gap);\n const preferredFree = freeSpaceOnSide(anchor, size, preferred, viewport);\n const flippedFree = freeSpaceOnSide(anchor, size, flipped, viewport);\n if (flippedFree > preferredFree) {\n side = flipped;\n coords = flippedCoords;\n }\n }\n return {\n coords: clampCrossAxis(coords, size, side, viewport),\n placement: toPlacement(side, align)\n };\n}\nexport function applyFloatingPosition(anchor, floating, placement, gap, options = {}) {\n const matchAnchorWidth = options.matchAnchorWidth === true;\n const anchorWidth = anchor.offsetWidth;\n const size = matchAnchorWidth ? {\n width: anchorWidth,\n height: floating.offsetHeight\n } : {\n width: floating.offsetWidth,\n height: floating.offsetHeight\n };\n if (matchAnchorWidth) {\n floating.style.width = `${anchorWidth}px`;\n floating.style.minWidth = `${anchorWidth}px`;\n floating.style.maxWidth = `${anchorWidth}px`;\n floating.style.boxSizing = \"border-box\";\n matchAnchorWidthStylesApplied.set(floating, true);\n } else {\n clearMatchAnchorWidthStyles(floating);\n }\n const {\n coords,\n placement: resolved\n } = computeFloatingPosition(anchor.getBoundingClientRect(), size, placement, gap);\n Object.assign(floating.style, {\n position: \"fixed\",\n left: `${coords.x}px`,\n top: `${coords.y}px`,\n right: \"auto\",\n bottom: \"auto\",\n visibility: \"visible\"\n });\n floating.setAttribute(\"data-placement\", resolved);\n return resolved;\n}\nexport function attachFloating({\n anchor,\n floating,\n getPlacement,\n gap,\n matchAnchorWidth\n}) {\n const update = () => {\n if (floating.hidden) return;\n applyFloatingPosition(anchor, floating, getPlacement(), gap, {\n matchAnchorWidth\n });\n };\n update();\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n const observer = new ResizeObserver(update);\n observer.observe(anchor);\n observer.observe(floating);\n return () => {\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n observer.disconnect();\n };\n}", "export function mountPortal(node, container = document.body) {\n const parent = node.parentNode;\n if (!parent) {\n return {\n unmount: () => {}\n };\n }\n const placeholder = document.createComment(\"rui-portal\");\n parent.insertBefore(placeholder, node);\n container.appendChild(node);\n return {\n unmount: () => {\n const restoreParent = placeholder.parentNode;\n if (!restoreParent) {\n return;\n }\n restoreParent.insertBefore(node, placeholder);\n placeholder.remove();\n }\n };\n}", "import { attachFloating } from \"./floating-position\";\nimport { mountPortal } from \"./portal\";\nexport function popoverContains(anchor, floating, node) {\n if (!node) {\n return false;\n }\n return Boolean(anchor?.contains(node) || floating?.contains(node));\n}\nexport function shouldDismissPopoverFocus(anchor, floating, relatedTarget) {\n if (!(relatedTarget instanceof Node)) {\n return true;\n }\n return !popoverContains(anchor, floating, relatedTarget);\n}\nexport function shouldDismissPopoverPointer(anchor, floating, target) {\n return !popoverContains(anchor, floating, target);\n}\nexport class PopoverController {\n config;\n cleanupFloating = null;\n portalHandle = null;\n floatingElement = null;\n constructor(config) {\n this.config = config;\n }\n updateConfig(patch) {\n this.config = {\n ...this.config,\n ...patch\n };\n }\n sync() {\n const floating = this.resolveFloating();\n if (!floating) {\n return;\n }\n const open = this.config.getOpen();\n if (!open) {\n this.teardown();\n floating.toggleAttribute(\"hidden\", true);\n return;\n }\n const anchor = this.config.getAnchor();\n if (!anchor) {\n return;\n }\n floating.toggleAttribute(\"hidden\", false);\n const usePortal = this.config.portal !== false;\n if (usePortal) {\n if (!this.portalHandle) {\n this.portalHandle = mountPortal(floating, this.config.portalContainer ?? document.body);\n }\n } else if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n this.teardownFloating();\n this.cleanupFloating = attachFloating({\n anchor,\n floating,\n getPlacement: this.config.getPlacement,\n gap: this.config.gap ?? 8,\n matchAnchorWidth: this.config.matchAnchorWidth\n });\n }\n contains(node) {\n return popoverContains(this.config.getAnchor(), this.resolveFloating(), node);\n }\n getFloatingElement() {\n return this.resolveFloating();\n }\n teardown() {\n this.teardownFloating();\n if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n }\n destroy() {\n this.teardown();\n this.floatingElement = null;\n }\n resolveFloating() {\n const configuredFloating = this.config.getFloating();\n if (configuredFloating) {\n this.floatingElement = configuredFloating;\n }\n return configuredFloating ?? this.floatingElement;\n }\n teardownFloating() {\n this.cleanupFloating?.();\n this.cleanupFloating = null;\n }\n}", "export function getVisibleCollectionOptions(options) {\n return options.filter(option => !option.hidden && option.getAttribute(\"aria-disabled\") !== \"true\");\n}\nexport function wrapCollectionIndex(index, direction, length) {\n if (length === 0) {\n return -1;\n }\n if (direction === 1) {\n return index >= length - 1 ? 0 : index + 1;\n }\n return index <= 0 ? length - 1 : index - 1;\n}\nexport function clearCollectionActive(options, activeHost) {\n activeHost?.removeAttribute(\"aria-activedescendant\");\n for (const option of options) {\n option.removeAttribute(\"data-active\");\n }\n}\nexport function setCollectionActive(options, visibleOptions, index, activeHost, idPrefix) {\n clearCollectionActive(options, activeHost);\n const active = visibleOptions[index];\n if (!active || !activeHost) {\n return null;\n }\n if (!active.id) {\n active.id = `${idPrefix}-${index}`;\n }\n active.setAttribute(\"data-active\", \"true\");\n activeHost.setAttribute(\"aria-activedescendant\", active.id);\n active.scrollIntoView({\n block: \"nearest\"\n });\n return active;\n}", "import { PopoverController, shouldDismissPopoverFocus, shouldDismissPopoverPointer } from \"./popover-controller\";\nimport { clearCollectionActive, getVisibleCollectionOptions, setCollectionActive, wrapCollectionIndex } from \"./collection-navigation\";\nexport class ListboxPopoverBehavior {\n config;\n popoverController;\n activeIndex = -1;\n visualFocus = false;\n constructor(config) {\n this.config = config;\n this.popoverController = new PopoverController({\n getAnchor: config.getAnchor,\n getFloating: config.getFloating,\n getOpen: config.getOpen,\n getPlacement: () => \"bottom-start\",\n gap: 4,\n portal: false,\n matchAnchorWidth: true\n });\n }\n get activeOptionIndex() {\n return this.activeIndex;\n }\n get hasVisualFocus() {\n return this.visualFocus;\n }\n ensureOptionIds() {\n this.config.getOptions().forEach((option, index) => {\n if (!option.id) {\n option.id = `${this.config.getOptionIdPrefix()}-${index}`;\n }\n });\n }\n getVisibleOptions() {\n return getVisibleCollectionOptions(this.config.getOptions());\n }\n clearActiveOption() {\n this.activeIndex = -1;\n this.visualFocus = false;\n clearCollectionActive(this.config.getOptions(), this.config.getActiveDescendantHost());\n }\n setActiveOption(index) {\n const visible = this.getVisibleOptions();\n if (index < 0 || index >= visible.length) {\n this.clearActiveOption();\n return;\n }\n this.activeIndex = index;\n this.visualFocus = true;\n setCollectionActive(this.config.getOptions(), visible, index, this.config.getActiveDescendantHost(), this.config.getOptionIdPrefix());\n }\n moveActive(direction, onOpen) {\n const visible = this.getVisibleOptions();\n if (!visible.length) {\n return;\n }\n if (!this.config.getOpen()) {\n onOpen(direction === 1 ? \"first\" : \"last\");\n return;\n }\n if (this.visualFocus) {\n this.setActiveOption(wrapCollectionIndex(this.activeIndex, direction, visible.length));\n return;\n }\n this.setActiveOption(direction === 1 ? 0 : visible.length - 1);\n }\n /** Handles the APG keys shared by select-only and autocomplete listboxes. */\n handleKeydown(event, options) {\n if (event.ctrlKey || event.shiftKey || event.metaKey) return;\n const handler = this.keydownHandlers[event.key];\n handler?.call(this, event, options);\n }\n keydownHandlers = {\n ArrowDown: this.handleArrowKey,\n ArrowUp: this.handleArrowKey,\n Escape: this.handleEscapeKey,\n Enter: this.handleActivationKey,\n \" \": this.handleActivationKey,\n Tab: this.handleTabKey\n };\n handleArrowKey(event, options) {\n event.preventDefault();\n event.stopPropagation();\n const direction = event.key === \"ArrowDown\" ? 1 : -1;\n if (event.altKey) {\n this.handleModifiedArrow(direction, options);\n return;\n }\n this.moveActive(direction, activation => options.onOpen(activation));\n }\n handleModifiedArrow(direction, options) {\n if (direction === 1 && !options.isOpen) options.onOpen();\n if (direction === -1 && options.isOpen) options.onClose(\"arrow\");\n }\n handleEscapeKey(event, options) {\n event.preventDefault();\n if (options.isOpen) options.onClose(\"escape\");else options.onEscapeWhenClosed?.();\n }\n handleActivationKey(event, options) {\n if (event.key === \" \" && !options.canUseSpace) return;\n if (!options.isOpen && options.enterWhenClosed === \"open\") {\n event.preventDefault();\n options.onOpen();\n return;\n }\n if (!options.isOpen) return;\n if (this.hasActiveOption()) {\n event.preventDefault();\n options.onSelectActive();\n return;\n }\n if (event.key === \"Enter\" && options.enterWithoutActive === \"close\") {\n event.preventDefault();\n options.onClose(\"enter\");\n }\n }\n handleTabKey(_event, options) {\n if (!options.isOpen) return;\n if (this.hasActiveOption() && options.closesOnTab) options.onSelectActive();else options.onClose(\"tab\");\n }\n hasActiveOption() {\n return this.visualFocus && Boolean(this.getVisibleOptions()[this.activeIndex]);\n }\n syncPopoverPosition() {\n this.popoverController.sync();\n }\n shouldDismissFocus(relatedTarget) {\n return shouldDismissPopoverFocus(this.config.getAnchor(), this.popoverController.getFloatingElement(), relatedTarget);\n }\n shouldDismissPointer(target) {\n return shouldDismissPopoverPointer(this.config.getAnchor(), this.popoverController.getFloatingElement(), target);\n }\n destroy() {\n this.popoverController.destroy();\n }\n}", "export function parseMultiValue(value) {\n 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 { withDefaultAriaLabel } from \"@/aria\";\nimport { cx } from \"@/lib/cx\";\nimport { RuiIconChevronDown, RuiIconX } from \"@/lib/icons\";\nimport { RuiAutocomplete, RuiAutocompleteCollection, RuiAutocompleteEmpty } from \"../autocomplete\";\nimport { RuiListbox } from \"../listbox\";\nimport { parseViewValue } from \"../shared/multi-value\";\nimport { RuiTagGroup } from \"../tag-group\";\nimport \"./combobox.script\";\nexport function RuiComboboxControl({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n class: cx(\"rui-combobox__control\", className),\n children\n });\n}\nexport function RuiComboboxInput({\n placeholder,\n disabled,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"input\", {\n ...props,\n type: \"text\",\n \"data-combobox-input\": true,\n \"data-autocomplete-input\": true,\n \"data-rui-control\": true,\n \"data-rui-control-type\": \"text\",\n class: cx(\"rui-combobox__input\", className),\n placeholder,\n disabled,\n autocomplete: \"off\"\n });\n}\nexport function RuiComboboxTrigger({\n children,\n class: className,\n aria,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"button\", {\n ...props,\n aria: withDefaultAriaLabel(aria, \"Show suggestions\"),\n type: \"button\",\n \"data-combobox-trigger\": true,\n class: cx(\"rui-control-toggle\", className),\n disabled,\n tabIndex: -1,\n children: children ?? /* @__PURE__ */jsx(RuiIconChevronDown, {})\n });\n}\nexport function RuiComboboxClear({\n children,\n class: className,\n aria,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"button\", {\n ...props,\n aria: withDefaultAriaLabel(aria, \"Clear selection\"),\n type: \"button\",\n \"data-combobox-clear\": true,\n class: cx(\"rui-control-clear\", className),\n disabled,\n children: children ?? /* @__PURE__ */jsx(RuiIconX, {})\n });\n}\nexport function RuiComboboxValue({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"span\", {\n ...props,\n \"data-combobox-value\": true,\n class: cx(\"rui-combobox__value\", className),\n children\n });\n}\nexport function RuiComboboxListbox({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-combobox-listbox\": true,\n class: cx(\"rui-combobox__listbox rui-popover rui-popover--listbox rui-floating\", className),\n children\n });\n}\nfunction ComboboxShell({\n children\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n class: \"rui-combobox\",\n \"data-ref\": \"root\",\n children\n });\n}\nexport function RuiCombobox({\n options,\n children,\n value,\n ...props\n}) {\n const selectedValues = parseViewValue(value);\n const selectedTags = options?.filter(option => selectedValues.includes(option.value)).map(option => ({\n value: option.value,\n label: option.label\n }));\n const isMultiple = props.selectionMode === \"multiple\";\n if (options != null) {\n return /* @__PURE__ */jsx(\"rui-combobox\", {\n ...props,\n value: selectedValues,\n children: /* @__PURE__ */jsxs(ComboboxShell, {\n children: [/* @__PURE__ */jsxs(RuiComboboxControl, {\n children: [isMultiple ? /* @__PURE__ */jsx(RuiComboboxValue, {\n children: /* @__PURE__ */jsx(RuiTagGroup, {\n tags: selectedTags ?? [],\n label: \"Selected options\"\n })\n }) : null, /* @__PURE__ */jsx(RuiComboboxInput, {\n placeholder: props.placeholder,\n disabled: props.disabled\n }), /* @__PURE__ */jsx(RuiComboboxTrigger, {})]\n }), /* @__PURE__ */jsx(RuiComboboxListbox, {\n children: /* @__PURE__ */jsx(RuiAutocomplete, {\n children: /* @__PURE__ */jsxs(RuiAutocompleteCollection, {\n children: [/* @__PURE__ */jsx(RuiListbox, {\n embedded: true,\n options,\n selectionMode: props.selectionMode,\n value: selectedValues\n }), /* @__PURE__ */jsx(RuiAutocompleteEmpty, {\n children: \"No results found.\"\n })]\n })\n })\n })]\n })\n });\n }\n return /* @__PURE__ */jsx(\"rui-combobox\", {\n ...props,\n value: selectedValues,\n children: /* @__PURE__ */jsx(ComboboxShell, {\n children\n })\n });\n}", "export function withDefaultAriaLabel(aria, fallback) {\n if (fallback === void 0 || aria?.label !== void 0) {\n return aria;\n }\n return {\n ...aria,\n label: fallback\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}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nexport function RuiIconChevronDown({\n class: className,\n size = \"sm\",\n ...props\n}) {\n return /* @__PURE__ */jsx(\"svg\", {\n ...props,\n class: cx(\"rui-icon\", size === \"md\" && \"rui-icon--md\", className),\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": \"true\",\n children: /* @__PURE__ */jsx(\"path\", {\n d: \"m6 9 6 6 6-6\"\n })\n });\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nconst SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\nexport function RuiIconX({\n class: className,\n size = \"sm\",\n ...props\n}) {\n return /* @__PURE__ */jsxs(\"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: \"m18 6-12 12\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"m6 6 12 12\"\n })]\n });\n}\nexport function createRuiIconX() {\n const icon = document.createElementNS(SVG_NAMESPACE, \"svg\");\n icon.setAttribute(\"class\", \"rui-icon\");\n icon.setAttribute(\"viewBox\", \"0 0 24 24\");\n icon.setAttribute(\"fill\", \"none\");\n icon.setAttribute(\"stroke\", \"currentColor\");\n icon.setAttribute(\"stroke-width\", \"2\");\n icon.setAttribute(\"stroke-linecap\", \"round\");\n icon.setAttribute(\"stroke-linejoin\", \"round\");\n icon.setAttribute(\"aria-hidden\", \"true\");\n for (const d of [\"m18 6-12 12\", \"m6 6 12 12\"]) {\n const path = document.createElementNS(SVG_NAMESPACE, \"path\");\n path.setAttribute(\"d\", d);\n icon.append(path);\n }\n return icon;\n}", "let _initProto, _initClass, _init_sensitivity, _init_extra_sensitivity, _init_inputValue, _init_extra_inputValue;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { RadiantElement, customElement, onEvent, onUpdated, prop } from \"@ecopages/radiant\";\nimport { textContains } from \"@/lib/text-filter\";\nlet _RuiAutocomplete;\nclass RuiAutocomplete extends RadiantElement {\n static {\n ({\n e: [_init_sensitivity, _init_extra_sensitivity, _init_inputValue, _init_extra_inputValue, _initProto],\n c: [_RuiAutocomplete, _initClass]\n } = _applyDecs(this, [customElement(\"rui-autocomplete\")], [[prop({\n type: String,\n defaultValue: \"base\"\n }), 0, \"sensitivity\"], [prop({\n type: String,\n attribute: \"input-value\",\n defaultValue: \"\"\n }), 0, \"inputValue\"], [onUpdated([\"sensitivity\", \"inputValue\"]), 2, \"onPropsUpdated\"], [onEvent({\n selector: \"[data-autocomplete-input]\",\n type: \"input\"\n }), 2, \"onInput\"]], 0, void 0, RadiantElement));\n }\n sensitivity = (_initProto(this), _init_sensitivity(this));\n inputValue = (_init_extra_sensitivity(this), _init_inputValue(this));\n externalInput = (_init_extra_inputValue(this), null);\n onExternalInput = () => {\n this.applyFilter();\n };\n getInput() {\n const local = this.querySelector(\"[data-autocomplete-input]\");\n if (local) {\n return local;\n }\n const host = this.closest(\"rui-combobox, rui-select\");\n return host?.querySelector(\"[data-autocomplete-input]\") ?? null;\n }\n bindExternalInput() {\n this.unbindExternalInput();\n const input = this.getInput();\n if (!input || this.contains(input)) {\n return;\n }\n this.externalInput = input;\n input.addEventListener(\"input\", this.onExternalInput);\n }\n unbindExternalInput() {\n this.externalInput?.removeEventListener(\"input\", this.onExternalInput);\n this.externalInput = null;\n }\n syncFilter() {\n this.applyFilter();\n }\n getCollection() {\n return this.querySelector(\"[data-autocomplete-collection]\") ?? this;\n }\n getFilterableItems() {\n const collection = this.getCollection();\n if (!collection) {\n return [];\n }\n const options = Array.from(collection.querySelectorAll('[role=\"option\"], [data-tag], [role=\"menuitem\"]'));\n return options.filter(item => this.contains(item) || collection.contains(item));\n }\n getItemText(item) {\n return item.getAttribute(\"data-label\") || item.textContent?.trim() || \"\";\n }\n getQuery() {\n if (this.inputValue) {\n return this.inputValue;\n }\n return this.getInput()?.value ?? \"\";\n }\n applyFilter() {\n const query = this.getQuery();\n const items = this.getFilterableItems();\n let visibleCount = 0;\n for (const item of items) {\n const matches = textContains(this.getItemText(item), query, this.sensitivity);\n item.hidden = !matches;\n if (matches) {\n visibleCount += 1;\n }\n }\n const emptyState = this.querySelector(\"[data-autocomplete-empty]\");\n if (emptyState) {\n emptyState.toggleAttribute(\"hidden\", visibleCount > 0);\n }\n }\n initialize() {\n this.applyFilter();\n }\n onConnected() {\n this.bindExternalInput();\n this.initialize();\n }\n disconnectedCallback() {\n this.unbindExternalInput();\n super.disconnectedCallback();\n }\n onPropsUpdated() {\n this.applyFilter();\n }\n onInput() {\n this.applyFilter();\n }\n static {\n _initClass();\n }\n}\nexport { _RuiAutocomplete as RuiAutocomplete };", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport \"./autocomplete.script\";\nexport function RuiAutocompleteInput({\n placeholder,\n class: className,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"input\", {\n ...props,\n type: \"search\",\n \"data-autocomplete-input\": true,\n class: cx(\"rui-autocomplete__input\", className),\n placeholder,\n disabled,\n autocomplete: \"off\"\n });\n}\nexport function RuiAutocompleteCollection({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-autocomplete-collection\": true,\n class: cx(\"rui-autocomplete__collection\", className),\n children\n });\n}\nexport function RuiAutocompleteEmpty({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-autocomplete-empty\": true,\n class: cx(\"rui-autocomplete__empty\", className),\n children\n });\n}\nfunction AutocompleteShell({\n children\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n class: \"rui-autocomplete\",\n \"data-ref\": \"root\",\n children\n });\n}\nexport function RuiAutocomplete({\n children,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-autocomplete\", {\n ...props,\n children: /* @__PURE__ */jsx(AutocompleteShell, {\n children\n })\n });\n}", "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}", "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}", "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_changeEvent, _init_extra_changeEvent, _init_removeEvent, _init_extra_removeEvent, _init_derivedItems, _init_extra_derivedItems;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { RadiantElement, customElement, event, onEvent, onUpdated, prop, state } from \"@ecopages/radiant\";\nimport { createRuiIconX } from \"@/lib/icons/x\";\nimport { navigateRovingTabindex } from \"@/lib/roving-tabindex\";\nimport { uniqueId } from \"@/lib/unique-id\";\nimport { multiValuePropOptions } from \"../shared/multi-value\";\nlet _RuiTagGroup;\nclass RuiTagGroup 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_changeEvent, _init_extra_changeEvent, _init_removeEvent, _init_extra_removeEvent, _init_derivedItems, _init_extra_derivedItems, _initProto],\n c: [_RuiTagGroup, _initClass]\n } = _applyDecs(this, [customElement(\"rui-tag-group\")], [[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: \"multiple\"\n }), 0, \"selectionMode\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"embedded\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [event({\n name: \"rui-remove\",\n bubbles: true,\n composed: true\n }), 0, \"removeEvent\"], [state, 0, \"derivedItems\"], [onUpdated([\"value\", \"label\", \"disabled\", \"selectionMode\", \"embedded\", \"derivedItems\"]), 2, \"onPropsUpdated\"], [onEvent({\n selector: \"[data-tag]\",\n type: \"click\"\n }), 2, \"onTagClick\"], [onEvent({\n selector: \"[data-tag-remove]\",\n type: \"click\"\n }), 2, \"onRemoveClick\"], [onEvent({\n selector: \"[data-tag]\",\n type: \"keydown\"\n }), 2, \"onTagKeydown\"]], 0, void 0, RadiantElement));\n }\n constructor(...args) {\n super(...args);\n _init_extra_derivedItems(this);\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 changeEvent = (_init_extra_embedded(this), _init_changeEvent(this));\n removeEvent = (_init_extra_changeEvent(this), _init_removeEvent(this));\n uid = (_init_extra_removeEvent(this), uniqueId(\"rui-tag-group\"));\n derivedItems = _init_derivedItems(this, null);\n isMultiple() {\n return this.selectionMode === \"multiple\";\n }\n getSelectedValues() {\n return this.value;\n }\n setSelectedValues(values) {\n this.value = values;\n }\n getList() {\n const managed = this.querySelector(\"[data-rui-managed-list]\");\n if (managed) {\n return managed;\n }\n if (this.derivedItems != null) {\n return null;\n }\n return this.querySelector(\"[data-tag-list]\");\n }\n getTags() {\n const list = this.getList();\n if (!list) {\n return [];\n }\n return Array.from(list.querySelectorAll(\"[data-tag]\"));\n }\n getVisibleTags() {\n return this.getTags().filter(tag => !tag.hidden && tag.getAttribute(\"aria-disabled\") !== \"true\");\n }\n getTagValue(tag) {\n return tag.getAttribute(\"data-value\") || tag.textContent?.trim() || \"\";\n }\n getTagLabel(tag) {\n return tag.getAttribute(\"data-label\") || tag.textContent?.trim() || \"\";\n }\n ensureTagIds() {\n this.getTags().forEach((tag, index) => {\n if (!tag.id) {\n tag.id = `${this.uid}-tag-${index}`;\n }\n });\n }\n syncList() {\n const list = this.getList();\n if (!list) {\n return;\n }\n if (!list.id) {\n list.id = `${this.uid}-list`;\n }\n list.setAttribute(\"role\", \"list\");\n list.setAttribute(\"aria-label\", this.label || \"Tags\");\n if (this.disabled) {\n list.setAttribute(\"aria-disabled\", \"true\");\n } else {\n list.removeAttribute(\"aria-disabled\");\n }\n }\n syncTags() {\n const selected = new Set(this.getSelectedValues());\n const tags = this.getTags();\n tags.forEach((tag, index) => {\n tag.setAttribute(\"role\", \"listitem\");\n const value = this.getTagValue(tag);\n const isSelected = selected.has(value);\n tag.setAttribute(\"aria-selected\", String(isSelected));\n tag.tabIndex = index === 0 ? 0 : -1;\n const removeButton = tag.querySelector(\"[data-tag-remove]\");\n if (removeButton) {\n removeButton.type = \"button\";\n removeButton.tabIndex = -1;\n removeButton.setAttribute(\"aria-label\", `Remove ${this.getTagLabel(tag)}`);\n }\n });\n }\n selectTag(tag) {\n if (this.disabled || this.embedded || tag.getAttribute(\"aria-disabled\") === \"true\") {\n return;\n }\n const tagValue = this.getTagValue(tag);\n if (this.isMultiple()) {\n const selected = new Set(this.getSelectedValues());\n if (selected.has(tagValue)) {\n selected.delete(tagValue);\n } else {\n selected.add(tagValue);\n }\n this.setSelectedValues([...selected]);\n } else {\n this.value = [tagValue];\n }\n this.syncTags();\n this.changeEvent.emit({\n value: this.value\n });\n }\n removeTag(tag) {\n const tagValue = this.getTagValue(tag);\n const selected = new Set(this.getSelectedValues());\n selected.delete(tagValue);\n this.setSelectedValues([...selected]);\n this.syncTags();\n this.removeEvent.emit({\n value: tagValue\n });\n this.changeEvent.emit({\n value: this.value\n });\n }\n initialize() {\n this.syncManagedList();\n this.ensureTagIds();\n this.syncList();\n this.syncTags();\n }\n onConnected() {\n this.initialize();\n }\n onPropsUpdated() {\n this.syncManagedList();\n this.syncList();\n this.syncTags();\n }\n /**\n * Re-read authored `[data-tag]` children after the parent mutates them in place.\n */\n resync() {\n this.ensureTagIds();\n this.syncList();\n this.syncTags();\n }\n /**\n * Replace authored tags with a CE-owned list. Requires `[data-ref=\"root\"]`.\n *\n * @remarks Hides the authored `[data-tag-list]` and sets `value` to every\n * item. Pass `[]` to clear the managed list.\n */\n setItems(items) {\n this.derivedItems = items;\n this.value = items.map(item => item.value);\n }\n /**\n * Imperative twin of the view's `RuiTag` / `RuiTagRemove` markup for\n * CE-managed items (same `data-*` hooks, classes, and remove icon).\n */\n createManagedTag(item) {\n const tag = document.createElement(\"span\");\n tag.setAttribute(\"data-tag\", \"\");\n tag.setAttribute(\"data-value\", item.value);\n tag.setAttribute(\"data-label\", item.label);\n tag.className = \"rui-tag\";\n tag.textContent = item.label;\n tag.setAttribute(\"aria-label\", item.label);\n const remove = document.createElement(\"button\");\n remove.type = \"button\";\n remove.setAttribute(\"data-tag-remove\", \"\");\n remove.className = \"rui-tag__remove\";\n remove.setAttribute(\"aria-label\", `Remove ${item.label}`);\n remove.append(createRuiIconX());\n tag.append(remove);\n return tag;\n }\n syncManagedList() {\n const root = this.querySelector('[data-ref=\"root\"]');\n if (!root || this.derivedItems == null) {\n return;\n }\n const authored = root.querySelector(\"[data-tag-list]:not([data-rui-managed-list])\");\n authored?.toggleAttribute(\"hidden\", true);\n let managed = root.querySelector(\"[data-rui-managed-list]\");\n if (this.derivedItems.length === 0) {\n managed?.remove();\n return;\n }\n if (!managed) {\n managed = document.createElement(\"div\");\n managed.setAttribute(\"data-tag-list\", \"\");\n managed.setAttribute(\"data-rui-managed-list\", \"\");\n managed.className = \"rui-tag-group__list\";\n root.appendChild(managed);\n }\n managed.replaceChildren(...this.derivedItems.map(item => this.createManagedTag(item)));\n this.ensureTagIds();\n this.syncList();\n this.syncTags();\n }\n onTagClick(event2) {\n const target = event2.target;\n if (target.closest(\"[data-tag-remove]\")) {\n return;\n }\n const tag = target.closest(\"[data-tag]\");\n if (tag && this.contains(tag)) {\n this.selectTag(tag);\n }\n }\n onRemoveClick(event2) {\n event2.stopPropagation();\n const button = event2.target;\n const tag = button.closest(\"[data-tag]\");\n if (tag && this.contains(tag)) {\n this.removeTag(tag);\n }\n }\n onTagKeydown(event2) {\n const tags = this.getVisibleTags();\n const current = event2.target.closest(\"[data-tag]\");\n if (!current) {\n return;\n }\n if (event2.key === \"Enter\" || event2.key === \" \") {\n event2.preventDefault();\n if (!this.embedded) {\n this.selectTag(current);\n }\n return;\n }\n if (event2.key === \"Backspace\" || event2.key === \"Delete\") {\n const removeButton = current.querySelector(\"[data-tag-remove]\");\n if (removeButton) {\n event2.preventDefault();\n this.removeTag(current);\n }\n return;\n }\n const result = navigateRovingTabindex({\n items: tags,\n current,\n key: event2.key,\n orientation: \"horizontal\"\n });\n if (result.handled) {\n event2.preventDefault();\n }\n }\n static {\n _initClass();\n }\n}\nexport { _RuiTagGroup as RuiTagGroup };", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { withDefaultAriaLabel } from \"@/aria\";\nimport { cx } from \"@/lib/cx\";\nimport { RuiIconX } from \"@/lib/icons\";\nimport \"./tag-group.script\";\nexport function RuiTagList({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-tag-list\": true,\n class: cx(\"rui-tag-group__list\", className),\n children\n });\n}\nexport function RuiTag({\n value,\n label,\n children,\n class: className,\n disabled,\n aria,\n ...props\n}) {\n return /* @__PURE__ */jsxs(\"span\", {\n ...props,\n \"data-tag\": true,\n \"data-value\": value,\n \"data-label\": label,\n class: cx(\"rui-tag\", className),\n aria: withDefaultAriaLabel(aria, label),\n \"aria-disabled\": disabled ? \"true\" : void 0,\n children: [children, /* @__PURE__ */jsx(RuiTagRemove, {})]\n });\n}\nexport function RuiTagRemove({\n children,\n class: className,\n aria,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"button\", {\n ...props,\n aria: withDefaultAriaLabel(aria, \"Remove\"),\n type: \"button\",\n \"data-tag-remove\": true,\n class: cx(\"rui-tag__remove\", className),\n children: children ?? /* @__PURE__ */jsx(RuiIconX, {})\n });\n}\nfunction TagGroupShell({\n children\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n class: \"rui-tag-group\",\n \"data-ref\": \"root\",\n children\n });\n}\nexport function RuiTagGroup({\n tags,\n children,\n value,\n ...props\n}) {\n if (tags != null) {\n return /* @__PURE__ */jsx(\"rui-tag-group\", {\n ...props,\n value,\n children: /* @__PURE__ */jsx(TagGroupShell, {\n children: /* @__PURE__ */jsx(RuiTagList, {\n children: tags.map(tag => /* @__PURE__ */jsx(RuiTag, {\n value: tag.value,\n label: typeof tag.label === \"string\" ? tag.label : void 0,\n disabled: tag.disabled,\n children: tag.label\n }))\n })\n })\n });\n }\n return /* @__PURE__ */jsx(\"rui-tag-group\", {\n ...props,\n value,\n children: /* @__PURE__ */jsx(TagGroupShell, {\n children\n })\n });\n}"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["RadiantElement", "bindTo", "customElement", "event", "onEvent", "onUpdated", "prop", "query", "textContains", "text", "query", "sensitivity", "collator", "index", "slice", "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", "ListboxHostController", "config", "host", "listbox", "values", "optionValue", "selected", "eventTarget", "option", "getListboxOptionValue", "selector", "tagGroup", "items", "value", "item", "getListboxOptionLabel", "match", "OPPOSITE", "DEFAULT_VIEWPORT_PADDING", "matchAnchorWidthStylesApplied", "clearMatchAnchorWidthStyles", "floating", "parsePlacement", "placement", "dash", "side", "align", "primaryAxis", "coordsFor", "anchor", "size", "gap", "width", "height", "x", "y", "overflowOnPrimary", "coords", "viewport", "padding", "vw", "vh", "freeSpaceOnSide", "toPlacement", "clampCrossAxis", "maxX", "maxY", "computeFloatingPosition", "anchor", "size", "placement", "gap", "viewport", "DEFAULT_VIEWPORT_PADDING", "preferred", "align", "parsePlacement", "preferredCoords", "coordsFor", "preferredOverflow", "overflowOnPrimary", "side", "coords", "flipped", "OPPOSITE", "flippedCoords", "preferredFree", "freeSpaceOnSide", "clampCrossAxis", "toPlacement", "applyFloatingPosition", "floating", "options", "matchAnchorWidth", "anchorWidth", "matchAnchorWidthStylesApplied", "clearMatchAnchorWidthStyles", "resolved", "attachFloating", "getPlacement", "update", "observer", "mountPortal", "node", "container", "parent", "placeholder", "restoreParent", "popoverContains", "anchor", "floating", "node", "shouldDismissPopoverFocus", "relatedTarget", "shouldDismissPopoverPointer", "target", "PopoverController", "config", "patch", "mountPortal", "attachFloating", "configuredFloating", "getVisibleCollectionOptions", "options", "option", "wrapCollectionIndex", "index", "direction", "length", "clearCollectionActive", "activeHost", "setCollectionActive", "visibleOptions", "idPrefix", "active", "ListboxPopoverBehavior", "config", "PopoverController", "option", "index", "getVisibleCollectionOptions", "clearCollectionActive", "visible", "setCollectionActive", "direction", "onOpen", "wrapCollectionIndex", "event", "options", "activation", "_event", "relatedTarget", "shouldDismissPopoverFocus", "target", "shouldDismissPopoverPointer", "parseMultiValue", "value", "uniqueTrimmed", "serializeMultiValue", "values", "multiValueTransform", "multiValuePropOptions", "parseViewValue", "uniqueTrimmed", "values", "item", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_label", "_init_extra_label", "_init_placeholder", "_init_extra_placeholder", "_init_disabled", "_init_extra_disabled", "_init_selectionMode", "_init_extra_selectionMode", "_init_shouldCloseOnSelect", "_init_extra_shouldCloseOnSelect", "_init_triggerKind", "_init_extra_triggerKind", "_init_changeEvent", "_init_extra_changeEvent", "_init_rootTarget", "_init_extra_rootTarget", "_applyDecs", "n", "r", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "o", "b", "e", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiCombobox", "RuiCombobox", "RadiantElement", "customElement", "prop", "multiValuePropOptions", "bindTo", "event", "query", "onUpdated", "onEvent", "args", "uniqueId", "ListboxHostController", "value", "ListboxPopoverBehavior", "findAssociatedLabel", "target", "input", "syncFieldLabel", "trigger", "listbox", "popup", "clear", "next", "options", "activate", "visible", "autocomplete", "query2", "option", "matches", "textContains", "getListboxOptionLabel", "getListboxOptionValue", "label", "selected", "hadValue", "hadInput", "event2", "hasQuery", "hasVisibleOptions", "length", "activation", "index", "detail", "jsx", "jsxs", "withDefaultAriaLabel", "aria", "fallback", "cx", "parts", "jsx", "RuiIconCheck", "className", "size", "props", "jsx", "cx", "jsx", "RuiIconChevronDown", "className", "size", "props", "jsx", "cx", "jsx", "jsxs", "SVG_NAMESPACE", "RuiIconX", "className", "size", "props", "jsxs", "cx", "jsx", "createRuiIconX", "icon", "d", "path", "RadiantElement", "customElement", "onEvent", "onUpdated", "prop", "_initProto", "_initClass", "_init_sensitivity", "_init_extra_sensitivity", "_init_inputValue", "_init_extra_inputValue", "_applyDecs", "n", "r", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "o", "b", "e", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiAutocomplete", "RuiAutocomplete", "RadiantElement", "customElement", "prop", "onUpdated", "onEvent", "local", "input", "collection", "item", "query", "items", "visibleCount", "matches", "textContains", "emptyState", "jsx", "RuiAutocompleteCollection", "children", "className", "props", "jsx", "cx", "RuiAutocompleteEmpty", "AutocompleteShell", "RuiAutocomplete", "RadiantElement", "bindTo", "customElement", "event", "onEvent", "onUpdated", "prop", "applyRovingTabindex", "items", "activeIndex", "item", "index", "next", "focusRovingItem", "deltaForKey", "key", "orientation", "navigateRovingTabindex", "options", "current", "wrap", "delta", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_label", "_init_extra_label", "_init_disabled", "_init_extra_disabled", "_init_selectionMode", "_init_extra_selectionMode", "_init_embedded", "_init_extra_embedded", "_init_bordered", "_init_extra_bordered", "_init_changeEvent", "_init_extra_changeEvent", "_applyDecs", "n", "r", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "o", "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", "RuiListboxOption", "value", "label", "children", "className", "disabled", "props", "jsx", "cx", "RuiListboxOptionIndicator", "RuiIconCheck", "listboxIsBordered", "embedded", "bordered", "ListboxShell", "selectionMode", "RuiListbox", "options", "isBordered", "selectedValues", "parseViewValue", "selected", "option", "jsxs", "RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "state", "_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_changeEvent", "_init_extra_changeEvent", "_init_removeEvent", "_init_extra_removeEvent", "_init_derivedItems", "_init_extra_derivedItems", "_applyDecs", "n", "r", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "o", "b", "e", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiTagGroup", "RuiTagGroup", "RadiantElement", "customElement", "prop", "multiValuePropOptions", "event", "state", "onUpdated", "onEvent", "args", "uniqueId", "values", "managed", "list", "tag", "index", "selected", "value", "isSelected", "removeButton", "tagValue", "items", "item", "remove", "createRuiIconX", "root", "event2", "target", "tags", "current", "navigateRovingTabindex", "jsx", "jsxs", "RuiTagList", "children", "className", "props", "jsx", "cx", "RuiTag", "value", "label", "disabled", "aria", "jsxs", "withDefaultAriaLabel", "RuiTagRemove", "RuiIconX", "TagGroupShell", "RuiTagGroup", "tags", "tag", "RuiComboboxControl", "children", "className", "props", "jsx", "cx", "RuiComboboxInput", "placeholder", "disabled", "RuiComboboxTrigger", "aria", "withDefaultAriaLabel", "RuiIconChevronDown", "RuiComboboxClear", "RuiIconX", "RuiComboboxValue", "RuiComboboxListbox", "ComboboxShell", "RuiCombobox", "options", "value", "selectedValues", "parseViewValue", "selectedTags", "option", "isMultiple", "jsxs", "RuiTagGroup", "RuiAutocomplete", "RuiAutocompleteCollection", "RuiListbox", "RuiAutocompleteEmpty"]
|
|
7
7
|
}
|