@opentui/solid 0.5.17 → 0.6.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/README.md +7 -4
- package/index.bun.js +113 -130
- package/index.bun.js.map +8 -8
- package/index.js +122 -125
- package/index.js.map +8 -8
- package/package.json +2 -2
- package/src/elements/extras.d.ts +3 -0
- package/src/elements/slot.d.ts +7 -17
- package/src/reconciler.d.ts +9 -2
package/index.js.map
CHANGED
|
@@ -2,21 +2,21 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["index.ts", "src/elements/catalogue.ts", "src/elements/hooks.ts", "src/elements/extras.ts", "src/reconciler.ts", "src/renderer/universal.js", "src/renderer/index.ts", "src/utils/id-counter.ts", "src/utils/log.ts", "src/elements/slot.ts", "src/scrollback.ts", "src/time-to-first-draw.tsx", "src/plugins/slot.tsx"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import { CliRenderer, createCliRenderer, engine } from \"@opentui/core\";\nimport { createTestRenderer } from \"@opentui/core/testing\";\nimport { RendererContext } from \"./src/elements/index.js\";\nimport { _render as renderInternal, createComponent } from \"./src/reconciler.js\";\nconst mountSolidRoot = (renderer, node) => {\n let dispose;\n let disposeRequested = false;\n let disposed = false;\n let mounting = true;\n let destroyRequested = false;\n const originalDestroy = renderer.destroy.bind(renderer);\n const runDispose = () => {\n if (disposed) {\n return;\n }\n if (!dispose) {\n disposeRequested = true;\n return;\n }\n disposed = true;\n dispose();\n };\n renderer.once(\"destroy\", runDispose);\n renderer.destroy = () => {\n if (mounting) {\n destroyRequested = true;\n return;\n }\n originalDestroy();\n };\n try {\n dispose = renderInternal(() => createComponent(RendererContext.Provider, {\n get value() {\n return renderer;\n },\n get children() {\n return createComponent(node, {});\n }\n }), renderer.root);\n } finally {\n mounting = false;\n renderer.destroy = originalDestroy;\n }\n if (disposeRequested) {\n runDispose();\n }\n if (destroyRequested) {\n originalDestroy();\n }\n};\nexport const render = async (node, rendererOrConfig = {}) => {\n const renderer = rendererOrConfig instanceof CliRenderer ? rendererOrConfig : await createCliRenderer({\n ...rendererOrConfig,\n onDestroy: () => {\n rendererOrConfig.onDestroy?.();\n }\n });\n
|
|
5
|
+
"import { CliRenderer, createCliRenderer, engine } from \"@opentui/core\";\nimport { createTestRenderer } from \"@opentui/core/testing\";\nimport { RendererContext } from \"./src/elements/index.js\";\nimport { _render as renderInternal, createComponent } from \"./src/reconciler.js\";\nconst mountSolidRoot = (renderer, node) => {\n if (renderer.isDestroyed) return;\n engine.attach(renderer);\n let dispose;\n let disposeRequested = false;\n let disposed = false;\n let mounting = true;\n let destroyRequested = false;\n const originalDestroy = renderer.destroy.bind(renderer);\n const runDispose = () => {\n if (disposed) {\n return;\n }\n if (!dispose) {\n disposeRequested = true;\n return;\n }\n disposed = true;\n dispose();\n };\n renderer.once(\"destroy\", runDispose);\n renderer.destroy = () => {\n if (mounting) {\n destroyRequested = true;\n return;\n }\n originalDestroy();\n };\n try {\n dispose = renderInternal(() => createComponent(RendererContext.Provider, {\n get value() {\n return renderer;\n },\n get children() {\n return createComponent(node, {});\n }\n }), renderer.root);\n } finally {\n mounting = false;\n renderer.destroy = originalDestroy;\n }\n if (disposeRequested) {\n runDispose();\n }\n if (destroyRequested) {\n originalDestroy();\n }\n};\nexport const render = async (node, rendererOrConfig = {}) => {\n const renderer = rendererOrConfig instanceof CliRenderer ? rendererOrConfig : await createCliRenderer({\n ...rendererOrConfig,\n onDestroy: () => {\n rendererOrConfig.onDestroy?.();\n }\n });\n mountSolidRoot(renderer, node);\n};\nexport const testRender = async (node, renderConfig = {}) => {\n const testSetup = await createTestRenderer({\n ...renderConfig,\n onDestroy: () => {\n renderConfig.onDestroy?.();\n }\n });\n mountSolidRoot(testSetup.renderer, node);\n return testSetup;\n};\nexport * from \"./src/reconciler.js\";\nexport * from \"./src/elements/index.js\";\nexport * from \"./src/scrollback.js\";\nexport * from \"./src/time-to-first-draw.js\";\nexport * from \"./src/plugins/slot.js\";\nexport * from \"./src/types/elements.js\";",
|
|
6
6
|
"import { ASCIIFontRenderable, BoxRenderable, CodeRenderable, DiffRenderable, ImageRenderable, InputRenderable, LineNumberRenderable, MarkdownRenderable, ScrollBoxRenderable, SelectRenderable, TabSelectRenderable, TextareaRenderable, TextAttributes, TextNodeRenderable, TextRenderable } from \"@opentui/core\";\nclass SpanRenderable extends TextNodeRenderable {\n constructor(_ctx, options) {\n super(options);\n this._ctx = _ctx;\n }\n}\nexport const textNodeKeys = [\"span\", \"b\", \"strong\", \"i\", \"em\", \"u\", \"a\"];\nclass TextModifierRenderable extends SpanRenderable {\n constructor(options, modifier) {\n super(null, options);\n\n // Set appropriate attributes based on modifier type\n if (modifier === \"b\" || modifier === \"strong\") {\n this.attributes = (this.attributes || 0) | TextAttributes.BOLD;\n } else if (modifier === \"i\" || modifier === \"em\") {\n this.attributes = (this.attributes || 0) | TextAttributes.ITALIC;\n } else if (modifier === \"u\") {\n this.attributes = (this.attributes || 0) | TextAttributes.UNDERLINE;\n }\n }\n}\nexport class BoldSpanRenderable extends TextModifierRenderable {\n constructor(options) {\n super(options, \"b\");\n }\n}\nexport class ItalicSpanRenderable extends TextModifierRenderable {\n constructor(options) {\n super(options, \"i\");\n }\n}\nexport class UnderlineSpanRenderable extends TextModifierRenderable {\n constructor(options) {\n super(options, \"u\");\n }\n}\nexport class LineBreakRenderable extends SpanRenderable {\n constructor(_ctx, options) {\n super(null, options);\n this.add();\n }\n add() {\n return super.add(\"\\n\");\n }\n}\nexport class LinkRenderable extends SpanRenderable {\n constructor(_ctx, options) {\n const linkOptions = {\n ...options,\n link: {\n url: options.href\n }\n };\n super(null, linkOptions);\n }\n}\nexport const baseComponents = {\n box: BoxRenderable,\n text: TextRenderable,\n input: InputRenderable,\n select: SelectRenderable,\n textarea: TextareaRenderable,\n ascii_font: ASCIIFontRenderable,\n tab_select: TabSelectRenderable,\n scrollbox: ScrollBoxRenderable,\n code: CodeRenderable,\n diff: DiffRenderable,\n line_number: LineNumberRenderable,\n markdown: MarkdownRenderable,\n image: ImageRenderable,\n span: SpanRenderable,\n strong: BoldSpanRenderable,\n b: BoldSpanRenderable,\n em: ItalicSpanRenderable,\n i: ItalicSpanRenderable,\n u: UnderlineSpanRenderable,\n br: LineBreakRenderable,\n a: LinkRenderable\n};\nexport const componentCatalogue = {\n ...baseComponents\n};\n\n/**\n * Extend the component catalogue with new renderable components\n *\n * @example\n * ```tsx\n * // Extend with an object of components\n * extend({\n * consoleButton: ButtonRenderable,\n * customBox: CustomBoxRenderable\n * })\n * ```\n */\nexport function extend(objects) {\n Object.assign(componentCatalogue, objects);\n}\nexport function getComponentCatalogue() {\n return componentCatalogue;\n}",
|
|
7
|
-
"import {
|
|
8
|
-
"import { createEffect, createMemo, getOwner, onCleanup, runWithOwner, splitProps, untrack } from \"solid-js/dist/solid.js\";\nimport { createSlotNode, createElement, insert, spread } from \"../reconciler.js\";\nimport { useRenderer } from \"./hooks.js\";\n\n/**\n * Renders components somewhere else in the DOM\n *\n * Useful for inserting modals and tooltips outside of an cropping layout. If no mount point is given, the portal is inserted on the root renderable; it is wrapped in a `<box>`\n *\n * @description https://docs.solidjs.com/reference/components/portal\n */\nexport function Portal(props) {\n const renderer = useRenderer();\n const marker = createSlotNode(),\n mount = () => props.mount || renderer.root
|
|
9
|
-
"/* @refresh skip */\nimport { BaseRenderable, createTextAttributes, ImageRenderable, InputRenderable, InputRenderableEvents, isTextNodeRenderable, isEditBufferRenderable, parseColor, Renderable, RootTextNodeRenderable, ScrollBoxRenderable, SelectRenderable, SelectRenderableEvents, TabSelectRenderable, TabSelectRenderableEvents, TextNodeRenderable, TextRenderable } from \"@opentui/core\";\nimport { decodeHTMLStrict } from \"entities\";\nimport { onCleanup, useContext } from \"solid-js/dist/solid.js\";\nimport { createRenderer } from \"./renderer/index.js\";\nimport { getComponentCatalogue, RendererContext, SlotRenderable } from \"./elements/index.js\";\nimport { getNextId } from \"./utils/id-counter.js\";\nimport { log } from \"./utils/log.js\";\nclass TextNode extends TextNodeRenderable {\n static fromString(text, options = {}) {\n const node = new TextNode(options);\n node.add(text);\n return node;\n }\n}\n/**\n * Gets the id of a node, or content if it's a text chunk.\n * Intended for use in logging.\n * @param node The node to get the id of.\n * @returns Log-friendly id of the node.\n */\nconst logId = node => {\n if (!node) return undefined;\n return node.id;\n};\nconst getNodeChildren = node => {\n let children;\n if (node instanceof TextRenderable) {\n children = node.getTextChildren();\n } else {\n children = node.getChildren();\n }\n return children;\n};\nfunction _insertNode(parent, node, anchor) {\n log(\"Inserting node:\", logId(node), \"into parent:\", logId(parent), \"with anchor:\", logId(anchor), node instanceof TextNode);\n const slot = node instanceof SlotRenderable ? node : undefined;\n if (slot) {\n slot.parent = parent;\n node = slot.getSlotChild(parent);\n }\n if (anchor && anchor instanceof SlotRenderable) {\n anchor = anchor.getSlotChildForRemoval(parent);\n }\n if (isTextNodeRenderable(node)) {\n if (!(parent instanceof TextRenderable) && !isTextNodeRenderable(parent)) {\n throw new Error(`Orphan text error: \"${node.toChunks().map(c => c.text).join(\"\")}\" must have a <text> as a parent: ${parent.id} above ${node.id}`);\n }\n }\n\n // Renderable nodes\n if (!(parent instanceof BaseRenderable)) {\n console.error(\"[INSERT]\", \"Tried to mount a non base renderable\");\n // Can't be a noop, have to panic\n throw new Error(\"Tried to mount a non base renderable\");\n }\n let anchorIndex;\n if (anchor) {\n const children = getNodeChildren(parent);\n anchorIndex = children.indexOf(anchor);\n if (anchorIndex === -1) {\n log(\"[INSERT]\", \"Could not find anchor\", logId(parent), logId(anchor), \"[children]\", ...children.map(c => c.id));\n }\n }\n parent.add(node, anchorIndex);\n\n // Hosts such as LineNumberRenderable ignore children they do not render.\n if (slot && !node.parent) node.destroy();\n}\nfunction _removeNode(parent, node) {\n log(\"Removing node:\", logId(node), \"from parent:\", logId(parent));\n let slotParent;\n if (node instanceof SlotRenderable) {\n slotParent = node;\n const slotChild = slotParent.getSlotChildForRemoval(parent);\n if (!slotChild) {\n if (slotParent.parent === parent) {\n slotParent.parent = null;\n }\n return;\n }\n node = slotChild;\n }\n parent.remove(node);\n slotParent?.didRemoveSlotChild(parent, node);\n process.nextTick(() => {\n if (node instanceof BaseRenderable && !node.parent) {\n node.destroyRecursively();\n return;\n }\n });\n}\nfunction _createTextNode(value, decodeEntities) {\n log(\"Creating text node:\", value);\n const id = getNextId(\"text-node\");\n if (typeof value === \"number\") {\n value = value.toString();\n }\n return TextNode.fromString(decodeEntities ? decodeHTMLStrict(value) : value, {\n id\n });\n}\nexport function createSlotNode() {\n const id = getNextId(\"slot-node\");\n log(\"Creating slot node\", id);\n return new SlotRenderable(id);\n}\nfunction _getParentNode(childNode) {\n log(\"Getting parent of node:\", logId(childNode));\n let parent = childNode.parent ?? undefined;\n if (parent instanceof RootTextNodeRenderable) {\n parent = parent.textParent ?? undefined;\n }\n // ScrollBox delegates add/remove to its internal `content` wrapper\n // (scrollbox → wrapper → viewport → content), so children report\n // `content` as their parent. Return the ScrollBox so the identity\n // check in cleanChildren (getParentNode(el) === parent) succeeds.\n const scrollBoxCandidate = parent?.parent?.parent?.parent;\n if (scrollBoxCandidate instanceof ScrollBoxRenderable && scrollBoxCandidate.content === parent) {\n parent = scrollBoxCandidate;\n }\n return parent;\n}\nexport const {\n render: _render,\n effect,\n memo,\n createComponent,\n createElement,\n createTextNode,\n insertNode,\n insert,\n spread,\n setProp,\n mergeProps,\n use\n} = createRenderer({\n createElement(tagName) {\n log(\"Creating element:\", tagName);\n const id = getNextId(tagName);\n const solidRenderer = useContext(RendererContext);\n if (!solidRenderer) {\n throw new Error(\"No renderer found\");\n }\n const elements = getComponentCatalogue();\n if (!elements[tagName]) {\n throw new Error(`[Reconciler] Unknown component type: ${tagName}`);\n }\n const element = new elements[tagName](solidRenderer, {\n id\n });\n if (element instanceof ImageRenderable) {\n onCleanup(() => {\n element.source = undefined;\n });\n }\n log(\"Element created with id:\", id);\n return element;\n },\n // The compiler escapes static JSX before calling createTextNode directly.\n createTextNode: value => _createTextNode(value, true),\n createDynamicTextNode: value => _createTextNode(value, false),\n createSlotNode,\n replaceText(textNode, value) {\n log(\"Replacing text:\", value, \"in node:\", logId(textNode));\n if (!(textNode instanceof TextNode)) return;\n textNode.replace(value, 0);\n },\n setProperty(node, name, value, prev) {\n if (name.startsWith(\"on:\")) {\n const eventName = name.slice(3);\n if (value) {\n node.on(eventName, value);\n }\n if (prev) {\n node.off(eventName, prev);\n }\n return;\n }\n if (isTextNodeRenderable(node)) {\n if (name === \"href\") {\n node.link = {\n url: value\n };\n return;\n }\n if (name === \"style\") {\n node.attributes |= createTextAttributes(value);\n node.fg = value.fg ? parseColor(value.fg) : node.fg;\n node.bg = value.bg ? parseColor(value.bg) : node.bg;\n return;\n }\n return;\n }\n switch (name) {\n case \"id\":\n log(\"Id mapped\", node.id, \"=\", value);\n node[name] = value;\n break;\n case \"focused\":\n if (!(node instanceof Renderable)) return;\n if (value) {\n node.focus();\n } else {\n node.blur();\n }\n break;\n case \"onChange\":\n let event = undefined;\n if (node instanceof SelectRenderable) {\n event = SelectRenderableEvents.SELECTION_CHANGED;\n } else if (node instanceof TabSelectRenderable) {\n event = TabSelectRenderableEvents.SELECTION_CHANGED;\n } else if (node instanceof InputRenderable) {\n event = InputRenderableEvents.CHANGE;\n }\n if (!event) break;\n if (value) {\n node.on(event, value);\n }\n if (prev) {\n node.off(event, prev);\n }\n break;\n case \"onInput\":\n if (node instanceof InputRenderable) {\n if (value) {\n node.on(InputRenderableEvents.INPUT, value);\n }\n if (prev) {\n node.off(InputRenderableEvents.INPUT, prev);\n }\n }\n break;\n case \"onSubmit\":\n if (node instanceof InputRenderable) {\n if (value) {\n node.on(InputRenderableEvents.ENTER, value);\n }\n if (prev) {\n node.off(InputRenderableEvents.ENTER, prev);\n }\n } else {\n // @ts-expect-error todo validate if prop is actually settable\n node[name] = value;\n }\n break;\n case \"onSelect\":\n if (node instanceof SelectRenderable) {\n if (value) {\n node.on(SelectRenderableEvents.ITEM_SELECTED, value);\n }\n if (prev) {\n node.off(SelectRenderableEvents.ITEM_SELECTED, prev);\n }\n } else if (node instanceof TabSelectRenderable) {\n if (value) {\n node.on(TabSelectRenderableEvents.ITEM_SELECTED, value);\n }\n if (prev) {\n node.off(TabSelectRenderableEvents.ITEM_SELECTED, prev);\n }\n }\n break;\n case \"style\":\n const nextStyle = value ?? {};\n const previousStyle = prev ?? {};\n if (isEditBufferRenderable(node) && previousStyle.selectionOccupancy && !nextStyle.selectionOccupancy) {\n node.selectionOccupancy = undefined;\n }\n if (node instanceof ImageRenderable) {\n for (const prop in previousStyle) {\n if (Object.prototype.hasOwnProperty.call(nextStyle, prop)) continue;\n if (prop !== \"fit\" && prop !== \"protocol\") continue;\n node[prop] = undefined;\n }\n }\n for (const prop in nextStyle) {\n const propVal = nextStyle[prop];\n if (propVal === previousStyle[prop]) continue;\n // @ts-expect-error todo validate if prop is actually settable\n node[prop] = propVal;\n }\n break;\n case \"text\":\n case \"content\":\n {\n const textValue = typeof value === \"string\" ? value : Array.isArray(value) ? value.join(\"\") : `${value}`;\n // @ts-expect-error todo validate if prop is actually settable\n node[name] = textValue;\n break;\n }\n default:\n // @ts-expect-error todo validate if prop is actually settable\n node[name] = value;\n }\n },\n isTextNode(node) {\n return node instanceof TextNode;\n },\n insertNode: _insertNode,\n removeNode: _removeNode,\n getParentNode: _getParentNode,\n getFirstChild(node) {\n log(\"Getting first child of node:\", logId(node));\n const firstChild = getNodeChildren(node)[0];\n if (!firstChild) {\n log(\"No first child found for node:\", logId(node));\n return undefined;\n }\n log(\"First child found:\", logId(firstChild), \"for node:\", logId(node));\n return firstChild;\n },\n getNextSibling(node) {\n log(\"Getting next sibling of node:\", logId(node));\n const parent = _getParentNode(node);\n if (!parent) {\n log(\"No parent found for node:\", logId(node));\n return undefined;\n }\n if (node instanceof SlotRenderable) {\n const layoutSlotNode = node.getSlotChildForRemoval(parent);\n if (layoutSlotNode) {\n node = layoutSlotNode;\n }\n }\n const siblings = getNodeChildren(parent);\n const index = siblings.indexOf(node);\n if (index === -1 || index === siblings.length - 1) {\n log(\"No next sibling found for node:\", logId(node));\n return undefined;\n }\n const nextSibling = siblings[index + 1];\n if (!nextSibling) {\n log(\"Next sibling is null for node:\", logId(node));\n return undefined;\n }\n log(\"Next sibling found:\", logId(nextSibling), \"for node:\", logId(node));\n return nextSibling;\n }\n});",
|
|
7
|
+
"import { getTimelineEngine, Timeline } from \"@opentui/core\";\nimport { createContext, createSignal, onCleanup, onMount, useContext } from \"solid-js/dist/solid.js\";\nexport const RendererContext = createContext();\nexport const useRenderer = () => {\n const renderer = useContext(RendererContext);\n if (!renderer) {\n throw new Error(\"No renderer found\");\n }\n return renderer;\n};\nexport const onResize = callback => {\n const renderer = useRenderer();\n onMount(() => {\n renderer.on(\"resize\", callback);\n });\n onCleanup(() => {\n renderer.off(\"resize\", callback);\n });\n};\nexport const useTerminalDimensions = () => {\n const renderer = useRenderer();\n const [terminalDimensions, setTerminalDimensions] = createSignal({\n width: renderer.width,\n height: renderer.height\n });\n const callback = (width, height) => {\n setTerminalDimensions({\n width,\n height\n });\n };\n onResize(callback);\n return terminalDimensions;\n};\n/**\n * Subscribe to keyboard events.\n *\n * By default, only receives press events (including key repeats with `repeated: true`).\n * Use `options.release` to also receive release events.\n *\n * @example\n * // Basic press handling (includes repeats)\n * useKeyboard((e) => console.log(e.name, e.repeated ? \"(repeat)\" : \"\"))\n *\n * // With release events\n * useKeyboard((e) => {\n * if (e.eventType === \"release\") keys.delete(e.name)\n * else keys.add(e.name)\n * }, { release: true })\n */\nexport const useKeyboard = (callback, options) => {\n const renderer = useRenderer();\n const keyHandler = renderer.keyInput;\n onMount(() => {\n keyHandler.on(\"keypress\", callback);\n if (options?.release) {\n keyHandler.on(\"keyrelease\", callback);\n }\n });\n onCleanup(() => {\n keyHandler.off(\"keypress\", callback);\n if (options?.release) {\n keyHandler.off(\"keyrelease\", callback);\n }\n });\n};\nexport const usePaste = callback => {\n const renderer = useRenderer();\n const keyHandler = renderer.keyInput;\n onMount(() => {\n keyHandler.on(\"paste\", callback);\n });\n onCleanup(() => {\n keyHandler.off(\"paste\", callback);\n });\n};\n\n/**\n * @deprecated renamed to useKeyboard\n */\nexport const useKeyHandler = useKeyboard;\nexport const onFocus = callback => {\n const renderer = useRenderer();\n onMount(() => {\n renderer.on(\"focus\", callback);\n });\n onCleanup(() => {\n renderer.off(\"focus\", callback);\n });\n};\nexport const onBlur = callback => {\n const renderer = useRenderer();\n onMount(() => {\n renderer.on(\"blur\", callback);\n });\n onCleanup(() => {\n renderer.off(\"blur\", callback);\n });\n};\nexport const useSelectionHandler = callback => {\n const renderer = useRenderer();\n onMount(() => {\n renderer.on(\"selection\", callback);\n });\n onCleanup(() => {\n renderer.off(\"selection\", callback);\n });\n};\nexport const useTimeline = (options = {}) => {\n const engine = getTimelineEngine(useRenderer());\n const timeline = new Timeline(options);\n onMount(() => {\n if (options.autoplay !== false) {\n timeline.play();\n }\n engine.register(timeline);\n });\n onCleanup(() => {\n try {\n timeline.pause();\n } finally {\n engine.unregister(timeline);\n }\n });\n return timeline;\n};",
|
|
8
|
+
"import { Renderable } from \"@opentui/core\";\nimport { createEffect, createMemo, getOwner, onCleanup, runWithOwner, splitProps, untrack } from \"solid-js/dist/solid.js\";\nimport { createSlotNode, createElement, insert, removeNode, spread, RenderableContext } from \"../reconciler.js\";\nimport { useRenderer } from \"./hooks.js\";\n\n/**\n * Renders components somewhere else in the DOM\n *\n * Useful for inserting modals and tooltips outside of an cropping layout. If no mount point is given, the portal is inserted on the root renderable; it is wrapped in a `<box>`\n *\n * Native portals can switch scenes only while their container is empty. A rejected switch preserves\n * the mounted tree and its subscriptions; existing nodes are never remounted implicitly.\n *\n * @description https://docs.solidjs.com/reference/components/portal\n */\nexport function Portal(props) {\n const renderer = useRenderer();\n const marker = createSlotNode(),\n owner = getOwner();\n let content;\n let container;\n createEffect(() => {\n // Wait for refs, then validate the next mount before the insertion effect cleans up the current one.\n const mount = createMemo(() => {\n const el = props.mount || renderer.root;\n const scene = el instanceof Renderable ? el.ctx.nativeScene : renderer.nativeScene;\n const currentScene = container instanceof Renderable ? container.ctx.nativeScene : renderer.nativeScene;\n if (container && scene !== currentScene && container.getChildrenCount() !== 0) {\n throw new Error(\"Cannot retarget a Portal with existing nodes between native scenes\");\n }\n return el;\n });\n const context = () => {\n // Read pending mounts synchronously without subscribing JSX creation to future target changes.\n const el = untrack(mount);\n return el instanceof Renderable && el.ctx.nativeScene !== renderer.nativeScene ? el.ctx : renderer;\n };\n createEffect(() => {\n const el = mount();\n content ||= runWithOwner(owner, () => RenderableContext.Provider({\n value: context,\n get children() {\n return props.children;\n }\n }));\n let nextContainer;\n RenderableContext.Provider({\n value: context,\n get children() {\n nextContainer = createElement(\"box\");\n return undefined;\n }\n });\n Object.defineProperty(nextContainer, \"_$host\", {\n get() {\n return marker.parent;\n },\n configurable: true\n });\n insert(nextContainer, content);\n el.add(nextContainer);\n container = nextContainer;\n onCleanup(() => removeNode(el, nextContainer));\n props.ref && props.ref(nextContainer);\n }, undefined, {\n render: true\n });\n }, undefined, {\n render: true\n });\n // The reconciler consumes this marker as the runtime representation of the portal JSX node.\n return marker;\n}\n/**\n * Renders an arbitrary component or element with the given props\n *\n * This is a lower level version of the `Dynamic` component, useful for\n * performance optimizations in libraries. Do not use this unless you know\n * what you are doing.\n * ```typescript\n * const element = () => multiline() ? 'textarea' : 'input';\n * createDynamic(element, { value: value() });\n * ```\n * @description https://docs.solidjs.com/reference/components/dynamic\n */\nexport function createDynamic(component, props) {\n const cached = createMemo(component);\n return createMemo(() => {\n const component = cached();\n switch (typeof component) {\n case \"function\":\n // if (isDev) Object.assign(component, { [$DEVCOMP]: true })\n return untrack(() => component(props));\n case \"string\":\n const el = createElement(component);\n spread(el, props);\n return el;\n default:\n break;\n }\n });\n}\n\n/**\n * Renders an arbitrary custom or native component and passes the other props\n * ```typescript\n * <Dynamic component={multiline() ? 'textarea' : 'input'} value={value()} />\n * ```\n * @description https://docs.solidjs.com/reference/components/dynamic\n */\nexport function Dynamic(props) {\n const [, others] = splitProps(props, [\"component\"]);\n return createDynamic(() => props.component, others);\n}",
|
|
9
|
+
"/* @refresh skip */\nimport { BaseRenderable, createTextAttributes, ImageRenderable, InputRenderable, InputRenderableEvents, isTextNodeRenderable, isEditBufferRenderable, Renderable, RootTextNodeRenderable, ScrollBoxRenderable, SelectRenderable, SelectRenderableEvents, TabSelectRenderable, TabSelectRenderableEvents, TextNodeRenderable, TextRenderable, TextTableRenderable } from \"@opentui/core\";\nimport { decodeHTMLStrict } from \"entities\";\nimport { createContext, onCleanup, useContext } from \"solid-js/dist/solid.js\";\nimport { createRenderer } from \"./renderer/index.js\";\nimport { getComponentCatalogue, RendererContext, SlotRenderable } from \"./elements/index.js\";\nimport { getNextId } from \"./utils/id-counter.js\";\nimport { log } from \"./utils/log.js\";\nclass TextNode extends TextNodeRenderable {\n static fromString(text, options = {}) {\n const node = new TextNode(options);\n node.add(text);\n return node;\n }\n}\n/** @internal Portal allocation target, separate from the renderer exposed to application hooks. */\nexport const RenderableContext = createContext();\n\n/**\n * Gets the id of a node, or content if it's a text chunk.\n * Intended for use in logging.\n * @param node The node to get the id of.\n * @returns Log-friendly id of the node.\n */\nconst logId = node => {\n if (!node) return undefined;\n return node.id;\n};\nconst getNodeChildren = node => {\n let children;\n if (node instanceof TextRenderable) {\n children = node.getTextChildren();\n } else {\n children = node.getChildren();\n }\n return children;\n};\nfunction _insertNode(parent, node, anchor) {\n log(\"Inserting node:\", logId(node), \"into parent:\", logId(parent), \"with anchor:\", logId(anchor), node instanceof TextNode);\n const slot = node instanceof SlotRenderable ? node : undefined;\n if (slot) {\n slot.parent = parent;\n node = slot.getSlotChild(parent);\n }\n if (anchor && anchor instanceof SlotRenderable) {\n anchor = anchor.getSlotChildForRemoval(parent);\n }\n if (isTextNodeRenderable(node)) {\n if (!(parent instanceof TextRenderable) && !isTextNodeRenderable(parent)) {\n throw new Error(`Orphan text error: \"${node.toChunks().map(c => c.text).join(\"\")}\" must have a <text> as a parent: ${parent.id} above ${node.id}`);\n }\n }\n\n // Renderable nodes\n if (!(parent instanceof BaseRenderable)) {\n console.error(\"[INSERT]\", \"Tried to mount a non base renderable\");\n // Can't be a noop, have to panic\n throw new Error(\"Tried to mount a non base renderable\");\n }\n let anchorIndex;\n if (anchor) {\n const children = getNodeChildren(parent);\n anchorIndex = children.indexOf(anchor);\n if (anchorIndex === -1) {\n log(\"[INSERT]\", \"Could not find anchor\", logId(parent), logId(anchor), \"[children]\", ...children.map(c => c.id));\n }\n }\n parent.add(node, anchorIndex);\n\n // Hosts such as LineNumberRenderable ignore children they do not render.\n if (slot && !node.parent) node.destroy();\n}\nfunction _removeNode(parent, node) {\n log(\"Removing node:\", logId(node), \"from parent:\", logId(parent));\n let slotParent;\n if (node instanceof SlotRenderable) {\n slotParent = node;\n const slotChild = slotParent.getSlotChildForRemoval(parent);\n if (!slotChild) {\n if (slotParent.parent === parent) {\n slotParent.parent = null;\n }\n return;\n }\n node = slotChild;\n }\n parent.remove(node);\n slotParent?.didRemoveSlotChild(parent, node);\n process.nextTick(() => {\n if (node instanceof BaseRenderable && !node.parent) {\n node.destroyRecursively();\n return;\n }\n });\n}\nexport { _removeNode as removeNode };\nfunction _createTextNode(value, decodeEntities) {\n log(\"Creating text node:\", value);\n const id = getNextId(\"text-node\");\n if (typeof value === \"number\") {\n value = value.toString();\n }\n return TextNode.fromString(decodeEntities ? decodeHTMLStrict(value) : value, {\n id\n });\n}\nexport function createSlotNode() {\n const id = getNextId(\"slot-node\");\n log(\"Creating slot node\", id);\n return new SlotRenderable(id);\n}\nfunction _getParentNode(childNode) {\n log(\"Getting parent of node:\", logId(childNode));\n let parent = childNode.parent ?? undefined;\n if (parent instanceof RootTextNodeRenderable) {\n parent = parent.textParent ?? undefined;\n }\n // ScrollBox delegates add/remove to its internal `content` wrapper\n // (scrollbox → wrapper → viewport → content), so children report\n // `content` as their parent. Return the ScrollBox so the identity\n // check in cleanChildren (getParentNode(el) === parent) succeeds.\n const scrollBoxCandidate = parent?.parent?.parent?.parent;\n if (scrollBoxCandidate instanceof ScrollBoxRenderable && scrollBoxCandidate.content === parent) {\n parent = scrollBoxCandidate;\n }\n return parent;\n}\nconst {\n render: renderRoot,\n effect,\n memo,\n createComponent,\n createElement,\n createTextNode,\n insertNode,\n insert,\n spread,\n setProp,\n mergeProps,\n use\n} = createRenderer({\n createElement(tagName) {\n log(\"Creating element:\", tagName);\n const id = getNextId(tagName);\n const solidRenderer = useContext(RenderableContext)?.() ?? useContext(RendererContext);\n if (!solidRenderer) {\n throw new Error(\"No renderer found\");\n }\n const elements = getComponentCatalogue();\n if (!elements[tagName]) {\n throw new Error(`[Reconciler] Unknown component type: ${tagName}`);\n }\n const element = new elements[tagName](solidRenderer, {\n id\n });\n if (element instanceof ImageRenderable) {\n onCleanup(() => {\n element.source = undefined;\n });\n }\n log(\"Element created with id:\", id);\n return element;\n },\n // The compiler escapes static JSX before calling createTextNode directly.\n createTextNode: value => _createTextNode(value, true),\n createDynamicTextNode: value => _createTextNode(value, false),\n createSlotNode,\n replaceText(textNode, value) {\n log(\"Replacing text:\", value, \"in node:\", logId(textNode));\n if (!(textNode instanceof TextNode)) return;\n textNode.replace(value, 0);\n },\n setProperty(node, name, value, prev) {\n if (name.startsWith(\"on:\")) {\n const eventName = name.slice(3);\n if (value) {\n node.on(eventName, value);\n }\n if (prev) {\n node.off(eventName, prev);\n }\n return;\n }\n if (isTextNodeRenderable(node)) {\n if (name === \"href\") {\n node.link = {\n url: value\n };\n return;\n }\n if (name === \"style\") {\n node.attributes = node.attributes & ~createTextAttributes(prev) | createTextAttributes(value);\n node.fg = value?.fg;\n node.bg = value?.bg;\n return;\n }\n return;\n }\n switch (name) {\n case \"id\":\n log(\"Id mapped\", node.id, \"=\", value);\n node[name] = value;\n break;\n case \"focused\":\n if (!(node instanceof Renderable)) return;\n if (value) {\n node.focus();\n } else {\n node.blur();\n }\n break;\n case \"onChange\":\n let event = undefined;\n if (node instanceof SelectRenderable) {\n event = SelectRenderableEvents.SELECTION_CHANGED;\n } else if (node instanceof TabSelectRenderable) {\n event = TabSelectRenderableEvents.SELECTION_CHANGED;\n } else if (node instanceof InputRenderable) {\n event = InputRenderableEvents.CHANGE;\n }\n if (!event) break;\n if (value) {\n node.on(event, value);\n }\n if (prev) {\n node.off(event, prev);\n }\n break;\n case \"onInput\":\n if (node instanceof InputRenderable) {\n if (value) {\n node.on(InputRenderableEvents.INPUT, value);\n }\n if (prev) {\n node.off(InputRenderableEvents.INPUT, prev);\n }\n }\n break;\n case \"onSubmit\":\n if (node instanceof InputRenderable) {\n if (value) {\n node.on(InputRenderableEvents.ENTER, value);\n }\n if (prev) {\n node.off(InputRenderableEvents.ENTER, prev);\n }\n } else {\n // @ts-expect-error todo validate if prop is actually settable\n node[name] = value;\n }\n break;\n case \"onSelect\":\n if (node instanceof SelectRenderable) {\n if (value) {\n node.on(SelectRenderableEvents.ITEM_SELECTED, value);\n }\n if (prev) {\n node.off(SelectRenderableEvents.ITEM_SELECTED, prev);\n }\n } else if (node instanceof TabSelectRenderable) {\n if (value) {\n node.on(TabSelectRenderableEvents.ITEM_SELECTED, value);\n }\n if (prev) {\n node.off(TabSelectRenderableEvents.ITEM_SELECTED, prev);\n }\n }\n break;\n case \"style\":\n const nextStyle = value ?? {};\n const previousStyle = prev ?? {};\n if (isEditBufferRenderable(node) && previousStyle.selectionOccupancy && !nextStyle.selectionOccupancy) {\n node.selectionOccupancy = undefined;\n }\n if (node instanceof ImageRenderable) {\n for (const prop in previousStyle) {\n if (Object.prototype.hasOwnProperty.call(nextStyle, prop)) continue;\n if (prop !== \"fit\" && prop !== \"protocol\") continue;\n node[prop] = undefined;\n }\n }\n for (const prop in nextStyle) {\n const propVal = nextStyle[prop];\n if (propVal === previousStyle[prop]) continue;\n // @ts-expect-error todo validate if prop is actually settable\n node[prop] = propVal;\n }\n break;\n case \"text\":\n case \"content\":\n {\n if (name === \"content\" && node instanceof TextTableRenderable) {\n node.content = value;\n break;\n }\n const textValue = typeof value === \"string\" ? value : Array.isArray(value) ? value.join(\"\") : `${value ?? \"\"}`;\n // @ts-expect-error todo validate if prop is actually settable\n node[name] = textValue;\n break;\n }\n default:\n // @ts-expect-error todo validate if prop is actually settable\n node[name] = value;\n }\n },\n isTextNode(node) {\n return node instanceof TextNode;\n },\n insertNode: _insertNode,\n removeNode: _removeNode,\n getParentNode: _getParentNode,\n getFirstChild(node) {\n log(\"Getting first child of node:\", logId(node));\n const firstChild = getNodeChildren(node)[0];\n if (!firstChild) {\n log(\"No first child found for node:\", logId(node));\n return undefined;\n }\n log(\"First child found:\", logId(firstChild), \"for node:\", logId(node));\n return firstChild;\n },\n getNextSibling(node) {\n log(\"Getting next sibling of node:\", logId(node));\n const parent = _getParentNode(node);\n if (!parent) {\n log(\"No parent found for node:\", logId(node));\n return undefined;\n }\n if (node instanceof SlotRenderable) {\n const layoutSlotNode = node.getSlotChildForRemoval(parent);\n if (layoutSlotNode) {\n node = layoutSlotNode;\n }\n }\n const siblings = getNodeChildren(parent);\n const index = siblings.indexOf(node);\n if (index === -1 || index === siblings.length - 1) {\n log(\"No next sibling found for node:\", logId(node));\n return undefined;\n }\n const nextSibling = siblings[index + 1];\n if (!nextSibling) {\n log(\"Next sibling is null for node:\", logId(node));\n return undefined;\n }\n log(\"Next sibling found:\", logId(nextSibling), \"for node:\", logId(node));\n return nextSibling;\n }\n});\nexport { effect, memo, createComponent, createElement, createTextNode, insertNode, insert, spread, setProp, mergeProps, use };\n\n/** @internal Start an independent root without inheriting a Portal allocation target. */\nexport function _render(code, root) {\n return renderRoot(() => RenderableContext.Provider({\n value: root instanceof Renderable ? () => root.ctx : undefined,\n get children() {\n return code();\n }\n }), root);\n}",
|
|
10
10
|
"import { createRoot, createRenderEffect, createMemo, createComponent, untrack, mergeProps } from \"solid-js/dist/solid.js\";\nconst memo = fn => createMemo(() => fn());\nexport function createRenderer({\n createElement,\n createTextNode,\n createDynamicTextNode,\n createSlotNode,\n isTextNode,\n replaceText,\n insertNode,\n removeNode,\n setProperty,\n getParentNode,\n getFirstChild,\n getNextSibling\n}) {\n function insert(parent, accessor, marker, initial) {\n if (marker !== undefined && !initial) initial = [];\n if (typeof accessor !== \"function\") return insertExpression(parent, accessor, initial, marker);\n createRenderEffect(current => insertExpression(parent, accessor(), current, marker), initial);\n }\n function insertExpression(parent, value, current, marker, unwrapArray) {\n while (typeof current === \"function\") current = current();\n if (value === current) return current;\n const t = typeof value,\n multi = marker !== undefined;\n if (t === \"string\" || t === \"number\") {\n if (t === \"number\") value = value.toString();\n if (multi) {\n let node = current[0];\n if (node && isTextNode(node)) {\n replaceText(node, value);\n } else node = createDynamicTextNode(value);\n current = cleanChildren(parent, current, marker, node);\n } else {\n if (current !== \"\" && typeof current === \"string\") {\n replaceText(getFirstChild(parent), current = value);\n } else {\n cleanChildren(parent, current, marker, createDynamicTextNode(value));\n current = value;\n }\n }\n } else if (value == null || t === \"boolean\") {\n current = cleanChildren(parent, current, marker);\n } else if (t === \"function\") {\n createRenderEffect(() => {\n let v = value();\n while (typeof v === \"function\") v = v();\n current = insertExpression(parent, v, current, marker);\n });\n return () => current;\n } else if (Array.isArray(value)) {\n const array = [];\n if (normalizeIncomingArray(array, value, unwrapArray)) {\n createRenderEffect(() => current = insertExpression(parent, array, current, marker, true));\n return () => current;\n }\n if (array.length === 0) {\n const replacement = cleanChildren(parent, current, marker);\n if (multi) return current = replacement;\n } else {\n if (Array.isArray(current)) {\n if (current.length === 0) {\n appendNodes(parent, array, marker);\n } else reconcileArrays(parent, current, array);\n } else if (current == null || current === \"\") {\n appendNodes(parent, array);\n } else {\n reconcileArrays(parent, multi && current || [getFirstChild(parent)], array);\n }\n }\n current = array;\n } else {\n if (Array.isArray(current)) {\n if (multi) return current = cleanChildren(parent, current, marker, value);\n cleanChildren(parent, current, null, value);\n } else if (current == null || current === \"\" || !getFirstChild(parent)) {\n insertNode(parent, value);\n } else replaceNode(parent, value, getFirstChild(parent));\n current = value;\n }\n return current;\n }\n function normalizeIncomingArray(normalized, array, unwrap) {\n let dynamic = false;\n for (let i = 0, len = array.length; i < len; i++) {\n let item = array[i],\n t;\n if (item == null || item === true || item === false) ;else if (Array.isArray(item)) {\n dynamic = normalizeIncomingArray(normalized, item) || dynamic;\n } else if ((t = typeof item) === \"string\" || t === \"number\") {\n normalized.push(createDynamicTextNode(item));\n } else if (t === \"function\") {\n if (unwrap) {\n while (typeof item === \"function\") item = item();\n dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item]) || dynamic;\n } else {\n normalized.push(item);\n dynamic = true;\n }\n } else normalized.push(item);\n }\n return dynamic;\n }\n function reconcileArrays(parentNode, a, b) {\n let bLength = b.length,\n aEnd = a.length,\n bEnd = bLength,\n aStart = 0,\n bStart = 0,\n after = getNextSibling(a[aEnd - 1]),\n map = null;\n while (aStart < aEnd || bStart < bEnd) {\n if (a[aStart] === b[bStart]) {\n aStart++;\n bStart++;\n continue;\n }\n while (a[aEnd - 1] === b[bEnd - 1]) {\n aEnd--;\n bEnd--;\n }\n if (aEnd === aStart) {\n const node = bEnd < bLength ? bStart ? getNextSibling(b[bStart - 1]) : b[bEnd - bStart] : after;\n while (bStart < bEnd) insertNode(parentNode, b[bStart++], node);\n } else if (bEnd === bStart) {\n while (aStart < aEnd) {\n if (!map || !map.has(a[aStart])) removeNode(parentNode, a[aStart]);\n aStart++;\n }\n } else if (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]) {\n const node = getNextSibling(a[--aEnd]);\n insertNode(parentNode, b[bStart++], getNextSibling(a[aStart++]));\n insertNode(parentNode, b[--bEnd], node);\n a[aEnd] = b[bEnd];\n } else {\n if (!map) {\n map = new Map();\n let i = bStart;\n while (i < bEnd) map.set(b[i], i++);\n }\n const index = map.get(a[aStart]);\n if (index != null) {\n if (bStart < index && index < bEnd) {\n let i = aStart,\n sequence = 1,\n t;\n while (++i < aEnd && i < bEnd) {\n if ((t = map.get(a[i])) == null || t !== index + sequence) break;\n sequence++;\n }\n if (sequence > index - bStart) {\n const node = a[aStart];\n while (bStart < index) insertNode(parentNode, b[bStart++], node);\n } else replaceNode(parentNode, b[bStart++], a[aStart++]);\n } else aStart++;\n } else removeNode(parentNode, a[aStart++]);\n }\n }\n }\n function cleanChildren(parent, current, marker, replacement) {\n if (marker === undefined) {\n let removed;\n while (removed = getFirstChild(parent)) removeNode(parent, removed);\n replacement && insertNode(parent, replacement);\n return replacement ?? \"\";\n }\n const node = replacement || createSlotNode();\n if (current.length) {\n let inserted = false;\n for (let i = current.length - 1; i >= 0; i--) {\n const el = current[i];\n if (node !== el) {\n const isParent = getParentNode(el) === parent;\n if (!inserted && !i) isParent ? replaceNode(parent, node, el) : insertNode(parent, node, marker);else isParent && removeNode(parent, el);\n } else inserted = true;\n }\n } else insertNode(parent, node, marker);\n return [node];\n }\n function appendNodes(parent, array, marker) {\n for (let i = 0, len = array.length; i < len; i++) insertNode(parent, array[i], marker);\n }\n function replaceNode(parent, newNode, oldNode) {\n insertNode(parent, newNode, oldNode);\n removeNode(parent, oldNode);\n }\n function spreadExpression(node, props, prevProps = {}, skipChildren) {\n props || (props = {});\n if (!skipChildren) {\n createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children));\n }\n createRenderEffect(() => props.ref && props.ref(node));\n createRenderEffect(() => {\n for (const prop in props) {\n if (prop === \"children\" || prop === \"ref\") continue;\n const value = props[prop];\n if (value === prevProps[prop]) continue;\n setProperty(node, prop, value, prevProps[prop]);\n prevProps[prop] = value;\n }\n });\n return prevProps;\n }\n return {\n render(code, element) {\n let disposer;\n createRoot(dispose => {\n disposer = dispose;\n insert(element, code());\n });\n return disposer;\n },\n insert,\n spread(node, accessor, skipChildren) {\n if (typeof accessor === \"function\") {\n createRenderEffect(current => spreadExpression(node, accessor(), current, skipChildren));\n } else spreadExpression(node, accessor, undefined, skipChildren);\n },\n createElement,\n createTextNode,\n insertNode,\n setProp(node, name, value, prev) {\n setProperty(node, name, value, prev);\n return value;\n },\n mergeProps,\n effect: createRenderEffect,\n memo,\n createComponent,\n use(fn, element, arg) {\n return untrack(() => fn(element, arg));\n }\n };\n}",
|
|
11
11
|
"import { createRenderer as createRendererDX } from \"./universal.js\";\nimport { mergeProps } from \"solid-js/dist/solid.js\";\nexport function createRenderer(options) {\n const renderer = createRendererDX(options);\n renderer.mergeProps = mergeProps;\n return renderer;\n}",
|
|
12
12
|
"const idCounter = new Map();\nexport function getNextId(elementType) {\n if (!idCounter.has(elementType)) {\n idCounter.set(elementType, 0);\n }\n const value = idCounter.get(elementType) + 1;\n idCounter.set(elementType, value);\n return `${elementType}-${value}`;\n}",
|
|
13
13
|
"export const log = (...args) => {\n if (process.env.DEBUG) {\n console.log(\"[Reconciler]\", ...args);\n }\n};",
|
|
14
|
-
"import { BaseRenderable, isTextNodeRenderable, TextNodeRenderable, TextRenderable
|
|
15
|
-
"import { BoxRenderable
|
|
14
|
+
"import { BaseRenderable, isTextNodeRenderable, Renderable, TextNodeRenderable, TextRenderable } from \"@opentui/core\";\nclass SlotBaseRenderable extends BaseRenderable {\n constructor(id) {\n super({\n id\n });\n }\n add(obj, index) {\n throw new Error(\"Can't add children on an Slot renderable\");\n }\n getChildren() {\n return [];\n }\n remove(child) {}\n insertBefore(obj, anchor) {\n throw new Error(\"Can't add children on an Slot renderable\");\n }\n getRenderable(id) {\n return undefined;\n }\n getChildrenCount() {\n return 0;\n }\n requestRender() {}\n findDescendantById(id) {\n return undefined;\n }\n}\nexport class TextSlotRenderable extends TextNodeRenderable {\n destroyed = false;\n constructor(id, parent) {\n super({\n id: id\n });\n this._visible = false;\n this.slotParent = parent;\n }\n detachFromSlot() {\n this.slotParent = undefined;\n }\n disposeWithoutSlotCascade() {\n if (this.destroyed) {\n return;\n }\n this.destroyed = true;\n this.detachFromSlot();\n }\n destroy() {\n if (this.destroyed) {\n return;\n }\n this.destroyed = true;\n const slotParent = this.slotParent;\n this.slotParent = undefined;\n this.parent?.remove(this);\n slotParent?.didDestroySlotChild(this);\n super.destroy();\n }\n destroyRecursively() {\n this.destroy();\n }\n}\nexport class LayoutSlotRenderable extends Renderable {\n constructor(id, parent, layoutParent) {\n super(layoutParent.ctx, {\n id,\n visible: false\n });\n this.slotParent = parent;\n }\n isCompatibleWith(layoutParent) {\n return layoutParent instanceof Renderable && layoutParent.ctx.nativeScene === this.ctx.nativeScene;\n }\n disposeWithoutSlotCascade() {\n this.slotParent = undefined;\n this.destroy();\n }\n destroySelf() {\n const slotParent = this.slotParent;\n this.slotParent = undefined;\n slotParent?.didDestroySlotChild(this);\n }\n}\nexport class SlotRenderable extends SlotBaseRenderable {\n destroyed = false;\n layoutNodesByParent = new Map();\n textNodesByParent = new Map();\n layoutNodeCount = 0;\n textNodeCount = 0;\n constructor(id) {\n super(id);\n this._visible = false;\n }\n get layoutNode() {\n return this.getCurrentSlotChild(this.layoutNodesByParent);\n }\n get textNode() {\n return this.getCurrentSlotChild(this.textNodesByParent);\n }\n isTextSlotParent(parent) {\n return isTextNodeRenderable(parent) || parent instanceof TextRenderable;\n }\n getCurrentSlotChild(nodesByParent) {\n for (const node of nodesByParent.values()) {\n if (node.parent) {\n return node;\n }\n }\n return nodesByParent.values().next().value;\n }\n getTextNodeForParent(parent) {\n const mappedNode = this.textNodesByParent.get(parent);\n if (mappedNode) {\n return mappedNode;\n }\n for (const [mappedParent, textNode] of this.textNodesByParent) {\n if (textNode.parent !== parent) {\n continue;\n }\n this.textNodesByParent.delete(mappedParent);\n this.textNodesByParent.set(parent, textNode);\n return textNode;\n }\n }\n getLayoutNodeForParent(parent) {\n const mappedNode = this.layoutNodesByParent.get(parent);\n if (mappedNode) {\n return mappedNode;\n }\n for (const [mappedParent, layoutNode] of this.layoutNodesByParent) {\n if (layoutNode.parent !== parent) {\n continue;\n }\n this.layoutNodesByParent.delete(mappedParent);\n this.layoutNodesByParent.set(parent, layoutNode);\n return layoutNode;\n }\n }\n takeReusableTextNode(parent) {\n for (const [mappedParent, textNode] of this.textNodesByParent) {\n if (textNode.parent) {\n continue;\n }\n this.textNodesByParent.delete(mappedParent);\n this.textNodesByParent.set(parent, textNode);\n return textNode;\n }\n }\n takeReusableLayoutNode(parent) {\n for (const [mappedParent, layoutNode] of this.layoutNodesByParent) {\n if (layoutNode.parent) {\n continue;\n }\n if (!layoutNode.isCompatibleWith(parent)) {\n continue;\n }\n this.layoutNodesByParent.delete(mappedParent);\n this.layoutNodesByParent.set(parent, layoutNode);\n return layoutNode;\n }\n }\n disposeDetachedTextNodes() {\n for (const [parent, textNode] of this.textNodesByParent) {\n if (textNode.parent) {\n continue;\n }\n this.textNodesByParent.delete(parent);\n textNode.disposeWithoutSlotCascade();\n }\n }\n disposeDetachedIncompatibleLayoutNodes(parent) {\n for (const [mappedParent, layoutNode] of this.layoutNodesByParent) {\n if (layoutNode.parent || !this.isTextSlotParent(parent) && layoutNode.isCompatibleWith(parent)) {\n continue;\n }\n this.layoutNodesByParent.delete(mappedParent);\n layoutNode.disposeWithoutSlotCascade();\n }\n }\n\n // A slot can have multiple placeholder children attached transiently while a\n // move is in flight. Portal host tracking relies on `slot.parent` pointing at\n // one of the still-live hosts, not necessarily the most recently inserted one.\n getAttachedSlotParent(excludedNode) {\n for (const textNode of this.textNodesByParent.values()) {\n if (textNode !== excludedNode && textNode.parent) {\n return textNode.parent;\n }\n }\n for (const layoutNode of this.layoutNodesByParent.values()) {\n if (layoutNode !== excludedNode && layoutNode.parent) {\n return layoutNode.parent;\n }\n }\n return null;\n }\n hasOtherAttachedSlotChildren(excludedNode) {\n return this.getAttachedSlotParent(excludedNode) !== null;\n }\n getSlotChild(parent) {\n if (this.isTextSlotParent(parent)) {\n const existingTextNode = this.getTextNodeForParent(parent);\n if (existingTextNode) {\n return existingTextNode;\n }\n const reusableTextNode = this.takeReusableTextNode(parent);\n if (reusableTextNode) {\n return reusableTextNode;\n }\n this.disposeDetachedIncompatibleLayoutNodes(parent);\n const textNode = new TextSlotRenderable(`slot-text-${this.id}-${++this.textNodeCount}`, this);\n this.textNodesByParent.set(parent, textNode);\n return textNode;\n }\n const existingLayoutNode = this.getLayoutNodeForParent(parent);\n if (existingLayoutNode) {\n return existingLayoutNode;\n }\n const reusableLayoutNode = this.takeReusableLayoutNode(parent);\n if (reusableLayoutNode) {\n return reusableLayoutNode;\n }\n this.disposeDetachedTextNodes();\n this.disposeDetachedIncompatibleLayoutNodes(parent);\n const id = `slot-layout-${this.id}-${++this.layoutNodeCount}`;\n if (!(parent instanceof Renderable)) throw new Error(\"Layout slots require a renderable parent\");\n const layoutNode = new LayoutSlotRenderable(id, this, parent);\n this.layoutNodesByParent.set(parent, layoutNode);\n return layoutNode;\n }\n getSlotChildForRemoval(parent) {\n if (this.isTextSlotParent(parent)) {\n return this.getTextNodeForParent(parent);\n }\n return this.getLayoutNodeForParent(parent);\n }\n didRemoveSlotChild(parent, child) {\n const hasOtherAttachedSlotChildren = this.hasOtherAttachedSlotChildren(child);\n if (this.parent === parent) {\n this.parent = this.getAttachedSlotParent(child);\n }\n if (hasOtherAttachedSlotChildren && child instanceof TextSlotRenderable && this.getTextNodeForParent(parent) === child) {\n this.textNodesByParent.delete(parent);\n child.disposeWithoutSlotCascade();\n }\n if (hasOtherAttachedSlotChildren && child instanceof LayoutSlotRenderable && this.getLayoutNodeForParent(parent) === child) {\n this.layoutNodesByParent.delete(parent);\n child.disposeWithoutSlotCascade();\n }\n }\n didDestroySlotChild(child) {\n const nodesByParent = child instanceof TextSlotRenderable ? this.textNodesByParent : this.layoutNodesByParent;\n for (const [parent, node] of nodesByParent) {\n if (node !== child) continue;\n nodesByParent.delete(parent);\n if (this.parent === parent) this.parent = this.getAttachedSlotParent();\n }\n }\n destroy() {\n if (this.destroyed) {\n return;\n }\n this.destroyed = true;\n this.parent = null;\n const nodes = new Set([...this.layoutNodesByParent.values(), ...this.textNodesByParent.values()]);\n this.layoutNodesByParent.clear();\n this.textNodesByParent.clear();\n let failure;\n for (const node of nodes) {\n try {\n node.destroy();\n } catch (error) {\n failure ??= {\n error\n };\n }\n }\n if (failure) throw failure.error;\n }\n}",
|
|
15
|
+
"import { BoxRenderable } from \"@opentui/core\";\nimport { createSignal } from \"solid-js/dist/solid.js\";\nimport { RendererContext } from \"./elements/index.js\";\nimport { _render as renderInternal, createComponent } from \"./reconciler.js\";\nlet solidScrollbackRootCounter = 0;\nconst MAX_AUTO_HEIGHT_PASSES = 4;\nfunction normalizeSnapshotDimension(value, axis) {\n if (value === undefined) {\n return undefined;\n }\n if (!Number.isFinite(value)) {\n throw new Error(`createScrollbackWriter requires a finite ${axis}`);\n }\n return Math.max(1, Math.trunc(value));\n}\nfunction createSnapshotRendererValue(renderContext, width, height, firstLineOffset) {\n const [snapshotWidth] = createSignal(width);\n const [snapshotHeight, setSnapshotHeight] = createSignal(height);\n const renderer = Object.create(renderContext);\n let offset = firstLineOffset;\n Object.defineProperties(renderer, {\n width: {\n get: snapshotWidth,\n enumerable: true,\n configurable: true\n },\n height: {\n get: snapshotHeight,\n enumerable: true,\n configurable: true\n },\n claimFirstLineOffset: {\n value: () => {\n const out = offset;\n offset = 0;\n return out;\n },\n enumerable: true,\n configurable: true\n }\n });\n return {\n renderer,\n getHeight: snapshotHeight,\n setHeight(nextHeight) {\n setSnapshotHeight(nextHeight);\n renderer.emit(\"resize\", snapshotWidth(), nextHeight);\n }\n };\n}\nfunction clearLifecyclePasses(renderContext) {\n for (const renderable of [...renderContext.getLifecyclePasses()]) {\n renderContext.unregisterLifecyclePass(renderable);\n }\n}\nfunction resolveSnapshotHeight(renderContext, root, snapshotRenderer) {\n for (let pass = 0; pass < MAX_AUTO_HEIGHT_PASSES; pass++) {\n const measuredHeight = renderContext.nativeScene.measureSnapshot(root);\n if (measuredHeight === snapshotRenderer.getHeight()) {\n clearLifecyclePasses(renderContext);\n return measuredHeight;\n }\n snapshotRenderer.setHeight(measuredHeight);\n }\n\n // Give up on converging the synthetic height and let the final render rerun\n // lifecycle passes against the last consistent tree state.\n return renderContext.nativeScene.measureSnapshot(root);\n}\nexport function createScrollbackWriter(node, options = {}) {\n return ctx => {\n const width = normalizeSnapshotDimension(options.width, \"width\") ?? Math.max(1, Math.trunc(ctx.width));\n const height = normalizeSnapshotDimension(options.height, \"height\");\n const startOnNewLine = options.startOnNewLine ?? true;\n const firstLineWidth = !startOnNewLine && ctx.tailColumn > 0 && ctx.tailColumn < ctx.width ? Math.min(width, ctx.width - ctx.tailColumn) : width;\n const firstLineOffset = width - firstLineWidth;\n const snapshotRenderer = createSnapshotRendererValue(ctx.renderContext, width, height ?? Math.max(1, ctx.renderContext.height), firstLineOffset);\n const root = new BoxRenderable(snapshotRenderer.renderer, {\n id: `solid-scrollback-root-${solidScrollbackRootCounter++}`,\n position: \"absolute\",\n left: 0,\n top: 0,\n width,\n height: height ?? \"auto\",\n border: false,\n backgroundColor: \"transparent\",\n shouldFill: false,\n flexDirection: \"column\"\n });\n Object.defineProperty(snapshotRenderer.renderer, \"root\", {\n value: root,\n enumerable: true,\n configurable: true\n });\n let dispose;\n let disposed = false;\n const teardown = () => {\n if (disposed) {\n return;\n }\n disposed = true;\n dispose?.();\n };\n try {\n dispose = renderInternal(() => createComponent(RendererContext.Provider, {\n get value() {\n return snapshotRenderer.renderer;\n },\n get children() {\n return node(ctx);\n }\n }), root);\n return {\n root,\n width,\n height: height ?? resolveSnapshotHeight(ctx.renderContext, root, snapshotRenderer),\n rowColumns: options.rowColumns,\n startOnNewLine,\n trailingNewline: options.trailingNewline,\n teardown\n };\n } catch (error) {\n teardown();\n root.destroyRecursively();\n throw error;\n }\n };\n}\nexport function writeSolidToScrollback(renderer, node, options = {}) {\n renderer.writeToScrollback(createScrollbackWriter(node, options));\n}",
|
|
16
16
|
"import { spread as _$spread } from \"@opentui/solid\";\nimport { createElement as _$createElement } from \"@opentui/solid\";\nimport { TimeToFirstDrawRenderable } from \"@opentui/core\";\nimport { extend } from \"./elements/index.js\";\nextend({\n time_to_first_draw: TimeToFirstDrawRenderable\n});\nexport const TimeToFirstDraw = props => {\n return (() => {\n var _el$ = _$createElement(\"time_to_first_draw\");\n _$spread(_el$, props, false);\n return _el$;\n })();\n};",
|
|
17
17
|
"import { memo as _$memo } from \"@opentui/solid\";\nimport { createComponent as _$createComponent } from \"@opentui/solid\";\nimport { mergeProps as _$mergeProps } from \"@opentui/solid\";\nimport { createSlotRegistry } from \"@opentui/core\";\nimport { children, createMemo, createSignal, ErrorBoundary, For, onCleanup, splitProps } from \"solid-js/dist/solid.js\";\nconst EMPTY_ENTRY_IDS = [];\nexport function createSolidSlotRegistry(renderer, context, options = {}) {\n // Solid slots intentionally use one registry key per renderer instance.\n // Use createSlotRegistry from @opentui/core with a custom key for independent registries.\n return createSlotRegistry(renderer, \"solid:slot-registry\", context, options);\n}\nexport function createSlot(registry, options = {}) {\n return function BoundSlot(props) {\n return _$createComponent(Slot, _$mergeProps(props, {\n registry: registry,\n get pluginFailurePlaceholder() {\n return options.pluginFailurePlaceholder;\n }\n }));\n };\n}\nexport function Slot(props) {\n const [local, slotProps] = splitProps(props, [\"registry\", \"name\", \"mode\", \"children\", \"pluginFailurePlaceholder\"]);\n const registry = () => local.registry;\n const pluginFailurePlaceholder = () => local.pluginFailurePlaceholder;\n const [version, setVersion] = createSignal(0);\n let queued = false;\n let disposed = false;\n const unsubscribe = registry().subscribe(() => {\n if (queued) return;\n queued = true;\n setVersion(current => current + 1);\n queueMicrotask(() => {\n queued = false;\n if (disposed) return;\n });\n });\n onCleanup(() => {\n disposed = true;\n unsubscribe();\n });\n const entries = createMemo((previousEntries = []) => {\n version();\n const resolvedEntries = registry().resolveEntries(local.name);\n if (resolvedEntries.length === 0) {\n if (previousEntries.length === 0) return previousEntries;\n return [];\n }\n const previousById = new Map(previousEntries.map(entry => [entry.id, entry]));\n const nextEntries = resolvedEntries.map(entry => {\n const previousEntry = previousById.get(entry.id);\n if (previousEntry && previousEntry.renderer === entry.renderer) {\n return previousEntry;\n }\n return entry;\n });\n const unchanged = nextEntries.length === previousEntries.length && nextEntries.every((entry, index) => entry === previousEntries[index]);\n if (unchanged) return previousEntries;\n return nextEntries;\n });\n const entryIds = createMemo(() => entries().map(entry => entry.id));\n const entriesById = createMemo(() => new Map(entries().map(entry => [entry.id, entry])));\n const slotName = () => String(local.name);\n const renderFallback = () => {\n const value = children(() => local.children)();\n return value ?? null;\n };\n const resolveFallback = fallbackValue => fallbackValue?.() ?? null;\n const renderPluginFailurePlaceholder = (failure, fallbackValue) => {\n if (!pluginFailurePlaceholder()) {\n return resolveFallback(fallbackValue);\n }\n try {\n return pluginFailurePlaceholder()(failure);\n } catch (error) {\n registry().reportPluginError({\n pluginId: failure.pluginId,\n slot: failure.slot ?? slotName(),\n phase: \"error_placeholder\",\n source: \"solid\",\n error\n });\n return resolveFallback(fallbackValue);\n }\n };\n const renderEntry = (entry, fallbackOnError) => {\n let initialRender;\n try {\n initialRender = entry.renderer(registry().context, slotProps);\n } catch (error) {\n const failure = registry().reportPluginError({\n pluginId: entry.id,\n slot: slotName(),\n phase: \"render\",\n source: \"solid\",\n error\n });\n return renderPluginFailurePlaceholder(failure, fallbackOnError);\n }\n const resolvedInitialRender = children(() => initialRender);\n const hasInitialOutput = resolvedInitialRender.toArray().some(node => node !== null && node !== undefined && node !== false);\n if (!hasInitialOutput) {\n return resolveFallback(fallbackOnError);\n }\n return _$createComponent(ErrorBoundary, {\n fallback: error => {\n const failure = registry().reportPluginError({\n pluginId: entry.id,\n slot: slotName(),\n phase: \"render\",\n source: \"solid\",\n error\n });\n return renderPluginFailurePlaceholder(failure, fallbackOnError);\n },\n get children() {\n return resolvedInitialRender();\n }\n });\n };\n const AppendEntry = appendProps => {\n const entry = createMemo(() => entriesById().get(appendProps.entryId));\n return _$memo(() => {\n const resolvedEntry = entry();\n if (!resolvedEntry) {\n return null;\n }\n return renderEntry(resolvedEntry);\n });\n };\n const appendEntryIds = createMemo(() => {\n const mode = local.mode ?? \"append\";\n if (mode !== \"append\") {\n return EMPTY_ENTRY_IDS;\n }\n return entryIds();\n });\n const appendView = [renderFallback, _$createComponent(For, {\n get each() {\n return appendEntryIds();\n },\n children: entryId => _$createComponent(AppendEntry, {\n entryId: entryId\n })\n })];\n return _$memo(() => {\n const resolvedEntries = entries();\n const mode = local.mode ?? \"append\";\n if (resolvedEntries.length === 0) {\n return renderFallback();\n }\n if (mode === \"single_winner\") {\n const winner = resolvedEntries[0];\n if (!winner) {\n return renderFallback();\n }\n return renderEntry(winner, renderFallback);\n }\n if (mode === \"replace\") {\n const renderedEntries = resolvedEntries.map(entry => renderEntry(entry));\n const hasPluginOutput = renderedEntries.some(entry => entry !== null && entry !== undefined && entry !== false);\n if (!hasPluginOutput) {\n return renderFallback();\n }\n return renderedEntries;\n }\n return appendView;\n });\n}"
|
|
18
18
|
],
|
|
19
|
-
"mappings": "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",
|
|
20
|
-
"debugId": "
|
|
19
|
+
"mappings": "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",
|
|
20
|
+
"debugId": "8E8E054AAA0C759464756E2164756E21",
|
|
21
21
|
"names": []
|
|
22
22
|
}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"types": "index.d.ts",
|
|
6
6
|
"type": "module",
|
|
7
|
-
"version": "0.
|
|
7
|
+
"version": "0.6.1",
|
|
8
8
|
"description": "SolidJS renderer for OpenTUI",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"repository": {
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"dependencies": {
|
|
63
63
|
"@babel/core": "7.29.7",
|
|
64
64
|
"@babel/preset-typescript": "7.27.1",
|
|
65
|
-
"@opentui/core": "0.
|
|
65
|
+
"@opentui/core": "0.6.1",
|
|
66
66
|
"babel-plugin-module-resolver": "5.0.2",
|
|
67
67
|
"babel-preset-solid": "1.9.12",
|
|
68
68
|
"entities": "7.0.1",
|
package/src/elements/extras.d.ts
CHANGED
|
@@ -6,6 +6,9 @@ import type { ValidComponent, ComponentProps } from "solid-js";
|
|
|
6
6
|
*
|
|
7
7
|
* Useful for inserting modals and tooltips outside of an cropping layout. If no mount point is given, the portal is inserted on the root renderable; it is wrapped in a `<box>`
|
|
8
8
|
*
|
|
9
|
+
* Native portals can switch scenes only while their container is empty. A rejected switch preserves
|
|
10
|
+
* the mounted tree and its subscriptions; existing nodes are never remounted implicitly.
|
|
11
|
+
*
|
|
9
12
|
* @description https://docs.solidjs.com/reference/components/portal
|
|
10
13
|
*/
|
|
11
14
|
export declare function Portal(props: {
|
package/src/elements/slot.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseRenderable,
|
|
1
|
+
import { BaseRenderable, Renderable, TextNodeRenderable } from "@opentui/core";
|
|
2
2
|
declare class SlotBaseRenderable extends BaseRenderable {
|
|
3
3
|
constructor(id: string);
|
|
4
4
|
add(obj: BaseRenderable | unknown, index?: number): number;
|
|
@@ -17,24 +17,14 @@ export declare class TextSlotRenderable extends TextNodeRenderable {
|
|
|
17
17
|
detachFromSlot(): void;
|
|
18
18
|
disposeWithoutSlotCascade(): void;
|
|
19
19
|
destroy(): void;
|
|
20
|
+
destroyRecursively(): void;
|
|
20
21
|
}
|
|
21
|
-
export declare class LayoutSlotRenderable extends
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
protected destroyed: boolean;
|
|
25
|
-
private yogaNodeConstructor;
|
|
26
|
-
private yogaNodeFreed;
|
|
27
|
-
constructor(id: string, parent?: SlotRenderable, layoutParent?: BaseRenderable);
|
|
28
|
-
getLayoutNode(): Yoga.Node;
|
|
29
|
-
updateFromLayout(): void;
|
|
30
|
-
updateLayout(): void;
|
|
31
|
-
onRemove(): void;
|
|
22
|
+
export declare class LayoutSlotRenderable extends Renderable {
|
|
23
|
+
private slotParent?;
|
|
24
|
+
constructor(id: string, parent: SlotRenderable, layoutParent: Renderable);
|
|
32
25
|
isCompatibleWith(layoutParent?: BaseRenderable): boolean;
|
|
33
|
-
detachFromSlot(): void;
|
|
34
|
-
private freeYogaNode;
|
|
35
26
|
disposeWithoutSlotCascade(): void;
|
|
36
|
-
|
|
37
|
-
destroy(): void;
|
|
27
|
+
protected destroySelf(): void;
|
|
38
28
|
}
|
|
39
29
|
export declare class SlotRenderable extends SlotBaseRenderable {
|
|
40
30
|
protected destroyed: boolean;
|
|
@@ -58,7 +48,7 @@ export declare class SlotRenderable extends SlotBaseRenderable {
|
|
|
58
48
|
getSlotChild(parent: BaseRenderable): LayoutSlotRenderable | TextSlotRenderable;
|
|
59
49
|
getSlotChildForRemoval(parent: BaseRenderable): BaseRenderable | undefined;
|
|
60
50
|
didRemoveSlotChild(parent: BaseRenderable, child: BaseRenderable): void;
|
|
61
|
-
didDestroySlotChild(child:
|
|
51
|
+
didDestroySlotChild(child: BaseRenderable): void;
|
|
62
52
|
destroy(): void;
|
|
63
53
|
}
|
|
64
54
|
export {};
|
package/src/reconciler.d.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
import { BaseRenderable } from "@opentui/core";
|
|
1
|
+
import { BaseRenderable, type RenderContext } from "@opentui/core";
|
|
2
2
|
import { SlotRenderable } from "./elements/index.js";
|
|
3
3
|
export type DomNode = BaseRenderable;
|
|
4
|
+
/** @internal Portal allocation target, separate from the renderer exposed to application hooks. */
|
|
5
|
+
export declare const RenderableContext: import("solid-js").Context<(() => RenderContext) | undefined>;
|
|
6
|
+
declare function _removeNode(parent: DomNode, node: DomNode): void;
|
|
7
|
+
export { _removeNode as removeNode };
|
|
4
8
|
export declare function createSlotNode(): SlotRenderable;
|
|
5
|
-
|
|
9
|
+
declare const effect: <T>(fn: (prev?: T) => T, init?: T) => void, memo: <T>(fn: () => T, equal: boolean) => () => T, createComponent: <T>(Comp: (props: T) => unknown, props: T) => BaseRenderable, createElement: (tag: string) => BaseRenderable, createTextNode: (value: string) => BaseRenderable, insertNode: (parent: BaseRenderable, node: BaseRenderable, anchor?: BaseRenderable | undefined) => void, insert: <T>(parent: any, accessor: T | (() => T), marker?: any | null, initial?: any) => BaseRenderable, spread: <T>(node: any, accessor: (() => T) | T, skipChildren?: boolean) => void, setProp: <T>(node: BaseRenderable, name: string, value: T, prev?: T | undefined) => T, mergeProps: (...sources: unknown[]) => unknown, use: <A, T>(fn: (element: BaseRenderable, arg: A) => T, element: BaseRenderable, arg: A) => T;
|
|
10
|
+
export { effect, memo, createComponent, createElement, createTextNode, insertNode, insert, spread, setProp, mergeProps, use, };
|
|
11
|
+
/** @internal Start an independent root without inheriting a Portal allocation target. */
|
|
12
|
+
export declare function _render(code: () => DomNode, root: DomNode): () => void;
|