@fictjs/runtime 0.16.0 → 0.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/advanced.cjs +9 -9
- package/dist/advanced.d.cts +3 -3
- package/dist/advanced.d.ts +3 -3
- package/dist/advanced.js +4 -4
- package/dist/{binding-CQUGLLBI.d.ts → binding-BfzY9rae.d.ts} +2 -2
- package/dist/{binding-BlABuUiG.d.cts → binding-CDR2ERoq.d.cts} +2 -2
- package/dist/{chunk-CBRGOLTR.cjs → chunk-2J4INHDT.cjs} +40 -40
- package/dist/{chunk-CBRGOLTR.cjs.map → chunk-2J4INHDT.cjs.map} +1 -1
- package/dist/{chunk-BADX4WTQ.cjs → chunk-CKKZDUHM.cjs} +21 -18
- package/dist/chunk-CKKZDUHM.cjs.map +1 -0
- package/dist/{chunk-ZWQLXWSV.js → chunk-DHRRJJ6W.js} +8 -5
- package/dist/chunk-DHRRJJ6W.js.map +1 -0
- package/dist/{chunk-4P4DYWLQ.js → chunk-LFLFSJFU.js} +3 -3
- package/dist/{chunk-WJMZ7X46.cjs → chunk-NBDEMBBX.cjs} +47 -85
- package/dist/chunk-NBDEMBBX.cjs.map +1 -0
- package/dist/{chunk-MAHWGB55.js → chunk-OKPQWORE.js} +47 -85
- package/dist/chunk-OKPQWORE.js.map +1 -0
- package/dist/{chunk-RK2WSQYL.js → chunk-OLHZBAIF.js} +3 -3
- package/dist/{chunk-ZJZ6LMDN.js → chunk-R2HYEOP7.js} +470 -172
- package/dist/chunk-R2HYEOP7.js.map +1 -0
- package/dist/{chunk-AR2T7JEX.cjs → chunk-UG2IFQOY.cjs} +650 -352
- package/dist/chunk-UG2IFQOY.cjs.map +1 -0
- package/dist/{chunk-ECNK25S4.cjs → chunk-VP2WC7X3.cjs} +8 -8
- package/dist/{chunk-ECNK25S4.cjs.map → chunk-VP2WC7X3.cjs.map} +1 -1
- package/dist/{devtools-DWIZRe7L.d.cts → devtools-BwkkQ6DN.d.cts} +1 -1
- package/dist/{devtools-DNnnDGu1.d.ts → devtools-CK3SVU_w.d.ts} +1 -1
- package/dist/index.cjs +55 -42
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.dev.js +260 -156
- package/dist/index.dev.js.map +1 -1
- package/dist/index.js +16 -3
- package/dist/index.js.map +1 -1
- package/dist/internal-list.cjs +4 -4
- package/dist/internal-list.js +3 -3
- package/dist/internal.cjs +5 -5
- package/dist/internal.d.cts +4 -4
- package/dist/internal.d.ts +4 -4
- package/dist/internal.js +4 -4
- package/dist/jsx-dev-runtime.cjs.map +1 -1
- package/dist/jsx-dev-runtime.d.cts +46 -0
- package/dist/jsx-dev-runtime.d.ts +46 -0
- package/dist/jsx-dev-runtime.js.map +1 -1
- package/dist/jsx-runtime.cjs.map +1 -1
- package/dist/jsx-runtime.d.cts +46 -0
- package/dist/jsx-runtime.d.ts +46 -0
- package/dist/jsx-runtime.js.map +1 -1
- package/dist/loader.cjs +143 -26
- package/dist/loader.cjs.map +1 -1
- package/dist/loader.d.cts +1 -1
- package/dist/loader.d.ts +1 -1
- package/dist/loader.js +122 -5
- package/dist/loader.js.map +1 -1
- package/dist/{props-DabFQwLR.d.ts → props-CFoQ471Y.d.ts} +47 -1
- package/dist/{props-tImUZAty.d.cts → props-D4tK8Gn0.d.cts} +47 -1
- package/dist/{resume-C5IKAIdh.d.ts → resume-C166aAVg.d.ts} +2 -2
- package/dist/{resume-DPZxmA95.d.cts → resume-C20cRVj9.d.cts} +2 -2
- package/dist/{scope-gpOMWTlf.d.ts → scope-BFzD_7hx.d.ts} +1 -1
- package/dist/{scope-GwC4DJ50.d.cts → scope-Ck3mTQVS.d.cts} +1 -1
- package/package.json +1 -1
- package/src/binding.ts +561 -166
- package/src/context.ts +8 -1
- package/src/dom.ts +26 -44
- package/src/effect.ts +9 -12
- package/src/error-boundary.ts +8 -0
- package/src/hydration.ts +25 -6
- package/src/jsx.ts +46 -0
- package/src/lifecycle.ts +31 -79
- package/src/loader.ts +153 -4
- package/src/resume.ts +5 -5
- package/src/signal.ts +4 -1
- package/src/suspense.ts +8 -0
- package/dist/chunk-AR2T7JEX.cjs.map +0 -1
- package/dist/chunk-BADX4WTQ.cjs.map +0 -1
- package/dist/chunk-MAHWGB55.js.map +0 -1
- package/dist/chunk-WJMZ7X46.cjs.map +0 -1
- package/dist/chunk-ZJZ6LMDN.js.map +0 -1
- package/dist/chunk-ZWQLXWSV.js.map +0 -1
- /package/dist/{chunk-4P4DYWLQ.js.map → chunk-LFLFSJFU.js.map} +0 -0
- /package/dist/{chunk-RK2WSQYL.js.map → chunk-OLHZBAIF.js.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
createContext,
|
|
3
3
|
hasContext,
|
|
4
4
|
useContext
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-DHRRJJ6W.js";
|
|
6
6
|
import {
|
|
7
7
|
Fragment,
|
|
8
8
|
batch,
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
untrack,
|
|
20
20
|
useDeferredValue,
|
|
21
21
|
useTransition
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-R2HYEOP7.js";
|
|
23
23
|
import {
|
|
24
24
|
__fictGetSSRStreamHooks,
|
|
25
25
|
__fictPopSSRBoundary,
|
|
@@ -38,9 +38,10 @@ import {
|
|
|
38
38
|
popRoot,
|
|
39
39
|
pushRoot,
|
|
40
40
|
registerErrorHandler,
|
|
41
|
+
registerRootCleanup,
|
|
41
42
|
registerSuspenseHandler,
|
|
42
43
|
signal
|
|
43
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-OKPQWORE.js";
|
|
44
45
|
|
|
45
46
|
// src/ref.ts
|
|
46
47
|
function createRef() {
|
|
@@ -117,6 +118,12 @@ function ErrorBoundary(props) {
|
|
|
117
118
|
renderValue(toView(null));
|
|
118
119
|
};
|
|
119
120
|
renderValue(props.children ?? null);
|
|
121
|
+
registerRootCleanup(() => {
|
|
122
|
+
if (cleanup) {
|
|
123
|
+
cleanup();
|
|
124
|
+
cleanup = void 0;
|
|
125
|
+
}
|
|
126
|
+
});
|
|
120
127
|
registerErrorHandler((err) => {
|
|
121
128
|
renderValue(toView(err));
|
|
122
129
|
props.onError?.(err);
|
|
@@ -294,6 +301,12 @@ function Suspense(props) {
|
|
|
294
301
|
return false;
|
|
295
302
|
});
|
|
296
303
|
renderView(props.children ?? null);
|
|
304
|
+
registerRootCleanup(() => {
|
|
305
|
+
if (cleanup) {
|
|
306
|
+
cleanup();
|
|
307
|
+
cleanup = void 0;
|
|
308
|
+
}
|
|
309
|
+
});
|
|
297
310
|
if (props.resetKeys !== void 0) {
|
|
298
311
|
const isGetter = typeof props.resetKeys === "function" && props.resetKeys.length === 0;
|
|
299
312
|
const getter = isGetter ? props.resetKeys : void 0;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ref.ts","../src/error-boundary.ts","../src/suspense.ts"],"sourcesContent":["import type { RefObject } from './types'\n\n/**\n * Create a ref object for DOM element references.\n *\n * @returns A ref object with a `current` property initialized to `null`\n *\n * @example\n * ```tsx\n * import { createRef } from 'fict'\n *\n * function Component() {\n * const inputRef = createRef<HTMLInputElement>()\n *\n * $effect(() => {\n * inputRef.current?.focus()\n * })\n *\n * return <input ref={inputRef} />\n * }\n * ```\n */\nexport function createRef<T extends Element = HTMLElement>(): RefObject<T> {\n return { current: null }\n}\n","import { createElement } from './dom'\nimport { createEffect } from './effect'\nimport {\n createRootContext,\n destroyRoot,\n flushOnMount,\n getCurrentRoot,\n pushRoot,\n popRoot,\n registerErrorHandler,\n} from './lifecycle'\nimport { insertNodesBefore, removeNodes, toNodeArray } from './node-ops'\nimport type { BaseProps, FictNode } from './types'\n\ninterface ErrorBoundaryProps extends BaseProps {\n fallback: FictNode | ((err: unknown, reset?: () => void) => FictNode)\n onError?: (err: unknown) => void\n resetKeys?: unknown | (() => unknown)\n}\n\nexport function ErrorBoundary(props: ErrorBoundaryProps): FictNode {\n const hostRoot = getCurrentRoot()\n const markerOwnerDocument = hostRoot?.ownerDocument ?? document\n const fragment = markerOwnerDocument.createDocumentFragment()\n const marker = markerOwnerDocument.createComment('fict:error-boundary')\n fragment.appendChild(marker)\n\n let cleanup: (() => void) | undefined\n let activeNodes: Node[] = []\n let renderingFallback = false\n\n let reset = () => {}\n const toView = (err: unknown | null): FictNode | null => {\n if (err != null) {\n return typeof props.fallback === 'function'\n ? (props.fallback as (e: unknown, reset?: () => void) => FictNode)(err, reset)\n : props.fallback\n }\n return props.children ?? null\n }\n\n const renderValue = (value: FictNode | null) => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n if (activeNodes.length) {\n removeNodes(activeNodes)\n activeNodes = []\n }\n\n if (value == null || value === false) {\n return\n }\n\n const root = createRootContext(hostRoot)\n const prev = pushRoot(root)\n let nodes: Node[] = []\n try {\n const output = createElement(value)\n nodes = toNodeArray(output, markerOwnerDocument)\n const parentNode = marker.parentNode as (ParentNode & Node) | null\n if (parentNode) {\n insertNodesBefore(parentNode, nodes, marker)\n }\n } catch (err) {\n popRoot(prev)\n destroyRoot(root)\n // Fall back immediately on render errors, avoid infinite recursion\n if (renderingFallback) {\n throw err\n }\n // nested errors. If fallback rendering also throws, we should NOT reset\n // the flag until we're sure no more recursion is happening.\n renderingFallback = true\n try {\n renderValue(toView(err))\n // Only reset if successful - if renderValue threw, we want to keep\n // renderingFallback = true to prevent infinite recursion\n renderingFallback = false\n props.onError?.(err)\n } catch (fallbackErr) {\n // Fallback rendering failed - keep renderingFallback = true\n // to prevent further attempts, then rethrow\n // If fallback fails, report both errors\n props.onError?.(err)\n throw fallbackErr\n }\n return\n }\n popRoot(prev)\n flushOnMount(root)\n\n cleanup = () => {\n destroyRoot(root)\n removeNodes(nodes)\n }\n activeNodes = nodes\n }\n\n reset = () => {\n renderingFallback = false\n renderValue(toView(null))\n }\n\n renderValue(props.children ?? null)\n\n registerErrorHandler(err => {\n renderValue(toView(err))\n props.onError?.(err)\n return true\n })\n\n if (props.resetKeys !== undefined) {\n const isGetter =\n typeof props.resetKeys === 'function' && (props.resetKeys as () => unknown).length === 0\n const getter = isGetter ? (props.resetKeys as () => unknown) : undefined\n let prev = isGetter ? getter!() : props.resetKeys\n createEffect(() => {\n const next = getter ? getter() : props.resetKeys\n if (prev !== next) {\n prev = next\n renderValue(toView(null))\n }\n })\n }\n\n return fragment\n}\n","import { createElement } from './dom'\nimport { createEffect } from './effect'\nimport {\n createRootContext,\n destroyRoot,\n flushOnMount,\n getCurrentRoot,\n handleError,\n pushRoot,\n popRoot,\n registerSuspenseHandler,\n} from './lifecycle'\nimport { insertNodesBefore, removeNodes, toNodeArray } from './node-ops'\nimport { createSignal } from './signal'\nimport { __fictGetSSRStreamHooks, __fictPopSSRBoundary, __fictPushSSRBoundary } from './ssr-stream'\nimport type { BaseProps, FictNode, SuspenseToken } from './types'\n\nexport interface SuspenseProps extends BaseProps {\n fallback: FictNode | ((err?: unknown) => FictNode)\n onResolve?: () => void\n onReject?: (err: unknown) => void\n resetKeys?: unknown | (() => unknown)\n}\n\nexport interface SuspenseHandle {\n token: SuspenseToken\n resolve: () => void\n reject: (err: unknown) => void\n}\n\nexport function createSuspenseToken(): SuspenseHandle {\n let resolve!: () => void\n let reject!: (err: unknown) => void\n const promise = new Promise<void>((res, rej) => {\n resolve = res\n reject = rej\n })\n return {\n token: {\n then: promise.then.bind(promise),\n },\n resolve,\n reject,\n }\n}\n\nconst isThenable = (value: unknown): value is PromiseLike<unknown> =>\n typeof value === 'object' &&\n value !== null &&\n typeof (value as PromiseLike<unknown>).then === 'function'\n\nexport function Suspense(props: SuspenseProps): FictNode {\n const streamHooks = __fictGetSSRStreamHooks()\n const pending = createSignal(0)\n let resolvedOnce = false\n let epoch = 0\n const hostRoot = getCurrentRoot()\n const markerOwnerDocument = hostRoot?.ownerDocument ?? document\n\n const toFallback = (err?: unknown) =>\n typeof props.fallback === 'function'\n ? (props.fallback as (e?: unknown) => FictNode)(err)\n : props.fallback\n\n const renderView = (view: FictNode | null) => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n if (activeNodes.length) {\n removeNodes(activeNodes)\n activeNodes = []\n }\n\n if (view == null || view === false) {\n return\n }\n\n const root = createRootContext(hostRoot)\n const prev = pushRoot(root)\n let nodes: Node[] = []\n let boundaryPushed = false\n try {\n if (streamBoundaryId) {\n __fictPushSSRBoundary(streamBoundaryId)\n boundaryPushed = true\n }\n const output = createElement(view)\n nodes = toNodeArray(output, markerOwnerDocument)\n // Suspended view: child threw a suspense token and was handled upstream.\n // Avoid replacing existing fallback content; tear down this attempt.\n const suspendedAttempt =\n root.suspended ||\n (nodes.length > 0 &&\n nodes.every(node => node instanceof Comment && (node as Comment).data === 'fict:suspend'))\n if (suspendedAttempt) {\n popRoot(prev)\n destroyRoot(root)\n return\n }\n const parentNode = endMarker.parentNode as (ParentNode & Node) | null\n if (parentNode) {\n insertNodesBefore(parentNode, nodes, endMarker)\n }\n } catch (err) {\n popRoot(prev)\n destroyRoot(root)\n if (!handleError(err, { source: 'render' }, hostRoot)) {\n throw err\n }\n return\n } finally {\n if (boundaryPushed) {\n __fictPopSSRBoundary(streamBoundaryId ?? undefined)\n }\n }\n popRoot(prev)\n flushOnMount(root)\n\n cleanup = () => {\n destroyRoot(root)\n removeNodes(nodes)\n }\n activeNodes = nodes\n }\n\n const fragment = markerOwnerDocument.createDocumentFragment()\n const startMarker = markerOwnerDocument.createComment('fict:suspense-start')\n const endMarker = markerOwnerDocument.createComment('fict:suspense-end')\n fragment.appendChild(startMarker)\n fragment.appendChild(endMarker)\n let cleanup: (() => void) | undefined\n let activeNodes: Node[] = []\n let streamBoundaryId: string | null = null\n let streamPending = false\n\n if (streamHooks?.registerBoundary) {\n streamBoundaryId = streamHooks.registerBoundary(startMarker, endMarker) ?? null\n if (streamBoundaryId) {\n startMarker.data = `fict:suspense-start:${streamBoundaryId}`\n endMarker.data = `fict:suspense-end:${streamBoundaryId}`\n }\n }\n\n const onResolveMaybe = () => {\n if (!resolvedOnce) {\n resolvedOnce = true\n props.onResolve?.()\n }\n }\n\n registerSuspenseHandler(token => {\n const tokenEpoch = epoch\n if (!streamPending && streamBoundaryId && streamHooks?.boundaryPending) {\n streamPending = true\n streamHooks.boundaryPending(streamBoundaryId)\n }\n pending(pending() + 1)\n // Directly render fallback instead of using switchView to avoid\n // triggering the effect which would cause duplicate renders\n renderView(toFallback())\n\n const thenable = (token as SuspenseToken).then\n ? (token as SuspenseToken)\n : isThenable(token)\n ? token\n : null\n\n if (thenable) {\n thenable.then(\n () => {\n // This prevents stale token resolutions from affecting state after\n // a reset. The order is important: check epoch first, then update state.\n if (epoch !== tokenEpoch) {\n // Token is stale (from before a reset), ignore it completely\n return\n }\n // Use Math.max as a defensive measure - pending should never go below 0,\n // but this protects against edge cases where a token might resolve twice\n // or after the component has been reset.\n const newPending = Math.max(0, pending() - 1)\n pending(newPending)\n if (newPending === 0) {\n // Directly render children instead of using switchView\n renderView(props.children ?? null)\n if (streamPending && streamBoundaryId && streamHooks?.boundaryResolved) {\n streamPending = false\n streamHooks.boundaryResolved(streamBoundaryId)\n }\n onResolveMaybe()\n }\n },\n err => {\n // Same epoch check - ignore stale tokens\n if (epoch !== tokenEpoch) {\n return\n }\n const newPending = Math.max(0, pending() - 1)\n pending(newPending)\n let rejectionError = err\n try {\n props.onReject?.(err)\n } catch (callbackError) {\n rejectionError = callbackError\n }\n\n const handled = handleError(rejectionError, { source: 'render' }, hostRoot)\n if (!handled) {\n if (streamHooks?.onError) {\n streamHooks.onError(rejectionError, streamBoundaryId ?? undefined)\n return\n }\n throw rejectionError\n }\n if (\n newPending === 0 &&\n streamPending &&\n streamBoundaryId &&\n streamHooks?.boundaryResolved\n ) {\n streamPending = false\n streamHooks.boundaryResolved(streamBoundaryId)\n }\n },\n )\n return true\n }\n\n return false\n })\n\n // Initial render - render children directly\n // Note: This will be called synchronously during component creation.\n // If children suspend, the handler above will be called and switch to fallback.\n renderView(props.children ?? null)\n\n if (props.resetKeys !== undefined) {\n const isGetter =\n typeof props.resetKeys === 'function' && (props.resetKeys as () => unknown).length === 0\n const getter = isGetter ? (props.resetKeys as () => unknown) : undefined\n let prev = isGetter ? getter!() : props.resetKeys\n createEffect(() => {\n const next = getter ? getter() : props.resetKeys\n if (prev !== next) {\n prev = next\n epoch++\n pending(0)\n // Directly render children instead of using switchView\n renderView(props.children ?? null)\n if (streamPending && streamBoundaryId && streamHooks?.boundaryResolved) {\n streamPending = false\n streamHooks.boundaryResolved(streamBoundaryId)\n }\n }\n })\n }\n\n return fragment\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/ref.ts","../src/error-boundary.ts","../src/suspense.ts"],"sourcesContent":["import type { RefObject } from './types'\n\n/**\n * Create a ref object for DOM element references.\n *\n * @returns A ref object with a `current` property initialized to `null`\n *\n * @example\n * ```tsx\n * import { createRef } from 'fict'\n *\n * function Component() {\n * const inputRef = createRef<HTMLInputElement>()\n *\n * $effect(() => {\n * inputRef.current?.focus()\n * })\n *\n * return <input ref={inputRef} />\n * }\n * ```\n */\nexport function createRef<T extends Element = HTMLElement>(): RefObject<T> {\n return { current: null }\n}\n","import { createElement } from './dom'\nimport { createEffect } from './effect'\nimport {\n createRootContext,\n destroyRoot,\n flushOnMount,\n getCurrentRoot,\n pushRoot,\n popRoot,\n registerErrorHandler,\n registerRootCleanup,\n} from './lifecycle'\nimport { insertNodesBefore, removeNodes, toNodeArray } from './node-ops'\nimport type { BaseProps, FictNode } from './types'\n\ninterface ErrorBoundaryProps extends BaseProps {\n fallback: FictNode | ((err: unknown, reset?: () => void) => FictNode)\n onError?: (err: unknown) => void\n resetKeys?: unknown | (() => unknown)\n}\n\nexport function ErrorBoundary(props: ErrorBoundaryProps): FictNode {\n const hostRoot = getCurrentRoot()\n const markerOwnerDocument = hostRoot?.ownerDocument ?? document\n const fragment = markerOwnerDocument.createDocumentFragment()\n const marker = markerOwnerDocument.createComment('fict:error-boundary')\n fragment.appendChild(marker)\n\n let cleanup: (() => void) | undefined\n let activeNodes: Node[] = []\n let renderingFallback = false\n\n let reset = () => {}\n const toView = (err: unknown | null): FictNode | null => {\n if (err != null) {\n return typeof props.fallback === 'function'\n ? (props.fallback as (e: unknown, reset?: () => void) => FictNode)(err, reset)\n : props.fallback\n }\n return props.children ?? null\n }\n\n const renderValue = (value: FictNode | null) => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n if (activeNodes.length) {\n removeNodes(activeNodes)\n activeNodes = []\n }\n\n if (value == null || value === false) {\n return\n }\n\n const root = createRootContext(hostRoot)\n const prev = pushRoot(root)\n let nodes: Node[] = []\n try {\n const output = createElement(value)\n nodes = toNodeArray(output, markerOwnerDocument)\n const parentNode = marker.parentNode as (ParentNode & Node) | null\n if (parentNode) {\n insertNodesBefore(parentNode, nodes, marker)\n }\n } catch (err) {\n popRoot(prev)\n destroyRoot(root)\n // Fall back immediately on render errors, avoid infinite recursion\n if (renderingFallback) {\n throw err\n }\n // nested errors. If fallback rendering also throws, we should NOT reset\n // the flag until we're sure no more recursion is happening.\n renderingFallback = true\n try {\n renderValue(toView(err))\n // Only reset if successful - if renderValue threw, we want to keep\n // renderingFallback = true to prevent infinite recursion\n renderingFallback = false\n props.onError?.(err)\n } catch (fallbackErr) {\n // Fallback rendering failed - keep renderingFallback = true\n // to prevent further attempts, then rethrow\n // If fallback fails, report both errors\n props.onError?.(err)\n throw fallbackErr\n }\n return\n }\n popRoot(prev)\n flushOnMount(root)\n\n cleanup = () => {\n destroyRoot(root)\n removeNodes(nodes)\n }\n activeNodes = nodes\n }\n\n reset = () => {\n renderingFallback = false\n renderValue(toView(null))\n }\n\n renderValue(props.children ?? null)\n\n registerRootCleanup(() => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n })\n\n registerErrorHandler(err => {\n renderValue(toView(err))\n props.onError?.(err)\n return true\n })\n\n if (props.resetKeys !== undefined) {\n const isGetter =\n typeof props.resetKeys === 'function' && (props.resetKeys as () => unknown).length === 0\n const getter = isGetter ? (props.resetKeys as () => unknown) : undefined\n let prev = isGetter ? getter!() : props.resetKeys\n createEffect(() => {\n const next = getter ? getter() : props.resetKeys\n if (prev !== next) {\n prev = next\n renderValue(toView(null))\n }\n })\n }\n\n return fragment\n}\n","import { createElement } from './dom'\nimport { createEffect } from './effect'\nimport {\n createRootContext,\n destroyRoot,\n flushOnMount,\n getCurrentRoot,\n handleError,\n pushRoot,\n popRoot,\n registerRootCleanup,\n registerSuspenseHandler,\n} from './lifecycle'\nimport { insertNodesBefore, removeNodes, toNodeArray } from './node-ops'\nimport { createSignal } from './signal'\nimport { __fictGetSSRStreamHooks, __fictPopSSRBoundary, __fictPushSSRBoundary } from './ssr-stream'\nimport type { BaseProps, FictNode, SuspenseToken } from './types'\n\nexport interface SuspenseProps extends BaseProps {\n fallback: FictNode | ((err?: unknown) => FictNode)\n onResolve?: () => void\n onReject?: (err: unknown) => void\n resetKeys?: unknown | (() => unknown)\n}\n\nexport interface SuspenseHandle {\n token: SuspenseToken\n resolve: () => void\n reject: (err: unknown) => void\n}\n\nexport function createSuspenseToken(): SuspenseHandle {\n let resolve!: () => void\n let reject!: (err: unknown) => void\n const promise = new Promise<void>((res, rej) => {\n resolve = res\n reject = rej\n })\n return {\n token: {\n then: promise.then.bind(promise),\n },\n resolve,\n reject,\n }\n}\n\nconst isThenable = (value: unknown): value is PromiseLike<unknown> =>\n typeof value === 'object' &&\n value !== null &&\n typeof (value as PromiseLike<unknown>).then === 'function'\n\nexport function Suspense(props: SuspenseProps): FictNode {\n const streamHooks = __fictGetSSRStreamHooks()\n const pending = createSignal(0)\n let resolvedOnce = false\n let epoch = 0\n const hostRoot = getCurrentRoot()\n const markerOwnerDocument = hostRoot?.ownerDocument ?? document\n\n const toFallback = (err?: unknown) =>\n typeof props.fallback === 'function'\n ? (props.fallback as (e?: unknown) => FictNode)(err)\n : props.fallback\n\n const renderView = (view: FictNode | null) => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n if (activeNodes.length) {\n removeNodes(activeNodes)\n activeNodes = []\n }\n\n if (view == null || view === false) {\n return\n }\n\n const root = createRootContext(hostRoot)\n const prev = pushRoot(root)\n let nodes: Node[] = []\n let boundaryPushed = false\n try {\n if (streamBoundaryId) {\n __fictPushSSRBoundary(streamBoundaryId)\n boundaryPushed = true\n }\n const output = createElement(view)\n nodes = toNodeArray(output, markerOwnerDocument)\n // Suspended view: child threw a suspense token and was handled upstream.\n // Avoid replacing existing fallback content; tear down this attempt.\n const suspendedAttempt =\n root.suspended ||\n (nodes.length > 0 &&\n nodes.every(node => node instanceof Comment && (node as Comment).data === 'fict:suspend'))\n if (suspendedAttempt) {\n popRoot(prev)\n destroyRoot(root)\n return\n }\n const parentNode = endMarker.parentNode as (ParentNode & Node) | null\n if (parentNode) {\n insertNodesBefore(parentNode, nodes, endMarker)\n }\n } catch (err) {\n popRoot(prev)\n destroyRoot(root)\n if (!handleError(err, { source: 'render' }, hostRoot)) {\n throw err\n }\n return\n } finally {\n if (boundaryPushed) {\n __fictPopSSRBoundary(streamBoundaryId ?? undefined)\n }\n }\n popRoot(prev)\n flushOnMount(root)\n\n cleanup = () => {\n destroyRoot(root)\n removeNodes(nodes)\n }\n activeNodes = nodes\n }\n\n const fragment = markerOwnerDocument.createDocumentFragment()\n const startMarker = markerOwnerDocument.createComment('fict:suspense-start')\n const endMarker = markerOwnerDocument.createComment('fict:suspense-end')\n fragment.appendChild(startMarker)\n fragment.appendChild(endMarker)\n let cleanup: (() => void) | undefined\n let activeNodes: Node[] = []\n let streamBoundaryId: string | null = null\n let streamPending = false\n\n if (streamHooks?.registerBoundary) {\n streamBoundaryId = streamHooks.registerBoundary(startMarker, endMarker) ?? null\n if (streamBoundaryId) {\n startMarker.data = `fict:suspense-start:${streamBoundaryId}`\n endMarker.data = `fict:suspense-end:${streamBoundaryId}`\n }\n }\n\n const onResolveMaybe = () => {\n if (!resolvedOnce) {\n resolvedOnce = true\n props.onResolve?.()\n }\n }\n\n registerSuspenseHandler(token => {\n const tokenEpoch = epoch\n if (!streamPending && streamBoundaryId && streamHooks?.boundaryPending) {\n streamPending = true\n streamHooks.boundaryPending(streamBoundaryId)\n }\n pending(pending() + 1)\n // Directly render fallback instead of using switchView to avoid\n // triggering the effect which would cause duplicate renders\n renderView(toFallback())\n\n const thenable = (token as SuspenseToken).then\n ? (token as SuspenseToken)\n : isThenable(token)\n ? token\n : null\n\n if (thenable) {\n thenable.then(\n () => {\n // This prevents stale token resolutions from affecting state after\n // a reset. The order is important: check epoch first, then update state.\n if (epoch !== tokenEpoch) {\n // Token is stale (from before a reset), ignore it completely\n return\n }\n // Use Math.max as a defensive measure - pending should never go below 0,\n // but this protects against edge cases where a token might resolve twice\n // or after the component has been reset.\n const newPending = Math.max(0, pending() - 1)\n pending(newPending)\n if (newPending === 0) {\n // Directly render children instead of using switchView\n renderView(props.children ?? null)\n if (streamPending && streamBoundaryId && streamHooks?.boundaryResolved) {\n streamPending = false\n streamHooks.boundaryResolved(streamBoundaryId)\n }\n onResolveMaybe()\n }\n },\n err => {\n // Same epoch check - ignore stale tokens\n if (epoch !== tokenEpoch) {\n return\n }\n const newPending = Math.max(0, pending() - 1)\n pending(newPending)\n let rejectionError = err\n try {\n props.onReject?.(err)\n } catch (callbackError) {\n rejectionError = callbackError\n }\n\n const handled = handleError(rejectionError, { source: 'render' }, hostRoot)\n if (!handled) {\n if (streamHooks?.onError) {\n streamHooks.onError(rejectionError, streamBoundaryId ?? undefined)\n return\n }\n throw rejectionError\n }\n if (\n newPending === 0 &&\n streamPending &&\n streamBoundaryId &&\n streamHooks?.boundaryResolved\n ) {\n streamPending = false\n streamHooks.boundaryResolved(streamBoundaryId)\n }\n },\n )\n return true\n }\n\n return false\n })\n\n // Initial render - render children directly\n // Note: This will be called synchronously during component creation.\n // If children suspend, the handler above will be called and switch to fallback.\n renderView(props.children ?? null)\n\n registerRootCleanup(() => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n })\n\n if (props.resetKeys !== undefined) {\n const isGetter =\n typeof props.resetKeys === 'function' && (props.resetKeys as () => unknown).length === 0\n const getter = isGetter ? (props.resetKeys as () => unknown) : undefined\n let prev = isGetter ? getter!() : props.resetKeys\n createEffect(() => {\n const next = getter ? getter() : props.resetKeys\n if (prev !== next) {\n prev = next\n epoch++\n pending(0)\n // Directly render children instead of using switchView\n renderView(props.children ?? null)\n if (streamPending && streamBoundaryId && streamHooks?.boundaryResolved) {\n streamPending = false\n streamHooks.boundaryResolved(streamBoundaryId)\n }\n }\n })\n }\n\n return fragment\n}\n"],"mappings":"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","names":[]}
|
package/dist/internal-list.cjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunk2J4INHDTcjs = require('./chunk-2J4INHDT.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
7
|
-
require('./chunk-
|
|
6
|
+
var _chunkUG2IFQOYcjs = require('./chunk-UG2IFQOY.cjs');
|
|
7
|
+
require('./chunk-NBDEMBBX.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
exports.createKeyedList =
|
|
11
|
+
exports.createKeyedList = _chunk2J4INHDTcjs.createKeyedList; exports.toNodeArray = _chunkUG2IFQOYcjs.toNodeArray;
|
|
12
12
|
//# sourceMappingURL=internal-list.cjs.map
|
package/dist/internal-list.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createKeyedList
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-OLHZBAIF.js";
|
|
4
4
|
import {
|
|
5
5
|
toNodeArray
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-R2HYEOP7.js";
|
|
7
|
+
import "./chunk-OKPQWORE.js";
|
|
8
8
|
export {
|
|
9
9
|
createKeyedList,
|
|
10
10
|
toNodeArray
|
package/dist/internal.cjs
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunk2J4INHDTcjs = require('./chunk-2J4INHDT.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkVP2WC7X3cjs = require('./chunk-VP2WC7X3.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
@@ -51,7 +51,7 @@ var _chunkECNK25S4cjs = require('./chunk-ECNK25S4.cjs');
|
|
|
51
51
|
|
|
52
52
|
|
|
53
53
|
|
|
54
|
-
var
|
|
54
|
+
var _chunkUG2IFQOYcjs = require('./chunk-UG2IFQOY.cjs');
|
|
55
55
|
|
|
56
56
|
|
|
57
57
|
|
|
@@ -109,7 +109,7 @@ var _chunkAR2T7JEXcjs = require('./chunk-AR2T7JEX.cjs');
|
|
|
109
109
|
|
|
110
110
|
|
|
111
111
|
|
|
112
|
-
var
|
|
112
|
+
var _chunkNBDEMBBXcjs = require('./chunk-NBDEMBBX.cjs');
|
|
113
113
|
|
|
114
114
|
|
|
115
115
|
|
|
@@ -215,5 +215,5 @@ var _chunkWJMZ7X46cjs = require('./chunk-WJMZ7X46.cjs');
|
|
|
215
215
|
|
|
216
216
|
|
|
217
217
|
|
|
218
|
-
exports.Aliases =
|
|
218
|
+
exports.Aliases = _chunkNBDEMBBXcjs.Aliases; exports.BooleanAttributes = _chunkNBDEMBBXcjs.BooleanAttributes; exports.ChildProperties = _chunkNBDEMBBXcjs.ChildProperties; exports.DelegatedEvents = _chunkNBDEMBBXcjs.DelegatedEvents; exports.FICT_SSR_SNAPSHOT_SCHEMA_VERSION = _chunkNBDEMBBXcjs.FICT_SSR_SNAPSHOT_SCHEMA_VERSION; exports.Fragment = _chunkUG2IFQOYcjs.Fragment; exports.Properties = _chunkNBDEMBBXcjs.Properties; exports.SVGElements = _chunkNBDEMBBXcjs.SVGElements; exports.SVGNamespace = _chunkNBDEMBBXcjs.SVGNamespace; exports.UnitlessStyles = _chunkNBDEMBBXcjs.UnitlessStyles; exports.__fictDisableResumable = _chunkNBDEMBBXcjs.__fictDisableResumable; exports.__fictDisableSSR = _chunkNBDEMBBXcjs.__fictDisableSSR; exports.__fictEnableResumable = _chunkNBDEMBBXcjs.__fictEnableResumable; exports.__fictEnableSSR = _chunkNBDEMBBXcjs.__fictEnableSSR; exports.__fictEnsureScope = _chunkNBDEMBBXcjs.__fictEnsureScope; exports.__fictEnterHydration = _chunkNBDEMBBXcjs.__fictEnterHydration; exports.__fictExitHydration = _chunkNBDEMBBXcjs.__fictExitHydration; exports.__fictGetResume = _chunkNBDEMBBXcjs.__fictGetResume; exports.__fictGetSSRScope = _chunkNBDEMBBXcjs.__fictGetSSRScope; exports.__fictGetSSRStreamHooks = _chunkNBDEMBBXcjs.__fictGetSSRStreamHooks; exports.__fictGetScopeProps = _chunkNBDEMBBXcjs.__fictGetScopeProps; exports.__fictGetScopeRegistry = _chunkNBDEMBBXcjs.__fictGetScopeRegistry; exports.__fictGetScopesForBoundary = _chunkNBDEMBBXcjs.__fictGetScopesForBoundary; exports.__fictIsHydrating = _chunkNBDEMBBXcjs.__fictIsHydrating; exports.__fictIsResumable = _chunkNBDEMBBXcjs.__fictIsResumable; exports.__fictIsSSR = _chunkNBDEMBBXcjs.__fictIsSSR; exports.__fictMergeSSRState = _chunkNBDEMBBXcjs.__fictMergeSSRState; exports.__fictPopContext = _chunkNBDEMBBXcjs.__fictPopContext; exports.__fictPrepareContext = _chunkNBDEMBBXcjs.__fictPrepareContext; exports.__fictProp = _chunkUG2IFQOYcjs.__fictProp; exports.__fictPropsRest = _chunkUG2IFQOYcjs.__fictPropsRest; exports.__fictPushContext = _chunkNBDEMBBXcjs.__fictPushContext; exports.__fictQrl = _chunkNBDEMBBXcjs.__fictQrl; exports.__fictRegisterResume = _chunkNBDEMBBXcjs.__fictRegisterResume; exports.__fictRegisterScope = _chunkNBDEMBBXcjs.__fictRegisterScope; exports.__fictRender = _chunkNBDEMBBXcjs.__fictRender; exports.__fictResetContext = _chunkNBDEMBBXcjs.__fictResetContext; exports.__fictSerializeSSRState = _chunkNBDEMBBXcjs.__fictSerializeSSRState; exports.__fictSerializeSSRStateForScopes = _chunkNBDEMBBXcjs.__fictSerializeSSRStateForScopes; exports.__fictSetSSRState = _chunkNBDEMBBXcjs.__fictSetSSRState; exports.__fictSetSSRStreamHooks = _chunkNBDEMBBXcjs.__fictSetSSRStreamHooks; exports.__fictUseContext = _chunkNBDEMBBXcjs.__fictUseContext; exports.__fictUseEffect = _chunkNBDEMBBXcjs.__fictUseEffect; exports.__fictUseLexicalScope = _chunkNBDEMBBXcjs.__fictUseLexicalScope; exports.__fictUseMemo = _chunkNBDEMBBXcjs.__fictUseMemo; exports.__fictUseSignal = _chunkNBDEMBBXcjs.__fictUseSignal; exports.__resetReactiveState = _chunkNBDEMBBXcjs.__resetReactiveState; exports.addEventListener = _chunkUG2IFQOYcjs.addEventListener; exports.assign = _chunkUG2IFQOYcjs.assign; exports.bindAttribute = _chunkUG2IFQOYcjs.bindAttribute; exports.bindClass = _chunkUG2IFQOYcjs.bindClass; exports.bindEvent = _chunkUG2IFQOYcjs.bindEvent; exports.bindProperty = _chunkUG2IFQOYcjs.bindProperty; exports.bindRef = _chunkUG2IFQOYcjs.bindRef; exports.bindStyle = _chunkUG2IFQOYcjs.bindStyle; exports.bindText = _chunkUG2IFQOYcjs.bindText; exports.callEventHandler = _chunkUG2IFQOYcjs.callEventHandler; exports.classList = _chunkUG2IFQOYcjs.classList; exports.clearDelegatedEvents = _chunkUG2IFQOYcjs.clearDelegatedEvents; exports.createConditional = _chunkUG2IFQOYcjs.createConditional; exports.createEffect = _chunkNBDEMBBXcjs.createEffect; exports.createElement = _chunkUG2IFQOYcjs.createElement; exports.createKeyedList = _chunk2J4INHDTcjs.createKeyedList; exports.createMemo = _chunkNBDEMBBXcjs.createMemo; exports.createPortal = _chunkUG2IFQOYcjs.createPortal; exports.createPropsProxy = _chunkUG2IFQOYcjs.createPropsProxy; exports.createRenderEffect = _chunkNBDEMBBXcjs.createRenderEffect; exports.createSelector = _chunkNBDEMBBXcjs.createSelector; exports.createSignal = _chunkNBDEMBBXcjs.signal; exports.createStore = _chunkNBDEMBBXcjs.createStore; exports.delegateEvents = _chunkUG2IFQOYcjs.delegateEvents; exports.deserializeValue = _chunkNBDEMBBXcjs.deserializeValue; exports.getPropAlias = _chunkNBDEMBBXcjs.getPropAlias; exports.getSlotEnd = _chunkUG2IFQOYcjs.getSlotEnd; exports.hydrateComponent = _chunkUG2IFQOYcjs.hydrateComponent; exports.insert = _chunkUG2IFQOYcjs.insert; exports.insertBetween = _chunkUG2IFQOYcjs.insertBetween; exports.insertNodesBefore = _chunkUG2IFQOYcjs.insertNodesBefore; exports.isNodeBetweenMarkers = _chunk2J4INHDTcjs.isNodeBetweenMarkers; exports.isReactive = _chunkUG2IFQOYcjs.isReactive; exports.isStoreProxy = _chunkNBDEMBBXcjs.isStoreProxy; exports.keyed = _chunkUG2IFQOYcjs.keyed; exports.mergeProps = _chunkUG2IFQOYcjs.mergeProps; exports.moveNodesBefore = _chunk2J4INHDTcjs.moveNodesBefore; exports.nonReactive = _chunkUG2IFQOYcjs.nonReactive; exports.onDestroy = _chunkNBDEMBBXcjs.onDestroy; exports.prop = _chunkUG2IFQOYcjs.prop; exports.reactive = _chunkUG2IFQOYcjs.reactive; exports.reconcileArrays = _chunk2J4INHDTcjs.reconcileArrays; exports.removeNodes = _chunkUG2IFQOYcjs.removeNodes; exports.render = _chunkUG2IFQOYcjs.render; exports.resolvePath = _chunkUG2IFQOYcjs.resolvePath; exports.runInScope = _chunkVP2WC7X3cjs.runInScope; exports.serializeValue = _chunkNBDEMBBXcjs.serializeValue; exports.setAttr = _chunkUG2IFQOYcjs.setAttr; exports.setClass = _chunkUG2IFQOYcjs.setClass; exports.setProp = _chunkUG2IFQOYcjs.setProp; exports.setStyle = _chunkUG2IFQOYcjs.setStyle; exports.setText = _chunkUG2IFQOYcjs.setText; exports.spread = _chunkUG2IFQOYcjs.spread; exports.template = _chunkUG2IFQOYcjs.template; exports.toNodeArray = _chunkUG2IFQOYcjs.toNodeArray; exports.unwrap = _chunkUG2IFQOYcjs.unwrap; exports.unwrapStore = _chunkNBDEMBBXcjs.unwrapStore;
|
|
219
219
|
//# sourceMappingURL=internal.cjs.map
|
package/dist/internal.d.cts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { _ as __resetReactiveState, c as createSelector, s as createSignal } from './signal-Z4KkDk9h.cjs';
|
|
2
|
-
export { F as Fragment, _ as __fictProp, a as __fictPropsRest, d as createElement, c as createMemo, b as createPropsProxy, h as hydrateComponent, k as keyed, m as mergeProps, p as prop, r as render, t as template } from './props-
|
|
3
|
-
export { Q as AttributeSetter, O as BindingHandle, P as CreateElementFn, M as MaybeReactive, L as addEventListener, H as assign, l as bindAttribute, o as bindClass, w as bindEvent, y as bindProperty, z as bindRef, m as bindStyle, k as bindText, x as callEventHandler, I as classList, K as clearDelegatedEvents, D as createConditional, j as createEffect, E as createPortal, h as createRenderEffect, J as delegateEvents, A as insert, C as insertBetween, i as isReactive, n as nonReactive, N as onDestroy, r as reactive, p as setAttr, v as setClass, q as setProp, t as setStyle, s as setText, G as spread, u as unwrap } from './binding-
|
|
4
|
-
export { F as FICT_SSR_SNAPSHOT_SCHEMA_VERSION, n as __fictDisableResumable, k as __fictDisableSSR, m as __fictEnableResumable, j as __fictEnableSSR, A as __fictEnsureScope, p as __fictEnterHydration, q as __fictExitHydration, E as __fictGetResume, z as __fictGetSSRScope, B as __fictGetScopeProps, t as __fictGetScopeRegistry, u as __fictGetScopesForBoundary, r as __fictIsHydrating, o as __fictIsResumable, l as __fictIsSSR, y as __fictMergeSSRState, c as __fictPopContext, i as __fictPrepareContext, b as __fictPushContext, C as __fictQrl, D as __fictRegisterResume, s as __fictRegisterScope, g as __fictRender, h as __fictResetContext, v as __fictSerializeSSRState, w as __fictSerializeSSRStateForScopes, x as __fictSetSSRState, a as __fictUseContext, f as __fictUseEffect, _ as __fictUseLexicalScope, e as __fictUseMemo, d as __fictUseSignal, H as deserializeValue, G as serializeValue } from './resume-
|
|
2
|
+
export { F as Fragment, _ as __fictProp, a as __fictPropsRest, d as createElement, c as createMemo, b as createPropsProxy, h as hydrateComponent, k as keyed, m as mergeProps, p as prop, r as render, t as template } from './props-D4tK8Gn0.cjs';
|
|
3
|
+
export { Q as AttributeSetter, O as BindingHandle, P as CreateElementFn, M as MaybeReactive, L as addEventListener, H as assign, l as bindAttribute, o as bindClass, w as bindEvent, y as bindProperty, z as bindRef, m as bindStyle, k as bindText, x as callEventHandler, I as classList, K as clearDelegatedEvents, D as createConditional, j as createEffect, E as createPortal, h as createRenderEffect, J as delegateEvents, A as insert, C as insertBetween, i as isReactive, n as nonReactive, N as onDestroy, r as reactive, p as setAttr, v as setClass, q as setProp, t as setStyle, s as setText, G as spread, u as unwrap } from './binding-CDR2ERoq.cjs';
|
|
4
|
+
export { F as FICT_SSR_SNAPSHOT_SCHEMA_VERSION, n as __fictDisableResumable, k as __fictDisableSSR, m as __fictEnableResumable, j as __fictEnableSSR, A as __fictEnsureScope, p as __fictEnterHydration, q as __fictExitHydration, E as __fictGetResume, z as __fictGetSSRScope, B as __fictGetScopeProps, t as __fictGetScopeRegistry, u as __fictGetScopesForBoundary, r as __fictIsHydrating, o as __fictIsResumable, l as __fictIsSSR, y as __fictMergeSSRState, c as __fictPopContext, i as __fictPrepareContext, b as __fictPushContext, C as __fictQrl, D as __fictRegisterResume, s as __fictRegisterScope, g as __fictRender, h as __fictResetContext, v as __fictSerializeSSRState, w as __fictSerializeSSRStateForScopes, x as __fictSetSSRState, a as __fictUseContext, f as __fictUseEffect, _ as __fictUseLexicalScope, e as __fictUseMemo, d as __fictUseSignal, H as deserializeValue, G as serializeValue } from './resume-C20cRVj9.cjs';
|
|
5
5
|
export { K as KeyedListBinding, c as createKeyedList, g as getSlotEnd, i as insertNodesBefore, b as isNodeBetweenMarkers, m as moveNodesBefore, a as removeNodes, r as resolvePath, t as toNodeArray } from './list-Bi8dDF8Q.cjs';
|
|
6
|
-
export { r as runInScope } from './scope-
|
|
6
|
+
export { r as runInScope } from './scope-Ck3mTQVS.cjs';
|
|
7
7
|
|
|
8
8
|
type Store<T> = T;
|
|
9
9
|
/**
|
package/dist/internal.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { _ as __resetReactiveState, c as createSelector, s as createSignal } from './signal-Z4KkDk9h.js';
|
|
2
|
-
export { F as Fragment, _ as __fictProp, a as __fictPropsRest, d as createElement, c as createMemo, b as createPropsProxy, h as hydrateComponent, k as keyed, m as mergeProps, p as prop, r as render, t as template } from './props-
|
|
3
|
-
export { Q as AttributeSetter, O as BindingHandle, P as CreateElementFn, M as MaybeReactive, L as addEventListener, H as assign, l as bindAttribute, o as bindClass, w as bindEvent, y as bindProperty, z as bindRef, m as bindStyle, k as bindText, x as callEventHandler, I as classList, K as clearDelegatedEvents, D as createConditional, j as createEffect, E as createPortal, h as createRenderEffect, J as delegateEvents, A as insert, C as insertBetween, i as isReactive, n as nonReactive, N as onDestroy, r as reactive, p as setAttr, v as setClass, q as setProp, t as setStyle, s as setText, G as spread, u as unwrap } from './binding-
|
|
4
|
-
export { F as FICT_SSR_SNAPSHOT_SCHEMA_VERSION, n as __fictDisableResumable, k as __fictDisableSSR, m as __fictEnableResumable, j as __fictEnableSSR, A as __fictEnsureScope, p as __fictEnterHydration, q as __fictExitHydration, E as __fictGetResume, z as __fictGetSSRScope, B as __fictGetScopeProps, t as __fictGetScopeRegistry, u as __fictGetScopesForBoundary, r as __fictIsHydrating, o as __fictIsResumable, l as __fictIsSSR, y as __fictMergeSSRState, c as __fictPopContext, i as __fictPrepareContext, b as __fictPushContext, C as __fictQrl, D as __fictRegisterResume, s as __fictRegisterScope, g as __fictRender, h as __fictResetContext, v as __fictSerializeSSRState, w as __fictSerializeSSRStateForScopes, x as __fictSetSSRState, a as __fictUseContext, f as __fictUseEffect, _ as __fictUseLexicalScope, e as __fictUseMemo, d as __fictUseSignal, H as deserializeValue, G as serializeValue } from './resume-
|
|
2
|
+
export { F as Fragment, _ as __fictProp, a as __fictPropsRest, d as createElement, c as createMemo, b as createPropsProxy, h as hydrateComponent, k as keyed, m as mergeProps, p as prop, r as render, t as template } from './props-CFoQ471Y.js';
|
|
3
|
+
export { Q as AttributeSetter, O as BindingHandle, P as CreateElementFn, M as MaybeReactive, L as addEventListener, H as assign, l as bindAttribute, o as bindClass, w as bindEvent, y as bindProperty, z as bindRef, m as bindStyle, k as bindText, x as callEventHandler, I as classList, K as clearDelegatedEvents, D as createConditional, j as createEffect, E as createPortal, h as createRenderEffect, J as delegateEvents, A as insert, C as insertBetween, i as isReactive, n as nonReactive, N as onDestroy, r as reactive, p as setAttr, v as setClass, q as setProp, t as setStyle, s as setText, G as spread, u as unwrap } from './binding-BfzY9rae.js';
|
|
4
|
+
export { F as FICT_SSR_SNAPSHOT_SCHEMA_VERSION, n as __fictDisableResumable, k as __fictDisableSSR, m as __fictEnableResumable, j as __fictEnableSSR, A as __fictEnsureScope, p as __fictEnterHydration, q as __fictExitHydration, E as __fictGetResume, z as __fictGetSSRScope, B as __fictGetScopeProps, t as __fictGetScopeRegistry, u as __fictGetScopesForBoundary, r as __fictIsHydrating, o as __fictIsResumable, l as __fictIsSSR, y as __fictMergeSSRState, c as __fictPopContext, i as __fictPrepareContext, b as __fictPushContext, C as __fictQrl, D as __fictRegisterResume, s as __fictRegisterScope, g as __fictRender, h as __fictResetContext, v as __fictSerializeSSRState, w as __fictSerializeSSRStateForScopes, x as __fictSetSSRState, a as __fictUseContext, f as __fictUseEffect, _ as __fictUseLexicalScope, e as __fictUseMemo, d as __fictUseSignal, H as deserializeValue, G as serializeValue } from './resume-C166aAVg.js';
|
|
5
5
|
export { K as KeyedListBinding, c as createKeyedList, g as getSlotEnd, i as insertNodesBefore, b as isNodeBetweenMarkers, m as moveNodesBefore, a as removeNodes, r as resolvePath, t as toNodeArray } from './list-BKM6YOPq.js';
|
|
6
|
-
export { r as runInScope } from './scope-
|
|
6
|
+
export { r as runInScope } from './scope-BFzD_7hx.js';
|
|
7
7
|
|
|
8
8
|
type Store<T> = T;
|
|
9
9
|
/**
|
package/dist/internal.js
CHANGED
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
isNodeBetweenMarkers,
|
|
4
4
|
moveNodesBefore,
|
|
5
5
|
reconcileArrays
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-OLHZBAIF.js";
|
|
7
7
|
import {
|
|
8
8
|
runInScope
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-LFLFSJFU.js";
|
|
10
10
|
import {
|
|
11
11
|
Fragment,
|
|
12
12
|
__fictProp,
|
|
@@ -51,7 +51,7 @@ import {
|
|
|
51
51
|
template,
|
|
52
52
|
toNodeArray,
|
|
53
53
|
unwrap
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-R2HYEOP7.js";
|
|
55
55
|
import {
|
|
56
56
|
Aliases,
|
|
57
57
|
BooleanAttributes,
|
|
@@ -109,7 +109,7 @@ import {
|
|
|
109
109
|
serializeValue,
|
|
110
110
|
signal,
|
|
111
111
|
unwrapStore
|
|
112
|
-
} from "./chunk-
|
|
112
|
+
} from "./chunk-OKPQWORE.js";
|
|
113
113
|
export {
|
|
114
114
|
Aliases,
|
|
115
115
|
BooleanAttributes,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/jsx-dev-runtime.ts","../src/jsx.ts"],"sourcesContent":["export { jsx, jsxs, jsxDEV, Fragment } from './jsx'\nexport type { JSX } from './jsx'\n","import type { FictNode } from './types'\n\nexport const Fragment = Symbol('Fragment')\n\nexport function jsx(\n type: string | typeof Fragment | ((props: Record<string, unknown>) => FictNode),\n props: Record<string, unknown>,\n key?: string,\n): FictNode {\n return { type, props, key }\n}\n\nexport const jsxs = jsx\nexport const jsxDEV = jsx\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace JSX {\n export type Element = FictNode\n\n export interface IntrinsicElements {\n // Document structure\n html: HTMLAttributes<HTMLHtmlElement>\n head: HTMLAttributes<HTMLHeadElement>\n body: HTMLAttributes<HTMLBodyElement>\n title: HTMLAttributes<HTMLTitleElement>\n meta: MetaHTMLAttributes<HTMLMetaElement>\n link: LinkHTMLAttributes<HTMLLinkElement>\n style: StyleHTMLAttributes<HTMLStyleElement>\n script: ScriptHTMLAttributes<HTMLScriptElement>\n noscript: HTMLAttributes<HTMLElement>\n\n // Layout & Semantic\n div: HTMLAttributes<HTMLDivElement>\n span: HTMLAttributes<HTMLSpanElement>\n main: HTMLAttributes<HTMLElement>\n header: HTMLAttributes<HTMLElement>\n footer: HTMLAttributes<HTMLElement>\n section: HTMLAttributes<HTMLElement>\n article: HTMLAttributes<HTMLElement>\n aside: HTMLAttributes<HTMLElement>\n nav: HTMLAttributes<HTMLElement>\n address: HTMLAttributes<HTMLElement>\n\n // Headings\n h1: HTMLAttributes<HTMLHeadingElement>\n h2: HTMLAttributes<HTMLHeadingElement>\n h3: HTMLAttributes<HTMLHeadingElement>\n h4: HTMLAttributes<HTMLHeadingElement>\n h5: HTMLAttributes<HTMLHeadingElement>\n h6: HTMLAttributes<HTMLHeadingElement>\n hgroup: HTMLAttributes<HTMLElement>\n\n // Text content\n p: HTMLAttributes<HTMLParagraphElement>\n blockquote: BlockquoteHTMLAttributes<HTMLQuoteElement>\n pre: HTMLAttributes<HTMLPreElement>\n figure: HTMLAttributes<HTMLElement>\n figcaption: HTMLAttributes<HTMLElement>\n hr: HTMLAttributes<HTMLHRElement>\n br: HTMLAttributes<HTMLBRElement>\n wbr: HTMLAttributes<HTMLElement>\n\n // Inline text semantics\n a: AnchorHTMLAttributes<HTMLAnchorElement>\n abbr: HTMLAttributes<HTMLElement>\n b: HTMLAttributes<HTMLElement>\n bdi: HTMLAttributes<HTMLElement>\n bdo: HTMLAttributes<HTMLElement>\n cite: HTMLAttributes<HTMLElement>\n code: HTMLAttributes<HTMLElement>\n data: DataHTMLAttributes<HTMLDataElement>\n dfn: HTMLAttributes<HTMLElement>\n em: HTMLAttributes<HTMLElement>\n i: HTMLAttributes<HTMLElement>\n kbd: HTMLAttributes<HTMLElement>\n mark: HTMLAttributes<HTMLElement>\n q: QuoteHTMLAttributes<HTMLQuoteElement>\n rp: HTMLAttributes<HTMLElement>\n rt: HTMLAttributes<HTMLElement>\n ruby: HTMLAttributes<HTMLElement>\n s: HTMLAttributes<HTMLElement>\n samp: HTMLAttributes<HTMLElement>\n small: HTMLAttributes<HTMLElement>\n strong: HTMLAttributes<HTMLElement>\n sub: HTMLAttributes<HTMLElement>\n sup: HTMLAttributes<HTMLElement>\n time: TimeHTMLAttributes<HTMLTimeElement>\n u: HTMLAttributes<HTMLElement>\n var: HTMLAttributes<HTMLElement>\n\n // Lists\n ul: HTMLAttributes<HTMLUListElement>\n ol: OlHTMLAttributes<HTMLOListElement>\n li: LiHTMLAttributes<HTMLLIElement>\n dl: HTMLAttributes<HTMLDListElement>\n dt: HTMLAttributes<HTMLElement>\n dd: HTMLAttributes<HTMLElement>\n menu: HTMLAttributes<HTMLMenuElement>\n\n // Tables\n table: TableHTMLAttributes<HTMLTableElement>\n caption: HTMLAttributes<HTMLTableCaptionElement>\n colgroup: ColgroupHTMLAttributes<HTMLTableColElement>\n col: ColHTMLAttributes<HTMLTableColElement>\n thead: HTMLAttributes<HTMLTableSectionElement>\n tbody: HTMLAttributes<HTMLTableSectionElement>\n tfoot: HTMLAttributes<HTMLTableSectionElement>\n tr: HTMLAttributes<HTMLTableRowElement>\n th: ThHTMLAttributes<HTMLTableCellElement>\n td: TdHTMLAttributes<HTMLTableCellElement>\n\n // Forms\n form: FormHTMLAttributes<HTMLFormElement>\n fieldset: FieldsetHTMLAttributes<HTMLFieldSetElement>\n legend: HTMLAttributes<HTMLLegendElement>\n label: LabelHTMLAttributes<HTMLLabelElement>\n input: InputHTMLAttributes<HTMLInputElement>\n button: ButtonHTMLAttributes<HTMLButtonElement>\n select: SelectHTMLAttributes<HTMLSelectElement>\n datalist: HTMLAttributes<HTMLDataListElement>\n optgroup: OptgroupHTMLAttributes<HTMLOptGroupElement>\n option: OptionHTMLAttributes<HTMLOptionElement>\n textarea: TextareaHTMLAttributes<HTMLTextAreaElement>\n output: OutputHTMLAttributes<HTMLOutputElement>\n progress: ProgressHTMLAttributes<HTMLProgressElement>\n meter: MeterHTMLAttributes<HTMLMeterElement>\n\n // Interactive\n details: DetailsHTMLAttributes<HTMLDetailsElement>\n summary: HTMLAttributes<HTMLElement>\n dialog: DialogHTMLAttributes<HTMLDialogElement>\n\n // Media\n img: ImgHTMLAttributes<HTMLImageElement>\n picture: HTMLAttributes<HTMLPictureElement>\n source: SourceHTMLAttributes<HTMLSourceElement>\n audio: AudioVideoHTMLAttributes<HTMLAudioElement>\n video: AudioVideoHTMLAttributes<HTMLVideoElement>\n track: TrackHTMLAttributes<HTMLTrackElement>\n map: MapHTMLAttributes<HTMLMapElement>\n area: AreaHTMLAttributes<HTMLAreaElement>\n\n // Embedded content\n iframe: IframeHTMLAttributes<HTMLIFrameElement>\n embed: EmbedHTMLAttributes<HTMLEmbedElement>\n object: ObjectHTMLAttributes<HTMLObjectElement>\n param: ParamHTMLAttributes<HTMLParamElement>\n canvas: CanvasHTMLAttributes<HTMLCanvasElement>\n\n // SVG (basic support)\n svg: SVGAttributes<SVGSVGElement>\n path: SVGAttributes<SVGPathElement>\n circle: SVGAttributes<SVGCircleElement>\n rect: SVGAttributes<SVGRectElement>\n line: SVGAttributes<SVGLineElement>\n polyline: SVGAttributes<SVGPolylineElement>\n polygon: SVGAttributes<SVGPolygonElement>\n ellipse: SVGAttributes<SVGEllipseElement>\n g: SVGAttributes<SVGGElement>\n defs: SVGAttributes<SVGDefsElement>\n use: SVGAttributes<SVGUseElement>\n text: SVGAttributes<SVGTextElement>\n tspan: SVGAttributes<SVGTSpanElement>\n\n // Web components / other\n template: HTMLAttributes<HTMLTemplateElement>\n slot: SlotHTMLAttributes<HTMLSlotElement>\n portal: HTMLAttributes<HTMLElement>\n }\n\n export interface ElementChildrenAttribute {\n children: unknown\n }\n}\n\n// ============================================================================\n// Base HTML Attributes\n// ============================================================================\n\ninterface HTMLAttributes<T> {\n // Children\n children?: FictNode | FictNode[]\n\n // JSX special attributes\n key?: string | number\n\n // Core attributes\n id?: string\n class?: string\n style?: string | Record<string, string | number>\n title?: string\n lang?: string\n dir?: 'ltr' | 'rtl' | 'auto'\n hidden?: boolean | 'hidden' | 'until-found'\n tabIndex?: number\n draggable?: boolean | 'true' | 'false'\n contentEditable?: boolean | 'true' | 'false' | 'inherit'\n spellCheck?: boolean | 'true' | 'false'\n translate?: 'yes' | 'no'\n inert?: boolean\n popover?: 'auto' | 'manual'\n\n // Experimental / newer\n autofocus?: boolean\n slot?: string\n accessKey?: string\n\n // Event handlers\n onClick?: (e: MouseEvent) => void\n onDblClick?: (e: MouseEvent) => void\n onMouseDown?: (e: MouseEvent) => void\n onMouseUp?: (e: MouseEvent) => void\n onMouseMove?: (e: MouseEvent) => void\n onMouseEnter?: (e: MouseEvent) => void\n onMouseLeave?: (e: MouseEvent) => void\n onMouseOver?: (e: MouseEvent) => void\n onMouseOut?: (e: MouseEvent) => void\n onContextMenu?: (e: MouseEvent) => void\n onInput?: (e: InputEvent) => void\n onChange?: (e: Event) => void\n onSubmit?: (e: SubmitEvent) => void\n onReset?: (e: Event) => void\n onKeyDown?: (e: KeyboardEvent) => void\n onKeyUp?: (e: KeyboardEvent) => void\n onKeyPress?: (e: KeyboardEvent) => void\n onFocus?: (e: FocusEvent) => void\n onBlur?: (e: FocusEvent) => void\n onScroll?: (e: Event) => void\n onWheel?: (e: WheelEvent) => void\n onLoad?: (e: Event) => void\n onError?: (e: Event) => void\n\n // Drag events\n onDrag?: (e: DragEvent) => void\n onDragStart?: (e: DragEvent) => void\n onDragEnd?: (e: DragEvent) => void\n onDragEnter?: (e: DragEvent) => void\n onDragLeave?: (e: DragEvent) => void\n onDragOver?: (e: DragEvent) => void\n onDrop?: (e: DragEvent) => void\n\n // Touch events\n onTouchStart?: (e: TouchEvent) => void\n onTouchMove?: (e: TouchEvent) => void\n onTouchEnd?: (e: TouchEvent) => void\n onTouchCancel?: (e: TouchEvent) => void\n\n // Animation events\n onAnimationStart?: (e: AnimationEvent) => void\n onAnimationEnd?: (e: AnimationEvent) => void\n onAnimationIteration?: (e: AnimationEvent) => void\n onTransitionEnd?: (e: TransitionEvent) => void\n\n // Pointer events\n onPointerDown?: (e: PointerEvent) => void\n onPointerUp?: (e: PointerEvent) => void\n onPointerMove?: (e: PointerEvent) => void\n onPointerEnter?: (e: PointerEvent) => void\n onPointerLeave?: (e: PointerEvent) => void\n onPointerOver?: (e: PointerEvent) => void\n onPointerOut?: (e: PointerEvent) => void\n onPointerCancel?: (e: PointerEvent) => void\n\n // Ref\n ref?: ((el: T | null) => void) | { current: T | null }\n\n // ARIA attributes (common ones)\n role?: string\n 'aria-hidden'?: boolean | 'true' | 'false'\n 'aria-label'?: string\n 'aria-labelledby'?: string\n 'aria-describedby'?: string\n 'aria-live'?: 'off' | 'polite' | 'assertive'\n 'aria-atomic'?: boolean | 'true' | 'false'\n 'aria-busy'?: boolean | 'true' | 'false'\n 'aria-current'?: boolean | 'true' | 'false' | 'page' | 'step' | 'location' | 'date' | 'time'\n 'aria-disabled'?: boolean | 'true' | 'false'\n 'aria-expanded'?: boolean | 'true' | 'false'\n 'aria-haspopup'?: boolean | 'true' | 'false' | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog'\n 'aria-pressed'?: boolean | 'true' | 'false' | 'mixed'\n 'aria-selected'?: boolean | 'true' | 'false'\n 'aria-checked'?: boolean | 'true' | 'false' | 'mixed'\n 'aria-controls'?: string\n 'aria-owns'?: string\n 'aria-activedescendant'?: string\n 'aria-valuemin'?: number\n 'aria-valuemax'?: number\n 'aria-valuenow'?: number\n 'aria-valuetext'?: string\n 'aria-orientation'?: 'horizontal' | 'vertical'\n 'aria-readonly'?: boolean | 'true' | 'false'\n 'aria-required'?: boolean | 'true' | 'false'\n 'aria-invalid'?: boolean | 'true' | 'false' | 'grammar' | 'spelling'\n 'aria-errormessage'?: string\n 'aria-modal'?: boolean | 'true' | 'false'\n 'aria-placeholder'?: string\n 'aria-sort'?: 'none' | 'ascending' | 'descending' | 'other'\n 'aria-colcount'?: number\n 'aria-colindex'?: number\n 'aria-colspan'?: number\n 'aria-rowcount'?: number\n 'aria-rowindex'?: number\n 'aria-rowspan'?: number\n 'aria-setsize'?: number\n 'aria-posinset'?: number\n 'aria-level'?: number\n 'aria-multiselectable'?: boolean | 'true' | 'false'\n 'aria-autocomplete'?: 'none' | 'inline' | 'list' | 'both'\n 'aria-details'?: string\n 'aria-keyshortcuts'?: string\n 'aria-roledescription'?: string\n\n // Data attributes via index signature\n [key: `data-${string}`]: string | number | boolean | undefined\n}\n\n// ============================================================================\n// Specialized Attribute Interfaces\n// ============================================================================\n\ninterface AnchorHTMLAttributes<T> extends HTMLAttributes<T> {\n href?: string\n target?: '_self' | '_blank' | '_parent' | '_top' | string\n rel?: string\n download?: boolean | string\n hreflang?: string\n type?: string\n referrerPolicy?: ReferrerPolicy\n ping?: string\n}\n\ninterface ButtonHTMLAttributes<T> extends HTMLAttributes<T> {\n type?: 'button' | 'submit' | 'reset'\n disabled?: boolean\n name?: string\n value?: string\n form?: string\n formAction?: string\n formEncType?: string\n formMethod?: string\n formNoValidate?: boolean\n formTarget?: string\n popovertarget?: string\n popovertargetaction?: 'show' | 'hide' | 'toggle'\n}\n\ninterface InputHTMLAttributes<T> extends HTMLAttributes<T> {\n type?: string\n value?: string | number | readonly string[]\n defaultValue?: string | number | readonly string[]\n checked?: boolean\n defaultChecked?: boolean\n disabled?: boolean\n placeholder?: string\n name?: string\n form?: string\n required?: boolean\n readonly?: boolean\n multiple?: boolean\n min?: number | string\n max?: number | string\n minLength?: number\n maxLength?: number\n step?: number | string\n pattern?: string\n size?: number\n accept?: string\n capture?: boolean | 'user' | 'environment'\n list?: string\n autoComplete?: string\n autoCapitalize?: string\n inputMode?: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'\n enterKeyHint?: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'\n height?: number | string\n width?: number | string\n alt?: string\n src?: string\n formAction?: string\n formEncType?: string\n formMethod?: string\n formNoValidate?: boolean\n formTarget?: string\n}\n\ninterface FormHTMLAttributes<T> extends HTMLAttributes<T> {\n action?: string\n method?: 'get' | 'post' | 'dialog'\n encType?: string\n target?: string\n name?: string\n noValidate?: boolean\n autoComplete?: 'on' | 'off'\n acceptCharset?: string\n}\n\ninterface ImgHTMLAttributes<T> extends HTMLAttributes<T> {\n src?: string\n alt?: string\n width?: number | string\n height?: number | string\n srcSet?: string\n sizes?: string\n loading?: 'eager' | 'lazy'\n decoding?: 'async' | 'auto' | 'sync'\n crossOrigin?: 'anonymous' | 'use-credentials'\n referrerPolicy?: ReferrerPolicy\n useMap?: string\n isMap?: boolean\n fetchPriority?: 'auto' | 'high' | 'low'\n}\n\ninterface TextareaHTMLAttributes<T> extends HTMLAttributes<T> {\n value?: string | number\n defaultValue?: string\n disabled?: boolean\n placeholder?: string\n name?: string\n form?: string\n required?: boolean\n readonly?: boolean\n rows?: number\n cols?: number\n minLength?: number\n maxLength?: number\n wrap?: 'hard' | 'soft' | 'off'\n autoComplete?: string\n}\n\ninterface SelectHTMLAttributes<T> extends HTMLAttributes<T> {\n value?: string | number | readonly string[]\n defaultValue?: string | number | readonly string[]\n disabled?: boolean\n name?: string\n form?: string\n required?: boolean\n multiple?: boolean\n size?: number\n autoComplete?: string\n}\n\ninterface OptionHTMLAttributes<T> extends HTMLAttributes<T> {\n value?: string | number\n disabled?: boolean\n selected?: boolean\n label?: string\n}\n\ninterface OptgroupHTMLAttributes<T> extends HTMLAttributes<T> {\n disabled?: boolean\n label?: string\n}\n\ninterface LabelHTMLAttributes<T> extends HTMLAttributes<T> {\n for?: string\n htmlFor?: string\n form?: string\n}\n\ninterface FieldsetHTMLAttributes<T> extends HTMLAttributes<T> {\n disabled?: boolean\n name?: string\n form?: string\n}\n\ninterface OutputHTMLAttributes<T> extends HTMLAttributes<T> {\n for?: string\n htmlFor?: string\n form?: string\n name?: string\n}\n\ninterface ProgressHTMLAttributes<T> extends HTMLAttributes<T> {\n value?: number | string\n max?: number | string\n}\n\ninterface MeterHTMLAttributes<T> extends HTMLAttributes<T> {\n value?: number | string\n min?: number | string\n max?: number | string\n low?: number | string\n high?: number | string\n optimum?: number | string\n}\n\n// Table elements\ninterface TableHTMLAttributes<T> extends HTMLAttributes<T> {\n cellPadding?: number | string\n cellSpacing?: number | string\n border?: number | string\n}\n\ninterface ThHTMLAttributes<T> extends HTMLAttributes<T> {\n colSpan?: number\n rowSpan?: number\n scope?: 'row' | 'col' | 'rowgroup' | 'colgroup'\n abbr?: string\n headers?: string\n}\n\ninterface TdHTMLAttributes<T> extends HTMLAttributes<T> {\n colSpan?: number\n rowSpan?: number\n headers?: string\n}\n\ninterface ColHTMLAttributes<T> extends HTMLAttributes<T> {\n span?: number\n}\n\ninterface ColgroupHTMLAttributes<T> extends HTMLAttributes<T> {\n span?: number\n}\n\n// List elements\ninterface OlHTMLAttributes<T> extends HTMLAttributes<T> {\n start?: number\n reversed?: boolean\n type?: '1' | 'a' | 'A' | 'i' | 'I'\n}\n\ninterface LiHTMLAttributes<T> extends HTMLAttributes<T> {\n value?: number\n}\n\n// Media elements\ninterface AudioVideoHTMLAttributes<T> extends HTMLAttributes<T> {\n src?: string\n controls?: boolean\n autoPlay?: boolean\n loop?: boolean\n muted?: boolean\n preload?: 'none' | 'metadata' | 'auto'\n crossOrigin?: 'anonymous' | 'use-credentials'\n poster?: string // video only\n width?: number | string // video only\n height?: number | string // video only\n playsInline?: boolean\n disableRemotePlayback?: boolean\n onPlay?: (e: Event) => void\n onPause?: (e: Event) => void\n onEnded?: (e: Event) => void\n onTimeUpdate?: (e: Event) => void\n onVolumeChange?: (e: Event) => void\n onSeeking?: (e: Event) => void\n onSeeked?: (e: Event) => void\n onLoadedData?: (e: Event) => void\n onLoadedMetadata?: (e: Event) => void\n onCanPlay?: (e: Event) => void\n onCanPlayThrough?: (e: Event) => void\n onWaiting?: (e: Event) => void\n onPlaying?: (e: Event) => void\n onProgress?: (e: Event) => void\n onDurationChange?: (e: Event) => void\n onRateChange?: (e: Event) => void\n onStalled?: (e: Event) => void\n onSuspend?: (e: Event) => void\n onEmptied?: (e: Event) => void\n}\n\ninterface SourceHTMLAttributes<T> extends HTMLAttributes<T> {\n src?: string\n srcSet?: string\n sizes?: string\n type?: string\n media?: string\n width?: number | string\n height?: number | string\n}\n\ninterface TrackHTMLAttributes<T> extends HTMLAttributes<T> {\n src?: string\n srcLang?: string\n label?: string\n kind?: 'subtitles' | 'captions' | 'descriptions' | 'chapters' | 'metadata'\n default?: boolean\n}\n\n// Embedded content\ninterface IframeHTMLAttributes<T> extends HTMLAttributes<T> {\n src?: string\n srcDoc?: string\n name?: string\n width?: number | string\n height?: number | string\n allow?: string\n allowFullScreen?: boolean\n sandbox?: string\n loading?: 'eager' | 'lazy'\n referrerPolicy?: ReferrerPolicy\n}\n\ninterface EmbedHTMLAttributes<T> extends HTMLAttributes<T> {\n src?: string\n type?: string\n width?: number | string\n height?: number | string\n}\n\ninterface ObjectHTMLAttributes<T> extends HTMLAttributes<T> {\n data?: string\n type?: string\n name?: string\n width?: number | string\n height?: number | string\n form?: string\n useMap?: string\n}\n\ninterface ParamHTMLAttributes<T> extends HTMLAttributes<T> {\n name?: string\n value?: string\n}\n\ninterface CanvasHTMLAttributes<T> extends HTMLAttributes<T> {\n width?: number | string\n height?: number | string\n}\n\ninterface MapHTMLAttributes<T> extends HTMLAttributes<T> {\n name?: string\n}\n\ninterface AreaHTMLAttributes<T> extends HTMLAttributes<T> {\n alt?: string\n coords?: string\n href?: string\n hreflang?: string\n download?: boolean | string\n rel?: string\n shape?: 'rect' | 'circle' | 'poly' | 'default'\n target?: string\n referrerPolicy?: ReferrerPolicy\n ping?: string\n}\n\n// Interactive elements\ninterface DetailsHTMLAttributes<T> extends HTMLAttributes<T> {\n open?: boolean\n onToggle?: (e: Event) => void\n}\n\ninterface DialogHTMLAttributes<T> extends HTMLAttributes<T> {\n open?: boolean\n onClose?: (e: Event) => void\n onCancel?: (e: Event) => void\n}\n\n// Other elements\ninterface BlockquoteHTMLAttributes<T> extends HTMLAttributes<T> {\n cite?: string\n}\n\ninterface QuoteHTMLAttributes<T> extends HTMLAttributes<T> {\n cite?: string\n}\n\ninterface TimeHTMLAttributes<T> extends HTMLAttributes<T> {\n dateTime?: string\n}\n\ninterface DataHTMLAttributes<T> extends HTMLAttributes<T> {\n value?: string\n}\n\ninterface MetaHTMLAttributes<T> extends HTMLAttributes<T> {\n name?: string\n content?: string\n httpEquiv?: string\n charSet?: string\n property?: string\n}\n\ninterface LinkHTMLAttributes<T> extends HTMLAttributes<T> {\n href?: string\n rel?: string\n type?: string\n media?: string\n as?: string\n crossOrigin?: 'anonymous' | 'use-credentials'\n referrerPolicy?: ReferrerPolicy\n sizes?: string\n hreflang?: string\n integrity?: string\n fetchPriority?: 'auto' | 'high' | 'low'\n disabled?: boolean\n}\n\ninterface StyleHTMLAttributes<T> extends HTMLAttributes<T> {\n media?: string\n nonce?: string\n blocking?: string\n}\n\ninterface ScriptHTMLAttributes<T> extends HTMLAttributes<T> {\n src?: string\n type?: string\n async?: boolean\n defer?: boolean\n crossOrigin?: 'anonymous' | 'use-credentials'\n integrity?: string\n noModule?: boolean\n nonce?: string\n referrerPolicy?: ReferrerPolicy\n fetchPriority?: 'auto' | 'high' | 'low'\n blocking?: string\n}\n\ninterface SlotHTMLAttributes<T> extends HTMLAttributes<T> {\n name?: string\n onSlotchange?: (e: Event) => void\n}\n\n// SVG Attributes (basic support)\ninterface SVGAttributes<T> extends HTMLAttributes<T> {\n // Core SVG attributes\n viewBox?: string\n xmlns?: string\n xmlnsXlink?: string\n fill?: string\n stroke?: string\n strokeWidth?: string | number\n strokeLinecap?: 'butt' | 'round' | 'square'\n strokeLinejoin?: 'miter' | 'round' | 'bevel'\n strokeDasharray?: string\n strokeDashoffset?: string | number\n strokeOpacity?: string | number\n fillOpacity?: string | number\n opacity?: string | number\n transform?: string\n transformOrigin?: string\n clipPath?: string\n mask?: string\n filter?: string\n\n // Shape attributes\n d?: string\n cx?: string | number\n cy?: string | number\n r?: string | number\n rx?: string | number\n ry?: string | number\n x?: string | number\n y?: string | number\n x1?: string | number\n y1?: string | number\n x2?: string | number\n y2?: string | number\n width?: string | number\n height?: string | number\n points?: string\n pathLength?: string | number\n\n // Text attributes\n textAnchor?: 'start' | 'middle' | 'end'\n dominantBaseline?: string\n dx?: string | number\n dy?: string | number\n fontSize?: string | number\n fontFamily?: string\n fontWeight?: string | number\n\n // Use element\n href?: string\n xlinkHref?: string\n\n // Gradient/pattern\n gradientUnits?: 'userSpaceOnUse' | 'objectBoundingBox'\n gradientTransform?: string\n spreadMethod?: 'pad' | 'reflect' | 'repeat'\n offset?: string | number\n stopColor?: string\n stopOpacity?: string | number\n\n // Clip/mask\n clipPathUnits?: 'userSpaceOnUse' | 'objectBoundingBox'\n maskUnits?: 'userSpaceOnUse' | 'objectBoundingBox'\n maskContentUnits?: 'userSpaceOnUse' | 'objectBoundingBox'\n\n // Other\n preserveAspectRatio?: string\n markerStart?: string\n markerMid?: string\n markerEnd?: string\n vectorEffect?: string\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEO,IAAM,WAAW,OAAO,UAAU;AAElC,SAAS,IACd,MACA,OACA,KACU;AACV,SAAO,EAAE,MAAM,OAAO,IAAI;AAC5B;AAEO,IAAM,OAAO;AACb,IAAM,SAAS;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/jsx-dev-runtime.ts","../src/jsx.ts"],"sourcesContent":["export { jsx, jsxs, jsxDEV, Fragment } from './jsx'\nexport type { JSX } from './jsx'\n","import type { FictNode } from './types'\n\nexport const Fragment = Symbol('Fragment')\n\nexport function jsx(\n type: string | typeof Fragment | ((props: Record<string, unknown>) => FictNode),\n props: Record<string, unknown>,\n key?: string,\n): FictNode {\n return { type, props, key }\n}\n\nexport const jsxs = jsx\nexport const jsxDEV = jsx\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace JSX {\n export type Element = FictNode\n\n export interface IntrinsicElements {\n // Document structure\n html: HTMLAttributes<HTMLHtmlElement>\n head: HTMLAttributes<HTMLHeadElement>\n body: HTMLAttributes<HTMLBodyElement>\n title: HTMLAttributes<HTMLTitleElement>\n meta: MetaHTMLAttributes<HTMLMetaElement>\n link: LinkHTMLAttributes<HTMLLinkElement>\n style: StyleHTMLAttributes<HTMLStyleElement>\n script: ScriptHTMLAttributes<HTMLScriptElement>\n noscript: HTMLAttributes<HTMLElement>\n\n // Layout & Semantic\n div: HTMLAttributes<HTMLDivElement>\n span: HTMLAttributes<HTMLSpanElement>\n main: HTMLAttributes<HTMLElement>\n header: HTMLAttributes<HTMLElement>\n footer: HTMLAttributes<HTMLElement>\n section: HTMLAttributes<HTMLElement>\n article: HTMLAttributes<HTMLElement>\n aside: HTMLAttributes<HTMLElement>\n nav: HTMLAttributes<HTMLElement>\n address: HTMLAttributes<HTMLElement>\n\n // Headings\n h1: HTMLAttributes<HTMLHeadingElement>\n h2: HTMLAttributes<HTMLHeadingElement>\n h3: HTMLAttributes<HTMLHeadingElement>\n h4: HTMLAttributes<HTMLHeadingElement>\n h5: HTMLAttributes<HTMLHeadingElement>\n h6: HTMLAttributes<HTMLHeadingElement>\n hgroup: HTMLAttributes<HTMLElement>\n\n // Text content\n p: HTMLAttributes<HTMLParagraphElement>\n blockquote: BlockquoteHTMLAttributes<HTMLQuoteElement>\n pre: HTMLAttributes<HTMLPreElement>\n figure: HTMLAttributes<HTMLElement>\n figcaption: HTMLAttributes<HTMLElement>\n hr: HTMLAttributes<HTMLHRElement>\n br: HTMLAttributes<HTMLBRElement>\n wbr: HTMLAttributes<HTMLElement>\n\n // Inline text semantics\n a: AnchorHTMLAttributes<HTMLAnchorElement>\n abbr: HTMLAttributes<HTMLElement>\n b: HTMLAttributes<HTMLElement>\n bdi: HTMLAttributes<HTMLElement>\n bdo: HTMLAttributes<HTMLElement>\n cite: HTMLAttributes<HTMLElement>\n code: HTMLAttributes<HTMLElement>\n data: DataHTMLAttributes<HTMLDataElement>\n dfn: HTMLAttributes<HTMLElement>\n em: HTMLAttributes<HTMLElement>\n i: HTMLAttributes<HTMLElement>\n kbd: HTMLAttributes<HTMLElement>\n mark: HTMLAttributes<HTMLElement>\n q: QuoteHTMLAttributes<HTMLQuoteElement>\n rp: HTMLAttributes<HTMLElement>\n rt: HTMLAttributes<HTMLElement>\n ruby: HTMLAttributes<HTMLElement>\n s: HTMLAttributes<HTMLElement>\n samp: HTMLAttributes<HTMLElement>\n small: HTMLAttributes<HTMLElement>\n strong: HTMLAttributes<HTMLElement>\n sub: HTMLAttributes<HTMLElement>\n sup: HTMLAttributes<HTMLElement>\n time: TimeHTMLAttributes<HTMLTimeElement>\n u: HTMLAttributes<HTMLElement>\n var: HTMLAttributes<HTMLElement>\n\n // Lists\n ul: HTMLAttributes<HTMLUListElement>\n ol: OlHTMLAttributes<HTMLOListElement>\n li: LiHTMLAttributes<HTMLLIElement>\n dl: HTMLAttributes<HTMLDListElement>\n dt: HTMLAttributes<HTMLElement>\n dd: HTMLAttributes<HTMLElement>\n menu: HTMLAttributes<HTMLMenuElement>\n\n // Tables\n table: TableHTMLAttributes<HTMLTableElement>\n caption: HTMLAttributes<HTMLTableCaptionElement>\n colgroup: ColgroupHTMLAttributes<HTMLTableColElement>\n col: ColHTMLAttributes<HTMLTableColElement>\n thead: HTMLAttributes<HTMLTableSectionElement>\n tbody: HTMLAttributes<HTMLTableSectionElement>\n tfoot: HTMLAttributes<HTMLTableSectionElement>\n tr: HTMLAttributes<HTMLTableRowElement>\n th: ThHTMLAttributes<HTMLTableCellElement>\n td: TdHTMLAttributes<HTMLTableCellElement>\n\n // Forms\n form: FormHTMLAttributes<HTMLFormElement>\n fieldset: FieldsetHTMLAttributes<HTMLFieldSetElement>\n legend: HTMLAttributes<HTMLLegendElement>\n label: LabelHTMLAttributes<HTMLLabelElement>\n input: InputHTMLAttributes<HTMLInputElement>\n button: ButtonHTMLAttributes<HTMLButtonElement>\n select: SelectHTMLAttributes<HTMLSelectElement>\n datalist: HTMLAttributes<HTMLDataListElement>\n optgroup: OptgroupHTMLAttributes<HTMLOptGroupElement>\n option: OptionHTMLAttributes<HTMLOptionElement>\n textarea: TextareaHTMLAttributes<HTMLTextAreaElement>\n output: OutputHTMLAttributes<HTMLOutputElement>\n progress: ProgressHTMLAttributes<HTMLProgressElement>\n meter: MeterHTMLAttributes<HTMLMeterElement>\n\n // Interactive\n details: DetailsHTMLAttributes<HTMLDetailsElement>\n summary: HTMLAttributes<HTMLElement>\n dialog: DialogHTMLAttributes<HTMLDialogElement>\n\n // Media\n img: ImgHTMLAttributes<HTMLImageElement>\n picture: HTMLAttributes<HTMLPictureElement>\n source: SourceHTMLAttributes<HTMLSourceElement>\n audio: AudioVideoHTMLAttributes<HTMLAudioElement>\n video: AudioVideoHTMLAttributes<HTMLVideoElement>\n track: TrackHTMLAttributes<HTMLTrackElement>\n map: MapHTMLAttributes<HTMLMapElement>\n area: AreaHTMLAttributes<HTMLAreaElement>\n\n // Embedded content\n iframe: IframeHTMLAttributes<HTMLIFrameElement>\n embed: EmbedHTMLAttributes<HTMLEmbedElement>\n object: ObjectHTMLAttributes<HTMLObjectElement>\n param: ParamHTMLAttributes<HTMLParamElement>\n canvas: CanvasHTMLAttributes<HTMLCanvasElement>\n\n // SVG (basic support)\n svg: SVGAttributes<SVGSVGElement>\n path: SVGAttributes<SVGPathElement>\n circle: SVGAttributes<SVGCircleElement>\n rect: SVGAttributes<SVGRectElement>\n line: SVGAttributes<SVGLineElement>\n polyline: SVGAttributes<SVGPolylineElement>\n polygon: SVGAttributes<SVGPolygonElement>\n ellipse: SVGAttributes<SVGEllipseElement>\n g: SVGAttributes<SVGGElement>\n defs: SVGAttributes<SVGDefsElement>\n use: SVGAttributes<SVGUseElement>\n text: SVGAttributes<SVGTextElement>\n tspan: SVGAttributes<SVGTSpanElement>\n\n // Web components / other\n template: HTMLAttributes<HTMLTemplateElement>\n slot: SlotHTMLAttributes<HTMLSlotElement>\n portal: HTMLAttributes<HTMLElement>\n }\n\n export interface ElementChildrenAttribute {\n children: unknown\n }\n}\n\n// ============================================================================\n// Base HTML Attributes\n// ============================================================================\n\ninterface HTMLAttributes<T> {\n // Children\n children?: FictNode | FictNode[]\n\n // JSX special attributes\n key?: string | number\n\n // Core attributes\n id?: string\n class?: string\n style?: string | Record<string, string | number>\n title?: string\n lang?: string\n dir?: 'ltr' | 'rtl' | 'auto'\n hidden?: boolean | 'hidden' | 'until-found'\n tabIndex?: number\n draggable?: boolean | 'true' | 'false'\n contentEditable?: boolean | 'true' | 'false' | 'inherit'\n spellCheck?: boolean | 'true' | 'false'\n translate?: 'yes' | 'no'\n inert?: boolean\n popover?: 'auto' | 'manual'\n\n // Experimental / newer\n autofocus?: boolean\n slot?: string\n accessKey?: string\n\n // Event handlers\n onClick?: (e: MouseEvent) => void\n onClick$?: (e: MouseEvent) => void\n onDblClick?: (e: MouseEvent) => void\n onDblClick$?: (e: MouseEvent) => void\n onMouseDown?: (e: MouseEvent) => void\n onMouseDown$?: (e: MouseEvent) => void\n onMouseUp?: (e: MouseEvent) => void\n onMouseUp$?: (e: MouseEvent) => void\n onMouseMove?: (e: MouseEvent) => void\n onMouseMove$?: (e: MouseEvent) => void\n onMouseEnter?: (e: MouseEvent) => void\n onMouseEnter$?: (e: MouseEvent) => void\n onMouseLeave?: (e: MouseEvent) => void\n onMouseLeave$?: (e: MouseEvent) => void\n onMouseOver?: (e: MouseEvent) => void\n onMouseOver$?: (e: MouseEvent) => void\n onMouseOut?: (e: MouseEvent) => void\n onMouseOut$?: (e: MouseEvent) => void\n onContextMenu?: (e: MouseEvent) => void\n onContextMenu$?: (e: MouseEvent) => void\n onInput?: (e: InputEvent) => void\n onInput$?: (e: InputEvent) => void\n onChange?: (e: Event) => void\n onChange$?: (e: Event) => void\n onSubmit?: (e: SubmitEvent) => void\n onSubmit$?: (e: SubmitEvent) => void\n onReset?: (e: Event) => void\n onReset$?: (e: Event) => void\n onKeyDown?: (e: KeyboardEvent) => void\n onKeyDown$?: (e: KeyboardEvent) => void\n onKeyUp?: (e: KeyboardEvent) => void\n onKeyUp$?: (e: KeyboardEvent) => void\n onKeyPress?: (e: KeyboardEvent) => void\n onKeyPress$?: (e: KeyboardEvent) => void\n onFocus?: (e: FocusEvent) => void\n onFocus$?: (e: FocusEvent) => void\n onBlur?: (e: FocusEvent) => void\n onBlur$?: (e: FocusEvent) => void\n onScroll?: (e: Event) => void\n onScroll$?: (e: Event) => void\n onWheel?: (e: WheelEvent) => void\n onWheel$?: (e: WheelEvent) => void\n onLoad?: (e: Event) => void\n onLoad$?: (e: Event) => void\n onError?: (e: Event) => void\n onError$?: (e: Event) => void\n\n // Drag events\n onDrag?: (e: DragEvent) => void\n onDrag$?: (e: DragEvent) => void\n onDragStart?: (e: DragEvent) => void\n onDragStart$?: (e: DragEvent) => void\n onDragEnd?: (e: DragEvent) => void\n onDragEnd$?: (e: DragEvent) => void\n onDragEnter?: (e: DragEvent) => void\n onDragEnter$?: (e: DragEvent) => void\n onDragLeave?: (e: DragEvent) => void\n onDragLeave$?: (e: DragEvent) => void\n onDragOver?: (e: DragEvent) => void\n onDragOver$?: (e: DragEvent) => void\n onDrop?: (e: DragEvent) => void\n onDrop$?: (e: DragEvent) => void\n\n // Touch events\n onTouchStart?: (e: TouchEvent) => void\n onTouchStart$?: (e: TouchEvent) => void\n onTouchMove?: (e: TouchEvent) => void\n onTouchMove$?: (e: TouchEvent) => void\n onTouchEnd?: (e: TouchEvent) => void\n onTouchEnd$?: (e: TouchEvent) => void\n onTouchCancel?: (e: TouchEvent) => void\n onTouchCancel$?: (e: TouchEvent) => void\n\n // Animation events\n onAnimationStart?: (e: AnimationEvent) => void\n onAnimationStart$?: (e: AnimationEvent) => void\n onAnimationEnd?: (e: AnimationEvent) => void\n onAnimationEnd$?: (e: AnimationEvent) => void\n onAnimationIteration?: (e: AnimationEvent) => void\n onAnimationIteration$?: (e: AnimationEvent) => void\n onTransitionEnd?: (e: TransitionEvent) => void\n onTransitionEnd$?: (e: TransitionEvent) => void\n\n // Pointer events\n onPointerDown?: (e: PointerEvent) => void\n onPointerDown$?: (e: PointerEvent) => void\n onPointerUp?: (e: PointerEvent) => void\n onPointerUp$?: (e: PointerEvent) => void\n onPointerMove?: (e: PointerEvent) => void\n onPointerMove$?: (e: PointerEvent) => void\n onPointerEnter?: (e: PointerEvent) => void\n onPointerEnter$?: (e: PointerEvent) => void\n onPointerLeave?: (e: PointerEvent) => void\n onPointerLeave$?: (e: PointerEvent) => void\n onPointerOver?: (e: PointerEvent) => void\n onPointerOver$?: (e: PointerEvent) => void\n onPointerOut?: (e: PointerEvent) => void\n onPointerOut$?: (e: PointerEvent) => void\n onPointerCancel?: (e: PointerEvent) => void\n onPointerCancel$?: (e: PointerEvent) => void\n\n // Ref\n ref?: ((el: T | null) => void) | { current: T | null }\n\n // ARIA attributes (common ones)\n role?: string\n 'aria-hidden'?: boolean | 'true' | 'false'\n 'aria-label'?: string\n 'aria-labelledby'?: string\n 'aria-describedby'?: string\n 'aria-live'?: 'off' | 'polite' | 'assertive'\n 'aria-atomic'?: boolean | 'true' | 'false'\n 'aria-busy'?: boolean | 'true' | 'false'\n 'aria-current'?: boolean | 'true' | 'false' | 'page' | 'step' | 'location' | 'date' | 'time'\n 'aria-disabled'?: boolean | 'true' | 'false'\n 'aria-expanded'?: boolean | 'true' | 'false'\n 'aria-haspopup'?: boolean | 'true' | 'false' | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog'\n 'aria-pressed'?: boolean | 'true' | 'false' | 'mixed'\n 'aria-selected'?: boolean | 'true' | 'false'\n 'aria-checked'?: boolean | 'true' | 'false' | 'mixed'\n 'aria-controls'?: string\n 'aria-owns'?: string\n 'aria-activedescendant'?: string\n 'aria-valuemin'?: number\n 'aria-valuemax'?: number\n 'aria-valuenow'?: number\n 'aria-valuetext'?: string\n 'aria-orientation'?: 'horizontal' | 'vertical'\n 'aria-readonly'?: boolean | 'true' | 'false'\n 'aria-required'?: boolean | 'true' | 'false'\n 'aria-invalid'?: boolean | 'true' | 'false' | 'grammar' | 'spelling'\n 'aria-errormessage'?: string\n 'aria-modal'?: boolean | 'true' | 'false'\n 'aria-placeholder'?: string\n 'aria-sort'?: 'none' | 'ascending' | 'descending' | 'other'\n 'aria-colcount'?: number\n 'aria-colindex'?: number\n 'aria-colspan'?: number\n 'aria-rowcount'?: number\n 'aria-rowindex'?: number\n 'aria-rowspan'?: number\n 'aria-setsize'?: number\n 'aria-posinset'?: number\n 'aria-level'?: number\n 'aria-multiselectable'?: boolean | 'true' | 'false'\n 'aria-autocomplete'?: 'none' | 'inline' | 'list' | 'both'\n 'aria-details'?: string\n 'aria-keyshortcuts'?: string\n 'aria-roledescription'?: string\n\n // Data attributes via index signature\n [key: `data-${string}`]: string | number | boolean | undefined\n}\n\n// ============================================================================\n// Specialized Attribute Interfaces\n// ============================================================================\n\ninterface AnchorHTMLAttributes<T> extends HTMLAttributes<T> {\n href?: string\n target?: '_self' | '_blank' | '_parent' | '_top' | string\n rel?: string\n download?: boolean | string\n hreflang?: string\n type?: string\n referrerPolicy?: ReferrerPolicy\n ping?: string\n}\n\ninterface ButtonHTMLAttributes<T> extends HTMLAttributes<T> {\n type?: 'button' | 'submit' | 'reset'\n disabled?: boolean\n name?: string\n value?: string\n form?: string\n formAction?: string\n formEncType?: string\n formMethod?: string\n formNoValidate?: boolean\n formTarget?: string\n popovertarget?: string\n popovertargetaction?: 'show' | 'hide' | 'toggle'\n}\n\ninterface InputHTMLAttributes<T> extends HTMLAttributes<T> {\n type?: string\n value?: string | number | readonly string[]\n defaultValue?: string | number | readonly string[]\n checked?: boolean\n defaultChecked?: boolean\n disabled?: boolean\n placeholder?: string\n name?: string\n form?: string\n required?: boolean\n readonly?: boolean\n multiple?: boolean\n min?: number | string\n max?: number | string\n minLength?: number\n maxLength?: number\n step?: number | string\n pattern?: string\n size?: number\n accept?: string\n capture?: boolean | 'user' | 'environment'\n list?: string\n autoComplete?: string\n autoCapitalize?: string\n inputMode?: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'\n enterKeyHint?: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'\n height?: number | string\n width?: number | string\n alt?: string\n src?: string\n formAction?: string\n formEncType?: string\n formMethod?: string\n formNoValidate?: boolean\n formTarget?: string\n}\n\ninterface FormHTMLAttributes<T> extends HTMLAttributes<T> {\n action?: string\n method?: 'get' | 'post' | 'dialog'\n encType?: string\n target?: string\n name?: string\n noValidate?: boolean\n autoComplete?: 'on' | 'off'\n acceptCharset?: string\n}\n\ninterface ImgHTMLAttributes<T> extends HTMLAttributes<T> {\n src?: string\n alt?: string\n width?: number | string\n height?: number | string\n srcSet?: string\n sizes?: string\n loading?: 'eager' | 'lazy'\n decoding?: 'async' | 'auto' | 'sync'\n crossOrigin?: 'anonymous' | 'use-credentials'\n referrerPolicy?: ReferrerPolicy\n useMap?: string\n isMap?: boolean\n fetchPriority?: 'auto' | 'high' | 'low'\n}\n\ninterface TextareaHTMLAttributes<T> extends HTMLAttributes<T> {\n value?: string | number\n defaultValue?: string\n disabled?: boolean\n placeholder?: string\n name?: string\n form?: string\n required?: boolean\n readonly?: boolean\n rows?: number\n cols?: number\n minLength?: number\n maxLength?: number\n wrap?: 'hard' | 'soft' | 'off'\n autoComplete?: string\n}\n\ninterface SelectHTMLAttributes<T> extends HTMLAttributes<T> {\n value?: string | number | readonly string[]\n defaultValue?: string | number | readonly string[]\n disabled?: boolean\n name?: string\n form?: string\n required?: boolean\n multiple?: boolean\n size?: number\n autoComplete?: string\n}\n\ninterface OptionHTMLAttributes<T> extends HTMLAttributes<T> {\n value?: string | number\n disabled?: boolean\n selected?: boolean\n label?: string\n}\n\ninterface OptgroupHTMLAttributes<T> extends HTMLAttributes<T> {\n disabled?: boolean\n label?: string\n}\n\ninterface LabelHTMLAttributes<T> extends HTMLAttributes<T> {\n for?: string\n htmlFor?: string\n form?: string\n}\n\ninterface FieldsetHTMLAttributes<T> extends HTMLAttributes<T> {\n disabled?: boolean\n name?: string\n form?: string\n}\n\ninterface OutputHTMLAttributes<T> extends HTMLAttributes<T> {\n for?: string\n htmlFor?: string\n form?: string\n name?: string\n}\n\ninterface ProgressHTMLAttributes<T> extends HTMLAttributes<T> {\n value?: number | string\n max?: number | string\n}\n\ninterface MeterHTMLAttributes<T> extends HTMLAttributes<T> {\n value?: number | string\n min?: number | string\n max?: number | string\n low?: number | string\n high?: number | string\n optimum?: number | string\n}\n\n// Table elements\ninterface TableHTMLAttributes<T> extends HTMLAttributes<T> {\n cellPadding?: number | string\n cellSpacing?: number | string\n border?: number | string\n}\n\ninterface ThHTMLAttributes<T> extends HTMLAttributes<T> {\n colSpan?: number\n rowSpan?: number\n scope?: 'row' | 'col' | 'rowgroup' | 'colgroup'\n abbr?: string\n headers?: string\n}\n\ninterface TdHTMLAttributes<T> extends HTMLAttributes<T> {\n colSpan?: number\n rowSpan?: number\n headers?: string\n}\n\ninterface ColHTMLAttributes<T> extends HTMLAttributes<T> {\n span?: number\n}\n\ninterface ColgroupHTMLAttributes<T> extends HTMLAttributes<T> {\n span?: number\n}\n\n// List elements\ninterface OlHTMLAttributes<T> extends HTMLAttributes<T> {\n start?: number\n reversed?: boolean\n type?: '1' | 'a' | 'A' | 'i' | 'I'\n}\n\ninterface LiHTMLAttributes<T> extends HTMLAttributes<T> {\n value?: number\n}\n\n// Media elements\ninterface AudioVideoHTMLAttributes<T> extends HTMLAttributes<T> {\n src?: string\n controls?: boolean\n autoPlay?: boolean\n loop?: boolean\n muted?: boolean\n preload?: 'none' | 'metadata' | 'auto'\n crossOrigin?: 'anonymous' | 'use-credentials'\n poster?: string // video only\n width?: number | string // video only\n height?: number | string // video only\n playsInline?: boolean\n disableRemotePlayback?: boolean\n onPlay?: (e: Event) => void\n onPause?: (e: Event) => void\n onEnded?: (e: Event) => void\n onTimeUpdate?: (e: Event) => void\n onVolumeChange?: (e: Event) => void\n onSeeking?: (e: Event) => void\n onSeeked?: (e: Event) => void\n onLoadedData?: (e: Event) => void\n onLoadedMetadata?: (e: Event) => void\n onCanPlay?: (e: Event) => void\n onCanPlayThrough?: (e: Event) => void\n onWaiting?: (e: Event) => void\n onPlaying?: (e: Event) => void\n onProgress?: (e: Event) => void\n onDurationChange?: (e: Event) => void\n onRateChange?: (e: Event) => void\n onStalled?: (e: Event) => void\n onSuspend?: (e: Event) => void\n onEmptied?: (e: Event) => void\n}\n\ninterface SourceHTMLAttributes<T> extends HTMLAttributes<T> {\n src?: string\n srcSet?: string\n sizes?: string\n type?: string\n media?: string\n width?: number | string\n height?: number | string\n}\n\ninterface TrackHTMLAttributes<T> extends HTMLAttributes<T> {\n src?: string\n srcLang?: string\n label?: string\n kind?: 'subtitles' | 'captions' | 'descriptions' | 'chapters' | 'metadata'\n default?: boolean\n}\n\n// Embedded content\ninterface IframeHTMLAttributes<T> extends HTMLAttributes<T> {\n src?: string\n srcDoc?: string\n name?: string\n width?: number | string\n height?: number | string\n allow?: string\n allowFullScreen?: boolean\n sandbox?: string\n loading?: 'eager' | 'lazy'\n referrerPolicy?: ReferrerPolicy\n}\n\ninterface EmbedHTMLAttributes<T> extends HTMLAttributes<T> {\n src?: string\n type?: string\n width?: number | string\n height?: number | string\n}\n\ninterface ObjectHTMLAttributes<T> extends HTMLAttributes<T> {\n data?: string\n type?: string\n name?: string\n width?: number | string\n height?: number | string\n form?: string\n useMap?: string\n}\n\ninterface ParamHTMLAttributes<T> extends HTMLAttributes<T> {\n name?: string\n value?: string\n}\n\ninterface CanvasHTMLAttributes<T> extends HTMLAttributes<T> {\n width?: number | string\n height?: number | string\n}\n\ninterface MapHTMLAttributes<T> extends HTMLAttributes<T> {\n name?: string\n}\n\ninterface AreaHTMLAttributes<T> extends HTMLAttributes<T> {\n alt?: string\n coords?: string\n href?: string\n hreflang?: string\n download?: boolean | string\n rel?: string\n shape?: 'rect' | 'circle' | 'poly' | 'default'\n target?: string\n referrerPolicy?: ReferrerPolicy\n ping?: string\n}\n\n// Interactive elements\ninterface DetailsHTMLAttributes<T> extends HTMLAttributes<T> {\n open?: boolean\n onToggle?: (e: Event) => void\n}\n\ninterface DialogHTMLAttributes<T> extends HTMLAttributes<T> {\n open?: boolean\n onClose?: (e: Event) => void\n onCancel?: (e: Event) => void\n}\n\n// Other elements\ninterface BlockquoteHTMLAttributes<T> extends HTMLAttributes<T> {\n cite?: string\n}\n\ninterface QuoteHTMLAttributes<T> extends HTMLAttributes<T> {\n cite?: string\n}\n\ninterface TimeHTMLAttributes<T> extends HTMLAttributes<T> {\n dateTime?: string\n}\n\ninterface DataHTMLAttributes<T> extends HTMLAttributes<T> {\n value?: string\n}\n\ninterface MetaHTMLAttributes<T> extends HTMLAttributes<T> {\n name?: string\n content?: string\n httpEquiv?: string\n charSet?: string\n property?: string\n}\n\ninterface LinkHTMLAttributes<T> extends HTMLAttributes<T> {\n href?: string\n rel?: string\n type?: string\n media?: string\n as?: string\n crossOrigin?: 'anonymous' | 'use-credentials'\n referrerPolicy?: ReferrerPolicy\n sizes?: string\n hreflang?: string\n integrity?: string\n fetchPriority?: 'auto' | 'high' | 'low'\n disabled?: boolean\n}\n\ninterface StyleHTMLAttributes<T> extends HTMLAttributes<T> {\n media?: string\n nonce?: string\n blocking?: string\n}\n\ninterface ScriptHTMLAttributes<T> extends HTMLAttributes<T> {\n src?: string\n type?: string\n async?: boolean\n defer?: boolean\n crossOrigin?: 'anonymous' | 'use-credentials'\n integrity?: string\n noModule?: boolean\n nonce?: string\n referrerPolicy?: ReferrerPolicy\n fetchPriority?: 'auto' | 'high' | 'low'\n blocking?: string\n}\n\ninterface SlotHTMLAttributes<T> extends HTMLAttributes<T> {\n name?: string\n onSlotchange?: (e: Event) => void\n}\n\n// SVG Attributes (basic support)\ninterface SVGAttributes<T> extends HTMLAttributes<T> {\n // Core SVG attributes\n viewBox?: string\n xmlns?: string\n xmlnsXlink?: string\n fill?: string\n stroke?: string\n strokeWidth?: string | number\n strokeLinecap?: 'butt' | 'round' | 'square'\n strokeLinejoin?: 'miter' | 'round' | 'bevel'\n strokeDasharray?: string\n strokeDashoffset?: string | number\n strokeOpacity?: string | number\n fillOpacity?: string | number\n opacity?: string | number\n transform?: string\n transformOrigin?: string\n clipPath?: string\n mask?: string\n filter?: string\n\n // Shape attributes\n d?: string\n cx?: string | number\n cy?: string | number\n r?: string | number\n rx?: string | number\n ry?: string | number\n x?: string | number\n y?: string | number\n x1?: string | number\n y1?: string | number\n x2?: string | number\n y2?: string | number\n width?: string | number\n height?: string | number\n points?: string\n pathLength?: string | number\n\n // Text attributes\n textAnchor?: 'start' | 'middle' | 'end'\n dominantBaseline?: string\n dx?: string | number\n dy?: string | number\n fontSize?: string | number\n fontFamily?: string\n fontWeight?: string | number\n\n // Use element\n href?: string\n xlinkHref?: string\n\n // Gradient/pattern\n gradientUnits?: 'userSpaceOnUse' | 'objectBoundingBox'\n gradientTransform?: string\n spreadMethod?: 'pad' | 'reflect' | 'repeat'\n offset?: string | number\n stopColor?: string\n stopOpacity?: string | number\n\n // Clip/mask\n clipPathUnits?: 'userSpaceOnUse' | 'objectBoundingBox'\n maskUnits?: 'userSpaceOnUse' | 'objectBoundingBox'\n maskContentUnits?: 'userSpaceOnUse' | 'objectBoundingBox'\n\n // Other\n preserveAspectRatio?: string\n markerStart?: string\n markerMid?: string\n markerEnd?: string\n vectorEffect?: string\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEO,IAAM,WAAW,OAAO,UAAU;AAElC,SAAS,IACd,MACA,OACA,KACU;AACV,SAAO,EAAE,MAAM,OAAO,IAAI;AAC5B;AAEO,IAAM,OAAO;AACb,IAAM,SAAS;","names":[]}
|
|
@@ -169,51 +169,97 @@ interface HTMLAttributes<T> {
|
|
|
169
169
|
slot?: string;
|
|
170
170
|
accessKey?: string;
|
|
171
171
|
onClick?: (e: MouseEvent) => void;
|
|
172
|
+
onClick$?: (e: MouseEvent) => void;
|
|
172
173
|
onDblClick?: (e: MouseEvent) => void;
|
|
174
|
+
onDblClick$?: (e: MouseEvent) => void;
|
|
173
175
|
onMouseDown?: (e: MouseEvent) => void;
|
|
176
|
+
onMouseDown$?: (e: MouseEvent) => void;
|
|
174
177
|
onMouseUp?: (e: MouseEvent) => void;
|
|
178
|
+
onMouseUp$?: (e: MouseEvent) => void;
|
|
175
179
|
onMouseMove?: (e: MouseEvent) => void;
|
|
180
|
+
onMouseMove$?: (e: MouseEvent) => void;
|
|
176
181
|
onMouseEnter?: (e: MouseEvent) => void;
|
|
182
|
+
onMouseEnter$?: (e: MouseEvent) => void;
|
|
177
183
|
onMouseLeave?: (e: MouseEvent) => void;
|
|
184
|
+
onMouseLeave$?: (e: MouseEvent) => void;
|
|
178
185
|
onMouseOver?: (e: MouseEvent) => void;
|
|
186
|
+
onMouseOver$?: (e: MouseEvent) => void;
|
|
179
187
|
onMouseOut?: (e: MouseEvent) => void;
|
|
188
|
+
onMouseOut$?: (e: MouseEvent) => void;
|
|
180
189
|
onContextMenu?: (e: MouseEvent) => void;
|
|
190
|
+
onContextMenu$?: (e: MouseEvent) => void;
|
|
181
191
|
onInput?: (e: InputEvent) => void;
|
|
192
|
+
onInput$?: (e: InputEvent) => void;
|
|
182
193
|
onChange?: (e: Event) => void;
|
|
194
|
+
onChange$?: (e: Event) => void;
|
|
183
195
|
onSubmit?: (e: SubmitEvent) => void;
|
|
196
|
+
onSubmit$?: (e: SubmitEvent) => void;
|
|
184
197
|
onReset?: (e: Event) => void;
|
|
198
|
+
onReset$?: (e: Event) => void;
|
|
185
199
|
onKeyDown?: (e: KeyboardEvent) => void;
|
|
200
|
+
onKeyDown$?: (e: KeyboardEvent) => void;
|
|
186
201
|
onKeyUp?: (e: KeyboardEvent) => void;
|
|
202
|
+
onKeyUp$?: (e: KeyboardEvent) => void;
|
|
187
203
|
onKeyPress?: (e: KeyboardEvent) => void;
|
|
204
|
+
onKeyPress$?: (e: KeyboardEvent) => void;
|
|
188
205
|
onFocus?: (e: FocusEvent) => void;
|
|
206
|
+
onFocus$?: (e: FocusEvent) => void;
|
|
189
207
|
onBlur?: (e: FocusEvent) => void;
|
|
208
|
+
onBlur$?: (e: FocusEvent) => void;
|
|
190
209
|
onScroll?: (e: Event) => void;
|
|
210
|
+
onScroll$?: (e: Event) => void;
|
|
191
211
|
onWheel?: (e: WheelEvent) => void;
|
|
212
|
+
onWheel$?: (e: WheelEvent) => void;
|
|
192
213
|
onLoad?: (e: Event) => void;
|
|
214
|
+
onLoad$?: (e: Event) => void;
|
|
193
215
|
onError?: (e: Event) => void;
|
|
216
|
+
onError$?: (e: Event) => void;
|
|
194
217
|
onDrag?: (e: DragEvent) => void;
|
|
218
|
+
onDrag$?: (e: DragEvent) => void;
|
|
195
219
|
onDragStart?: (e: DragEvent) => void;
|
|
220
|
+
onDragStart$?: (e: DragEvent) => void;
|
|
196
221
|
onDragEnd?: (e: DragEvent) => void;
|
|
222
|
+
onDragEnd$?: (e: DragEvent) => void;
|
|
197
223
|
onDragEnter?: (e: DragEvent) => void;
|
|
224
|
+
onDragEnter$?: (e: DragEvent) => void;
|
|
198
225
|
onDragLeave?: (e: DragEvent) => void;
|
|
226
|
+
onDragLeave$?: (e: DragEvent) => void;
|
|
199
227
|
onDragOver?: (e: DragEvent) => void;
|
|
228
|
+
onDragOver$?: (e: DragEvent) => void;
|
|
200
229
|
onDrop?: (e: DragEvent) => void;
|
|
230
|
+
onDrop$?: (e: DragEvent) => void;
|
|
201
231
|
onTouchStart?: (e: TouchEvent) => void;
|
|
232
|
+
onTouchStart$?: (e: TouchEvent) => void;
|
|
202
233
|
onTouchMove?: (e: TouchEvent) => void;
|
|
234
|
+
onTouchMove$?: (e: TouchEvent) => void;
|
|
203
235
|
onTouchEnd?: (e: TouchEvent) => void;
|
|
236
|
+
onTouchEnd$?: (e: TouchEvent) => void;
|
|
204
237
|
onTouchCancel?: (e: TouchEvent) => void;
|
|
238
|
+
onTouchCancel$?: (e: TouchEvent) => void;
|
|
205
239
|
onAnimationStart?: (e: AnimationEvent) => void;
|
|
240
|
+
onAnimationStart$?: (e: AnimationEvent) => void;
|
|
206
241
|
onAnimationEnd?: (e: AnimationEvent) => void;
|
|
242
|
+
onAnimationEnd$?: (e: AnimationEvent) => void;
|
|
207
243
|
onAnimationIteration?: (e: AnimationEvent) => void;
|
|
244
|
+
onAnimationIteration$?: (e: AnimationEvent) => void;
|
|
208
245
|
onTransitionEnd?: (e: TransitionEvent) => void;
|
|
246
|
+
onTransitionEnd$?: (e: TransitionEvent) => void;
|
|
209
247
|
onPointerDown?: (e: PointerEvent) => void;
|
|
248
|
+
onPointerDown$?: (e: PointerEvent) => void;
|
|
210
249
|
onPointerUp?: (e: PointerEvent) => void;
|
|
250
|
+
onPointerUp$?: (e: PointerEvent) => void;
|
|
211
251
|
onPointerMove?: (e: PointerEvent) => void;
|
|
252
|
+
onPointerMove$?: (e: PointerEvent) => void;
|
|
212
253
|
onPointerEnter?: (e: PointerEvent) => void;
|
|
254
|
+
onPointerEnter$?: (e: PointerEvent) => void;
|
|
213
255
|
onPointerLeave?: (e: PointerEvent) => void;
|
|
256
|
+
onPointerLeave$?: (e: PointerEvent) => void;
|
|
214
257
|
onPointerOver?: (e: PointerEvent) => void;
|
|
258
|
+
onPointerOver$?: (e: PointerEvent) => void;
|
|
215
259
|
onPointerOut?: (e: PointerEvent) => void;
|
|
260
|
+
onPointerOut$?: (e: PointerEvent) => void;
|
|
216
261
|
onPointerCancel?: (e: PointerEvent) => void;
|
|
262
|
+
onPointerCancel$?: (e: PointerEvent) => void;
|
|
217
263
|
ref?: ((el: T | null) => void) | {
|
|
218
264
|
current: T | null;
|
|
219
265
|
};
|