@vielzeug/refine 1.3.1 → 1.4.1

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 (138) hide show
  1. package/dist/checkbox-group.cjs +7 -7
  2. package/dist/checkbox-group.cjs.map +1 -1
  3. package/dist/checkbox-group.js +35 -26
  4. package/dist/checkbox-group.js.map +1 -1
  5. package/dist/checkbox.cjs +3 -3
  6. package/dist/checkbox.cjs.map +1 -1
  7. package/dist/checkbox.js +24 -19
  8. package/dist/checkbox.js.map +1 -1
  9. package/dist/combobox.cjs +24 -24
  10. package/dist/combobox.cjs.map +1 -1
  11. package/dist/combobox.js +133 -129
  12. package/dist/combobox.js.map +1 -1
  13. package/dist/custom-elements.json +5473 -4925
  14. package/dist/headless/auto-resize.cjs +2 -0
  15. package/dist/headless/auto-resize.cjs.map +1 -0
  16. package/dist/headless/auto-resize.d.ts +29 -0
  17. package/dist/headless/auto-resize.d.ts.map +1 -0
  18. package/dist/headless/auto-resize.js +16 -0
  19. package/dist/headless/auto-resize.js.map +1 -0
  20. package/dist/headless/checkable.cjs +1 -1
  21. package/dist/headless/checkable.cjs.map +1 -1
  22. package/dist/headless/checkable.d.ts +25 -7
  23. package/dist/headless/checkable.d.ts.map +1 -1
  24. package/dist/headless/checkable.js +19 -14
  25. package/dist/headless/checkable.js.map +1 -1
  26. package/dist/headless/choice-field.cjs +1 -1
  27. package/dist/headless/choice-field.cjs.map +1 -1
  28. package/dist/headless/choice-field.d.ts +21 -0
  29. package/dist/headless/choice-field.d.ts.map +1 -1
  30. package/dist/headless/choice-field.js +27 -19
  31. package/dist/headless/choice-field.js.map +1 -1
  32. package/dist/headless/composer.cjs +2 -0
  33. package/dist/headless/composer.cjs.map +1 -0
  34. package/dist/headless/composer.d.ts +44 -0
  35. package/dist/headless/composer.d.ts.map +1 -0
  36. package/dist/headless/composer.js +21 -0
  37. package/dist/headless/composer.js.map +1 -0
  38. package/dist/headless/field-base.cjs +1 -1
  39. package/dist/headless/field-base.cjs.map +1 -1
  40. package/dist/headless/field-base.d.ts +97 -84
  41. package/dist/headless/field-base.d.ts.map +1 -1
  42. package/dist/headless/field-base.js +43 -32
  43. package/dist/headless/field-base.js.map +1 -1
  44. package/dist/headless/index.d.ts +3 -1
  45. package/dist/headless/index.d.ts.map +1 -1
  46. package/dist/headless/text-field.cjs +1 -1
  47. package/dist/headless/text-field.cjs.map +1 -1
  48. package/dist/headless/text-field.d.ts +40 -0
  49. package/dist/headless/text-field.d.ts.map +1 -1
  50. package/dist/headless/text-field.js +30 -25
  51. package/dist/headless/text-field.js.map +1 -1
  52. package/dist/headless.cjs +1 -1
  53. package/dist/headless.js +27 -25
  54. package/dist/index.cjs +1 -1
  55. package/dist/index.js +61 -60
  56. package/dist/input.cjs +9 -9
  57. package/dist/input.cjs.map +1 -1
  58. package/dist/input.js +49 -44
  59. package/dist/input.js.map +1 -1
  60. package/dist/inputs/checkbox/checkbox.d.ts +3 -0
  61. package/dist/inputs/checkbox/checkbox.d.ts.map +1 -1
  62. package/dist/inputs/combobox/combobox.d.ts +1 -0
  63. package/dist/inputs/combobox/combobox.d.ts.map +1 -1
  64. package/dist/inputs/combobox/combobox.types.d.ts +2 -0
  65. package/dist/inputs/combobox/combobox.types.d.ts.map +1 -1
  66. package/dist/inputs/index.d.ts +2 -0
  67. package/dist/inputs/index.d.ts.map +1 -1
  68. package/dist/inputs/input/input.d.ts.map +1 -1
  69. package/dist/inputs/message-composer/message-composer.css.cjs +2 -0
  70. package/dist/inputs/message-composer/message-composer.css.cjs.map +1 -0
  71. package/dist/inputs/message-composer/message-composer.css.js +6 -0
  72. package/dist/inputs/message-composer/message-composer.css.js.map +1 -0
  73. package/dist/inputs/message-composer/message-composer.d.ts +139 -0
  74. package/dist/inputs/message-composer/message-composer.d.ts.map +1 -0
  75. package/dist/inputs/shared/field-binding.cjs +1 -1
  76. package/dist/inputs/shared/field-binding.cjs.map +1 -1
  77. package/dist/inputs/shared/field-binding.d.ts +15 -0
  78. package/dist/inputs/shared/field-binding.d.ts.map +1 -1
  79. package/dist/inputs/shared/field-binding.js +4 -3
  80. package/dist/inputs/shared/field-binding.js.map +1 -1
  81. package/dist/inputs/shared/form-context.cjs.map +1 -1
  82. package/dist/inputs/shared/form-context.d.ts +6 -0
  83. package/dist/inputs/shared/form-context.d.ts.map +1 -1
  84. package/dist/inputs/shared/form-context.js.map +1 -1
  85. package/dist/inputs/textarea/textarea.d.ts.map +1 -1
  86. package/dist/layout/navbar/navbar.css.cjs +1 -1
  87. package/dist/layout/navbar/navbar.css.cjs.map +1 -1
  88. package/dist/layout/navbar/navbar.css.js +1 -1
  89. package/dist/layout/navbar/navbar.css.js.map +1 -1
  90. package/dist/message-composer.cjs +52 -0
  91. package/dist/message-composer.cjs.map +1 -0
  92. package/dist/message-composer.js +168 -0
  93. package/dist/message-composer.js.map +1 -0
  94. package/dist/ore/dist/base-element.cjs +1 -1
  95. package/dist/ore/dist/base-element.cjs.map +1 -1
  96. package/dist/ore/dist/base-element.js +13 -3
  97. package/dist/ore/dist/base-element.js.map +1 -1
  98. package/dist/ore/dist/forms/field.cjs +1 -1
  99. package/dist/ore/dist/forms/field.cjs.map +1 -1
  100. package/dist/ore/dist/forms/field.js +29 -22
  101. package/dist/ore/dist/forms/field.js.map +1 -1
  102. package/dist/ore/dist/runtime.cjs +1 -1
  103. package/dist/ore/dist/runtime.cjs.map +1 -1
  104. package/dist/ore/dist/runtime.js +3 -1
  105. package/dist/ore/dist/runtime.js.map +1 -1
  106. package/dist/radio-group.cjs +9 -9
  107. package/dist/radio-group.cjs.map +1 -1
  108. package/dist/radio-group.js +44 -38
  109. package/dist/radio-group.js.map +1 -1
  110. package/dist/radio.cjs +3 -3
  111. package/dist/radio.cjs.map +1 -1
  112. package/dist/radio.js +23 -24
  113. package/dist/radio.js.map +1 -1
  114. package/dist/refine.cjs +228 -178
  115. package/dist/refine.cjs.map +1 -1
  116. package/dist/refine.iife.js +228 -178
  117. package/dist/refine.iife.js.map +1 -1
  118. package/dist/refine.js +251 -201
  119. package/dist/refine.js.map +1 -1
  120. package/dist/select.cjs +31 -31
  121. package/dist/select.cjs.map +1 -1
  122. package/dist/select.js +125 -122
  123. package/dist/select.js.map +1 -1
  124. package/dist/shared/size-presets.cjs +1 -1
  125. package/dist/shared/size-presets.cjs.map +1 -1
  126. package/dist/shared/size-presets.d.ts +23 -0
  127. package/dist/shared/size-presets.d.ts.map +1 -1
  128. package/dist/shared/size-presets.js +17 -1
  129. package/dist/shared/size-presets.js.map +1 -1
  130. package/dist/switch.cjs +3 -3
  131. package/dist/switch.cjs.map +1 -1
  132. package/dist/switch.js +17 -18
  133. package/dist/switch.js.map +1 -1
  134. package/dist/textarea.cjs +15 -15
  135. package/dist/textarea.cjs.map +1 -1
  136. package/dist/textarea.js +64 -60
  137. package/dist/textarea.js.map +1 -1
  138. package/package.json +22 -10
