@ecopages/radiant-ui 0.2.5 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/README.md +2 -0
  2. package/dist/components/ui/alert/alert.d.ts +1 -3
  3. package/dist/components/ui/alert/alert.script.d.ts +7 -0
  4. package/dist/components/ui/alert/index.js +1 -1
  5. package/dist/components/ui/alert/index.js.map +3 -3
  6. package/dist/components/ui/autocomplete/autocomplete.d.ts +1 -2
  7. package/dist/components/ui/autocomplete/autocomplete.script.d.ts +7 -0
  8. package/dist/components/ui/autocomplete/index.js +1 -1
  9. package/dist/components/ui/autocomplete/index.js.map +3 -3
  10. package/dist/components/ui/breadcrumb/breadcrumb.d.ts +1 -2
  11. package/dist/components/ui/breadcrumb/breadcrumb.script.d.ts +7 -0
  12. package/dist/components/ui/breadcrumb/index.js +1 -1
  13. package/dist/components/ui/breadcrumb/index.js.map +3 -3
  14. package/dist/components/ui/calendar/calendar.script.d.ts +8 -0
  15. package/dist/components/ui/calendar/index.d.ts +1 -2
  16. package/dist/components/ui/calendar/index.js +1 -1
  17. package/dist/components/ui/calendar/index.js.map +4 -4
  18. package/dist/components/ui/carousel/carousel.d.ts +1 -2
  19. package/dist/components/ui/carousel/carousel.script.d.ts +7 -0
  20. package/dist/components/ui/carousel/index.js +1 -1
  21. package/dist/components/ui/carousel/index.js.map +3 -3
  22. package/dist/components/ui/checkbox/checkbox.d.ts +1 -2
  23. package/dist/components/ui/checkbox/checkbox.script.d.ts +7 -0
  24. package/dist/components/ui/checkbox/index.js +1 -1
  25. package/dist/components/ui/checkbox/index.js.map +3 -3
  26. package/dist/components/ui/checkbox-group/checkbox-group.d.ts +1 -2
  27. package/dist/components/ui/checkbox-group/checkbox-group.script.d.ts +7 -0
  28. package/dist/components/ui/checkbox-group/index.js +1 -1
  29. package/dist/components/ui/checkbox-group/index.js.map +3 -3
  30. package/dist/components/ui/combobox/combobox.d.ts +1 -2
  31. package/dist/components/ui/combobox/combobox.script.d.ts +7 -0
  32. package/dist/components/ui/combobox/index.js +1 -1
  33. package/dist/components/ui/combobox/index.js.map +3 -3
  34. package/dist/components/ui/cycle-toggle/cycle-toggle.d.ts +1 -2
  35. package/dist/components/ui/cycle-toggle/cycle-toggle.script.d.ts +7 -0
  36. package/dist/components/ui/cycle-toggle/index.js +1 -1
  37. package/dist/components/ui/cycle-toggle/index.js.map +3 -3
  38. package/dist/components/ui/date-field/date-field.d.ts +1 -3
  39. package/dist/components/ui/date-field/date-field.script.d.ts +7 -0
  40. package/dist/components/ui/date-field/index.js +1 -1
  41. package/dist/components/ui/date-field/index.js.map +4 -4
  42. package/dist/components/ui/date-input/date-input.d.ts +1 -2
  43. package/dist/components/ui/date-input/date-input.script.d.ts +8 -0
  44. package/dist/components/ui/date-input/index.js +1 -1
  45. package/dist/components/ui/date-input/index.js.map +3 -3
  46. package/dist/components/ui/date-range-picker/date-range-picker.d.ts +1 -3
  47. package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +7 -0
  48. package/dist/components/ui/date-range-picker/index.js +1 -1
  49. package/dist/components/ui/date-range-picker/index.js.map +4 -4
  50. package/dist/components/ui/dialog/dialog-registry.d.ts +0 -1
  51. package/dist/components/ui/dialog/dialog.d.ts +1 -2
  52. package/dist/components/ui/dialog/dialog.script.d.ts +7 -0
  53. package/dist/components/ui/dialog/index.js +1 -1
  54. package/dist/components/ui/dialog/index.js.map +3 -3
  55. package/dist/components/ui/disclosure/disclosure-group.script.d.ts +7 -0
  56. package/dist/components/ui/disclosure/disclosure.d.ts +2 -4
  57. package/dist/components/ui/disclosure/disclosure.script.d.ts +7 -0
  58. package/dist/components/ui/disclosure/index.js +1 -1
  59. package/dist/components/ui/disclosure/index.js.map +3 -3
  60. package/dist/components/ui/field/field.d.ts +1 -2
  61. package/dist/components/ui/field/field.script.d.ts +7 -0
  62. package/dist/components/ui/field/index.js +1 -1
  63. package/dist/components/ui/field/index.js.map +3 -3
  64. package/dist/components/ui/form/form.d.ts +1 -2
  65. package/dist/components/ui/form/form.script.d.ts +7 -0
  66. package/dist/components/ui/form/index.js +1 -1
  67. package/dist/components/ui/form/index.js.map +3 -3
  68. package/dist/components/ui/grid/grid.d.ts +1 -2
  69. package/dist/components/ui/grid/grid.script.d.ts +7 -0
  70. package/dist/components/ui/grid/index.js +1 -1
  71. package/dist/components/ui/grid/index.js.map +3 -3
  72. package/dist/components/ui/hover-card/hover-card.d.ts +1 -2
  73. package/dist/components/ui/hover-card/hover-card.script.d.ts +7 -0
  74. package/dist/components/ui/hover-card/index.js +1 -1
  75. package/dist/components/ui/hover-card/index.js.map +3 -3
  76. package/dist/components/ui/knob/index.js +1 -1
  77. package/dist/components/ui/knob/index.js.map +3 -3
  78. package/dist/components/ui/knob/knob.d.ts +1 -2
  79. package/dist/components/ui/knob/knob.script.d.ts +7 -0
  80. package/dist/components/ui/listbox/index.js +1 -1
  81. package/dist/components/ui/listbox/index.js.map +3 -3
  82. package/dist/components/ui/listbox/listbox.d.ts +1 -2
  83. package/dist/components/ui/listbox/listbox.script.d.ts +7 -0
  84. package/dist/components/ui/menu-button/index.js +1 -1
  85. package/dist/components/ui/menu-button/index.js.map +3 -3
  86. package/dist/components/ui/menu-button/menu-button.d.ts +1 -2
  87. package/dist/components/ui/menu-button/menu-button.script.d.ts +7 -0
  88. package/dist/components/ui/menubar/index.js +1 -1
  89. package/dist/components/ui/menubar/index.js.map +3 -3
  90. package/dist/components/ui/menubar/menubar.d.ts +1 -2
  91. package/dist/components/ui/menubar/menubar.script.d.ts +7 -0
  92. package/dist/components/ui/meter/index.d.ts +1 -2
  93. package/dist/components/ui/meter/index.js +1 -1
  94. package/dist/components/ui/meter/index.js.map +4 -4
  95. package/dist/components/ui/meter/meter.script.d.ts +8 -0
  96. package/dist/components/ui/navigation-menu/index.js +1 -1
  97. package/dist/components/ui/navigation-menu/index.js.map +3 -3
  98. package/dist/components/ui/navigation-menu/navigation-menu.css +2 -1
  99. package/dist/components/ui/navigation-menu/navigation-menu.d.ts +1 -2
  100. package/dist/components/ui/navigation-menu/navigation-menu.script.d.ts +7 -0
  101. package/dist/components/ui/number-field/index.js +1 -1
  102. package/dist/components/ui/number-field/index.js.map +3 -3
  103. package/dist/components/ui/number-field/number-field.d.ts +1 -2
  104. package/dist/components/ui/number-field/number-field.script.d.ts +7 -0
  105. package/dist/components/ui/pagination/index.js +1 -1
  106. package/dist/components/ui/pagination/index.js.map +3 -3
  107. package/dist/components/ui/pagination/pagination.d.ts +1 -2
  108. package/dist/components/ui/pagination/pagination.script.d.ts +7 -0
  109. package/dist/components/ui/popover/index.js +1 -1
  110. package/dist/components/ui/popover/index.js.map +3 -3
  111. package/dist/components/ui/popover/popover.d.ts +1 -2
  112. package/dist/components/ui/popover/popover.script.d.ts +9 -0
  113. package/dist/components/ui/radio-group/index.js +1 -1
  114. package/dist/components/ui/radio-group/index.js.map +3 -3
  115. package/dist/components/ui/radio-group/radio-group.d.ts +1 -2
  116. package/dist/components/ui/radio-group/radio-group.script.d.ts +7 -0
  117. package/dist/components/ui/select/index.js +1 -1
  118. package/dist/components/ui/select/index.js.map +3 -3
  119. package/dist/components/ui/select/select.d.ts +1 -2
  120. package/dist/components/ui/select/select.script.d.ts +7 -0
  121. package/dist/components/ui/sidebar/index.js +1 -1
  122. package/dist/components/ui/sidebar/index.js.map +3 -3
  123. package/dist/components/ui/sidebar/sidebar-trigger.d.ts +1 -2
  124. package/dist/components/ui/sidebar/sidebar-trigger.script.d.ts +7 -0
  125. package/dist/components/ui/sidebar/sidebar.d.ts +1 -3
  126. package/dist/components/ui/sidebar/sidebar.script.d.ts +7 -0
  127. package/dist/components/ui/slider/index.js +1 -1
  128. package/dist/components/ui/slider/index.js.map +3 -3
  129. package/dist/components/ui/slider/slider.d.ts +1 -2
  130. package/dist/components/ui/slider/slider.script.d.ts +7 -0
  131. package/dist/components/ui/switch/index.js +1 -1
  132. package/dist/components/ui/switch/index.js.map +3 -3
  133. package/dist/components/ui/switch/switch.d.ts +1 -2
  134. package/dist/components/ui/switch/switch.script.d.ts +7 -0
  135. package/dist/components/ui/table/index.js +1 -1
  136. package/dist/components/ui/table/index.js.map +3 -3
  137. package/dist/components/ui/table/table.d.ts +1 -2
  138. package/dist/components/ui/table/table.script.d.ts +7 -0
  139. package/dist/components/ui/tabs/index.d.ts +2 -2
  140. package/dist/components/ui/tabs/index.js +1 -1
  141. package/dist/components/ui/tabs/index.js.map +3 -3
  142. package/dist/components/ui/tabs/tabs.d.ts +1 -4
  143. package/dist/components/ui/tabs/tabs.script.d.ts +7 -0
  144. package/dist/components/ui/tag-group/index.js +1 -1
  145. package/dist/components/ui/tag-group/index.js.map +3 -3
  146. package/dist/components/ui/tag-group/tag-group.d.ts +1 -2
  147. package/dist/components/ui/tag-group/tag-group.script.d.ts +7 -0
  148. package/dist/components/ui/toast/index.d.ts +2 -2
  149. package/dist/components/ui/toast/index.js +1 -1
  150. package/dist/components/ui/toast/index.js.map +3 -3
  151. package/dist/components/ui/toast/toast.d.ts +2 -9
  152. package/dist/components/ui/toast/toast.script.d.ts +8 -0
  153. package/dist/components/ui/toast/toaster.script.d.ts +8 -1
  154. package/dist/components/ui/toc/index.d.ts +6 -2
  155. package/dist/components/ui/toc/index.js +1 -1
  156. package/dist/components/ui/toc/index.js.map +4 -4
  157. package/dist/components/ui/toc/toc.script.d.ts +8 -0
  158. package/dist/components/ui/toolbar/index.js +1 -1
  159. package/dist/components/ui/toolbar/index.js.map +3 -3
  160. package/dist/components/ui/toolbar/toolbar.d.ts +1 -2
  161. package/dist/components/ui/toolbar/toolbar.script.d.ts +7 -0
  162. package/dist/components/ui/tooltip/index.js +1 -1
  163. package/dist/components/ui/tooltip/index.js.map +3 -3
  164. package/dist/components/ui/tooltip/tooltip.d.ts +1 -2
  165. package/dist/components/ui/tooltip/tooltip.script.d.ts +7 -0
  166. package/dist/components/ui/tree/index.js +1 -1
  167. package/dist/components/ui/tree/index.js.map +3 -3
  168. package/dist/components/ui/tree/tree.d.ts +1 -2
  169. package/dist/components/ui/tree/tree.script.d.ts +7 -0
  170. package/dist/components/ui/treegrid/index.js +1 -1
  171. package/dist/components/ui/treegrid/index.js.map +3 -3
  172. package/dist/components/ui/treegrid/treegrid.d.ts +1 -2
  173. package/dist/components/ui/treegrid/treegrid.script.d.ts +7 -0
  174. package/dist/components/ui/window-splitter/index.js +1 -1
  175. package/dist/components/ui/window-splitter/index.js.map +3 -3
  176. package/dist/components/ui/window-splitter/window-splitter.d.ts +1 -2
  177. package/dist/components/ui/window-splitter/window-splitter.script.d.ts +7 -0
  178. package/dist/index.js +1 -1
  179. package/dist/index.js.map +4 -4
  180. package/dist/styles/radiant-ui-core.css +3 -0
  181. package/dist/styles/radiant-ui.css +3 -0
  182. package/dist/styles/styles.css +1 -1
  183. package/dist/styles/tailwind.css +3 -0
  184. package/package.json +11 -11
  185. package/dist/components/ui/calendar/calendar.d.ts +0 -6
  186. package/dist/components/ui/meter/meter.d.ts +0 -10
  187. package/dist/components/ui/toc/toc.d.ts +0 -7
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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/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"]
4
+ "sourcesContent": ["import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { RuiForm as RuiFormElement } from \"./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(RuiFormElement, {\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", "_RuiForm"]
7
7
  }
