@ecopages/radiant-ui 0.1.0-rc.8 → 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 +9 -1
- package/dist/components/ui/autocomplete/autocomplete.css +1 -2
- package/dist/components/ui/avatar/avatar.css +10 -8
- package/dist/components/ui/avatar/avatar.d.ts +3 -1
- package/dist/components/ui/calendar/calendar.css +10 -5
- package/dist/components/ui/calendar/calendar.script.d.ts +1 -0
- 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 +1 -1
- package/dist/components/ui/carousel/carousel.script.d.ts +49 -21
- 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.script.d.ts +0 -3
- 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 +0 -1
- package/dist/components/ui/checkbox-group/checkbox-group.script.d.ts +8 -7
- 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 +2 -2
- package/dist/components/ui/combobox/combobox.d.ts +1 -2
- package/dist/components/ui/combobox/combobox.script.d.ts +13 -6
- 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/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 +7 -5
- package/dist/components/ui/date-field/date-field.script.d.ts +16 -48
- 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 +8 -6
- package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +24 -47
- 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.script.d.ts +10 -3
- 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.css +3 -6
- package/dist/components/ui/disclosure/disclosure.d.ts +15 -5
- package/dist/components/ui/disclosure/disclosure.script.d.ts +2 -2
- 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.d.ts +1 -1
- package/dist/components/ui/field/field.script.d.ts +27 -4
- 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.script.d.ts +7 -0
- 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/hover-card/hover-card.css +12 -101
- package/dist/components/ui/hover-card/hover-card.script.d.ts +7 -0
- 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 +1 -1
- package/dist/components/ui/knob/knob.script.d.ts +25 -10
- package/dist/components/ui/label/index.js +1 -1
- package/dist/components/ui/label/index.js.map +4 -4
- 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.d.ts +1 -2
- package/dist/components/ui/listbox/listbox.script.d.ts +7 -5
- 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.script.d.ts +1 -1
- package/dist/components/ui/menubar/index.js +1 -1
- package/dist/components/ui/menubar/index.js.map +4 -4
- 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 +14 -4
- 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 +33 -4
- package/dist/components/ui/navigation-menu/navigation-menu.script.d.ts +71 -9
- 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 +1 -1
- package/dist/components/ui/number-field/number-field.script.d.ts +7 -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 +25 -6
- 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.script.d.ts +5 -0
- 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.script.d.ts +2 -1
- package/dist/components/ui/select/index.d.ts +1 -1
- 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 +4 -3
- package/dist/components/ui/select/select.d.ts +7 -5
- package/dist/components/ui/select/select.script.d.ts +32 -12
- package/dist/components/ui/shared/calendar-popover-behavior.d.ts +27 -0
- package/dist/components/ui/shared/listbox-host-controller.d.ts +5 -4
- package/dist/components/ui/shared/multi-value.d.ts +18 -8
- 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 +42 -29
- package/dist/components/ui/sidebar/sidebar.css +67 -61
- package/dist/components/ui/sidebar/sidebar.d.ts +1 -7
- package/dist/components/ui/sidebar/sidebar.script.d.ts +12 -7
- 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 +5 -6
- package/dist/components/ui/slider/slider.script.d.ts +72 -29
- 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.script.d.ts +10 -3
- 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 +5 -3
- package/dist/components/ui/table/table.script.d.ts +25 -10
- package/dist/components/ui/tabs/tabs.css +18 -12
- package/dist/components/ui/tabs/tabs.script.d.ts +7 -0
- 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 +7 -4
- package/dist/components/ui/tag-group/tag-group.script.d.ts +7 -5
- 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 +3 -3
- package/dist/components/ui/toast/toast.css +35 -32
- package/dist/components/ui/toast/toast.script.d.ts +2 -1
- package/dist/components/ui/toast/toaster.script.d.ts +6 -0
- 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.script.d.ts +9 -1
- 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 +1 -1
- package/dist/components/ui/window-splitter/window-splitter.script.d.ts +5 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +4 -4
- package/dist/lib/icons/chevron-down.d.ts +0 -1
- 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 +10 -7
- package/dist/styles/radiant-ui-core.css +10 -0
- package/dist/styles/radiant-ui.css +40 -3
- package/dist/styles/style-dependencies.json +18 -6
- package/dist/styles/styles.css +456 -246
- package/dist/styles/tailwind.css +40 -93
- 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 +20 -10
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/ui/form/form.tsx", "../../../../src/components/ui/form/form.script.tsx", "../../../../src/components/ui/form/form-context.ts", "../../../../src/components/ui/form/resolvers.ts", "../../../../src/components/ui/form/form-store.ts", "../../../../src/components/ui/form/control-protocol.ts"],
|
|
4
|
-
"sourcesContent": ["import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport \"./form.script\";\nexport function RuiForm({\n children,\n defaultValues,\n defaultValuesData,\n resolver,\n reValidateMode,\n onSubmit,\n action,\n method,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-form\", {\n ...props,\n action,\n method,\n reValidateMode,\n \"attr:revalidate-mode\": reValidateMode,\n \"prop:defaultValues\": defaultValues,\n \"prop:resolver\": resolver,\n \"prop:onSubmit\": onSubmit,\n data: {\n defaultValues: defaultValuesData ?? (defaultValues !== void 0 ? JSON.stringify(defaultValues) : void 0)\n },\n children: /* @__PURE__ */jsx(\"form\", {\n class: \"rui-form\",\n \"data-ref\": \"form\",\n noValidate: true,\n action,\n method,\n children\n })\n });\n}", "let _initProto, _initClass, _init_formProvider, _init_extra_formProvider, _init_submitEvent, _init_extra_submitEvent, _init_invalidEvent, _init_extra_invalidEvent, _init_defaultValues, _init_extra_defaultValues, _init_defaultValuesData, _init_extra_defaultValuesData, _init_resolver, _init_extra_resolver, _init_mode, _init_extra_mode, _init_reValidateMode, _init_extra_reValidateMode, _init_action, _init_extra_action, _init_method, _init_extra_method;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { RadiantElement, customElement, event, onEvent, onUpdated, prop } from \"@ecopages/radiant\";\nimport { provideContext } from \"@ecopages/radiant/context\";\nimport { formContext } from \"./form-context\";\nimport { FormStore } from \"./form-store\";\nimport { RUI_FORM_DEFAULT_VALUES_ATTR } from \"./control-protocol\";\nconst noopUnregister = () => {};\nconst initialFormActions = {\n register: () => noopUnregister,\n updateFieldOptions: () => {},\n handleFieldChange: () => {},\n handleFieldBlur: () => {},\n subscribePresentation: () => noopUnregister\n};\nlet _RuiForm;\nclass RuiForm extends RadiantElement {\n static {\n ({\n e: [_init_formProvider, _init_extra_formProvider, _init_submitEvent, _init_extra_submitEvent, _init_invalidEvent, _init_extra_invalidEvent, _init_defaultValues, _init_extra_defaultValues, _init_defaultValuesData, _init_extra_defaultValuesData, _init_resolver, _init_extra_resolver, _init_mode, _init_extra_mode, _init_reValidateMode, _init_extra_reValidateMode, _init_action, _init_extra_action, _init_method, _init_extra_method, _initProto],\n c: [_RuiForm, _initClass]\n } = _applyDecs(this, [customElement(\"rui-form\")], [[provideContext({\n context: formContext,\n initialValue: {\n ready: false,\n revision: 0,\n fields: {},\n errors: {},\n actions: initialFormActions\n }\n }), 0, \"formProvider\"], [event({\n name: \"rui-submit\",\n bubbles: true,\n composed: true\n }), 0, \"submitEvent\"], [event({\n name: \"rui-invalid\",\n bubbles: true,\n composed: true\n }), 0, \"invalidEvent\"], [prop({\n type: Object,\n defaultValue: {}\n }), 0, \"defaultValues\"], [prop({\n type: String,\n attribute: RUI_FORM_DEFAULT_VALUES_ATTR\n }), 0, \"defaultValuesData\"], [prop({\n type: Object\n }), 0, \"resolver\"], [prop({\n type: String,\n reflect: true,\n defaultValue: \"onSubmit\"\n }), 0, \"mode\"], [prop({\n type: String,\n reflect: true,\n attribute: \"revalidate-mode\",\n defaultValue: \"onChange\"\n }), 0, \"reValidateMode\"], [prop({\n type: String,\n reflect: true\n }), 0, \"action\"], [prop({\n type: String,\n reflect: true\n }), 0, \"method\"], [onUpdated([\"defaultValues\", \"defaultValuesData\", \"mode\", \"reValidateMode\"]), 2, \"syncOptions\"], [onUpdated([\"resolver\"]), 2, \"syncResolver\"], [onEvent({\n selector: \"button[type=submit]\",\n type: \"click\"\n }), 2, \"onSubmitButtonClick\"], [onEvent({\n ref: \"form\",\n type: \"submit\"\n }), 2, \"onNativeSubmit\"], [onEvent({\n ref: \"form\",\n type: \"reset\"\n }), 2, \"onNativeReset\"]], 0, void 0, RadiantElement));\n }\n formProvider = (_initProto(this), _init_formProvider(this));\n submitEvent = (_init_extra_formProvider(this), _init_submitEvent(this));\n invalidEvent = (_init_extra_submitEvent(this), _init_invalidEvent(this));\n defaultValues = (_init_extra_invalidEvent(this), _init_defaultValues(this));\n defaultValuesData = (_init_extra_defaultValues(this), _init_defaultValuesData(this));\n resolver = (_init_extra_defaultValuesData(this), _init_resolver(this));\n mode = (_init_extra_resolver(this), _init_mode(this));\n reValidateMode = (_init_extra_mode(this), _init_reValidateMode(this));\n action = (_init_extra_reValidateMode(this), _init_action(this));\n method = (_init_extra_action(this), _init_method(this));\n onSubmit = void _init_extra_method(this);\n store;\n unsubscribeStore;\n nativeFormId = `rui-form-native-${Math.random().toString(36).slice(2, 9)}`;\n lastPublishedRevision = -1;\n lastPublishedContext;\n presentationListeners = /* @__PURE__ */new Set();\n formActions = {\n register: registration => {\n const store = this.ensureStore();\n const unregister = store.register(registration);\n this.publishFormContext({\n force: true\n });\n return () => {\n unregister();\n this.publishFormContext({\n force: true\n });\n };\n },\n updateFieldOptions: (name, options) => {\n this.ensureStore().updateFieldOptions(name, options);\n },\n handleFieldChange: name => {\n void this.ensureStore().handleFieldChange(name).then(() => this.publishFormContext({\n force: true\n }));\n },\n handleFieldBlur: name => {\n void this.ensureStore().handleFieldBlur(name).then(() => this.publishFormContext({\n force: true\n }));\n },\n subscribePresentation: listener => {\n this.presentationListeners.add(listener);\n if (this.lastPublishedContext) {\n listener(this.lastPublishedContext);\n }\n return () => this.presentationListeners.delete(listener);\n }\n };\n connectedCallback() {\n super.connectedCallback();\n this.ensureStore();\n this.publishFormContext({\n force: true\n });\n }\n onConnected() {\n this.wireOrphanSubmitButtons();\n }\n queryNativeForm() {\n return this.getRef(\"form\");\n }\n /** Link submit buttons left on the host outside the composed native `<form>`. */\n wireOrphanSubmitButtons() {\n const formEl = this.queryNativeForm();\n if (!formEl) {\n return;\n }\n if (!formEl.id) {\n formEl.id = this.nativeFormId;\n }\n for (const btn of this.querySelectorAll(\"button[type=submit]\")) {\n if (formEl.contains(btn)) {\n continue;\n }\n btn.setAttribute(\"form\", formEl.id);\n }\n }\n runFormSubmit() {\n const store = this.ensureStore();\n void store.handleSubmit(async values => {\n this.submitEvent.emit({\n values\n });\n if (typeof this.onSubmit === \"function\") {\n await this.onSubmit(values);\n return;\n }\n if (this.hasNativeSubmission()) {\n this.queryNativeForm()?.submit();\n }\n }, errors => {\n this.invalidEvent.emit({\n errors\n });\n });\n }\n hasNativeSubmission() {\n return typeof this.onSubmit !== \"function\" && (this.getAttribute(\"action\") !== null || this.getAttribute(\"method\") !== null);\n }\n disconnectedCallback() {\n this.unsubscribeStore?.();\n this.unsubscribeStore = void 0;\n super.disconnectedCallback();\n }\n resolveMode() {\n const fromAttr = this.getAttribute(\"mode\");\n if (fromAttr) {\n return fromAttr;\n }\n return this.mode ?? \"onSubmit\";\n }\n resolveReValidateMode() {\n const fromAttr = this.getAttribute(\"revalidate-mode\");\n if (fromAttr) {\n return fromAttr;\n }\n return this.reValidateMode ?? \"onChange\";\n }\n resolveDefaultValues() {\n if (this.defaultValues && Object.keys(this.defaultValues).length > 0) {\n return this.defaultValues;\n }\n const raw = this.defaultValuesData ?? this.getAttribute(RUI_FORM_DEFAULT_VALUES_ATTR);\n if (!raw) {\n return this.defaultValues ?? {};\n }\n try {\n const parsed = JSON.parse(raw);\n return parsed && typeof parsed === \"object\" && !Array.isArray(parsed) ? parsed : {};\n } catch {\n return this.defaultValues ?? {};\n }\n }\n ensureStore() {\n if (this.store) {\n return this.store;\n }\n this.store = new FormStore({\n defaultValues: this.resolveDefaultValues(),\n resolver: typeof this.resolver === \"function\" ? this.resolver : void 0,\n mode: this.resolveMode(),\n reValidateMode: this.resolveReValidateMode()\n });\n this.unsubscribeStore = this.store.subscribe(() => this.publishFormContext());\n return this.store;\n }\n buildFieldPresentations(store) {\n const fields = {};\n for (const name of store.getRegisteredFieldNames()) {\n const message = store.getFieldError(name);\n const show = store.shouldDisplayFieldError(name);\n fields[name] = {\n error: show ? message : void 0,\n invalid: Boolean(show && message)\n };\n }\n return fields;\n }\n publishFormContext(options) {\n const store = this.store;\n if (!store) {\n return;\n }\n const revision = store.getRevision();\n if (!options?.force && revision === this.lastPublishedRevision) {\n return;\n }\n this.lastPublishedRevision = revision;\n const nextContext = {\n ready: true,\n revision,\n fields: this.buildFieldPresentations(store),\n errors: {\n ...store.errors\n },\n actions: this.formActions\n };\n this.lastPublishedContext = nextContext;\n this.formProvider.setContext(nextContext);\n for (const listener of this.presentationListeners) {\n listener(nextContext);\n }\n }\n syncOptions() {\n const store = this.ensureStore();\n store.updateOptions({\n defaultValues: this.resolveDefaultValues(),\n mode: this.resolveMode(),\n reValidateMode: this.resolveReValidateMode()\n });\n }\n syncResolver() {\n if (typeof this.resolver === \"function\") {\n this.ensureStore().updateOptions({\n resolver: this.resolver\n });\n }\n }\n onSubmitButtonClick(event2) {\n event2.preventDefault();\n this.runFormSubmit();\n }\n onNativeSubmit(event2) {\n event2.preventDefault();\n this.runFormSubmit();\n }\n onNativeReset() {\n this.store?.reset();\n }\n static {\n _initClass();\n }\n}\nexport { _RuiForm as RuiForm };", "import { createContext } from \"@ecopages/radiant/context\";\nexport const formContext = createContext(/* @__PURE__ */Symbol.for(\"rui-form-context\"));", "function resolveRuleMessage(fallback, rule) {\n if (rule === void 0 || rule === false) {\n return void 0;\n }\n if (typeof rule === \"string\") {\n return rule;\n }\n if (typeof rule === \"object\" && rule !== null && \"message\" in rule && typeof rule.message === \"string\") {\n return rule.message;\n }\n return fallback;\n}\nfunction ruleValue(rule) {\n if (typeof rule === \"object\" && rule !== null && \"value\" in rule) {\n return rule.value;\n }\n return rule;\n}\nasync function validateFieldRules(_valueName, value, rules, values) {\n if (!rules) return void 0;\n for (const validator of [validateRequired, validateNumericRange, validateTextRules, validateCustomRules]) {\n const message = await validator(value, rules, values);\n if (message) return message;\n }\n return void 0;\n}\nfunction validateRequired(value, rules) {\n const empty = value === void 0 || value === null || value === \"\" || value === false || Array.isArray(value) && value.length === 0;\n return rules.required && empty ? resolveRuleMessage(\"This field is required\", rules.required) ?? \"This field is required\" : void 0;\n}\nfunction validateNumericRange(value, rules) {\n const numberValue = typeof value === \"number\" ? value : typeof value === \"string\" && value !== \"\" ? Number(value) : void 0;\n if (numberValue === void 0 || Number.isNaN(numberValue)) return void 0;\n if (rules.min !== void 0 && numberValue < ruleValue(rules.min)) return resolveRuleMessage(`Minimum value is ${ruleValue(rules.min)}`, rules.min);\n if (rules.max !== void 0 && numberValue > ruleValue(rules.max)) return resolveRuleMessage(`Maximum value is ${ruleValue(rules.max)}`, rules.max);\n return void 0;\n}\nfunction validateTextRules(value, rules) {\n const text = value == null ? \"\" : String(value);\n if (rules.minLength !== void 0 && text.length < ruleValue(rules.minLength)) return resolveRuleMessage(`Minimum length is ${ruleValue(rules.minLength)}`, rules.minLength);\n if (rules.maxLength !== void 0 && text.length > ruleValue(rules.maxLength)) return resolveRuleMessage(`Maximum length is ${ruleValue(rules.maxLength)}`, rules.maxLength);\n if (rules.pattern !== void 0 && !ruleValue(rules.pattern).test(text)) return resolveRuleMessage(\"Invalid format\", rules.pattern) ?? \"Invalid format\";\n return void 0;\n}\nasync function validateCustomRules(value, rules, values) {\n if (!rules.validate) return void 0;\n const validators = typeof rules.validate === \"function\" ? [rules.validate] : Object.values(rules.validate);\n for (const validate of validators) {\n const result = await validate(value, values);\n if (result !== true && result !== void 0) return result === false ? \"Invalid value\" : String(result);\n }\n return void 0;\n}\nexport async function runRulesResolver(values, context, names) {\n const targetNames = names ?? Object.keys(context.fields);\n const errors = {};\n for (const name of targetNames) {\n const rules = context.fields[name]?.rules;\n const message = await validateFieldRules(name, values[name], rules, values);\n if (message) {\n errors[name] = {\n type: \"validation\",\n message\n };\n }\n }\n if (Object.keys(errors).length > 0) {\n return {\n values: {},\n errors\n };\n }\n return {\n values,\n errors: {}\n };\n}\nexport function createRulesResolver() {\n return (values, context, options) => runRulesResolver(values, context, options.names);\n}", "import { createRulesResolver } from \"./resolvers\";\nfunction normalizeResolver(resolver) {\n if (typeof resolver === \"function\") {\n return resolver;\n }\n return createRulesResolver();\n}\nexport class FormStore {\n mode;\n reValidateMode;\n resolver;\n fields = /* @__PURE__ */new Map();\n listeners = /* @__PURE__ */new Set();\n revision = 0;\n defaultValues;\n values;\n errors = {};\n touched = {};\n dirty = {};\n isSubmitting = false;\n isSubmitted = false;\n constructor(options = {}) {\n this.mode = options.mode ?? \"onSubmit\";\n this.reValidateMode = options.reValidateMode ?? \"onChange\";\n this.resolver = normalizeResolver(options.resolver);\n this.defaultValues = {\n ...(options.defaultValues ?? {})\n };\n this.values = {\n ...this.defaultValues,\n ...(options.values ?? {})\n };\n }\n /** Update options without dropping registered fields. */\n updateOptions(options) {\n if (options.mode !== void 0) {\n this.mode = options.mode;\n }\n if (options.reValidateMode !== void 0) {\n this.reValidateMode = options.reValidateMode;\n }\n if (options.resolver !== void 0) {\n this.resolver = normalizeResolver(options.resolver);\n }\n if (options.defaultValues !== void 0) {\n this.defaultValues = {\n ...options.defaultValues\n };\n }\n }\n subscribe(listener) {\n this.listeners.add(listener);\n return () => this.listeners.delete(listener);\n }\n notify() {\n this.revision += 1;\n for (const listener of this.listeners) {\n listener();\n }\n }\n getRevision() {\n return this.revision;\n }\n getRegisteredFieldNames() {\n return Array.from(this.fields.keys());\n }\n register(registration) {\n const existing = this.fields.get(registration.name);\n const entry = {\n ...registration,\n rules: registration.rules ?? existing?.rules,\n defaultValue: registration.defaultValue ?? existing?.defaultValue,\n getRules: registration.getRules ?? existing?.getRules\n };\n this.fields.set(registration.name, entry);\n if (this.values[registration.name] === void 0 && entry.defaultValue !== void 0) {\n this.values = {\n ...this.values,\n [registration.name]: entry.defaultValue\n };\n }\n entry.setValue(this.values[registration.name]);\n return () => {\n const current = this.fields.get(registration.name);\n if (current === entry) {\n this.fields.delete(registration.name);\n this.notify();\n }\n };\n }\n updateFieldOptions(name, options) {\n const field = this.fields.get(name);\n if (!field) {\n return;\n }\n if (options.rules !== void 0) {\n field.rules = options.rules;\n }\n if (options.defaultValue !== void 0) {\n field.defaultValue = options.defaultValue;\n }\n }\n getValues() {\n const next = {\n ...this.values\n };\n for (const [name, field] of this.fields) {\n next[name] = field.getValue();\n }\n return next;\n }\n setValue(name, value, options) {\n this.values = {\n ...this.values,\n [name]: value\n };\n const field = this.fields.get(String(name));\n field?.setValue(value);\n if (options?.shouldDirty) {\n this.dirty = {\n ...this.dirty,\n [name]: true\n };\n }\n if (options?.shouldTouch) {\n this.touched = {\n ...this.touched,\n [name]: true\n };\n }\n this.notify();\n }\n markTouched(name) {\n this.touched = {\n ...this.touched,\n [name]: true\n };\n this.notify();\n }\n markDirty(name) {\n this.dirty = {\n ...this.dirty,\n [name]: true\n };\n this.notify();\n }\n clearErrors(name) {\n if (name) {\n const next = {\n ...this.errors\n };\n delete next[name];\n this.errors = next;\n this.notify();\n return;\n }\n this.errors = {};\n this.notify();\n }\n getFieldError(name) {\n return this.errors[name]?.message;\n }\n getState() {\n const values = this.getValues();\n const errorCount = Object.keys(this.errors).length;\n return {\n values,\n errors: this.errors,\n touched: this.touched,\n dirty: this.dirty,\n isSubmitting: this.isSubmitting,\n isSubmitted: this.isSubmitted,\n isValid: errorCount === 0\n };\n }\n async validateField(name) {\n const values = this.getValues();\n const result = await this.resolver(values, {\n fields: this.buildResolverFields()\n }, {\n names: [name]\n });\n const message = result.errors[name]?.message;\n const next = {\n ...this.errors\n };\n if (message) {\n next[name] = {\n type: \"validation\",\n message\n };\n } else {\n delete next[name];\n }\n this.errors = next;\n this.notify();\n return !message;\n }\n async validateAll() {\n const values = this.getValues();\n const result = await this.resolver(values, {\n fields: this.buildResolverFields()\n }, {});\n this.errors = result.errors;\n this.notify();\n return Object.keys(this.errors).length === 0;\n }\n shouldValidate(name, trigger) {\n const mode = this.isSubmitted ? this.reValidateMode : this.mode;\n switch (mode) {\n case \"all\":\n return true;\n case \"onChange\":\n return trigger === \"change\";\n case \"onBlur\":\n return trigger === \"blur\";\n case \"onTouched\":\n return trigger === \"blur\" && Boolean(this.touched[name]);\n case \"onSubmit\":\n return false;\n default:\n return false;\n }\n }\n async handleFieldChange(name) {\n const field = this.fields.get(name);\n if (!field) {\n return;\n }\n const value = field.getValue();\n this.values = {\n ...this.values,\n [name]: value\n };\n this.dirty = {\n ...this.dirty,\n [name]: true\n };\n if (this.shouldValidate(name, \"change\")) {\n await this.validateField(name);\n } else {\n this.notify();\n }\n }\n async handleFieldBlur(name) {\n this.markTouched(name);\n if (this.shouldValidate(name, \"blur\")) {\n await this.validateField(name);\n } else {\n this.notify();\n }\n }\n /** Whether a field's validation message should be shown in the UI (RHF-style). */\n shouldDisplayFieldError(name) {\n const message = this.errors[name]?.message;\n if (!message) {\n return false;\n }\n if (this.isSubmitted) {\n return true;\n }\n switch (this.mode) {\n case \"all\":\n return Boolean(this.dirty[name] || this.touched[name]);\n case \"onChange\":\n return Boolean(this.dirty[name]);\n case \"onBlur\":\n case \"onTouched\":\n return Boolean(this.touched[name]);\n case \"onSubmit\":\n default:\n return false;\n }\n }\n async handleSubmit(onValid, onInvalid) {\n this.isSubmitting = true;\n this.isSubmitted = true;\n for (const name of this.fields.keys()) {\n this.touched = {\n ...this.touched,\n [name]: true\n };\n }\n this.notify();\n const valid = await this.validateAll();\n this.isSubmitting = false;\n this.notify();\n if (valid) {\n await onValid(this.getValues());\n return;\n }\n onInvalid?.(this.errors);\n }\n reset(values) {\n const nextDefaults = values ?? {\n ...this.defaultValues,\n ...this.collectFieldDefaults()\n };\n this.values = {\n ...nextDefaults\n };\n this.errors = {};\n this.touched = {};\n this.dirty = {};\n this.isSubmitted = false;\n this.isSubmitting = false;\n for (const field of this.fields.values()) {\n field.setValue(this.values[field.name]);\n }\n this.notify();\n }\n collectFieldDefaults() {\n const defaults = {};\n for (const [name, field] of this.fields) {\n if (field.defaultValue !== void 0) {\n defaults[name] = field.defaultValue;\n }\n }\n return defaults;\n }\n buildResolverFields() {\n const fields = {};\n for (const [name, field] of this.fields) {\n const rules = field.getRules?.() ?? field.rules;\n fields[name] = {\n rules\n };\n }\n return fields;\n }\n}", "export const RUI_CONTROL_ATTR = \"data-rui-control\";\nexport const RUI_FIELD_MANAGED_ATTR = \"data-rui-field-managed\";\nexport const RUI_FIELD_LABEL_ATTR = \"data-rui-field-label\";\nexport const RUI_FIELD_DESCRIPTION_ATTR = \"data-rui-field-description\";\nexport const RUI_FIELD_ERROR_ATTR = \"data-rui-field-error\";\nexport const RUI_FIELD_DEFAULT_VALUE_ATTR = \"data-default-value\";\nexport const RUI_FORM_DEFAULT_VALUES_ATTR = \"data-default-values\";\nconst FIELD_COLUMN_SELECTOR = '[data-ref=\"field\"]';\nconst HOST_CONTROL_TAGS = /* @__PURE__ */new Set([\"rui-combobox\", \"rui-date-field\", \"rui-date-range-picker\", \"rui-select\", \"rui-tag-group\", \"rui-checkbox\", \"rui-checkbox-group\", \"rui-switch\", \"rui-radio-group\", \"rui-slider\", \"rui-knob\", \"rui-number-field\", \"rui-listbox\"]);\nconst CONTROL_SELECTOR = `[${RUI_CONTROL_ATTR}], ${Array.from(HOST_CONTROL_TAGS).join(\", \")}`;\nconst ARIA_TARGET_SELECTORS = {\n \"rui-combobox\": \"[data-combobox-input]\",\n \"rui-date-field\": \"[data-date-field-input]\",\n \"rui-date-range-picker\": \"[data-range-start]\",\n \"rui-select\": \"[data-select-trigger]\",\n \"rui-tag-group\": \"[data-tag-list]\",\n \"rui-number-field\": \"[data-number-field-input], input\",\n \"rui-knob\": \"[data-knob-control]\",\n \"rui-checkbox\": \"input\",\n \"rui-checkbox-group\": \"[data-checkbox-group-root]\",\n \"rui-switch\": \"input\"\n};\nexport function isNativeTextControl(node) {\n return node.localName === \"input\" || node.localName === \"textarea\";\n}\nfunction isNativeInput(node) {\n return node.localName === \"input\";\n}\nfunction isNativeTextarea(node) {\n return node.localName === \"textarea\";\n}\nconst stringValueAdapter = {\n read: host => {\n const value = Reflect.get(host, \"value\");\n return typeof value === \"string\" ? value : host.getAttribute(\"value\") ?? \"\";\n },\n write: (host, value) => {\n const next = value == null ? \"\" : String(value);\n host.setAttribute(\"value\", next);\n if (\"value\" in host) {\n Reflect.set(host, \"value\", next);\n }\n }\n};\nconst numberValueAdapter = {\n read: host => {\n const value = Reflect.get(host, \"value\");\n if (typeof value === \"number\") {\n return value;\n }\n const raw = host.getAttribute(\"value\");\n return raw == null || raw === \"\" ? \"\" : Number(raw);\n },\n write: (host, value) => {\n const next = value == null ? \"\" : String(value);\n host.setAttribute(\"value\", next);\n if (\"value\" in host) {\n Reflect.set(host, \"value\", value);\n }\n }\n};\nconst booleanValueAdapter = {\n read: host => {\n const input = host.querySelector('input[type=\"checkbox\"]');\n return input?.checked ?? host.hasAttribute(\"checked\");\n },\n write: (host, value) => {\n if (value) {\n host.setAttribute(\"checked\", \"\");\n } else {\n host.removeAttribute(\"checked\");\n }\n }\n};\nfunction readNumberProperty(host, property, attribute) {\n const value = Reflect.get(host, property);\n if (typeof value === \"number\" && Number.isFinite(value)) {\n return value;\n }\n const raw = host.getAttribute(attribute);\n return raw == null || raw === \"\" ? \"\" : Number(raw);\n}\nfunction isRangeSlider(host) {\n const variant = Reflect.get(host, \"variant\");\n return variant === \"range\" || host.getAttribute(\"variant\") === \"range\";\n}\nconst sliderValueAdapter = {\n read: host => {\n if (isRangeSlider(host)) {\n return [readNumberProperty(host, \"rangeMin\", \"range-min\"), readNumberProperty(host, \"rangeMax\", \"range-max\")];\n }\n return numberValueAdapter.read(host);\n },\n write: (host, value) => {\n if (Array.isArray(value) && value.length >= 2) {\n host.setAttribute(\"variant\", \"range\");\n if (\"variant\" in host) {\n Reflect.set(host, \"variant\", \"range\");\n }\n host.setAttribute(\"range-min\", String(value[0]));\n host.setAttribute(\"range-max\", String(value[1]));\n if (\"rangeMin\" in host) {\n Reflect.set(host, \"rangeMin\", value[0]);\n }\n if (\"rangeMax\" in host) {\n Reflect.set(host, \"rangeMax\", value[1]);\n }\n return;\n }\n numberValueAdapter.write(host, value);\n }\n};\nconst CONTROL_VALUE_ADAPTERS = /* @__PURE__ */new Map([[\"rui-checkbox\", booleanValueAdapter], [\"rui-switch\", booleanValueAdapter], [\"rui-combobox\", stringValueAdapter], [\"rui-date-field\", stringValueAdapter], [\"rui-date-range-picker\", stringValueAdapter], [\"rui-select\", stringValueAdapter], [\"rui-radio-group\", stringValueAdapter], [\"rui-checkbox-group\", stringValueAdapter], [\"rui-listbox\", stringValueAdapter], [\"rui-tag-group\", stringValueAdapter], [\"rui-slider\", sliderValueAdapter], [\"rui-knob\", numberValueAdapter], [\"rui-number-field\", numberValueAdapter]]);\nfunction forEachFieldContentNode(root, visit) {\n const slotHost = root;\n const visited = /* @__PURE__ */new Set();\n const safeVisit = node => {\n if (visited.has(node)) {\n return;\n }\n visited.add(node);\n visit(node);\n };\n if (typeof slotHost.getSlotElements === \"function\") {\n for (const node of slotHost.getSlotElements()) {\n safeVisit(node);\n }\n }\n const renderRoot = root.querySelector(FIELD_COLUMN_SELECTOR) ?? root;\n for (const child of Array.from(renderRoot.children)) {\n safeVisit(child);\n }\n for (const node of renderRoot.querySelectorAll(\"*\")) {\n safeVisit(node);\n }\n for (const child of Array.from(root.children)) {\n safeVisit(child);\n }\n const shadow = root.shadowRoot;\n if (shadow) {\n for (const child of Array.from(shadow.children)) {\n safeVisit(child);\n }\n }\n}\nfunction queryFieldContent(root, selector) {\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found || !(node instanceof HTMLElement)) {\n return;\n }\n if (node.matches(selector)) {\n found = node;\n return;\n }\n found = node.querySelector(selector);\n });\n return found;\n}\nfunction pickPrimaryFieldControl(candidates) {\n if (candidates.length === 0) {\n return null;\n }\n if (candidates.length === 1) {\n return candidates[0];\n }\n const hostControl = candidates.find(candidate => HOST_CONTROL_TAGS.has(candidate.localName));\n const markedControl = candidates.find(candidate => candidate.hasAttribute(RUI_CONTROL_ATTR));\n if (markedControl) {\n return markedControl;\n }\n if (hostControl) {\n return hostControl;\n }\n const active = document.activeElement;\n if (active instanceof HTMLElement) {\n for (const candidate of candidates) {\n if (candidate === active || candidate.contains(active)) {\n return candidate;\n }\n }\n }\n const visible = candidates.filter(el => el.isConnected && el.getClientRects().length > 0 && !el.closest('[hidden],[aria-hidden=\"true\"]'));\n const pool = visible.length > 0 ? visible : candidates.filter(el => el.isConnected);\n return pool[pool.length - 1] ?? candidates[candidates.length - 1];\n}\nfunction listFieldControlsInRenderTree(root) {\n const renderRoot = root.querySelector(FIELD_COLUMN_SELECTOR);\n if (!(renderRoot instanceof HTMLElement)) {\n return [];\n }\n return Array.from(renderRoot.querySelectorAll(CONTROL_SELECTOR)).filter(el => root.contains(el));\n}\nexport function findFieldControl(root) {\n const fromRenderTree = pickPrimaryFieldControl(listFieldControlsInRenderTree(root));\n if (fromRenderTree) {\n return fromRenderTree;\n }\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found) {\n return;\n }\n const match = findControlInSubtree(node);\n if (match) {\n found = match;\n }\n });\n if (found) {\n return found;\n }\n const renderRoot = root.querySelector(FIELD_COLUMN_SELECTOR) ?? root;\n return findControlInSubtree(renderRoot);\n}\nfunction findControlInSubtree(node) {\n if (!(node instanceof HTMLElement)) {\n return null;\n }\n if (node.matches(`[${RUI_CONTROL_ATTR}]`) || HOST_CONTROL_TAGS.has(node.localName)) {\n return node;\n }\n return node.querySelector(CONTROL_SELECTOR);\n}\nexport function readControlValue(control) {\n if (isNativeInput(control)) {\n const host2 = resolveControlHost(control);\n const adapter = host2 === control ? void 0 : CONTROL_VALUE_ADAPTERS.get(host2.localName);\n if (adapter) {\n return adapter.read(host2);\n }\n if (control.type === \"checkbox\") {\n return control.checked;\n }\n if (control.type === \"number\" || control.type === \"range\") {\n return control.value === \"\" ? \"\" : Number(control.value);\n }\n return control.value;\n }\n if (isNativeTextarea(control)) {\n return control.value;\n }\n const host = resolveControlHost(control);\n return CONTROL_VALUE_ADAPTERS.get(host.localName)?.read(host) ?? host.getAttribute(\"value\") ?? \"\";\n}\nexport function writeControlValue(control, value) {\n if (isNativeInput(control)) {\n const host2 = resolveControlHost(control);\n const adapter = host2 === control ? void 0 : CONTROL_VALUE_ADAPTERS.get(host2.localName);\n if (adapter) {\n adapter.write(host2, value);\n return;\n }\n if (control.type === \"checkbox\") {\n control.checked = Boolean(value);\n const ce = control.closest(\"rui-checkbox, rui-switch\");\n if (ce) {\n if (value) {\n ce.setAttribute(\"checked\", \"\");\n } else {\n ce.removeAttribute(\"checked\");\n }\n }\n return;\n }\n control.value = value == null ? \"\" : String(value);\n return;\n }\n if (isNativeTextarea(control)) {\n control.value = value == null ? \"\" : String(value);\n return;\n }\n const host = resolveControlHost(control);\n CONTROL_VALUE_ADAPTERS.get(host.localName)?.write(host, value);\n}\nfunction resolveControlHost(control) {\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n const host = control.closest(Array.from(HOST_CONTROL_TAGS).join(\",\"));\n return host ?? control;\n }\n return control;\n}\nexport function findFieldLabel(root) {\n return queryFieldContent(root, `[${RUI_FIELD_LABEL_ATTR}]`);\n}\nexport function findFieldDescription(root) {\n return queryFieldContent(root, `[${RUI_FIELD_DESCRIPTION_ATTR}]`);\n}\nexport function findFieldError(root) {\n const all = findFieldErrorElements(root);\n return all[0] ?? null;\n}\nexport function findFieldErrorElements(root) {\n const renderRoot = root.querySelector(FIELD_COLUMN_SELECTOR);\n if (renderRoot instanceof HTMLElement) {\n const inRender = Array.from(renderRoot.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n const visible = inRender.filter(el => el.getClientRects().length > 0);\n if (visible.length > 0) {\n return visible;\n }\n if (inRender.length > 0) {\n return inRender;\n }\n }\n const fromDom = Array.from(root.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n if (fromDom.length > 0) {\n return fromDom;\n }\n const single = queryFieldContent(root, `[${RUI_FIELD_ERROR_ATTR}]`);\n return single ? [single] : [];\n}\nexport function wireFieldControlName(controlHost, ariaTarget, name) {\n if (!name) {\n return;\n }\n if (ariaTarget && isNativeTextControl(ariaTarget)) {\n ariaTarget.name = name;\n }\n if (!controlHost) {\n return;\n }\n if (controlHost === ariaTarget) {\n return;\n }\n if (HOST_CONTROL_TAGS.has(controlHost.localName)) {\n controlHost.setAttribute(\"name\", name);\n }\n}\nfunction isChecked(input) {\n const checked = Reflect.get(input, \"checked\");\n return typeof checked === \"boolean\" ? checked : input.hasAttribute(\"checked\");\n}\nexport function getAriaControlTarget(control) {\n if (isNativeTextControl(control)) {\n return control;\n }\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n return control;\n }\n if (control.localName === \"rui-slider\") {\n return control.querySelector(\"[data-thumb]:not([hidden])\") ?? control;\n }\n const marked = control.querySelector(`[${RUI_CONTROL_ATTR}]`);\n if (marked) {\n return marked;\n }\n if (control.localName === \"rui-radio-group\") {\n return getSelectedRadio(control) ?? control;\n }\n const selector = ARIA_TARGET_SELECTORS[control.localName];\n return selector ? control.querySelector(selector) ?? control : control;\n}\nfunction getSelectedRadio(control) {\n const radios = control.querySelectorAll('input[type=\"radio\"]');\n return Array.from(radios).find(isChecked) ?? radios[0];\n}\nexport function getAriaControlTargets(control) {\n if (control.localName === \"rui-slider\") {\n const thumbs = Array.from(control.querySelectorAll(\"[data-thumb]:not([hidden])\"));\n return thumbs.length > 0 ? thumbs : [control];\n }\n return [getAriaControlTarget(control)];\n}"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["jsx", "RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "provideContext", "createContext", "formContext", "resolveRuleMessage", "fallback", "rule", "ruleValue", "validateFieldRules", "_valueName", "value", "rules", "values", "validator", "validateRequired", "validateNumericRange", "validateTextRules", "validateCustomRules", "message", "empty", "numberValue", "text", "validators", "validate", "result", "runRulesResolver", "context", "names", "targetNames", "errors", "name", "createRulesResolver", "options", "normalizeResolver", "resolver", "createRulesResolver", "FormStore", "options", "listener", "registration", "existing", "entry", "name", "field", "next", "value", "values", "errorCount", "message", "result", "trigger", "onValid", "onInvalid", "valid", "nextDefaults", "defaults", "fields", "rules", "RUI_CONTROL_ATTR", "RUI_FIELD_MANAGED_ATTR", "RUI_FIELD_LABEL_ATTR", "RUI_FIELD_DESCRIPTION_ATTR", "RUI_FIELD_ERROR_ATTR", "RUI_FORM_DEFAULT_VALUES_ATTR", "FIELD_COLUMN_SELECTOR", "
|
|
3
|
+
"sources": ["../../../../src/components/ui/form/form.tsx", "../../../../src/components/ui/form/form.script.tsx", "../../../../src/components/ui/form/form-context.ts", "../../../../src/components/ui/form/resolvers.ts", "../../../../src/components/ui/form/form-store.ts", "../../../../src/components/ui/shared/multi-value.ts", "../../../../src/components/ui/form/control-protocol.ts", "../../../../src/lib/unique-id.ts"],
|
|
4
|
+
"sourcesContent": ["import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport \"./form.script\";\nexport function RuiForm({\n children,\n defaultValues,\n defaultValuesData,\n resolver,\n reValidateMode,\n onSubmit,\n action,\n method,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-form\", {\n ...props,\n action,\n method,\n reValidateMode,\n \"attr:revalidate-mode\": reValidateMode,\n \"prop:defaultValues\": defaultValues,\n \"prop:resolver\": resolver,\n \"prop:onSubmit\": onSubmit,\n data: {\n defaultValues: defaultValuesData ?? (defaultValues !== void 0 ? JSON.stringify(defaultValues) : void 0)\n },\n children: /* @__PURE__ */jsx(\"form\", {\n class: \"rui-form\",\n \"data-ref\": \"form\",\n noValidate: true,\n action,\n method,\n children\n })\n });\n}", "let _initProto, _initClass, _init_formProvider, _init_extra_formProvider, _init_submitEvent, _init_extra_submitEvent, _init_invalidEvent, _init_extra_invalidEvent, _init_defaultValues, _init_extra_defaultValues, _init_defaultValuesData, _init_extra_defaultValuesData, _init_resolver, _init_extra_resolver, _init_mode, _init_extra_mode, _init_reValidateMode, _init_extra_reValidateMode, _init_action, _init_extra_action, _init_method, _init_extra_method;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { RadiantElement, customElement, event, onEvent, onUpdated, prop } from \"@ecopages/radiant\";\nimport { provideContext } from \"@ecopages/radiant/context\";\nimport { formContext } from \"./form-context\";\nimport { FormStore } from \"./form-store\";\nimport { RUI_FORM_DEFAULT_VALUES_ATTR } from \"./control-protocol\";\nimport { uniqueId } from \"@/lib/unique-id\";\nconst noopUnregister = () => {};\nconst initialFormActions = {\n register: () => noopUnregister,\n updateFieldOptions: () => {},\n handleFieldChange: () => {},\n handleFieldBlur: () => {},\n subscribePresentation: () => noopUnregister\n};\nlet _RuiForm;\nclass RuiForm extends RadiantElement {\n static {\n ({\n e: [_init_formProvider, _init_extra_formProvider, _init_submitEvent, _init_extra_submitEvent, _init_invalidEvent, _init_extra_invalidEvent, _init_defaultValues, _init_extra_defaultValues, _init_defaultValuesData, _init_extra_defaultValuesData, _init_resolver, _init_extra_resolver, _init_mode, _init_extra_mode, _init_reValidateMode, _init_extra_reValidateMode, _init_action, _init_extra_action, _init_method, _init_extra_method, _initProto],\n c: [_RuiForm, _initClass]\n } = _applyDecs(this, [customElement(\"rui-form\")], [[provideContext({\n context: formContext,\n initialValue: {\n ready: false,\n store: void 0,\n revision: 0,\n fields: {},\n errors: {},\n actions: initialFormActions\n },\n hydrate: Object,\n serialize: ({\n revision,\n fields,\n errors\n }) => ({\n ready: false,\n revision,\n fields,\n errors\n })\n }), 0, \"formProvider\"], [event({\n name: \"rui-submit\",\n bubbles: true,\n composed: true\n }), 0, \"submitEvent\"], [event({\n name: \"rui-invalid\",\n bubbles: true,\n composed: true\n }), 0, \"invalidEvent\"], [prop({\n type: Object,\n defaultValue: {}\n }), 0, \"defaultValues\"], [prop({\n type: String,\n attribute: RUI_FORM_DEFAULT_VALUES_ATTR\n }), 0, \"defaultValuesData\"], [prop({\n type: Object\n }), 0, \"resolver\"], [prop({\n type: String,\n reflect: true,\n defaultValue: \"onSubmit\"\n }), 0, \"mode\"], [prop({\n type: String,\n reflect: true,\n attribute: \"revalidate-mode\",\n defaultValue: \"onChange\"\n }), 0, \"reValidateMode\"], [prop({\n type: String,\n reflect: true\n }), 0, \"action\"], [prop({\n type: String,\n reflect: true\n }), 0, \"method\"], [onUpdated([\"defaultValues\", \"defaultValuesData\", \"mode\", \"reValidateMode\"]), 2, \"syncOptions\"], [onUpdated([\"resolver\"]), 2, \"syncResolver\"], [onEvent({\n selector: \"button[type=submit]\",\n type: \"click\"\n }), 2, \"onSubmitButtonClick\"], [onEvent({\n ref: \"form\",\n type: \"submit\"\n }), 2, \"onNativeSubmit\"], [onEvent({\n ref: \"form\",\n type: \"reset\"\n }), 2, \"onNativeReset\"]], 0, void 0, RadiantElement));\n }\n formProvider = (_initProto(this), _init_formProvider(this));\n submitEvent = (_init_extra_formProvider(this), _init_submitEvent(this));\n invalidEvent = (_init_extra_submitEvent(this), _init_invalidEvent(this));\n defaultValues = (_init_extra_invalidEvent(this), _init_defaultValues(this));\n defaultValuesData = (_init_extra_defaultValues(this), _init_defaultValuesData(this));\n resolver = (_init_extra_defaultValuesData(this), _init_resolver(this));\n mode = (_init_extra_resolver(this), _init_mode(this));\n reValidateMode = (_init_extra_mode(this), _init_reValidateMode(this));\n action = (_init_extra_reValidateMode(this), _init_action(this));\n method = (_init_extra_action(this), _init_method(this));\n onSubmit = void _init_extra_method(this);\n store;\n unsubscribeStore;\n nativeFormId = uniqueId(\"rui-form\");\n lastPublishedRevision = -1;\n lastPublishedContext;\n presentationListeners = /* @__PURE__ */new Set();\n formActions = {\n register: registration => {\n const store = this.ensureStore();\n const unregister = store.register(registration);\n this.publishFormContext({\n force: true\n });\n return () => {\n unregister();\n this.publishFormContext({\n force: true\n });\n };\n },\n updateFieldOptions: (name, options) => {\n this.ensureStore().updateFieldOptions(name, options);\n },\n handleFieldChange: name => {\n void this.ensureStore().handleFieldChange(name).then(() => this.publishFormContext({\n force: true\n }));\n },\n handleFieldBlur: name => {\n void this.ensureStore().handleFieldBlur(name).then(() => this.publishFormContext({\n force: true\n }));\n },\n subscribePresentation: listener => {\n this.presentationListeners.add(listener);\n if (this.lastPublishedContext) {\n listener(this.lastPublishedContext);\n }\n return () => this.presentationListeners.delete(listener);\n }\n };\n connectedCallback() {\n super.connectedCallback();\n this.ensureStore();\n this.publishFormContext({\n force: true\n });\n }\n onConnected() {\n this.wireOrphanSubmitButtons();\n }\n queryNativeForm() {\n return this.getRef(\"form\");\n }\n /** Link submit buttons left on the host outside the composed native `<form>`. */\n wireOrphanSubmitButtons() {\n const formEl = this.queryNativeForm();\n if (!formEl) {\n return;\n }\n if (!formEl.id) {\n formEl.id = this.nativeFormId;\n }\n for (const btn of this.querySelectorAll(\"button[type=submit]\")) {\n if (formEl.contains(btn)) {\n continue;\n }\n btn.setAttribute(\"form\", formEl.id);\n }\n }\n runFormSubmit() {\n const store = this.ensureStore();\n void store.handleSubmit(async values => {\n this.submitEvent.emit({\n values\n });\n if (typeof this.onSubmit === \"function\") {\n await this.onSubmit(values);\n return;\n }\n if (this.hasNativeSubmission()) {\n this.queryNativeForm()?.submit();\n }\n }, errors => {\n this.invalidEvent.emit({\n errors\n });\n });\n }\n hasNativeSubmission() {\n return typeof this.onSubmit !== \"function\" && (this.getAttribute(\"action\") !== null || this.getAttribute(\"method\") !== null);\n }\n disconnectedCallback() {\n this.unsubscribeStore?.();\n this.unsubscribeStore = void 0;\n super.disconnectedCallback();\n }\n resolveMode() {\n const fromAttr = this.getAttribute(\"mode\");\n if (fromAttr) {\n return fromAttr;\n }\n return this.mode ?? \"onSubmit\";\n }\n resolveReValidateMode() {\n const fromAttr = this.getAttribute(\"revalidate-mode\");\n if (fromAttr) {\n return fromAttr;\n }\n return this.reValidateMode ?? \"onChange\";\n }\n resolveDefaultValues() {\n if (this.defaultValues && Object.keys(this.defaultValues).length > 0) {\n return this.defaultValues;\n }\n const raw = this.defaultValuesData ?? this.getAttribute(RUI_FORM_DEFAULT_VALUES_ATTR);\n if (!raw) {\n return this.defaultValues ?? {};\n }\n try {\n const parsed = JSON.parse(raw);\n return parsed && typeof parsed === \"object\" && !Array.isArray(parsed) ? parsed : {};\n } catch {\n return this.defaultValues ?? {};\n }\n }\n ensureStore() {\n if (!this.store) {\n this.store = new FormStore({\n defaultValues: this.resolveDefaultValues(),\n resolver: typeof this.resolver === \"function\" ? this.resolver : void 0,\n mode: this.resolveMode(),\n reValidateMode: this.resolveReValidateMode()\n });\n }\n this.unsubscribeStore ??= this.store.subscribe(() => this.publishFormContext());\n return this.store;\n }\n buildFieldPresentations(store) {\n const fields = {};\n for (const name of store.getRegisteredFieldNames()) {\n const message = store.getFieldError(name);\n const show = store.shouldDisplayFieldError(name);\n fields[name] = {\n error: show ? message : void 0,\n invalid: Boolean(show && message)\n };\n }\n return fields;\n }\n publishFormContext(options) {\n const store = this.store;\n if (!store) {\n return;\n }\n const revision = store.getRevision();\n if (!options?.force && revision === this.lastPublishedRevision) {\n return;\n }\n this.lastPublishedRevision = revision;\n const nextContext = {\n ready: true,\n store,\n revision,\n fields: this.buildFieldPresentations(store),\n errors: {\n ...store.errors\n },\n actions: this.formActions\n };\n this.lastPublishedContext = nextContext;\n this.formProvider.setContext(nextContext);\n for (const listener of this.presentationListeners) {\n listener(nextContext);\n }\n }\n syncOptions() {\n const store = this.ensureStore();\n store.updateOptions({\n defaultValues: this.resolveDefaultValues(),\n mode: this.resolveMode(),\n reValidateMode: this.resolveReValidateMode()\n });\n }\n syncResolver() {\n if (typeof this.resolver === \"function\") {\n this.ensureStore().updateOptions({\n resolver: this.resolver\n });\n }\n }\n onSubmitButtonClick(event2) {\n event2.preventDefault();\n this.runFormSubmit();\n }\n onNativeSubmit(event2) {\n event2.preventDefault();\n this.runFormSubmit();\n }\n onNativeReset() {\n this.store?.reset();\n }\n static {\n _initClass();\n }\n}\nexport { _RuiForm as RuiForm };", "import { createContext } from \"@ecopages/radiant/context\";\nexport const formContext = createContext(/* @__PURE__ */Symbol.for(\"rui-form-context\"));", "function resolveRuleMessage(fallback, rule) {\n if (rule === void 0 || rule === false) {\n return void 0;\n }\n if (typeof rule === \"string\") {\n return rule;\n }\n if (typeof rule === \"object\" && rule !== null && \"message\" in rule && typeof rule.message === \"string\") {\n return rule.message;\n }\n return fallback;\n}\nfunction ruleValue(rule) {\n if (typeof rule === \"object\" && rule !== null && \"value\" in rule) {\n return rule.value;\n }\n return rule;\n}\nasync function validateFieldRules(_valueName, value, rules, values) {\n if (!rules) return void 0;\n for (const validator of [validateRequired, validateNumericRange, validateTextRules, validateCustomRules]) {\n const message = await validator(value, rules, values);\n if (message) return message;\n }\n return void 0;\n}\nfunction validateRequired(value, rules) {\n const empty = value === void 0 || value === null || value === \"\" || value === false || Array.isArray(value) && value.length === 0;\n return rules.required && empty ? resolveRuleMessage(\"This field is required\", rules.required) ?? \"This field is required\" : void 0;\n}\nfunction validateNumericRange(value, rules) {\n const numberValue = typeof value === \"number\" ? value : typeof value === \"string\" && value !== \"\" ? Number(value) : void 0;\n if (numberValue === void 0 || Number.isNaN(numberValue)) return void 0;\n if (rules.min !== void 0 && numberValue < ruleValue(rules.min)) return resolveRuleMessage(`Minimum value is ${ruleValue(rules.min)}`, rules.min);\n if (rules.max !== void 0 && numberValue > ruleValue(rules.max)) return resolveRuleMessage(`Maximum value is ${ruleValue(rules.max)}`, rules.max);\n return void 0;\n}\nfunction validateTextRules(value, rules) {\n const text = value == null ? \"\" : String(value);\n if (rules.minLength !== void 0 && text.length < ruleValue(rules.minLength)) return resolveRuleMessage(`Minimum length is ${ruleValue(rules.minLength)}`, rules.minLength);\n if (rules.maxLength !== void 0 && text.length > ruleValue(rules.maxLength)) return resolveRuleMessage(`Maximum length is ${ruleValue(rules.maxLength)}`, rules.maxLength);\n if (rules.pattern !== void 0 && !ruleValue(rules.pattern).test(text)) return resolveRuleMessage(\"Invalid format\", rules.pattern) ?? \"Invalid format\";\n return void 0;\n}\nasync function validateCustomRules(value, rules, values) {\n if (!rules.validate) return void 0;\n const validators = typeof rules.validate === \"function\" ? [rules.validate] : Object.values(rules.validate);\n for (const validate of validators) {\n const result = await validate(value, values);\n if (result !== true && result !== void 0) return result === false ? \"Invalid value\" : String(result);\n }\n return void 0;\n}\nexport async function runRulesResolver(values, context, names) {\n const targetNames = names ?? Object.keys(context.fields);\n const errors = {};\n for (const name of targetNames) {\n const rules = context.fields[name]?.rules;\n const message = await validateFieldRules(name, values[name], rules, values);\n if (message) {\n errors[name] = {\n type: \"validation\",\n message\n };\n }\n }\n if (Object.keys(errors).length > 0) {\n return {\n values: {},\n errors\n };\n }\n return {\n values,\n errors: {}\n };\n}\nexport function createRulesResolver() {\n return (values, context, options) => runRulesResolver(values, context, options.names);\n}", "import { createRulesResolver } from \"./resolvers\";\nfunction normalizeResolver(resolver) {\n if (typeof resolver === \"function\") {\n return resolver;\n }\n return createRulesResolver();\n}\nexport class FormStore {\n mode;\n reValidateMode;\n resolver;\n fields = /* @__PURE__ */new Map();\n listeners = /* @__PURE__ */new Set();\n revision = 0;\n defaultValues;\n values;\n errors = {};\n touched = {};\n dirty = {};\n isSubmitting = false;\n isSubmitted = false;\n constructor(options = {}) {\n this.mode = options.mode ?? \"onSubmit\";\n this.reValidateMode = options.reValidateMode ?? \"onChange\";\n this.resolver = normalizeResolver(options.resolver);\n this.defaultValues = {\n ...(options.defaultValues ?? {})\n };\n this.values = {\n ...this.defaultValues,\n ...(options.values ?? {})\n };\n }\n /** Update options without dropping registered fields. */\n updateOptions(options) {\n if (options.mode !== void 0) {\n this.mode = options.mode;\n }\n if (options.reValidateMode !== void 0) {\n this.reValidateMode = options.reValidateMode;\n }\n if (options.resolver !== void 0) {\n this.resolver = normalizeResolver(options.resolver);\n }\n if (options.defaultValues !== void 0) {\n this.defaultValues = {\n ...options.defaultValues\n };\n }\n }\n subscribe(listener) {\n this.listeners.add(listener);\n return () => this.listeners.delete(listener);\n }\n notify() {\n this.revision += 1;\n for (const listener of this.listeners) {\n listener();\n }\n }\n getRevision() {\n return this.revision;\n }\n getRegisteredFieldNames() {\n return Array.from(this.fields.keys());\n }\n register(registration) {\n const existing = this.fields.get(registration.name);\n const entry = {\n ...registration,\n rules: registration.rules ?? existing?.rules,\n defaultValue: registration.defaultValue ?? existing?.defaultValue,\n getRules: registration.getRules ?? existing?.getRules\n };\n this.fields.set(registration.name, entry);\n if (this.values[registration.name] === void 0 && entry.defaultValue !== void 0) {\n this.values = {\n ...this.values,\n [registration.name]: entry.defaultValue\n };\n }\n entry.setValue(this.values[registration.name]);\n return () => {\n const current = this.fields.get(registration.name);\n if (current === entry) {\n this.fields.delete(registration.name);\n this.notify();\n }\n };\n }\n updateFieldOptions(name, options) {\n const field = this.fields.get(name);\n if (!field) {\n return;\n }\n if (options.rules !== void 0) {\n field.rules = options.rules;\n }\n if (options.defaultValue !== void 0) {\n field.defaultValue = options.defaultValue;\n }\n }\n getValues() {\n const next = {\n ...this.values\n };\n for (const [name, field] of this.fields) {\n next[name] = field.getValue();\n }\n return next;\n }\n setValue(name, value, options) {\n this.values = {\n ...this.values,\n [name]: value\n };\n const field = this.fields.get(String(name));\n field?.setValue(value);\n if (options?.shouldDirty) {\n this.dirty = {\n ...this.dirty,\n [name]: true\n };\n }\n if (options?.shouldTouch) {\n this.touched = {\n ...this.touched,\n [name]: true\n };\n }\n this.notify();\n }\n markTouched(name) {\n this.touched = {\n ...this.touched,\n [name]: true\n };\n this.notify();\n }\n markDirty(name) {\n this.dirty = {\n ...this.dirty,\n [name]: true\n };\n this.notify();\n }\n clearErrors(name) {\n if (name) {\n const next = {\n ...this.errors\n };\n delete next[name];\n this.errors = next;\n this.notify();\n return;\n }\n this.errors = {};\n this.notify();\n }\n getFieldError(name) {\n return this.errors[name]?.message;\n }\n getState() {\n const values = this.getValues();\n const errorCount = Object.keys(this.errors).length;\n return {\n values,\n errors: this.errors,\n touched: this.touched,\n dirty: this.dirty,\n isSubmitting: this.isSubmitting,\n isSubmitted: this.isSubmitted,\n isValid: errorCount === 0\n };\n }\n async validateField(name) {\n const values = this.getValues();\n const result = await this.resolver(values, {\n fields: this.buildResolverFields()\n }, {\n names: [name]\n });\n const message = result.errors[name]?.message;\n const next = {\n ...this.errors\n };\n if (message) {\n next[name] = {\n type: \"validation\",\n message\n };\n } else {\n delete next[name];\n }\n this.errors = next;\n this.notify();\n return !message;\n }\n async validateAll() {\n const values = this.getValues();\n const result = await this.resolver(values, {\n fields: this.buildResolverFields()\n }, {});\n this.errors = result.errors;\n this.notify();\n return Object.keys(this.errors).length === 0;\n }\n shouldValidate(name, trigger) {\n const mode = this.isSubmitted ? this.reValidateMode : this.mode;\n switch (mode) {\n case \"all\":\n return true;\n case \"onChange\":\n return trigger === \"change\";\n case \"onBlur\":\n return trigger === \"blur\";\n case \"onTouched\":\n return trigger === \"blur\" && Boolean(this.touched[name]);\n case \"onSubmit\":\n return false;\n default:\n return false;\n }\n }\n async handleFieldChange(name) {\n const field = this.fields.get(name);\n if (!field) {\n return;\n }\n const value = field.getValue();\n this.values = {\n ...this.values,\n [name]: value\n };\n this.dirty = {\n ...this.dirty,\n [name]: true\n };\n if (this.shouldValidate(name, \"change\")) {\n await this.validateField(name);\n } else {\n this.notify();\n }\n }\n async handleFieldBlur(name) {\n this.markTouched(name);\n if (this.shouldValidate(name, \"blur\")) {\n await this.validateField(name);\n } else {\n this.notify();\n }\n }\n /** Whether a field's validation message should be shown in the UI (RHF-style). */\n shouldDisplayFieldError(name) {\n const message = this.errors[name]?.message;\n if (!message) {\n return false;\n }\n if (this.isSubmitted) {\n return true;\n }\n switch (this.mode) {\n case \"all\":\n return Boolean(this.dirty[name] || this.touched[name]);\n case \"onChange\":\n return Boolean(this.dirty[name]);\n case \"onBlur\":\n case \"onTouched\":\n return Boolean(this.touched[name]);\n case \"onSubmit\":\n default:\n return false;\n }\n }\n async handleSubmit(onValid, onInvalid) {\n this.isSubmitting = true;\n this.isSubmitted = true;\n for (const name of this.fields.keys()) {\n this.touched = {\n ...this.touched,\n [name]: true\n };\n }\n this.notify();\n const valid = await this.validateAll();\n this.isSubmitting = false;\n this.notify();\n if (valid) {\n await onValid(this.getValues());\n return;\n }\n onInvalid?.(this.errors);\n }\n reset(values) {\n const nextDefaults = values ?? {\n ...this.defaultValues,\n ...this.collectFieldDefaults()\n };\n this.values = {\n ...nextDefaults\n };\n this.errors = {};\n this.touched = {};\n this.dirty = {};\n this.isSubmitted = false;\n this.isSubmitting = false;\n for (const field of this.fields.values()) {\n field.setValue(this.values[field.name]);\n }\n this.notify();\n }\n collectFieldDefaults() {\n const defaults = {};\n for (const [name, field] of this.fields) {\n if (field.defaultValue !== void 0) {\n defaults[name] = field.defaultValue;\n }\n }\n return defaults;\n }\n buildResolverFields() {\n const fields = {};\n for (const [name, field] of this.fields) {\n const rules = field.getRules?.() ?? field.rules;\n fields[name] = {\n rules\n };\n }\n return fields;\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 { multiValueTransform, numberArrayTransform } from \"../shared/multi-value\";\nexport const RUI_CONTROL_ATTR = \"data-rui-control\";\nexport const RUI_FIELD_MANAGED_ATTR = \"data-rui-field-managed\";\nexport const RUI_FIELD_LABEL_ATTR = \"data-rui-field-label\";\nexport const RUI_FIELD_DESCRIPTION_ATTR = \"data-rui-field-description\";\nexport const RUI_FIELD_ERROR_ATTR = \"data-rui-field-error\";\nexport const RUI_FIELD_DEFAULT_VALUE_ATTR = \"data-default-value\";\nexport const RUI_FORM_DEFAULT_VALUES_ATTR = \"data-default-values\";\nexport const RUI_ARIA_TARGET_ATTR = \"data-rui-aria-target\";\nexport const RUI_ARIA_TARGETS_ATTR = \"data-rui-aria-targets\";\nconst FIELD_COLUMN_SELECTOR = '[data-ref=\"field\"]';\nfunction fieldControlSelector() {\n return `[${RUI_CONTROL_ATTR}], ${hostControlSelector()}`;\n}\nfunction hostControlSelector() {\n return Array.from(CONTROL_VALUE_ADAPTERS.keys()).join(\", \");\n}\nfunction isEmbeddedListbox(node) {\n return node.localName === \"rui-listbox\" && (node.hasAttribute(\"embedded\") || Reflect.get(node, \"embedded\") === true);\n}\nconst ARIA_TARGET_SELECTORS = {\n \"rui-combobox\": \"[data-combobox-input]\",\n \"rui-select\": \"[data-select-trigger]\",\n \"rui-tag-group\": \"[data-tag-list]\",\n \"rui-number-field\": \"[data-number-field-input], input\",\n \"rui-knob\": \"[data-knob-control]\",\n \"rui-checkbox\": \"input\",\n \"rui-checkbox-group\": \"[data-checkbox-group-root]\",\n \"rui-switch\": \"input\"\n};\nexport function isNativeTextControl(node) {\n return node.localName === \"input\" || node.localName === \"textarea\";\n}\nfunction isNativeInput(node) {\n return node.localName === \"input\";\n}\nfunction isNativeTextarea(node) {\n return node.localName === \"textarea\";\n}\nexport function isFormAssociatedHost(host) {\n return Reflect.get(host.constructor, \"formAssociated\") === true;\n}\nconst stringValueAdapter = {\n read: host => {\n const value = Reflect.get(host, \"value\");\n return typeof value === \"string\" ? value : host.getAttribute(\"value\") ?? \"\";\n },\n write: (host, value) => {\n const next = value == null ? \"\" : String(value);\n host.setAttribute(\"value\", next);\n if (\"value\" in host) {\n Reflect.set(host, \"value\", next);\n }\n }\n};\nconst numberValueAdapter = {\n read: host => {\n const value = Reflect.get(host, \"value\");\n if (typeof value === \"number\") {\n return value;\n }\n const raw = host.getAttribute(\"value\");\n return raw == null || raw === \"\" ? \"\" : Number(raw);\n },\n write: (host, value) => {\n const next = value == null ? \"\" : String(value);\n host.setAttribute(\"value\", next);\n if (\"value\" in host) {\n Reflect.set(host, \"value\", value);\n }\n }\n};\nconst booleanValueAdapter = {\n read: host => {\n const input = host.querySelector('input[type=\"checkbox\"]');\n return input?.checked ?? host.hasAttribute(\"checked\");\n },\n write: (host, value) => {\n if (value) {\n host.setAttribute(\"checked\", \"\");\n } else {\n host.removeAttribute(\"checked\");\n }\n }\n};\nfunction readHostValue(host, transform) {\n const value = Reflect.get(host, \"value\");\n if (value !== void 0 && transform.fromProperty) {\n return transform.fromProperty(value);\n }\n if (transform.fromAttribute) {\n return transform.fromAttribute(host.getAttribute(\"value\"));\n }\n return value;\n}\nfunction writeHostValue(host, value) {\n Reflect.set(host, \"value\", value);\n}\nconst stringArrayValueAdapter = {\n read: host => readHostValue(host, multiValueTransform),\n write: writeHostValue\n};\nconst sliderValueAdapter = {\n read: host => readHostValue(host, numberArrayTransform),\n write: writeHostValue\n};\nconst CONTROL_VALUE_ADAPTERS = /* @__PURE__ */new Map([[\"rui-checkbox\", booleanValueAdapter], [\"rui-switch\", booleanValueAdapter], [\"rui-combobox\", {\n ...stringArrayValueAdapter,\n submission: \"none\"\n}], [\"rui-date-field\", stringValueAdapter], [\"rui-date-input\", {\n ...stringValueAdapter,\n submission: \"host\"\n}], [\"rui-date-range-picker\", stringValueAdapter], [\"rui-select\", {\n ...stringArrayValueAdapter,\n submission: \"none\"\n}], [\"rui-radio-group\", stringValueAdapter], [\"rui-checkbox-group\", stringArrayValueAdapter], [\"rui-listbox\", stringArrayValueAdapter], [\"rui-tag-group\", stringArrayValueAdapter], [\"rui-slider\", {\n ...sliderValueAdapter,\n submission: \"host\"\n}], [\"rui-knob\", {\n ...numberValueAdapter,\n submission: \"host\"\n}], [\"rui-number-field\", {\n ...numberValueAdapter,\n submission: \"host\"\n}]]);\nfunction forEachFieldContentNode(root, visit) {\n const slotHost = root;\n const visited = /* @__PURE__ */new Set();\n const safeVisit = node => {\n if (visited.has(node)) {\n return;\n }\n visited.add(node);\n visit(node);\n };\n if (typeof slotHost.getSlotElements === \"function\") {\n for (const node of slotHost.getSlotElements()) {\n safeVisit(node);\n }\n }\n const renderRoot = root.querySelector(FIELD_COLUMN_SELECTOR) ?? root;\n for (const child of Array.from(renderRoot.children)) {\n safeVisit(child);\n }\n for (const node of renderRoot.querySelectorAll(\"*\")) {\n safeVisit(node);\n }\n for (const child of Array.from(root.children)) {\n safeVisit(child);\n }\n const shadow = root.shadowRoot;\n if (shadow) {\n for (const child of Array.from(shadow.children)) {\n safeVisit(child);\n }\n }\n}\nfunction queryFieldContent(root, selector) {\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found || !(node instanceof HTMLElement)) {\n return;\n }\n if (node.matches(selector)) {\n found = node;\n return;\n }\n found = node.querySelector(selector);\n });\n return found;\n}\nfunction pickPrimaryFieldControl(candidates) {\n const eligibleCandidates = candidates.filter(candidate => !isEmbeddedListbox(candidate));\n if (eligibleCandidates.length === 0) {\n return null;\n }\n return eligibleCandidates.find(candidate => !eligibleCandidates.some(ancestor => ancestor !== candidate && ancestor.contains(candidate))) ?? null;\n}\nfunction collectFieldControls(root) {\n const candidates = [];\n forEachFieldContentNode(root, node => {\n if (node instanceof HTMLElement && node.matches(fieldControlSelector())) {\n candidates.push(node);\n }\n });\n return candidates;\n}\nfunction listFieldControlsInRenderTree(root) {\n const renderRoot = root.querySelector(FIELD_COLUMN_SELECTOR);\n if (!(renderRoot instanceof HTMLElement)) {\n return [];\n }\n return Array.from(renderRoot.querySelectorAll(fieldControlSelector())).filter(el => root.contains(el));\n}\nexport function findFieldControl(root) {\n const fromRenderTree = pickPrimaryFieldControl(listFieldControlsInRenderTree(root));\n if (fromRenderTree) {\n return fromRenderTree;\n }\n return pickPrimaryFieldControl(collectFieldControls(root));\n}\nexport function registerFieldControl(tagName, adapter) {\n const tag = tagName.toLowerCase();\n CONTROL_VALUE_ADAPTERS.set(tag, adapter);\n}\nexport function isPrimaryFieldControlEvent(root, event) {\n const control = findFieldControl(root);\n if (!control || !(event.target instanceof Element)) {\n return false;\n }\n if (event.target !== control && !control.contains(event.target)) {\n return false;\n }\n const nestedHost = event.target.closest(hostControlSelector());\n return nestedHost === control || nestedHost == null;\n}\nexport function readControlValue(control) {\n if (isNativeInput(control)) {\n const host2 = resolveControlHost(control);\n const adapter = host2 === control ? void 0 : CONTROL_VALUE_ADAPTERS.get(host2.localName);\n if (adapter) {\n return adapter.read(host2);\n }\n if (control.type === \"checkbox\") {\n return control.checked;\n }\n if (control.type === \"number\" || control.type === \"range\") {\n return control.value === \"\" ? \"\" : Number(control.value);\n }\n return control.value;\n }\n if (isNativeTextarea(control)) {\n return control.value;\n }\n const host = resolveControlHost(control);\n return CONTROL_VALUE_ADAPTERS.get(host.localName)?.read(host) ?? host.getAttribute(\"value\") ?? \"\";\n}\nexport function writeControlValue(control, value) {\n if (isNativeInput(control)) {\n const host2 = resolveControlHost(control);\n const adapter = host2 === control ? void 0 : CONTROL_VALUE_ADAPTERS.get(host2.localName);\n if (adapter) {\n adapter.write(host2, value);\n return;\n }\n if (control.type === \"checkbox\") {\n control.checked = Boolean(value);\n const ce = control.closest(\"rui-checkbox, rui-switch\");\n if (ce) {\n if (value) {\n ce.setAttribute(\"checked\", \"\");\n } else {\n ce.removeAttribute(\"checked\");\n }\n }\n return;\n }\n control.value = value == null ? \"\" : String(value);\n return;\n }\n if (isNativeTextarea(control)) {\n control.value = value == null ? \"\" : String(value);\n return;\n }\n const host = resolveControlHost(control);\n CONTROL_VALUE_ADAPTERS.get(host.localName)?.write(host, value);\n}\nfunction resolveControlHost(control) {\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n const host = control.closest(hostControlSelector());\n return host ?? control;\n }\n return control;\n}\nexport function findFieldLabel(root) {\n return queryFieldContent(root, `[${RUI_FIELD_LABEL_ATTR}]`);\n}\nexport function findFieldDescription(root) {\n return queryFieldContent(root, `[${RUI_FIELD_DESCRIPTION_ATTR}]`);\n}\nexport function findFieldError(root) {\n const all = findFieldErrorElements(root);\n return all[0] ?? null;\n}\nexport function findFieldErrorElements(root) {\n const renderRoot = root.querySelector(FIELD_COLUMN_SELECTOR);\n if (renderRoot instanceof HTMLElement) {\n const inRender = Array.from(renderRoot.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n if (inRender.length > 0) {\n return inRender;\n }\n }\n const fromDom = Array.from(root.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n if (fromDom.length > 0) {\n return fromDom;\n }\n const single = queryFieldContent(root, `[${RUI_FIELD_ERROR_ATTR}]`);\n return single ? [single] : [];\n}\nexport function wireFieldControlName(controlHost, ariaTarget, name) {\n if (ariaTarget && isNativeTextControl(ariaTarget)) {\n const submission = controlHost && CONTROL_VALUE_ADAPTERS.get(controlHost.localName)?.submission;\n const namesInner = controlHost == null || controlHost === ariaTarget || !isFormAssociatedHost(controlHost) && submission !== \"host\" && submission !== \"none\";\n if (namesInner && name) {\n ariaTarget.name = name;\n } else {\n ariaTarget.removeAttribute(\"name\");\n }\n }\n if (controlHost && CONTROL_VALUE_ADAPTERS.has(controlHost.localName)) {\n Reflect.set(controlHost, \"name\", name);\n if (name) controlHost.setAttribute(\"name\", name);else controlHost.removeAttribute(\"name\");\n }\n}\nfunction isChecked(input) {\n const checked = Reflect.get(input, \"checked\");\n return typeof checked === \"boolean\" ? checked : input.hasAttribute(\"checked\");\n}\nfunction resolveDeclaredAriaTarget(control) {\n const multi = control.getAttribute(RUI_ARIA_TARGETS_ATTR);\n if (multi) {\n const firstSelector = multi.split(\",\")[0]?.trim();\n if (firstSelector) {\n return control.querySelector(firstSelector);\n }\n }\n const single = control.getAttribute(RUI_ARIA_TARGET_ATTR);\n if (single) {\n return control.querySelector(single);\n }\n return null;\n}\nfunction resolveDeclaredAriaTargets(control) {\n const multi = control.getAttribute(RUI_ARIA_TARGETS_ATTR);\n if (multi) {\n return multi.split(\",\").map(selector => selector.trim()).filter(selector => selector !== \"\").map(selector => control.querySelector(selector)).filter(node => node != null);\n }\n const single = control.getAttribute(RUI_ARIA_TARGET_ATTR);\n if (single) {\n const target = control.querySelector(single);\n return target ? [target] : [];\n }\n return [];\n}\nexport function getAriaControlTarget(control) {\n if (isNativeTextControl(control)) {\n return control;\n }\n const declared = resolveDeclaredAriaTarget(control);\n if (declared) {\n return declared;\n }\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n return control;\n }\n if (control.localName === \"rui-slider\") {\n const thumb = Array.from(control.querySelectorAll(\"[data-thumb]\")).find(node => !node.hasAttribute(\"hidden\"));\n return thumb ?? control;\n }\n const marked = control.querySelector(`[${RUI_CONTROL_ATTR}]`);\n if (marked) {\n return marked;\n }\n if (control.localName === \"rui-radio-group\") {\n return getSelectedRadio(control) ?? control;\n }\n const selector = ARIA_TARGET_SELECTORS[control.localName];\n return selector ? control.querySelector(selector) ?? control : control;\n}\nfunction getSelectedRadio(control) {\n const radios = control.querySelectorAll('input[type=\"radio\"]');\n return Array.from(radios).find(isChecked) ?? radios[0];\n}\nexport function getAriaControlTargets(control) {\n const declared = resolveDeclaredAriaTargets(control);\n if (declared.length > 0) {\n return declared;\n }\n if (control.localName === \"rui-slider\") {\n const thumbs = Array.from(control.querySelectorAll(\"[data-thumb]\")).filter(node => !node.hasAttribute(\"hidden\"));\n return thumbs.length > 0 ? thumbs : [control];\n }\n return [getAriaControlTarget(control)];\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}"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["jsx", "RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "provideContext", "createContext", "formContext", "resolveRuleMessage", "fallback", "rule", "ruleValue", "validateFieldRules", "_valueName", "value", "rules", "values", "validator", "validateRequired", "validateNumericRange", "validateTextRules", "validateCustomRules", "message", "empty", "numberValue", "text", "validators", "validate", "result", "runRulesResolver", "context", "names", "targetNames", "errors", "name", "createRulesResolver", "options", "normalizeResolver", "resolver", "createRulesResolver", "FormStore", "options", "listener", "registration", "existing", "entry", "name", "field", "next", "value", "values", "errorCount", "message", "result", "trigger", "onValid", "onInvalid", "valid", "nextDefaults", "defaults", "fields", "rules", "parseMultiValue", "value", "uniqueTrimmed", "serializeMultiValue", "values", "multiValueTransform", "parseNumberArray", "value", "item", "serializeNumberArray", "values", "numberArrayTransform", "uniqueTrimmed", "RUI_CONTROL_ATTR", "RUI_FIELD_MANAGED_ATTR", "RUI_FIELD_LABEL_ATTR", "RUI_FIELD_DESCRIPTION_ATTR", "RUI_FIELD_ERROR_ATTR", "RUI_FORM_DEFAULT_VALUES_ATTR", "FIELD_COLUMN_SELECTOR", "fieldControlSelector", "RUI_CONTROL_ATTR", "hostControlSelector", "CONTROL_VALUE_ADAPTERS", "isEmbeddedListbox", "node", "isNativeTextControl", "node", "isNativeInput", "isNativeTextarea", "stringValueAdapter", "host", "value", "next", "numberValueAdapter", "raw", "booleanValueAdapter", "readHostValue", "transform", "writeHostValue", "stringArrayValueAdapter", "multiValueTransform", "sliderValueAdapter", "numberArrayTransform", "CONTROL_VALUE_ADAPTERS", "forEachFieldContentNode", "root", "visit", "slotHost", "visited", "safeVisit", "node", "renderRoot", "FIELD_COLUMN_SELECTOR", "child", "shadow", "pickPrimaryFieldControl", "candidates", "eligibleCandidates", "candidate", "isEmbeddedListbox", "ancestor", "collectFieldControls", "root", "forEachFieldContentNode", "node", "fieldControlSelector", "listFieldControlsInRenderTree", "renderRoot", "FIELD_COLUMN_SELECTOR", "el", "findFieldControl", "fromRenderTree", "registerFieldControl", "tagName", "adapter", "tag", "CONTROL_VALUE_ADAPTERS", "readControlValue", "control", "isNativeInput", "host2", "resolveControlHost", "adapter", "CONTROL_VALUE_ADAPTERS", "isNativeTextarea", "host", "writeControlValue", "value", "ce", "RUI_CONTROL_ATTR", "hostControlSelector", "CSS_SAFE_ID", "isCssSafeId", "value", "cssSafePrefix", "prefix", "trimmed", "prefixed", "uniqueId", "token", "byte", "_initProto", "_initClass", "_init_formProvider", "_init_extra_formProvider", "_init_submitEvent", "_init_extra_submitEvent", "_init_invalidEvent", "_init_extra_invalidEvent", "_init_defaultValues", "_init_extra_defaultValues", "_init_defaultValuesData", "_init_extra_defaultValuesData", "_init_resolver", "_init_extra_resolver", "_init_mode", "_init_extra_mode", "_init_reValidateMode", "_init_extra_reValidateMode", "_init_action", "_init_extra_action", "_init_method", "_init_extra_method", "_applyDecs", "e", "t", "n", "r", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "noopUnregister", "initialFormActions", "_RuiForm", "RuiForm", "RadiantElement", "customElement", "provideContext", "formContext", "revision", "fields", "errors", "event", "prop", "RUI_FORM_DEFAULT_VALUES_ATTR", "onUpdated", "onEvent", "uniqueId", "registration", "unregister", "name", "options", "listener", "formEl", "btn", "values", "fromAttr", "raw", "parsed", "FormStore", "store", "message", "show", "nextContext", "event2", "RuiForm", "children", "defaultValues", "defaultValuesData", "resolver", "reValidateMode", "onSubmit", "action", "method", "props", "jsx"]
|
|
7
7
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@layer properties;
|
|
3
2
|
rui-hover-card {
|
|
4
3
|
display: inline-flex;
|
|
5
4
|
}
|
|
@@ -12,110 +11,22 @@ rui-hover-card {
|
|
|
12
11
|
display: inline-flex;
|
|
13
12
|
}
|
|
14
13
|
.rui-hover-card__content {
|
|
14
|
+
--rui-hover-card-width: 20rem;
|
|
15
|
+
--rui-hover-card-padding: var(--space-inset);
|
|
16
|
+
--rui-hover-card-radius: var(--radius-container);
|
|
17
|
+
--rui-hover-card-surface: var(--background);
|
|
18
|
+
--rui-hover-card-border-color: var(--border);
|
|
19
|
+
--rui-hover-card-shadow: var(--shadow-overlay);
|
|
15
20
|
z-index: var(--z-index-overlay, var(--z-overlay));
|
|
16
|
-
width: calc(var(--spacing, 0.25rem) * 80);
|
|
17
|
-
border-radius: var(--radius-container, var(--radius-container));
|
|
18
|
-
border-style: var(--tw-border-style);
|
|
19
|
-
border-width: 1px;
|
|
20
|
-
border-color: var(--color-border, var(--border));
|
|
21
|
-
background-color: var(--color-background, var(--background));
|
|
22
|
-
padding: var(--spacing-4, var(--space-4));
|
|
23
21
|
color: var(--color-on-background, var(--on-background));
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
inline-size: var(--rui-hover-card-width);
|
|
23
|
+
padding: var(--rui-hover-card-padding);
|
|
24
|
+
border-radius: var(--rui-hover-card-radius);
|
|
25
|
+
border: 1px solid var(--rui-hover-card-border-color);
|
|
26
|
+
background-color: var(--rui-hover-card-surface);
|
|
27
|
+
box-shadow: var(--rui-hover-card-shadow);
|
|
26
28
|
}
|
|
27
29
|
.rui-hover-card__content[hidden] {
|
|
28
30
|
display: none;
|
|
29
31
|
}
|
|
30
32
|
}
|
|
31
|
-
@property --tw-border-style {
|
|
32
|
-
syntax: "*";
|
|
33
|
-
inherits: false;
|
|
34
|
-
initial-value: solid;
|
|
35
|
-
}
|
|
36
|
-
@property --tw-shadow {
|
|
37
|
-
syntax: "*";
|
|
38
|
-
inherits: false;
|
|
39
|
-
initial-value: 0 0 #0000;
|
|
40
|
-
}
|
|
41
|
-
@property --tw-shadow-color {
|
|
42
|
-
syntax: "*";
|
|
43
|
-
inherits: false;
|
|
44
|
-
}
|
|
45
|
-
@property --tw-shadow-alpha {
|
|
46
|
-
syntax: "<percentage>";
|
|
47
|
-
inherits: false;
|
|
48
|
-
initial-value: 100%;
|
|
49
|
-
}
|
|
50
|
-
@property --tw-inset-shadow {
|
|
51
|
-
syntax: "*";
|
|
52
|
-
inherits: false;
|
|
53
|
-
initial-value: 0 0 #0000;
|
|
54
|
-
}
|
|
55
|
-
@property --tw-inset-shadow-color {
|
|
56
|
-
syntax: "*";
|
|
57
|
-
inherits: false;
|
|
58
|
-
}
|
|
59
|
-
@property --tw-inset-shadow-alpha {
|
|
60
|
-
syntax: "<percentage>";
|
|
61
|
-
inherits: false;
|
|
62
|
-
initial-value: 100%;
|
|
63
|
-
}
|
|
64
|
-
@property --tw-ring-color {
|
|
65
|
-
syntax: "*";
|
|
66
|
-
inherits: false;
|
|
67
|
-
}
|
|
68
|
-
@property --tw-ring-shadow {
|
|
69
|
-
syntax: "*";
|
|
70
|
-
inherits: false;
|
|
71
|
-
initial-value: 0 0 #0000;
|
|
72
|
-
}
|
|
73
|
-
@property --tw-inset-ring-color {
|
|
74
|
-
syntax: "*";
|
|
75
|
-
inherits: false;
|
|
76
|
-
}
|
|
77
|
-
@property --tw-inset-ring-shadow {
|
|
78
|
-
syntax: "*";
|
|
79
|
-
inherits: false;
|
|
80
|
-
initial-value: 0 0 #0000;
|
|
81
|
-
}
|
|
82
|
-
@property --tw-ring-inset {
|
|
83
|
-
syntax: "*";
|
|
84
|
-
inherits: false;
|
|
85
|
-
}
|
|
86
|
-
@property --tw-ring-offset-width {
|
|
87
|
-
syntax: "<length>";
|
|
88
|
-
inherits: false;
|
|
89
|
-
initial-value: 0px;
|
|
90
|
-
}
|
|
91
|
-
@property --tw-ring-offset-color {
|
|
92
|
-
syntax: "*";
|
|
93
|
-
inherits: false;
|
|
94
|
-
initial-value: #fff;
|
|
95
|
-
}
|
|
96
|
-
@property --tw-ring-offset-shadow {
|
|
97
|
-
syntax: "*";
|
|
98
|
-
inherits: false;
|
|
99
|
-
initial-value: 0 0 #0000;
|
|
100
|
-
}
|
|
101
|
-
@layer properties {
|
|
102
|
-
@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
|
|
103
|
-
*, ::before, ::after, ::backdrop {
|
|
104
|
-
--tw-border-style: solid;
|
|
105
|
-
--tw-shadow: 0 0 #0000;
|
|
106
|
-
--tw-shadow-color: initial;
|
|
107
|
-
--tw-shadow-alpha: 100%;
|
|
108
|
-
--tw-inset-shadow: 0 0 #0000;
|
|
109
|
-
--tw-inset-shadow-color: initial;
|
|
110
|
-
--tw-inset-shadow-alpha: 100%;
|
|
111
|
-
--tw-ring-color: initial;
|
|
112
|
-
--tw-ring-shadow: 0 0 #0000;
|
|
113
|
-
--tw-inset-ring-color: initial;
|
|
114
|
-
--tw-inset-ring-shadow: 0 0 #0000;
|
|
115
|
-
--tw-ring-inset: initial;
|
|
116
|
-
--tw-ring-offset-width: 0px;
|
|
117
|
-
--tw-ring-offset-color: #fff;
|
|
118
|
-
--tw-ring-offset-shadow: 0 0 #0000;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
@@ -66,6 +66,13 @@ export declare const HOVER_CARD_DEFAULT_CONTENT_LABEL = "Preview";
|
|
|
66
66
|
* @attr {string} content-label - Accessible name for the preview dialog. Default: `Preview`.
|
|
67
67
|
* @fires rui-open-change - Emitted when open state changes; `detail.open`.
|
|
68
68
|
*
|
|
69
|
+
* @cssprop --rui-hover-card-width - Panel width. Default: `20rem`. Override on `.rui-hover-card__content`.
|
|
70
|
+
* @cssprop --rui-hover-card-padding - Panel padding. Default: `--space-inset`.
|
|
71
|
+
* @cssprop --rui-hover-card-radius - Panel corner radius. Default: `--radius-container`.
|
|
72
|
+
* @cssprop --rui-hover-card-surface - Panel fill. Default: `--background`.
|
|
73
|
+
* @cssprop --rui-hover-card-border-color - Panel border. Default: `--border`.
|
|
74
|
+
* @cssprop --rui-hover-card-shadow - Panel shadow. Default: `--shadow-overlay`.
|
|
75
|
+
*
|
|
69
76
|
* @remarks
|
|
70
77
|
* `setOpen(next, emit?)` toggles open state. Minimum tree: `[data-ref="trigger"]` >
|
|
71
78
|
* `[data-hover-card-trigger]` + `[data-ref="content"]`. BEM classes live on the view.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as R}from"@ecopages/jsx/jsx-runtime";function Q(...e){return e.filter(Boolean).join(" ")}import{RadiantElement as Wt,bound as S,customElement as le,event as ce,onEvent as W,onUpdated as ue,prop as F,query as he}from"@ecopages/radiant";var Gt="a[href], button, input, select, textarea, [tabindex]";function Xt(e){return!e.hasAttribute("disabled")&&e.getAttribute("tabindex")!=="-1"}function Yt(e){return Array.from(e.querySelectorAll(Gt)).filter(Xt)}function V(e){return Yt(e)[0]}var H=0,ft=0;function pt(){H+=1}function Z(e=Date.now(),t=300){H=Math.max(0,H-1),H===0&&(ft=e+t)}function gt(e,t=Date.now()){return H>0||t<ft?0:e}var Jt={top:"bottom",bottom:"top",left:"right",right:"left"},Qt=8;function Zt(e){let t=e.indexOf("-");if(t===-1)return{side:e,align:"center"};let n=e.slice(0,t),i=e.slice(t+1);return{side:n,align:i==="start"||i==="end"?i:"center"}}function yt(e){return e==="top"||e==="bottom"?"y":"x"}function mt(e,t,n,i,r){let{width:o,height:a}=t,s=0,f=0;switch(n){case"top":f=e.top-a-r;break;case"bottom":f=e.bottom+r;break;case"left":s=e.left-o-r;break;case"right":s=e.right+r;break}return yt(n)==="y"?i==="start"?s=e.left:i==="end"?s=e.right-o:s=e.left+(e.width-o)/2:i==="start"?f=e.top:i==="end"?f=e.bottom-a:f=e.top+(e.height-a)/2,{x:s,y:f}}function zt(e,t,n,i){let{padding:r,width:o,height:a}=i;return n==="top"?Math.max(0,r-e.y):n==="bottom"?Math.max(0,e.y+t.height-(a-r)):n==="left"?Math.max(0,r-e.x):Math.max(0,e.x+t.width-(o-r))}function vt(e,t,n,i){let{padding:r,width:o,height:a}=i;return n==="top"?e.top-r-t.height:n==="bottom"?a-r-t.height-e.bottom:n==="left"?e.left-r-t.width:o-r-t.width-e.right}function te(e,t){return t==="center"?e:`${e}-${t}`}function ee(e,t,n,i){let{padding:r,width:o,height:a}=i;if(yt(n)==="y"){let f=Math.max(r,o-r-t.width);return{x:Math.min(Math.max(e.x,r),f),y:e.y}}let s=Math.max(r,a-r-t.height);return{x:e.x,y:Math.min(Math.max(e.y,r),s)}}function ne(e,t,n,i,r={width:typeof window>"u"?0:window.innerWidth,height:typeof window>"u"?0:window.innerHeight,padding:Qt}){let{side:o,align:a}=Zt(n),s=mt(e,t,o,a,i),f=zt(s,t,o,r),T=o,x=s;if(f>0){let P=Jt[o],C=mt(e,t,P,a,i),B=vt(e,t,o,r);vt(e,t,P,r)>B&&(T=P,x=C)}return{coords:ee(x,t,T,r),placement:te(T,a)}}function ie(e,t,n,i,r={}){let{coords:o,placement:a}=ne(e.getBoundingClientRect(),{width:t.offsetWidth,height:t.offsetHeight},n,i);return Object.assign(t.style,{position:"fixed",left:`${o.x}px`,top:`${o.y}px`,right:"auto",bottom:"auto",visibility:"visible"}),r.matchAnchorWidth&&(t.style.width=`${e.offsetWidth}px`),t.setAttribute("data-placement",a),a}function bt({anchor:e,floating:t,getPlacement:n,gap:i,matchAnchorWidth:r}){let o=()=>{t.hidden||ie(e,t,n(),i,{matchAnchorWidth:r})};o(),window.addEventListener("resize",o),window.addEventListener("scroll",o,!0);let a=new ResizeObserver(o);return a.observe(e),a.observe(t),()=>{window.removeEventListener("resize",o),window.removeEventListener("scroll",o,!0),a.disconnect()}}function wt(e,t=document.body){let n=e.parentNode;if(!n)return{unmount:()=>{}};let i=document.createComment("rui-portal");return n.insertBefore(i,e),t.appendChild(e),{unmount:()=>{let r=i.parentNode;r&&(r.insertBefore(e,i),i.remove())}}}function _t(e,t,n){return n?!!(e?.contains(n)||t?.contains(n)):!1}function z(e,t,n){return n instanceof Node?!_t(e,t,n):!0}var K=class{config;cleanupFloating=null;portalHandle=null;floatingElement=null;constructor(t){this.config=t}updateConfig(t){this.config={...this.config,...t}}sync(){let t=this.resolveFloating();if(!t)return;if(!this.config.getOpen()){this.teardown(),t.toggleAttribute("hidden",!0);return}let i=this.config.getAnchor();if(!i)return;t.toggleAttribute("hidden",!1),this.config.portal!==!1?this.portalHandle||(this.portalHandle=wt(t,this.config.portalContainer??document.body)):this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null),this.teardownFloating(),this.cleanupFloating=bt({anchor:i,floating:t,getPlacement:this.config.getPlacement,gap:this.config.gap??8,matchAnchorWidth:this.config.matchAnchorWidth})}contains(t){return _t(this.config.getAnchor(),this.resolveFloating(),t)}getFloatingElement(){return this.resolveFloating()}teardown(){this.teardownFloating(),this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null)}destroy(){this.teardown(),this.floatingElement=null}resolveFloating(){let t=this.config.getFloating();return t&&(this.floatingElement=t),t??this.floatingElement}teardownFloating(){this.cleanupFloating?.(),this.cleanupFloating=null}};var Et,Tt,xt,Pt,Ct,At,Ft,Lt,Ot,Dt,Ht,St,Rt,Bt,Mt,jt,It,Ut,kt,Vt;function re(e,t,n,i,r,o){var a,s,f,T,x,P,C,B=Symbol.metadata||Symbol.for("Symbol.metadata"),q=Object.defineProperty,$=Object.create,et=[$(null),$(null)],nt=t.length;function M(l,v,g){return function(c,u){v&&(u=c,c=e);for(var y=0;y<l.length;y++)u=l[y].apply(c,g?[u]:[]);return g?u:c}}function _(l,v,g,c){if(typeof l!="function"&&(c||l!==void 0))throw new TypeError(v+" must "+(g||"be")+" a function"+(c?"":" or undefined"));return l}function it(l,v,g,c,u,y,A,m,b,w,ot){function N(d){if(!ot(d))throw new TypeError("Attempted to access private element on non-instance")}var G=[].concat(v[0]),st=v[3],X=!A,O=u===1,at=u===3,lt=u===4,j=u===2;function I(d,L,ht){return function(k,dt){return L&&(dt=k,k=l),ht&&ht(k),h[d].call(k,dt)}}if(!X){var h={},Y=[],E=at?"get":lt||O?"set":"value";if(b?(w||O?h={get:Kt(function(){return st(this)},c,"get"),set:function(d){v[4](this,d)}}:h[E]=st,w||Kt(h[E],c,j?"":E)):w||(h=Object.getOwnPropertyDescriptor(l,c)),!w&&!b){if((s=et[+m][c])&&(s^u)!==7)throw Error("Decorating two elements with the same name ("+h[E].name+") is not supported yet");et[+m][c]=u<3?1:u}}for(var p=l,U=G.length-1;U>=0;U-=g?2:1){var ct=_(G[U],"A decorator","be",!0),ut=g?G[U-1]:void 0,J={},D={kind:["field","accessor","method","getter","setter","class"][u],name:c,metadata:a,addInitializer:function(d,L){if(d.v)throw new TypeError("attempted to call addInitializer after decoration was finished");_(L,"An initializer","be",!0),y.push(L)}.bind(null,J)};if(X)s=ct.call(ut,p,D),J.v=1,_(s,"class decorators","return")&&(p=s);else if(D.static=m,D.private=b,s=D.access={has:b?ot.bind():function(d){return c in d}},lt||(s.get=b?j?function(d){return N(d),h.value}:I("get",0,N):function(d){return d[c]}),j||at||(s.set=b?I("set",0,N):function(d,L){d[c]=L}),p=ct.call(ut,O?{get:h.get,set:h.set}:h[E],D),J.v=1,O){if(typeof p=="object"&&p)(s=_(p.get,"accessor.get"))&&(h.get=s),(s=_(p.set,"accessor.set"))&&(h.set=s),(s=_(p.init,"accessor.init"))&&Y.unshift(s);else if(p!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else _(p,(w?"field":"method")+" decorators","return")&&(w?Y.unshift(p):h[E]=p)}return u<2&&A.push(M(Y,m,1),M(y,m,0)),w||X||(b?O?A.splice(-1,0,I("get",m),I("set",m)):A.push(j?h[E]:_.call.bind(h[E])):q(l,c,h)),p}function rt(l){return q(l,B,{configurable:!0,enumerable:!0,value:a})}return o!==void 0&&(a=o[B]),a=$(a??null),x=[],P=function(l){l&&x.push(M(l))},C=function(l,v){for(var g=0;g<n.length;g++){var c=n[g],u=c[1],y=7&u;if((8&u)==l&&!y==v){var A=c[2],m=!!c[3],b=16&u;it(l?e:e.prototype,c,b,m?"#"+A:oe(A),y,y<2?[]:l?T=T||[]:f=f||[],x,!!l,m,v,l&&m?function(w){return ae(w)===e}:r)}}},C(8,0),C(0,0),C(8,1),C(0,1),P(f),P(T),s=x,nt||rt(e),{e:s,get c(){var l=[];return nt&&[rt(e=it(e,[t],i,e.name,5,l)),M(l,1)]}}}function oe(e){var t=se(e,"string");return typeof t=="symbol"?t:t+""}function se(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var i=n.call(e,t||"default");if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Kt(e,t,n){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+" "+t:t})}catch{}return e}function ae(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(e!==null?typeof e:"null"));return e}var tt="Preview",qt=8,de=500,Nt,$t=class extends Wt{static{({e:[xt,Pt,Ct,At,Ft,Lt,Ot,Dt,Ht,St,Rt,Bt,Mt,jt,It,Ut,kt,Vt,Et],c:[Nt,Tt]}=re(this,[le("rui-hover-card")],[[F({type:Boolean,reflect:!0,defaultValue:!1}),0,"open"],[F({type:String,defaultValue:"bottom-start"}),0,"placement"],[F({type:Number,defaultValue:600}),0,"delay"],[F({type:Number,defaultValue:200}),0,"closeDelay"],[F({type:Boolean,defaultValue:!0}),0,"portal"],[F({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[F({type:String,attribute:"content-label",reflect:!0,defaultValue:tt}),0,"contentLabel"],[he({ref:"content"}),0,"contentTarget"],[ce({name:"rui-open-change",bubbles:!0,composed:!0}),0,"openChangeEvent"],[[S,ue(["open","placement","portal","disabled","contentLabel"])],2,"syncCard"],[W({document:!0,type:"keydown"}),2,"onDocumentKeydown"],[W({type:"focusin",ref:"trigger"}),2,"onFocusIn"],[W({type:"focusout",ref:"trigger"}),2,"onFocusOut"],[W({type:"keydown",ref:"trigger"}),2,"onHostKeydown"],[S,2,"onPointerEnter"],[S,2,"onPointerLeave"],[S,2,"onPointerDown"],[S,2,"onPointerUp"]],0,void 0,Wt))}open=(Et(this),xt(this));placement=(Pt(this),Ct(this));delay=(At(this),Ft(this));closeDelay=(Lt(this),Ot(this));portal=(Dt(this),Ht(this));disabled=(St(this),Rt(this));contentLabel=(Bt(this),Mt(this));contentTarget=(jt(this),It(this));openChangeEvent=(Ut(this),kt(this));contentId=(Vt(this),`rui-hover-card-${Math.random().toString(36).slice(2,9)}`);controller=null;showTimer=null;hideTimer=null;longPressTimer=null;openedByKeyboard=!1;connectedCallback(){super.connectedCallback(),this.addEventListener("pointerenter",this.onPointerEnter),this.addEventListener("pointerleave",this.onPointerLeave),this.addEventListener("pointerdown",this.onPointerDown),this.addEventListener("pointerup",this.onPointerUp),this.addEventListener("pointercancel",this.onPointerUp)}onConnected(){this.syncCard()}disconnectedCallback(){this.clearTimers(),this.open&&Z(),this.controller?.destroy(),this.controller=null,this.removeEventListener("pointerenter",this.onPointerEnter),this.removeEventListener("pointerleave",this.onPointerLeave),this.removeEventListener("pointerdown",this.onPointerDown),this.removeEventListener("pointerup",this.onPointerUp),this.removeEventListener("pointercancel",this.onPointerUp),super.disconnectedCallback()}clearTimers(){this.showTimer&&clearTimeout(this.showTimer),this.hideTimer&&clearTimeout(this.hideTimer),this.longPressTimer&&clearTimeout(this.longPressTimer),this.showTimer=null,this.hideTimer=null,this.longPressTimer=null}getAnchor(){let t=this.querySelector("[data-hover-card-trigger]");return t instanceof HTMLElement?V(t)??t:V(this)??this}getFloatingElement(){return this.controller?.getFloatingElement()??this.contentTarget}ensureController(){return this.controller||(this.controller=new K({getAnchor:()=>this.getAnchor(),getFloating:()=>this.contentTarget,getOpen:()=>this.open,getPlacement:()=>this.placement,gap:qt,portal:this.portal})),this.controller}syncCard(){let t=this.getAnchor(),n=this.contentTarget;n&&(n.id=this.contentId,n.setAttribute("aria-label",this.contentLabel)),t&&(t.setAttribute("aria-controls",this.contentId),t.setAttribute("aria-expanded",String(this.open)));let i=this.ensureController();i.updateConfig({getAnchor:()=>this.getAnchor(),getFloating:()=>this.contentTarget,getOpen:()=>this.open,getPlacement:()=>this.placement,gap:qt,portal:this.portal}),i.sync(),this.syncContentPointerBridge()}syncContentPointerBridge(){let t=this.getFloatingElement();t&&(t.removeEventListener("pointerenter",this.onPointerEnter),t.removeEventListener("pointerleave",this.onPointerLeave),this.open&&(t.addEventListener("pointerenter",this.onPointerEnter),t.addEventListener("pointerleave",this.onPointerLeave)))}setOpen(t,n=!0){if(this.disabled&&t)return;if(this.open===t){this.syncCard();return}let i=this.open;this.open=t,t?pt():i&&Z(),n&&this.openChangeEvent.emit({open:t}),this.syncCard()}scheduleShow(t=!1){if(this.disabled||this.open)return;this.clearTimers(),this.openedByKeyboard=t;let n=gt(this.delay);if(n<=0){this.setOpen(!0);return}this.showTimer=setTimeout(()=>this.setOpen(!0),n)}scheduleHide(){this.clearTimers();let t=this.closeDelay>0?this.closeDelay:0;if(t<=0){this.setOpen(!1);return}this.hideTimer=setTimeout(()=>this.setOpen(!1),t)}isTouchPointer(t){return t.pointerType==="touch"}onDocumentKeydown(t){if(!this.open||t.key!=="Escape")return;t.preventDefault();let n=this.getAnchor();this.setOpen(!1),n&&document.activeElement!==n&&n.focus()}onFocusIn(t){z(this.getAnchor(),this.getFloatingElement(),t.relatedTarget)&&this.scheduleShow(!0)}onFocusOut(t){z(this.getAnchor(),this.getFloatingElement(),t.relatedTarget)&&this.scheduleHide()}onHostKeydown(t){if(!this.open||t.key!=="Tab"||t.shiftKey||!this.openedByKeyboard)return;let n=this.getFloatingElement();if(!n)return;let i=V(n);i&&(t.preventDefault(),i.focus())}onPointerEnter(t){this.isTouchPointer(t)||this.scheduleShow()}onPointerLeave(t){this.isTouchPointer(t)||this.scheduleHide()}onPointerDown(t){this.disabled||!this.isTouchPointer(t)||(this.clearTimers(),this.longPressTimer=setTimeout(()=>{this.openedByKeyboard=!1,this.setOpen(!0)},de))}onPointerUp(){this.longPressTimer&&(clearTimeout(this.longPressTimer),this.longPressTimer=null)}static{Tt()}};function fe({children:e,class:t,...n}){return R("span",{class:"rui-hover-card__trigger","data-ref":"trigger",children:R("span",{...n,"data-hover-card-trigger":!0,class:Q(t),children:e})})}function pe({children:e,class:t,...n}){return R("div",{...n,"data-ref":"content",class:Q("rui-hover-card__content","rui-floating",t),role:"dialog",hidden:!0,children:e})}function ge({children:e,contentLabel:t=tt,...n}){return R("rui-hover-card",{contentLabel:t,...n,children:R("span",{class:"rui-hover-card",children:e})})}export{ge as RuiHoverCard,pe as RuiHoverCardContent,Nt as RuiHoverCardElement,fe as RuiHoverCardTrigger};
|
|
1
|
+
import{jsx as R}from"@ecopages/jsx/jsx-runtime";function z(...e){return e.filter(Boolean).join(" ")}import{RadiantElement as Nt,bindTo as pe,bound as H,customElement as me,event as ge,onEvent as $,onUpdated as ye,prop as F,query as ve}from"@ecopages/radiant";var Yt="a[href], button, input, select, textarea, [tabindex]";function zt(e){return!e.hasAttribute("disabled")&&e.getAttribute("tabindex")!=="-1"}function Jt(e){return Array.from(e.querySelectorAll(Yt)).filter(zt)}function k(e){return Jt(e)[0]}var Qt=/^[A-Za-z][A-Za-z0-9_-]*$/;function pt(e){return Qt.test(e)}function te(e){let t=e.trim();if(pt(t))return t;let n=`rui-${t}`;return t&&pt(n)?n:"rui"}function mt(e){let t=typeof crypto.randomUUID=="function"?crypto.randomUUID().replace(/-/g,""):Array.from(crypto.getRandomValues(new Uint8Array(16)),n=>n.toString(16).padStart(2,"0")).join("");return`${te(e)}-${t}`}var S=0,gt=0;function yt(){S+=1}function J(e=Date.now(),t=300){S=Math.max(0,S-1),S===0&&(gt=e+t)}function vt(e,t=Date.now()){return S>0||t<gt?0:e}var ee={top:"bottom",bottom:"top",left:"right",right:"left"},ne=8,Q=new WeakMap;function re(e){Q.has(e)&&(e.style.width="",e.style.minWidth="",e.style.maxWidth="",e.style.boxSizing="",Q.delete(e))}function ie(e){let t=e.indexOf("-");if(t===-1)return{side:e,align:"center"};let n=e.slice(0,t),r=e.slice(t+1);return{side:n,align:r==="start"||r==="end"?r:"center"}}function _t(e){return e==="top"||e==="bottom"?"y":"x"}function bt(e,t,n,r,i){let{width:a,height:s}=t,o=0,h=0;switch(n){case"top":h=e.top-s-i;break;case"bottom":h=e.bottom+i;break;case"left":o=e.left-a-i;break;case"right":o=e.right+i;break}return _t(n)==="y"?r==="start"?o=e.left:r==="end"?o=e.right-a:o=e.left+(e.width-a)/2:r==="start"?h=e.top:r==="end"?h=e.bottom-s:h=e.top+(e.height-s)/2,{x:o,y:h}}function oe(e,t,n,r){let{padding:i,width:a,height:s}=r;return n==="top"?Math.max(0,i-e.y):n==="bottom"?Math.max(0,e.y+t.height-(s-i)):n==="left"?Math.max(0,i-e.x):Math.max(0,e.x+t.width-(a-i))}function wt(e,t,n,r){let{padding:i,width:a,height:s}=r;return n==="top"?e.top-i-t.height:n==="bottom"?s-i-t.height-e.bottom:n==="left"?e.left-i-t.width:a-i-t.width-e.right}function se(e,t){return t==="center"?e:`${e}-${t}`}function ae(e,t,n,r){let{padding:i,width:a,height:s}=r;if(_t(n)==="y"){let h=Math.max(i,a-i-t.width);return{x:Math.min(Math.max(e.x,i),h),y:Math.max(i,e.y)}}let o=Math.max(i,s-i-t.height);return{x:Math.max(i,e.x),y:Math.min(Math.max(e.y,i),o)}}function le(e,t,n,r,i={width:typeof window>"u"?0:window.innerWidth,height:typeof window>"u"?0:window.innerHeight,padding:ne}){let{side:a,align:s}=ie(n),o=bt(e,t,a,s,r),h=oe(o,t,a,i),y=a,T=o;if(h>0){let P=ee[a],C=bt(e,t,P,s,r),I=wt(e,t,a,i);wt(e,t,P,i)>I&&(y=P,T=C)}return{coords:ae(T,t,y,i),placement:se(y,s)}}function ce(e,t,n,r,i={}){let a=i.matchAnchorWidth===!0,s=e.offsetWidth,o=a?{width:s,height:t.offsetHeight}:{width:t.offsetWidth,height:t.offsetHeight};a?(t.style.width=`${s}px`,t.style.minWidth=`${s}px`,t.style.maxWidth=`${s}px`,t.style.boxSizing="border-box",Q.set(t,!0)):re(t);let{coords:h,placement:y}=le(e.getBoundingClientRect(),o,n,r);return Object.assign(t.style,{position:"fixed",left:`${h.x}px`,top:`${h.y}px`,right:"auto",bottom:"auto",visibility:"visible"}),t.setAttribute("data-placement",y),y}function xt({anchor:e,floating:t,getPlacement:n,gap:r,matchAnchorWidth:i}){let a=()=>{t.hidden||ce(e,t,n(),r,{matchAnchorWidth:i})};a(),window.addEventListener("resize",a),window.addEventListener("scroll",a,!0);let s=new ResizeObserver(a);return s.observe(e),s.observe(t),()=>{window.removeEventListener("resize",a),window.removeEventListener("scroll",a,!0),s.disconnect()}}function Et(e,t=document.body){let n=e.parentNode;if(!n)return{unmount:()=>{}};let r=document.createComment("rui-portal");return n.insertBefore(r,e),t.appendChild(e),{unmount:()=>{let i=r.parentNode;i&&(i.insertBefore(e,r),r.remove())}}}function Tt(e,t,n){return n?!!(e?.contains(n)||t?.contains(n)):!1}function tt(e,t,n){return n instanceof Node?!Tt(e,t,n):!0}var V=class{config;cleanupFloating=null;portalHandle=null;floatingElement=null;constructor(t){this.config=t}updateConfig(t){this.config={...this.config,...t}}sync(){let t=this.resolveFloating();if(!t)return;if(!this.config.getOpen()){this.teardown(),t.toggleAttribute("hidden",!0);return}let r=this.config.getAnchor();if(!r)return;t.toggleAttribute("hidden",!1),this.config.portal!==!1?this.portalHandle||(this.portalHandle=Et(t,this.config.portalContainer??document.body)):this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null),this.teardownFloating(),this.cleanupFloating=xt({anchor:r,floating:t,getPlacement:this.config.getPlacement,gap:this.config.gap??8,matchAnchorWidth:this.config.matchAnchorWidth})}contains(t){return Tt(this.config.getAnchor(),this.resolveFloating(),t)}getFloatingElement(){return this.resolveFloating()}teardown(){this.teardownFloating(),this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null)}destroy(){this.teardown(),this.floatingElement=null}resolveFloating(){let t=this.config.getFloating();return t&&(this.floatingElement=t),t??this.floatingElement}teardownFloating(){this.cleanupFloating?.(),this.cleanupFloating=null}};var Pt,Ct,At,Ft,Dt,Lt,Ot,St,Ht,Rt,It,Mt,Ut,Wt,Bt,jt,kt,Vt,$t,Kt;function ue(e,t,n,r,i,a){var s,o,h,y,T,P,C,I=Symbol.metadata||Symbol.for("Symbol.metadata"),K=Object.defineProperty,q=Object.create,nt=[q(null),q(null)],rt=t.length;function M(l,v,m){return function(c,u){v&&(u=c,c=e);for(var b=0;b<l.length;b++)u=l[b].apply(c,m?[u]:[]);return m?u:c}}function x(l,v,m,c){if(typeof l!="function"&&(c||l!==void 0))throw new TypeError(v+" must "+(m||"be")+" a function"+(c?"":" or undefined"));return l}function it(l,v,m,c,u,b,A,g,w,_,st){function N(f){if(!st(f))throw new TypeError("Attempted to access private element on non-instance")}var G=[].concat(v[0]),at=v[3],Z=!A,L=u===1,lt=u===3,ct=u===4,U=u===2;function W(f,D,dt){return function(j,ft){return D&&(ft=j,j=l),dt&&dt(j),d[f].call(j,ft)}}if(!Z){var d={},X=[],E=lt?"get":ct||L?"set":"value";if(w?(_||L?d={get:qt(function(){return at(this)},c,"get"),set:function(f){v[4](this,f)}}:d[E]=at,_||qt(d[E],c,U?"":E)):_||(d=Object.getOwnPropertyDescriptor(l,c)),!_&&!w){if((o=nt[+g][c])&&(o^u)!==7)throw Error("Decorating two elements with the same name ("+d[E].name+") is not supported yet");nt[+g][c]=u<3?1:u}}for(var p=l,B=G.length-1;B>=0;B-=m?2:1){var ut=x(G[B],"A decorator","be",!0),ht=m?G[B-1]:void 0,Y={},O={kind:["field","accessor","method","getter","setter","class"][u],name:c,metadata:s,addInitializer:function(f,D){if(f.v)throw new TypeError("attempted to call addInitializer after decoration was finished");x(D,"An initializer","be",!0),b.push(D)}.bind(null,Y)};if(Z)o=ut.call(ht,p,O),Y.v=1,x(o,"class decorators","return")&&(p=o);else if(O.static=g,O.private=w,o=O.access={has:w?st.bind():function(f){return c in f}},ct||(o.get=w?U?function(f){return N(f),d.value}:W("get",0,N):function(f){return f[c]}),U||lt||(o.set=w?W("set",0,N):function(f,D){f[c]=D}),p=ut.call(ht,L?{get:d.get,set:d.set}:d[E],O),Y.v=1,L){if(typeof p=="object"&&p)(o=x(p.get,"accessor.get"))&&(d.get=o),(o=x(p.set,"accessor.set"))&&(d.set=o),(o=x(p.init,"accessor.init"))&&X.unshift(o);else if(p!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else x(p,(_?"field":"method")+" decorators","return")&&(_?X.unshift(p):d[E]=p)}return u<2&&A.push(M(X,g,1),M(b,g,0)),_||Z||(w?L?A.splice(-1,0,W("get",g),W("set",g)):A.push(U?d[E]:x.call.bind(d[E])):K(l,c,d)),p}function ot(l){return K(l,I,{configurable:!0,enumerable:!0,value:s})}return a!==void 0&&(s=a[I]),s=q(s??null),T=[],P=function(l){l&&T.push(M(l))},C=function(l,v){for(var m=0;m<n.length;m++){var c=n[m],u=c[1],b=7&u;if((8&u)==l&&!b==v){var A=c[2],g=!!c[3],w=16&u;it(l?e:e.prototype,c,w,g?"#"+A:he(A),b,b<2?[]:l?y=y||[]:h=h||[],T,!!l,g,v,l&&g?function(_){return fe(_)===e}:i)}}},C(8,0),C(0,0),C(8,1),C(0,1),P(h),P(y),o=T,rt||ot(e),{e:o,get c(){var l=[];return rt&&[ot(e=it(e,[t],r,e.name,5,l)),M(l,1)]}}}function he(e){var t=de(e,"string");return typeof t=="symbol"?t:t+""}function de(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function qt(e,t,n){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+" "+t:t})}catch{}return e}function fe(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(e!==null?typeof e:"null"));return e}var et="Preview",Gt=8,be=500,Xt,Zt=class extends Nt{static{({e:[At,Ft,Dt,Lt,Ot,St,Ht,Rt,It,Mt,Ut,Wt,Bt,jt,kt,Vt,$t,Kt,Pt],c:[Xt,Ct]}=ue(this,[me("rui-hover-card")],[[F({type:Boolean,reflect:!0,defaultValue:!1}),0,"open"],[F({type:String,defaultValue:"bottom-start"}),0,"placement"],[F({type:Number,defaultValue:600}),0,"delay"],[F({type:Number,defaultValue:200}),0,"closeDelay"],[F({type:Boolean,defaultValue:!0}),0,"portal"],[F({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[[F({type:String,attribute:"content-label",reflect:!0,defaultValue:et}),pe({ref:"content",attr:"aria-label"})],0,"contentLabel"],[ve({ref:"content"}),0,"contentTarget"],[ge({name:"rui-open-change",bubbles:!0,composed:!0}),0,"openChangeEvent"],[[H,ye(["open","placement","portal","disabled"])],2,"syncCard"],[$({document:!0,type:"keydown"}),2,"onDocumentKeydown"],[$({type:"focusin",ref:"trigger"}),2,"onFocusIn"],[$({type:"focusout",ref:"trigger"}),2,"onFocusOut"],[$({type:"keydown",ref:"trigger"}),2,"onHostKeydown"],[H,2,"onPointerEnter"],[H,2,"onPointerLeave"],[H,2,"onPointerDown"],[H,2,"onPointerUp"]],0,void 0,Nt))}open=(Pt(this),At(this));placement=(Ft(this),Dt(this));delay=(Lt(this),Ot(this));closeDelay=(St(this),Ht(this));portal=(Rt(this),It(this));disabled=(Mt(this),Ut(this));contentLabel=(Wt(this),Bt(this));contentTarget=(jt(this),kt(this));openChangeEvent=(Vt(this),$t(this));contentId=(Kt(this),mt("rui-hover-card"));controller=null;showTimer=null;hideTimer=null;longPressTimer=null;openedByKeyboard=!1;connectedCallback(){super.connectedCallback(),this.addEventListener("pointerenter",this.onPointerEnter),this.addEventListener("pointerleave",this.onPointerLeave),this.addEventListener("pointerdown",this.onPointerDown),this.addEventListener("pointerup",this.onPointerUp),this.addEventListener("pointercancel",this.onPointerUp)}onConnected(){this.syncCard()}disconnectedCallback(){this.clearTimers(),this.open&&J(),this.controller?.destroy(),this.controller=null,this.removeEventListener("pointerenter",this.onPointerEnter),this.removeEventListener("pointerleave",this.onPointerLeave),this.removeEventListener("pointerdown",this.onPointerDown),this.removeEventListener("pointerup",this.onPointerUp),this.removeEventListener("pointercancel",this.onPointerUp),super.disconnectedCallback()}clearTimers(){this.showTimer&&clearTimeout(this.showTimer),this.hideTimer&&clearTimeout(this.hideTimer),this.longPressTimer&&clearTimeout(this.longPressTimer),this.showTimer=null,this.hideTimer=null,this.longPressTimer=null}getAnchor(){let t=this.querySelector("[data-hover-card-trigger]");return t instanceof HTMLElement?k(t)??t:k(this)??this}getFloatingElement(){return this.controller?.getFloatingElement()??this.contentTarget}ensureController(){return this.controller||(this.controller=new V({getAnchor:()=>this.getAnchor(),getFloating:()=>this.contentTarget,getOpen:()=>this.open,getPlacement:()=>this.placement,gap:Gt,portal:this.portal})),this.controller}syncCard(){let t=this.getAnchor(),n=this.contentTarget;n&&(n.id=this.contentId),t&&(t.setAttribute("aria-controls",this.contentId),t.setAttribute("aria-expanded",String(this.open)));let r=this.ensureController();r.updateConfig({getAnchor:()=>this.getAnchor(),getFloating:()=>this.contentTarget,getOpen:()=>this.open,getPlacement:()=>this.placement,gap:Gt,portal:this.portal}),r.sync(),this.syncContentPointerBridge()}syncContentPointerBridge(){let t=this.getFloatingElement();t&&(t.removeEventListener("pointerenter",this.onPointerEnter),t.removeEventListener("pointerleave",this.onPointerLeave),this.open&&(t.addEventListener("pointerenter",this.onPointerEnter),t.addEventListener("pointerleave",this.onPointerLeave)))}setOpen(t,n=!0){if(this.disabled&&t)return;if(this.open===t){this.syncCard();return}let r=this.open;this.open=t,t?yt():r&&J(),n&&this.openChangeEvent.emit({open:t}),this.syncCard()}scheduleShow(t=!1){if(this.disabled||this.open)return;this.clearTimers(),this.openedByKeyboard=t;let n=vt(this.delay);if(n<=0){this.setOpen(!0);return}this.showTimer=setTimeout(()=>this.setOpen(!0),n)}scheduleHide(){this.clearTimers();let t=this.closeDelay>0?this.closeDelay:0;if(t<=0){this.setOpen(!1);return}this.hideTimer=setTimeout(()=>this.setOpen(!1),t)}isTouchPointer(t){return t.pointerType==="touch"}onDocumentKeydown(t){if(!this.open||t.key!=="Escape")return;t.preventDefault();let n=this.getAnchor();this.setOpen(!1),n&&document.activeElement!==n&&n.focus()}onFocusIn(t){tt(this.getAnchor(),this.getFloatingElement(),t.relatedTarget)&&this.scheduleShow(!0)}onFocusOut(t){tt(this.getAnchor(),this.getFloatingElement(),t.relatedTarget)&&this.scheduleHide()}onHostKeydown(t){if(!this.open||t.key!=="Tab"||t.shiftKey||!this.openedByKeyboard)return;let n=this.getFloatingElement();if(!n)return;let r=k(n);r&&(t.preventDefault(),r.focus())}onPointerEnter(t){this.isTouchPointer(t)||this.scheduleShow()}onPointerLeave(t){this.isTouchPointer(t)||this.scheduleHide()}onPointerDown(t){this.disabled||!this.isTouchPointer(t)||(this.clearTimers(),this.longPressTimer=setTimeout(()=>{this.openedByKeyboard=!1,this.setOpen(!0)},be))}onPointerUp(){this.longPressTimer&&(clearTimeout(this.longPressTimer),this.longPressTimer=null)}static{Ct()}};function we({children:e,class:t,...n}){return R("span",{class:"rui-hover-card__trigger","data-ref":"trigger",children:R("span",{...n,"data-hover-card-trigger":!0,class:z(t),children:e})})}function _e({children:e,class:t,...n}){return R("div",{...n,"data-ref":"content",class:z("rui-hover-card__content","rui-floating",t),role:"dialog",hidden:!0,children:e})}function xe({children:e,contentLabel:t=et,...n}){return R("rui-hover-card",{contentLabel:t,...n,children:R("span",{class:"rui-hover-card",children:e})})}export{xe as RuiHoverCard,_e as RuiHoverCardContent,Xt as RuiHoverCardElement,we as RuiHoverCardTrigger};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|