@@ -0,0 +1,168 @@
1
+ import { live as e } from "./ore/dist/directives/live.js";
2
+ import "./ore/dist/directives.js";
3
+ import { coarsePointerMixin as t, reducedMotionMixin as n } from "./styles/mixins/accessibility.css.js";
4
+ import { sizeVariantMixin as r } from "./styles/mixins/shape.css.js";
5
+ import { disabledLoadingMixin as i } from "./styles/mixins/states.css.js";
6
+ import { colorThemeMixin as a, forcedColorsFocusMixin as o, forcedColorsMixin as s } from "./styles/mixins/theme.css.js";
7
+ import { disablableBundle as c, loadableBundle as l, sizableBundle as u, themableBundle as d } from "./shared/prop-bundles.js";
8
+ import { MESSAGE_COMPOSER_SIZE_PRESET as f } from "./shared/size-presets.js";
9
+ import { lifecycleSignal as p } from "./headless/ore.js";
10
+ import { createAutoResize as m } from "./headless/auto-resize.js";
11
+ import { counterClassName as h } from "./headless/field-base.js";
12
+ import { createTextField as g } from "./headless/text-field.js";
13
+ import { createComposerControl as _ } from "./headless/composer.js";
14
+ import { useField as v } from "./ore/dist/forms/field.js";
15
+ import "./ore/dist/forms.js";
16
+ import { errorAttr as y } from "./inputs/shared/field-binding.js";
17
+ import { FORM_CTX as b, useFormContext as x } from "./inputs/shared/form-context.js";
18
+ import S from "./inputs/message-composer/message-composer.css.js";
19
+ import { bind as C, define as w, html as T, inject as E, onCleanup as D, onElement as O, prop as k, ref as A, useEmit as j, useSlots as M } from "@vielzeug/ore";
20
+ import { computed as N, watch as P } from "@vielzeug/ripple";
21
+ //#region src/inputs/message-composer/message-composer.ts
22
+ var F = "Send message", I = "arrow-up", L = "ore-message-composer";
23
+ w(L, {
24
+ formAssociated: !0,
25
+ props: {
26
+ ...d,
27
+ ...u,
28
+ ...c,
29
+ ...l,
30
+ "clear-on-send": k.bool(!0),
31
+ error: k.string(),
32
+ fullwidth: k.bool(!1),
33
+ helper: k.string(),
34
+ label: k.string(),
35
+ maxlength: k.json(void 0),
36
+ name: k.string(),
37
+ placeholder: k.string(),
38
+ readonly: k.bool(!1),
39
+ ref: k.json(void 0),
40
+ required: k.bool(!1),
41
+ rows: k.json(void 0),
42
+ "send-icon": k.string(),
43
+ "send-label": k.string(),
44
+ "send-shortcut": k.oneOf(["enter", "mod+enter"], "enter"),
45
+ value: k.string(),
46
+ variant: k.string()
47
+ },
48
+ setup(t) {
49
+ let n = j(), r = M(), i = E(b), a = x(t, i), o = a.disabled, s = p(D), c = A(), l = m(), u = g({
50
+ disabled: o,
51
+ error: t.error,
52
+ helper: t.helper,
53
+ maxLength: t.maxlength,
54
+ onInput: (e, t) => n("input", {
55
+ originalEvent: e,
56
+ value: t
57
+ }),
58
+ prefix: "composer",
59
+ readonly: t.readonly,
60
+ required: t.required,
61
+ signal: s,
62
+ validateOn: i?.validateOn,
63
+ value: t.value
64
+ });
65
+ u.attachFormField(v({
66
+ disabled: u.disabled,
67
+ onReset: () => {
68
+ u.reset(), l.recompute();
69
+ },
70
+ toFormValue: (e) => e,
71
+ validationMessage: u.validationMessage,
72
+ validity: u.validity,
73
+ value: u.value
74
+ }));
75
+ function d(e) {
76
+ n("send", {
77
+ originalEvent: e,
78
+ value: u.value.value.trim()
79
+ }) && t["clear-on-send"].value !== !1 && (u.clear(), l.recompute(), c.value?.focus());
80
+ }
81
+ let f = _({
82
+ disabled: o,
83
+ loading: N(() => !!t.loading.value),
84
+ onSend: d,
85
+ sendShortcut: t["send-shortcut"],
86
+ value: u.value
87
+ });
88
+ return O(c, (e) => {
89
+ let n = u.wire(e), r = l.wire(e), i = (e) => f.handleKeydown(e);
90
+ e.addEventListener("keydown", i), t.ref.value?.(e);
91
+ let a = P(t.ref, (t) => {
92
+ t?.(e);
93
+ });
94
+ return () => {
95
+ e.removeEventListener("keydown", i), n(), r(), a.dispose(), t.ref.value?.(null);
96
+ };
97
+ }), C({ attr: {
98
+ error: y(u.errorText),
99
+ size: a.size,
100
+ variant: a.variant
101
+ } }), T`
102
+ <div class="composer" part="composer">
103
+ <textarea
104
+ class="field"
105
+ part="field"
106
+ ref="${c}"
107
+ :rows="${() => t.rows.value ?? 1}"
108
+ :name="${() => t.name.value ?? ""}"
109
+ :placeholder="${() => t.placeholder.value ?? "Message…"}"
110
+ :maxlength="${() => t.maxlength.value}"
111
+ ?disabled="${o}"
112
+ ?readonly="${() => !!t.readonly.value}"
113
+ ?required="${() => !!t.required.value}"
114
+ :value="${e(u.value)}"
115
+ :aria-label="${() => t.label.value || "Message"}"
116
+ :aria-keyshortcuts="${f.keyShortcutsHint}"
117
+ :aria-describedby="${u.ariaDescribedBy}"
118
+ :aria-errormessage="${u.ariaErrorMessage}"
119
+ :aria-invalid="${u.ariaInvalid}"></textarea>
120
+ <span class="${() => h(u.counter?.value)}" aria-live="polite" ?hidden="${() => !u.counter}">${() => u.counter?.value.counterText.replace(" / ", "/") ?? ""}</span>
121
+ <div id="${u.assistiveId}" class="helper-text" aria-live="polite" part="helper" ?hidden="${() => !!u.errorText.value || !u.helperText.value}">
122
+ ${() => u.helperText.value}
123
+ </div>
124
+ <div id="${u.errorId}" class="helper-text" role="alert" part="error" ?hidden="${() => !u.errorText.value}">
125
+ ${() => u.errorText.value}
126
+ </div>
127
+ <div class="toolbar" part="toolbar">
128
+ <div class="toolbar-start" part="toolbar-start">
129
+ <slot name="prefix"></slot>
130
+ </div>
131
+ <div class="toolbar-end" part="toolbar-end">
132
+ <slot name="suffix"></slot>
133
+ <slot name="send"></slot>
134
+ ${() => r.has("send").value ? "" : T`<ore-button
135
+ class="send-btn"
136
+ part="send-button"
137
+ type="button"
138
+ icon-only
139
+ variant="solid"
140
+ :color="${() => t.color.value || "primary"}"
141
+ :size="${a.size}"
142
+ :label="${() => t["send-label"].value || F}"
143
+ ?loading="${() => !!t.loading.value}"
144
+ ?disabled="${() => !f.canSend.value}"
145
+ @click="${(e) => f.send(e)}">
146
+ <ore-icon name="${() => t["send-icon"].value || I}" size="16"></ore-icon>
147
+ </ore-button>`}
148
+ </div>
149
+ </div>
150
+ </div>
151
+ `;
152
+ },
153
+ shadow: { delegatesFocus: !0 },
154
+ styles: [
155
+ a,
156
+ t,
157
+ n,
158
+ i,
159
+ s,
160
+ o(".field"),
161
+ r(f),
162
+ S
163
+ ]
164
+ });
165
+ //#endregion
166
+ export { L as MESSAGE_COMPOSER_TAG };
167
+
168
+ //# sourceMappingURL=message-composer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-composer.js","names":[],"sources":["../src/inputs/message-composer/message-composer.ts"],"sourcesContent":["import { define, html, inject, prop, ref, bind, onCleanup, onElement, useEmit, useSlots } from '@vielzeug/ore';\nimport { live } from '@vielzeug/ore/directives';\nimport { useField } from '@vielzeug/ore/forms';\nimport { computed, watch } from '@vielzeug/ripple';\n\nimport type { ComponentSize, ThemeColor, VisualVariant } from '../../types';\n\nimport {\n counterClassName,\n createAutoResize,\n createComposerControl,\n createTextField,\n lifecycleSignal,\n type SendShortcut,\n} from '../../headless';\nimport {\n disablableBundle,\n loadableBundle,\n MESSAGE_COMPOSER_SIZE_PRESET,\n sizableBundle,\n themableBundle,\n} from '../../shared';\nimport {\n colorThemeMixin,\n coarsePointerMixin,\n disabledLoadingMixin,\n forcedColorsFocusMixin,\n forcedColorsMixin,\n reducedMotionMixin,\n sizeVariantMixin,\n} from '../../styles';\nimport { errorAttr } from '../shared/field-binding';\nimport { FORM_CTX, useFormContext } from '../shared/form-context';\nimport '../../content/icon/icon';\nimport '../button/button';\nimport componentStyles from './message-composer.css?inline';\n\nexport type { SendShortcut } from '../../headless';\n\nconst DEFAULT_SEND_LABEL = 'Send message';\nconst SEND_ICON = 'arrow-up';\n\n/** Events emitted by the message composer */\nexport type OreMessageComposerEvents = {\n /** Fired on every keystroke with the current value. */\n input: { originalEvent: Event; value: string };\n /**\n * Fired for a send attempt (the resolved `send-shortcut` or the send button) while the\n * composer isn't blank/disabled/loading. Cancelable — call `preventDefault()` to keep the\n * current text in the field instead of the default clear + refocus.\n */\n send: { originalEvent: KeyboardEvent | MouseEvent; value: string };\n};\n\n/** Message composer properties */\nexport type OreMessageComposerProps = {\n /** Clear the value and refocus after a non-cancelled `send` (default `true`) */\n 'clear-on-send'?: boolean;\n /** Theme color (card focus ring + default send button color) */\n color?: ThemeColor;\n /** Disable the whole composer (field, slots, and send action) */\n disabled?: boolean;\n /** Error message shown below the field */\n error?: string;\n /** Stretch the composer to the full width of its container */\n fullwidth?: boolean;\n /** Helper text shown below the field */\n helper?: string;\n /** Accessible name for the field — never rendered visually, only as `aria-label` */\n label?: string;\n /** Blocks further sends (e.g. a send is already in flight) without disabling editing */\n loading?: boolean;\n /** Maximum character count; shows a counter */\n maxlength?: number;\n /** Form field name */\n name?: string;\n /** Placeholder text */\n placeholder?: string;\n /** Make the field read-only */\n readonly?: boolean;\n /**\n * JS-only callback fired with the inner `<textarea>` element when it mounts, and with\n * `null` when it unmounts. Set as a JS property: `composer.ref = (el) => { ... }`.\n */\n ref?: ((el: HTMLTextAreaElement | null) => void) | null;\n /** Require a non-blank value for `<ore-form>` validation */\n required?: boolean;\n /** Number of visible rows before auto-resize grows the field */\n rows?: number;\n /** Lucide icon name for the default send button (default `'arrow-up'`) */\n 'send-icon'?: string;\n /** Accessible label for the send button (default `'Send message'`) */\n 'send-label'?: string;\n /** Keyboard shortcut that sends: 'enter' (Shift+Enter for a newline) or 'mod+enter' (Enter always inserts a newline; Ctrl/Cmd+Enter sends) */\n 'send-shortcut'?: SendShortcut;\n /** Component size */\n size?: ComponentSize;\n /** Current text value */\n value?: string;\n /** Visual variant of the card — same variant set as `ore-textarea`, applied to the card. */\n variant?: Exclude<VisualVariant, 'frost' | 'text'>;\n};\n\n/**\n * A message/comment composer — a card with an auto-resizing field on top and a toolbar row\n * below it, built directly on the same headless primitives as `ore-textarea` (`createTextField`,\n * `createAutoResize`) rather than composing `ore-textarea` itself. Nesting a fully-styled sibling\n * component and suppressing most of its chrome (as an earlier version of this component did) is\n * a leaky composition — this owns its single `<textarea>` outright, so there's exactly one\n * implementation of the field's appearance to reason about, not two fighting each other.\n *\n * Handles the send gesture (Enter to send, Shift+Enter for a newline, or a Ctrl/Cmd+Enter\n * alternative), IME-safe composition, and clear-and-refocus after sending.\n *\n * @element ore-message-composer\n *\n * @attr {string} value - Current text value\n * @attr {string} placeholder - Placeholder text\n * @attr {string} label - Accessible name for the field (not rendered visually)\n * @attr {string} name - Form field name\n * @attr {string} helper - Helper text shown below the field\n * @attr {string} error - Error message shown below the field\n * @attr {boolean} disabled - Disable the whole composer\n * @attr {boolean} readonly - Read-only mode\n * @attr {boolean} required - Require a non-blank value for `<ore-form>` validation\n * @attr {boolean} loading - Blocks further sends without disabling editing\n * @attr {number} maxlength - Max character count; shows a counter\n * @attr {number} rows - Visible rows before auto-resize grows the field (default 1)\n * @attr {string} color - Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'\n * @attr {string} variant - Visual variant of the card: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost'\n * @attr {string} size - 'sm' | 'md' | 'lg'\n * @attr {boolean} fullwidth - Stretch to the full width of the container\n * @attr {string} send-icon - Lucide icon name for the default send button (default 'arrow-up')\n * @attr {string} send-label - Accessible label for the send button (default 'Send message')\n * @attr {string} send-shortcut - 'enter' (default) | 'mod+enter'\n * @attr {boolean} clear-on-send - Clear the value and refocus after a non-cancelled send (default true)\n *\n * @fires input - Fired on every keystroke. detail: { value, originalEvent }\n * @fires send - Fired on a send attempt. Cancelable. detail: { value, originalEvent }\n *\n * @slot prefix - Content at the start of the toolbar row (e.g. an attach menu)\n * @slot suffix - Content at the end of the toolbar row, before the send button (e.g. a model picker)\n * @slot send - Replaces the default send button entirely — the only supported way to customize it\n *\n * @cssprop --message-composer-bg - Card background color\n * @cssprop --message-composer-border-color - Card border color\n * @cssprop --message-composer-radius - Card border radius\n * @cssprop --message-composer-padding - Card inner padding\n * @cssprop --message-composer-gap - Gap between the field/toolbar rows and between toolbar items\n * @cssprop --message-composer-placeholder-color - Field placeholder text color\n * @cssprop --message-composer-min-height - Minimum field height (default one line)\n * @cssprop --message-composer-hover-bg - Card background on hover (flat/ghost variants)\n * @cssprop --message-composer-hover-border-color - Card border on hover (flat/bordered variants)\n * @cssprop --message-composer-focus-bg - Card background when focused (flat variant)\n * @cssprop --message-composer-focus-border-color - Card border when focused (flat variant)\n *\n * @part composer - Root card container\n * @part field - The native `<textarea>` element\n * @part helper - Helper text element\n * @part error - Error text element (`role=\"alert\"`)\n * @part toolbar - Toolbar row below the field\n * @part toolbar-start - Toolbar group holding the `prefix` slot\n * @part toolbar-end - Toolbar group holding the `suffix` slot and the send button\n * @part send-button - The default send button (absent when the `send` slot is used)\n *\n * @example\n * ```html\n * <ore-message-composer placeholder=\"Message…\" send-shortcut=\"mod+enter\"></ore-message-composer>\n * ```\n */\nexport const MESSAGE_COMPOSER_TAG = 'ore-message-composer' as const;\ndefine<OreMessageComposerProps>(MESSAGE_COMPOSER_TAG, {\n formAssociated: true,\n props: {\n ...themableBundle,\n ...sizableBundle,\n ...disablableBundle,\n ...loadableBundle,\n 'clear-on-send': prop.bool(true),\n error: prop.string(),\n fullwidth: prop.bool(false),\n helper: prop.string(),\n label: prop.string(),\n maxlength: prop.json(undefined as number | undefined),\n name: prop.string(),\n placeholder: prop.string(),\n readonly: prop.bool(false),\n ref: prop.json(undefined as ((el: HTMLTextAreaElement | null) => void) | null | undefined),\n required: prop.bool(false),\n rows: prop.json(undefined as number | undefined),\n 'send-icon': prop.string(),\n 'send-label': prop.string(),\n 'send-shortcut': prop.oneOf(['enter', 'mod+enter'] as const, 'enter'),\n value: prop.string(),\n variant: prop.string<Exclude<VisualVariant, 'frost' | 'text'>>(),\n },\n setup(props) {\n const emit = useEmit<OreMessageComposerEvents>();\n const slots = useSlots<'prefix' | 'send' | 'suffix'>();\n\n const formCtx = inject(FORM_CTX);\n const fCtxProps = useFormContext(props, formCtx);\n const isDisabled = fCtxProps.disabled;\n\n const abortSignal = lifecycleSignal(onCleanup);\n const textareaRef = ref<HTMLTextAreaElement>();\n const autoResize = createAutoResize();\n\n const tf = createTextField({\n disabled: isDisabled,\n error: props.error,\n helper: props.helper,\n maxLength: props.maxlength,\n onInput: (event, value) => emit('input', { originalEvent: event, value }),\n prefix: 'composer',\n readonly: props.readonly,\n required: props.required,\n signal: abortSignal,\n validateOn: formCtx?.validateOn,\n value: props.value,\n });\n\n // Directly form-associated now that the field is owned here rather than borrowed from a\n // nested `ore-textarea` (which previously registered with the ancestor `<form>` on this\n // component's behalf).\n tf.attachFormField(\n useField<string>({\n disabled: tf.disabled,\n onReset: () => {\n tf.reset();\n autoResize.recompute();\n },\n toFormValue: (v) => v,\n validationMessage: tf.validationMessage,\n validity: tf.validity,\n value: tf.value,\n }),\n );\n\n function attemptSend(event: KeyboardEvent | MouseEvent): void {\n const notPrevented = emit('send', { originalEvent: event, value: tf.value.value.trim() });\n\n // `preventDefault()` on `send` means \"keep the current text — skip the default clear\n // + refocus\" (see the event's own doc comment): both halves of that default are gated on\n // the same condition, not just the clear.\n if (notPrevented && props['clear-on-send'].value !== false) {\n tf.clear();\n autoResize.recompute();\n textareaRef.value?.focus();\n }\n }\n\n const composer = createComposerControl({\n disabled: isDisabled,\n loading: computed(() => Boolean(props.loading.value)),\n onSend: attemptSend,\n sendShortcut: props['send-shortcut'],\n value: tf.value,\n });\n\n onElement(textareaRef, (textareaEl) => {\n const unwireField = tf.wire(textareaEl);\n const unwireAutoResize = autoResize.wire(textareaEl);\n const handleKeydown = (e: KeyboardEvent) => composer.handleKeydown(e);\n\n textareaEl.addEventListener('keydown', handleKeydown);\n\n // Immediate fire for when the prop is already set on mount.\n props.ref.value?.(textareaEl);\n\n // Reactive watcher so that if props.ref is set *after* the inner <textarea> mounts\n // (e.g. a parent sets it via a ref callback after render), the new callback still\n // receives the live element.\n const refSub = watch(props.ref, (cb) => {\n cb?.(textareaEl);\n });\n\n return () => {\n textareaEl.removeEventListener('keydown', handleKeydown);\n unwireField();\n unwireAutoResize();\n refSub.dispose();\n props.ref.value?.(null);\n };\n });\n\n bind({\n attr: {\n error: errorAttr(tf.errorText),\n size: fCtxProps.size,\n variant: fCtxProps.variant,\n },\n });\n\n const counterClass = () => counterClassName(tf.counter?.value);\n const counterHidden = () => !tf.counter;\n const counterText = () => tf.counter?.value.counterText.replace(' / ', '/') ?? '';\n const helperHidden = () => !!tf.errorText.value || !tf.helperText.value;\n const errorHidden = () => !tf.errorText.value;\n\n return html`\n <div class=\"composer\" part=\"composer\">\n <textarea\n class=\"field\"\n part=\"field\"\n ref=\"${textareaRef}\"\n :rows=\"${() => props.rows.value ?? 1}\"\n :name=\"${() => props.name.value ?? ''}\"\n :placeholder=\"${() => props.placeholder.value ?? 'Message…'}\"\n :maxlength=\"${() => props.maxlength.value}\"\n ?disabled=\"${isDisabled}\"\n ?readonly=\"${() => Boolean(props.readonly.value)}\"\n ?required=\"${() => Boolean(props.required.value)}\"\n :value=\"${live(tf.value)}\"\n :aria-label=\"${() => props.label.value || 'Message'}\"\n :aria-keyshortcuts=\"${composer.keyShortcutsHint}\"\n :aria-describedby=\"${tf.ariaDescribedBy}\"\n :aria-errormessage=\"${tf.ariaErrorMessage}\"\n :aria-invalid=\"${tf.ariaInvalid}\"></textarea>\n <span class=\"${counterClass}\" aria-live=\"polite\" ?hidden=\"${counterHidden}\">${counterText}</span>\n <div id=\"${tf.assistiveId}\" class=\"helper-text\" aria-live=\"polite\" part=\"helper\" ?hidden=\"${helperHidden}\">\n ${() => tf.helperText.value}\n </div>\n <div id=\"${tf.errorId}\" class=\"helper-text\" role=\"alert\" part=\"error\" ?hidden=\"${errorHidden}\">\n ${() => tf.errorText.value}\n </div>\n <div class=\"toolbar\" part=\"toolbar\">\n <div class=\"toolbar-start\" part=\"toolbar-start\">\n <slot name=\"prefix\"></slot>\n </div>\n <div class=\"toolbar-end\" part=\"toolbar-end\">\n <slot name=\"suffix\"></slot>\n <slot name=\"send\"></slot>\n ${() =>\n slots.has('send').value\n ? ''\n : html`<ore-button\n class=\"send-btn\"\n part=\"send-button\"\n type=\"button\"\n icon-only\n variant=\"solid\"\n :color=\"${() => props.color.value || 'primary'}\"\n :size=\"${fCtxProps.size}\"\n :label=\"${() => props['send-label'].value || DEFAULT_SEND_LABEL}\"\n ?loading=\"${() => Boolean(props.loading.value)}\"\n ?disabled=\"${() => !composer.canSend.value}\"\n @click=\"${(e: MouseEvent) => composer.send(e)}\">\n <ore-icon name=\"${() => props['send-icon'].value || SEND_ICON}\" size=\"16\"></ore-icon>\n </ore-button>`}\n </div>\n </div>\n </div>\n `;\n },\n shadow: { delegatesFocus: true },\n styles: [\n colorThemeMixin,\n coarsePointerMixin,\n reducedMotionMixin,\n disabledLoadingMixin,\n forcedColorsMixin,\n forcedColorsFocusMixin('.field'),\n sizeVariantMixin(MESSAGE_COMPOSER_SIZE_PRESET),\n componentStyles,\n ],\n});\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- const e=require("./_dev.cjs"),t=require("./errors.cjs");require("./types/bindings.cjs");const n=require("./runtime.cjs"),r=require("./utils/css.cjs"),i=require("./props.cjs"),a=require("./types.cjs");let o=require("@vielzeug/ripple");var s=()=>({generation:0,mountCallbacks:[],phase:a.ComponentPhase.UNINITIALIZED,scope:(0,o.scope)(),templateResult:null}),c=class extends HTMLElement{static _definition;static _normalizedPropDefs;static formAssociated=!1;static observedAttributes=[];_component;constructor(){super();let e=this.constructor._definition;e?.shadow!==!1&&this.attachShadow({mode:`open`,...e?.shadow}),this._component=s()}connectedCallback(){(0,o.untrack)(()=>{this._component.phase===a.ComponentPhase.UNINITIALIZED&&this._runSetup(),this._init()}),this.dispatchEvent(new CustomEvent(a.LIFECYCLE_EVENTS.CONNECT,{bubbles:!1,composed:!1}))}attributeChangedCallback(e,t,n){if(t===n)return;let r=i.getPropMeta(this,e);if(!r)return;let a=r.parse(n);Object.is((0,o.untrack)(()=>r.signal.value),a)||(r.signal.value=a)}disconnectedCallback(){this._component.generation++,this._component.phase=a.ComponentPhase.UNMOUNTED,this.dispatchEvent(new CustomEvent(a.LIFECYCLE_EVENTS.DISCONNECT,{bubbles:!1,composed:!1})),this._component.scope.dispose(),this._component.mountCallbacks=[],this._component.phase=a.ComponentPhase.UNINITIALIZED,this._component.scope=(0,o.scope)(),this._component.templateResult=null}_handleSetupError(e,n=`setup`){let r=e instanceof Error?e:Error(String(e)),i=new t.OreLifecycleError(`<${this.localName}> failed during ${this._component.phase} (${n})`,{cause:r,component:this.localName,phase:n}),a=this.constructor._definition;if(a?.onError)try{return a.onError(i,this)}catch{}t.reportRuntimeError(i,this)}_runSetup(){this._component.phase=a.ComponentPhase.SETUP_RUNNING;let e=this.constructor._definition,t=this.constructor._normalizedPropDefs,r={element:this,mountCallbacks:[]};try{let o;if(this._component.scope.run(()=>{o=n.runWithContext(r,()=>{let n=t?i.createProps(this,t):{};return e.setup(n)})}),this._component.mountCallbacks.push(...r.mountCallbacks),o!=null&&typeof o.then==`function`){let t=this._component.mountCallbacks.splice(0);this._component.phase=a.ComponentPhase.LOADING,e.loading&&(this._component.templateResult=e.loading()),this._runSetupAsync(o,t,this._component.generation)}else this._component.templateResult=o??null,this._component.phase=a.ComponentPhase.SETUP_DONE}catch(e){let t=this._handleSetupError(e);if(t)this._component.templateResult=t,this._component.phase=a.ComponentPhase.SETUP_DONE;else throw this._component.phase=a.ComponentPhase.UNINITIALIZED,e}}_isStale(e){return this._component.generation!==e||!this.isConnected}async _runSetupAsync(t,n,r){try{let i=await t;if(this._isStale(r)){e.warn(`<${this.localName}> async setup result discarded — element disconnected before setup resolved.`);return}this._component.templateResult=i??null,this._component.phase=a.ComponentPhase.SETUP_DONE,this._component.mountCallbacks.push(...n),i&&this._applyResult(i),this._scheduleMountCallbacks()}catch(t){if(this._isStale(r)){e.warn(`<${this.localName}> async setup error discarded — element disconnected before setup resolved.`);return}let n=this._handleSetupError(t,`async-setup`);n?(this._component.templateResult=n,this._component.phase=a.ComponentPhase.SETUP_DONE,this._applyResult(n)):this._component.phase=a.ComponentPhase.UNINITIALIZED}}_applyResult(e){e&&((this.shadowRoot??this).replaceChildren(e.fragment),this._component.scope.run(()=>{e.apply(n.onCleanup)}))}_init(){this._applyStyles(),this._mountTemplate(),this._component.phase===a.ComponentPhase.SETUP_DONE&&this._scheduleMountCallbacks()}_applyStyles(){let e=this.constructor._definition;this.shadowRoot&&e?.styles?.length&&(this.shadowRoot.adoptedStyleSheets=e.styles.map(r.loadStylesheet))}_mountTemplate(){let e=this._component.templateResult;e&&this._applyResult(e)}_scheduleMountCallbacks(){if(this._component.mountCallbacks.length===0)return;let e=this._component.generation;queueMicrotask(()=>{if(this._isStale(e))return;let t=this._component.mountCallbacks.splice(0);for(let e of t)try{let t={element:this,mountCallbacks:[]};this._component.scope.run(()=>{n.runWithContext(t,()=>{let t=e();typeof t==`function`&&n.onCleanup(t)})}),t.mountCallbacks.length>0&&this._component.mountCallbacks.push(...t.mountCallbacks)}catch(e){this._handleSetupError(e,`mounted`)}this._component.mountCallbacks.length>0&&this._scheduleMountCallbacks()})}};exports.BaseElement=c;
1
+ const e=require("./_dev.cjs"),t=require("./errors.cjs");require("./types/bindings.cjs");const n=require("./runtime.cjs"),r=require("./utils/css.cjs"),i=require("./props.cjs"),a=require("./types.cjs");let o=require("@vielzeug/ripple");var s=()=>({formResetCallbacks:[],generation:0,mountCallbacks:[],phase:a.ComponentPhase.UNINITIALIZED,scope:(0,o.scope)(),templateResult:null}),c=class extends HTMLElement{static _definition;static _normalizedPropDefs;static formAssociated=!1;static observedAttributes=[];_component;constructor(){super();let e=this.constructor._definition;e?.shadow!==!1&&this.attachShadow({mode:`open`,...e?.shadow}),this._component=s()}connectedCallback(){(0,o.untrack)(()=>{this._component.phase===a.ComponentPhase.UNINITIALIZED&&this._runSetup(),this._init()}),this.dispatchEvent(new CustomEvent(a.LIFECYCLE_EVENTS.CONNECT,{bubbles:!1,composed:!1}))}attributeChangedCallback(e,t,n){if(t===n)return;let r=i.getPropMeta(this,e);if(!r)return;let a=r.parse(n);Object.is((0,o.untrack)(()=>r.signal.value),a)||(r.signal.value=a)}disconnectedCallback(){this._component.generation++,this._component.phase=a.ComponentPhase.UNMOUNTED,this.dispatchEvent(new CustomEvent(a.LIFECYCLE_EVENTS.DISCONNECT,{bubbles:!1,composed:!1})),this._component.scope.dispose(),this._component.formResetCallbacks=[],this._component.mountCallbacks=[],this._component.phase=a.ComponentPhase.UNINITIALIZED,this._component.scope=(0,o.scope)(),this._component.templateResult=null}formResetCallback(){for(let e of this._component.formResetCallbacks)try{e()}catch(e){this._handleSetupError(e,`form-reset`)}}_handleSetupError(e,n=`setup`){let r=e instanceof Error?e:Error(String(e)),i=new t.OreLifecycleError(`<${this.localName}> failed during ${this._component.phase} (${n})`,{cause:r,component:this.localName,phase:n}),a=this.constructor._definition;if(a?.onError)try{return a.onError(i,this)}catch{}t.reportRuntimeError(i,this)}_runSetup(){this._component.phase=a.ComponentPhase.SETUP_RUNNING;let e=this.constructor._definition,t=this.constructor._normalizedPropDefs,r={element:this,formResetCallbacks:[],mountCallbacks:[]};try{let o;if(this._component.scope.run(()=>{o=n.runWithContext(r,()=>{let n=t?i.createProps(this,t):{};return e.setup(n)})}),this._component.mountCallbacks.push(...r.mountCallbacks),this._component.formResetCallbacks.push(...r.formResetCallbacks),o!=null&&typeof o.then==`function`){let t=this._component.mountCallbacks.splice(0);this._component.phase=a.ComponentPhase.LOADING,e.loading&&(this._component.templateResult=e.loading()),this._runSetupAsync(o,t,this._component.generation)}else this._component.templateResult=o??null,this._component.phase=a.ComponentPhase.SETUP_DONE}catch(e){let t=this._handleSetupError(e);if(t)this._component.templateResult=t,this._component.phase=a.ComponentPhase.SETUP_DONE;else throw this._component.phase=a.ComponentPhase.UNINITIALIZED,e}}_isStale(e){return this._component.generation!==e||!this.isConnected}async _runSetupAsync(t,n,r){try{let i=await t;if(this._isStale(r)){e.warn(`<${this.localName}> async setup result discarded — element disconnected before setup resolved.`);return}this._component.templateResult=i??null,this._component.phase=a.ComponentPhase.SETUP_DONE,this._component.mountCallbacks.push(...n),i&&this._applyResult(i),this._scheduleMountCallbacks()}catch(t){if(this._isStale(r)){e.warn(`<${this.localName}> async setup error discarded — element disconnected before setup resolved.`);return}let n=this._handleSetupError(t,`async-setup`);n?(this._component.templateResult=n,this._component.phase=a.ComponentPhase.SETUP_DONE,this._applyResult(n)):this._component.phase=a.ComponentPhase.UNINITIALIZED}}_applyResult(e){e&&((this.shadowRoot??this).replaceChildren(e.fragment),this._component.scope.run(()=>{e.apply(n.onCleanup)}))}_init(){this._applyStyles(),this._mountTemplate(),this._component.phase===a.ComponentPhase.SETUP_DONE&&this._scheduleMountCallbacks()}_applyStyles(){let e=this.constructor._definition;this.shadowRoot&&e?.styles?.length&&(this.shadowRoot.adoptedStyleSheets=e.styles.map(r.loadStylesheet))}_mountTemplate(){let e=this._component.templateResult;e&&this._applyResult(e)}_scheduleMountCallbacks(){if(this._component.mountCallbacks.length===0)return;let e=this._component.generation;queueMicrotask(()=>{if(this._isStale(e))return;let t=this._component.mountCallbacks.splice(0);for(let e of t)try{let t={element:this,formResetCallbacks:[],mountCallbacks:[]};this._component.scope.run(()=>{n.runWithContext(t,()=>{let t=e();typeof t==`function`&&n.onCleanup(t)})}),t.mountCallbacks.length>0&&this._component.mountCallbacks.push(...t.mountCallbacks),t.formResetCallbacks.length>0&&this._component.formResetCallbacks.push(...t.formResetCallbacks)}catch(e){this._handleSetupError(e,`mounted`)}this._component.mountCallbacks.length>0&&this._scheduleMountCallbacks()})}};exports.BaseElement=c;
2
2
  //# sourceMappingURL=base-element.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-element.cjs","names":["s","c","o","i","a","t","e","r","l"],"sources":["../../../../ore/dist/base-element.js"],"sourcesContent":["import{warn as e}from\"./_dev.js\";import{OreLifecycleError as t,reportRuntimeError as n}from\"./errors.js\";import\"./types/bindings.js\";import{onCleanup as r,runWithContext as i}from\"./runtime.js\";import{createProps as a,getPropMeta as o}from\"./props.js\";import{ComponentPhase as s,LIFECYCLE_EVENTS as c}from\"./types.js\";import{loadStylesheet as l}from\"./utils/css.js\";import{scope as u,untrack as d}from\"@vielzeug/ripple\";var f=()=>({generation:0,mountCallbacks:[],phase:s.UNINITIALIZED,scope:u(),templateResult:null}),p=class extends HTMLElement{static _definition;static _normalizedPropDefs;static formAssociated=!1;static observedAttributes=[];_component;constructor(){super();let e=this.constructor._definition;e?.shadow!==!1&&this.attachShadow({mode:`open`,...e?.shadow}),this._component=f()}connectedCallback(){d(()=>{this._component.phase===s.UNINITIALIZED&&this._runSetup(),this._init()}),this.dispatchEvent(new CustomEvent(c.CONNECT,{bubbles:!1,composed:!1}))}attributeChangedCallback(e,t,n){if(t===n)return;let r=o(this,e);if(!r)return;let i=r.parse(n);Object.is(d(()=>r.signal.value),i)||(r.signal.value=i)}disconnectedCallback(){this._component.generation++,this._component.phase=s.UNMOUNTED,this.dispatchEvent(new CustomEvent(c.DISCONNECT,{bubbles:!1,composed:!1})),this._component.scope.dispose(),this._component.mountCallbacks=[],this._component.phase=s.UNINITIALIZED,this._component.scope=u(),this._component.templateResult=null}_handleSetupError(e,r=`setup`){let i=e instanceof Error?e:Error(String(e)),a=new t(`<${this.localName}> failed during ${this._component.phase} (${r})`,{cause:i,component:this.localName,phase:r}),o=this.constructor._definition;if(o?.onError)try{return o.onError(a,this)}catch{}n(a,this)}_runSetup(){this._component.phase=s.SETUP_RUNNING;let e=this.constructor._definition,t=this.constructor._normalizedPropDefs,n={element:this,mountCallbacks:[]};try{let r;if(this._component.scope.run(()=>{r=i(n,()=>{let n=t?a(this,t):{};return e.setup(n)})}),this._component.mountCallbacks.push(...n.mountCallbacks),r!=null&&typeof r.then==`function`){let t=this._component.mountCallbacks.splice(0);this._component.phase=s.LOADING,e.loading&&(this._component.templateResult=e.loading()),this._runSetupAsync(r,t,this._component.generation)}else this._component.templateResult=r??null,this._component.phase=s.SETUP_DONE}catch(e){let t=this._handleSetupError(e);if(t)this._component.templateResult=t,this._component.phase=s.SETUP_DONE;else throw this._component.phase=s.UNINITIALIZED,e}}_isStale(e){return this._component.generation!==e||!this.isConnected}async _runSetupAsync(t,n,r){try{let i=await t;if(this._isStale(r)){e(`<${this.localName}> async setup result discarded — element disconnected before setup resolved.`);return}this._component.templateResult=i??null,this._component.phase=s.SETUP_DONE,this._component.mountCallbacks.push(...n),i&&this._applyResult(i),this._scheduleMountCallbacks()}catch(t){if(this._isStale(r)){e(`<${this.localName}> async setup error discarded — element disconnected before setup resolved.`);return}let n=this._handleSetupError(t,`async-setup`);n?(this._component.templateResult=n,this._component.phase=s.SETUP_DONE,this._applyResult(n)):this._component.phase=s.UNINITIALIZED}}_applyResult(e){e&&((this.shadowRoot??this).replaceChildren(e.fragment),this._component.scope.run(()=>{e.apply(r)}))}_init(){this._applyStyles(),this._mountTemplate(),this._component.phase===s.SETUP_DONE&&this._scheduleMountCallbacks()}_applyStyles(){let e=this.constructor._definition;this.shadowRoot&&e?.styles?.length&&(this.shadowRoot.adoptedStyleSheets=e.styles.map(l))}_mountTemplate(){let e=this._component.templateResult;e&&this._applyResult(e)}_scheduleMountCallbacks(){if(this._component.mountCallbacks.length===0)return;let e=this._component.generation;queueMicrotask(()=>{if(this._isStale(e))return;let t=this._component.mountCallbacks.splice(0);for(let e of t)try{let t={element:this,mountCallbacks:[]};this._component.scope.run(()=>{i(t,()=>{let t=e();typeof t==`function`&&r(t)})}),t.mountCallbacks.length>0&&this._component.mountCallbacks.push(...t.mountCallbacks)}catch(e){this._handleSetupError(e,`mounted`)}this._component.mountCallbacks.length>0&&this._scheduleMountCallbacks()})}};export{p as BaseElement};\n//# sourceMappingURL=base-element.js.map"],"mappings":"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"}
