@vielzeug/ore 26.10.7 → 26.10.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/dist/define.cjs +1 -1
- package/dist/define.cjs.map +1 -1
- package/dist/define.d.ts.map +1 -1
- package/dist/define.js +1 -1
- package/dist/define.js.map +1 -1
- package/dist/directives/classMap.cjs +1 -1
- package/dist/directives/classMap.cjs.map +1 -1
- package/dist/directives/classMap.d.ts.map +1 -1
- package/dist/directives/classMap.js +1 -1
- package/dist/directives/classMap.js.map +1 -1
- package/dist/directives/each.cjs +1 -1
- package/dist/directives/each.cjs.map +1 -1
- package/dist/directives/each.d.ts.map +1 -1
- package/dist/directives/each.js +1 -1
- package/dist/directives/each.js.map +1 -1
- package/dist/directives/model.cjs +2 -0
- package/dist/directives/model.cjs.map +1 -0
- package/dist/directives/model.d.ts +47 -0
- package/dist/directives/model.d.ts.map +1 -0
- package/dist/directives/model.js +2 -0
- package/dist/directives/model.js.map +1 -0
- package/dist/directives/styleMap.cjs +1 -1
- package/dist/directives/styleMap.cjs.map +1 -1
- package/dist/directives/styleMap.d.ts.map +1 -1
- package/dist/directives/styleMap.js +1 -1
- package/dist/directives/styleMap.js.map +1 -1
- package/dist/errors.cjs +1 -1
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.ts +3 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/forms/field.cjs +1 -1
- package/dist/forms/field.cjs.map +1 -1
- package/dist/forms/field.d.ts +18 -5
- package/dist/forms/field.d.ts.map +1 -1
- package/dist/forms/field.js +1 -1
- package/dist/forms/field.js.map +1 -1
- package/dist/host-bind.cjs +1 -1
- package/dist/host-bind.cjs.map +1 -1
- package/dist/host-bind.d.ts.map +1 -1
- package/dist/host-bind.js +1 -1
- package/dist/host-bind.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/ore.cjs +2 -2
- package/dist/ore.cjs.map +1 -1
- package/dist/ore.iife.js +2 -2
- package/dist/ore.iife.js.map +1 -1
- package/dist/ore.js +2 -2
- package/dist/ore.js.map +1 -1
- package/dist/props.cjs +1 -1
- package/dist/props.cjs.map +1 -1
- package/dist/props.d.ts +16 -5
- package/dist/props.d.ts.map +1 -1
- package/dist/props.js +1 -1
- package/dist/props.js.map +1 -1
- package/dist/template/binding-types.d.ts +26 -5
- package/dist/template/binding-types.d.ts.map +1 -1
- package/dist/template/bindings.cjs +1 -1
- package/dist/template/bindings.cjs.map +1 -1
- package/dist/template/bindings.d.ts +3 -3
- package/dist/template/bindings.d.ts.map +1 -1
- package/dist/template/bindings.js +1 -1
- package/dist/template/bindings.js.map +1 -1
- package/dist/template/compiler.cjs +1 -1
- package/dist/template/compiler.cjs.map +1 -1
- package/dist/template/compiler.d.ts +13 -0
- package/dist/template/compiler.d.ts.map +1 -1
- package/dist/template/compiler.js +1 -1
- package/dist/template/compiler.js.map +1 -1
- package/dist/template/instantiator.cjs +1 -1
- package/dist/template/instantiator.cjs.map +1 -1
- package/dist/template/instantiator.d.ts.map +1 -1
- package/dist/template/instantiator.js +1 -1
- package/dist/template/instantiator.js.map +1 -1
- package/dist/testing/index.d.ts +2 -13
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing.cjs +1 -1
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.js +1 -1
- package/dist/testing.js.map +1 -1
- package/dist/utils/brand.cjs.map +1 -1
- package/dist/utils/brand.d.ts +3 -2
- package/dist/utils/brand.d.ts.map +1 -1
- package/dist/utils/brand.js.map +1 -1
- package/dist/utils/dom.cjs +1 -1
- package/dist/utils/dom.cjs.map +1 -1
- package/dist/utils/dom.d.ts +19 -0
- package/dist/utils/dom.d.ts.map +1 -1
- package/dist/utils/dom.js +1 -1
- package/dist/utils/dom.js.map +1 -1
- package/package.json +5 -5
- package/dist/_component-class.cjs +0 -2
- package/dist/_component-class.cjs.map +0 -1
- package/dist/_component-class.d.ts +0 -2
- package/dist/_component-class.d.ts.map +0 -1
- package/dist/_component-class.js +0 -2
- package/dist/_component-class.js.map +0 -1
- package/dist/testing/dom.cjs +0 -2
- package/dist/testing/dom.cjs.map +0 -1
- package/dist/testing/dom.d.ts +0 -22
- package/dist/testing/dom.d.ts.map +0 -1
- package/dist/testing/dom.js +0 -2
- package/dist/testing/dom.js.map +0 -1
- package/dist/testing/form-internals-polyfill.cjs +0 -2
- package/dist/testing/form-internals-polyfill.cjs.map +0 -1
- package/dist/testing/form-internals-polyfill.d.ts +0 -19
- package/dist/testing/form-internals-polyfill.d.ts.map +0 -1
- package/dist/testing/form-internals-polyfill.js +0 -2
- package/dist/testing/form-internals-polyfill.js.map +0 -1
package/dist/forms/field.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require("../_dev.cjs");const e=require("../errors.cjs"),t=require("../runtime.cjs");var n=new WeakMap,r=new WeakSet,i=i=>{let a=t.getHost();if(!a.constructor.formAssociated)throw new e.OreApiError(e.ORE_ERRORS.defineFieldRequiresFormAssociated(a.localName));if(r.has(a))throw new e.OreApiError(e.ORE_ERRORS.useFieldAlreadyCalled(a.localName));let o=n.get(a)??a.attachInternals();n.set(a,o),r.add(a),t.onCleanup(()=>r.delete(a));let s=i.toFormValue??(e=>e==null?i.emptyStringForNull?``:null:e instanceof File||e instanceof FormData?e:String(e));t.watchEffect(()=>{o.setFormValue(s(i.value.value))});let c=i.disabled;if(c&&`states`in o){let e=o.states;t.watchEffect(()=>{c.value?e.add(`disabled`):e.delete(`disabled`)})}return i.validity&&t.watchEffect(()=>{let e=i.validity?.value
|
|
1
|
+
require("../_dev.cjs");const e=require("../errors.cjs"),t=require("../runtime.cjs");var n=new WeakMap,r=new WeakSet,i=i=>{let a=t.getHost();if(!a.constructor.formAssociated)throw new e.OreApiError(e.ORE_ERRORS.defineFieldRequiresFormAssociated(a.localName));if(r.has(a))throw new e.OreApiError(e.ORE_ERRORS.useFieldAlreadyCalled(a.localName));let o=n.get(a)??a.attachInternals();n.set(a,o),r.add(a),t.onCleanup(()=>r.delete(a));let s=i.toFormValue??(e=>e==null?i.emptyStringForNull?``:null:e instanceof File||e instanceof FormData?e:String(e));t.watchEffect(()=>{o.setFormValue(s(i.value.value))});let c=i.disabled;if(c&&`states`in o){let e=o.states;t.watchEffect(()=>{c.value?e.add(`disabled`):e.delete(`disabled`)})}return i.validity&&t.watchEffect(()=>{let e=i.validity?.value;if(!e){o.setValidity({});return}let t=Object.values(e.flags).some(Boolean);o.setValidity(e.flags,t&&!e.message?`Invalid value.`:e.message)}),i.onReset&&t.onFormReset(i.onReset),{checkValidity:()=>o.checkValidity(),internals:o,reportValidity:()=>o.reportValidity(),setCustomValidity:e=>e?o.setValidity({customError:!0},e):o.setValidity({})}};exports.useField=i;
|
|
2
2
|
//# sourceMappingURL=field.cjs.map
|
package/dist/forms/field.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.cjs","names":[],"sources":["../../src/forms/field.ts"],"sourcesContent":["import type { Readable, Signal } from '@vielzeug/ripple';\n\nimport { warn } from '../_dev';\nimport { ORE_ERRORS, OreApiError } from '../errors';\nimport { getHost, onCleanup, onFormReset, watchEffect } from '../runtime';\n\n/** @internal */\nconst internalsRegistry = new WeakMap<HTMLElement, ElementInternals>();\n/** @internal */\nconst activeFieldRegistry = new WeakSet<HTMLElement>();\n\nexport type FormFieldOptions<T = unknown> = {\n disabled?: Readable<boolean>;\n /**\n * When `true`, a `null` or `undefined` value is submitted as an empty string\n * (`''`) instead of `null`. This keeps the field's key present in `FormData`\n * even when the value is absent: useful when the server expects the field to\n * always be included.\n *\n * @default false\n */\n emptyStringForNull?: boolean;\n /**\n * Called when the ancestor `<form>` is reset (see `onFormReset`). Use to restore\n * whatever local state backs `value`: `useField` itself owns no field state to reset.\n */\n onReset?: () => void;\n toFormValue?: (value: T) => File | FormData | string | null;\n /**\n * Recomputed reactively and passed straight to `internals.setValidity()`: `null`\n * (or omitting `validity` entirely) means always valid
|
|
1
|
+
{"version":3,"file":"field.cjs","names":[],"sources":["../../src/forms/field.ts"],"sourcesContent":["import type { Readable, Signal } from '@vielzeug/ripple';\n\nimport { warn } from '../_dev';\nimport { ORE_ERRORS, OreApiError } from '../errors';\nimport { getHost, onCleanup, onFormReset, watchEffect } from '../runtime';\n\n/** @internal */\nconst internalsRegistry = new WeakMap<HTMLElement, ElementInternals>();\n/** @internal */\nconst activeFieldRegistry = new WeakSet<HTMLElement>();\n\n/**\n * One field-validity state: the flags and the message travel together because\n * the platform's `setValidity()` contract couples them (flags without a\n * non-empty message throw). A single `{ flags, message } | null` input makes a\n * desynced pair unrepresentable, where the old split `validity` +\n * `validationMessage` options could drift apart.\n */\nexport type FormFieldValidity = { flags: ValidityStateFlags; message: string };\n\nexport type FormFieldOptions<T = unknown> = {\n disabled?: Readable<boolean>;\n /**\n * When `true`, a `null` or `undefined` value is submitted as an empty string\n * (`''`) instead of `null`. This keeps the field's key present in `FormData`\n * even when the value is absent: useful when the server expects the field to\n * always be included.\n *\n * @default false\n */\n emptyStringForNull?: boolean;\n /**\n * Called when the ancestor `<form>` is reset (see `onFormReset`). Use to restore\n * whatever local state backs `value`: `useField` itself owns no field state to reset.\n */\n onReset?: () => void;\n toFormValue?: (value: T) => File | FormData | string | null;\n /**\n * Recomputed reactively and passed straight to `internals.setValidity()`: `null`\n * (or omitting `validity` entirely) means always valid.\n *\n * @example\n * ```ts\n * validity: computed(() =>\n * required.value && isBlank(value.value)\n * ? { flags: { valueMissing: true }, message: 'Required.' }\n * : null,\n * ),\n * ```\n */\n validity?: Readable<FormFieldValidity | null>;\n value: Signal<T> | Readable<T>;\n};\n\nexport type FormFieldHandle = {\n checkValidity: () => boolean;\n readonly internals: ElementInternals;\n reportValidity: () => boolean;\n /**\n * Set (non-empty message) or clear (empty string) a custom validity error.\n * Guards the platform's throw-on-empty-message contract: prefer this over\n * calling `internals.setValidity` directly.\n */\n setCustomValidity: (message: string) => void;\n};\n\nexport const useField = <T = unknown>(options: FormFieldOptions<T>): FormFieldHandle => {\n const host = getHost();\n const ctor = host.constructor as typeof HTMLElement & { formAssociated?: boolean };\n\n if (!ctor.formAssociated) {\n throw new OreApiError(ORE_ERRORS.defineFieldRequiresFormAssociated(host.localName));\n }\n\n if (activeFieldRegistry.has(host)) {\n throw new OreApiError(ORE_ERRORS.useFieldAlreadyCalled(host.localName));\n }\n\n // ElementInternals may only be attached once for an element's lifetime, while setup\n // legitimately runs again when a custom element is reconnected.\n const internals = internalsRegistry.get(host) ?? host.attachInternals();\n\n internalsRegistry.set(host, internals);\n activeFieldRegistry.add(host);\n onCleanup(() => activeFieldRegistry.delete(host));\n\n const toFormValue =\n options.toFormValue ??\n ((v: T): File | FormData | string | null => {\n if (v == null) return options.emptyStringForNull ? '' : null;\n\n if (v instanceof File || v instanceof FormData) return v;\n\n return String(v);\n });\n\n watchEffect(() => {\n internals.setFormValue(toFormValue(options.value.value));\n });\n\n const disabled = options.disabled;\n\n if (disabled) {\n if (!('states' in internals)) {\n warn(\n 'useField(): ElementInternals.states (CustomStateSet) is not available in this environment: disabled state tracking skipped.',\n );\n } else {\n const states = internals.states as CustomStateSet;\n\n watchEffect(() => {\n if (disabled.value) states.add('disabled');\n else states.delete('disabled');\n });\n }\n }\n\n if (options.validity) {\n watchEffect(() => {\n const state = options.validity?.value;\n\n if (!state) {\n internals.setValidity({});\n\n return;\n }\n\n // Per spec, ElementInternals.setValidity() throws if any flag is true and the\n // message is empty. The FormFieldValidity shape makes that state rare, but a\n // runtime empty string is still expressible: fall back to a generic message\n // instead of crashing this effect in a real browser.\n const hasFlag = Object.values(state.flags).some(Boolean);\n\n internals.setValidity(state.flags, hasFlag && !state.message ? 'Invalid value.' : state.message);\n });\n }\n\n if (options.onReset) onFormReset(options.onReset);\n\n const checkValidity = () => internals.checkValidity();\n const reportValidity = () => internals.reportValidity();\n const setCustomValidity = (message: string) =>\n message ? internals.setValidity({ customError: true }, message) : internals.setValidity({});\n\n return {\n checkValidity,\n internals,\n reportValidity,\n setCustomValidity,\n };\n};\n"],"mappings":"oFAOA,IAAM,EAAoB,IAAI,QAExB,EAAsB,IAAI,QAyDnB,EAAyB,GAAkD,CACtF,IAAM,EAAO,EAAA,QAAQ,EAGrB,GAAI,CAFS,EAAK,YAER,eACR,MAAM,IAAI,EAAA,YAAY,EAAA,WAAW,kCAAkC,EAAK,SAAS,CAAC,EAGpF,GAAI,EAAoB,IAAI,CAAI,EAC9B,MAAM,IAAI,EAAA,YAAY,EAAA,WAAW,sBAAsB,EAAK,SAAS,CAAC,EAKxE,IAAM,EAAY,EAAkB,IAAI,CAAI,GAAK,EAAK,gBAAgB,EAEtE,EAAkB,IAAI,EAAM,CAAS,EACrC,EAAoB,IAAI,CAAI,EAC5B,EAAA,cAAgB,EAAoB,OAAO,CAAI,CAAC,EAEhD,IAAM,EACJ,EAAQ,cACN,GACI,GAAK,KAAa,EAAQ,mBAAqB,GAAK,KAEpD,aAAa,MAAQ,aAAa,SAAiB,EAEhD,OAAO,CAAC,GAGnB,EAAA,gBAAkB,CAChB,EAAU,aAAa,EAAY,EAAQ,MAAM,KAAK,CAAC,CACzD,CAAC,EAED,IAAM,EAAW,EAAQ,SAEzB,GAAI,GACI,WAAY,EAIX,CACL,IAAM,EAAS,EAAU,OAEzB,EAAA,gBAAkB,CACZ,EAAS,MAAO,EAAO,IAAI,UAAU,EACpC,EAAO,OAAO,UAAU,CAC/B,CAAC,CACH,CA8BF,OA3BI,EAAQ,UACV,EAAA,gBAAkB,CAChB,IAAM,EAAQ,EAAQ,UAAU,MAEhC,GAAI,CAAC,EAAO,CACV,EAAU,YAAY,CAAC,CAAC,EAExB,MACF,CAMA,IAAM,EAAU,OAAO,OAAO,EAAM,KAAK,CAAC,CAAC,KAAK,OAAO,EAEvD,EAAU,YAAY,EAAM,MAAO,GAAW,CAAC,EAAM,QAAU,iBAAmB,EAAM,OAAO,CACjG,CAAC,EAGC,EAAQ,SAAS,EAAA,YAAY,EAAQ,OAAO,EAOzC,CACL,kBAN0B,EAAU,cAAc,EAOlD,YACA,mBAP2B,EAAU,eAAe,EAQpD,kBAPyB,GACzB,EAAU,EAAU,YAAY,CAAE,YAAa,EAAK,EAAG,CAAO,EAAI,EAAU,YAAY,CAAC,CAAC,CAO5F,CACF"}
|
package/dist/forms/field.d.ts
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
import type { Readable, Signal } from '@vielzeug/ripple';
|
|
2
|
+
/**
|
|
3
|
+
* One field-validity state: the flags and the message travel together because
|
|
4
|
+
* the platform's `setValidity()` contract couples them (flags without a
|
|
5
|
+
* non-empty message throw). A single `{ flags, message } | null` input makes a
|
|
6
|
+
* desynced pair unrepresentable, where the old split `validity` +
|
|
7
|
+
* `validationMessage` options could drift apart.
|
|
8
|
+
*/
|
|
9
|
+
export type FormFieldValidity = {
|
|
10
|
+
flags: ValidityStateFlags;
|
|
11
|
+
message: string;
|
|
12
|
+
};
|
|
2
13
|
export type FormFieldOptions<T = unknown> = {
|
|
3
14
|
disabled?: Readable<boolean>;
|
|
4
15
|
/**
|
|
@@ -18,16 +29,18 @@ export type FormFieldOptions<T = unknown> = {
|
|
|
18
29
|
toFormValue?: (value: T) => File | FormData | string | null;
|
|
19
30
|
/**
|
|
20
31
|
* Recomputed reactively and passed straight to `internals.setValidity()`: `null`
|
|
21
|
-
* (or omitting `validity` entirely) means always valid.
|
|
32
|
+
* (or omitting `validity` entirely) means always valid.
|
|
22
33
|
*
|
|
23
34
|
* @example
|
|
24
35
|
* ```ts
|
|
25
|
-
* validity: computed(() =>
|
|
26
|
-
*
|
|
36
|
+
* validity: computed(() =>
|
|
37
|
+
* required.value && isBlank(value.value)
|
|
38
|
+
* ? { flags: { valueMissing: true }, message: 'Required.' }
|
|
39
|
+
* : null,
|
|
40
|
+
* ),
|
|
27
41
|
* ```
|
|
28
42
|
*/
|
|
29
|
-
|
|
30
|
-
validity?: Readable<ValidityStateFlags | null>;
|
|
43
|
+
validity?: Readable<FormFieldValidity | null>;
|
|
31
44
|
value: Signal<T> | Readable<T>;
|
|
32
45
|
};
|
|
33
46
|
export type FormFieldHandle = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/forms/field.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAWzD,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC1C,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7B;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5D
|
|
1
|
+
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/forms/field.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAWzD;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAAE,KAAK,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/E,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC1C,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7B;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5D;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,aAAa,EAAE,MAAM,OAAO,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,cAAc,EAAE,MAAM,OAAO,CAAC;IAC9B;;;;OAIG;IACH,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,CAAC,GAAG,OAAO,EAAE,SAAS,gBAAgB,CAAC,CAAC,CAAC,KAAG,eAoFpE,CAAC"}
|
package/dist/forms/field.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../_dev.js";import{ORE_ERRORS as e,OreApiError as t}from"../errors.js";import{getHost as n,onCleanup as r,onFormReset as i,watchEffect as a}from"../runtime.js";var o=new WeakMap,s=new WeakSet,c=c=>{let l=n();if(!l.constructor.formAssociated)throw new t(e.defineFieldRequiresFormAssociated(l.localName));if(s.has(l))throw new t(e.useFieldAlreadyCalled(l.localName));let u=o.get(l)??l.attachInternals();o.set(l,u),s.add(l),r(()=>s.delete(l));let d=c.toFormValue??(e=>e==null?c.emptyStringForNull?``:null:e instanceof File||e instanceof FormData?e:String(e));a(()=>{u.setFormValue(d(c.value.value))});let f=c.disabled;if(f&&`states`in u){let e=u.states;a(()=>{f.value?e.add(`disabled`):e.delete(`disabled`)})}return c.validity&&a(()=>{let e=c.validity?.value
|
|
1
|
+
import"../_dev.js";import{ORE_ERRORS as e,OreApiError as t}from"../errors.js";import{getHost as n,onCleanup as r,onFormReset as i,watchEffect as a}from"../runtime.js";var o=new WeakMap,s=new WeakSet,c=c=>{let l=n();if(!l.constructor.formAssociated)throw new t(e.defineFieldRequiresFormAssociated(l.localName));if(s.has(l))throw new t(e.useFieldAlreadyCalled(l.localName));let u=o.get(l)??l.attachInternals();o.set(l,u),s.add(l),r(()=>s.delete(l));let d=c.toFormValue??(e=>e==null?c.emptyStringForNull?``:null:e instanceof File||e instanceof FormData?e:String(e));a(()=>{u.setFormValue(d(c.value.value))});let f=c.disabled;if(f&&`states`in u){let e=u.states;a(()=>{f.value?e.add(`disabled`):e.delete(`disabled`)})}return c.validity&&a(()=>{let e=c.validity?.value;if(!e){u.setValidity({});return}let t=Object.values(e.flags).some(Boolean);u.setValidity(e.flags,t&&!e.message?`Invalid value.`:e.message)}),c.onReset&&i(c.onReset),{checkValidity:()=>u.checkValidity(),internals:u,reportValidity:()=>u.reportValidity(),setCustomValidity:e=>e?u.setValidity({customError:!0},e):u.setValidity({})}};export{c as useField};
|
|
2
2
|
//# sourceMappingURL=field.js.map
|
package/dist/forms/field.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.js","names":[],"sources":["../../src/forms/field.ts"],"sourcesContent":["import type { Readable, Signal } from '@vielzeug/ripple';\n\nimport { warn } from '../_dev';\nimport { ORE_ERRORS, OreApiError } from '../errors';\nimport { getHost, onCleanup, onFormReset, watchEffect } from '../runtime';\n\n/** @internal */\nconst internalsRegistry = new WeakMap<HTMLElement, ElementInternals>();\n/** @internal */\nconst activeFieldRegistry = new WeakSet<HTMLElement>();\n\nexport type FormFieldOptions<T = unknown> = {\n disabled?: Readable<boolean>;\n /**\n * When `true`, a `null` or `undefined` value is submitted as an empty string\n * (`''`) instead of `null`. This keeps the field's key present in `FormData`\n * even when the value is absent: useful when the server expects the field to\n * always be included.\n *\n * @default false\n */\n emptyStringForNull?: boolean;\n /**\n * Called when the ancestor `<form>` is reset (see `onFormReset`). Use to restore\n * whatever local state backs `value`: `useField` itself owns no field state to reset.\n */\n onReset?: () => void;\n toFormValue?: (value: T) => File | FormData | string | null;\n /**\n * Recomputed reactively and passed straight to `internals.setValidity()`: `null`\n * (or omitting `validity` entirely) means always valid
|
|
1
|
+
{"version":3,"file":"field.js","names":[],"sources":["../../src/forms/field.ts"],"sourcesContent":["import type { Readable, Signal } from '@vielzeug/ripple';\n\nimport { warn } from '../_dev';\nimport { ORE_ERRORS, OreApiError } from '../errors';\nimport { getHost, onCleanup, onFormReset, watchEffect } from '../runtime';\n\n/** @internal */\nconst internalsRegistry = new WeakMap<HTMLElement, ElementInternals>();\n/** @internal */\nconst activeFieldRegistry = new WeakSet<HTMLElement>();\n\n/**\n * One field-validity state: the flags and the message travel together because\n * the platform's `setValidity()` contract couples them (flags without a\n * non-empty message throw). A single `{ flags, message } | null` input makes a\n * desynced pair unrepresentable, where the old split `validity` +\n * `validationMessage` options could drift apart.\n */\nexport type FormFieldValidity = { flags: ValidityStateFlags; message: string };\n\nexport type FormFieldOptions<T = unknown> = {\n disabled?: Readable<boolean>;\n /**\n * When `true`, a `null` or `undefined` value is submitted as an empty string\n * (`''`) instead of `null`. This keeps the field's key present in `FormData`\n * even when the value is absent: useful when the server expects the field to\n * always be included.\n *\n * @default false\n */\n emptyStringForNull?: boolean;\n /**\n * Called when the ancestor `<form>` is reset (see `onFormReset`). Use to restore\n * whatever local state backs `value`: `useField` itself owns no field state to reset.\n */\n onReset?: () => void;\n toFormValue?: (value: T) => File | FormData | string | null;\n /**\n * Recomputed reactively and passed straight to `internals.setValidity()`: `null`\n * (or omitting `validity` entirely) means always valid.\n *\n * @example\n * ```ts\n * validity: computed(() =>\n * required.value && isBlank(value.value)\n * ? { flags: { valueMissing: true }, message: 'Required.' }\n * : null,\n * ),\n * ```\n */\n validity?: Readable<FormFieldValidity | null>;\n value: Signal<T> | Readable<T>;\n};\n\nexport type FormFieldHandle = {\n checkValidity: () => boolean;\n readonly internals: ElementInternals;\n reportValidity: () => boolean;\n /**\n * Set (non-empty message) or clear (empty string) a custom validity error.\n * Guards the platform's throw-on-empty-message contract: prefer this over\n * calling `internals.setValidity` directly.\n */\n setCustomValidity: (message: string) => void;\n};\n\nexport const useField = <T = unknown>(options: FormFieldOptions<T>): FormFieldHandle => {\n const host = getHost();\n const ctor = host.constructor as typeof HTMLElement & { formAssociated?: boolean };\n\n if (!ctor.formAssociated) {\n throw new OreApiError(ORE_ERRORS.defineFieldRequiresFormAssociated(host.localName));\n }\n\n if (activeFieldRegistry.has(host)) {\n throw new OreApiError(ORE_ERRORS.useFieldAlreadyCalled(host.localName));\n }\n\n // ElementInternals may only be attached once for an element's lifetime, while setup\n // legitimately runs again when a custom element is reconnected.\n const internals = internalsRegistry.get(host) ?? host.attachInternals();\n\n internalsRegistry.set(host, internals);\n activeFieldRegistry.add(host);\n onCleanup(() => activeFieldRegistry.delete(host));\n\n const toFormValue =\n options.toFormValue ??\n ((v: T): File | FormData | string | null => {\n if (v == null) return options.emptyStringForNull ? '' : null;\n\n if (v instanceof File || v instanceof FormData) return v;\n\n return String(v);\n });\n\n watchEffect(() => {\n internals.setFormValue(toFormValue(options.value.value));\n });\n\n const disabled = options.disabled;\n\n if (disabled) {\n if (!('states' in internals)) {\n warn(\n 'useField(): ElementInternals.states (CustomStateSet) is not available in this environment: disabled state tracking skipped.',\n );\n } else {\n const states = internals.states as CustomStateSet;\n\n watchEffect(() => {\n if (disabled.value) states.add('disabled');\n else states.delete('disabled');\n });\n }\n }\n\n if (options.validity) {\n watchEffect(() => {\n const state = options.validity?.value;\n\n if (!state) {\n internals.setValidity({});\n\n return;\n }\n\n // Per spec, ElementInternals.setValidity() throws if any flag is true and the\n // message is empty. The FormFieldValidity shape makes that state rare, but a\n // runtime empty string is still expressible: fall back to a generic message\n // instead of crashing this effect in a real browser.\n const hasFlag = Object.values(state.flags).some(Boolean);\n\n internals.setValidity(state.flags, hasFlag && !state.message ? 'Invalid value.' : state.message);\n });\n }\n\n if (options.onReset) onFormReset(options.onReset);\n\n const checkValidity = () => internals.checkValidity();\n const reportValidity = () => internals.reportValidity();\n const setCustomValidity = (message: string) =>\n message ? internals.setValidity({ customError: true }, message) : internals.setValidity({});\n\n return {\n checkValidity,\n internals,\n reportValidity,\n setCustomValidity,\n };\n};\n"],"mappings":"uKAOA,IAAM,EAAoB,IAAI,QAExB,EAAsB,IAAI,QAyDnB,EAAyB,GAAkD,CACtF,IAAM,EAAO,EAAQ,EAGrB,GAAI,CAFS,EAAK,YAER,eACR,MAAM,IAAI,EAAY,EAAW,kCAAkC,EAAK,SAAS,CAAC,EAGpF,GAAI,EAAoB,IAAI,CAAI,EAC9B,MAAM,IAAI,EAAY,EAAW,sBAAsB,EAAK,SAAS,CAAC,EAKxE,IAAM,EAAY,EAAkB,IAAI,CAAI,GAAK,EAAK,gBAAgB,EAEtE,EAAkB,IAAI,EAAM,CAAS,EACrC,EAAoB,IAAI,CAAI,EAC5B,MAAgB,EAAoB,OAAO,CAAI,CAAC,EAEhD,IAAM,EACJ,EAAQ,cACN,GACI,GAAK,KAAa,EAAQ,mBAAqB,GAAK,KAEpD,aAAa,MAAQ,aAAa,SAAiB,EAEhD,OAAO,CAAC,GAGnB,MAAkB,CAChB,EAAU,aAAa,EAAY,EAAQ,MAAM,KAAK,CAAC,CACzD,CAAC,EAED,IAAM,EAAW,EAAQ,SAEzB,GAAI,GACI,WAAY,EAIX,CACL,IAAM,EAAS,EAAU,OAEzB,MAAkB,CACZ,EAAS,MAAO,EAAO,IAAI,UAAU,EACpC,EAAO,OAAO,UAAU,CAC/B,CAAC,CACH,CA8BF,OA3BI,EAAQ,UACV,MAAkB,CAChB,IAAM,EAAQ,EAAQ,UAAU,MAEhC,GAAI,CAAC,EAAO,CACV,EAAU,YAAY,CAAC,CAAC,EAExB,MACF,CAMA,IAAM,EAAU,OAAO,OAAO,EAAM,KAAK,CAAC,CAAC,KAAK,OAAO,EAEvD,EAAU,YAAY,EAAM,MAAO,GAAW,CAAC,EAAM,QAAU,iBAAmB,EAAM,OAAO,CACjG,CAAC,EAGC,EAAQ,SAAS,EAAY,EAAQ,OAAO,EAOzC,CACL,kBAN0B,EAAU,cAAc,EAOlD,YACA,mBAP2B,EAAU,eAAe,EAQpD,kBAPyB,GACzB,EAAU,EAAU,YAAY,CAAE,YAAa,EAAK,EAAG,CAAO,EAAI,EAAU,YAAY,CAAC,CAAC,CAO5F,CACF"}
|
package/dist/host-bind.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("./utils/dom.cjs"),t=require("./runtime.cjs"),n=require("./utils/aria.cjs");let r=require("@vielzeug/ripple");var i=(n,r)=>{let i=r?.target??t.getHost(),o=[];if(n.attr)for(let[e,t]of Object.entries(n.attr)){let n=s(i,a(e),t);n&&o.push(n)}if(n.class&&o.push(l(i,n.class)),n.style)for(let[e,t]of Object.entries(n.style)){let n=c(i,e,t);n&&o.push(n)}if(n.on){let{target:t,...a}=r??{};for(let t of Object.keys(n.on)){let r=n.on[t];r&&o.push(e.listen(i,t,r,a))}}let u=()=>{for(let e of o)e()};return t.tryRegisterCleanup(u),u},a=n.normalizeHostAttrKey,o=(e,n)=>{if(typeof e==`function`)return t.watchEffect(()=>{n(e())});if((0,r.isReactive)(e))return t.watchEffect(()=>{n(e.value)});n(e)};function s(t,n,r){return o(r,r=>e.setAttr(t,n,r))}function c(t,n,r){let i=e.
|
|
1
|
+
const e=require("./utils/dom.cjs"),t=require("./runtime.cjs"),n=require("./utils/aria.cjs");let r=require("@vielzeug/ripple");var i=(n,r)=>{let i=r?.target??t.getHost(),o=[];if(n.attr)for(let[e,t]of Object.entries(n.attr)){let n=s(i,a(e),t);n&&o.push(n)}if(n.class&&o.push(l(i,n.class)),n.style)for(let[e,t]of Object.entries(n.style)){let n=c(i,e,t);n&&o.push(n)}if(n.on){let{target:t,...a}=r??{};for(let t of Object.keys(n.on)){let r=n.on[t];r&&o.push(e.listen(i,t,r,a))}}let u=()=>{for(let e of o)e()};return t.tryRegisterCleanup(u),u},a=n.normalizeHostAttrKey,o=(e,n)=>{if(typeof e==`function`)return t.watchEffect(()=>{n(e())});if((0,r.isReactive)(e))return t.watchEffect(()=>{n(e.value)});n(e)};function s(t,n,r){return o(r,r=>e.setAttr(t,n,r))}function c(t,n,r){let i=e.cssDeclarationName(n);if(!i)return;let a=!1;return o(r,n=>{let r=e.cssDeclarationValue(n);r?(a=!0,t.style.setProperty(i,r)):a&&t.style.removeProperty(i)})}function l(n,r){let i=typeof r==`function`?r:()=>Object.fromEntries([...e.resolveClassTokens(r)].map(e=>[e,!0])),a=new Set;return t.watchEffect(()=>{let e=new Set;for(let[t,r]of Object.entries(i()))r&&(e.add(t),a.has(t)||n.classList.add(t));for(let t of a)e.has(t)||n.classList.remove(t);a=e})}exports.bind=i;
|
|
2
2
|
//# sourceMappingURL=host-bind.cjs.map
|
package/dist/host-bind.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-bind.cjs","names":[],"sources":["../src/host-bind.ts"],"sourcesContent":["/**\n * Host element binding API: reactive attr, class, style, and event bindings\n * applied directly to the component's host element or any target element.\n */\n\nimport { isReactive } from '@vielzeug/ripple';\n\nimport { getHost, tryRegisterCleanup, watchEffect } from './runtime';\nimport { normalizeHostAttrKey } from './utils/aria';\nimport {
|
|
1
|
+
{"version":3,"file":"host-bind.cjs","names":[],"sources":["../src/host-bind.ts"],"sourcesContent":["/**\n * Host element binding API: reactive attr, class, style, and event bindings\n * applied directly to the component's host element or any target element.\n */\n\nimport { isReactive } from '@vielzeug/ripple';\n\nimport { getHost, tryRegisterCleanup, watchEffect } from './runtime';\nimport { normalizeHostAttrKey } from './utils/aria';\nimport {\n cssDeclarationName,\n cssDeclarationValue,\n listen,\n type MaybeReactive,\n resolveClassTokens,\n setAttr,\n} from './utils/dom';\n\n/**\n * Describes a reactive or static host binding value.\n */\nexport type HostBindingValue = MaybeReactive<string | number | boolean | null | undefined>;\n\n/**\n * Configuration for host attribute bindings.\n */\nexport type AttributeBindings = Record<string, HostBindingValue>;\n\ntype HostClassBindingValue = MaybeReactive<boolean>;\n// Bivariant callback allows consumers to use narrower event types.\ntype HostEventListener = { bivarianceHack(event: Event): void }['bivarianceHack'];\n\nexport type HostBindConfig = {\n attr?: AttributeBindings;\n class?: (() => Record<string, boolean>) | Record<string, HostClassBindingValue>;\n on?: Record<string, HostEventListener | undefined>;\n style?: Record<string, HostBindingValue>;\n};\n\nexport type BindOptions = AddEventListenerOptions & {\n /**\n * Target element to bind to. Defaults to the host element when called\n * via `bind()`. Pass an explicit element to bind to any other element\n * (e.g. a slotted trigger or an internally-referenced child element).\n * When a target is provided, cleanup is always auto-registered with the\n * component scope if one is active.\n */\n target?: Element;\n};\n\n/**\n * Apply reactive or static bindings to an element's attributes, classes, styles,\n * and events. Defaults to the current component's host element; pass\n * `options.target` to bind to any other element (e.g. a slotted trigger, an\n * internally-referenced child).\n */\nexport const bind = (config: HostBindConfig, options?: BindOptions): (() => void) => {\n const el = (options?.target as HTMLElement | undefined) ?? getHost();\n const disposers: Array<() => void> = [];\n\n if (config.attr) {\n for (const [key, value] of Object.entries(config.attr)) {\n const name = toHostAttr(key);\n const dispose = applyAttribute(el, name, value);\n\n if (dispose) disposers.push(dispose);\n }\n }\n\n if (config.class) {\n disposers.push(applyClassMap(el, config.class));\n }\n\n if (config.style) {\n for (const [key, value] of Object.entries(config.style)) {\n const dispose = applyStyle(el, key, value);\n\n if (dispose) disposers.push(dispose);\n }\n }\n\n if (config.on) {\n const { target: _t, ...listenerOptions } = options ?? {};\n\n for (const event of Object.keys(config.on) as Array<keyof typeof config.on>) {\n const listener = config.on[event];\n\n if (!listener) continue;\n\n disposers.push(listen(el, event as string, listener as EventListener, listenerOptions));\n }\n }\n\n const cleanup = (): void => {\n for (const dispose of disposers) dispose();\n };\n\n tryRegisterCleanup(cleanup);\n\n return cleanup;\n};\n\nconst toHostAttr = normalizeHostAttrKey;\n\nconst applyReactiveBinding = (\n value: HostBindingValue,\n updater: (next: string | number | boolean | null | undefined) => void,\n): (() => void) | undefined => {\n if (typeof value === 'function') {\n return watchEffect(() => {\n updater(value());\n return undefined;\n });\n }\n\n if (isReactive(value)) {\n return watchEffect(() => {\n updater(value.value);\n return undefined;\n });\n }\n\n updater(value);\n};\n\nfunction applyAttribute(host: HTMLElement, name: string, value: HostBindingValue): (() => void) | undefined {\n return applyReactiveBinding(value, (next) => setAttr(host, name, next));\n}\n\nfunction applyStyle(host: HTMLElement, name: string, value: HostBindingValue): (() => void) | undefined {\n const cssName = cssDeclarationName(name);\n\n if (!cssName) return;\n\n let owned = false;\n const setStyle = (v: string | number | boolean | null | undefined): void => {\n const declaration = cssDeclarationValue(v);\n\n if (declaration) {\n owned = true;\n host.style.setProperty(cssName, declaration);\n } else if (owned) host.style.removeProperty(cssName);\n };\n\n return applyReactiveBinding(value, setStyle);\n}\n\nfunction applyClassMap(\n host: HTMLElement,\n value: (() => Record<string, boolean>) | Record<string, HostClassBindingValue>,\n): () => void {\n const getMap =\n typeof value === 'function'\n ? value\n : (): Record<string, boolean> => Object.fromEntries([...resolveClassTokens(value)].map((cls) => [cls, true]));\n\n let prev = new Set<string>();\n\n const sub = watchEffect(() => {\n const next = new Set<string>();\n\n for (const [cls, active] of Object.entries(getMap())) {\n if (!active) continue;\n\n next.add(cls);\n\n if (!prev.has(cls)) host.classList.add(cls);\n }\n for (const cls of prev) {\n if (!next.has(cls)) host.classList.remove(cls);\n }\n prev = next;\n });\n\n return sub;\n}\n"],"mappings":"8HAwDA,IAAa,GAAQ,EAAwB,IAAwC,CACnF,IAAM,EAAM,GAAS,QAAsC,EAAA,QAAQ,EAC7D,EAA+B,CAAC,EAEtC,GAAI,EAAO,KACT,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAAQ,EAAO,IAAI,EAAG,CAEtD,IAAM,EAAU,EAAe,EADlB,EAAW,CACW,EAAM,CAAK,EAE1C,GAAS,EAAU,KAAK,CAAO,CACrC,CAOF,GAJI,EAAO,OACT,EAAU,KAAK,EAAc,EAAI,EAAO,KAAK,CAAC,EAG5C,EAAO,MACT,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAAQ,EAAO,KAAK,EAAG,CACvD,IAAM,EAAU,EAAW,EAAI,EAAK,CAAK,EAErC,GAAS,EAAU,KAAK,CAAO,CACrC,CAGF,GAAI,EAAO,GAAI,CACb,GAAM,CAAE,OAAQ,EAAI,GAAG,GAAoB,GAAW,CAAC,EAEvD,IAAK,IAAM,KAAS,OAAO,KAAK,EAAO,EAAE,EAAoC,CAC3E,IAAM,EAAW,EAAO,GAAG,GAEtB,GAEL,EAAU,KAAK,EAAA,OAAO,EAAI,EAAiB,EAA2B,CAAe,CAAC,CACxF,CACF,CAEA,IAAM,MAAsB,CAC1B,IAAK,IAAM,KAAW,EAAW,EAAQ,CAC3C,EAIA,OAFA,EAAA,mBAAmB,CAAO,EAEnB,CACT,EAEM,EAAa,EAAA,qBAEb,GACJ,EACA,IAC6B,CAC7B,GAAI,OAAO,GAAU,WACnB,OAAO,EAAA,gBAAkB,CACvB,EAAQ,EAAM,CAAC,CAEjB,CAAC,EAGH,IAAA,EAAI,EAAA,WAAA,CAAW,CAAK,EAClB,OAAO,EAAA,gBAAkB,CACvB,EAAQ,EAAM,KAAK,CAErB,CAAC,EAGH,EAAQ,CAAK,CACf,EAEA,SAAS,EAAe,EAAmB,EAAc,EAAmD,CAC1G,OAAO,EAAqB,EAAQ,GAAS,EAAA,QAAQ,EAAM,EAAM,CAAI,CAAC,CACxE,CAEA,SAAS,EAAW,EAAmB,EAAc,EAAmD,CACtG,IAAM,EAAU,EAAA,mBAAmB,CAAI,EAEvC,GAAI,CAAC,EAAS,OAEd,IAAI,EAAQ,GAUZ,OAAO,EAAqB,EATV,GAA0D,CAC1E,IAAM,EAAc,EAAA,oBAAoB,CAAC,EAErC,GACF,EAAQ,GACR,EAAK,MAAM,YAAY,EAAS,CAAW,GAClC,GAAO,EAAK,MAAM,eAAe,CAAO,CACrD,CAE2C,CAC7C,CAEA,SAAS,EACP,EACA,EACY,CACZ,IAAM,EACJ,OAAO,GAAU,WACb,MAC+B,OAAO,YAAY,CAAC,GAAG,EAAA,mBAAmB,CAAK,CAAC,CAAC,CAAC,IAAK,GAAQ,CAAC,EAAK,EAAI,CAAC,CAAC,EAE5G,EAAO,IAAI,IAkBf,OAhBY,EAAA,gBAAkB,CAC5B,IAAM,EAAO,IAAI,IAEjB,IAAK,GAAM,CAAC,EAAK,KAAW,OAAO,QAAQ,EAAO,CAAC,EAC5C,IAEL,EAAK,IAAI,CAAG,EAEP,EAAK,IAAI,CAAG,GAAG,EAAK,UAAU,IAAI,CAAG,GAE5C,IAAK,IAAM,KAAO,EACX,EAAK,IAAI,CAAG,GAAG,EAAK,UAAU,OAAO,CAAG,EAE/C,EAAO,CACT,CAEO,CACT"}
|
package/dist/host-bind.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-bind.d.ts","sourceRoot":"","sources":["../src/host-bind.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,
|
|
1
|
+
{"version":3,"file":"host-bind.d.ts","sourceRoot":"","sources":["../src/host-bind.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAIL,KAAK,aAAa,EAGnB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAE3F;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAEjE,KAAK,qBAAqB,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;AAEpD,KAAK,iBAAiB,GAAG;IAAE,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAAE,CAAC,gBAAgB,CAAC,CAAC;AAElF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,KAAK,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAChF,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,CAAC,CAAC;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,uBAAuB,GAAG;IAClD;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,IAAI,GAAI,QAAQ,cAAc,EAAE,UAAU,WAAW,KAAG,CAAC,MAAM,IAAI,CA4C/E,CAAC"}
|
package/dist/host-bind.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{cssDeclarationName as e,cssDeclarationValue as t,listen as n,resolveClassTokens as r,setAttr as i}from"./utils/dom.js";import{getHost as a,tryRegisterCleanup as o,watchEffect as s}from"./runtime.js";import{normalizeHostAttrKey as c}from"./utils/aria.js";import{isReactive as l}from"@vielzeug/ripple";var u=(e,t)=>{let r=t?.target??a(),i=[];if(e.attr)for(let[t,n]of Object.entries(e.attr)){let e=p(r,d(t),n);e&&i.push(e)}if(e.class&&i.push(h(r,e.class)),e.style)for(let[t,n]of Object.entries(e.style)){let e=m(r,t,n);e&&i.push(e)}if(e.on){let{target:a,...o}=t??{};for(let t of Object.keys(e.on)){let a=e.on[t];a&&i.push(n(r,t,a,o))}}let s=()=>{for(let e of i)e()};return o(s),s},d=c,f=(e,t)=>{if(typeof e==`function`)return s(()=>{t(e())});if(l(e))return s(()=>{t(e.value)});t(e)};function p(e,t,n){return f(n,n=>i(e,t,n))}function m(n,r,i){let a=e(r);if(!a)return;let o=!1;return f(i,e=>{let r=t(e);r?(o=!0,n.style.setProperty(a,r)):o&&n.style.removeProperty(a)})}function h(e,t){let n=typeof t==`function`?t:()=>Object.fromEntries([...r(t)].map(e=>[e,!0])),i=new Set;return s(()=>{let t=new Set;for(let[r,a]of Object.entries(n()))a&&(t.add(r),i.has(r)||e.classList.add(r));for(let n of i)t.has(n)||e.classList.remove(n);i=t})}export{u as bind};
|
|
2
2
|
//# sourceMappingURL=host-bind.js.map
|
package/dist/host-bind.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-bind.js","names":[],"sources":["../src/host-bind.ts"],"sourcesContent":["/**\n * Host element binding API: reactive attr, class, style, and event bindings\n * applied directly to the component's host element or any target element.\n */\n\nimport { isReactive } from '@vielzeug/ripple';\n\nimport { getHost, tryRegisterCleanup, watchEffect } from './runtime';\nimport { normalizeHostAttrKey } from './utils/aria';\nimport {
|
|
1
|
+
{"version":3,"file":"host-bind.js","names":[],"sources":["../src/host-bind.ts"],"sourcesContent":["/**\n * Host element binding API: reactive attr, class, style, and event bindings\n * applied directly to the component's host element or any target element.\n */\n\nimport { isReactive } from '@vielzeug/ripple';\n\nimport { getHost, tryRegisterCleanup, watchEffect } from './runtime';\nimport { normalizeHostAttrKey } from './utils/aria';\nimport {\n cssDeclarationName,\n cssDeclarationValue,\n listen,\n type MaybeReactive,\n resolveClassTokens,\n setAttr,\n} from './utils/dom';\n\n/**\n * Describes a reactive or static host binding value.\n */\nexport type HostBindingValue = MaybeReactive<string | number | boolean | null | undefined>;\n\n/**\n * Configuration for host attribute bindings.\n */\nexport type AttributeBindings = Record<string, HostBindingValue>;\n\ntype HostClassBindingValue = MaybeReactive<boolean>;\n// Bivariant callback allows consumers to use narrower event types.\ntype HostEventListener = { bivarianceHack(event: Event): void }['bivarianceHack'];\n\nexport type HostBindConfig = {\n attr?: AttributeBindings;\n class?: (() => Record<string, boolean>) | Record<string, HostClassBindingValue>;\n on?: Record<string, HostEventListener | undefined>;\n style?: Record<string, HostBindingValue>;\n};\n\nexport type BindOptions = AddEventListenerOptions & {\n /**\n * Target element to bind to. Defaults to the host element when called\n * via `bind()`. Pass an explicit element to bind to any other element\n * (e.g. a slotted trigger or an internally-referenced child element).\n * When a target is provided, cleanup is always auto-registered with the\n * component scope if one is active.\n */\n target?: Element;\n};\n\n/**\n * Apply reactive or static bindings to an element's attributes, classes, styles,\n * and events. Defaults to the current component's host element; pass\n * `options.target` to bind to any other element (e.g. a slotted trigger, an\n * internally-referenced child).\n */\nexport const bind = (config: HostBindConfig, options?: BindOptions): (() => void) => {\n const el = (options?.target as HTMLElement | undefined) ?? getHost();\n const disposers: Array<() => void> = [];\n\n if (config.attr) {\n for (const [key, value] of Object.entries(config.attr)) {\n const name = toHostAttr(key);\n const dispose = applyAttribute(el, name, value);\n\n if (dispose) disposers.push(dispose);\n }\n }\n\n if (config.class) {\n disposers.push(applyClassMap(el, config.class));\n }\n\n if (config.style) {\n for (const [key, value] of Object.entries(config.style)) {\n const dispose = applyStyle(el, key, value);\n\n if (dispose) disposers.push(dispose);\n }\n }\n\n if (config.on) {\n const { target: _t, ...listenerOptions } = options ?? {};\n\n for (const event of Object.keys(config.on) as Array<keyof typeof config.on>) {\n const listener = config.on[event];\n\n if (!listener) continue;\n\n disposers.push(listen(el, event as string, listener as EventListener, listenerOptions));\n }\n }\n\n const cleanup = (): void => {\n for (const dispose of disposers) dispose();\n };\n\n tryRegisterCleanup(cleanup);\n\n return cleanup;\n};\n\nconst toHostAttr = normalizeHostAttrKey;\n\nconst applyReactiveBinding = (\n value: HostBindingValue,\n updater: (next: string | number | boolean | null | undefined) => void,\n): (() => void) | undefined => {\n if (typeof value === 'function') {\n return watchEffect(() => {\n updater(value());\n return undefined;\n });\n }\n\n if (isReactive(value)) {\n return watchEffect(() => {\n updater(value.value);\n return undefined;\n });\n }\n\n updater(value);\n};\n\nfunction applyAttribute(host: HTMLElement, name: string, value: HostBindingValue): (() => void) | undefined {\n return applyReactiveBinding(value, (next) => setAttr(host, name, next));\n}\n\nfunction applyStyle(host: HTMLElement, name: string, value: HostBindingValue): (() => void) | undefined {\n const cssName = cssDeclarationName(name);\n\n if (!cssName) return;\n\n let owned = false;\n const setStyle = (v: string | number | boolean | null | undefined): void => {\n const declaration = cssDeclarationValue(v);\n\n if (declaration) {\n owned = true;\n host.style.setProperty(cssName, declaration);\n } else if (owned) host.style.removeProperty(cssName);\n };\n\n return applyReactiveBinding(value, setStyle);\n}\n\nfunction applyClassMap(\n host: HTMLElement,\n value: (() => Record<string, boolean>) | Record<string, HostClassBindingValue>,\n): () => void {\n const getMap =\n typeof value === 'function'\n ? value\n : (): Record<string, boolean> => Object.fromEntries([...resolveClassTokens(value)].map((cls) => [cls, true]));\n\n let prev = new Set<string>();\n\n const sub = watchEffect(() => {\n const next = new Set<string>();\n\n for (const [cls, active] of Object.entries(getMap())) {\n if (!active) continue;\n\n next.add(cls);\n\n if (!prev.has(cls)) host.classList.add(cls);\n }\n for (const cls of prev) {\n if (!next.has(cls)) host.classList.remove(cls);\n }\n prev = next;\n });\n\n return sub;\n}\n"],"mappings":"mTAwDA,IAAa,GAAQ,EAAwB,IAAwC,CACnF,IAAM,EAAM,GAAS,QAAsC,EAAQ,EAC7D,EAA+B,CAAC,EAEtC,GAAI,EAAO,KACT,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAAQ,EAAO,IAAI,EAAG,CAEtD,IAAM,EAAU,EAAe,EADlB,EAAW,CACW,EAAM,CAAK,EAE1C,GAAS,EAAU,KAAK,CAAO,CACrC,CAOF,GAJI,EAAO,OACT,EAAU,KAAK,EAAc,EAAI,EAAO,KAAK,CAAC,EAG5C,EAAO,MACT,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAAQ,EAAO,KAAK,EAAG,CACvD,IAAM,EAAU,EAAW,EAAI,EAAK,CAAK,EAErC,GAAS,EAAU,KAAK,CAAO,CACrC,CAGF,GAAI,EAAO,GAAI,CACb,GAAM,CAAE,OAAQ,EAAI,GAAG,GAAoB,GAAW,CAAC,EAEvD,IAAK,IAAM,KAAS,OAAO,KAAK,EAAO,EAAE,EAAoC,CAC3E,IAAM,EAAW,EAAO,GAAG,GAEtB,GAEL,EAAU,KAAK,EAAO,EAAI,EAAiB,EAA2B,CAAe,CAAC,CACxF,CACF,CAEA,IAAM,MAAsB,CAC1B,IAAK,IAAM,KAAW,EAAW,EAAQ,CAC3C,EAIA,OAFA,EAAmB,CAAO,EAEnB,CACT,EAEM,EAAa,EAEb,GACJ,EACA,IAC6B,CAC7B,GAAI,OAAO,GAAU,WACnB,OAAO,MAAkB,CACvB,EAAQ,EAAM,CAAC,CAEjB,CAAC,EAGH,GAAI,EAAW,CAAK,EAClB,OAAO,MAAkB,CACvB,EAAQ,EAAM,KAAK,CAErB,CAAC,EAGH,EAAQ,CAAK,CACf,EAEA,SAAS,EAAe,EAAmB,EAAc,EAAmD,CAC1G,OAAO,EAAqB,EAAQ,GAAS,EAAQ,EAAM,EAAM,CAAI,CAAC,CACxE,CAEA,SAAS,EAAW,EAAmB,EAAc,EAAmD,CACtG,IAAM,EAAU,EAAmB,CAAI,EAEvC,GAAI,CAAC,EAAS,OAEd,IAAI,EAAQ,GAUZ,OAAO,EAAqB,EATV,GAA0D,CAC1E,IAAM,EAAc,EAAoB,CAAC,EAErC,GACF,EAAQ,GACR,EAAK,MAAM,YAAY,EAAS,CAAW,GAClC,GAAO,EAAK,MAAM,eAAe,CAAO,CACrD,CAE2C,CAC7C,CAEA,SAAS,EACP,EACA,EACY,CACZ,IAAM,EACJ,OAAO,GAAU,WACb,MAC+B,OAAO,YAAY,CAAC,GAAG,EAAmB,CAAK,CAAC,CAAC,CAAC,IAAK,GAAQ,CAAC,EAAK,EAAI,CAAC,CAAC,EAE5G,EAAO,IAAI,IAkBf,OAhBY,MAAkB,CAC5B,IAAM,EAAO,IAAI,IAEjB,IAAK,GAAM,CAAC,EAAK,KAAW,OAAO,QAAQ,EAAO,CAAC,EAC5C,IAEL,EAAK,IAAI,CAAG,EAEP,EAAK,IAAI,CAAG,GAAG,EAAK,UAAU,IAAI,CAAG,GAE5C,IAAK,IAAM,KAAO,EACX,EAAK,IAAI,CAAG,GAAG,EAAK,UAAU,OAAO,CAAG,EAE/C,EAAO,CACT,CAEO,CACT"}
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./errors.cjs"),t=require("./runtime.cjs"),n=require("./context.cjs"),r=require("./props.cjs"),i=require("./utils/css.cjs"),a=require("./define.cjs"),o=require("./directives/classMap.cjs"),s=require("./template/result.cjs"),c=require("./directives/each.cjs"),l=require("./directives/live.cjs"),u=require("./directives/
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./errors.cjs"),t=require("./runtime.cjs"),n=require("./context.cjs"),r=require("./props.cjs"),i=require("./utils/css.cjs"),a=require("./define.cjs"),o=require("./directives/classMap.cjs"),s=require("./template/result.cjs"),c=require("./directives/each.cjs"),l=require("./directives/live.cjs"),u=require("./directives/model.cjs"),d=require("./directives/styleMap.cjs"),f=require("./directives/unsafe-html.cjs"),p=require("./directives/when.cjs"),m=require("./forms/field.cjs"),h=require("./host-bind.cjs"),g=require("./slots.cjs"),_=require("./template/instantiator.cjs"),v=require("./utils/emit.cjs"),y=require("./utils/id.cjs");exports.OreApiError=e.OreApiError,exports.OreError=e.OreError,exports.OreInternalError=e.OreInternalError,exports.OreLifecycleError=e.OreLifecycleError,exports.bind=h.bind,exports.classMap=o.classMap,exports.createContext=n.createContext,exports.createId=y.createId,exports.css=i.css,exports.define=a.define,exports.each=c.each,exports.getHost=t.getHost,exports.html=_.html,exports.inject=n.inject,exports.injectStrict=n.injectStrict,exports.live=l.live,exports.model=u.model,exports.onCleanup=t.onCleanup,exports.onElement=t.onElement,exports.onEvent=t.onEvent,exports.onFormReset=t.onFormReset,exports.onMounted=t.onMounted,exports.prop=r.prop,exports.provide=n.provide,exports.ref=s.ref,exports.styleMap=d.styleMap,exports.unsafeHtml=f.unsafeHtml,exports.useEmit=v.useEmit,exports.useField=m.useField,exports.useSlots=g.useSlots,exports.watchEffect=t.watchEffect,exports.when=p.when;
|
package/dist/index.d.ts
CHANGED
|
@@ -4,11 +4,12 @@ export { define } from './define';
|
|
|
4
4
|
export { classMap } from './directives/classMap';
|
|
5
5
|
export { each } from './directives/each';
|
|
6
6
|
export { type LiveBinding, live } from './directives/live';
|
|
7
|
+
export { type ModelOptions, model } from './directives/model';
|
|
7
8
|
export { styleMap } from './directives/styleMap';
|
|
8
9
|
export { unsafeHtml } from './directives/unsafe-html';
|
|
9
10
|
export { when } from './directives/when';
|
|
10
11
|
export { OreApiError, OreError, type OreErrorPhase, OreInternalError, OreLifecycleError } from './errors';
|
|
11
|
-
export { type FormFieldHandle, type FormFieldOptions, useField } from './forms/field';
|
|
12
|
+
export { type FormFieldHandle, type FormFieldOptions, type FormFieldValidity, useField } from './forms/field';
|
|
12
13
|
export { type AttributeBindings, type BindOptions, bind, type HostBindConfig, type HostBindingValue, } from './host-bind';
|
|
13
14
|
export type { InferProps, PropDef, PropInputDefs, PropsDef } from './props';
|
|
14
15
|
export { prop } from './props';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC5F,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAOlC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,KAAK,WAAW,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC1G,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC5F,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAOlC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,KAAK,WAAW,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC1G,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9G,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,IAAI,EACJ,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,EACL,OAAO,EACP,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,SAAS,EACT,SAAS,EACT,OAAO,EACP,WAAW,EACX,SAAS,EACT,WAAW,GACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,GAAG,EAAE,KAAK,WAAW,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAE,KAAK,SAAS,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{OreApiError as e,OreError as t,OreInternalError as n,OreLifecycleError as r}from"./errors.js";import{getHost as i,onCleanup as a,onElement as o,onEvent as s,onFormReset as c,onMounted as l,watchEffect as u}from"./runtime.js";import{createContext as d,inject as f,injectStrict as p,provide as m}from"./context.js";import{prop as h}from"./props.js";import{css as g}from"./utils/css.js";import{define as _}from"./define.js";import{classMap as v}from"./directives/classMap.js";import{ref as y}from"./template/result.js";import{each as b}from"./directives/each.js";import{live as x}from"./directives/live.js";import{
|
|
1
|
+
import{OreApiError as e,OreError as t,OreInternalError as n,OreLifecycleError as r}from"./errors.js";import{getHost as i,onCleanup as a,onElement as o,onEvent as s,onFormReset as c,onMounted as l,watchEffect as u}from"./runtime.js";import{createContext as d,inject as f,injectStrict as p,provide as m}from"./context.js";import{prop as h}from"./props.js";import{css as g}from"./utils/css.js";import{define as _}from"./define.js";import{classMap as v}from"./directives/classMap.js";import{ref as y}from"./template/result.js";import{each as b}from"./directives/each.js";import{live as x}from"./directives/live.js";import{model as S}from"./directives/model.js";import{styleMap as C}from"./directives/styleMap.js";import{unsafeHtml as w}from"./directives/unsafe-html.js";import{when as T}from"./directives/when.js";import{useField as E}from"./forms/field.js";import{bind as D}from"./host-bind.js";import{useSlots as O}from"./slots.js";import{html as k}from"./template/instantiator.js";import{useEmit as A}from"./utils/emit.js";import{createId as j}from"./utils/id.js";export{e as OreApiError,t as OreError,n as OreInternalError,r as OreLifecycleError,D as bind,v as classMap,d as createContext,j as createId,g as css,_ as define,b as each,i as getHost,k as html,f as inject,p as injectStrict,x as live,S as model,a as onCleanup,o as onElement,s as onEvent,c as onFormReset,l as onMounted,h as prop,m as provide,y as ref,C as styleMap,w as unsafeHtml,A as useEmit,E as useField,O as useSlots,u as watchEffect,T as when};
|
package/dist/ore.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@vielzeug/ripple");var OreError=class extends Error{constructor(e,t){super(e,t),this.name=new.target.name,Object.setPrototypeOf(this,new.target.prototype)}},OreApiError=class extends OreError{},OreInternalError=class extends OreError{},OreLifecycleError=class extends OreError{component;phase;constructor(e,t){super(e,{cause:t.cause}),this.component=t.component,this.phase=t.phase}};function reportRuntimeError(e,t){`${e.component}${e.phase}`,e.cause,t.dispatchEvent(new CustomEvent(`ore:error`,{bubbles:!0,composed:!0,detail:e}))}var t={asyncSetupUnsupported:`setup() must return an HTMLResult or null; use reactive state for asynchronous work`,defineDuplicate:e=>`define('${e}') called twice: custom element already registered`,defineFieldRequiresFormAssociated:e=>`useField() requires define('${e}', { formAssociated: true })`,defineRequiresTag:`define() requires a tag name`,eachDuplicateKey:(e,t)=>`each() received duplicate key "${e}" at index ${t}`,
|
|
2
|
-
`)}`};function invariant(e,n){if(!e)throw new OreInternalError(t.invariantViolated(n))}var resolveMaybeReactive=t=>typeof t==`function`?t():(0,e.isReactive)(t)?t.value:t,n=/[;{}]/g,sanitizeCssToken=e=>e.replace(n,``),runAll=e=>{for(let t=e.length-1;t>=0;t--)e[t]?.()},removeNodes=e=>{for(let t of e)t.remove()},createReplaceableSlot=()=>{let e=[],t=[];return{clear(){runAll(t),removeNodes(e),t=[],e=[]},get nodes(){return e},registerCleanup(e){t.push(e)},setNodes(t){e=t}}},r=new Set([`action`,`cite`,`codebase`,`data`,`formaction`,`href`,`manifest`,`ping`,`poster`,`src`,`xlink:href`]),i=/^\s*(?:(?:javascript|vbscript|blob):|data:(?:[^,]*\/(?:html|svg\+xml)|application\/(?:xhtml|xml)))/i,setAttr=(e,t,n)=>{let a=t.toLowerCase();if(/^on[a-z]/i.test(t)){`${t}${t.slice(2)}`,e.removeAttribute(t);return}if(a===`srcdoc`){e.removeAttribute(t);return}if(n==null||n===!1){e.removeAttribute(t);return}let o=n===!0?`true`:String(n);if(r.has(a)&&i.test(o)){`${t}`,e.removeAttribute(t);return}e.setAttribute(t,o)},listen=(e,n,r,i)=>{if(!e)return t.listenNullTarget(n),()=>{};let a=r;return e.addEventListener(n,a,i),()=>e.removeEventListener(n,a,i)},toKebab=e=>e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`),isStructuredValue=e=>Array.isArray(e)||typeof e==`object`&&!!e,a=null,createRuntimeContext=e=>({element:e,formResetCallbacks:[],mountCallbacks:[]}),o=0,beginPendingWork=()=>{o++;let e=!1;return()=>{e||(e=!0,o--)}},runWithContext=(e,t)=>{let n=a;a=e;try{return t()}finally{a=n}},requireSetupContext=e=>{if(a)return a;throw new OreApiError(`${e}: ${t.lifecycleOutsideSetup}`)},getHost=()=>requireSetupContext(`getHost`).element,tryRegisterCleanup=t=>a?((0,e.effect)(()=>t),!0):!1,onCleanup=e=>{if(!tryRegisterCleanup(e))throw new OreApiError(`onCleanup: ${t.lifecycleOutsideSetup}`)},onMounted=e=>{requireSetupContext(`onMounted`).mountCallbacks.push(e)},onFormReset=e=>{requireSetupContext(`onFormReset`).formResetCallbacks.push(e)},watchEffect=t=>{let n=(0,e.effect)(t),stop=()=>n.dispose();return tryRegisterCleanup(stop),stop};function onEvent(e,t,n,r){if(requireSetupContext(`onEvent`),!e)return;let i=listen(e,t,n,r);tryRegisterCleanup(i)||i()}var onElement=(e,t)=>watchEffect(()=>{let n=e.value;if(n)return t(n)}),s=new WeakMap,buildAncestorChain=e=>{let t=[],n=e;for(;n;)n instanceof HTMLElement&&t.push(n),n=n.parentNode??(n instanceof ShadowRoot?n.host:null);return t},provideOnElement=(e,t,n)=>{let r=s.get(e)??new Map;r.has(t)&&`${e.localName}`,r.set(t,n),s.set(e,r)},provide=(e,t)=>{let n=requireSetupContext(`provide`).element;provideOnElement(n,e,t),onCleanup(()=>{let t=s.get(n);t&&(t.delete(e),t.size===0&&s.delete(n))})},c=Symbol(`inject.not_found`),l=new WeakMap,walkAndFind=(e,t)=>{let n=buildAncestorChain(e);for(let e of n){let n=s.get(e);if(n?.has(t))return n.get(t)}return c},lookup=(e,t)=>{let n=l.get(e);n||(n=new Map,l.set(e,n));let r=t;return n.has(r)||n.set(r,walkAndFind(e.element,t)),n.get(r)};function inject(e,...t){let n=lookup(requireSetupContext(`inject`),e);return n===c?t.length>0?t[0]:void 0:n}var injectStrict=e=>{let n=requireSetupContext(`injectStrict`),r=lookup(n,e);if(r!==c)return r;throw new OreApiError(t.injectStrictFailed(String(e),n.element.localName))};function createContext(e){return Symbol(e)}function _jsOnlyProp(e){return{default:e,parse:()=>e,reflect:!1}}var u={bool(e){return{default:e??!1,parse:e=>e!==null&&e!==`false`,reflect:!0}},data(e){return _jsOnlyProp(e)},json(e){return{default:e,parse:t=>{if(t==null||t===``)return e;try{return JSON.parse(t)}catch{return e}},reflect:!1}},number(e){let t=e===void 0?void 0:e;return{default:t,parse:e=>{if(e==null)return t;let n=Number(e);return Number.isNaN(n)?(`${e}${String(t)}`,t):n},reflect:!0}},oneOf(e,t){return{default:t,parse:n=>n!=null&&e.includes(n)?n:t,reflect:!0}},string(e){let t=e===void 0?void 0:e;return{default:t,parse:e=>e??t,reflect:!0}}},isPropDef=e=>typeof e==`object`&&!!e&&`default`in e&&`parse`in e;function normalizePropDefinition(e,n){if(!isPropDef(e))throw new OreApiError(`Prop "${n}" must use a prop.* helper (string/number/bool/json/oneOf). Received: ${typeof e}`);let r=e;if(!r.parse)throw new OreApiError(`Prop "${n}" must have a parse function. Use prop.* helpers.`);let i=r.reflect??!1;if(i&&isStructuredValue(r.default))throw new OreApiError(`Prop "${n}": ${t.propInvalidReflect}`);return{...r,reflect:i}}function validatePropDefs(e){let t=[];for(let[n,r]of Object.entries(e))try{normalizePropDefinition(r,n)}catch(e){t.push(e instanceof Error?e.message:String(e))}return t}var d=new WeakMap,getPropMeta=(e,t)=>d.get(e)?.get(t),coerceIncoming=(e,t)=>typeof e==`string`?t(e):e,registerProp=(t,n,r,i)=>{let a=d.get(t);a||(a=new Map,d.set(t,a));let{default:o,parse:s,reflect:c=!1}=i,l=(0,e.signal)(o),u=a.get(r),f=Object.hasOwn(t,n),p=f?t[n]:void 0,m={parse:s,reflect:c,signal:l};return u?l.value=u.signal.peek():f?(delete t[n],l.value=coerceIncoming(p,s)):t.hasAttribute(r)&&(l.value=s(t.getAttribute(r))),a.set(r,m),Object.defineProperty(t,n,{configurable:!0,enumerable:!0,get:()=>l.value,set:e=>{l.value=coerceIncoming(e,s)}}),c&&watchEffect(()=>{let e=l.value;e==null?t.removeAttribute(r):typeof e==`boolean`?t.toggleAttribute(r,e):setAttr(t,r,e)}),l};function createProps(e,t){let n={};for(let[r,i]of Object.entries(t))n[r]=registerProp(e,r,toKebab(r),i);return n}var makeBrand=e=>{let t=Symbol.for(e),stamp=e=>Object.assign(e,{[t]:!0}),is=e=>typeof e==`object`&&!!e&&t in e;return{is,stamp}},f=makeBrand(`ore:css-result`),p=f.is,cssResultToString=function(){return this.content},css=(e,...t)=>{let n=``;for(let r=0;r<e.length;r++)if(n+=e[r],r<t.length){let e=t[r];n+=p(e)?e.content:String(e)}return f.stamp({content:n.trim(),toString:cssResultToString})},m=new Map,h=256,loadStylesheet=e=>{if(e instanceof CSSStyleSheet)return e;let t=typeof e==`string`?e:e.content,n=m.get(t);if(n)return m.delete(t),m.set(t,n),n;let r=new CSSStyleSheet;try{r.replaceSync(t)}catch{return r}if(m.set(t,r),m.size>h){let e=m.keys().next().value;e!==void 0&&m.delete(e)}return r},g={SETUP_DONE:`setup_done`,SETUP_RUNNING:`setup_running`,UNINITIALIZED:`uninitialized`,UNMOUNTED:`unmounted`},createComponentState=()=>({formResetCallbacks:[],generation:0,mountCallbacks:[],phase:g.UNINITIALIZED,scope:(0,e.createScope)(),templateResult:null}),isPromiseLike=e=>(typeof e==`object`||typeof e==`function`)&&e!==null&&`then`in e&&typeof e.then==`function`,BaseElement=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=createComponentState()}connectedCallback(){(0,e.untrack)(()=>{this._component.phase===g.UNINITIALIZED&&this._runSetup(),this._init()})}attributeChangedCallback(t,n,r){if(n===r)return;let i=getPropMeta(this,t);if(!i)return;let a=i.parse(r);Object.is((0,e.untrack)(()=>i.signal.value),a)||(i.signal.value=a)}disconnectedCallback(){this._component.generation++,this._component.phase=g.UNMOUNTED,this._resetSetupState()}_resetSetupState(){this._component.scope.dispose(),this._component.formResetCallbacks=[],this._component.mountCallbacks=[],this._component.phase=g.UNINITIALIZED,this._component.scope=(0,e.createScope)(),this._component.templateResult=null}formResetCallback(){for(let e of this._component.formResetCallbacks)try{e()}catch(e){this._reportLifecycleError(e,`form-reset`)}}_reportLifecycleError(e,t){let n=e instanceof Error?e:Error(String(e));reportRuntimeError(new OreLifecycleError(`<${this.localName}> failed during ${this._component.phase} (${t})`,{cause:n,component:this.localName,phase:t}),this)}_runSetup(){this._component.phase=g.SETUP_RUNNING;let e=this.constructor._definition,n=this.constructor._normalizedPropDefs,r=createRuntimeContext(this);try{let i;if(this._component.scope.run(()=>{i=runWithContext(r,()=>{let t=n?createProps(this,n):{};return e.setup(t)})}),this._component.mountCallbacks.push(...r.mountCallbacks),this._component.formResetCallbacks.push(...r.formResetCallbacks),isPromiseLike(i))throw new OreApiError(t.asyncSetupUnsupported);this._component.templateResult=i??null,this._component.phase=g.SETUP_DONE}catch(e){throw this._reportLifecycleError(e,`setup`),this._resetSetupState(),e}}_isStale(e){return this._component.generation!==e||!this.isConnected}_applyResult(e){if(!e)return;let t=this.shadowRoot??this,n=createRuntimeContext(this);t.replaceChildren(),this._component.scope.run(()=>{runWithContext(n,()=>{e.mount(t,null,onCleanup)})})}_init(){this._applyStyles(),this._mountTemplate(),this._component.phase===g.SETUP_DONE&&this._scheduleMountCallbacks()}_applyStyles(){let e=this.constructor._definition;this.shadowRoot&&e?.styles?.length&&(this.shadowRoot.adoptedStyleSheets=e.styles.map(loadStylesheet))}_mountTemplate(){let e=this._component.templateResult;e&&this._applyResult(e)}_scheduleMountCallbacks(){if(this._component.mountCallbacks.length===0)return;let e=this._component.generation,t=beginPendingWork();queueMicrotask(()=>{try{if(this._isStale(e))return;let t=this._component.mountCallbacks.splice(0);for(let e=0;e<t.length;e++){let n=t[e];try{let e=createRuntimeContext(this);this._component.scope.run(()=>{runWithContext(e,()=>{let e=n();typeof e==`function`&&onCleanup(e)})}),e.mountCallbacks.length>0&&t.push(...e.mountCallbacks),e.formResetCallbacks.length>0&&this._component.formResetCallbacks.push(...e.formResetCallbacks)}catch(e){this._reportLifecycleError(e,`mounted`)}}}finally{t()}})}};function createComponentClass(e,n){let{props:r}=n,i=(()=>{if(!r)return;let n=validatePropDefs(r);if(n.length>0)throw new OreApiError(t.validationFailed(e,n));let i={};for(let[e,t]of Object.entries(r))i[e]=normalizePropDefinition(t,e);return i})(),a=i?Object.keys(i).map(toKebab):[],ComponentClass=class extends BaseElement{static _definition=n;static _normalizedPropDefs=i;static formAssociated=n.formAssociated??!1;static observedAttributes=a};return ComponentClass}function define(e,n){if(!e)throw new OreApiError(t.defineRequiresTag);if(customElements.get(e))throw new OreApiError(t.defineDuplicate(e));let r=createComponentClass(e,n);return Object.defineProperty(r,"name",{value:e}),customElements.define(e,r),r}var classMap=t=>(0,e.computed)(()=>Object.entries(t).filter(([,e])=>resolveMaybeReactive(e)).map(([e])=>e.replace(/\s+/g,``)).filter(Boolean).join(` `));function ref(){return(0,e.signal)(null)}var _=makeBrand(`ore:directive`),createDirectiveResult=e=>_.stamp({mount:e}),v=_.is,y=makeBrand(`ore:html-result`),b=y.is;function createHtmlResult(e,t){let mount=(n,r,i)=>{let a=Array.from(e.childNodes);return n.insertBefore(e,r),t(i),a};return y.stamp({apply:t,fragment:e,mount})}var createItem=(t,n,r,i,a)=>{let o=(0,e.signal)(t),s=(0,e.signal)(n),c=(0,e.createScope)(),l=[],u=[];return c.run(()=>{u=r(o,s).mount(i,a,e=>l.push(e))}),{cleanups:l,data:o,index:s,nodes:u,scope:c}},removeItem=e=>{e.scope.dispose(),runAll(e.cleanups),removeNodes(e.nodes)},reconcileItems=(t,n,r,i,a,o)=>{let s=new Set(r);for(let[e,n]of t)s.has(e)||(removeItem(n),t.delete(e));let c=[];for(let s=0;s<n.length;s++){let l=r[s],u=t.get(l);if(u)(0,e.batch)(()=>{u.data.value=n[s],u.index.value=s}),c.push(u);else{let r=(0,e.untrack)(()=>createItem(n[s],s,i,a,o));t.set(l,r),c.push(r)}}let l=o;for(let e=c.length-1;e>=0;e--){let t=c[e],n=t.nodes[0],r=t.nodes[t.nodes.length-1];if(n&&r!==l.previousSibling)for(let e of t.nodes)a.insertBefore(e,l);l=n??l}return c},collectKeys=(e,n)=>{let r=[],i=new Set;for(let a=0;a<e.length;a++){let o=n(e[a],a);if(i.has(o))throw new OreApiError(t.eachDuplicateKey(String(o),a));i.add(o),r.push(o)}return r},reportEachError=(e,t)=>{let n=e instanceof Error?e:Error(String(e));reportRuntimeError(new OreLifecycleError(`each() failed to reconcile a list update: ${n.message}`,{cause:n,component:`each()`,phase:`each-reconcile`}),t)};function each(t,n,r,i){let a=Array.isArray(t)?(0,e.signal)(t):typeof t==`function`?(0,e.computed)(t):t;return createDirectiveResult((t,o)=>{let s=t.parentNode;invariant(s,`each() anchor comment has no parent node`);let c=document.createComment(`each/end`);s.insertBefore(c,t.nextSibling);let l=new Map,u=[],d=null,f=[],mountFallback=()=>{i&&(d=i().mount(s,c,e=>f.push(e)))},clearFallback=()=>{d&&(runAll(f),removeNodes(d),d=null,f=[])},p=(0,e.effect)(()=>{let i=a.value??[];if(i.length===0){for(let t of(0,e.untrack)(()=>u))removeItem(t);l=new Map,u=[],d||(0,e.untrack)(mountFallback);return}let o;try{o=(0,e.untrack)(()=>collectKeys(i,n))}catch(e){reportEachError(e,t);return}clearFallback();try{u=(0,e.untrack)(()=>reconcileItems(l,i,o,r,s,c))}catch(e){reportEachError(e,t);for(let e of l.values())removeItem(e);l=new Map,u=[]}});o(()=>p.dispose()),o(()=>{clearFallback();for(let e of u)removeItem(e);c.remove()})})}var x=makeBrand(`ore:live`),live=e=>x.stamp({source:e}),S=x.is,toStyleValue=e=>{let t=resolveMaybeReactive(e);return t==null||t===!1?``:sanitizeCssToken(String(t))},styleMap=t=>(0,e.computed)(()=>{let e=[];for(let[n,r]of Object.entries(t)){let t=toStyleValue(r);if(!t)continue;let i=sanitizeCssToken(toKebab(n));i&&e.push(`${i}:${t}`)}return e.join(`;`)}),parseHtml=(e,t,n)=>{let r=document.createElement(`template`);r.innerHTML=e;let i=Array.from(r.content.cloneNode(!0).childNodes);for(let e of i)t.insertBefore(e,n);return i};function unsafeHtml(t){let n=typeof t==`function`?(0,e.computed)(t):(0,e.isReactive)(t)?t:null;return createDirectiveResult((r,i)=>{let a=r.parentNode;invariant(a,`unsafeHtml() anchor comment has no parent node`);let o=document.createComment(`unsafe-html/end`);if(a.insertBefore(o,r.nextSibling),n){let t=createReplaceableSlot(),r=(0,e.effect)(()=>{t.clear(),t.setNodes(parseHtml(n.value,a,o))});i(()=>r.dispose()),i(()=>{t.clear(),o.remove()})}else parseHtml(t,a,o),i(()=>o.remove())})}var C=`when() anchor comment has no parent node`;function when(t,n,r){return typeof t!=`function`&&!(0,e.isReactive)(t)?createDirectiveResult((e,i)=>{let a=t?n():r?r():null;if(!a||!b(a))return;let o=e.parentNode;invariant(o,C);let s=a.mount(o,e,i);i(()=>removeNodes(s))}):createDirectiveResult((i,a)=>{let o=(typeof t==`function`?(0,e.computed)(t):null)??t,s=i.parentNode;invariant(s,C);let c=document.createComment(`when/end`);s.insertBefore(c,i.nextSibling);let l=createReplaceableSlot(),u=(0,e.effect)(()=>{let t=o.value;l.clear();let i=t?n():r?r():null;i&&b(i)&&l.setNodes((0,e.untrack)(()=>i.mount(s,c,l.registerCleanup)))});a(()=>u.dispose()),a(()=>{l.clear(),c.remove()})})}var w=new WeakMap,T=new WeakSet,useField=e=>{let n=getHost();if(!n.constructor.formAssociated)throw new OreApiError(t.defineFieldRequiresFormAssociated(n.localName));if(T.has(n))throw new OreApiError(t.useFieldAlreadyCalled(n.localName));let r=w.get(n)??n.attachInternals();w.set(n,r),T.add(n),onCleanup(()=>T.delete(n));let i=e.toFormValue??(t=>t==null?e.emptyStringForNull?``:null:t instanceof File||t instanceof FormData?t:String(t));watchEffect(()=>{r.setFormValue(i(e.value.value))});let a=e.disabled;if(a&&`states`in r){let e=r.states;watchEffect(()=>{a.value?e.add(`disabled`):e.delete(`disabled`)})}e.validity&&watchEffect(()=>{let t=e.validity?.value??{},n=Object.values(t).some(Boolean),i=e.validationMessage?.value??``;if(n&&!i){r.setValidity(t,`Invalid value.`);return}r.setValidity(t,i)}),e.onReset&&onFormReset(e.onReset);let checkValidity=()=>r.checkValidity(),reportValidity=()=>r.reportValidity(),setCustomValidity=e=>e?r.setValidity({customError:!0},e):r.setValidity({});return{checkValidity,internals:r,reportValidity,setCustomValidity}},normalizeHostAttrKey=e=>e===`role`||e.startsWith(`aria-`)?e:e.startsWith(`aria`)?`aria-${e.slice(4).toLowerCase()}`:e,bind=(e,t)=>{let n=t?.target??getHost(),r=[];if(e.attr)for(let[t,i]of Object.entries(e.attr)){let e=applyAttribute(n,E(t),i);e&&r.push(e)}if(e.class&&r.push(applyClassMap(n,e.class)),e.style)for(let[t,i]of Object.entries(e.style)){let e=applyStyle(n,t,i);e&&r.push(e)}if(e.on){let{target:i,...a}=t??{};for(let t of Object.keys(e.on)){let i=e.on[t];i&&r.push(listen(n,t,i,a))}}let cleanup=()=>{for(let e of r)e()};return tryRegisterCleanup(cleanup),cleanup},E=normalizeHostAttrKey,applyReactiveBinding=(t,n)=>{if(typeof t==`function`)return watchEffect(()=>{n(t())});if((0,e.isReactive)(t))return watchEffect(()=>{n(t.value)});n(t)};function applyAttribute(e,t,n){return applyReactiveBinding(n,n=>setAttr(e,t,n))}function applyStyle(e,t,n){let r=sanitizeCssToken(t.startsWith(`--`)?t:toKebab(t));if(!r)return;let i=!1,setStyle=t=>{t!=null&&t!==``?(i=!0,e.style.setProperty(r,sanitizeCssToken(String(t)))):i&&e.style.removeProperty(r)};return applyReactiveBinding(n,setStyle)}function applyClassMap(e,t){let n=typeof t==`function`?t:()=>{let e={};for(let[n,r]of Object.entries(t))e[n]=resolveMaybeReactive(r);return e},r=new Set;return watchEffect(()=>{let t=new Set;for(let[i,a]of Object.entries(n()))a&&(t.add(i),r.has(i)||e.classList.add(i));for(let n of r)t.has(n)||e.classList.remove(n);r=t})}var D=`default`,normalizeSlotName=e=>e||D,createSlots=t=>{let n=new Map,r=new Map,i=new Map,ensureSlotEntry=t=>{let r=n.get(t);return r||(r={elements:(0,e.signal)([]),presence:(0,e.signal)(!1)},n.set(t,r)),r},areElementsEqual=(e,t)=>{if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0},recomputeSlot=e=>{let t=normalizeSlotName(e),n=r.get(t),i=[];if(n)for(let e of n)i.push(...e.assignedElements({flatten:!0}));let a=ensureSlotEntry(t);areElementsEqual(a.elements.value,i)||(a.elements.value=i);let o=i.length>0;a.presence.value!==o&&(a.presence.value=o)},bindSlot=e=>{if(i.has(e))return;let t=normalizeSlotName(e.getAttribute(`name`)),n=r.get(t)??new Set;n.add(e),r.set(t,n);let onChange=()=>recomputeSlot(t);e.addEventListener(`slotchange`,onChange),i.set(e,()=>{e.removeEventListener(`slotchange`,onChange)}),recomputeSlot(t)},unbindSlot=e=>{let t=i.get(e);if(!t)return;t(),i.delete(e);let n=normalizeSlotName(e.getAttribute(`name`)),a=r.get(n);a&&(a.delete(e),a.size===0&&r.delete(n)),recomputeSlot(n)},bindAllSlots=()=>{t.shadowRoot?.querySelectorAll(`slot`).forEach(e=>{bindSlot(e)})},recomputeAllSlots=()=>{for(let e of r.keys())recomputeSlot(e)},a=null,initSlots=()=>{bindAllSlots(),recomputeAllSlots(),!a&&t.shadowRoot&&(a=new MutationObserver(e=>{for(let t of e)for(let e of t.removedNodes)e instanceof HTMLSlotElement&&unbindSlot(e);bindAllSlots(),i.size>0&&recomputeAllSlots()}),a.observe(t.shadowRoot,{childList:!0,subtree:!0}))};return onMounted(initSlots),onCleanup(()=>{a?.disconnect(),a=null;for(let e of i.values())e();i.clear(),r.clear(),n.clear(),O.delete(t)}),{elements:e=>ensureSlotEntry(normalizeSlotName(e)).elements,has:e=>ensureSlotEntry(normalizeSlotName(e)).presence}},O=new WeakMap,useSlots=()=>{let e=requireSetupContext(`useSlots`),t=O.get(e.element);return t||(t=createSlots(e.element),O.set(e.element,t)),t},signalEffect=(t,n,r)=>{let i=(0,e.effect)(()=>{n(t.value)});r(()=>i.dispose())},isNativeFormInput=e=>e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement,isCheckableInput=e=>e instanceof HTMLInputElement&&(e.type===`checkbox`||e.type===`radio`),syncFormControl=(e,t,n,r={last:void 0})=>{let i=isCheckableInput(e),a=i?!!t:t==null?``:String(t),o=i?e.checked:e.value;(!n||r.last===void 0||Object.is(o,r.last)||Object.is(o,a))&&(i?e.checked=a:e.value=a,n&&(r.last=a))},syncRegisteredProp=(t,n,r,i)=>{let a=isStructuredValue(i)?i:n.parse(r.mode===`bool`?i?``:null:i==null||i===!1?null:String(i));if(Object.is((0,e.untrack)(()=>n.signal.value),a)||(n.signal.value=a),!n.reflect){if(isStructuredValue(i))return;r.mode===`bool`?t.toggleAttribute(r.name,!!i):setAttr(t,r.name,i)}},applyAttrBinding=(t,n)=>{let{el:r,mode:i,name:a,propMeta:o}=t,s={last:void 0},update=n=>{if(o){syncRegisteredProp(r,o,t,n);return}if(!(0,e.isReactive)(n)&&isStructuredValue(n)){a!==`__proto__`&&a!==`constructor`&&a!==`prototype`&&(r[a]=n);return}if(a===`value`&&isNativeFormInput(r)||a===`checked`&&r instanceof HTMLInputElement){syncFormControl(r,n,t.live,s);return}i===`bool`?r.toggleAttribute(a,!!n):setAttr(r,a,n)};`signal`in t?signalEffect(t.signal,update,n):update(t.value)},applyEventBinding=(e,t)=>{t(listen(e.el,e.name,e.handler))},applyRefBinding=(e,t)=>{let{el:n,ref:r}=e;if(typeof r==`function`){r(n),t(()=>r(null));return}r.value=n,t(()=>{r.value=null})},insertHtmlValues=(e,t,n)=>{let r=[],i=t.parentNode;invariant(i,`html binding anchor has no parent node`);for(let a of e)if(b(a)){let e=Array.from(a.fragment.childNodes);i.insertBefore(a.fragment,t),a.apply(n),r.push(...e)}else if(a!=null&&a!==!1){let e=document.createTextNode(String(a));i.insertBefore(e,t),r.push(e)}return r},applyHtmlBinding=(t,n)=>{let{anchor:r,signal:i}=t,a=createReplaceableSlot(),o=(0,e.effect)(()=>{let t=i.value;a.clear(),t!=null&&t.length!==0&&(0,e.untrack)(()=>{a.setNodes(insertHtmlValues(t,r,a.registerCleanup))})});n(()=>{o.dispose(),a.clear()})},applyDirectiveBinding=(e,t)=>{e.directive.mount(e.anchor,t)},applyBinding=(e,t)=>{switch(e.type){case`attr`:applyAttrBinding(e,t);break;case`directive`:applyDirectiveBinding(e,t);break;case`event`:applyEventBinding(e,t);break;case`html`:applyHtmlBinding(e,t);break;case`ref`:applyRefBinding(e,t)}},createAttrBindingFromValue=(t,n,r,i)=>{let a=getPropMeta(t,r);return S(i)?{el:t,live:!0,mode:n,name:r,propMeta:a,signal:i.source,type:`attr`}:typeof i==`function`?{el:t,mode:n,name:r,propMeta:a,signal:(0,e.computed)(i),type:`attr`}:(0,e.isReactive)(i)?{el:t,mode:n,name:r,propMeta:a,signal:i,type:`attr`}:{el:t,mode:n,name:r,propMeta:a,type:`attr`,value:i}},resolveStaticText=e=>e==null?``:String(e),k={ATTR:`attr`,BOOL_ATTR:`boolAttr`,EVENT:`event`,NODE:`node`,REF:`ref`},A=/\s+@([a-zA-Z_][-a-zA-Z0-9_.-]*)\s*=\s*["']?$/,j=/\s+ref\s*=\s*["']?$/,M=/\s+\?([a-zA-Z_][-a-zA-Z0-9_]*)\s*=\s*["']?$/,N=/\s+([a-zA-Z_][-a-zA-Z0-9_]*)\s*=\s*["']?$/,detectSlot=e=>{let n;if(n=A.exec(e)){let r=e.slice(0,-n[0].length),[i,...a]=n[1].split(`.`);if(a.length>0)throw new OreApiError(t.eventModifiersUnsupported(n[1]));return{kind:k.EVENT,name:i,prefix:r}}if(n=j.exec(e))return{kind:k.REF,prefix:e.slice(0,-n[0].length)};if(n=M.exec(e))return{kind:k.BOOL_ATTR,name:n[1],prefix:e.slice(0,-n[0].length)};if(n=N.exec(e))return{kind:k.ATTR,name:n[1],prefix:e.slice(0,-n[0].length)};let r=e.lastIndexOf(`<`);if(r>e.lastIndexOf(`>`)&&e[r+1]!==`/`)throw new OreApiError(t.templateInterpolationInTag);return{kind:k.NODE,prefix:e}},P=new WeakMap,F=/[@?]?[a-zA-Z_][-a-zA-Z0-9_.]*\s*=\s*$/,normalizeTemplateStrings=e=>{let t=Array.from(e),n=!1;for(let e=0;e<t.length-1;e++){let r=t[e],i=r[r.length-1];for(let e of r)e===`<`?n=!0:e===`>`&&(n=!1);if((i===`"`||i===`'`)&&n&&F.test(r.slice(0,-1))){t[e]=r.slice(0,-1);let n=t[e+1];n.startsWith(i)&&(t[e+1]=n.slice(1))}}return t},I=`data-ore-b`,L=/^ore:(\d+)$/,walkNode=(e,t,n,r)=>{if(e.nodeType===Node.ELEMENT_NODE){let r=e,i=r.getAttribute(I);i!==null&&(n.set(Number(i),[...t]),r.removeAttribute(I))}else if(e.nodeType===Node.COMMENT_NODE){let n=e.nodeValue,i=n===null?null:L.exec(n);i&&r.set(Number(i[1]),[...t])}let i=e.childNodes;for(let e=0;e<i.length;e++)walkNode(i[e],[...t,e],n,r)},buildStaticTemplate=e=>{let t=normalizeTemplateStrings(e),n=``,r,i=0,a=0,o=[];for(let e=0;e<t.length-1;e++){let s=t[e],c=detectSlot(s);if(c.kind===k.NODE)n+=`${c.prefix}<!--ore:${a}-->`,o.push({commentId:a,kind:k.NODE}),a++,r=void 0;else{r===void 0||c.prefix.lastIndexOf(`<`)>c.prefix.lastIndexOf(`>`)?(r=i++,n+=`${c.prefix} ${I}="${r}"`):n+=c.prefix;let e=c.kind===k.BOOL_ATTR?`bool`:c.kind===k.ATTR?`attr`:void 0;o.push({elementId:r,kind:c.kind,mode:e,name:c.name})}}n+=t[t.length-1]??``;let s=document.createElement(`template`);s.innerHTML=n;let c=new Map,l=new Map,u=s.content.childNodes;for(let e=0;e<u.length;e++)walkNode(u[e],[e],c,l);return{commentPaths:l,element:s,elementPaths:c,slots:o}},getStaticTemplate=e=>{let t=P.get(e);return t||(t=buildStaticTemplate(e),P.set(e,t)),t},followPath=(e,t)=>{let n=e;for(let e of t)n=n.childNodes[e];return n},R="html`...`: node-slot comment anchor has no parent node",toHtmlValues=e=>Array.isArray(e)?e:[e],embedStaticResult=(e,t,n)=>{let r=t.parentNode;for(invariant(r,R);e.fragment.firstChild;)r.insertBefore(e.fragment.firstChild,t);n.push(e.apply.bind(e))},compileTemplate=(t,n)=>{let r=getStaticTemplate(t),i=r.element.content.cloneNode(!0),a=[],o=[],s=r.slots.map((e,t)=>{let a=n[t];if(e.kind===k.NODE){let t=e.commentId===void 0?void 0:r.commentPaths.get(e.commentId);return invariant(t,`compiled template is missing a comment path for node slot ${e.commentId}`),{comment:followPath(i,t),slot:e,value:a}}let o=e.elementId===void 0?void 0:r.elementPaths.get(e.elementId);return invariant(o,`compiled template is missing an element path for slot ${e.elementId}`),{el:followPath(i,o),slot:e,value:a}});for(let{comment:t,el:n,slot:r,value:i}of s){if(r.kind===k.NODE){let n=t;if(invariant(n,`compiled template produced a node slot without a comment anchor`),v(i)){a.push({anchor:n,directive:i,type:`directive`});continue}if(b(i)){embedStaticResult(i,n,o),n.remove();continue}if(typeof i==`function`||(0,e.isReactive)(i)){let t=typeof i==`function`?(0,e.computed)(()=>toHtmlValues(i())):(0,e.computed)(()=>toHtmlValues(i.value));a.push({anchor:n,signal:t,type:`html`});continue}if(Array.isArray(i)){for(let e of i)if(b(e))embedStaticResult(e,n,o);else{let t=n.parentNode;invariant(t,R),t.insertBefore(document.createTextNode(resolveStaticText(e)),n)}n.remove();continue}n.replaceWith(document.createTextNode(resolveStaticText(i)));continue}if(invariant(n,`compiled template produced an element slot without an element`),r.kind===k.EVENT){let t=r.name;if(invariant(t,`compiled template produced an event slot without an event name`),typeof i==`function`)a.push({el:n,handler:i,name:t,type:`event`});else if((0,e.isReactive)(i)){let e=i,handler=t=>{let n=e.value;typeof n==`function`&&n(t)};a.push({el:n,handler,name:t,type:`event`})}continue}if(r.kind===k.REF){i&&a.push({el:n,ref:i,type:`ref`});continue}invariant(r.name,`compiled template produced an attr slot without an attribute name`),a.push(createAttrBindingFromValue(n,r.mode??`attr`,r.name,i))}return createHtmlResult(i,e=>{for(let t of a)applyBinding(t,e);for(let t of o)t(e)})},html=(e,...t)=>compileTemplate(e,t),z={bubbles:!0,cancelable:!0,composed:!0},useEmit=()=>{let e=getHost();return((t,...n)=>{let r=n.length>0?{...z,detail:n[0]}:z;return e.dispatchEvent(new CustomEvent(String(t),r))})},B=0,V=Math.random().toString(36).slice(2,6),createId=(e=`id`)=>`${e}-${V}${++B}`;exports.OreApiError=OreApiError,exports.OreError=OreError,exports.OreInternalError=OreInternalError,exports.OreLifecycleError=OreLifecycleError,exports.bind=bind,exports.classMap=classMap,exports.createContext=createContext,exports.createId=createId,exports.css=css,exports.define=define,exports.each=each,exports.getHost=getHost,exports.html=html,exports.inject=inject,exports.injectStrict=injectStrict,exports.live=live,exports.onCleanup=onCleanup,exports.onElement=onElement,exports.onEvent=onEvent,exports.onFormReset=onFormReset,exports.onMounted=onMounted,exports.prop=u,exports.provide=provide,exports.ref=ref,exports.styleMap=styleMap,exports.unsafeHtml=unsafeHtml,exports.useEmit=useEmit,exports.useField=useField,exports.useSlots=useSlots,exports.watchEffect=watchEffect,exports.when=when;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@vielzeug/ripple");var OreError=class extends Error{constructor(e,t){super(e,t),this.name=new.target.name,Object.setPrototypeOf(this,new.target.prototype)}},OreApiError=class extends OreError{},OreInternalError=class extends OreError{},OreLifecycleError=class extends OreError{component;phase;constructor(e,t){super(e,{cause:t.cause}),this.component=t.component,this.phase=t.phase}};function reportRuntimeError(e,t){`${e.component}${e.phase}`,e.cause,t.dispatchEvent(new CustomEvent(`ore:error`,{bubbles:!0,composed:!0,detail:e}))}var t={asyncSetupUnsupported:`setup() must return an HTMLResult or null; use reactive state for asynchronous work`,defineDuplicate:e=>`define('${e}') called twice: custom element already registered`,defineFieldRequiresFormAssociated:e=>`useField() requires define('${e}', { formAssociated: true })`,defineRequiresTag:`define() requires a tag name`,eachDuplicateKey:(e,t)=>`each() received duplicate key "${e}" at index ${t}`,eventModifierUnknown:(e,t)=>`@${e}.${t}: unknown event modifier "${t}". Supported: .stop, .prevent, .once, .capture`,injectStrictFailed:(e,t)=>`injectStrict() could not resolve key "${e}" in <${t}>`,invariantViolated:e=>`invariant violated: ${e}`,lifecycleOutsideSetup:`Lifecycle hooks must be called during component setup`,listenNullTarget:e=>`listen() called with a null/undefined target for event "${e}": listener not attached`,modelRequiresValueBinding:e=>`model(): "${e}" must be a plain value/checked attribute binding, not a boolean attribute. Bind it as ${e}=\${model(sig)}, not ?${e}=\${model(sig)}.`,propBindingForbiddenName:e=>`html\`...\`: ".${e}" is a forbidden property-binding name (prototype pollution guard)`,propInvalidReflect:`Structured props cannot use reflect:true: use prop.json() with reflect:false`,templateInterpolationInTag:"html`...`: interpolations inside a tag must be named attributes, boolean attributes, events, or refs",useFieldAlreadyCalled:e=>`useField() was already called on <${e}>. Call it only once per component.`,validationFailed:(e,t)=>`Validation failed for <${e}>:\n${t.join(`
|
|
2
|
+
`)}`};function invariant(e,n){if(!e)throw new OreInternalError(t.invariantViolated(n))}var resolveMaybeReactive=t=>typeof t==`function`?t():(0,e.isReactive)(t)?t.value:t,n=/[;{}]/g,sanitizeCssToken=e=>e.replace(n,``),runAll=e=>{for(let t=e.length-1;t>=0;t--)e[t]?.()},removeNodes=e=>{for(let t of e)t.remove()},createReplaceableSlot=()=>{let e=[],t=[];return{clear(){runAll(t),removeNodes(e),t=[],e=[]},get nodes(){return e},registerCleanup(e){t.push(e)},setNodes(t){e=t}}},r=new Set([`action`,`cite`,`codebase`,`data`,`formaction`,`href`,`manifest`,`ping`,`poster`,`src`,`xlink:href`]),i=/^\s*(?:(?:javascript|vbscript|blob):|data:(?:[^,]*\/(?:html|svg\+xml)|application\/(?:xhtml|xml)))/i,setAttr=(e,t,n)=>{let a=t.toLowerCase();if(/^on[a-z]/i.test(t)){`${t}${t.slice(2)}`,e.removeAttribute(t);return}if(a===`srcdoc`){e.removeAttribute(t);return}if(n==null||n===!1){e.removeAttribute(t);return}let o=n===!0?`true`:String(n);if(r.has(a)&&i.test(o)){`${t}`,e.removeAttribute(t);return}e.setAttribute(t,o)},listen=(e,n,r,i)=>{if(!e)return t.listenNullTarget(n),()=>{};let a=r;return e.addEventListener(n,a,i),()=>e.removeEventListener(n,a,i)},toKebab=e=>e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`),cssDeclarationName=e=>sanitizeCssToken(e.startsWith(`--`)?e:toKebab(e)),cssDeclarationValue=e=>{let t=resolveMaybeReactive(e);return t==null||t===!1?``:sanitizeCssToken(String(t))},resolveClassTokens=e=>{let t=new Set;for(let[n,r]of Object.entries(e)){if(!resolveMaybeReactive(r))continue;let e=n.replace(/\s+/g,``);e&&t.add(e)}return t},isStructuredValue=e=>Array.isArray(e)||typeof e==`object`&&!!e,a=null,createRuntimeContext=e=>({element:e,formResetCallbacks:[],mountCallbacks:[]}),o=0,beginPendingWork=()=>{o++;let e=!1;return()=>{e||(e=!0,o--)}},runWithContext=(e,t)=>{let n=a;a=e;try{return t()}finally{a=n}},requireSetupContext=e=>{if(a)return a;throw new OreApiError(`${e}: ${t.lifecycleOutsideSetup}`)},getHost=()=>requireSetupContext(`getHost`).element,tryRegisterCleanup=t=>a?((0,e.effect)(()=>t),!0):!1,onCleanup=e=>{if(!tryRegisterCleanup(e))throw new OreApiError(`onCleanup: ${t.lifecycleOutsideSetup}`)},onMounted=e=>{requireSetupContext(`onMounted`).mountCallbacks.push(e)},onFormReset=e=>{requireSetupContext(`onFormReset`).formResetCallbacks.push(e)},watchEffect=t=>{let n=(0,e.effect)(t),stop=()=>n.dispose();return tryRegisterCleanup(stop),stop};function onEvent(e,t,n,r){if(requireSetupContext(`onEvent`),!e)return;let i=listen(e,t,n,r);tryRegisterCleanup(i)||i()}var onElement=(e,t)=>watchEffect(()=>{let n=e.value;if(n)return t(n)}),s=new WeakMap,buildAncestorChain=e=>{let t=[],n=e;for(;n;)n instanceof HTMLElement&&t.push(n),n=n.parentNode??(n instanceof ShadowRoot?n.host:null);return t},provideOnElement=(e,t,n)=>{let r=s.get(e)??new Map;r.has(t)&&`${e.localName}`,r.set(t,n),s.set(e,r)},provide=(e,t)=>{let n=requireSetupContext(`provide`).element;provideOnElement(n,e,t),onCleanup(()=>{let t=s.get(n);t&&(t.delete(e),t.size===0&&s.delete(n))})},c=Symbol(`inject.not_found`),l=new WeakMap,walkAndFind=(e,t)=>{let n=buildAncestorChain(e);for(let e of n){let n=s.get(e);if(n?.has(t))return n.get(t)}return c},lookup=(e,t)=>{let n=l.get(e);n||(n=new Map,l.set(e,n));let r=t;return n.has(r)||n.set(r,walkAndFind(e.element,t)),n.get(r)};function inject(e,...t){let n=lookup(requireSetupContext(`inject`),e);return n===c?t.length>0?t[0]:void 0:n}var injectStrict=e=>{let n=requireSetupContext(`injectStrict`),r=lookup(n,e);if(r!==c)return r;throw new OreApiError(t.injectStrictFailed(String(e),n.element.localName))};function createContext(e){return Symbol(e)}function _jsOnlyProp(e){return{default:e,parse:()=>e,reflect:!1}}function _numberProp(e){let t=e;return{default:t,parse:e=>{if(e==null)return t;let n=Number(e);return Number.isNaN(n)?(`${e}${String(t)}`,t):n},reflect:!0}}function _stringProp(e){return{default:e,parse:t=>t??e,reflect:!0}}var u={bool(e){return{default:e??!1,parse:e=>e!==null&&e!==`false`,reflect:!0}},data(e){return _jsOnlyProp(e)},json(e){return{default:e,parse:t=>{if(t==null||t===``)return e;try{return JSON.parse(t)}catch{return e}},reflect:!1}},number:_numberProp,oneOf(e,t){return{default:t,parse:n=>{if(n==null)return t;let r=e,i=r.indexOf(n);if(i!==-1)return e[i];let a=Number(n);if(!Number.isNaN(a)){let t=r.indexOf(a);if(t!==-1)return e[t]}return t},reflect:!0}},string:_stringProp},isPropDef=e=>typeof e==`object`&&!!e&&`default`in e&&`parse`in e;function normalizePropDefinition(e,n){if(!isPropDef(e))throw new OreApiError(`Prop "${n}" must use a prop.* helper (string/number/bool/json/oneOf). Received: ${typeof e}`);let r=e;if(!r.parse)throw new OreApiError(`Prop "${n}" must have a parse function. Use prop.* helpers.`);let i=r.reflect??!1;if(i&&isStructuredValue(r.default))throw new OreApiError(`Prop "${n}": ${t.propInvalidReflect}`);return{...r,reflect:i}}function validatePropDefs(e){let t=[];for(let[n,r]of Object.entries(e))try{normalizePropDefinition(r,n)}catch(e){t.push(e instanceof Error?e.message:String(e))}return t}var d=new WeakMap,getPropMeta=(e,t)=>d.get(e)?.get(t),coerceIncoming=(e,t)=>typeof e==`string`?t(e):e,registerProp=(t,n,r,i)=>{let a=d.get(t);a||(a=new Map,d.set(t,a));let{default:o,parse:s,reflect:c=!1}=i,l=(0,e.signal)(o),u=a.get(r),f=Object.hasOwn(t,n),p=f?t[n]:void 0,m={parse:s,reflect:c,signal:l};return u?l.value=u.signal.peek():f?(delete t[n],l.value=coerceIncoming(p,s)):t.hasAttribute(r)&&(l.value=s(t.getAttribute(r))),a.set(r,m),Object.defineProperty(t,n,{configurable:!0,enumerable:!0,get:()=>l.value,set:e=>{l.value=coerceIncoming(e,s)}}),c&&watchEffect(()=>{let e=l.value;e==null?t.removeAttribute(r):typeof e==`boolean`?t.toggleAttribute(r,e):setAttr(t,r,e)}),l};function createProps(e,t){let n={};for(let[r,i]of Object.entries(t))n[r]=registerProp(e,r,toKebab(r),i);return n}var makeBrand=e=>{let t=Symbol.for(e),stamp=e=>Object.assign(e,{[t]:!0}),is=e=>typeof e==`object`&&!!e&&t in e;return{is,stamp}},f=makeBrand(`ore:css-result`),p=f.is,cssResultToString=function(){return this.content},css=(e,...t)=>{let n=``;for(let r=0;r<e.length;r++)if(n+=e[r],r<t.length){let e=t[r];n+=p(e)?e.content:String(e)}return f.stamp({content:n.trim(),toString:cssResultToString})},m=new Map,h=256,loadStylesheet=e=>{if(e instanceof CSSStyleSheet)return e;let t=typeof e==`string`?e:e.content,n=m.get(t);if(n)return m.delete(t),m.set(t,n),n;let r=new CSSStyleSheet;try{r.replaceSync(t)}catch{return r}if(m.set(t,r),m.size>h){let e=m.keys().next().value;e!==void 0&&m.delete(e)}return r},g={SETUP_DONE:`setup_done`,SETUP_RUNNING:`setup_running`,UNINITIALIZED:`uninitialized`,UNMOUNTED:`unmounted`},createComponentState=()=>({formResetCallbacks:[],generation:0,mountCallbacks:[],phase:g.UNINITIALIZED,scope:(0,e.createScope)(),templateResult:null}),isPromiseLike=e=>(typeof e==`object`||typeof e==`function`)&&e!==null&&`then`in e&&typeof e.then==`function`,BaseElement=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=createComponentState()}connectedCallback(){(0,e.untrack)(()=>{this._component.phase===g.UNINITIALIZED&&this._runSetup(),this._init()})}attributeChangedCallback(t,n,r){if(n===r)return;let i=getPropMeta(this,t);if(!i)return;let a=i.parse(r);Object.is((0,e.untrack)(()=>i.signal.value),a)||(i.signal.value=a)}disconnectedCallback(){this._component.generation++,this._component.phase=g.UNMOUNTED,this._resetSetupState()}_resetSetupState(){this._component.scope.dispose(),this._component.formResetCallbacks=[],this._component.mountCallbacks=[],this._component.phase=g.UNINITIALIZED,this._component.scope=(0,e.createScope)(),this._component.templateResult=null}formResetCallback(){for(let e of this._component.formResetCallbacks)try{e()}catch(e){this._reportLifecycleError(e,`form-reset`)}}_reportLifecycleError(e,t){let n=e instanceof Error?e:Error(String(e));reportRuntimeError(new OreLifecycleError(`<${this.localName}> failed during ${this._component.phase} (${t})`,{cause:n,component:this.localName,phase:t}),this)}_runSetup(){this._component.phase=g.SETUP_RUNNING;let e=this.constructor._definition,n=this.constructor._normalizedPropDefs,r=createRuntimeContext(this);try{let i;if(this._component.scope.run(()=>{i=runWithContext(r,()=>{let t=n?createProps(this,n):{};return e.setup(t)})}),this._component.mountCallbacks.push(...r.mountCallbacks),this._component.formResetCallbacks.push(...r.formResetCallbacks),isPromiseLike(i))throw new OreApiError(t.asyncSetupUnsupported);this._component.templateResult=i??null,this._component.phase=g.SETUP_DONE}catch(e){throw this._reportLifecycleError(e,`setup`),this._resetSetupState(),e}}_isStale(e){return this._component.generation!==e||!this.isConnected}_applyResult(e){if(!e)return;let t=this.shadowRoot??this,n=createRuntimeContext(this);t.replaceChildren(),this._component.scope.run(()=>{runWithContext(n,()=>{e.mount(t,null,onCleanup)})})}_init(){this._applyStyles(),this._mountTemplate(),this._component.phase===g.SETUP_DONE&&this._scheduleMountCallbacks()}_applyStyles(){let e=this.constructor._definition;this.shadowRoot&&e?.styles?.length&&(this.shadowRoot.adoptedStyleSheets=e.styles.map(loadStylesheet))}_mountTemplate(){let e=this._component.templateResult;e&&this._applyResult(e)}_scheduleMountCallbacks(){if(this._component.mountCallbacks.length===0)return;let e=this._component.generation,t=beginPendingWork();queueMicrotask(()=>{try{if(this._isStale(e))return;let t=this._component.mountCallbacks.splice(0);for(let e=0;e<t.length;e++){let n=t[e];try{let e=createRuntimeContext(this);this._component.scope.run(()=>{runWithContext(e,()=>{let e=n();typeof e==`function`&&onCleanup(e)})}),e.mountCallbacks.length>0&&t.push(...e.mountCallbacks),e.formResetCallbacks.length>0&&this._component.formResetCallbacks.push(...e.formResetCallbacks)}catch(e){this._reportLifecycleError(e,`mounted`)}}}finally{t()}})}};function define(e,n){if(!e)throw new OreApiError(t.defineRequiresTag);if(customElements.get(e))throw new OreApiError(t.defineDuplicate(e));let{props:r}=n,i=(()=>{if(!r)return;let n=validatePropDefs(r);if(n.length>0)throw new OreApiError(t.validationFailed(e,n));let i={};for(let[e,t]of Object.entries(r))i[e]=normalizePropDefinition(t,e);return i})(),a=i?Object.keys(i).map(toKebab):[],ComponentClass=class extends BaseElement{static _definition=n;static _normalizedPropDefs=i;static formAssociated=n.formAssociated??!1;static observedAttributes=a};return Object.defineProperty(ComponentClass,"name",{value:e}),customElements.define(e,ComponentClass),ComponentClass}var classMap=t=>(0,e.computed)(()=>[...resolveClassTokens(t)].join(` `));function ref(){return(0,e.signal)(null)}var _=makeBrand(`ore:directive`),createDirectiveResult=e=>_.stamp({mount:e}),v=_.is,y=makeBrand(`ore:html-result`),b=y.is;function createHtmlResult(e,t){let mount=(n,r,i)=>{let a=Array.from(e.childNodes);return n.insertBefore(e,r),t(i),a};return y.stamp({apply:t,fragment:e,mount})}var createItem=(t,n,r,i,a)=>{let o=(0,e.signal)(t),s=(0,e.signal)(n),c=(0,e.createScope)(),l=[],u=[];return c.run(()=>{u=r(o,s).mount(i,a,e=>l.push(e))}),{cleanups:l,data:o,index:s,nodes:u,scope:c}},removeItem=e=>{e.scope.dispose(),runAll(e.cleanups),removeNodes(e.nodes)},reconcileItems=(t,n,r,i,a,o,s)=>{for(let c=0;c<n.length;c++){let l=r[c];if(t.has(l))continue;let u=(0,e.untrack)(()=>createItem(n[c],c,i,a,o));s.push(u),t.set(l,u)}let c=[];(0,e.batch)(()=>{for(let e=0;e<n.length;e++){let i=t.get(r[e]);invariant(i,`each() reconcile phase 2 lost an entry created in phase 1`),i.data.value=n[e],i.index.value=e,c.push(i)}});let l=o;for(let e=c.length-1;e>=0;e--){let t=c[e],n=t.nodes[0],r=t.nodes[t.nodes.length-1];if(n&&r!==l.previousSibling)for(let e of t.nodes)a.insertBefore(e,l);l=n??l}let u=new Set(r);for(let[e,n]of t)u.has(e)||(removeItem(n),t.delete(e));return c},rollbackCreated=(e,t)=>{for(let n of t){removeItem(n);for(let[t,r]of e)if(r===n){e.delete(t);break}}},collectKeys=(e,n)=>{let r=[],i=new Set;for(let a=0;a<e.length;a++){let o=n(e[a],a);if(i.has(o))throw new OreApiError(t.eachDuplicateKey(String(o),a));i.add(o),r.push(o)}return r},reportEachError=(e,t)=>{let n=e instanceof Error?e:Error(String(e));reportRuntimeError(new OreLifecycleError(`each() failed to reconcile a list update: ${n.message}`,{cause:n,component:`each()`,phase:`each-reconcile`}),t)};function each(t,n,r,i){let a=Array.isArray(t)?(0,e.signal)(t):typeof t==`function`?(0,e.computed)(t):t;return createDirectiveResult((t,o)=>{let s=t.parentNode;invariant(s,`each() anchor comment has no parent node`);let c=document.createComment(`each/end`);s.insertBefore(c,t.nextSibling);let l=new Map,u=[],d=null,f=[],mountFallback=()=>{i&&(d=i().mount(s,c,e=>f.push(e)))},clearFallback=()=>{d&&(runAll(f),removeNodes(d),d=null,f=[])},p=(0,e.effect)(()=>{let i=a.value??[];if(i.length===0){for(let t of(0,e.untrack)(()=>u))removeItem(t);l=new Map,u=[],d||(0,e.untrack)(mountFallback);return}let o;try{o=(0,e.untrack)(()=>collectKeys(i,n))}catch(e){reportEachError(e,t);return}clearFallback();let f=[];try{u=(0,e.untrack)(()=>reconcileItems(l,i,o,r,s,c,f))}catch(n){reportEachError(n,t),(0,e.untrack)(()=>rollbackCreated(l,f))}});o(()=>p.dispose()),o(()=>{clearFallback();for(let e of u)removeItem(e);c.remove()})})}var x=makeBrand(`ore:live`),live=e=>x.stamp({source:e}),S=x.is,C=makeBrand(`ore:model`),w=C.is,modelDefaultGet=e=>e instanceof HTMLInputElement&&(e.type===`checkbox`||e.type===`radio`)?e.checked:e.value,modelDefaultEvent=e=>e instanceof HTMLInputElement&&(e.type===`checkbox`||e.type===`radio`)||e instanceof HTMLSelectElement?`change`:`input`,model=(e,t)=>C.stamp({event:t?.event,get:t?.get,source:e}),styleMap=t=>(0,e.computed)(()=>{let e=[];for(let[n,r]of Object.entries(t)){let t=cssDeclarationValue(r);if(!t)continue;let i=cssDeclarationName(n);i&&e.push(`${i}:${t}`)}return e.join(`;`)}),parseHtml=(e,t,n)=>{let r=document.createElement(`template`);r.innerHTML=e;let i=Array.from(r.content.cloneNode(!0).childNodes);for(let e of i)t.insertBefore(e,n);return i};function unsafeHtml(t){let n=typeof t==`function`?(0,e.computed)(t):(0,e.isReactive)(t)?t:null;return createDirectiveResult((r,i)=>{let a=r.parentNode;invariant(a,`unsafeHtml() anchor comment has no parent node`);let o=document.createComment(`unsafe-html/end`);if(a.insertBefore(o,r.nextSibling),n){let t=createReplaceableSlot(),r=(0,e.effect)(()=>{t.clear(),t.setNodes(parseHtml(n.value,a,o))});i(()=>r.dispose()),i(()=>{t.clear(),o.remove()})}else parseHtml(t,a,o),i(()=>o.remove())})}var T=`when() anchor comment has no parent node`;function when(t,n,r){return typeof t!=`function`&&!(0,e.isReactive)(t)?createDirectiveResult((e,i)=>{let a=t?n():r?r():null;if(!a||!b(a))return;let o=e.parentNode;invariant(o,T);let s=a.mount(o,e,i);i(()=>removeNodes(s))}):createDirectiveResult((i,a)=>{let o=(typeof t==`function`?(0,e.computed)(t):null)??t,s=i.parentNode;invariant(s,T);let c=document.createComment(`when/end`);s.insertBefore(c,i.nextSibling);let l=createReplaceableSlot(),u=(0,e.effect)(()=>{let t=o.value;l.clear();let i=t?n():r?r():null;i&&b(i)&&l.setNodes((0,e.untrack)(()=>i.mount(s,c,l.registerCleanup)))});a(()=>u.dispose()),a(()=>{l.clear(),c.remove()})})}var E=new WeakMap,D=new WeakSet,useField=e=>{let n=getHost();if(!n.constructor.formAssociated)throw new OreApiError(t.defineFieldRequiresFormAssociated(n.localName));if(D.has(n))throw new OreApiError(t.useFieldAlreadyCalled(n.localName));let r=E.get(n)??n.attachInternals();E.set(n,r),D.add(n),onCleanup(()=>D.delete(n));let i=e.toFormValue??(t=>t==null?e.emptyStringForNull?``:null:t instanceof File||t instanceof FormData?t:String(t));watchEffect(()=>{r.setFormValue(i(e.value.value))});let a=e.disabled;if(a&&`states`in r){let e=r.states;watchEffect(()=>{a.value?e.add(`disabled`):e.delete(`disabled`)})}e.validity&&watchEffect(()=>{let t=e.validity?.value;if(!t){r.setValidity({});return}let n=Object.values(t.flags).some(Boolean);r.setValidity(t.flags,n&&!t.message?`Invalid value.`:t.message)}),e.onReset&&onFormReset(e.onReset);let checkValidity=()=>r.checkValidity(),reportValidity=()=>r.reportValidity(),setCustomValidity=e=>e?r.setValidity({customError:!0},e):r.setValidity({});return{checkValidity,internals:r,reportValidity,setCustomValidity}},normalizeHostAttrKey=e=>e===`role`||e.startsWith(`aria-`)?e:e.startsWith(`aria`)?`aria-${e.slice(4).toLowerCase()}`:e,bind=(e,t)=>{let n=t?.target??getHost(),r=[];if(e.attr)for(let[t,i]of Object.entries(e.attr)){let e=applyAttribute(n,O(t),i);e&&r.push(e)}if(e.class&&r.push(applyClassMap(n,e.class)),e.style)for(let[t,i]of Object.entries(e.style)){let e=applyStyle(n,t,i);e&&r.push(e)}if(e.on){let{target:i,...a}=t??{};for(let t of Object.keys(e.on)){let i=e.on[t];i&&r.push(listen(n,t,i,a))}}let cleanup=()=>{for(let e of r)e()};return tryRegisterCleanup(cleanup),cleanup},O=normalizeHostAttrKey,applyReactiveBinding=(t,n)=>{if(typeof t==`function`)return watchEffect(()=>{n(t())});if((0,e.isReactive)(t))return watchEffect(()=>{n(t.value)});n(t)};function applyAttribute(e,t,n){return applyReactiveBinding(n,n=>setAttr(e,t,n))}function applyStyle(e,t,n){let r=cssDeclarationName(t);if(!r)return;let i=!1,setStyle=t=>{let n=cssDeclarationValue(t);n?(i=!0,e.style.setProperty(r,n)):i&&e.style.removeProperty(r)};return applyReactiveBinding(n,setStyle)}function applyClassMap(e,t){let n=typeof t==`function`?t:()=>Object.fromEntries([...resolveClassTokens(t)].map(e=>[e,!0])),r=new Set;return watchEffect(()=>{let t=new Set;for(let[i,a]of Object.entries(n()))a&&(t.add(i),r.has(i)||e.classList.add(i));for(let n of r)t.has(n)||e.classList.remove(n);r=t})}var k=`default`,normalizeSlotName=e=>e||k,createSlots=t=>{let n=new Map,r=new Map,i=new Map,ensureSlotEntry=t=>{let r=n.get(t);return r||(r={elements:(0,e.signal)([]),presence:(0,e.signal)(!1)},n.set(t,r)),r},areElementsEqual=(e,t)=>{if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0},recomputeSlot=e=>{let t=normalizeSlotName(e),n=r.get(t),i=[];if(n)for(let e of n)i.push(...e.assignedElements({flatten:!0}));let a=ensureSlotEntry(t);areElementsEqual(a.elements.value,i)||(a.elements.value=i);let o=i.length>0;a.presence.value!==o&&(a.presence.value=o)},bindSlot=e=>{if(i.has(e))return;let t=normalizeSlotName(e.getAttribute(`name`)),n=r.get(t)??new Set;n.add(e),r.set(t,n);let onChange=()=>recomputeSlot(t);e.addEventListener(`slotchange`,onChange),i.set(e,()=>{e.removeEventListener(`slotchange`,onChange)}),recomputeSlot(t)},unbindSlot=e=>{let t=i.get(e);if(!t)return;t(),i.delete(e);let n=normalizeSlotName(e.getAttribute(`name`)),a=r.get(n);a&&(a.delete(e),a.size===0&&r.delete(n)),recomputeSlot(n)},bindAllSlots=()=>{t.shadowRoot?.querySelectorAll(`slot`).forEach(e=>{bindSlot(e)})},recomputeAllSlots=()=>{for(let e of r.keys())recomputeSlot(e)},a=null,initSlots=()=>{bindAllSlots(),recomputeAllSlots(),!a&&t.shadowRoot&&(a=new MutationObserver(e=>{for(let t of e)for(let e of t.removedNodes)e instanceof HTMLSlotElement&&unbindSlot(e);bindAllSlots(),i.size>0&&recomputeAllSlots()}),a.observe(t.shadowRoot,{childList:!0,subtree:!0}))};return onMounted(initSlots),onCleanup(()=>{a?.disconnect(),a=null;for(let e of i.values())e();i.clear(),r.clear(),n.clear(),A.delete(t)}),{elements:e=>ensureSlotEntry(normalizeSlotName(e)).elements,has:e=>ensureSlotEntry(normalizeSlotName(e)).presence}},A=new WeakMap,useSlots=()=>{let e=requireSetupContext(`useSlots`),t=A.get(e.element);return t||(t=createSlots(e.element),A.set(e.element,t)),t},signalEffect=(t,n,r)=>{let i=(0,e.effect)(()=>{n(t.value)});r(()=>i.dispose())},isNativeFormInput=e=>e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement,isCheckableInput=e=>e instanceof HTMLInputElement&&(e.type===`checkbox`||e.type===`radio`),syncFormControl=(e,t,n,r={last:void 0})=>{let i=isCheckableInput(e),a=i?!!t:t==null?``:String(t),o=i?e.checked:e.value;(!n||r.last===void 0||Object.is(o,r.last)||Object.is(o,a))&&(i?e.checked=a:e.value=a,n&&(r.last=a))},syncRegisteredProp=(t,n,r,i)=>{let a=isStructuredValue(i)?i:n.parse(r.mode===`bool`?i?``:null:i==null||i===!1?null:String(i));if(Object.is((0,e.untrack)(()=>n.signal.value),a)||(n.signal.value=a),!n.reflect){if(isStructuredValue(i))return;r.mode===`bool`?t.toggleAttribute(r.name,!!i):setAttr(t,r.name,i)}},applyAttrBinding=(e,t)=>{let{el:n,mode:r,name:i}=e,a={last:void 0},update=t=>{let o=getPropMeta(n,i);if(o){syncRegisteredProp(n,o,e,t);return}if(i===`value`&&isNativeFormInput(n)||i===`checked`&&n instanceof HTMLInputElement){syncFormControl(n,t,e.live,a);return}if(i===`indeterminate`&&n instanceof HTMLInputElement){n.indeterminate=!!t;return}r===`bool`?n.toggleAttribute(i,!!t):setAttr(n,i,t)};`signal`in e?signalEffect(e.signal,update,t):update(e.value)},applyEventBinding=(e,t)=>{let{modifiers:n}=e,r=n?.stop||n?.prevent?t=>{n.stop&&t.stopPropagation(),n.prevent&&t.preventDefault(),e.handler(t)}:e.handler,i=n?.once||n?.capture?{capture:n.capture,once:n.once}:void 0;t(listen(e.el,e.name,r,i))},applyPropBinding=(e,t)=>{let update=t=>{e.el[e.name]=t};`signal`in e?signalEffect(e.signal,update,t):update(e.value)},applyModelBinding=(t,n)=>{let{el:r,get:i,signal:a}=t,o={last:void 0},write=e=>{isNativeFormInput(r)?syncFormControl(r,e,!0,o):r.value=e},s=(0,e.effect)(()=>{write(a.value)}),onEvent=()=>{let t=i(r);Object.is((0,e.untrack)(()=>a.value),t)||(a.value=t)};n(()=>s.dispose()),n(listen(r,t.event,onEvent))},applyRefBinding=(e,t)=>{let{el:n,ref:r}=e;if(typeof r==`function`){r(n),t(()=>r(null));return}r.value=n,t(()=>{r.value=null})},insertHtmlValues=(e,t,n)=>{let r=[],i=t.parentNode;invariant(i,`html binding anchor has no parent node`);for(let a of e)if(b(a)){let e=Array.from(a.fragment.childNodes);i.insertBefore(a.fragment,t),a.apply(n),r.push(...e)}else if(a!=null&&a!==!1){let e=document.createTextNode(String(a));i.insertBefore(e,t),r.push(e)}return r},applyHtmlBinding=(t,n)=>{let{anchor:r,signal:i}=t,a=createReplaceableSlot(),o=(0,e.effect)(()=>{let t=i.value;a.clear(),t!=null&&t.length!==0&&(0,e.untrack)(()=>{a.setNodes(insertHtmlValues(t,r,a.registerCleanup))})});n(()=>{o.dispose(),a.clear()})},applyDirectiveBinding=(e,t)=>{e.directive.mount(e.anchor,t)},applyBinding=(e,t)=>{switch(e.type){case`attr`:applyAttrBinding(e,t);break;case`directive`:applyDirectiveBinding(e,t);break;case`event`:applyEventBinding(e,t);break;case`html`:applyHtmlBinding(e,t);break;case`model`:applyModelBinding(e,t);break;case`prop`:applyPropBinding(e,t);break;case`ref`:applyRefBinding(e,t)}},createAttrBindingFromValue=(t,n,r,i)=>S(i)?{el:t,live:!0,mode:n,name:r,signal:i.source,type:`attr`}:typeof i==`function`?{el:t,mode:n,name:r,signal:(0,e.computed)(i),type:`attr`}:(0,e.isReactive)(i)?{el:t,mode:n,name:r,signal:i,type:`attr`}:{el:t,mode:n,name:r,type:`attr`,value:i},resolveStaticText=e=>e==null?``:String(e),j={ATTR:`attr`,BOOL_ATTR:`boolAttr`,EVENT:`event`,NODE:`node`,PROP:`prop`,REF:`ref`},M={capture:!0,once:!0,prevent:!0,stop:!0},parseEventModifiers=(e,n)=>{if(n.length===0)return;let r={};for(let i of n){if(!(i in M))throw new OreApiError(t.eventModifierUnknown(e,i));r[i]=!0}return r},N=/\s+@([a-zA-Z_][-a-zA-Z0-9_.-]*)\s*=\s*["']?$/,P=/\s+ref\s*=\s*["']?$/,F=/\s+\?([a-zA-Z_][-a-zA-Z0-9_]*)\s*=\s*["']?$/,I=/\s+\.([a-zA-Z_][-a-zA-Z0-9_]*)\s*=\s*["']?$/,L=/\s+([a-zA-Z_][-a-zA-Z0-9_]*)\s*=\s*["']?$/,detectSlot=e=>{let n;if(n=N.exec(e)){let t=e.slice(0,-n[0].length),[r,...i]=n[1].split(`.`);return{eventModifiers:parseEventModifiers(r,i),kind:j.EVENT,name:r,prefix:t}}if(n=P.exec(e))return{kind:j.REF,prefix:e.slice(0,-n[0].length)};if(n=F.exec(e))return{kind:j.BOOL_ATTR,name:n[1],prefix:e.slice(0,-n[0].length)};if(n=I.exec(e)){let r=n[1];if(r===`__proto__`||r===`constructor`||r===`prototype`)throw new OreApiError(t.propBindingForbiddenName(r));return{kind:j.PROP,name:r,prefix:e.slice(0,-n[0].length)}}if(n=L.exec(e))return{kind:j.ATTR,name:n[1],prefix:e.slice(0,-n[0].length)};let r=e.lastIndexOf(`<`);if(r>e.lastIndexOf(`>`)&&e[r+1]!==`/`)throw new OreApiError(t.templateInterpolationInTag);return{kind:j.NODE,prefix:e}},R=new WeakMap,z=/[@?]?[a-zA-Z_][-a-zA-Z0-9_.]*\s*=\s*$/,normalizeTemplateStrings=e=>{let t=Array.from(e),n=!1;for(let e=0;e<t.length-1;e++){let r=t[e],i=r[r.length-1];for(let e of r)e===`<`?n=!0:e===`>`&&(n=!1);if((i===`"`||i===`'`)&&n&&z.test(r.slice(0,-1))){t[e]=r.slice(0,-1);let n=t[e+1];n.startsWith(i)&&(t[e+1]=n.slice(1))}}return t},B=`data-ore-b`,V=/^ore:(\d+)$/,walkNode=(e,t,n,r)=>{if(e.nodeType===Node.ELEMENT_NODE){let r=e,i=r.getAttribute(B);i!==null&&(n.set(Number(i),[...t]),r.removeAttribute(B))}else if(e.nodeType===Node.COMMENT_NODE){let n=e.nodeValue,i=n===null?null:V.exec(n);i&&r.set(Number(i[1]),[...t])}let i=e.childNodes;for(let e=0;e<i.length;e++)walkNode(i[e],[...t,e],n,r)},buildStaticTemplate=e=>{let t=normalizeTemplateStrings(e),n=``,r,i=0,a=0,o=[];for(let e=0;e<t.length-1;e++){let s=t[e],c=detectSlot(s);if(c.kind===j.NODE)n+=`${c.prefix}<!--ore:${a}-->`,o.push({commentId:a,kind:j.NODE}),a++,r=void 0;else{r===void 0||c.prefix.lastIndexOf(`<`)>c.prefix.lastIndexOf(`>`)?(r=i++,n+=`${c.prefix} ${B}="${r}"`):n+=c.prefix;let e=c.kind===j.BOOL_ATTR?`bool`:c.kind===j.ATTR?`attr`:void 0;o.push({elementId:r,eventModifiers:c.eventModifiers,kind:c.kind,mode:e,name:c.name})}}n+=t[t.length-1]??``;let s=document.createElement(`template`);s.innerHTML=n;let c=new Map,l=new Map,u=s.content.childNodes;for(let e=0;e<u.length;e++)walkNode(u[e],[e],c,l);return{commentPaths:l,element:s,elementPaths:c,slots:o}},getStaticTemplate=e=>{let t=R.get(e);return t||(t=buildStaticTemplate(e),R.set(e,t)),t},followPath=(e,t)=>{let n=e;for(let e of t)n=n.childNodes[e];return n},H="html`...`: node-slot comment anchor has no parent node",toHtmlValues=e=>Array.isArray(e)?e:[e],embedStaticResult=(e,t,n)=>{let r=t.parentNode;for(invariant(r,H);e.fragment.firstChild;)r.insertBefore(e.fragment.firstChild,t);n.push(e.apply.bind(e))},compileTemplate=(n,r)=>{let i=getStaticTemplate(n),a=i.element.content.cloneNode(!0),o=[],s=[],c=i.slots.map((e,t)=>{let n=r[t];if(e.kind===j.NODE){let t=e.commentId===void 0?void 0:i.commentPaths.get(e.commentId);return invariant(t,`compiled template is missing a comment path for node slot ${e.commentId}`),{comment:followPath(a,t),slot:e,value:n}}let o=e.elementId===void 0?void 0:i.elementPaths.get(e.elementId);return invariant(o,`compiled template is missing an element path for slot ${e.elementId}`),{el:followPath(a,o),slot:e,value:n}});for(let{comment:n,el:r,slot:i,value:a}of c){if(i.kind===j.NODE){let t=n;if(invariant(t,`compiled template produced a node slot without a comment anchor`),v(a)){o.push({anchor:t,directive:a,type:`directive`});continue}if(b(a)){embedStaticResult(a,t,s),t.remove();continue}if(typeof a==`function`||(0,e.isReactive)(a)){let n=typeof a==`function`?(0,e.computed)(()=>toHtmlValues(a())):(0,e.computed)(()=>toHtmlValues(a.value));o.push({anchor:t,signal:n,type:`html`});continue}if(Array.isArray(a)){for(let e of a)if(b(e))embedStaticResult(e,t,s);else{let n=t.parentNode;invariant(n,H),n.insertBefore(document.createTextNode(resolveStaticText(e)),t)}t.remove();continue}t.replaceWith(document.createTextNode(resolveStaticText(a)));continue}if(invariant(r,`compiled template produced an element slot without an element`),i.kind===j.EVENT){let t=i.name;if(invariant(t,`compiled template produced an event slot without an event name`),typeof a==`function`)o.push({el:r,handler:a,modifiers:i.eventModifiers,name:t,type:`event`});else if((0,e.isReactive)(a)){let e=a,handler=t=>{let n=e.value;typeof n==`function`&&n(t)};o.push({el:r,handler,modifiers:i.eventModifiers,name:t,type:`event`})}continue}if(i.kind===j.PROP){let t=i.name;invariant(t,`compiled template produced a prop slot without a property name`),typeof a==`function`?o.push({el:r,name:t,signal:(0,e.computed)(a),type:`prop`}):(0,e.isReactive)(a)?o.push({el:r,name:t,signal:a,type:`prop`}):o.push({el:r,name:t,type:`prop`,value:a});continue}if(i.kind===j.REF){a&&o.push({el:r,ref:a,type:`ref`});continue}if(invariant(i.name,`compiled template produced an attr slot without an attribute name`),w(a)){if(i.mode!==`attr`)throw new OreApiError(t.modelRequiresValueBinding(i.name));o.push({el:r,event:a.event??modelDefaultEvent(r),get:a.get??modelDefaultGet,signal:a.source,type:`model`});continue}o.push(createAttrBindingFromValue(r,i.mode??`attr`,i.name,a))}return createHtmlResult(a,e=>{for(let t of o)applyBinding(t,e);for(let t of s)t(e)})},html=(e,...t)=>compileTemplate(e,t),U={bubbles:!0,cancelable:!0,composed:!0},useEmit=()=>{let e=getHost();return((t,...n)=>{let r=n.length>0?{...U,detail:n[0]}:U;return e.dispatchEvent(new CustomEvent(String(t),r))})},W=0,G=Math.random().toString(36).slice(2,6),createId=(e=`id`)=>`${e}-${G}${++W}`;exports.OreApiError=OreApiError,exports.OreError=OreError,exports.OreInternalError=OreInternalError,exports.OreLifecycleError=OreLifecycleError,exports.bind=bind,exports.classMap=classMap,exports.createContext=createContext,exports.createId=createId,exports.css=css,exports.define=define,exports.each=each,exports.getHost=getHost,exports.html=html,exports.inject=inject,exports.injectStrict=injectStrict,exports.live=live,exports.model=model,exports.onCleanup=onCleanup,exports.onElement=onElement,exports.onEvent=onEvent,exports.onFormReset=onFormReset,exports.onMounted=onMounted,exports.prop=u,exports.provide=provide,exports.ref=ref,exports.styleMap=styleMap,exports.unsafeHtml=unsafeHtml,exports.useEmit=useEmit,exports.useField=useField,exports.useSlots=useSlots,exports.watchEffect=watchEffect,exports.when=when;
|
|
3
3
|
//# sourceMappingURL=ore.cjs.map
|