@@ -1,6 +1,5 @@
1
1
  import type { JsxCustomElementAttributes, JsxRenderable } from '@ecopages/jsx';
2
- import type { RuiGrid as RuiGridElement, RuiGridProps } from './grid.script';
3
- import './grid.script';
2
+ import { RuiGrid as RuiGridElement, type RuiGridProps } from './grid.script';
4
3
  /**
5
4
  * Grid view. Pass `rows` for a 2-D data grid, or `children` inside the stamped root surface.
6
5
  *
@@ -1,3 +1,4 @@
1
+ import type { JSX_PROPS } from '@ecopages/jsx';
1
2
  import { RadiantElement } from '@ecopages/radiant';
2
3
  export type RuiGridProps = {
3
4
  label?: string;
@@ -32,8 +33,14 @@ export type RuiGridProps = {
32
33
  * BEM classes live on the `RuiGrid` view; the host never queries them.
33
34
  */
34
35
  export declare class RuiGrid extends RadiantElement {
36
+ readonly [JSX_PROPS]?: RuiGridProps;
35
37
  label: string;
36
38
  protected onConnected(): void;
37
39
  private getRows;
38
40
  onKeydown(event: KeyboardEvent): void;
39
41
  }
42
+ declare global {
43
+ interface HTMLElementTagNameMap {
44
+ 'rui-grid': RuiGrid;
45
+ }
46
+ }
@@ -1,2 +1,2 @@
1
- import{RadiantElement as ue,customElement as me,onEvent as ve,prop as ye}from"@ecopages/radiant";function Q(e,t){e.forEach((l,u)=>{let m=u===t?0:-1;l.tabIndex!==m&&(l.tabIndex=m)})}var oe,ie,le,ae;function de(e,t,l,u,m,w){var f,o,_,v,S,j,x,M=Symbol.metadata||Symbol.for("Symbol.metadata"),W=Object.defineProperty,K=Object.create,X=[K(null),K(null)],Y=t.length;function O(r,p,d){return function(n,i){p&&(i=n,n=e);for(var g=0;g<r.length;g++)i=r[g].apply(n,d?[i]:[]);return d?i:n}}function A(r,p,d,n){if(typeof r!="function"&&(n||r!==void 0))throw new TypeError(p+" must "+(d||"be")+" a function"+(n?"":" or undefined"));return r}function Z(r,p,d,n,i,g,E,h,y,b,H){function L(c){if(!H(c))throw new TypeError("Attempted to access private element on non-instance")}var U=[].concat(p[0]),F=p[3],V=!E,D=i===1,P=i===3,N=i===4,q=i===2;function C(c,I,re){return function(k,ne){return I&&(ne=k,k=r),re&&re(k),a[c].call(k,ne)}}if(!V){var a={},B=[],R=P?"get":N||D?"set":"value";if(y?(b||D?a={get:ce(function(){return F(this)},n,"get"),set:function(c){p[4](this,c)}}:a[R]=F,b||ce(a[R],n,q?"":R)):b||(a=Object.getOwnPropertyDescriptor(r,n)),!b&&!y){if((o=X[+h][n])&&(o^i)!==7)throw Error("Decorating two elements with the same name ("+a[R].name+") is not supported yet");X[+h][n]=i<3?1:i}}for(var s=r,G=U.length-1;G>=0;G-=d?2:1){var ee=A(U[G],"A decorator","be",!0),te=d?U[G-1]:void 0,J={},T={kind:["field","accessor","method","getter","setter","class"][i],name:n,metadata:f,addInitializer:function(c,I){if(c.v)throw new TypeError("attempted to call addInitializer after decoration was finished");A(I,"An initializer","be",!0),g.push(I)}.bind(null,J)};if(V)o=ee.call(te,s,T),J.v=1,A(o,"class decorators","return")&&(s=o);else if(T.static=h,T.private=y,o=T.access={has:y?H.bind():function(c){return n in c}},N||(o.get=y?q?function(c){return L(c),a.value}:C("get",0,L):function(c){return c[n]}),q||P||(o.set=y?C("set",0,L):function(c,I){c[n]=I}),s=ee.call(te,D?{get:a.get,set:a.set}:a[R],T),J.v=1,D){if(typeof s=="object"&&s)(o=A(s.get,"accessor.get"))&&(a.get=o),(o=A(s.set,"accessor.set"))&&(a.set=o),(o=A(s.init,"accessor.init"))&&B.unshift(o);else if(s!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else A(s,(b?"field":"method")+" decorators","return")&&(b?B.unshift(s):a[R]=s)}return i<2&&E.push(O(B,h,1),O(g,h,0)),b||V||(y?D?E.splice(-1,0,C("get",h),C("set",h)):E.push(q?a[R]:A.call.bind(a[R])):W(r,n,a)),s}function $(r){return W(r,M,{configurable:!0,enumerable:!0,value:f})}return w!==void 0&&(f=w[M]),f=K(f??null),S=[],j=function(r){r&&S.push(O(r))},x=function(r,p){for(var d=0;d<l.length;d++){var n=l[d],i=n[1],g=7&i;if((8&i)==r&&!g==p){var E=n[2],h=!!n[3],y=16&i;Z(r?e:e.prototype,n,y,h?"#"+E:he(E),g,g<2?[]:r?v=v||[]:_=_||[],S,!!r,h,p,r&&h?function(b){return ge(b)===e}:m)}}},x(8,0),x(0,0),x(8,1),x(0,1),j(_),j(v),o=S,Y||$(e),{e:o,get c(){var r=[];return Y&&[$(e=Z(e,[t],u,e.name,5,r)),O(r,1)]}}}function he(e){var t=pe(e,"string");return typeof t=="symbol"?t:t+""}function pe(e,t){if(typeof e!="object"||!e)return e;var l=e[Symbol.toPrimitive];if(l!==void 0){var u=l.call(e,t||"default");if(typeof u!="object")return u;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ce(e,t,l){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:l?l+" "+t:t})}catch{}return e}function ge(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 fe,se=class extends ue{static{({e:[le,ae,oe],c:[fe,ie]}=de(this,[me("rui-grid")],[[ye({type:String,defaultValue:""}),0,"label"],[ve({selector:'[role="gridcell"]',type:"keydown"}),2,"onKeydown"]],0,void 0,ue))}constructor(...t){super(...t),ae(this)}label=(oe(this),le(this));onConnected(){let t=Array.from(this.querySelectorAll('[role="gridcell"]'));Q(t,0)}getRows(){return Array.from(this.querySelectorAll('[role="row"]'))}onKeydown(t){let l=this.getRows(),u=t.target.closest('[role="gridcell"]');if(!u)return;let m=u.parentElement,w=l.indexOf(m),f=Array.from(m.querySelectorAll('[role="gridcell"]')),o=f.indexOf(u),_=w,v=o;switch(t.key){case"ArrowRight":v=Math.min(f.length-1,o+1);break;case"ArrowLeft":v=Math.max(0,o-1);break;case"ArrowDown":_=Math.min(l.length-1,w+1);break;case"ArrowUp":_=Math.max(0,w-1);break;case"Home":v=0;break;case"End":v=f.length-1;break;default:return}t.preventDefault();let S=l[_],j=Array.from(S.querySelectorAll('[role="gridcell"]')),x=j[Math.min(v,j.length-1)],M=Array.from(this.querySelectorAll('[role="gridcell"]'));Q(M,M.indexOf(x)),x.focus()}static{ie()}};import{jsx as z}from"@ecopages/jsx/jsx-runtime";function be({rows:e,label:t,children:l,...u}){let m=e!=null?e.map(w=>z("div",{class:"rui-grid__row",role:"row",children:w.map(f=>z("div",{class:"rui-grid__cell",role:"gridcell",tabindex:-1,children:f}))})):l;return z("rui-grid",{...u,label:t,children:z("div",{class:"rui-grid","data-ref":"root",role:"grid","aria-label":t||void 0,children:m})})}export{be as RuiGrid,fe as RuiGridElement};
1
+ import{RadiantElement as se,customElement as me,onEvent as ve,prop as ye}from"@ecopages/radiant";function W(e,t){e.forEach((l,u)=>{let m=u===t?0:-1;l.tabIndex!==m&&(l.tabIndex=m)})}var ie,le,ae,ce;function de(e,t,l,u,m,w){var f,o,E,v,S,j,x,M=Symbol.metadata||Symbol.for("Symbol.metadata"),X=Object.defineProperty,L=Object.create,Y=[L(null),L(null)],Z=t.length;function G(r,p,d){return function(n,i){p&&(i=n,n=e);for(var g=0;g<r.length;g++)i=r[g].apply(n,d?[i]:[]);return d?i:n}}function A(r,p,d,n){if(typeof r!="function"&&(n||r!==void 0))throw new TypeError(p+" must "+(d||"be")+" a function"+(n?"":" or undefined"));return r}function $(r,p,d,n,i,g,_,h,y,b,F){function U(c){if(!F(c))throw new TypeError("Attempted to access private element on non-instance")}var V=[].concat(p[0]),P=p[3],B=!_,D=i===1,N=i===3,ee=i===4,O=i===2;function q(c,I,ne){return function(k,oe){return I&&(oe=k,k=r),ne&&ne(k),a[c].call(k,oe)}}if(!B){var a={},J=[],R=N?"get":ee||D?"set":"value";if(y?(b||D?a={get:ue(function(){return P(this)},n,"get"),set:function(c){p[4](this,c)}}:a[R]=P,b||ue(a[R],n,O?"":R)):b||(a=Object.getOwnPropertyDescriptor(r,n)),!b&&!y){if((o=Y[+h][n])&&(o^i)!==7)throw Error("Decorating two elements with the same name ("+a[R].name+") is not supported yet");Y[+h][n]=i<3?1:i}}for(var s=r,C=V.length-1;C>=0;C-=d?2:1){var te=A(V[C],"A decorator","be",!0),re=d?V[C-1]:void 0,Q={},T={kind:["field","accessor","method","getter","setter","class"][i],name:n,metadata:f,addInitializer:function(c,I){if(c.v)throw new TypeError("attempted to call addInitializer after decoration was finished");A(I,"An initializer","be",!0),g.push(I)}.bind(null,Q)};if(B)o=te.call(re,s,T),Q.v=1,A(o,"class decorators","return")&&(s=o);else if(T.static=h,T.private=y,o=T.access={has:y?F.bind():function(c){return n in c}},ee||(o.get=y?O?function(c){return U(c),a.value}:q("get",0,U):function(c){return c[n]}),O||N||(o.set=y?q("set",0,U):function(c,I){c[n]=I}),s=te.call(re,D?{get:a.get,set:a.set}:a[R],T),Q.v=1,D){if(typeof s=="object"&&s)(o=A(s.get,"accessor.get"))&&(a.get=o),(o=A(s.set,"accessor.set"))&&(a.set=o),(o=A(s.init,"accessor.init"))&&J.unshift(o);else if(s!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else A(s,(b?"field":"method")+" decorators","return")&&(b?J.unshift(s):a[R]=s)}return i<2&&_.push(G(J,h,1),G(g,h,0)),b||B||(y?D?_.splice(-1,0,q("get",h),q("set",h)):_.push(O?a[R]:A.call.bind(a[R])):X(r,n,a)),s}function H(r){return X(r,M,{configurable:!0,enumerable:!0,value:f})}return w!==void 0&&(f=w[M]),f=L(f??null),S=[],j=function(r){r&&S.push(G(r))},x=function(r,p){for(var d=0;d<l.length;d++){var n=l[d],i=n[1],g=7&i;if((8&i)==r&&!g==p){var _=n[2],h=!!n[3],y=16&i;$(r?e:e.prototype,n,y,h?"#"+_:he(_),g,g<2?[]:r?v=v||[]:E=E||[],S,!!r,h,p,r&&h?function(b){return ge(b)===e}:m)}}},x(8,0),x(0,0),x(8,1),x(0,1),j(E),j(v),o=S,Z||H(e),{e:o,get c(){var r=[];return Z&&[H(e=$(e,[t],u,e.name,5,r)),G(r,1)]}}}function he(e){var t=pe(e,"string");return typeof t=="symbol"?t:t+""}function pe(e,t){if(typeof e!="object"||!e)return e;var l=e[Symbol.toPrimitive];if(l!==void 0){var u=l.call(e,t||"default");if(typeof u!="object")return u;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ue(e,t,l){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:l?l+" "+t:t})}catch{}return e}function ge(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 z,fe=class extends se{static{({e:[ae,ce,ie],c:[z,le]}=de(this,[me("rui-grid")],[[ye({type:String,defaultValue:""}),0,"label"],[ve({selector:'[role="gridcell"]',type:"keydown"}),2,"onKeydown"]],0,void 0,se))}constructor(...t){super(...t),ce(this)}label=(ie(this),ae(this));onConnected(){let t=Array.from(this.querySelectorAll('[role="gridcell"]'));W(t,0)}getRows(){return Array.from(this.querySelectorAll('[role="row"]'))}onKeydown(t){let l=this.getRows(),u=t.target.closest('[role="gridcell"]');if(!u)return;let m=u.parentElement,w=l.indexOf(m),f=Array.from(m.querySelectorAll('[role="gridcell"]')),o=f.indexOf(u),E=w,v=o;switch(t.key){case"ArrowRight":v=Math.min(f.length-1,o+1);break;case"ArrowLeft":v=Math.max(0,o-1);break;case"ArrowDown":E=Math.min(l.length-1,w+1);break;case"ArrowUp":E=Math.max(0,w-1);break;case"Home":v=0;break;case"End":v=f.length-1;break;default:return}t.preventDefault();let S=l[E],j=Array.from(S.querySelectorAll('[role="gridcell"]')),x=j[Math.min(v,j.length-1)],M=Array.from(this.querySelectorAll('[role="gridcell"]'));W(M,M.indexOf(x)),x.focus()}static{le()}};import{jsx as K}from"@ecopages/jsx/jsx-runtime";function be({rows:e,label:t,children:l,...u}){let m=e!=null?e.map(w=>K("div",{class:"rui-grid__row",role:"row",children:w.map(f=>K("div",{class:"rui-grid__cell",role:"gridcell",tabindex:-1,children:f}))})):l;return K(z,{...u,label:t,children:K("div",{class:"rui-grid","data-ref":"root",role:"grid","aria-label":t||void 0,children:m})})}export{be as RuiGrid,z as RuiGridElement};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/ui/grid/grid.script.tsx", "../../../../src/lib/roving-tabindex.ts", "../../../../src/components/ui/grid/grid.tsx"],
4
- "sourcesContent": ["let _initProto, _initClass, _init_label, _init_extra_label;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { RadiantElement, customElement, onEvent, prop } from \"@ecopages/radiant\";\nimport { applyRovingTabindex } from \"@/lib/roving-tabindex\";\nlet _RuiGrid;\nclass RuiGrid extends RadiantElement {\n static {\n ({\n e: [_init_label, _init_extra_label, _initProto],\n c: [_RuiGrid, _initClass]\n } = _applyDecs(this, [customElement(\"rui-grid\")], [[prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [onEvent({\n selector: '[role=\"gridcell\"]',\n type: \"keydown\"\n }), 2, \"onKeydown\"]], 0, void 0, RadiantElement));\n }\n constructor(...args) {\n super(...args);\n _init_extra_label(this);\n }\n label = (_initProto(this), _init_label(this));\n onConnected() {\n const cells = Array.from(this.querySelectorAll('[role=\"gridcell\"]'));\n applyRovingTabindex(cells, 0);\n }\n getRows() {\n return Array.from(this.querySelectorAll('[role=\"row\"]'));\n }\n onKeydown(event) {\n const rows = this.getRows();\n const current = event.target.closest('[role=\"gridcell\"]');\n if (!current) return;\n const row = current.parentElement;\n const rowIndex = rows.indexOf(row);\n const cells = Array.from(row.querySelectorAll('[role=\"gridcell\"]'));\n const colIndex = cells.indexOf(current);\n let nextRow = rowIndex;\n let nextCol = colIndex;\n switch (event.key) {\n case \"ArrowRight\":\n nextCol = Math.min(cells.length - 1, colIndex + 1);\n break;\n case \"ArrowLeft\":\n nextCol = Math.max(0, colIndex - 1);\n break;\n case \"ArrowDown\":\n nextRow = Math.min(rows.length - 1, rowIndex + 1);\n break;\n case \"ArrowUp\":\n nextRow = Math.max(0, rowIndex - 1);\n break;\n case \"Home\":\n nextCol = 0;\n break;\n case \"End\":\n nextCol = cells.length - 1;\n break;\n default:\n return;\n }\n event.preventDefault();\n const targetRow = rows[nextRow];\n const targetCells = Array.from(targetRow.querySelectorAll('[role=\"gridcell\"]'));\n const target = targetCells[Math.min(nextCol, targetCells.length - 1)];\n const allCells = Array.from(this.querySelectorAll('[role=\"gridcell\"]'));\n applyRovingTabindex(allCells, allCells.indexOf(target));\n target.focus();\n }\n static {\n _initClass();\n }\n}\nexport { _RuiGrid as RuiGrid };", "export function applyRovingTabindex(items, activeIndex) {\n items.forEach((item, index) => {\n const next = index === activeIndex ? 0 : -1;\n if (item.tabIndex !== next) {\n item.tabIndex = next;\n }\n });\n}\nexport function focusRovingItem(items, index) {\n if (!items.length) return null;\n const next = Math.max(0, Math.min(items.length - 1, index));\n applyRovingTabindex(items, next);\n items[next]?.focus();\n return items[next] ?? null;\n}\nfunction deltaForKey(key, orientation) {\n if (key === \"Home\") return \"first\";\n if (key === \"End\") return \"last\";\n if (orientation === \"horizontal\") {\n if (key === \"ArrowRight\") return \"next\";\n if (key === \"ArrowLeft\") return \"prev\";\n return null;\n }\n if (key === \"ArrowDown\") return \"next\";\n if (key === \"ArrowUp\") return \"prev\";\n return null;\n}\nexport function navigateRovingTabindex(options) {\n const {\n items,\n current,\n key,\n orientation = \"horizontal\",\n wrap = true\n } = options;\n if (!items.length || !current) return {\n handled: false\n };\n const index = items.indexOf(current);\n if (index < 0) return {\n handled: false\n };\n const delta = deltaForKey(key, orientation);\n if (!delta) return {\n handled: false\n };\n let next = index;\n if (delta === \"first\") next = 0;else if (delta === \"last\") next = items.length - 1;else if (delta === \"next\") next = wrap ? (index + 1) % items.length : Math.min(items.length - 1, index + 1);else next = wrap ? (index - 1 + items.length) % items.length : Math.max(0, index - 1);\n const item = focusRovingItem(items, next);\n if (!item) return {\n handled: false\n };\n return {\n handled: true,\n index: next,\n item\n };\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport \"./grid.script\";\nexport function RuiGrid({\n rows,\n label,\n children,\n ...props\n}) {\n const content = rows != null ? rows.map(row => /* @__PURE__ */jsx(\"div\", {\n class: \"rui-grid__row\",\n role: \"row\",\n children: row.map(cell => /* @__PURE__ */jsx(\"div\", {\n class: \"rui-grid__cell\",\n role: \"gridcell\",\n tabindex: -1,\n children: cell\n }))\n })) : children;\n return /* @__PURE__ */jsx(\"rui-grid\", {\n ...props,\n label,\n children: /* @__PURE__ */jsx(\"div\", {\n class: \"rui-grid\",\n \"data-ref\": \"root\",\n role: \"grid\",\n \"aria-label\": label || void 0,\n children: content\n })\n });\n}"],
5
- "mappings": "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",
6
- "names": ["RadiantElement", "customElement", "onEvent", "prop", "applyRovingTabindex", "items", "activeIndex", "item", "index", "next", "_initProto", "_initClass", "_init_label", "_init_extra_label", "_applyDecs", "n", "r", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "b", "e", "applyDec", "w", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiGrid", "RuiGrid", "RadiantElement", "customElement", "prop", "onEvent", "args", "cells", "applyRovingTabindex", "event", "rows", "current", "row", "rowIndex", "colIndex", "nextRow", "nextCol", "targetRow", "targetCells", "target", "allCells", "jsx", "RuiGrid", "rows", "label", "children", "props", "content", "row", "jsx", "cell"]
4
+ "sourcesContent": ["let _initProto, _initClass, _init_label, _init_extra_label;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { RadiantElement, customElement, onEvent, prop } from \"@ecopages/radiant\";\nimport { applyRovingTabindex } from \"@/lib/roving-tabindex\";\nlet _RuiGrid;\nclass RuiGrid extends RadiantElement {\n static {\n ({\n e: [_init_label, _init_extra_label, _initProto],\n c: [_RuiGrid, _initClass]\n } = _applyDecs(this, [customElement(\"rui-grid\")], [[prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [onEvent({\n selector: '[role=\"gridcell\"]',\n type: \"keydown\"\n }), 2, \"onKeydown\"]], 0, void 0, RadiantElement));\n }\n constructor(...args) {\n super(...args);\n _init_extra_label(this);\n }\n label = (_initProto(this), _init_label(this));\n onConnected() {\n const cells = Array.from(this.querySelectorAll('[role=\"gridcell\"]'));\n applyRovingTabindex(cells, 0);\n }\n getRows() {\n return Array.from(this.querySelectorAll('[role=\"row\"]'));\n }\n onKeydown(event) {\n const rows = this.getRows();\n const current = event.target.closest('[role=\"gridcell\"]');\n if (!current) return;\n const row = current.parentElement;\n const rowIndex = rows.indexOf(row);\n const cells = Array.from(row.querySelectorAll('[role=\"gridcell\"]'));\n const colIndex = cells.indexOf(current);\n let nextRow = rowIndex;\n let nextCol = colIndex;\n switch (event.key) {\n case \"ArrowRight\":\n nextCol = Math.min(cells.length - 1, colIndex + 1);\n break;\n case \"ArrowLeft\":\n nextCol = Math.max(0, colIndex - 1);\n break;\n case \"ArrowDown\":\n nextRow = Math.min(rows.length - 1, rowIndex + 1);\n break;\n case \"ArrowUp\":\n nextRow = Math.max(0, rowIndex - 1);\n break;\n case \"Home\":\n nextCol = 0;\n break;\n case \"End\":\n nextCol = cells.length - 1;\n break;\n default:\n return;\n }\n event.preventDefault();\n const targetRow = rows[nextRow];\n const targetCells = Array.from(targetRow.querySelectorAll('[role=\"gridcell\"]'));\n const target = targetCells[Math.min(nextCol, targetCells.length - 1)];\n const allCells = Array.from(this.querySelectorAll('[role=\"gridcell\"]'));\n applyRovingTabindex(allCells, allCells.indexOf(target));\n target.focus();\n }\n static {\n _initClass();\n }\n}\nexport { _RuiGrid as RuiGrid };", "export function applyRovingTabindex(items, activeIndex) {\n items.forEach((item, index) => {\n const next = index === activeIndex ? 0 : -1;\n if (item.tabIndex !== next) {\n item.tabIndex = next;\n }\n });\n}\nexport function focusRovingItem(items, index) {\n if (!items.length) return null;\n const next = Math.max(0, Math.min(items.length - 1, index));\n applyRovingTabindex(items, next);\n items[next]?.focus();\n return items[next] ?? null;\n}\nfunction deltaForKey(key, orientation) {\n if (key === \"Home\") return \"first\";\n if (key === \"End\") return \"last\";\n if (orientation === \"horizontal\") {\n if (key === \"ArrowRight\") return \"next\";\n if (key === \"ArrowLeft\") return \"prev\";\n return null;\n }\n if (key === \"ArrowDown\") return \"next\";\n if (key === \"ArrowUp\") return \"prev\";\n return null;\n}\nexport function navigateRovingTabindex(options) {\n const {\n items,\n current,\n key,\n orientation = \"horizontal\",\n wrap = true\n } = options;\n if (!items.length || !current) return {\n handled: false\n };\n const index = items.indexOf(current);\n if (index < 0) return {\n handled: false\n };\n const delta = deltaForKey(key, orientation);\n if (!delta) return {\n handled: false\n };\n let next = index;\n if (delta === \"first\") next = 0;else if (delta === \"last\") next = items.length - 1;else if (delta === \"next\") next = wrap ? (index + 1) % items.length : Math.min(items.length - 1, index + 1);else next = wrap ? (index - 1 + items.length) % items.length : Math.max(0, index - 1);\n const item = focusRovingItem(items, next);\n if (!item) return {\n handled: false\n };\n return {\n handled: true,\n index: next,\n item\n };\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { RuiGrid as RuiGridElement } from \"./grid.script\";\nexport function RuiGrid({\n rows,\n label,\n children,\n ...props\n}) {\n const content = rows != null ? rows.map(row => /* @__PURE__ */jsx(\"div\", {\n class: \"rui-grid__row\",\n role: \"row\",\n children: row.map(cell => /* @__PURE__ */jsx(\"div\", {\n class: \"rui-grid__cell\",\n role: \"gridcell\",\n tabindex: -1,\n children: cell\n }))\n })) : children;\n return /* @__PURE__ */jsx(RuiGridElement, {\n ...props,\n label,\n children: /* @__PURE__ */jsx(\"div\", {\n class: \"rui-grid\",\n \"data-ref\": \"root\",\n role: \"grid\",\n \"aria-label\": label || void 0,\n children: content\n })\n });\n}"],
5
+ "mappings": "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",
6
+ "names": ["RadiantElement", "customElement", "onEvent", "prop", "applyRovingTabindex", "items", "activeIndex", "item", "index", "next", "_initProto", "_initClass", "_init_label", "_init_extra_label", "_applyDecs", "n", "r", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "b", "e", "applyDec", "w", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiGrid", "RuiGrid", "RadiantElement", "customElement", "prop", "onEvent", "args", "cells", "applyRovingTabindex", "event", "rows", "current", "row", "rowIndex", "colIndex", "nextRow", "nextCol", "targetRow", "targetCells", "target", "allCells", "jsx", "RuiGrid", "rows", "label", "children", "props", "content", "row", "jsx", "cell", "_RuiGrid"]
7
7
  }
@@ -1,6 +1,5 @@
1
1
  import type { JsxCustomElementAttributes, JsxElementProps } from '@ecopages/jsx';
2
- import { type RuiHoverCard as RuiHoverCardElement, type RuiHoverCardProps } from './hover-card.script';
3
- import './hover-card.script';
2
+ import { RuiHoverCard as RuiHoverCardElement, type RuiHoverCardProps } from './hover-card.script';
4
3
  export type RuiHoverCardTriggerProps = JsxElementProps<HTMLSpanElement>;
5
4
  /** Anchor for the hover card preview. Stamps `[data-ref="trigger"]` wrapping `[data-hover-card-trigger]`. */
6
5
  export declare function RuiHoverCardTrigger({ children, class: className, ...props }: RuiHoverCardTriggerProps): import("@ecopages/jsx").JsxRenderable;
@@ -1,3 +1,4 @@
1
+ import type { JSX_PROPS } from '@ecopages/jsx';
1
2
  import { RadiantElement } from '@ecopages/radiant';
2
3
  import type { EventEmitter } from '@ecopages/radiant/tools/event-emitter';
3
4
  import type { RuiPlacement } from '../shared/placement';
@@ -78,6 +79,7 @@ export declare const HOVER_CARD_DEFAULT_CONTENT_LABEL = "Preview";
78
79
  * `[data-hover-card-trigger]` + `[data-ref="content"]`. BEM classes live on the view.
79
80
  */
80
81
  export declare class RuiHoverCard extends RadiantElement {
82
+ readonly [JSX_PROPS]?: RuiHoverCardProps;
81
83
  open: boolean;
82
84
  placement: RuiPlacement;
83
85
  delay: number;
@@ -115,3 +117,8 @@ export declare class RuiHoverCard extends RadiantElement {
115
117
  onPointerDown(event: PointerEvent): void;
116
118
  onPointerUp(): void;
117
119
  }
120
+ declare global {
121
+ interface HTMLElementTagNameMap {
122
+ 'rui-hover-card': RuiHoverCard;
123
+ }
124
+ }