1
+ {"version":3,"file":"base-element.cjs","names":["s","c","o","i","a","t","e","r","l"],"sources":["../../../../ore/dist/base-element.js"],"sourcesContent":["import{warn as e}from\"./_dev.js\";import{OreLifecycleError as t,reportRuntimeError as n}from\"./errors.js\";import\"./types/bindings.js\";import{onCleanup as r,runWithContext as i}from\"./runtime.js\";import{createProps as a,getPropMeta as o}from\"./props.js\";import{ComponentPhase as s,LIFECYCLE_EVENTS as c}from\"./types.js\";import{loadStylesheet as l}from\"./utils/css.js\";import{scope as u,untrack as d}from\"@vielzeug/ripple\";var f=()=>({formResetCallbacks:[],generation:0,mountCallbacks:[],phase:s.UNINITIALIZED,scope:u(),templateResult:null}),p=class extends HTMLElement{static _definition;static _normalizedPropDefs;static formAssociated=!1;static observedAttributes=[];_component;constructor(){super();let e=this.constructor._definition;e?.shadow!==!1&&this.attachShadow({mode:`open`,...e?.shadow}),this._component=f()}connectedCallback(){d(()=>{this._component.phase===s.UNINITIALIZED&&this._runSetup(),this._init()}),this.dispatchEvent(new CustomEvent(c.CONNECT,{bubbles:!1,composed:!1}))}attributeChangedCallback(e,t,n){if(t===n)return;let r=o(this,e);if(!r)return;let i=r.parse(n);Object.is(d(()=>r.signal.value),i)||(r.signal.value=i)}disconnectedCallback(){this._component.generation++,this._component.phase=s.UNMOUNTED,this.dispatchEvent(new CustomEvent(c.DISCONNECT,{bubbles:!1,composed:!1})),this._component.scope.dispose(),this._component.formResetCallbacks=[],this._component.mountCallbacks=[],this._component.phase=s.UNINITIALIZED,this._component.scope=u(),this._component.templateResult=null}formResetCallback(){for(let e of this._component.formResetCallbacks)try{e()}catch(e){this._handleSetupError(e,`form-reset`)}}_handleSetupError(e,r=`setup`){let i=e instanceof Error?e:Error(String(e)),a=new t(`<${this.localName}> failed during ${this._component.phase} (${r})`,{cause:i,component:this.localName,phase:r}),o=this.constructor._definition;if(o?.onError)try{return o.onError(a,this)}catch{}n(a,this)}_runSetup(){this._component.phase=s.SETUP_RUNNING;let e=this.constructor._definition,t=this.constructor._normalizedPropDefs,n={element:this,formResetCallbacks:[],mountCallbacks:[]};try{let r;if(this._component.scope.run(()=>{r=i(n,()=>{let n=t?a(this,t):{};return e.setup(n)})}),this._component.mountCallbacks.push(...n.mountCallbacks),this._component.formResetCallbacks.push(...n.formResetCallbacks),r!=null&&typeof r.then==`function`){let t=this._component.mountCallbacks.splice(0);this._component.phase=s.LOADING,e.loading&&(this._component.templateResult=e.loading()),this._runSetupAsync(r,t,this._component.generation)}else this._component.templateResult=r??null,this._component.phase=s.SETUP_DONE}catch(e){let t=this._handleSetupError(e);if(t)this._component.templateResult=t,this._component.phase=s.SETUP_DONE;else throw this._component.phase=s.UNINITIALIZED,e}}_isStale(e){return this._component.generation!==e||!this.isConnected}async _runSetupAsync(t,n,r){try{let i=await t;if(this._isStale(r)){e(`<${this.localName}> async setup result discarded — element disconnected before setup resolved.`);return}this._component.templateResult=i??null,this._component.phase=s.SETUP_DONE,this._component.mountCallbacks.push(...n),i&&this._applyResult(i),this._scheduleMountCallbacks()}catch(t){if(this._isStale(r)){e(`<${this.localName}> async setup error discarded — element disconnected before setup resolved.`);return}let n=this._handleSetupError(t,`async-setup`);n?(this._component.templateResult=n,this._component.phase=s.SETUP_DONE,this._applyResult(n)):this._component.phase=s.UNINITIALIZED}}_applyResult(e){e&&((this.shadowRoot??this).replaceChildren(e.fragment),this._component.scope.run(()=>{e.apply(r)}))}_init(){this._applyStyles(),this._mountTemplate(),this._component.phase===s.SETUP_DONE&&this._scheduleMountCallbacks()}_applyStyles(){let e=this.constructor._definition;this.shadowRoot&&e?.styles?.length&&(this.shadowRoot.adoptedStyleSheets=e.styles.map(l))}_mountTemplate(){let e=this._component.templateResult;e&&this._applyResult(e)}_scheduleMountCallbacks(){if(this._component.mountCallbacks.length===0)return;let e=this._component.generation;queueMicrotask(()=>{if(this._isStale(e))return;let t=this._component.mountCallbacks.splice(0);for(let e of t)try{let t={element:this,formResetCallbacks:[],mountCallbacks:[]};this._component.scope.run(()=>{i(t,()=>{let t=e();typeof t==`function`&&r(t)})}),t.mountCallbacks.length>0&&this._component.mountCallbacks.push(...t.mountCallbacks),t.formResetCallbacks.length>0&&this._component.formResetCallbacks.push(...t.formResetCallbacks)}catch(e){this._handleSetupError(e,`mounted`)}this._component.mountCallbacks.length>0&&this._scheduleMountCallbacks()})}};export{p as BaseElement};\n//# sourceMappingURL=base-element.js.map"],"mappings":"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"}
@@ -8,6 +8,7 @@ import { ComponentPhase as c, LIFECYCLE_EVENTS as l } from "./types.js";
8
8
  import { scope as u, untrack as d } from "@vielzeug/ripple";
