@takazudo/zfb 2.22.1 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -16
- package/dist/config.d.ts +77 -25
- package/dist/config.js +27 -6
- package/dist/config.js.map +1 -1
- package/dist/content.d.ts +8 -22
- package/dist/content.js +6 -28
- package/dist/content.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/island-boundary.d.ts +4 -0
- package/dist/island-boundary.js +42 -0
- package/dist/island-boundary.js.map +1 -0
- package/dist/island.d.ts +2 -118
- package/dist/island.js +4 -284
- package/dist/island.js.map +1 -1
- package/dist/jsx-types.d.ts +2 -38
- package/dist/jsx-types.js +3 -10
- package/dist/jsx-types.js.map +1 -1
- package/dist/plugins.d.ts +40 -0
- package/dist/plugins.js.map +1 -1
- package/dist/runtime.d.ts +26 -77
- package/dist/runtime.js +307 -340
- package/dist/runtime.js.map +1 -1
- package/dist/zudo-react/client.d.ts +3 -0
- package/dist/zudo-react/client.js +3 -0
- package/dist/zudo-react/client.js.map +1 -0
- package/dist/zudo-react/description.d.ts +16 -0
- package/dist/zudo-react/description.js +64 -0
- package/dist/zudo-react/description.js.map +1 -0
- package/dist/zudo-react/dom-bindings.d.ts +13 -0
- package/dist/zudo-react/dom-bindings.js +58 -0
- package/dist/zudo-react/dom-bindings.js.map +1 -0
- package/dist/zudo-react/escape.d.ts +2 -0
- package/dist/zudo-react/escape.js +7 -0
- package/dist/zudo-react/escape.js.map +1 -0
- package/dist/zudo-react/forms.d.ts +29 -0
- package/dist/zudo-react/forms.js +371 -0
- package/dist/zudo-react/forms.js.map +1 -0
- package/dist/zudo-react/hydrate.d.ts +4 -0
- package/dist/zudo-react/hydrate.js +912 -0
- package/dist/zudo-react/hydrate.js.map +1 -0
- package/dist/zudo-react/index.d.ts +47 -0
- package/dist/zudo-react/index.js +13 -0
- package/dist/zudo-react/index.js.map +1 -0
- package/dist/zudo-react/island-root-type.d.ts +1 -0
- package/dist/zudo-react/island-root-type.js +2 -0
- package/dist/zudo-react/island-root-type.js.map +1 -0
- package/dist/zudo-react/jsx-dev-runtime.d.ts +8 -0
- package/dist/zudo-react/jsx-dev-runtime.js +6 -0
- package/dist/zudo-react/jsx-dev-runtime.js.map +1 -0
- package/dist/zudo-react/jsx-runtime.d.ts +5 -0
- package/dist/zudo-react/jsx-runtime.js +7 -0
- package/dist/zudo-react/jsx-runtime.js.map +1 -0
- package/dist/zudo-react/jsx-types.d.ts +216 -0
- package/dist/zudo-react/jsx-types.js +2 -0
- package/dist/zudo-react/jsx-types.js.map +1 -0
- package/dist/zudo-react/props-transport.d.ts +2 -0
- package/dist/zudo-react/props-transport.js +95 -0
- package/dist/zudo-react/props-transport.js.map +1 -0
- package/dist/zudo-react/reactive-types.d.ts +8 -0
- package/dist/zudo-react/reactive-types.js +2 -0
- package/dist/zudo-react/reactive-types.js.map +1 -0
- package/dist/zudo-react/reactive.d.ts +20 -0
- package/dist/zudo-react/reactive.js +176 -0
- package/dist/zudo-react/reactive.js.map +1 -0
- package/dist/zudo-react/render-html.d.ts +3 -0
- package/dist/zudo-react/render-html.js +535 -0
- package/dist/zudo-react/render-html.js.map +1 -0
- package/dist/zudo-react/root.d.ts +20 -0
- package/dist/zudo-react/root.js +74 -0
- package/dist/zudo-react/root.js.map +1 -0
- package/dist/zudo-react/scheduler.d.ts +12 -0
- package/dist/zudo-react/scheduler.js +113 -0
- package/dist/zudo-react/scheduler.js.map +1 -0
- package/dist/zudo-react/scope.d.ts +42 -0
- package/dist/zudo-react/scope.js +220 -0
- package/dist/zudo-react/scope.js.map +1 -0
- package/dist/zudo-react/server.d.ts +15 -0
- package/dist/zudo-react/server.js +11 -0
- package/dist/zudo-react/server.js.map +1 -0
- package/dist/zudo-react/structure.d.ts +16 -0
- package/dist/zudo-react/structure.js +49 -0
- package/dist/zudo-react/structure.js.map +1 -0
- package/dist/zudo-react/vocabulary.d.ts +12 -0
- package/dist/zudo-react/vocabulary.js +96 -0
- package/dist/zudo-react/vocabulary.js.map +1 -0
- package/package.json +28 -24
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hydrate.js","sourceRoot":"","sources":["../../src/zudo-react/hydrate.ts"],"names":[],"mappings":"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","sourcesContent":["import { activateForms, prepareForms, reconcileForms, FormError, type FormPlan } from \"./forms.js\";\nimport { Fragment, isDescription, type Child, type Description } from \"./description.js\";\nimport { createScope, withScope, type RuntimeScope } from \"./scope.js\";\nimport { isReactive, read, styleText, setAttribute, bind, listener } from \"./dom-bindings.js\";\nimport {\n createRoot,\n diagnostic,\n report,\n rootPath,\n storedRoot,\n type RootHandle,\n type RootOptions,\n} from \"./root.js\";\nimport type { ReadonlySignal } from \"./reactive-types.js\";\nimport { subscribe } from \"./reactive.js\";\nimport { batch } from \"./scheduler.js\";\nimport { Show, For, showProps, forProps, keyed, keyPayload, view } from \"./structure.js\";\nimport type { Key } from \"./description.js\";\nimport {\n booleanAttrs,\n commonAttrs,\n dialectSuggestion,\n formProps,\n htmlAttrs,\n htmlTags,\n isDialectProp,\n reactiveModelSuggestion,\n svgAttrs,\n svgTags,\n voidTags,\n} from \"./vocabulary.js\";\n\nconst HTML = \"http://www.w3.org/1999/xhtml\";\nconst SVG = \"http://www.w3.org/2000/svg\";\nconst sensitive = new Set(\"template noscript xmp iframe noembed noframes plaintext\".split(\" \"));\nconst tableChildren: Record<string, Set<string>> = {\n table: new Set(\"caption colgroup thead tbody tfoot\".split(\" \")),\n thead: new Set([\"tr\"]),\n tbody: new Set([\"tr\"]),\n tfoot: new Set([\"tr\"]),\n tr: new Set([\"td\", \"th\"]),\n colgroup: new Set([\"col\"]),\n};\nconst restricted = new Set(\n \"title select optgroup option table thead tbody tfoot tr colgroup\".split(\" \"),\n);\nconst shapeAttrs: Record<string, string[]> = {\n input: [\"type\", \"form\"],\n select: [\"multiple\", \"form\"],\n option: [\"value\"],\n textarea: [\"form\"],\n};\nconst protocol = \"zudo-react/1\";\n\ntype Operation = (map: Map<Node, Node>, cleanups: Array<() => void>) => void;\ninterface BuildContext {\n readonly document: Document;\n readonly options: RootOptions;\n readonly container: Element;\n readonly root: RuntimeScope;\n scope: RuntimeScope;\n next: number;\n readonly operations: Operation[];\n readonly forms: FormPlan[];\n readonly formOwners: Map<FormPlan, Owned>;\n readonly opaque: Set<Node>;\n readonly textSlots: Set<Node>;\n}\ninterface Owned {\n scope: RuntimeScope;\n fragment: DocumentFragment;\n operations: Operation[];\n forms: FormPlan[];\n cleanups: Array<() => void>;\n}\nfunction owned(\n context: BuildContext,\n name: string,\n namespace: string,\n parentTag: string,\n path: string,\n factory: () => Child,\n initial: boolean,\n kind?: string,\n parentScope?: RuntimeScope,\n): Owned {\n const scope = (parentScope ?? context.scope).child(name);\n const fragment = context.document.createDocumentFragment();\n const operationsStart = context.operations.length;\n const formsStart = context.forms.length;\n const previous = context.scope;\n context.scope = scope;\n const cleanups: Array<() => void> = [];\n try {\n withScope(scope, () => {\n scope.onCleanup(() => {\n for (const cleanup of [...cleanups].reverse()) cleanup();\n });\n const output = factory();\n if (kind)\n marker(context, fragment, kind, () =>\n render(output, fragment, context, namespace, parentTag, path),\n );\n else render(output, fragment, context, namespace, parentTag, path);\n });\n const operations = context.operations.splice(operationsStart);\n const forms = initial ? context.forms.slice(formsStart) : context.forms.splice(formsStart);\n const instance = { scope, fragment, operations, forms, cleanups };\n if (initial)\n for (const form of forms)\n if (!context.formOwners.has(form)) context.formOwners.set(form, instance);\n return instance;\n } catch (error) {\n context.operations.length = operationsStart;\n context.forms.length = formsStart;\n scope.dispose();\n throw error;\n } finally {\n context.scope = previous;\n }\n}\nfunction installOwned(\n instance: Owned,\n map: Map<Node, Node>,\n context: BuildContext,\n mode: \"hydrate\" | \"mount\",\n): void {\n if (mode === \"mount\" && instance.forms.length) {\n const bindings = prepareForms(instance.forms, map, \"mount\", context.container);\n reconcileForms(bindings, \"mount\");\n activateForms(bindings, instance.scope, instance.cleanups, context.options, context.container);\n }\n for (const operation of instance.operations) operation(map, instance.cleanups);\n}\nfunction selfMap(fragment: DocumentFragment): Map<Node, Node> {\n const map = new Map<Node, Node>();\n const visit = (node: Node): void => {\n map.set(node, node);\n for (const child of node.childNodes) visit(child);\n };\n for (const node of fragment.childNodes) visit(node);\n return map;\n}\nclass Failure extends Error {\n constructor(\n readonly code: string,\n readonly phase: \"setup\" | \"preflight\" | \"commit\" | \"activation\",\n readonly expected: string,\n readonly actual: string,\n readonly path: string,\n ) {\n super(`${code}: ${expected}; got ${actual}`);\n }\n}\nfunction fail(\n code: string,\n phase: Failure[\"phase\"],\n expected: string,\n actual: string,\n path: string,\n): never {\n throw new Failure(code, phase, expected, actual, path);\n}\nfunction append(parent: Node, node: Node): void {\n if (node.nodeType === Node.TEXT_NODE && parent.lastChild?.nodeType === Node.TEXT_NODE) {\n parent.lastChild.textContent = (parent.lastChild.textContent ?? \"\") + (node.textContent ?? \"\");\n } else parent.appendChild(node);\n}\nfunction marker(\n context: BuildContext,\n parent: Node,\n kind: string,\n content: () => void,\n): [Comment, Comment] {\n const id = context.next++;\n const open = context.document.createComment(`zr:1:${id}:${kind}`);\n parent.appendChild(open);\n content();\n const close = context.document.createComment(`/zr:1:${id}`);\n parent.appendChild(close);\n if (kind === \"h\") context.opaque.add(open);\n if (kind === \"t\") context.textSlots.add(open);\n return [open, close];\n}\nfunction range(start: Node, end: Node): Node[] {\n const nodes: Node[] = [];\n for (let node: Node | null = start; node; node = node.nextSibling) {\n nodes.push(node);\n if (node === end) return nodes;\n }\n throw new Error(\"ZR_REGION_RANGE\");\n}\nfunction removeRange(start: Node, end: Node): void {\n for (const node of range(start, end)) node.parentNode?.removeChild(node);\n}\nfunction moveRange(start: Node, end: Node, before: Node): void {\n if (end.nextSibling === before) return;\n const parent = before.parentNode!;\n const nodes = range(start, end);\n if (nodes.includes(before)) return;\n const focused = parent.ownerDocument?.activeElement;\n const focusedInside =\n focused &&\n nodes.some((node) => node === focused || (node instanceof Element && node.contains(focused)));\n const selection =\n focusedInside && focused instanceof HTMLInputElement\n ? [focused.selectionStart, focused.selectionEnd]\n : null;\n for (const node of nodes) parent.insertBefore(node, before);\n if (focusedInside && focused instanceof HTMLElement) {\n focused.focus();\n if (\n selection &&\n focused instanceof HTMLInputElement &&\n selection[0] != null &&\n selection[1] != null\n )\n focused.setSelectionRange(selection[0], selection[1]);\n }\n}\nfunction containsRange(start: Node, end: Node, target: Node): boolean {\n if (!start.parentNode || start.parentNode !== end.parentNode) return false;\n return range(start, end).some(\n (node) => node === target || (node instanceof Element && node.contains(target)),\n );\n}\nfunction scalar(value: unknown, path: string): string {\n if (value == null || typeof value === \"boolean\") return \"\";\n if (typeof value === \"string\" || (typeof value === \"number\" && Number.isFinite(value)))\n return String(value);\n fail(\"ZR_CHILD\", \"setup\", \"scalar\", typeof value, path);\n}\nfunction validateRawHtml(value: unknown, tag: string, path: string): asserts value is string {\n if (\n typeof value !== \"string\" ||\n /<!--\\/?zr:1:|data-zfb-island(?:-skip-ssr)?\\s*=/.test(value) ||\n (tag === \"script\" && /<\\/script/i.test(value)) ||\n (tag === \"style\" && /<\\/style/i.test(value))\n )\n fail(\"ZR_RAW_HTML\", \"setup\", \"valid rawHtml\", typeof value, path);\n}\nfunction children(\n value: unknown,\n parent: Node,\n context: BuildContext,\n namespace: string,\n tag: string,\n path: string,\n): void {\n if (value == null || typeof value === \"boolean\") return;\n if (Array.isArray(value)) {\n value.forEach((entry, index) =>\n render(entry, parent, context, namespace, tag, `${path}[${index}]`),\n );\n } else render(value, parent, context, namespace, tag, path);\n}\nfunction validatePosition(tag: string, parent: string, context: BuildContext, path: string): void {\n if (sensitive.has(tag))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", \"hydratable element\", tag, path);\n if (tableChildren[parent] && !tableChildren[parent].has(tag))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", `valid ${parent} child`, tag, path);\n if (\n (parent === \"select\" && tag !== \"option\" && tag !== \"optgroup\") ||\n (parent === \"optgroup\" && tag !== \"option\")\n )\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", `valid ${parent} child`, tag, path);\n}\nfunction element(\n desc: Description,\n parent: Node,\n context: BuildContext,\n namespace: string,\n parentTag: string,\n path: string,\n): void {\n const tag = desc.type as string;\n validatePosition(tag, parentTag, context, path);\n const ownNamespace = tag === \"svg\" || namespace === SVG ? SVG : HTML;\n const custom = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)+$/.test(tag);\n if (ownNamespace === SVG ? !svgTags.has(tag) : !custom && !htmlTags.has(tag))\n fail(\"ZR_TAG\", \"setup\", \"supported element\", tag, path);\n const childNamespace = tag === \"foreignObject\" ? HTML : ownNamespace;\n const element = context.document.createElementNS(ownNamespace, tag);\n const props = desc.props;\n if (tag === \"select\" && read(props.multiple) === true)\n fail(\"ZR_MODEL_UNSUPPORTED\", \"preflight\", \"single select\", \"multiple\", path);\n if (voidTags.has(tag) && (\"children\" in props || \"rawHtml\" in props))\n fail(\"ZR_VOID_CHILDREN\", \"setup\", \"empty element\", tag, path);\n if (\"rawHtml\" in props && \"children\" in props)\n fail(\"ZR_RAW_HTML\", \"setup\", \"rawHtml without children\", tag, path);\n if (\n tag === \"textarea\" &&\n \"children\" in props &&\n (\"modelValue\" in props || \"defaultValue\" in props)\n )\n fail(\n \"ZR_MODEL_CONFLICT\",\n \"preflight\",\n \"textarea model/default without children\",\n \"children\",\n path,\n );\n context.forms.push({ element, props, path });\n for (const [name, original] of Object.entries(props)) {\n if (name === \"children\" || name === \"key\" || name === \"rawHtml\") continue;\n if (formProps.has(name)) {\n if (name === \"defaultValue\" && tag === \"input\") setAttribute(element, \"value\", original);\n if (name === \"defaultChecked\" && tag === \"input\") setAttribute(element, \"checked\", original);\n if (name === \"modelValue\" && tag === \"input\" && read(props.type) !== \"radio\")\n setAttribute(element, \"value\", read(original));\n if (name === \"modelChecked\" && tag === \"input\")\n setAttribute(element, \"checked\", read(original));\n continue;\n }\n if (isDialectProp(name, ownNamespace === SVG ? \"svg\" : \"html\", custom))\n fail(\n \"ZR_PROP_DIALECT\",\n \"setup\",\n dialectSuggestion(name, ownNamespace === SVG ? \"svg\" : \"html\", custom) ??\n \"HTML-spelled prop\",\n name,\n path,\n );\n if (name === \"ref\") {\n if (!original || typeof original !== \"object\" || !(\"current\" in original))\n fail(\"ZR_REF\", \"setup\", \"object ref\", typeof original, path);\n const ref = original as { current: Element | null };\n context.operations.push((map, cleanups) => {\n const node = map.get(element) as Element;\n ref.current = node;\n cleanups.push(() => {\n if (ref.current === node) ref.current = null;\n });\n });\n continue;\n }\n if (name.startsWith(\"on:\")) {\n const parsed = listener(name);\n if (!parsed || typeof original !== \"function\")\n fail(\"ZR_LISTENER\", \"setup\", \"native listener\", name, path);\n context.operations.push((map, cleanups) => {\n const node = map.get(element) as Element;\n const handler = (event: Event) => {\n try {\n const result: unknown = (original as (event: Event) => unknown)(event);\n if (result && typeof result === \"object\" && \"then\" in result)\n Promise.resolve(result).catch((error) =>\n report(\n context.options,\n diagnostic(\n context.options,\n \"ZR_EVENT_ERROR\",\n \"update\",\n `${rootPath(context.container)}${path}`,\n \"handler success\",\n String(error),\n ),\n ),\n );\n } catch (error) {\n report(\n context.options,\n diagnostic(\n context.options,\n \"ZR_EVENT_ERROR\",\n \"update\",\n `${rootPath(context.container)}${path}`,\n \"handler success\",\n String(error),\n ),\n );\n }\n };\n node.addEventListener(parsed.name, handler, parsed.capture);\n cleanups.push(() => node.removeEventListener(parsed.name, handler, parsed.capture));\n });\n continue;\n }\n if (name === \"value\" || name === \"checked\") {\n if (isReactive(original)) {\n const suggestion = reactiveModelSuggestion(\n tag,\n name,\n String(read(props.type) ?? \"text\"),\n custom,\n );\n fail(\"ZR_MODEL_UNSUPPORTED\", \"preflight\", suggestion ?? \"static value\", name, path);\n }\n }\n if (\n !/^[A-Za-z_:][A-Za-z0-9_:.-]*$/.test(name) ||\n (!custom &&\n !commonAttrs.has(name) &&\n !(ownNamespace === SVG ? svgAttrs.has(name) : htmlAttrs.has(name)) &&\n !/^data-[\\w.-]+$/.test(name) &&\n !/^aria-[\\w.-]+$/.test(name) &&\n !/^on[a-z]+$/.test(name))\n )\n fail(\"ZR_ATTRIBUTE\", \"setup\", \"supported attribute\", name, path);\n const initial = read(original);\n if (custom && initial != null && typeof initial !== \"string\")\n fail(\"ZR_ATTRIBUTE\", \"setup\", \"custom element string attribute\", name, path);\n if (/^on[a-z]/.test(name) && typeof initial === \"function\")\n fail(\"ZR_PROP_DIALECT\", \"setup\", \"on:event\", name, path);\n if (initial != null) {\n if (\n name === \"start\" &&\n typeof initial !== \"string\" &&\n !(typeof initial === \"number\" && Number.isFinite(initial))\n )\n fail(\"ZR_ATTRIBUTE\", \"setup\", \"string or finite number\", typeof initial, path);\n else if (\n ownNamespace === SVG &&\n (name === \"width\" || name === \"height\") &&\n typeof initial !== \"string\" &&\n !(typeof initial === \"number\" && Number.isFinite(initial))\n )\n fail(\"ZR_ATTRIBUTE\", \"setup\", \"SVG dimension string or number\", typeof initial, path);\n if (name === \"style\") styleText(initial);\n else if (booleanAttrs.has(name) && typeof initial !== \"boolean\")\n fail(\"ZR_ATTRIBUTE\", \"setup\", \"boolean\", typeof initial, path);\n else if (\n typeof initial !== \"string\" &&\n typeof initial !== \"number\" &&\n typeof initial !== \"boolean\"\n )\n fail(\"ZR_ATTRIBUTE\", \"setup\", \"scalar\", typeof initial, path);\n setAttribute(element, name, initial);\n }\n if (isReactive(original)) {\n const bindingScope = context.scope;\n context.operations.push((map, cleanups) => {\n const node = map.get(element) as Element;\n const subscription = bind(\n original,\n bindingScope,\n context.options,\n context.container,\n path,\n (value) => {\n if (\n name === \"start\" &&\n value != null &&\n typeof value !== \"string\" &&\n !(typeof value === \"number\" && Number.isFinite(value))\n )\n throw new TypeError(\"ZR_ATTRIBUTE: start requires a string or finite number\");\n if (\n ownNamespace === SVG &&\n (name === \"width\" || name === \"height\") &&\n value != null &&\n typeof value !== \"string\" &&\n !(typeof value === \"number\" && Number.isFinite(value))\n )\n throw new TypeError(\n `ZR_ATTRIBUTE: SVG dimension ${name} requires a string or number`,\n );\n setAttribute(node, name, value);\n },\n initial,\n );\n cleanups.push(() => subscription.dispose());\n });\n }\n }\n if (\"rawHtml\" in props) {\n const raw = props.rawHtml;\n if (ownNamespace === SVG || [\"textarea\", \"title\", \"select\", \"option\"].includes(tag))\n fail(\"ZR_RAW_HTML\", \"setup\", \"ordinary HTML container\", tag, path);\n if ((tag === \"script\" || tag === \"style\") && isReactive(raw))\n fail(\"ZR_RAW_HTML\", \"setup\", \"static rawHtml\", tag, path);\n const initial = read(raw);\n validateRawHtml(initial, tag, path);\n let region: [Comment, Comment] | undefined;\n if (tag === \"script\" || tag === \"style\") element.innerHTML = initial;\n else\n region = marker(context, element, \"h\", () => {\n element.insertAdjacentHTML(\"beforeend\", initial);\n });\n const bindingScope = context.scope;\n if (isReactive(raw) && region) {\n const [open, close] = region;\n context.operations.push((map, cleanups) => {\n const node = map.get(element) as Element;\n const start = map.get(open)!;\n const end = map.get(close)!;\n let previous = initial;\n const subscription = bind(\n raw as ReadonlySignal<string>,\n bindingScope,\n context.options,\n context.container,\n path,\n (value) => {\n validateRawHtml(value, tag, path);\n if (value === previous) return;\n const template = context.document.createElement(\"template\");\n template.innerHTML = value;\n if (start.parentNode !== node || end.parentNode !== node)\n throw new Error(\"ZR_REGION_RANGE\");\n for (const child of range(start, end).slice(1, -1)) node.removeChild(child);\n node.insertBefore(template.content, end);\n previous = value;\n },\n initial,\n );\n cleanups.push(() => subscription.dispose());\n });\n }\n } else if (\n tag === \"textarea\" &&\n (props.modelValue !== undefined || props.defaultValue !== undefined)\n ) {\n const value = String(read(props.modelValue ?? props.defaultValue));\n element.textContent = value;\n } else if (restricted.has(tag)) {\n if (tag === \"title\" || tag === \"option\") {\n const value = props.children;\n if (isReactive(value) || isDescription(value))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", \"static text\", tag, path);\n append(element, context.document.createTextNode(scalar(value, path)));\n } else children(props.children, element, context, childNamespace, tag, `${path}/${tag}`);\n } else children(props.children, element, context, childNamespace, tag, `${path}/${tag}`);\n if (tag === \"select\" && (props.modelValue !== undefined || props.defaultValue !== undefined)) {\n const value = String(read(props.modelValue ?? props.defaultValue));\n const select = element as HTMLSelectElement;\n if (![...select.options].some((option) => option.value === value))\n fail(\"ZR_MODEL_VALUE\", \"preflight\", \"matching select option\", value, path);\n for (const option of select.options) option.selected = option.value === value;\n }\n if (tag === \"input\" && read(props.type) === \"radio\" && props.modelValue !== undefined)\n setAttribute(element, \"checked\", read(props.modelValue) === read(props.value));\n parent.appendChild(element);\n}\nfunction render(\n value: unknown,\n parent: Node,\n context: BuildContext,\n namespace: string,\n parentTag: string,\n path: string,\n): void {\n if (value == null || typeof value === \"boolean\") return;\n if (Array.isArray(value)) {\n marker(context, parent, \"f\", () =>\n children(value, parent, context, namespace, parentTag, path),\n );\n return;\n }\n if (isReactive(value)) {\n const initialValue = read(value) as string | number | boolean | null | undefined;\n const initial = scalar(initialValue, path);\n marker(context, parent, \"t\", () => {\n if (initial) parent.appendChild(context.document.createTextNode(initial));\n });\n const opener = parent.childNodes[parent.childNodes.length - (initial ? 3 : 2)]!;\n const bindingScope = context.scope;\n context.operations.push((map, cleanups) => {\n const start = map.get(opener)!;\n const end =\n start.nextSibling?.nodeType === Node.TEXT_NODE\n ? start.nextSibling.nextSibling\n : start.nextSibling;\n let textNode =\n start.nextSibling?.nodeType === Node.TEXT_NODE ? (start.nextSibling as Text) : null;\n if (!textNode) {\n textNode = context.document.createTextNode(\"\");\n start.parentNode!.insertBefore(textNode, end ?? null);\n }\n const slot = textNode;\n const subscription = bind(\n value as ReadonlySignal<string | number | boolean | null | undefined>,\n bindingScope,\n context.options,\n context.container,\n path,\n (next) => {\n const text = scalar(next, path);\n if (slot.data !== text) slot.data = text;\n },\n initialValue,\n );\n cleanups.push(() => subscription.dispose());\n });\n return;\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n append(parent, context.document.createTextNode(scalar(value, path)));\n return;\n }\n if (!isDescription(value)) fail(\"ZR_CHILD\", \"setup\", \"description\", typeof value, path);\n if (value.type === Fragment) {\n marker(context, parent, \"f\", () =>\n children(value.props.children, parent, context, namespace, parentTag, path),\n );\n return;\n }\n if (value.type === Show) {\n if (restricted.has(parentTag))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", \"flow region\", parentTag, path);\n const props = showProps(value);\n if (\n !isReactive(props.when) ||\n typeof props.children !== \"function\" ||\n (props.fallback !== undefined && typeof props.fallback !== \"function\")\n )\n fail(\"ZR_CHILD\", \"setup\", \"Show signal and factories\", \"invalid props\", path);\n const selected = read(props.when);\n if (typeof selected !== \"boolean\")\n fail(\"ZR_CHILD\", \"setup\", \"boolean Show.when\", typeof selected, path);\n let initial: Owned | null = null;\n const ends = marker(context, parent, `s:${selected ? 1 : 0}`, () => {\n const factory = selected ? props.children : props.fallback;\n if (factory) {\n initial = owned(context, \"Show\", namespace, parentTag, path, factory, true);\n parent.appendChild(initial.fragment);\n }\n });\n const owner = context.scope;\n context.operations.push((map, cleanups) => {\n const start = map.get(ends[0])!;\n const end = map.get(ends[1])!;\n let current: Owned | null = initial;\n let shown = selected;\n if (current) installOwned(current, map, context, \"hydrate\");\n const subscription = subscribe(\n () => {\n const next = props.when.value;\n if (next === shown) return;\n const factory = next ? props.children : props.fallback;\n let replacement: Owned | null = null;\n try {\n if (factory)\n replacement = owned(\n context,\n \"Show\",\n namespace,\n parentTag,\n path,\n factory,\n false,\n undefined,\n owner,\n );\n const replacementMap = replacement ? selfMap(replacement.fragment) : null;\n if (replacement && replacement.forms.length)\n prepareForms(replacement.forms, replacementMap!, \"mount\", context.container);\n if (current) {\n current.scope.dispose();\n let node = start.nextSibling;\n while (node && node !== end) {\n const following = node.nextSibling;\n node.parentNode?.removeChild(node);\n node = following;\n }\n }\n if (replacement) {\n end.parentNode!.insertBefore(replacement.fragment, end);\n installOwned(replacement, replacementMap!, context, \"mount\");\n replacement.scope.activate();\n }\n current = replacement;\n shown = next;\n } catch (error) {\n replacement?.scope.dispose();\n throw error;\n }\n },\n {\n active: () => owner.active,\n report: (code, actual) =>\n report(\n context.options,\n diagnostic(context.options, code, \"update\", path, \"Show update\", actual),\n ),\n },\n );\n subscription.run();\n cleanups.push(() => subscription.dispose());\n });\n return;\n }\n if (value.type === For) {\n if (restricted.has(parentTag))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", \"flow region\", parentTag, path);\n const props = forProps<unknown>(value);\n if (\n !isReactive(props.each) ||\n typeof props.by !== \"function\" ||\n typeof props.children !== \"function\"\n )\n fail(\"ZR_CHILD\", \"setup\", \"For signal, key and factory\", \"invalid props\", path);\n const items = read(props.each);\n if (!Array.isArray(items)) fail(\"ZR_CHILD\", \"setup\", \"array For.each\", typeof items, path);\n const keys = keyed(items, props.by, path);\n type Item = {\n key: Key;\n owned: Owned;\n start: Node;\n end: Node;\n item: ReturnType<typeof view<unknown>>;\n index: ReturnType<typeof view<number>>;\n };\n const entries: Item[] = [];\n const ends = marker(context, parent, \"l\", () => {\n items.forEach((item, index) => {\n const key = keys[index]!;\n const itemView = view(item);\n const indexView = view(index);\n const instance = owned(\n context,\n \"For\",\n namespace,\n parentTag,\n path,\n () => props.children(itemView.value, indexView.value),\n true,\n `i:${keyPayload(key)}`,\n );\n const nodes = [...instance.fragment.childNodes];\n entries.push({\n key,\n owned: instance,\n start: nodes[0]!,\n end: nodes[nodes.length - 1]!,\n item: itemView,\n index: indexView,\n });\n parent.appendChild(instance.fragment);\n });\n });\n const owner = context.scope;\n context.operations.push((map, cleanups) => {\n let current = entries.map((entry) => ({\n ...entry,\n start: map.get(entry.start)!,\n end: map.get(entry.end)!,\n }));\n for (const entry of current) installOwned(entry.owned, map, context, \"hydrate\");\n const end = map.get(ends[1])!;\n const subscription = subscribe(\n () => {\n const next = props.each.value;\n if (!Array.isArray(next)) throw new TypeError(`ZR_CHILD: For.each at ${path}`);\n let nextKeys: Key[];\n try {\n nextKeys = keyed(next, props.by, path);\n } catch (error) {\n const detail = String(error);\n const code = detail.includes(\"ZR_DUPLICATE_KEY\")\n ? \"ZR_DUPLICATE_KEY\"\n : detail.includes(\"ZR_KEY_TYPE\")\n ? \"ZR_KEY_TYPE\"\n : \"ZR_SUBSCRIBER_ERROR\";\n report(\n context.options,\n diagnostic(\n context.options,\n code,\n \"update\",\n path,\n \"unique string or finite number keys\",\n detail,\n ),\n );\n return;\n }\n const old = new Map(current.map((entry) => [entry.key, entry]));\n const created: Item[] = [];\n try {\n const ordered = nextKeys.map((key, index) => {\n const retained = old.get(key);\n if (retained) return retained;\n const itemView = view(next[index]);\n const indexView = view(index);\n const instance = owned(\n context,\n \"For\",\n namespace,\n parentTag,\n path,\n () => props.children(itemView.value, indexView.value),\n false,\n `i:${keyPayload(key)}`,\n owner,\n );\n const nodes = [...instance.fragment.childNodes];\n const entry = {\n key,\n owned: instance,\n start: nodes[0]!,\n end: nodes[nodes.length - 1]!,\n item: itemView,\n index: indexView,\n };\n created.push(entry);\n return entry;\n });\n for (const entry of created)\n if (entry.owned.forms.length)\n prepareForms(\n entry.owned.forms,\n selfMap(entry.owned.fragment),\n \"mount\",\n context.container,\n );\n for (const entry of current)\n if (!nextKeys.includes(entry.key)) {\n entry.owned.scope.dispose();\n removeRange(entry.start, entry.end);\n }\n const focused = end.ownerDocument?.activeElement;\n const anchored =\n focused && current.find((entry) => containsRange(entry.start, entry.end, focused));\n const anchorIndex = anchored ? ordered.indexOf(anchored) : -1;\n const place = (index: number, before: Node): Node => {\n const entry = ordered[index]!;\n if (created.includes(entry)) {\n const itemMap = selfMap(entry.owned.fragment);\n before.parentNode!.insertBefore(entry.owned.fragment, before);\n installOwned(entry.owned, itemMap, context, \"mount\");\n entry.owned.scope.activate();\n } else moveRange(entry.start, entry.end, before);\n return entry.start;\n };\n let before = end;\n for (let index = ordered.length - 1; index > anchorIndex; index--)\n before = place(index, before);\n if (anchorIndex >= 0) {\n before = anchored!.start;\n for (let index = anchorIndex - 1; index >= 0; index--) before = place(index, before);\n }\n batch(() =>\n ordered.forEach((entry, index) => {\n entry.item.write(next[index]);\n entry.index.write(index);\n }),\n );\n current = ordered;\n } catch (error) {\n for (const entry of created) entry.owned.scope.dispose();\n throw error;\n }\n },\n {\n active: () => owner.active,\n report: (code, actual) =>\n report(\n context.options,\n diagnostic(context.options, code, \"update\", path, \"For update\", actual),\n ),\n },\n );\n subscription.run();\n cleanups.push(() => subscription.dispose());\n });\n return;\n }\n if (typeof value.type === \"string\") {\n element(value, parent, context, namespace, parentTag, path);\n return;\n }\n if (typeof value.type !== \"function\")\n fail(\"ZR_CHILD\", \"setup\", \"component\", typeof value.type, path);\n if (restricted.has(parentTag))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", \"intrinsic child\", \"component\", path);\n const component = value.type;\n const childScope = context.scope.child(component.name || \"Anonymous\");\n const previous = context.scope;\n context.scope = childScope;\n try {\n marker(context, parent, \"c\", () => {\n const output = withScope(childScope, () => component(value.props));\n if (output && typeof output === \"object\" && \"then\" in output)\n fail(\"ZR_ASYNC_COMPONENT\", \"setup\", \"synchronous component\", \"promise\", path);\n render(output, parent, context, namespace, parentTag, path);\n });\n } finally {\n context.scope = previous;\n }\n}\nfunction normalize(text: string, pre: boolean): string {\n const line = text.replace(/\\r\\n?/g, \"\\n\");\n return pre ? line : line.replace(/[\\t\\n\\f\\r ]+/g, \" \").replace(/^ | $/g, \"\");\n}\nfunction compare(\n expected: Node,\n actual: Node,\n map: Map<Node, Node>,\n context: BuildContext,\n path: string,\n pre = false,\n): void {\n if (expected.nodeType !== actual.nodeType)\n fail(\"ZR_HYDRATION_MISMATCH\", \"preflight\", expected.nodeName, actual.nodeName, path);\n map.set(expected, actual);\n if (expected.nodeType === Node.TEXT_NODE) {\n if (normalize(expected.textContent ?? \"\", pre) !== normalize(actual.textContent ?? \"\", pre))\n fail(\"ZR_HYDRATION_MISMATCH\", \"preflight\", \"matching text\", \"different text\", path);\n return;\n }\n if (expected.nodeType === Node.COMMENT_NODE) {\n if (expected.textContent !== actual.textContent)\n fail(\n \"ZR_HYDRATION_MISMATCH\",\n \"preflight\",\n expected.textContent ?? \"\",\n actual.textContent ?? \"\",\n path,\n );\n return;\n }\n if (expected.nodeType === Node.ELEMENT_NODE) {\n const wanted = expected as Element;\n const found = actual as Element;\n if (wanted.localName !== found.localName || wanted.namespaceURI !== found.namespaceURI)\n fail(\n \"ZR_HYDRATION_MISMATCH\",\n \"preflight\",\n `${wanted.namespaceURI}:${wanted.localName}`,\n `${found.namespaceURI}:${found.localName}`,\n path,\n );\n const shape = [...(shapeAttrs[wanted.localName] ?? [])];\n if (wanted.localName === \"input\" && (wanted.getAttribute(\"type\") ?? \"text\") === \"radio\")\n shape.push(\"name\", \"value\");\n for (const name of shape) {\n const expectedValue =\n name === \"type\" && wanted.localName === \"input\"\n ? (wanted.getAttribute(name) ?? \"text\")\n : wanted.getAttribute(name);\n const actualValue =\n name === \"type\" && wanted.localName === \"input\"\n ? (found.getAttribute(name) ?? \"text\")\n : found.getAttribute(name);\n if (expectedValue !== actualValue)\n fail(\n \"ZR_HYDRATION_MISMATCH\",\n \"preflight\",\n `${name}=${expectedValue}`,\n `${name}=${actualValue}`,\n path,\n );\n }\n if (wanted.localName === \"script\" || wanted.localName === \"style\") return;\n compareChildren(wanted, found, map, context, path, pre || wanted.localName === \"pre\");\n }\n}\nfunction significant(nodes: Node[], pre: boolean): Node[] {\n return pre\n ? nodes\n : nodes.filter(\n (node) =>\n node.nodeType !== Node.TEXT_NODE || normalize(node.textContent ?? \"\", false) !== \"\",\n );\n}\nfunction matchingClose(nodes: Node[], start: number): number {\n const open = nodes[start]!.textContent ?? \"\";\n const id = /^zr:1:(\\d+):/.exec(open)?.[1];\n if (id === undefined) return -1;\n let depth = 0;\n for (let i = start + 1; i < nodes.length; i++) {\n const value = nodes[i]!.textContent;\n if (value?.startsWith(\"zr:1:\")) depth++;\n else if (value?.startsWith(\"/zr:1:\")) {\n if (depth) depth--;\n else return value === `/zr:1:${id}` ? i : -1;\n }\n }\n return -1;\n}\nfunction compareChildren(\n expected: Node,\n actual: Node,\n map: Map<Node, Node>,\n context: BuildContext,\n path: string,\n pre = false,\n): void {\n const wants = significant([...expected.childNodes], pre);\n const has = significant([...actual.childNodes], pre);\n let i = 0;\n let j = 0;\n while (i < wants.length && j < has.length) {\n const wanted = wants[i]!;\n const found = has[j]!;\n const childPath = `${path}/${wanted.nodeName.toLowerCase()}[${i}]`;\n if (context.opaque.has(wanted)) {\n compare(wanted, found, map, context, childPath, pre);\n const wantedEnd = matchingClose(wants, i);\n const foundEnd = matchingClose(has, j);\n if (wantedEnd < 0 || foundEnd < 0)\n fail(\n \"ZR_HYDRATION_MISMATCH\",\n \"preflight\",\n \"balanced rawHtml marker\",\n \"missing marker\",\n childPath,\n );\n map.set(wants[wantedEnd]!, has[foundEnd]!);\n i = wantedEnd + 1;\n j = foundEnd + 1;\n continue;\n }\n if (context.textSlots.has(wanted)) {\n compare(wanted, found, map, context, childPath, pre);\n const wantedEnd = matchingClose(wants, i);\n const foundEnd = matchingClose(has, j);\n if (wantedEnd !== i + 1 && wantedEnd !== i + 2)\n fail(\"ZR_HYDRATION_MISMATCH\", \"preflight\", \"single text slot\", \"invalid slot\", childPath);\n if (foundEnd !== j + 1 && foundEnd !== j + 2)\n fail(\"ZR_HYDRATION_MISMATCH\", \"preflight\", \"single text slot\", \"invalid slot\", childPath);\n if (wantedEnd === i + 2) {\n if (foundEnd !== j + 2)\n fail(\"ZR_HYDRATION_MISMATCH\", \"preflight\", \"text slot\", \"empty slot\", childPath);\n compare(wants[i + 1]!, has[j + 1]!, map, context, childPath, pre);\n } else if (foundEnd === j + 2 && normalize(has[j + 1]!.textContent ?? \"\", pre) !== \"\")\n fail(\"ZR_HYDRATION_MISMATCH\", \"preflight\", \"empty slot\", \"nonempty slot\", childPath);\n map.set(wants[wantedEnd]!, has[foundEnd]!);\n i = wantedEnd + 1;\n j = foundEnd + 1;\n continue;\n }\n compare(wanted, found, map, context, childPath, pre);\n i++;\n j++;\n }\n if (i !== wants.length || j !== has.length)\n fail(\n \"ZR_HYDRATION_MISMATCH\",\n \"preflight\",\n `${wants.length} children`,\n `${has.length} children`,\n path,\n );\n}\nfunction validate(container: Element, options: RootOptions, mode: \"hydrate\" | \"mount\"): void {\n const path = rootPath(container);\n if (storedRoot(container) && !storedRoot(container)!.disposed)\n fail(\"ZR_DUPLICATE_ROOT\", \"preflight\", \"unowned root\", \"live root\", path);\n if (options.signal?.aborted || !container.isConnected)\n fail(\"ZR_CANCELLED\", \"preflight\", \"connected root\", \"aborted or disconnected\", path);\n const component =\n container.getAttribute(mode === \"hydrate\" ? \"data-zfb-island\" : \"data-zfb-island-skip-ssr\") ??\n container.getAttribute(\"data-zfb-island\");\n const transport = container.getAttribute(\"data-zfb-transport\");\n const serverProtocol = container.getAttribute(\"data-zfb-protocol\");\n const build = container.getAttribute(\"data-zfb-build\");\n if (\n component !== options.identity.component ||\n transport !== \"json/1\" ||\n serverProtocol !== protocol ||\n build !== options.identity.build\n )\n fail(\n \"ZR_IDENTITY\",\n \"preflight\",\n `${options.identity.component}/${protocol}/${options.identity.build}/json/1`,\n `${component}/${serverProtocol}/${build}/${transport}`,\n path,\n );\n if (container.querySelector(\"[data-zfb-island], [data-zfb-island-skip-ssr]\"))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", \"no nested root\", \"nested root\", path);\n}\nfunction execute(\n node: Child,\n container: Element,\n options: RootOptions,\n mode: \"hydrate\" | \"mount\",\n): RootHandle | null {\n let scope: RuntimeScope | undefined;\n const cleanups: Array<() => void> = [];\n let committed = false;\n try {\n validate(container, options, mode);\n if (\n !isDescription(node) ||\n typeof node.type !== \"function\" ||\n ((node.type as typeof node.type & { displayName?: string }).displayName ?? node.type.name) !==\n options.identity.component\n )\n fail(\n \"ZR_IDENTITY\",\n \"preflight\",\n options.identity.component,\n \"different child component\",\n rootPath(container),\n );\n scope = createScope({\n component: options.identity.component,\n ...(options.report ? { reporter: options.report } : {}),\n protocol,\n build: options.identity.build,\n path: rootPath(container),\n });\n const context: BuildContext = {\n document: container.ownerDocument,\n options,\n container,\n root: scope,\n scope,\n next: 0,\n operations: [],\n forms: [],\n formOwners: new Map(),\n opaque: new Set(),\n textSlots: new Set(),\n };\n const fragment = container.ownerDocument.createDocumentFragment();\n render(node, fragment, context, HTML, \"\", rootPath(container));\n const built = [...fragment.childNodes];\n const map = new Map<Node, Node>();\n if (mode === \"hydrate\") compareChildren(fragment, container, map, context, rootPath(container));\n else {\n for (const expected of built) {\n const visit = (item: Node): void => {\n map.set(item, item);\n for (const child of item.childNodes) visit(child);\n };\n visit(expected);\n }\n }\n const formBindings = prepareForms(context.forms, map, mode, container);\n if (options.signal?.aborted || !container.isConnected)\n fail(\n \"ZR_CANCELLED\",\n \"commit\",\n \"connected root\",\n \"aborted or disconnected\",\n rootPath(container),\n );\n reconcileForms(formBindings, mode);\n if (mode === \"mount\") container.replaceChildren(fragment);\n committed = true;\n for (const operation of context.operations) operation(map, cleanups);\n const formOwnerByNode = new Map<Node, Owned>();\n for (const [plan, owner] of context.formOwners)\n formOwnerByNode.set(map.get(plan.element)!, owner);\n const rootForms = formBindings.filter((binding) => !formOwnerByNode.has(binding.node));\n activateForms(rootForms, scope, cleanups, options, container);\n const ownedForms = new Map<Owned, typeof formBindings>();\n for (const binding of formBindings) {\n const owner = formOwnerByNode.get(binding.node);\n if (owner) ownedForms.set(owner, [...(ownedForms.get(owner) ?? []), binding]);\n }\n for (const [owner, bindings] of ownedForms)\n activateForms(bindings, owner.scope, owner.cleanups, options, container);\n const owned = mode === \"hydrate\" ? [...container.childNodes] : built;\n const handle = createRoot(container, options, scope, cleanups, owned);\n try {\n scope.activate();\n } catch (error) {\n handle.dispose();\n report(\n options,\n diagnostic(\n options,\n \"ZR_ACTIVATION_ERROR\",\n \"activation\",\n rootPath(container),\n \"activation\",\n String(error),\n ),\n );\n return null;\n }\n return handle;\n } catch (error) {\n for (const cleanup of [...cleanups].reverse())\n try {\n cleanup();\n } catch {\n /* preserve original error */\n }\n scope?.dispose();\n const failure =\n error instanceof Failure\n ? error\n : error instanceof FormError\n ? new Failure(error.code, \"preflight\", \"valid form model\", error.detail, error.path)\n : new Failure(\n error instanceof TypeError && /ZR_(DUPLICATE_KEY|KEY_TYPE):/.test(error.message)\n ? error.message.match(/ZR_(DUPLICATE_KEY|KEY_TYPE):/)![0].slice(0, -1)\n : \"ZR_HYDRATION_MISMATCH\",\n committed ? \"commit\" : \"setup\",\n \"successful root\",\n String(error),\n rootPath(container),\n );\n report(\n options,\n diagnostic(\n options,\n failure.code,\n failure.phase,\n failure.path,\n failure.expected,\n failure.actual,\n ),\n );\n return null;\n }\n}\nexport function hydrate(node: Child, container: Element, options: RootOptions): RootHandle | null {\n return execute(node, container, options, \"hydrate\");\n}\nexport function mount(node: Child, container: Element, options: RootOptions): RootHandle | null {\n return execute(node, container, options, \"mount\");\n}\n"]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { Child, ElementType } from "./description.js";
|
|
2
|
+
export { Fragment, isDescription, flattenChildren } from "./description.js";
|
|
3
|
+
export type { Key, Scalar, Child, Component, ElementType, Description } from "./description.js";
|
|
4
|
+
export type { ReadonlySignal, Signal } from "./reactive-types.js";
|
|
5
|
+
export { signal, computed } from "./reactive.js";
|
|
6
|
+
export { batch, flush } from "./scheduler.js";
|
|
7
|
+
export { getScope } from "./scope.js";
|
|
8
|
+
export { Show, For } from "./structure.js";
|
|
9
|
+
export type Cleanup = () => void;
|
|
10
|
+
export interface Scope {
|
|
11
|
+
readonly abortSignal: AbortSignal;
|
|
12
|
+
onActivate(fn: () => void | Cleanup): void;
|
|
13
|
+
onCleanup(fn: Cleanup): void;
|
|
14
|
+
effect(fn: () => void | Cleanup): void;
|
|
15
|
+
}
|
|
16
|
+
export interface Ref<T> {
|
|
17
|
+
current: T | null;
|
|
18
|
+
}
|
|
19
|
+
export type Style = string | Readonly<Record<string, string | number | null | undefined>>;
|
|
20
|
+
export type Listener<E extends Event = Event> = (event: E) => void | Promise<void>;
|
|
21
|
+
export interface IslandIdentity {
|
|
22
|
+
readonly component: string;
|
|
23
|
+
readonly build: string;
|
|
24
|
+
}
|
|
25
|
+
export interface Diagnostic {
|
|
26
|
+
readonly code: string;
|
|
27
|
+
readonly phase: "setup" | "preflight" | "commit" | "activation" | "update" | "cleanup";
|
|
28
|
+
readonly component: string;
|
|
29
|
+
readonly componentStack: readonly string[];
|
|
30
|
+
readonly path: string;
|
|
31
|
+
readonly expected: string;
|
|
32
|
+
readonly actual: string;
|
|
33
|
+
readonly protocol: string;
|
|
34
|
+
readonly build: string;
|
|
35
|
+
}
|
|
36
|
+
export type Reporter = (diagnostic: Diagnostic) => void;
|
|
37
|
+
export interface ShowProps {
|
|
38
|
+
when: import("./reactive-types.js").ReadonlySignal<boolean>;
|
|
39
|
+
children: () => Child;
|
|
40
|
+
fallback?: (() => Child) | undefined;
|
|
41
|
+
}
|
|
42
|
+
export interface ForProps<T> {
|
|
43
|
+
each: import("./reactive-types.js").ReadonlySignal<readonly T[]>;
|
|
44
|
+
by: (item: T) => import("./description.js").Key;
|
|
45
|
+
children: (item: import("./reactive-types.js").ReadonlySignal<T>, index: import("./reactive-types.js").ReadonlySignal<number>) => Child;
|
|
46
|
+
}
|
|
47
|
+
export declare function h(type: ElementType, props: Record<string, unknown> | null, ...children: Child[]): import("./description.js").Description;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createDescription } from "./description.js";
|
|
2
|
+
export { Fragment, isDescription, flattenChildren } from "./description.js";
|
|
3
|
+
export { signal, computed } from "./reactive.js";
|
|
4
|
+
export { batch, flush } from "./scheduler.js";
|
|
5
|
+
export { getScope } from "./scope.js";
|
|
6
|
+
export { Show, For } from "./structure.js";
|
|
7
|
+
export function h(type, props, ...children) {
|
|
8
|
+
const copy = { ...props };
|
|
9
|
+
if (children.length > 0)
|
|
10
|
+
copy.children = children.length === 1 ? children[0] : children;
|
|
11
|
+
return createDescription(type, copy);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/zudo-react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAG5E,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AA4C3C,MAAM,UAAU,CAAC,CAAC,IAAiB,EAAE,KAAqC,EAAE,GAAG,QAAiB;IAC9F,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IAC1B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACxF,OAAO,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC","sourcesContent":["import { createDescription } from \"./description.js\";\nimport type { Child, ElementType } from \"./description.js\";\n\nexport { Fragment, isDescription, flattenChildren } from \"./description.js\";\nexport type { Key, Scalar, Child, Component, ElementType, Description } from \"./description.js\";\nexport type { ReadonlySignal, Signal } from \"./reactive-types.js\";\nexport { signal, computed } from \"./reactive.js\";\nexport { batch, flush } from \"./scheduler.js\";\nexport { getScope } from \"./scope.js\";\nexport { Show, For } from \"./structure.js\";\n\nexport type Cleanup = () => void;\nexport interface Scope {\n readonly abortSignal: AbortSignal;\n onActivate(fn: () => void | Cleanup): void;\n onCleanup(fn: Cleanup): void;\n effect(fn: () => void | Cleanup): void;\n}\nexport interface Ref<T> {\n current: T | null;\n}\nexport type Style = string | Readonly<Record<string, string | number | null | undefined>>;\nexport type Listener<E extends Event = Event> = (event: E) => void | Promise<void>;\nexport interface IslandIdentity {\n readonly component: string;\n readonly build: string;\n}\nexport interface Diagnostic {\n readonly code: string;\n readonly phase: \"setup\" | \"preflight\" | \"commit\" | \"activation\" | \"update\" | \"cleanup\";\n readonly component: string;\n readonly componentStack: readonly string[];\n readonly path: string;\n readonly expected: string;\n readonly actual: string;\n readonly protocol: string;\n readonly build: string;\n}\nexport type Reporter = (diagnostic: Diagnostic) => void;\nexport interface ShowProps {\n when: import(\"./reactive-types.js\").ReadonlySignal<boolean>;\n children: () => Child;\n fallback?: (() => Child) | undefined;\n}\nexport interface ForProps<T> {\n each: import(\"./reactive-types.js\").ReadonlySignal<readonly T[]>;\n by: (item: T) => import(\"./description.js\").Key;\n children: (\n item: import(\"./reactive-types.js\").ReadonlySignal<T>,\n index: import(\"./reactive-types.js\").ReadonlySignal<number>,\n ) => Child;\n}\n\nexport function h(type: ElementType, props: Record<string, unknown> | null, ...children: Child[]) {\n const copy = { ...props };\n if (children.length > 0) copy.children = children.length === 1 ? children[0] : children;\n return createDescription(type, copy);\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const islandRootType: unique symbol;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"island-root-type.js","sourceRoot":"","sources":["../../src/zudo-react/island-root-type.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC","sourcesContent":["export const islandRootType = Symbol.for(\"@takazudo/zfb/zudo-react/island-root-v1\");\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Description, ElementType, Key } from "./description.js";
|
|
2
|
+
export { Fragment } from "./index.js";
|
|
3
|
+
export type { JSX } from "./jsx-types.js";
|
|
4
|
+
export declare function jsxDEV(type: ElementType, props: Record<string, unknown> | null, key: Key | undefined, _isStaticChildren: boolean, _source: {
|
|
5
|
+
fileName: string;
|
|
6
|
+
lineNumber: number;
|
|
7
|
+
columnNumber: number;
|
|
8
|
+
} | undefined, _self: unknown): Description;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createDescription } from "./description.js";
|
|
2
|
+
export { Fragment } from "./index.js";
|
|
3
|
+
export function jsxDEV(type, props, key, _isStaticChildren, _source, _self) {
|
|
4
|
+
return createDescription(type, props, key);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=jsx-dev-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx-dev-runtime.js","sourceRoot":"","sources":["../../src/zudo-react/jsx-dev-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,UAAU,MAAM,CACpB,IAAiB,EACjB,KAAqC,EACrC,GAAoB,EACpB,iBAA0B,EAC1B,OAAmF,EACnF,KAAc;IAEd,OAAO,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC","sourcesContent":["import { createDescription } from \"./description.js\";\nimport type { Description, ElementType, Key } from \"./description.js\";\n\nexport { Fragment } from \"./index.js\";\nexport type { JSX } from \"./jsx-types.js\";\n\nexport function jsxDEV(\n type: ElementType,\n props: Record<string, unknown> | null,\n key: Key | undefined,\n _isStaticChildren: boolean,\n _source: { fileName: string; lineNumber: number; columnNumber: number } | undefined,\n _self: unknown,\n): Description {\n return createDescription(type, props, key);\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Description, ElementType, Key } from "./description.js";
|
|
2
|
+
export { Fragment } from "./index.js";
|
|
3
|
+
export type { JSX } from "./jsx-types.js";
|
|
4
|
+
export declare function jsx(type: ElementType, props: Record<string, unknown> | null, key?: Key | undefined): Description;
|
|
5
|
+
export declare const jsxs: typeof jsx;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx-runtime.js","sourceRoot":"","sources":["../../src/zudo-react/jsx-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,UAAU,GAAG,CACjB,IAAiB,EACjB,KAAqC,EACrC,GAAqB;IAErB,OAAO,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAe,GAAG,CAAC","sourcesContent":["import { createDescription } from \"./description.js\";\nimport type { Description, ElementType, Key } from \"./description.js\";\n\nexport { Fragment } from \"./index.js\";\nexport type { JSX } from \"./jsx-types.js\";\n\nexport function jsx(\n type: ElementType,\n props: Record<string, unknown> | null,\n key?: Key | undefined,\n): Description {\n return createDescription(type, props, key);\n}\n\nexport const jsxs: typeof jsx = jsx;\n"]}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import type { Child, Component, Key } from "./description.js";
|
|
2
|
+
import type { Listener, Ref } from "./index.js";
|
|
3
|
+
import type { ReadonlySignal, Signal } from "./reactive-types.js";
|
|
4
|
+
type Value<T> = T | ReadonlySignal<T> | undefined;
|
|
5
|
+
type ScalarAttribute = Value<string | number | boolean | null>;
|
|
6
|
+
type DimensionAttribute = Value<string | number | null>;
|
|
7
|
+
type StringAttribute = Value<string | null>;
|
|
8
|
+
type BooleanAttribute = Value<boolean | null>;
|
|
9
|
+
type CssProperty = `--${string}` | `${string}-${string}` | "color" | "display" | "opacity" | "width" | "height" | "margin" | "padding" | "border" | "background" | "position" | "top" | "right" | "bottom" | "left" | "overflow" | "transform" | "transition" | "animation" | "font" | "flex" | "grid" | "gap";
|
|
10
|
+
type CssStyle = Readonly<Partial<Record<CssProperty, string | number | null | undefined>>>;
|
|
11
|
+
type AnyListener = Listener<any>;
|
|
12
|
+
type EventProps<TEl extends Element, TMap extends Record<keyof TMap, Event>> = {
|
|
13
|
+
[K in keyof TMap & string as `on:${K}` | `on:${K}:capture`]?: Listener<TMap[K] & {
|
|
14
|
+
currentTarget: TEl;
|
|
15
|
+
}>;
|
|
16
|
+
} & {
|
|
17
|
+
[name: `on:${string}`]: AnyListener | undefined;
|
|
18
|
+
};
|
|
19
|
+
type DataAria = {
|
|
20
|
+
[name: `data-${string}`]: ScalarAttribute;
|
|
21
|
+
} & {
|
|
22
|
+
[name: `aria-${string}`]: ScalarAttribute;
|
|
23
|
+
};
|
|
24
|
+
interface ReservedProps<T extends Element = Element> {
|
|
25
|
+
children?: Child | undefined;
|
|
26
|
+
key?: Key | undefined;
|
|
27
|
+
ref?: Ref<T> | undefined;
|
|
28
|
+
rawHtml?: Value<string | null>;
|
|
29
|
+
}
|
|
30
|
+
interface CommonAttributes<T extends Element = Element> extends ReservedProps<T> {
|
|
31
|
+
id?: StringAttribute;
|
|
32
|
+
class?: StringAttribute;
|
|
33
|
+
title?: StringAttribute;
|
|
34
|
+
lang?: StringAttribute;
|
|
35
|
+
dir?: StringAttribute;
|
|
36
|
+
slot?: StringAttribute;
|
|
37
|
+
role?: StringAttribute;
|
|
38
|
+
style?: Value<string | CssStyle | null>;
|
|
39
|
+
hidden?: BooleanAttribute;
|
|
40
|
+
inert?: BooleanAttribute;
|
|
41
|
+
contenteditable?: StringAttribute;
|
|
42
|
+
draggable?: StringAttribute;
|
|
43
|
+
spellcheck?: StringAttribute;
|
|
44
|
+
tabindex?: Value<number | null>;
|
|
45
|
+
accesskey?: StringAttribute;
|
|
46
|
+
translate?: StringAttribute;
|
|
47
|
+
onclick?: string | undefined;
|
|
48
|
+
onload?: string | undefined;
|
|
49
|
+
onerror?: string | undefined;
|
|
50
|
+
}
|
|
51
|
+
interface HtmlAttributes<T extends Element = HTMLElement> extends CommonAttributes<T> {
|
|
52
|
+
href?: StringAttribute;
|
|
53
|
+
target?: StringAttribute;
|
|
54
|
+
rel?: StringAttribute;
|
|
55
|
+
download?: StringAttribute;
|
|
56
|
+
src?: StringAttribute;
|
|
57
|
+
alt?: StringAttribute;
|
|
58
|
+
width?: Value<string | number | null>;
|
|
59
|
+
height?: Value<string | number | null>;
|
|
60
|
+
type?: StringAttribute;
|
|
61
|
+
name?: StringAttribute;
|
|
62
|
+
value?: string | number | null | undefined;
|
|
63
|
+
placeholder?: StringAttribute;
|
|
64
|
+
for?: StringAttribute;
|
|
65
|
+
charset?: StringAttribute;
|
|
66
|
+
datetime?: StringAttribute;
|
|
67
|
+
readonly?: BooleanAttribute;
|
|
68
|
+
autofocus?: BooleanAttribute;
|
|
69
|
+
required?: BooleanAttribute;
|
|
70
|
+
disabled?: BooleanAttribute;
|
|
71
|
+
checked?: boolean | null | undefined;
|
|
72
|
+
selected?: BooleanAttribute;
|
|
73
|
+
multiple?: BooleanAttribute;
|
|
74
|
+
reversed?: BooleanAttribute;
|
|
75
|
+
open?: BooleanAttribute;
|
|
76
|
+
controls?: BooleanAttribute;
|
|
77
|
+
muted?: BooleanAttribute;
|
|
78
|
+
loop?: BooleanAttribute;
|
|
79
|
+
autoplay?: BooleanAttribute;
|
|
80
|
+
novalidate?: BooleanAttribute;
|
|
81
|
+
formnovalidate?: BooleanAttribute;
|
|
82
|
+
maxlength?: Value<number | null>;
|
|
83
|
+
minlength?: Value<number | null>;
|
|
84
|
+
min?: StringAttribute;
|
|
85
|
+
max?: StringAttribute;
|
|
86
|
+
step?: StringAttribute;
|
|
87
|
+
start?: Value<string | number | null>;
|
|
88
|
+
pattern?: StringAttribute;
|
|
89
|
+
autocomplete?: StringAttribute;
|
|
90
|
+
accept?: StringAttribute;
|
|
91
|
+
"accept-charset"?: StringAttribute;
|
|
92
|
+
"http-equiv"?: StringAttribute;
|
|
93
|
+
content?: StringAttribute;
|
|
94
|
+
media?: StringAttribute;
|
|
95
|
+
method?: StringAttribute;
|
|
96
|
+
action?: StringAttribute;
|
|
97
|
+
enctype?: StringAttribute;
|
|
98
|
+
rows?: Value<number | null>;
|
|
99
|
+
cols?: Value<number | null>;
|
|
100
|
+
colspan?: Value<number | null>;
|
|
101
|
+
rowspan?: Value<number | null>;
|
|
102
|
+
scope?: StringAttribute;
|
|
103
|
+
cite?: StringAttribute;
|
|
104
|
+
poster?: StringAttribute;
|
|
105
|
+
loading?: StringAttribute;
|
|
106
|
+
decoding?: StringAttribute;
|
|
107
|
+
sizes?: StringAttribute;
|
|
108
|
+
srcset?: StringAttribute;
|
|
109
|
+
crossorigin?: StringAttribute;
|
|
110
|
+
referrerpolicy?: StringAttribute;
|
|
111
|
+
sandbox?: StringAttribute;
|
|
112
|
+
allow?: StringAttribute;
|
|
113
|
+
allowfullscreen?: BooleanAttribute;
|
|
114
|
+
}
|
|
115
|
+
type HtmlProps<TRef extends Element = HTMLElement, TEvent extends HTMLElement = HTMLElement> = HtmlAttributes<TRef> & DataAria & EventProps<TEvent, HTMLElementEventMap>;
|
|
116
|
+
type RawTextProps<TEvent extends HTMLElement = HTMLElement> = Omit<HtmlAttributes<HTMLElement>, "children" | "rawHtml"> & DataAria & EventProps<TEvent, HTMLElementEventMap> & {
|
|
117
|
+
children?: never;
|
|
118
|
+
rawHtml?: string | undefined;
|
|
119
|
+
};
|
|
120
|
+
type InputBase = Omit<HtmlAttributes<HTMLInputElement>, "type"> & DataAria & EventProps<HTMLInputElement, HTMLElementEventMap> & {
|
|
121
|
+
defaultValue?: string | undefined;
|
|
122
|
+
defaultChecked?: boolean | undefined;
|
|
123
|
+
};
|
|
124
|
+
type InputProps = InputBase & ({
|
|
125
|
+
type?: "text" | "search" | "email" | "url" | "tel" | "password" | undefined;
|
|
126
|
+
modelValue?: Signal<string> | undefined;
|
|
127
|
+
modelChecked?: never;
|
|
128
|
+
} | {
|
|
129
|
+
type: "checkbox";
|
|
130
|
+
modelChecked?: Signal<boolean> | undefined;
|
|
131
|
+
modelValue?: never;
|
|
132
|
+
} | {
|
|
133
|
+
type: "radio";
|
|
134
|
+
name: string;
|
|
135
|
+
value: string;
|
|
136
|
+
modelValue?: Signal<string | null> | undefined;
|
|
137
|
+
modelChecked?: never;
|
|
138
|
+
} | {
|
|
139
|
+
type: string;
|
|
140
|
+
modelValue?: never;
|
|
141
|
+
modelChecked?: never;
|
|
142
|
+
});
|
|
143
|
+
type TextareaProps = HtmlProps<HTMLTextAreaElement, HTMLTextAreaElement> & {
|
|
144
|
+
modelValue?: Signal<string> | undefined;
|
|
145
|
+
defaultValue?: string | undefined;
|
|
146
|
+
};
|
|
147
|
+
type SelectProps = HtmlProps<HTMLSelectElement, HTMLSelectElement> & {
|
|
148
|
+
modelValue?: Signal<string> | undefined;
|
|
149
|
+
defaultValue?: string | undefined;
|
|
150
|
+
};
|
|
151
|
+
interface SvgAttributes extends CommonAttributes<SVGElement> {
|
|
152
|
+
width?: DimensionAttribute;
|
|
153
|
+
height?: DimensionAttribute;
|
|
154
|
+
viewBox?: StringAttribute;
|
|
155
|
+
preserveAspectRatio?: StringAttribute;
|
|
156
|
+
gradientUnits?: StringAttribute;
|
|
157
|
+
gradientTransform?: StringAttribute;
|
|
158
|
+
markerWidth?: ScalarAttribute;
|
|
159
|
+
markerHeight?: ScalarAttribute;
|
|
160
|
+
refX?: ScalarAttribute;
|
|
161
|
+
refY?: ScalarAttribute;
|
|
162
|
+
"xlink:href"?: StringAttribute;
|
|
163
|
+
"xml:lang"?: StringAttribute;
|
|
164
|
+
"stroke-width"?: ScalarAttribute;
|
|
165
|
+
"fill-rule"?: StringAttribute;
|
|
166
|
+
"clip-rule"?: StringAttribute;
|
|
167
|
+
"stroke-linecap"?: StringAttribute;
|
|
168
|
+
"stroke-linejoin"?: StringAttribute;
|
|
169
|
+
"stop-color"?: StringAttribute;
|
|
170
|
+
"stop-opacity"?: ScalarAttribute;
|
|
171
|
+
fill?: StringAttribute;
|
|
172
|
+
stroke?: StringAttribute;
|
|
173
|
+
d?: StringAttribute;
|
|
174
|
+
x?: ScalarAttribute;
|
|
175
|
+
y?: ScalarAttribute;
|
|
176
|
+
x1?: ScalarAttribute;
|
|
177
|
+
x2?: ScalarAttribute;
|
|
178
|
+
y1?: ScalarAttribute;
|
|
179
|
+
y2?: ScalarAttribute;
|
|
180
|
+
cx?: ScalarAttribute;
|
|
181
|
+
cy?: ScalarAttribute;
|
|
182
|
+
r?: ScalarAttribute;
|
|
183
|
+
rx?: ScalarAttribute;
|
|
184
|
+
ry?: ScalarAttribute;
|
|
185
|
+
points?: StringAttribute;
|
|
186
|
+
transform?: StringAttribute;
|
|
187
|
+
opacity?: ScalarAttribute;
|
|
188
|
+
offset?: ScalarAttribute;
|
|
189
|
+
id?: StringAttribute;
|
|
190
|
+
}
|
|
191
|
+
type SvgProps<TEvent extends SVGElement = SVGElement> = SvgAttributes & DataAria & EventProps<TEvent, SVGElementEventMap>;
|
|
192
|
+
type CustomProps = ReservedProps & EventProps<HTMLElement, GlobalEventHandlersEventMap> & {
|
|
193
|
+
value?: string | null | undefined;
|
|
194
|
+
checked?: null | undefined;
|
|
195
|
+
[attribute: string]: StringAttribute | Child | Ref<Element> | AnyListener | undefined;
|
|
196
|
+
};
|
|
197
|
+
type HtmlTag = "html" | "head" | "body" | "title" | "base" | "link" | "meta" | "style" | "script" | "div" | "span" | "p" | "a" | "br" | "hr" | "main" | "header" | "footer" | "nav" | "section" | "article" | "aside" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "ul" | "ol" | "li" | "dl" | "dt" | "dd" | "blockquote" | "pre" | "code" | "strong" | "em" | "b" | "i" | "small" | "mark" | "time" | "figure" | "figcaption" | "img" | "picture" | "source" | "video" | "audio" | "track" | "canvas" | "form" | "label" | "input" | "button" | "textarea" | "select" | "option" | "optgroup" | "fieldset" | "legend" | "output" | "progress" | "meter" | "datalist" | "table" | "caption" | "thead" | "tbody" | "tfoot" | "tr" | "th" | "td" | "col" | "colgroup" | "details" | "summary" | "dialog" | "template" | "slot" | "iframe" | "noscript" | "address" | "abbr" | "bdi" | "bdo" | "cite" | "data" | "del" | "dfn" | "ins" | "kbd" | "map" | "area" | "object" | "param" | "q" | "rp" | "rt" | "ruby" | "s" | "samp" | "sub" | "sup" | "u" | "var" | "wbr" | "embed";
|
|
198
|
+
type SvgTag = "svg" | "g" | "path" | "circle" | "ellipse" | "rect" | "line" | "polyline" | "polygon" | "text" | "tspan" | "defs" | "symbol" | "use" | "clipPath" | "mask" | "linearGradient" | "radialGradient" | "stop" | "desc" | "foreignObject";
|
|
199
|
+
export declare namespace JSX {
|
|
200
|
+
type Element = Child;
|
|
201
|
+
type ElementType = string | Component<any> | typeof import("../island.js").Island | typeof import("./description.js").Fragment;
|
|
202
|
+
type IntrinsicElements = {
|
|
203
|
+
[K in HtmlTag]: K extends "input" ? InputProps : K extends "textarea" ? TextareaProps : K extends "select" ? SelectProps : K extends "script" | "style" ? RawTextProps<K extends keyof HTMLElementTagNameMap ? HTMLElementTagNameMap[K] : HTMLElement> : HtmlProps<HTMLElement, K extends keyof HTMLElementTagNameMap ? HTMLElementTagNameMap[K] : HTMLElement>;
|
|
204
|
+
} & {
|
|
205
|
+
[K in SvgTag]: SvgProps<K extends keyof SVGElementTagNameMap ? SVGElementTagNameMap[K] : SVGElement>;
|
|
206
|
+
} & {
|
|
207
|
+
[K in `${string}-${string}`]: CustomProps;
|
|
208
|
+
};
|
|
209
|
+
interface IntrinsicAttributes {
|
|
210
|
+
key?: Key | undefined;
|
|
211
|
+
}
|
|
212
|
+
interface ElementChildrenAttribute {
|
|
213
|
+
children: unknown;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx-types.js","sourceRoot":"","sources":["../../src/zudo-react/jsx-types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Child, Component, Key } from \"./description.js\";\nimport type { Listener, Ref } from \"./index.js\";\nimport type { ReadonlySignal, Signal } from \"./reactive-types.js\";\n\ntype Value<T> = T | ReadonlySignal<T> | undefined;\ntype ScalarAttribute = Value<string | number | boolean | null>;\ntype DimensionAttribute = Value<string | number | null>;\ntype StringAttribute = Value<string | null>;\ntype BooleanAttribute = Value<boolean | null>;\ntype CssProperty =\n | `--${string}`\n | `${string}-${string}`\n | \"color\"\n | \"display\"\n | \"opacity\"\n | \"width\"\n | \"height\"\n | \"margin\"\n | \"padding\"\n | \"border\"\n | \"background\"\n | \"position\"\n | \"top\"\n | \"right\"\n | \"bottom\"\n | \"left\"\n | \"overflow\"\n | \"transform\"\n | \"transition\"\n | \"animation\"\n | \"font\"\n | \"flex\"\n | \"grid\"\n | \"gap\";\ntype CssStyle = Readonly<Partial<Record<CssProperty, string | number | null | undefined>>>;\n// The custom-name index must also accept every mapped listener under strict function variance.\ntype AnyListener = Listener<any>;\ntype EventProps<TEl extends Element, TMap extends Record<keyof TMap, Event>> = {\n [K in keyof TMap & string as `on:${K}` | `on:${K}:capture`]?: Listener<\n TMap[K] & { currentTarget: TEl }\n >;\n} & {\n [name: `on:${string}`]: AnyListener | undefined;\n};\ntype DataAria = {\n [name: `data-${string}`]: ScalarAttribute;\n} & {\n [name: `aria-${string}`]: ScalarAttribute;\n};\n\ninterface ReservedProps<T extends Element = Element> {\n children?: Child | undefined;\n key?: Key | undefined;\n ref?: Ref<T> | undefined;\n rawHtml?: Value<string | null>;\n}\n\ninterface CommonAttributes<T extends Element = Element> extends ReservedProps<T> {\n id?: StringAttribute;\n class?: StringAttribute;\n title?: StringAttribute;\n lang?: StringAttribute;\n dir?: StringAttribute;\n slot?: StringAttribute;\n role?: StringAttribute;\n style?: Value<string | CssStyle | null>;\n hidden?: BooleanAttribute;\n inert?: BooleanAttribute;\n contenteditable?: StringAttribute;\n draggable?: StringAttribute;\n spellcheck?: StringAttribute;\n tabindex?: Value<number | null>;\n accesskey?: StringAttribute;\n translate?: StringAttribute;\n onclick?: string | undefined;\n onload?: string | undefined;\n onerror?: string | undefined;\n}\n\ninterface HtmlAttributes<T extends Element = HTMLElement> extends CommonAttributes<T> {\n href?: StringAttribute;\n target?: StringAttribute;\n rel?: StringAttribute;\n download?: StringAttribute;\n src?: StringAttribute;\n alt?: StringAttribute;\n width?: Value<string | number | null>;\n height?: Value<string | number | null>;\n type?: StringAttribute;\n name?: StringAttribute;\n value?: string | number | null | undefined;\n placeholder?: StringAttribute;\n for?: StringAttribute;\n charset?: StringAttribute;\n datetime?: StringAttribute;\n readonly?: BooleanAttribute;\n autofocus?: BooleanAttribute;\n required?: BooleanAttribute;\n disabled?: BooleanAttribute;\n checked?: boolean | null | undefined;\n selected?: BooleanAttribute;\n multiple?: BooleanAttribute;\n reversed?: BooleanAttribute;\n open?: BooleanAttribute;\n controls?: BooleanAttribute;\n muted?: BooleanAttribute;\n loop?: BooleanAttribute;\n autoplay?: BooleanAttribute;\n novalidate?: BooleanAttribute;\n formnovalidate?: BooleanAttribute;\n maxlength?: Value<number | null>;\n minlength?: Value<number | null>;\n min?: StringAttribute;\n max?: StringAttribute;\n step?: StringAttribute;\n start?: Value<string | number | null>;\n pattern?: StringAttribute;\n autocomplete?: StringAttribute;\n accept?: StringAttribute;\n \"accept-charset\"?: StringAttribute;\n \"http-equiv\"?: StringAttribute;\n content?: StringAttribute;\n media?: StringAttribute;\n method?: StringAttribute;\n action?: StringAttribute;\n enctype?: StringAttribute;\n rows?: Value<number | null>;\n cols?: Value<number | null>;\n colspan?: Value<number | null>;\n rowspan?: Value<number | null>;\n scope?: StringAttribute;\n cite?: StringAttribute;\n poster?: StringAttribute;\n loading?: StringAttribute;\n decoding?: StringAttribute;\n sizes?: StringAttribute;\n srcset?: StringAttribute;\n crossorigin?: StringAttribute;\n referrerpolicy?: StringAttribute;\n sandbox?: StringAttribute;\n allow?: StringAttribute;\n allowfullscreen?: BooleanAttribute;\n}\n\ntype HtmlProps<\n TRef extends Element = HTMLElement,\n TEvent extends HTMLElement = HTMLElement,\n> = HtmlAttributes<TRef> & DataAria & EventProps<TEvent, HTMLElementEventMap>;\ntype RawTextProps<TEvent extends HTMLElement = HTMLElement> = Omit<\n HtmlAttributes<HTMLElement>,\n \"children\" | \"rawHtml\"\n> &\n DataAria &\n EventProps<TEvent, HTMLElementEventMap> & {\n children?: never;\n rawHtml?: string | undefined;\n };\ntype InputBase = Omit<HtmlAttributes<HTMLInputElement>, \"type\"> &\n DataAria &\n EventProps<HTMLInputElement, HTMLElementEventMap> & {\n defaultValue?: string | undefined;\n defaultChecked?: boolean | undefined;\n };\ntype InputProps = InputBase &\n (\n | {\n type?: \"text\" | \"search\" | \"email\" | \"url\" | \"tel\" | \"password\" | undefined;\n modelValue?: Signal<string> | undefined;\n modelChecked?: never;\n }\n | {\n type: \"checkbox\";\n modelChecked?: Signal<boolean> | undefined;\n modelValue?: never;\n }\n | {\n type: \"radio\";\n name: string;\n value: string;\n modelValue?: Signal<string | null> | undefined;\n modelChecked?: never;\n }\n | {\n type: string;\n modelValue?: never;\n modelChecked?: never;\n }\n );\ntype TextareaProps = HtmlProps<HTMLTextAreaElement, HTMLTextAreaElement> & {\n modelValue?: Signal<string> | undefined;\n defaultValue?: string | undefined;\n};\ntype SelectProps = HtmlProps<HTMLSelectElement, HTMLSelectElement> & {\n modelValue?: Signal<string> | undefined;\n defaultValue?: string | undefined;\n};\n\ninterface SvgAttributes extends CommonAttributes<SVGElement> {\n width?: DimensionAttribute;\n height?: DimensionAttribute;\n viewBox?: StringAttribute;\n preserveAspectRatio?: StringAttribute;\n gradientUnits?: StringAttribute;\n gradientTransform?: StringAttribute;\n markerWidth?: ScalarAttribute;\n markerHeight?: ScalarAttribute;\n refX?: ScalarAttribute;\n refY?: ScalarAttribute;\n \"xlink:href\"?: StringAttribute;\n \"xml:lang\"?: StringAttribute;\n \"stroke-width\"?: ScalarAttribute;\n \"fill-rule\"?: StringAttribute;\n \"clip-rule\"?: StringAttribute;\n \"stroke-linecap\"?: StringAttribute;\n \"stroke-linejoin\"?: StringAttribute;\n \"stop-color\"?: StringAttribute;\n \"stop-opacity\"?: ScalarAttribute;\n fill?: StringAttribute;\n stroke?: StringAttribute;\n d?: StringAttribute;\n x?: ScalarAttribute;\n y?: ScalarAttribute;\n x1?: ScalarAttribute;\n x2?: ScalarAttribute;\n y1?: ScalarAttribute;\n y2?: ScalarAttribute;\n cx?: ScalarAttribute;\n cy?: ScalarAttribute;\n r?: ScalarAttribute;\n rx?: ScalarAttribute;\n ry?: ScalarAttribute;\n points?: StringAttribute;\n transform?: StringAttribute;\n opacity?: ScalarAttribute;\n offset?: ScalarAttribute;\n id?: StringAttribute;\n}\n\ntype SvgProps<TEvent extends SVGElement = SVGElement> = SvgAttributes &\n DataAria &\n EventProps<TEvent, SVGElementEventMap>;\ntype CustomProps = ReservedProps &\n EventProps<HTMLElement, GlobalEventHandlersEventMap> & {\n value?: string | null | undefined;\n checked?: null | undefined;\n [attribute: string]: StringAttribute | Child | Ref<Element> | AnyListener | undefined;\n };\n\ntype HtmlTag =\n | \"html\"\n | \"head\"\n | \"body\"\n | \"title\"\n | \"base\"\n | \"link\"\n | \"meta\"\n | \"style\"\n | \"script\"\n | \"div\"\n | \"span\"\n | \"p\"\n | \"a\"\n | \"br\"\n | \"hr\"\n | \"main\"\n | \"header\"\n | \"footer\"\n | \"nav\"\n | \"section\"\n | \"article\"\n | \"aside\"\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"ul\"\n | \"ol\"\n | \"li\"\n | \"dl\"\n | \"dt\"\n | \"dd\"\n | \"blockquote\"\n | \"pre\"\n | \"code\"\n | \"strong\"\n | \"em\"\n | \"b\"\n | \"i\"\n | \"small\"\n | \"mark\"\n | \"time\"\n | \"figure\"\n | \"figcaption\"\n | \"img\"\n | \"picture\"\n | \"source\"\n | \"video\"\n | \"audio\"\n | \"track\"\n | \"canvas\"\n | \"form\"\n | \"label\"\n | \"input\"\n | \"button\"\n | \"textarea\"\n | \"select\"\n | \"option\"\n | \"optgroup\"\n | \"fieldset\"\n | \"legend\"\n | \"output\"\n | \"progress\"\n | \"meter\"\n | \"datalist\"\n | \"table\"\n | \"caption\"\n | \"thead\"\n | \"tbody\"\n | \"tfoot\"\n | \"tr\"\n | \"th\"\n | \"td\"\n | \"col\"\n | \"colgroup\"\n | \"details\"\n | \"summary\"\n | \"dialog\"\n | \"template\"\n | \"slot\"\n | \"iframe\"\n | \"noscript\"\n | \"address\"\n | \"abbr\"\n | \"bdi\"\n | \"bdo\"\n | \"cite\"\n | \"data\"\n | \"del\"\n | \"dfn\"\n | \"ins\"\n | \"kbd\"\n | \"map\"\n | \"area\"\n | \"object\"\n | \"param\"\n | \"q\"\n | \"rp\"\n | \"rt\"\n | \"ruby\"\n | \"s\"\n | \"samp\"\n | \"sub\"\n | \"sup\"\n | \"u\"\n | \"var\"\n | \"wbr\"\n | \"embed\";\n\ntype SvgTag =\n | \"svg\"\n | \"g\"\n | \"path\"\n | \"circle\"\n | \"ellipse\"\n | \"rect\"\n | \"line\"\n | \"polyline\"\n | \"polygon\"\n | \"text\"\n | \"tspan\"\n | \"defs\"\n | \"symbol\"\n | \"use\"\n | \"clipPath\"\n | \"mask\"\n | \"linearGradient\"\n | \"radialGradient\"\n | \"stop\"\n | \"desc\"\n | \"foreignObject\";\n\nexport namespace JSX {\n export type Element = Child;\n export type ElementType =\n | string\n | Component<any>\n | typeof import(\"../island.js\").Island\n | typeof import(\"./description.js\").Fragment;\n export type IntrinsicElements = {\n [K in HtmlTag]: K extends \"input\"\n ? InputProps\n : K extends \"textarea\"\n ? TextareaProps\n : K extends \"select\"\n ? SelectProps\n : K extends \"script\" | \"style\"\n ? RawTextProps<\n K extends keyof HTMLElementTagNameMap ? HTMLElementTagNameMap[K] : HTMLElement\n >\n : HtmlProps<\n HTMLElement,\n K extends keyof HTMLElementTagNameMap ? HTMLElementTagNameMap[K] : HTMLElement\n >;\n } & {\n [K in SvgTag]: SvgProps<\n K extends keyof SVGElementTagNameMap ? SVGElementTagNameMap[K] : SVGElement\n >;\n } & {\n [K in `${string}-${string}`]: CustomProps;\n };\n export interface IntrinsicAttributes {\n key?: Key | undefined;\n }\n export interface ElementChildrenAttribute {\n children: unknown;\n }\n}\n"]}
|