9
9
  //#region ../ore/dist/base-element.js
10
10
  var f = () => ({
11
+ formResetCallbacks: [],
11
12
  generation: 0,
12
13
  mountCallbacks: [],
13
14
  phase: c.UNINITIALIZED,
@@ -46,7 +47,14 @@ var f = () => ({
46
47
  this._component.generation++, this._component.phase = c.UNMOUNTED, this.dispatchEvent(new CustomEvent(l.DISCONNECT, {
47
48
  bubbles: !1,
48
49
  composed: !1
49
- })), this._component.scope.dispose(), this._component.mountCallbacks = [], this._component.phase = c.UNINITIALIZED, this._component.scope = u(), this._component.templateResult = null;
50
+ })), this._component.scope.dispose(), this._component.formResetCallbacks = [], this._component.mountCallbacks = [], this._component.phase = c.UNINITIALIZED, this._component.scope = u(), this._component.templateResult = null;
51
+ }
52
+ formResetCallback() {
53
+ for (let e of this._component.formResetCallbacks) try {
54
+ e();
55
+ } catch (e) {
56
+ this._handleSetupError(e, "form-reset");
57
+ }
50
58
  }
51
59
  _handleSetupError(e, r = "setup") {
52
60
  let i = e instanceof Error ? e : Error(String(e)), a = new t(`<${this.localName}> failed during ${this._component.phase} (${r})`, {
@@ -63,6 +71,7 @@ var f = () => ({
63
71
  this._component.phase = c.SETUP_RUNNING;
64
72
  let e = this.constructor._definition, t = this.constructor._normalizedPropDefs, n = {
65
73
  element: this,
74
+ formResetCallbacks: [],
66
75
  mountCallbacks: []
67
76
  };
68
77
  try {
@@ -72,7 +81,7 @@ var f = () => ({
72
81
  let n = t ? o(this, t) : {};
73
82
  return e.setup(n);
74
83
  });
75
- }), this._component.mountCallbacks.push(...n.mountCallbacks), r != null && typeof r.then == "function") {
84
+ }), this._component.mountCallbacks.push(...n.mountCallbacks), this._component.formResetCallbacks.push(...n.formResetCallbacks), r != null && typeof r.then == "function") {
76
85
  let t = this._component.mountCallbacks.splice(0);
77
86
  this._component.phase = c.LOADING, e.loading && (this._component.templateResult = e.loading()), this._runSetupAsync(r, t, this._component.generation);
78
87
  } else this._component.templateResult = r ?? null, this._component.phase = c.SETUP_DONE;
@@ -127,6 +136,7 @@ var f = () => ({
127
136
  for (let e of t) try {
128
137
  let t = {
129
138
  element: this,
139
+ formResetCallbacks: [],
130
140
  mountCallbacks: []
131
141
  };
132
142
  this._component.scope.run(() => {
@@ -134,7 +144,7 @@ var f = () => ({
134
144
  let t = e();
135
145
  typeof t == "function" && r(t);
136
146
  });
137
- }), t.mountCallbacks.length > 0 && this._component.mountCallbacks.push(...t.mountCallbacks);
147
+ }), t.mountCallbacks.length > 0 && this._component.mountCallbacks.push(...t.mountCallbacks), t.formResetCallbacks.length > 0 && this._component.formResetCallbacks.push(...t.formResetCallbacks);
138
148
  } catch (e) {
139
149
  this._handleSetupError(e, "mounted");
140
150
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base-element.js","names":["s","u","c","o","d","i","a","t","e","r","l"],"sources":["../../../../ore/dist/base-element.js"],"sourcesContent":["import{warn as e}from\"./_dev.js\";import{OreLifecycleError as t,reportRuntimeError as n}from\"./errors.js\";import\"./types/bindings.js\";import{onCleanup as r,runWithContext as i}from\"./runtime.js\";import{createProps as a,getPropMeta as o}from\"./props.js\";import{ComponentPhase as s,LIFECYCLE_EVENTS as c}from\"./types.js\";import{loadStylesheet as l}from\"./utils/css.js\";import{scope as u,untrack as d}from\"@vielzeug/ripple\";var f=()=>({generation:0,mountCallbacks:[],phase:s.UNINITIALIZED,scope:u(),templateResult:null}),p=class extends HTMLElement{static _definition;static _normalizedPropDefs;static formAssociated=!1;static observedAttributes=[];_component;constructor(){super();let e=this.constructor._definition;e?.shadow!==!1&&this.attachShadow({mode:`open`,...e?.shadow}),this._component=f()}connectedCallback(){d(()=>{this._component.phase===s.UNINITIALIZED&&this._runSetup(),this._init()}),this.dispatchEvent(new CustomEvent(c.CONNECT,{bubbles:!1,composed:!1}))}attributeChangedCallback(e,t,n){if(t===n)return;let r=o(this,e);if(!r)return;let i=r.parse(n);Object.is(d(()=>r.signal.value),i)||(r.signal.value=i)}disconnectedCallback(){this._component.generation++,this._component.phase=s.UNMOUNTED,this.dispatchEvent(new CustomEvent(c.DISCONNECT,{bubbles:!1,composed:!1})),this._component.scope.dispose(),this._component.mountCallbacks=[],this._component.phase=s.UNINITIALIZED,this._component.scope=u(),this._component.templateResult=null}_handleSetupError(e,r=`setup`){let i=e instanceof Error?e:Error(String(e)),a=new t(`<${this.localName}> failed during ${this._component.phase} (${r})`,{cause:i,component:this.localName,phase:r}),o=this.constructor._definition;if(o?.onError)try{return o.onError(a,this)}catch{}n(a,this)}_runSetup(){this._component.phase=s.SETUP_RUNNING;let e=this.constructor._definition,t=this.constructor._normalizedPropDefs,n={element:this,mountCallbacks:[]};try{let r;if(this._component.scope.run(()=>{r=i(n,()=>{let n=t?a(this,t):{};return e.setup(n)})}),this._component.mountCallbacks.push(...n.mountCallbacks),r!=null&&typeof r.then==`function`){let t=this._component.mountCallbacks.splice(0);this._component.phase=s.LOADING,e.loading&&(this._component.templateResult=e.loading()),this._runSetupAsync(r,t,this._component.generation)}else this._component.templateResult=r??null,this._component.phase=s.SETUP_DONE}catch(e){let t=this._handleSetupError(e);if(t)this._component.templateResult=t,this._component.phase=s.SETUP_DONE;else throw this._component.phase=s.UNINITIALIZED,e}}_isStale(e){return this._component.generation!==e||!this.isConnected}async _runSetupAsync(t,n,r){try{let i=await t;if(this._isStale(r)){e(`<${this.localName}> async setup result discarded — element disconnected before setup resolved.`);return}this._component.templateResult=i??null,this._component.phase=s.SETUP_DONE,this._component.mountCallbacks.push(...n),i&&this._applyResult(i),this._scheduleMountCallbacks()}catch(t){if(this._isStale(r)){e(`<${this.localName}> async setup error discarded — element disconnected before setup resolved.`);return}let n=this._handleSetupError(t,`async-setup`);n?(this._component.templateResult=n,this._component.phase=s.SETUP_DONE,this._applyResult(n)):this._component.phase=s.UNINITIALIZED}}_applyResult(e){e&&((this.shadowRoot??this).replaceChildren(e.fragment),this._component.scope.run(()=>{e.apply(r)}))}_init(){this._applyStyles(),this._mountTemplate(),this._component.phase===s.SETUP_DONE&&this._scheduleMountCallbacks()}_applyStyles(){let e=this.constructor._definition;this.shadowRoot&&e?.styles?.length&&(this.shadowRoot.adoptedStyleSheets=e.styles.map(l))}_mountTemplate(){let e=this._component.templateResult;e&&this._applyResult(e)}_scheduleMountCallbacks(){if(this._component.mountCallbacks.length===0)return;let e=this._component.generation;queueMicrotask(()=>{if(this._isStale(e))return;let t=this._component.mountCallbacks.splice(0);for(let e of t)try{let t={element:this,mountCallbacks:[]};this._component.scope.run(()=>{i(t,()=>{let t=e();typeof t==`function`&&r(t)})}),t.mountCallbacks.length>0&&this._component.mountCallbacks.push(...t.mountCallbacks)}catch(e){this._handleSetupError(e,`mounted`)}this._component.mountCallbacks.length>0&&this._scheduleMountCallbacks()})}};export{p as BaseElement};\n//# sourceMappingURL=base-element.js.map"],"mappings":"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"}
1
+ {"version":3,"file":"base-element.js","names":["s","u","c","o","d","i","a","t","e","r","l"],"sources":["../../../../ore/dist/base-element.js"],"sourcesContent":["import{warn as e}from\"./_dev.js\";import{OreLifecycleError as t,reportRuntimeError as n}from\"./errors.js\";import\"./types/bindings.js\";import{onCleanup as r,runWithContext as i}from\"./runtime.js\";import{createProps as a,getPropMeta as o}from\"./props.js\";import{ComponentPhase as s,LIFECYCLE_EVENTS as c}from\"./types.js\";import{loadStylesheet as l}from\"./utils/css.js\";import{scope as u,untrack as d}from\"@vielzeug/ripple\";var f=()=>({formResetCallbacks:[],generation:0,mountCallbacks:[],phase:s.UNINITIALIZED,scope:u(),templateResult:null}),p=class extends HTMLElement{static _definition;static _normalizedPropDefs;static formAssociated=!1;static observedAttributes=[];_component;constructor(){super();let e=this.constructor._definition;e?.shadow!==!1&&this.attachShadow({mode:`open`,...e?.shadow}),this._component=f()}connectedCallback(){d(()=>{this._component.phase===s.UNINITIALIZED&&this._runSetup(),this._init()}),this.dispatchEvent(new CustomEvent(c.CONNECT,{bubbles:!1,composed:!1}))}attributeChangedCallback(e,t,n){if(t===n)return;let r=o(this,e);if(!r)return;let i=r.parse(n);Object.is(d(()=>r.signal.value),i)||(r.signal.value=i)}disconnectedCallback(){this._component.generation++,this._component.phase=s.UNMOUNTED,this.dispatchEvent(new CustomEvent(c.DISCONNECT,{bubbles:!1,composed:!1})),this._component.scope.dispose(),this._component.formResetCallbacks=[],this._component.mountCallbacks=[],this._component.phase=s.UNINITIALIZED,this._component.scope=u(),this._component.templateResult=null}formResetCallback(){for(let e of this._component.formResetCallbacks)try{e()}catch(e){this._handleSetupError(e,`form-reset`)}}_handleSetupError(e,r=`setup`){let i=e instanceof Error?e:Error(String(e)),a=new t(`<${this.localName}> failed during ${this._component.phase} (${r})`,{cause:i,component:this.localName,phase:r}),o=this.constructor._definition;if(o?.onError)try{return o.onError(a,this)}catch{}n(a,this)}_runSetup(){this._component.phase=s.SETUP_RUNNING;let e=this.constructor._definition,t=this.constructor._normalizedPropDefs,n={element:this,formResetCallbacks:[],mountCallbacks:[]};try{let r;if(this._component.scope.run(()=>{r=i(n,()=>{let n=t?a(this,t):{};return e.setup(n)})}),this._component.mountCallbacks.push(...n.mountCallbacks),this._component.formResetCallbacks.push(...n.formResetCallbacks),r!=null&&typeof r.then==`function`){let t=this._component.mountCallbacks.splice(0);this._component.phase=s.LOADING,e.loading&&(this._component.templateResult=e.loading()),this._runSetupAsync(r,t,this._component.generation)}else this._component.templateResult=r??null,this._component.phase=s.SETUP_DONE}catch(e){let t=this._handleSetupError(e);if(t)this._component.templateResult=t,this._component.phase=s.SETUP_DONE;else throw this._component.phase=s.UNINITIALIZED,e}}_isStale(e){return this._component.generation!==e||!this.isConnected}async _runSetupAsync(t,n,r){try{let i=await t;if(this._isStale(r)){e(`<${this.localName}> async setup result discarded — element disconnected before setup resolved.`);return}this._component.templateResult=i??null,this._component.phase=s.SETUP_DONE,this._component.mountCallbacks.push(...n),i&&this._applyResult(i),this._scheduleMountCallbacks()}catch(t){if(this._isStale(r)){e(`<${this.localName}> async setup error discarded — element disconnected before setup resolved.`);return}let n=this._handleSetupError(t,`async-setup`);n?(this._component.templateResult=n,this._component.phase=s.SETUP_DONE,this._applyResult(n)):this._component.phase=s.UNINITIALIZED}}_applyResult(e){e&&((this.shadowRoot??this).replaceChildren(e.fragment),this._component.scope.run(()=>{e.apply(r)}))}_init(){this._applyStyles(),this._mountTemplate(),this._component.phase===s.SETUP_DONE&&this._scheduleMountCallbacks()}_applyStyles(){let e=this.constructor._definition;this.shadowRoot&&e?.styles?.length&&(this.shadowRoot.adoptedStyleSheets=e.styles.map(l))}_mountTemplate(){let e=this._component.templateResult;e&&this._applyResult(e)}_scheduleMountCallbacks(){if(this._component.mountCallbacks.length===0)return;let e=this._component.generation;queueMicrotask(()=>{if(this._isStale(e))return;let t=this._component.mountCallbacks.splice(0);for(let e of t)try{let t={element:this,formResetCallbacks:[],mountCallbacks:[]};this._component.scope.run(()=>{i(t,()=>{let t=e();typeof t==`function`&&r(t)})}),t.mountCallbacks.length>0&&this._component.mountCallbacks.push(...t.mountCallbacks),t.formResetCallbacks.length>0&&this._component.formResetCallbacks.push(...t.formResetCallbacks)}catch(e){this._handleSetupError(e,`mounted`)}this._component.mountCallbacks.length>0&&this._scheduleMountCallbacks()})}};export{p as BaseElement};\n//# sourceMappingURL=base-element.js.map"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- const e=require("../_dev.cjs"),t=require("../errors.cjs"),n=require("../runtime.cjs");require("@vielzeug/ripple");var r=new WeakMap,i=i=>{let a=i.el??n.getHost();if(!a.constructor.formAssociated)throw new t.OreApiError(t.ORE_ERRORS.defineFieldRequiresFormAssociated(a.localName));if(r.has(a))throw new t.OreApiError(`useField() was already called on <${a.localName}>. Call it only once per component.`);let o=a.attachInternals();r.set(a,o),n.onCleanup(()=>r.delete(a));let s=i.toFormValue??(e=>e==null?i.emptyStringForNull?``:null:e instanceof File||e instanceof FormData?e:String(e));n.watchEffect(()=>{o.setFormValue(s(i.value.value))});let c=i.disabled;if(c)if(!(`states`in o))e.warn(`useField(): ElementInternals.states (CustomStateSet) is not available in this environment — disabled state tracking skipped.`);else{let e=o.states;n.watchEffect(()=>{c.value?e.add(`disabled`):e.delete(`disabled`)})}return{checkValidity:()=>o.checkValidity(),internals:o,reportValidity:()=>o.reportValidity(),setCustomValidity:e=>e?o.setValidity({customError:!0},e):o.setValidity({}),setValidity:o.setValidity.bind(o)}};exports.useField=i;
1
+ const e=require("../_dev.cjs"),t=require("../errors.cjs"),n=require("../runtime.cjs");require("@vielzeug/ripple");var r=new WeakMap,i=i=>{let a=i.el??n.getHost();if(!a.constructor.formAssociated)throw new t.OreApiError(t.ORE_ERRORS.defineFieldRequiresFormAssociated(a.localName));if(r.has(a))throw new t.OreApiError(`useField() was already called on <${a.localName}>. Call it only once per component.`);let o=a.attachInternals();r.set(a,o),n.onCleanup(()=>r.delete(a));let s=i.toFormValue??(e=>e==null?i.emptyStringForNull?``:null:e instanceof File||e instanceof FormData?e:String(e));n.watchEffect(()=>{o.setFormValue(s(i.value.value))});let c=i.disabled;if(c)if(!(`states`in o))e.warn(`useField(): ElementInternals.states (CustomStateSet) is not available in this environment — disabled state tracking skipped.`);else{let e=o.states;n.watchEffect(()=>{c.value?e.add(`disabled`):e.delete(`disabled`)})}return i.validity&&n.watchEffect(()=>{let t=i.validity?.value??{},n=Object.values(t).some(Boolean),r=i.validationMessage?.value??``;if(n&&!r){e.warn("useField(): `validity` has a truthy flag but `validationMessage` is empty — internals.setValidity() requires a non-empty message whenever any flag is true. Falling back to a generic message; pass `validationMessage` to customize it."),o.setValidity(t,`Invalid value.`);return}o.setValidity(t,r)}),i.onReset&&n.onFormReset(i.onReset),{checkValidity:()=>o.checkValidity(),internals:o,reportValidity:()=>o.reportValidity(),setCustomValidity:e=>e?o.setValidity({customError:!0},e):o.setValidity({}),setValidity:o.setValidity.bind(o)}};exports.useField=i;
2
2
  //# sourceMappingURL=field.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"field.cjs","names":["c","r","n","t","i","u"],"sources":["../../../../../ore/dist/forms/field.js"],"sourcesContent":["import{warn as e}from\"../_dev.js\";import{ORE_ERRORS as t,OreApiError as n}from\"../errors.js\";import{getHost as r,onCleanup as i,watchEffect as a}from\"../runtime.js\";import\"@vielzeug/ripple\";var o=new WeakMap,s=s=>{let c=s.el??r();if(!c.constructor.formAssociated)throw new n(t.defineFieldRequiresFormAssociated(c.localName));if(o.has(c))throw new n(`useField() was already called on <${c.localName}>. Call it only once per component.`);let l=c.attachInternals();o.set(c,l),i(()=>o.delete(c));let u=s.toFormValue??(e=>e==null?s.emptyStringForNull?``:null:e instanceof File||e instanceof FormData?e:String(e));a(()=>{l.setFormValue(u(s.value.value))});let d=s.disabled;if(d)if(!(`states`in l))e(`useField(): ElementInternals.states (CustomStateSet) is not available in this environment — disabled state tracking skipped.`);else{let e=l.states;a(()=>{d.value?e.add(`disabled`):e.delete(`disabled`)})}return{checkValidity:()=>l.checkValidity(),internals:l,reportValidity:()=>l.reportValidity(),setCustomValidity:e=>e?l.setValidity({customError:!0},e):l.setValidity({}),setValidity:l.setValidity.bind(l)}};export{s as useField};\n//# sourceMappingURL=field.js.map"],"mappings":"kHAA8L,IAAI,EAAE,IAAI,QAAQ,EAAE,GAAG,CAAC,IAAIA,EAAE,EAAE,IAAIC,EAAAA,QAAE,EAAE,GAAG,CAACD,EAAE,YAAY,eAAe,MAAM,IAAIE,EAAAA,YAAEC,EAAAA,WAAE,kCAAkCH,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,IAAIA,CAAC,EAAE,MAAM,IAAIE,EAAAA,YAAE,qCAAqCF,EAAE,UAAU,oCAAoC,EAAE,IAAI,EAAEA,EAAE,gBAAgB,EAAE,EAAE,IAAIA,EAAE,CAAC,EAAEI,EAAAA,cAAM,EAAE,OAAOJ,CAAC,CAAC,EAAE,IAAIK,EAAE,EAAE,cAAc,GAAG,GAAG,KAAK,EAAE,mBAAmB,GAAG,KAAK,aAAa,MAAM,aAAa,SAAS,EAAE,OAAO,CAAC,GAAG,EAAA,gBAAM,CAAC,EAAE,aAAaA,EAAE,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,GAAG,EAAE,GAAG,EAAE,WAAW,GAAG,EAAA,KAAE,8HAA8H,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAA,gBAAM,CAAC,EAAE,MAAM,EAAE,IAAI,UAAU,EAAE,EAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,GAAG,EAAE,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"field.cjs","names":["r","n","t","u","i","f","o","a"],"sources":["../../../../../ore/dist/forms/field.js"],"sourcesContent":["import{warn as e}from\"../_dev.js\";import{ORE_ERRORS as t,OreApiError as n}from\"../errors.js\";import{getHost as r,onCleanup as i,onFormReset as a,watchEffect as o}from\"../runtime.js\";import\"@vielzeug/ripple\";var s=new WeakMap,c=c=>{let l=c.el??r();if(!l.constructor.formAssociated)throw new n(t.defineFieldRequiresFormAssociated(l.localName));if(s.has(l))throw new n(`useField() was already called on <${l.localName}>. Call it only once per component.`);let u=l.attachInternals();s.set(l,u),i(()=>s.delete(l));let d=c.toFormValue??(e=>e==null?c.emptyStringForNull?``:null:e instanceof File||e instanceof FormData?e:String(e));o(()=>{u.setFormValue(d(c.value.value))});let f=c.disabled;if(f)if(!(`states`in u))e(`useField(): ElementInternals.states (CustomStateSet) is not available in this environment — disabled state tracking skipped.`);else{let e=u.states;o(()=>{f.value?e.add(`disabled`):e.delete(`disabled`)})}return c.validity&&o(()=>{let t=c.validity?.value??{},n=Object.values(t).some(Boolean),r=c.validationMessage?.value??``;if(n&&!r){e(\"useField(): `validity` has a truthy flag but `validationMessage` is empty — internals.setValidity() requires a non-empty message whenever any flag is true. Falling back to a generic message; pass `validationMessage` to customize it.\"),u.setValidity(t,`Invalid value.`);return}u.setValidity(t,r)}),c.onReset&&a(c.onReset),{checkValidity:()=>u.checkValidity(),internals:u,reportValidity:()=>u.reportValidity(),setCustomValidity:e=>e?u.setValidity({customError:!0},e):u.setValidity({}),setValidity:u.setValidity.bind(u)}};export{c as useField};\n//# sourceMappingURL=field.js.map"],"mappings":"kHAA+M,IAAI,EAAE,IAAI,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,IAAIA,EAAAA,QAAE,EAAE,GAAG,CAAC,EAAE,YAAY,eAAe,MAAM,IAAIC,EAAAA,YAAEC,EAAAA,WAAE,kCAAkC,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,IAAID,EAAAA,YAAE,qCAAqC,EAAE,UAAU,oCAAoC,EAAE,IAAIE,EAAE,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAEA,CAAC,EAAEC,EAAAA,cAAM,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,cAAc,GAAG,GAAG,KAAK,EAAE,mBAAmB,GAAG,KAAK,aAAa,MAAM,aAAa,SAAS,EAAE,OAAO,CAAC,GAAG,EAAA,gBAAM,CAAC,EAAE,aAAa,EAAE,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,IAAIC,EAAE,EAAE,SAAS,GAAGA,EAAE,GAAG,EAAE,WAAWF,GAAG,EAAA,KAAE,8HAA8H,MAAM,CAAC,IAAI,EAAEA,EAAE,OAAO,EAAA,gBAAM,CAAC,EAAE,MAAM,EAAE,IAAI,UAAU,EAAE,EAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,UAAUG,EAAAA,gBAAM,CAAC,IAAIJ,EAAE,EAAE,UAAU,OAAO,CAAC,EAAE,EAAE,OAAO,OAAOA,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,EAAE,EAAE,mBAAmB,OAAO,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,EAAA,KAAE,0OAA0O,EAAEC,EAAE,YAAYD,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,YAAYA,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,SAASK,EAAAA,YAAE,EAAE,OAAO,EAAE,CAAC,kBAAkBJ,EAAE,cAAc,EAAE,UAAUA,EAAE,mBAAmBA,EAAE,eAAe,EAAE,kBAAkB,GAAG,EAAEA,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAEA,EAAE,YAAY,CAAC,CAAC,EAAE,YAAYA,EAAE,YAAY,KAAKA,CAAC,CAAC,CAAC"}
@@ -1,35 +1,42 @@
1
1
  import { warn as e } from "../_dev.js";
2
2
  import { ORE_ERRORS as t, OreApiError as n } from "../errors.js";
3
- import { getHost as r, onCleanup as i, watchEffect as a } from "../runtime.js";
3
+ import { getHost as r, onCleanup as i, onFormReset as a, watchEffect as o } from "../runtime.js";
4
4
  import "@vielzeug/ripple";
5
5
  //#region ../ore/dist/forms/field.js
6
- var o = /* @__PURE__ */ new WeakMap(), s = (s) => {
7
- let c = s.el ?? r();
8
- if (!c.constructor.formAssociated) throw new n(t.defineFieldRequiresFormAssociated(c.localName));
9
- if (o.has(c)) throw new n(`useField() was already called on <${c.localName}>. Call it only once per component.`);
10
- let l = c.attachInternals();
11
- o.set(c, l), i(() => o.delete(c));
12
- let u = s.toFormValue ?? ((e) => e == null ? s.emptyStringForNull ? "" : null : e instanceof File || e instanceof FormData ? e : String(e));
13
- a(() => {
14
- l.setFormValue(u(s.value.value));
6
+ var s = /* @__PURE__ */ new WeakMap(), c = (c) => {
7
+ let l = c.el ?? r();
8
+ if (!l.constructor.formAssociated) throw new n(t.defineFieldRequiresFormAssociated(l.localName));
9
+ if (s.has(l)) throw new n(`useField() was already called on <${l.localName}>. Call it only once per component.`);
10
+ let u = l.attachInternals();
11
+ s.set(l, u), i(() => s.delete(l));
12
+ let d = c.toFormValue ?? ((e) => e == null ? c.emptyStringForNull ? "" : null : e instanceof File || e instanceof FormData ? e : String(e));
13
+ o(() => {
14
+ u.setFormValue(d(c.value.value));
15
15
  });
16
- let d = s.disabled;
17
- if (d) if (!("states" in l)) e("useField(): ElementInternals.states (CustomStateSet) is not available in this environment — disabled state tracking skipped.");
16
+ let f = c.disabled;
17
+ if (f) if (!("states" in u)) e("useField(): ElementInternals.states (CustomStateSet) is not available in this environment — disabled state tracking skipped.");
18
18
  else {
19
- let e = l.states;
20
- a(() => {
21
- d.value ? e.add("disabled") : e.delete("disabled");
19
+ let e = u.states;
20
+ o(() => {
21
+ f.value ? e.add("disabled") : e.delete("disabled");
22
22
  });
23
23
  }
24
- return {
25
- checkValidity: () => l.checkValidity(),
26
- internals: l,
27
- reportValidity: () => l.reportValidity(),
28
- setCustomValidity: (e) => e ? l.setValidity({ customError: !0 }, e) : l.setValidity({}),
29
- setValidity: l.setValidity.bind(l)
24
+ return c.validity && o(() => {
25
+ let t = c.validity?.value ?? {}, n = Object.values(t).some(Boolean), r = c.validationMessage?.value ?? "";
26
+ if (n && !r) {
27
+ e("useField(): `validity` has a truthy flag but `validationMessage` is empty — internals.setValidity() requires a non-empty message whenever any flag is true. Falling back to a generic message; pass `validationMessage` to customize it."), u.setValidity(t, "Invalid value.");
28
+ return;
29
+ }
30
+ u.setValidity(t, r);
31
+ }), c.onReset && a(c.onReset), {
32
+ checkValidity: () => u.checkValidity(),
33
+ internals: u,
34
+ reportValidity: () => u.reportValidity(),
35
+ setCustomValidity: (e) => e ? u.setValidity({ customError: !0 }, e) : u.setValidity({}),
36
+ setValidity: u.setValidity.bind(u)
30
37
  };
31
38
  };
32
39
  //#endregion
33
- export { s as useField };
40
+ export { c as useField };
34
41
 
35
42
  //# sourceMappingURL=field.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"field.js","names":["c","r","t","i","u"],"sources":["../../../../../ore/dist/forms/field.js"],"sourcesContent":["import{warn as e}from\"../_dev.js\";import{ORE_ERRORS as t,OreApiError as n}from\"../errors.js\";import{getHost as r,onCleanup as i,watchEffect as a}from\"../runtime.js\";import\"@vielzeug/ripple\";var o=new WeakMap,s=s=>{let c=s.el??r();if(!c.constructor.formAssociated)throw new n(t.defineFieldRequiresFormAssociated(c.localName));if(o.has(c))throw new n(`useField() was already called on <${c.localName}>. Call it only once per component.`);let l=c.attachInternals();o.set(c,l),i(()=>o.delete(c));let u=s.toFormValue??(e=>e==null?s.emptyStringForNull?``:null:e instanceof File||e instanceof FormData?e:String(e));a(()=>{l.setFormValue(u(s.value.value))});let d=s.disabled;if(d)if(!(`states`in l))e(`useField(): ElementInternals.states (CustomStateSet) is not available in this environment — disabled state tracking skipped.`);else{let e=l.states;a(()=>{d.value?e.add(`disabled`):e.delete(`disabled`)})}return{checkValidity:()=>l.checkValidity(),internals:l,reportValidity:()=>l.reportValidity(),setCustomValidity:e=>e?l.setValidity({customError:!0},e):l.setValidity({}),setValidity:l.setValidity.bind(l)}};export{s as useField};\n//# sourceMappingURL=field.js.map"],"mappings":";;;;;AAA8L,IAAI,oBAAE,IAAI,QAAM,GAAE,KAAE,MAAG;CAAC,IAAIA,IAAE,EAAE,MAAIC,EAAE;CAAE,IAAG,CAACD,EAAE,YAAY,gBAAe,MAAM,IAAI,EAAEE,EAAE,kCAAkCF,EAAE,SAAS,CAAC;CAAE,IAAG,EAAE,IAAIA,CAAC,GAAE,MAAM,IAAI,EAAE,qCAAqCA,EAAE,UAAU,oCAAoC;CAAE,IAAI,IAAEA,EAAE,gBAAgB;CAAE,EAAE,IAAIA,GAAE,CAAC,GAAEG,QAAM,EAAE,OAAOH,CAAC,CAAC;CAAE,IAAII,IAAE,EAAE,iBAAc,MAAG,KAAG,OAAK,EAAE,qBAAmB,KAAG,OAAK,aAAa,QAAM,aAAa,WAAS,IAAE,OAAO,CAAC;CAAG,QAAM;EAAC,EAAE,aAAaA,EAAE,EAAE,MAAM,KAAK,CAAC;CAAC,CAAC;CAAE,IAAI,IAAE,EAAE;CAAS,IAAG,GAAE,IAAG,EAAE,YAAW,IAAG,EAAE,8HAA8H;MAAM;EAAC,IAAI,IAAE,EAAE;EAAO,QAAM;GAAC,EAAE,QAAM,EAAE,IAAI,UAAU,IAAE,EAAE,OAAO,UAAU;EAAC,CAAC;CAAC;CAAC,OAAM;EAAC,qBAAkB,EAAE,cAAc;EAAE,WAAU;EAAE,sBAAmB,EAAE,eAAe;EAAE,oBAAkB,MAAG,IAAE,EAAE,YAAY,EAAC,aAAY,CAAC,EAAC,GAAE,CAAC,IAAE,EAAE,YAAY,CAAC,CAAC;EAAE,aAAY,EAAE,YAAY,KAAK,CAAC;CAAC;AAAC"}
1
+ {"version":3,"file":"field.js","names":["r","t","u","i","f","o","a"],"sources":["../../../../../ore/dist/forms/field.js"],"sourcesContent":["import{warn as e}from\"../_dev.js\";import{ORE_ERRORS as t,OreApiError as n}from\"../errors.js\";import{getHost as r,onCleanup as i,onFormReset as a,watchEffect as o}from\"../runtime.js\";import\"@vielzeug/ripple\";var s=new WeakMap,c=c=>{let l=c.el??r();if(!l.constructor.formAssociated)throw new n(t.defineFieldRequiresFormAssociated(l.localName));if(s.has(l))throw new n(`useField() was already called on <${l.localName}>. Call it only once per component.`);let u=l.attachInternals();s.set(l,u),i(()=>s.delete(l));let d=c.toFormValue??(e=>e==null?c.emptyStringForNull?``:null:e instanceof File||e instanceof FormData?e:String(e));o(()=>{u.setFormValue(d(c.value.value))});let f=c.disabled;if(f)if(!(`states`in u))e(`useField(): ElementInternals.states (CustomStateSet) is not available in this environment — disabled state tracking skipped.`);else{let e=u.states;o(()=>{f.value?e.add(`disabled`):e.delete(`disabled`)})}return c.validity&&o(()=>{let t=c.validity?.value??{},n=Object.values(t).some(Boolean),r=c.validationMessage?.value??``;if(n&&!r){e(\"useField(): `validity` has a truthy flag but `validationMessage` is empty — internals.setValidity() requires a non-empty message whenever any flag is true. Falling back to a generic message; pass `validationMessage` to customize it.\"),u.setValidity(t,`Invalid value.`);return}u.setValidity(t,r)}),c.onReset&&a(c.onReset),{checkValidity:()=>u.checkValidity(),internals:u,reportValidity:()=>u.reportValidity(),setCustomValidity:e=>e?u.setValidity({customError:!0},e):u.setValidity({}),setValidity:u.setValidity.bind(u)}};export{c as useField};\n//# sourceMappingURL=field.js.map"],"mappings":";;;;;AAA+M,IAAI,oBAAE,IAAI,QAAM,GAAE,KAAE,MAAG;CAAC,IAAI,IAAE,EAAE,MAAIA,EAAE;CAAE,IAAG,CAAC,EAAE,YAAY,gBAAe,MAAM,IAAI,EAAEC,EAAE,kCAAkC,EAAE,SAAS,CAAC;CAAE,IAAG,EAAE,IAAI,CAAC,GAAE,MAAM,IAAI,EAAE,qCAAqC,EAAE,UAAU,oCAAoC;CAAE,IAAIC,IAAE,EAAE,gBAAgB;CAAE,EAAE,IAAI,GAAEA,CAAC,GAAEC,QAAM,EAAE,OAAO,CAAC,CAAC;CAAE,IAAI,IAAE,EAAE,iBAAc,MAAG,KAAG,OAAK,EAAE,qBAAmB,KAAG,OAAK,aAAa,QAAM,aAAa,WAAS,IAAE,OAAO,CAAC;CAAG,QAAM;EAAC,EAAE,aAAa,EAAE,EAAE,MAAM,KAAK,CAAC;CAAC,CAAC;CAAE,IAAIC,IAAE,EAAE;CAAS,IAAGA,GAAE,IAAG,EAAE,YAAWF,IAAG,EAAE,8HAA8H;MAAM;EAAC,IAAI,IAAEA,EAAE;EAAO,QAAM;GAAC,EAAE,QAAM,EAAE,IAAI,UAAU,IAAE,EAAE,OAAO,UAAU;EAAC,CAAC;CAAC;CAAC,OAAO,EAAE,YAAUG,QAAM;EAAC,IAAIJ,IAAE,EAAE,UAAU,SAAO,CAAC,GAAE,IAAE,OAAO,OAAOA,CAAC,CAAC,CAAC,KAAK,OAAO,GAAE,IAAE,EAAE,mBAAmB,SAAO;EAAG,IAAG,KAAG,CAAC,GAAE;GAAC,EAAE,0OAA0O,GAAEC,EAAE,YAAYD,GAAE,gBAAgB;GAAE;EAAM;EAAC,EAAE,YAAYA,GAAE,CAAC;CAAC,CAAC,GAAE,EAAE,WAASK,EAAE,EAAE,OAAO,GAAE;EAAC,qBAAkBJ,EAAE,cAAc;EAAE,WAAUA;EAAE,sBAAmBA,EAAE,eAAe;EAAE,oBAAkB,MAAG,IAAEA,EAAE,YAAY,EAAC,aAAY,CAAC,EAAC,GAAE,CAAC,IAAEA,EAAE,YAAY,CAAC,CAAC;EAAE,aAAYA,EAAE,YAAY,KAAKA,CAAC;CAAC;AAAC"}
@@ -1,2 +1,2 @@
1
- const e=require("./errors.cjs");require("./utils/dom.cjs");let t=require("@vielzeug/ripple");var n=null,r=(e,t)=>{let r=n;n=e;try{return t()}finally{n=r}},i=t=>{if(n)return n;throw new e.OreApiError(`${t}: ${e.ORE_ERRORS.lifecycleOutsideSetup}`)},a=()=>i(`getHost`).element,o=e=>n?((0,t.onCleanup)(e),!0):!1,s=t.onCleanup,c=e=>{let n=(0,t.effect)(e),r=()=>n.dispose();return o(r),r};exports.getHost=a,exports.onCleanup=s,exports.requireSetupContext=i,exports.runWithContext=r,exports.tryRegisterCleanup=o,exports.watchEffect=c;
1
+ const e=require("./errors.cjs");require("./utils/dom.cjs");let t=require("@vielzeug/ripple");var n=null,r=(e,t)=>{let r=n;n=e;try{return t()}finally{n=r}},i=t=>{if(n)return n;throw new e.OreApiError(`${t}: ${e.ORE_ERRORS.lifecycleOutsideSetup}`)},a=()=>i(`getHost`).element,o=e=>n?((0,t.onCleanup)(e),!0):!1,s=t.onCleanup,c=e=>{i(`onFormReset`).formResetCallbacks.push(e)},l=e=>{let n=(0,t.effect)(e),r=()=>n.dispose();return o(r),r};exports.getHost=a,exports.onCleanup=s,exports.onFormReset=c,exports.requireSetupContext=i,exports.runWithContext=r,exports.tryRegisterCleanup=o,exports.watchEffect=l;
2
2
  //# sourceMappingURL=runtime.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.cjs","names":["t","n","e","i"],"sources":["../../../../ore/dist/runtime.js"],"sourcesContent":["import{ORE_ERRORS as e,OreApiError as t}from\"./errors.js\";import{listen as n}from\"./utils/dom.js\";import{effect as r,onCleanup as i}from\"@vielzeug/ripple\";var a=null,o=(e,t)=>{let n=a;a=e;try{return t()}finally{a=n}},s=n=>{if(a)return a;throw new t(`${n}: ${e.lifecycleOutsideSetup}`)},c=()=>s(`getHost`).element,l=e=>a?(i(e),!0):!1,u=i,d=e=>{s(`onMounted`).mountCallbacks.push(e)},f=e=>{let t=r(e),n=()=>t.dispose();return l(n),n};function p(e,t,r,i){if(s(`onEvent`),!e)return;let a=n(e,t,r,i);l(a)||a()}var m=(e,t)=>f(()=>{let n=e.value;if(n)return t(n)});export{c as getHost,u as onCleanup,m as onElement,p as onEvent,d as onMounted,s as requireSetupContext,o as runWithContext,l as tryRegisterCleanup,f as watchEffect};\n//# sourceMappingURL=runtime.js.map"],"mappings":"6FAA2J,IAAI,EAAE,KAAK,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,IAAIA,EAAAA,YAAE,GAAGC,EAAE,IAAIC,EAAAA,WAAE,uBAAuB,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAA,EAAA,EAAA,UAAA,CAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAEC,EAAAA,UAA+C,EAAE,GAAG,CAAC,IAAI,GAAA,EAAA,EAAA,OAAA,CAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"runtime.cjs","names":["t","n","e","i"],"sources":["../../../../ore/dist/runtime.js"],"sourcesContent":["import{ORE_ERRORS as e,OreApiError as t}from\"./errors.js\";import{listen as n}from\"./utils/dom.js\";import{effect as r,onCleanup as i}from\"@vielzeug/ripple\";var a=null,o=(e,t)=>{let n=a;a=e;try{return t()}finally{a=n}},s=n=>{if(a)return a;throw new t(`${n}: ${e.lifecycleOutsideSetup}`)},c=()=>s(`getHost`).element,l=e=>a?(i(e),!0):!1,u=i,d=e=>{s(`onMounted`).mountCallbacks.push(e)},f=e=>{s(`onFormReset`).formResetCallbacks.push(e)},p=e=>{let t=r(e),n=()=>t.dispose();return l(n),n};function m(e,t,r,i){if(s(`onEvent`),!e)return;let a=n(e,t,r,i);l(a)||a()}var h=(e,t)=>p(()=>{let n=e.value;if(n)return t(n)});export{c as getHost,u as onCleanup,h as onElement,m as onEvent,f as onFormReset,d as onMounted,s as requireSetupContext,o as runWithContext,l as tryRegisterCleanup,p as watchEffect};\n//# sourceMappingURL=runtime.js.map"],"mappings":"6FAA2J,IAAI,EAAE,KAAK,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,IAAIA,EAAAA,YAAE,GAAGC,EAAE,IAAIC,EAAAA,WAAE,uBAAuB,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAA,EAAA,EAAA,UAAA,CAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAEC,EAAAA,UAA+C,EAAE,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC,mBAAmB,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,GAAA,EAAA,EAAA,OAAA,CAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC"}
@@ -14,10 +14,12 @@ var i = null, a = (e, t) => {
14
14
  if (i) return i;
15
15
  throw new t(`${n}: ${e.lifecycleOutsideSetup}`);
16
16
  }, s = () => o("getHost").element, c = (e) => i ? (r(e), !0) : !1, l = r, u = (e) => {
17
+ o("onFormReset").formResetCallbacks.push(e);
18
+ }, d = (e) => {
17
19
  let t = n(e), r = () => t.dispose();
18
20
  return c(r), r;
19
21
  };
20
22
  //#endregion
21
- export { s as getHost, l as onCleanup, o as requireSetupContext, a as runWithContext, c as tryRegisterCleanup, u as watchEffect };
23
+ export { s as getHost, l as onCleanup, u as onFormReset, o as requireSetupContext, a as runWithContext, c as tryRegisterCleanup, d as watchEffect };
22
24
 
23
25
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","names":["t","n","e","i","r"],"sources":["../../../../ore/dist/runtime.js"],"sourcesContent":["import{ORE_ERRORS as e,OreApiError as t}from\"./errors.js\";import{listen as n}from\"./utils/dom.js\";import{effect as r,onCleanup as i}from\"@vielzeug/ripple\";var a=null,o=(e,t)=>{let n=a;a=e;try{return t()}finally{a=n}},s=n=>{if(a)return a;throw new t(`${n}: ${e.lifecycleOutsideSetup}`)},c=()=>s(`getHost`).element,l=e=>a?(i(e),!0):!1,u=i,d=e=>{s(`onMounted`).mountCallbacks.push(e)},f=e=>{let t=r(e),n=()=>t.dispose();return l(n),n};function p(e,t,r,i){if(s(`onEvent`),!e)return;let a=n(e,t,r,i);l(a)||a()}var m=(e,t)=>f(()=>{let n=e.value;if(n)return t(n)});export{c as getHost,u as onCleanup,m as onElement,p as onEvent,d as onMounted,s as requireSetupContext,o as runWithContext,l as tryRegisterCleanup,f as watchEffect};\n//# sourceMappingURL=runtime.js.map"],"mappings":";;;;AAA2J,IAAI,IAAE,MAAK,KAAG,GAAE,MAAI;CAAC,IAAI,IAAE;CAAE,IAAE;CAAE,IAAG;EAAC,OAAO,EAAE;CAAC,UAAQ;EAAC,IAAE;CAAC;AAAC,GAAE,KAAE,MAAG;CAAC,IAAG,GAAE,OAAO;CAAE,MAAM,IAAIA,EAAE,GAAGC,EAAE,IAAIC,EAAE,uBAAuB;AAAC,GAAE,UAAM,EAAE,SAAS,CAAC,CAAC,SAAQ,KAAE,MAAG,KAAGC,EAAE,CAAC,GAAE,CAAC,KAAG,CAAC,GAAE,IAAEA,GAA+C,KAAE,MAAG;CAAC,IAAI,IAAEC,EAAE,CAAC,GAAE,UAAM,EAAE,QAAQ;CAAE,OAAO,EAAE,CAAC,GAAE;AAAC"}
1
+ {"version":3,"file":"runtime.js","names":["t","n","e","i","r"],"sources":["../../../../ore/dist/runtime.js"],"sourcesContent":["import{ORE_ERRORS as e,OreApiError as t}from\"./errors.js\";import{listen as n}from\"./utils/dom.js\";import{effect as r,onCleanup as i}from\"@vielzeug/ripple\";var a=null,o=(e,t)=>{let n=a;a=e;try{return t()}finally{a=n}},s=n=>{if(a)return a;throw new t(`${n}: ${e.lifecycleOutsideSetup}`)},c=()=>s(`getHost`).element,l=e=>a?(i(e),!0):!1,u=i,d=e=>{s(`onMounted`).mountCallbacks.push(e)},f=e=>{s(`onFormReset`).formResetCallbacks.push(e)},p=e=>{let t=r(e),n=()=>t.dispose();return l(n),n};function m(e,t,r,i){if(s(`onEvent`),!e)return;let a=n(e,t,r,i);l(a)||a()}var h=(e,t)=>p(()=>{let n=e.value;if(n)return t(n)});export{c as getHost,u as onCleanup,h as onElement,m as onEvent,f as onFormReset,d as onMounted,s as requireSetupContext,o as runWithContext,l as tryRegisterCleanup,p as watchEffect};\n//# sourceMappingURL=runtime.js.map"],"mappings":";;;;AAA2J,IAAI,IAAE,MAAK,KAAG,GAAE,MAAI;CAAC,IAAI,IAAE;CAAE,IAAE;CAAE,IAAG;EAAC,OAAO,EAAE;CAAC,UAAQ;EAAC,IAAE;CAAC;AAAC,GAAE,KAAE,MAAG;CAAC,IAAG,GAAE,OAAO;CAAE,MAAM,IAAIA,EAAE,GAAGC,EAAE,IAAIC,EAAE,uBAAuB;AAAC,GAAE,UAAM,EAAE,SAAS,CAAC,CAAC,SAAQ,KAAE,MAAG,KAAGC,EAAE,CAAC,GAAE,CAAC,KAAG,CAAC,GAAE,IAAEA,GAA+C,KAAE,MAAG;CAAC,EAAE,aAAa,CAAC,CAAC,mBAAmB,KAAK,CAAC;AAAC,GAAE,KAAE,MAAG;CAAC,IAAI,IAAEC,EAAE,CAAC,GAAE,UAAM,EAAE,QAAQ;CAAE,OAAO,EAAE,CAAC,GAAE;AAAC"}
@@ -1,11 +1,11 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ore/dist/directives/when.cjs");require("./ore/dist/directives.cjs");const t=require("./styles/mixins/shape.css.cjs"),n=require("./styles/mixins/states.css.cjs"),r=require("./styles/mixins/theme.css.cjs"),i=require("./shared/prop-bundles.cjs"),a=require("./headless/ore.cjs"),o=require("./headless/choice-field.cjs"),s=require("./headless/nav.cjs"),c=require("./headless/light-dom.cjs"),l=require("./ore/dist/forms/field.cjs");require("./ore/dist/forms.cjs");const u=require("./inputs/shared/form-context.cjs"),d=require("./inputs/radio-group/radio-group.css.cjs");let f=require("@vielzeug/ore");require("@vielzeug/ripple");var p=(0,f.createContext)(`OreRadioGroup`),m=`ore-radio-group`;(0,f.define)(m,{formAssociated:!0,props:{...i.themableBundle,...i.sizableBundle,...i.disablableBundle,error:f.prop.string(),helper:f.prop.string(),label:f.prop.string(),name:f.prop.string(),orientation:f.prop.oneOf([`horizontal`,`vertical`],`vertical`),required:f.prop.bool(!1),value:f.prop.string()},setup(t){let n=(0,f.getHost)(),r=(0,f.useEmit)(),i=(0,f.useSlots)(),d=f.watchEffect,m=(0,f.inject)(u.FORM_CTX),h=u.useFormContext(t,m),g=null,_=o.createChoiceField({disabled:h.disabled,error:t.error,getFormField:()=>g,helper:t.helper,label:t.label,prefix:`radio-group`,signal:a.lifecycleSignal(f.onCleanup),validateOn:m?.validateOn,value:t.value});g=l.useField({disabled:_.disabled,toFormValue:e=>e,value:_.formValue});let v=_.selectedValue,y=h.disabled;(0,f.bind)({attr:{size:h.size,value:()=>v.value||null}});let b=()=>c.getLightChildrenByTag(n,`ore-radio`),x=()=>y.value?[]:b().filter(e=>!e.hasAttribute(`disabled`)),S=e=>c.getChoiceLabel(b(),e),C=(e,t)=>{_.setValues(e?[e]:[]);let n=e?[S(e)]:[];r(`change`,{labels:n,originalEvent:t,values:e?[e]:[]}),_.triggerValidation(`blur`)};(0,f.provide)(p,{color:t.color,disabled:y,name:t.name,select:C,size:t.size,value:v}),d(()=>{i.elements().value,v.value;let e=b();for(let n of e){let e=n.getAttribute(`value`)??``;n.toggleAttribute(`checked`,e===v.value),t.name.value?n.setAttribute(`name`,t.name.value):n.removeAttribute(`name`),t.color.value?n.setAttribute(`color`,t.color.value):n.removeAttribute(`color`),t.size.value?n.setAttribute(`size`,t.size.value):n.removeAttribute(`size`),n.toggleAttribute(`disabled`,y.value)}}),d(()=>{i.elements().value;let e=b(),t=!1;for(let n of e){let e=n.getAttribute(`value`)===v.value;n.setAttribute(`tabindex`,e&&!y.value?`0`:`-1`),e&&!y.value&&(t=!0)}if(!t&&e.length>0){let t=e.find(e=>!e.hasAttribute(`disabled`));t&&t.setAttribute(`tabindex`,`0`)}});let w=s.createListControl({getItems:x,keys:{next:[`ArrowDown`,`ArrowRight`],prev:[`ArrowUp`,`ArrowLeft`]},loop:!0,onNavigate:(e,t,n)=>{let r=x()[t];r&&(r.focus(),r.tagName===`ORE-RADIO`&&C(r.getAttribute(`value`)??``,n))}});(0,f.bind)({on:{change:e=>{e.target!==n&&(e.stopPropagation(),C(e.target.getAttribute(`value`)??``,e))},keydown:e=>{let t=x();if(!t.length)return;let n=t.indexOf(document.activeElement);n!==-1&&(w.set(n),w.handleKeydown(e))}}});let T=(0,f.createStableId)(`radio-group-legend`);return f.html`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ore/dist/directives/when.cjs");require("./ore/dist/directives.cjs");const t=require("./styles/mixins/shape.css.cjs"),n=require("./styles/mixins/states.css.cjs"),r=require("./styles/mixins/theme.css.cjs"),i=require("./shared/prop-bundles.cjs"),a=require("./headless/ore.cjs"),o=require("./headless/choice-field.cjs"),s=require("./headless/nav.cjs"),c=require("./headless/light-dom.cjs"),l=require("./ore/dist/forms/field.cjs");require("./ore/dist/forms.cjs");const u=require("./inputs/shared/form-context.cjs"),d=require("./inputs/radio-group/radio-group.css.cjs");let f=require("@vielzeug/ore");require("@vielzeug/ripple");var p=(0,f.createContext)(`OreRadioGroup`),m=`ore-radio-group`;(0,f.define)(m,{formAssociated:!0,props:{...i.themableBundle,...i.sizableBundle,...i.disablableBundle,error:f.prop.string(),helper:f.prop.string(),label:f.prop.string(),name:f.prop.string(),orientation:f.prop.oneOf([`horizontal`,`vertical`],`vertical`),required:f.prop.bool(!1),value:{...f.prop.string(),reflect:!1}},setup(t){let n=(0,f.getHost)(),r=(0,f.useEmit)(),i=(0,f.useSlots)(),d=f.watchEffect,m=(0,f.inject)(u.FORM_CTX),h=u.useFormContext(t,m),g=o.createChoiceField({disabled:h.disabled,error:t.error,helper:t.helper,label:t.label,prefix:`radio-group`,required:t.required,signal:a.lifecycleSignal(f.onCleanup),validateOn:m?.validateOn,value:t.value});g.attachFormField(l.useField({disabled:g.disabled,onReset:g.reset,toFormValue:e=>e,validationMessage:g.validationMessage,validity:g.validity,value:g.formValue}));let _=g.selectedValue,v=h.disabled;(0,f.bind)({attr:{size:h.size,value:()=>_.value||null}});let y=()=>c.getLightChildrenByTag(n,`ore-radio`),b=()=>v.value?[]:y().filter(e=>!e.hasAttribute(`disabled`)),x=e=>c.getChoiceLabel(y(),e),S=(e,t)=>{g.setValues(e?[e]:[]);let n=e?[x(e)]:[];r(`change`,{labels:n,originalEvent:t,values:e?[e]:[]}),g.triggerValidation(`blur`)};(0,f.provide)(p,{color:t.color,disabled:v,name:t.name,select:S,size:t.size,value:_}),d(()=>{i.elements().value,_.value;let e=y();for(let n of e){let e=n.getAttribute(`value`)??``;n.toggleAttribute(`checked`,e===_.value),t.name.value?n.setAttribute(`name`,t.name.value):n.removeAttribute(`name`),t.color.value?n.setAttribute(`color`,t.color.value):n.removeAttribute(`color`),t.size.value?n.setAttribute(`size`,t.size.value):n.removeAttribute(`size`),n.toggleAttribute(`disabled`,v.value)}}),d(()=>{i.elements().value;let e=y(),t=!1;for(let n of e){let e=n.getAttribute(`value`)===_.value;n.setAttribute(`tabindex`,e&&!v.value?`0`:`-1`),e&&!v.value&&(t=!0)}if(!t&&e.length>0){let t=e.find(e=>!e.hasAttribute(`disabled`));t&&t.setAttribute(`tabindex`,`0`)}});let C=s.createListControl({getItems:b,keys:{next:[`ArrowDown`,`ArrowRight`],prev:[`ArrowUp`,`ArrowLeft`]},loop:!0,onNavigate:(e,t,n)=>{let r=b()[t];r&&(r.focus(),r.tagName===`ORE-RADIO`&&S(r.getAttribute(`value`)??``,n))}});(0,f.bind)({on:{change:e=>{e.target!==n&&(e.stopPropagation(),S(e.target.getAttribute(`value`)??``,e))},keydown:e=>{let t=b();if(!t.length)return;let n=t.indexOf(document.activeElement);n!==-1&&(C.set(n),C.handleKeydown(e))}}});let w=(0,f.createStableId)(`radio-group-legend`);return f.html`
2
2
  <fieldset
3
3
  role="radiogroup"
4
4
  aria-required="${()=>String(!!t.required.value)}"
5
- :aria-invalid="${_.ariaInvalid}"
6
- :aria-errormessage="${_.ariaErrorMessage}"
7
- :aria-describedby="${_.ariaDescribedBy}">
8
- <legend id="${T}" ?hidden=${()=>!t.label.value}>
5
+ :aria-invalid="${g.ariaInvalid}"
6
+ :aria-errormessage="${g.ariaErrorMessage}"
7
+ :aria-describedby="${g.ariaDescribedBy}">
8
+ <legend id="${w}" ?hidden=${()=>!t.label.value}>
9
9
  ${t.label}${e.when(()=>!!t.required.value,()=>f.html`<span aria-hidden="true"> *</span>`)}
10
10
  </legend>
11
11
  <div class="radio-group-items" part="items">
@@ -14,11 +14,11 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=requi
14
14
  <div
15
15
  class="helper-text"
16
16
  part="helper"
17
- id="${_.assistiveId}"
18
- :role="${()=>_.errorText.value?`alert`:null}"
17
+ id="${g.assistiveId}"
18
+ :role="${()=>g.errorText.value?`alert`:null}"
19
19
  aria-live="polite"
20
- ?hidden="${()=>!_.errorText.value&&!_.helperText.value}">
21
- ${()=>_.errorText.value||_.helperText.value}
20
+ ?hidden="${()=>!g.errorText.value&&!g.helperText.value}">
21
+ ${()=>g.errorText.value||g.helperText.value}
22
22
  </div>
23
23
  </fieldset>
24
24
  `},styles:[r.colorThemeMixin,t.sizeVariantMixin(),n.disabledStateMixin,d.default]}),exports.RADIO_GROUP_CTX=p,exports.RADIO_GROUP_TAG=m;