@plastic-js/tsumiki 0.1.0 → 0.1.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/components/Accordion.js +7 -0
- package/dist/components/Accordion.js.map +1 -0
- package/dist/components/Avatar.js +7 -0
- package/dist/components/Avatar.js.map +1 -0
- package/dist/components/CardNumberInput.js +67 -0
- package/dist/components/CardNumberInput.js.map +1 -0
- package/dist/components/Carousel.js +7 -0
- package/dist/components/Carousel.js.map +1 -0
- package/dist/components/Checkbox.js +7 -0
- package/dist/components/Checkbox.js.map +1 -0
- package/dist/components/Clipboard.js +7 -0
- package/dist/components/Clipboard.js.map +1 -0
- package/dist/components/Collapsible.js +7 -0
- package/dist/components/Collapsible.js.map +1 -0
- package/dist/components/ColorPicker.js +7 -0
- package/dist/components/ColorPicker.js.map +1 -0
- package/dist/components/Combobox.js +19 -0
- package/dist/components/Combobox.js.map +1 -0
- package/dist/components/ConfirmDialog.js +36 -0
- package/dist/components/ConfirmDialog.js.map +1 -0
- package/dist/components/DateInput.js +7 -0
- package/dist/components/DateInput.js.map +1 -0
- package/dist/components/DatePicker.js +7 -0
- package/dist/components/DatePicker.js.map +1 -0
- package/dist/components/Dialog.js +218 -0
- package/dist/components/Dialog.js.map +1 -0
- package/dist/components/Drawer.js +7 -0
- package/dist/components/Drawer.js.map +1 -0
- package/dist/components/Field.js +7 -0
- package/dist/components/Field.js.map +1 -0
- package/dist/components/Fieldset.js +7 -0
- package/dist/components/Fieldset.js.map +1 -0
- package/dist/components/FileUpload.js +7 -0
- package/dist/components/FileUpload.js.map +1 -0
- package/dist/components/FilteredSelect.js +173 -0
- package/dist/components/FilteredSelect.js.map +1 -0
- package/dist/components/FocusTrap.js +7 -0
- package/dist/components/FocusTrap.js.map +1 -0
- package/dist/components/HoverCard.js +7 -0
- package/dist/components/HoverCard.js.map +1 -0
- package/dist/components/Icon.js +37 -0
- package/dist/components/Icon.js.map +1 -0
- package/dist/components/Listbox.js +7 -0
- package/dist/components/Listbox.js.map +1 -0
- package/dist/components/Menu.js +7 -0
- package/dist/components/Menu.js.map +1 -0
- package/dist/components/MoneyInput.js +114 -0
- package/dist/components/MoneyInput.js.map +1 -0
- package/dist/components/MyFilteredSelect.js +119 -0
- package/dist/components/MyFilteredSelect.js.map +1 -0
- package/dist/components/NumberInput.js +7 -0
- package/dist/components/NumberInput.js.map +1 -0
- package/dist/components/Pagination.js +7 -0
- package/dist/components/Pagination.js.map +1 -0
- package/dist/components/Popover.js +7 -0
- package/dist/components/Popover.js.map +1 -0
- package/dist/components/Portal.js +7 -0
- package/dist/components/Portal.js.map +1 -0
- package/dist/components/Presence.js +7 -0
- package/dist/components/Presence.js.map +1 -0
- package/dist/components/Progress.js +7 -0
- package/dist/components/Progress.js.map +1 -0
- package/dist/components/RadioGroup.js +7 -0
- package/dist/components/RadioGroup.js.map +1 -0
- package/dist/components/RatingGroup.js +7 -0
- package/dist/components/RatingGroup.js.map +1 -0
- package/dist/components/SearchInput.js +66 -0
- package/dist/components/SearchInput.js.map +1 -0
- package/dist/components/Select.js +7 -0
- package/dist/components/Select.js.map +1 -0
- package/dist/components/SignaturePad.js +7 -0
- package/dist/components/SignaturePad.js.map +1 -0
- package/dist/components/Skeleton.js +29 -0
- package/dist/components/Skeleton.js.map +1 -0
- package/dist/components/Slider.js +7 -0
- package/dist/components/Slider.js.map +1 -0
- package/dist/components/Splitter.js +7 -0
- package/dist/components/Splitter.js.map +1 -0
- package/dist/components/Steps.js +7 -0
- package/dist/components/Steps.js.map +1 -0
- package/dist/components/SwipeReveal.js +161 -0
- package/dist/components/SwipeReveal.js.map +1 -0
- package/dist/components/Switch.js +7 -0
- package/dist/components/Switch.js.map +1 -0
- package/dist/components/Tabs.js +7 -0
- package/dist/components/Tabs.js.map +1 -0
- package/dist/components/TagsInput.js +7 -0
- package/dist/components/TagsInput.js.map +1 -0
- package/dist/components/Toast.js +7 -0
- package/dist/components/Toast.js.map +1 -0
- package/dist/components/Toggle.js +7 -0
- package/dist/components/Toggle.js.map +1 -0
- package/dist/components/ToggleGroup.js +7 -0
- package/dist/components/ToggleGroup.js.map +1 -0
- package/dist/components/Tooltip.js +7 -0
- package/dist/components/Tooltip.js.map +1 -0
- package/dist/components/Tour.js +7 -0
- package/dist/components/Tour.js.map +1 -0
- package/dist/components/TreeView.js +7 -0
- package/dist/components/TreeView.js.map +1 -0
- package/dist/index.js +50 -2714
- package/package.json +1 -1
- package/dist/index.js.map +0 -1
package/package.json
CHANGED
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Accordion","Avatar","isSignal","isComputed","effect","css","splitProps","_tmpl","_template","wrapperClass","display","alignItems","width","boxSizing","height","background","border","borderRadius","padding","borderColor","errorClass","inputClass","flex","minWidth","color","fontSize","fontFamily","outline","letterSpacing","read","value","groupDigits","digits","replace","CardNumberInput","props","local","rest","_el0","cloneNode","_insert","_jsx","_mergeProps","className","inputMode","onInput","e","onValueChange","target","placeholder","_setProp","invalid","Carousel","Checkbox","Clipboard","Collapsible","ColorPicker","Combobox","useComboboxContext","OriginalRoot","Root","props","_jsx","_mergeProps","Input","combobox","onInput","event","getInputProps","onChange","Object","assign","Portal","css","_tmpl","_template","iconClass","display","alignItems","justifyContent","color","width","height","strokeWidth","Icon","svg","size","className","style","setEl","el","innerHTML","_el0","cloneNode","_setProp","css","Dialog","splitProps","Portal","Icon","_tmpl4","_template","_tmpl3","_tmpl2","_tmpl","backdropClass","position","inset","background","backdropFilter","zIndex","display","positionerClass","alignItems","justifyContent","padding","contentClass","border","borderRadius","width","maxWidth","maxHeight","flexDirection","color","boxShadow","headClass","borderBottom","titleWrapClass","gap","minWidth","titleIconClass","flexShrink","titleClass","fontSize","fontWeight","margin","closeBtnClass","height","lineHeight","cursor","bodyClass","overflowY","footClass","borderTop","btnClass","flex","fontFamily","borderColor","btnPrimaryClass","filter","opacity","OriginalRoot","Root","props","local","rest","closeOnInteractOutside","onOpenChange","open","onOpen","onClose","Preset","rootProps","_jsx","_mergeProps","children","Backdrop","className","Positioner","Content","_el0","cloneNode","_el1","firstChild","_el2","_el3","nextSibling","_el4","_insert","icon","size","svg","Title","title","_setProp","CloseTrigger","hidden","cancelText","confirmText","type","loading","onConfirm","Object","assign","css","Dialog","_tmpl","_template","messageClass","fontSize","lineHeight","color","textAlign","padding","ConfirmDialog","open","onOpenChange","onConfirm","loading","title","message","confirmText","cancelText","handleConfirm","_jsx","Root","_mergeProps","children","_el0","cloneNode","_insert","_setProp","DateInput","DatePicker","Drawer","Field","Fieldset","FileUpload","Combobox","useComboboxContext","Loop","createComputed","createContext","createEffect","createSignal","splitProps","useContext","collection","createCollection","_tmpl3","_template","_tmpl2","_tmpl","access","value","FilterContext","defaultItemToValue","item","String","id","defaultItemToString","label","name","defaultFilter","query","itemToString","toLowerCase","includes","Root","props","local","rest","itemToValue","filter","inputValue","filteredItems","q","trim","list","items","_jsx","Provider","_mergeProps","children","onInputValueChange","HighlightSingleMatch","combobox","api","open","length","highlightedValue","setHighlightValue","Input","onInput","event","getInputProps","onChange","Items","each","ChevronIcon","cloneNode","CheckIcon","FilteredSelect","cn","classNames","openOnClick","Label","className","Control","control","input","disabled","placeholder","Trigger","trigger","type","Content","content","Empty","empty","emptyText","Item","key","ItemText","itemText","_el0","_insert","_setProp","check","FocusTrap","HoverCard","Listbox","Menu","css","splitProps","_tmpl2","_template","_tmpl","wrapperClass","display","alignItems","width","boxSizing","height","background","border","borderRadius","padding","borderColor","errorClass","affixTextClass","color","fontSize","whiteSpace","userSelect","marginRight","affixSuffixClass","fontWeight","paddingLeft","marginLeft","borderLeft","affixSuffixDisabledClass","opacity","inputClass","flex","minWidth","fontFamily","outline","cursor","WebkitTextFillColor","read","value","groupThousands","digits","Number","toLocaleString","MoneyInput","props","local","rest","_el0","cloneNode","_el1","firstChild","_el2","nextSibling","_el3","_insert","currency","_setProp","_jsx","_mergeProps","className","disabled","inputMode","onInput","e","onValueChange","target","replace","placeholder","affix","invalid","css","FilteredSelect","controlClass","position","display","alignItems","width","height","background","border","borderRadius","transition","borderColor","inputClass","flex","minWidth","outline","padding","color","fontSize","fontFamily","triggerClass","flexShrink","justifyContent","cursor","transform","contentClass","boxShadow","maxHeight","overflowY","zIndex","marginTop","itemClass","gap","itemTextClass","checkClass","opacity","emptyClass","textAlign","labelClass","fontWeight","marginBottom","classNames","control","input","trigger","content","item","itemText","check","empty","label","MyFilteredSelect","props","_jsx","_mergeProps","NumberInput","Pagination","Popover","Presence","Progress","RadioGroup","RatingGroup","css","splitProps","_tmpl2","_template","_tmpl","wrapperClass","flex","minWidth","position","inputClass","width","height","background","border","borderRadius","padding","color","fontSize","fontFamily","outline","borderColor","iconClass","left","top","transform","pointerEvents","SearchInput","props","local","rest","_el0","cloneNode","_el1","firstChild","_el2","nextSibling","_insert","_jsx","SearchIcon","_setProp","_mergeProps","className","onInput","placeholder","type","Select","SignaturePad","css","keyframes","_tmpl","_template","shimmer","backgroundPosition","baseClass","display","background","backgroundSize","animation","borderRadius","Skeleton","width","height","radius","className","style","_el0","cloneNode","_setProp","Slider","Splitter","Steps","css","createEffect","createSignal","_tmpl2","_template","_tmpl","ACTIONS_WIDTH","SWIPE_THRESHOLD","wrapperClass","trackClass","actionsClass","actionBtnClass","contentClass","SwipeReveal","actions","children","onSwipeStart","onOpenChange","activeId","thisId","isOpen","trackEl","startX","startY","baseOffset","currentOffset","dragging","axisLocked","horizontal","moved","setTrackRef","el","applyTransform","px","style","transform","snap","toOpen","dataset","currentActive","undefined","onPointerDown","e","pointerType","button","clientX","clientY","currentTarget","setPointerCapture","pointerId","onPointerMove","dx","dy","Math","abs","next","onPointerUp","releasePointerCapture","shouldOpen","handleContentClick","stopPropagation","handleActionClick","action","onClick","_el0","cloneNode","_el1","firstChild","_el2","_el3","nextSibling","_insert","_setProp","map","label","background","color","Switch","Tabs","TagsInput","Toast","createToaster","Object","assign","Toggle","ToggleGroup","Tooltip","Tour","TreeView"],"sources":["../src/components/Accordion.jsx","../src/components/Avatar.jsx","../node_modules/alien-signals/esm/system.mjs","../node_modules/alien-signals/esm/index.mjs","../node_modules/@plastic-js/plastic/src/utils.js","../node_modules/@plastic-js/plastic/src/reactivity.js","../node_modules/@plastic-js/plastic/src/computation-context.js","../node_modules/@plastic-js/plastic/src/control-flow.js","../node_modules/@plastic-js/plastic/src/merge-props.js","../node_modules/@plastic-js/plastic/src/jsx-runtime.js","../src/components/CardNumberInput.jsx","../src/components/Carousel.jsx","../src/components/Checkbox.jsx","../src/components/Clipboard.jsx","../src/components/Collapsible.jsx","../src/components/ColorPicker.jsx","../src/components/Combobox.jsx","../src/components/Portal.jsx","../src/components/Icon.jsx","../src/components/Dialog.jsx","../src/components/ConfirmDialog.jsx","../src/components/DateInput.jsx","../src/components/DatePicker.jsx","../src/components/Drawer.jsx","../src/components/Field.jsx","../src/components/Fieldset.jsx","../src/components/FileUpload.jsx","../src/components/FilteredSelect.jsx","../src/components/FocusTrap.jsx","../src/components/HoverCard.jsx","../src/components/Listbox.jsx","../src/components/Menu.jsx","../src/components/MoneyInput.jsx","../src/components/MyFilteredSelect.jsx","../src/components/NumberInput.jsx","../src/components/Pagination.jsx","../src/components/Popover.jsx","../src/components/Presence.jsx","../src/components/Progress.jsx","../src/components/RadioGroup.jsx","../src/components/RatingGroup.jsx","../src/components/SearchInput.jsx","../src/components/Select.jsx","../src/components/SignaturePad.jsx","../src/components/Skeleton.jsx","../src/components/Slider.jsx","../src/components/Splitter.jsx","../src/components/Steps.jsx","../src/components/SwipeReveal.jsx","../src/components/Switch.jsx","../src/components/Tabs.jsx","../src/components/TagsInput.jsx","../src/components/Toast.jsx","../src/components/Toggle.jsx","../src/components/ToggleGroup.jsx","../src/components/Tooltip.jsx","../src/components/Tour.jsx","../src/components/TreeView.jsx"],"sourcesContent":["import { Accordion } from '@plastic-js/ark'\n\nexport default Accordion\n","import { Avatar } from '@plastic-js/ark'\n\nexport default Avatar\n","export const ReactiveFlags = {\n None: 0,\n Mutable: 1,\n Watching: 2,\n RecursedCheck: 4,\n Recursed: 8,\n Dirty: 16,\n Pending: 32,\n};\nexport function createReactiveSystem({ update, notify, unwatched, }) {\n return {\n link,\n unlink,\n propagate,\n checkDirty,\n shallowPropagate,\n };\n function link(dep, sub, version) {\n const prevDep = sub.depsTail;\n if (prevDep !== undefined && prevDep.dep === dep) {\n return;\n }\n const nextDep = prevDep !== undefined ? prevDep.nextDep : sub.deps;\n if (nextDep !== undefined && nextDep.dep === dep) {\n nextDep.version = version;\n sub.depsTail = nextDep;\n return;\n }\n const prevSub = dep.subsTail;\n if (prevSub !== undefined && prevSub.version === version && prevSub.sub === sub) {\n return;\n }\n const newLink = sub.depsTail\n = dep.subsTail\n = {\n version,\n dep,\n sub,\n prevDep,\n nextDep,\n prevSub,\n nextSub: undefined,\n };\n if (nextDep !== undefined) {\n nextDep.prevDep = newLink;\n }\n if (prevDep !== undefined) {\n prevDep.nextDep = newLink;\n }\n else {\n sub.deps = newLink;\n }\n if (prevSub !== undefined) {\n prevSub.nextSub = newLink;\n }\n else {\n dep.subs = newLink;\n }\n }\n function unlink(link, sub = link.sub) {\n const { dep, prevDep, nextDep, nextSub, prevSub } = link;\n if (nextDep !== undefined) {\n nextDep.prevDep = prevDep;\n }\n else {\n sub.depsTail = prevDep;\n }\n if (prevDep !== undefined) {\n prevDep.nextDep = nextDep;\n }\n else {\n sub.deps = nextDep;\n }\n if (nextSub !== undefined) {\n nextSub.prevSub = prevSub;\n }\n else {\n dep.subsTail = prevSub;\n }\n if (prevSub !== undefined) {\n prevSub.nextSub = nextSub;\n }\n else if ((dep.subs = nextSub) === undefined) {\n unwatched(dep);\n }\n return nextDep;\n }\n function propagate(link, innerWrite) {\n let next = link.nextSub;\n let stack;\n top: do {\n const sub = link.sub;\n let flags = sub.flags;\n if (!(flags & (4 | 8 | 16 | 32))) {\n sub.flags = flags | 32;\n if (innerWrite) {\n sub.flags |= 8;\n }\n }\n else if (!(flags & (4 | 8))) {\n flags = 0;\n }\n else if (!(flags & 4)) {\n sub.flags = (flags & ~8) | 32;\n }\n else if (!(flags & (16 | 32)) && isValidLink(link, sub)) {\n sub.flags = flags | (8 | 32);\n flags &= 1;\n }\n else {\n flags = 0;\n }\n if (flags & 2) {\n notify(sub);\n }\n if (flags & 1) {\n const subSubs = sub.subs;\n if (subSubs !== undefined) {\n const nextSub = (link = subSubs).nextSub;\n if (nextSub !== undefined) {\n stack = { value: next, prev: stack };\n next = nextSub;\n }\n continue;\n }\n }\n if ((link = next) !== undefined) {\n next = link.nextSub;\n continue;\n }\n while (stack !== undefined) {\n link = stack.value;\n stack = stack.prev;\n if (link !== undefined) {\n next = link.nextSub;\n continue top;\n }\n }\n break;\n } while (true);\n }\n function checkDirty(link, sub) {\n let stack;\n let checkDepth = 0;\n let dirty = false;\n top: do {\n const dep = link.dep;\n const flags = dep.flags;\n if (sub.flags & 16) {\n dirty = true;\n }\n else if ((flags & (1 | 16)) === (1 | 16)) {\n const subs = dep.subs;\n if (update(dep)) {\n if (subs.nextSub !== undefined) {\n shallowPropagate(subs);\n }\n dirty = true;\n }\n }\n else if ((flags & (1 | 32)) === (1 | 32)) {\n stack = { value: link, prev: stack };\n link = dep.deps;\n sub = dep;\n ++checkDepth;\n continue;\n }\n if (!dirty) {\n const nextDep = link.nextDep;\n if (nextDep !== undefined) {\n link = nextDep;\n continue;\n }\n }\n while (checkDepth--) {\n link = stack.value;\n stack = stack.prev;\n if (dirty) {\n const subs = sub.subs;\n if (update(sub)) {\n if (subs.nextSub !== undefined) {\n shallowPropagate(subs);\n }\n sub = link.sub;\n continue;\n }\n dirty = false;\n }\n else {\n sub.flags &= ~32;\n }\n sub = link.sub;\n const nextDep = link.nextDep;\n if (nextDep !== undefined) {\n link = nextDep;\n continue top;\n }\n }\n return dirty && !!sub.flags;\n } while (true);\n }\n function shallowPropagate(link) {\n do {\n const sub = link.sub;\n const flags = sub.flags;\n if ((flags & (32 | 16)) === 32) {\n sub.flags = flags | 16;\n if ((flags & (2 | 4)) === 2) {\n notify(sub);\n }\n }\n } while ((link = link.nextSub) !== undefined);\n }\n function isValidLink(checkLink, sub) {\n let link = sub.depsTail;\n while (link !== undefined) {\n if (link === checkLink) {\n return true;\n }\n link = link.prevDep;\n }\n return false;\n }\n}\n","import { createReactiveSystem } from './system.mjs';\nconst HasChildEffect = 64;\nlet cycle = 0;\nlet runDepth = 0;\nlet batchDepth = 0;\nlet notifyIndex = 0;\nlet queuedLength = 0;\nlet activeSub;\nconst queued = [];\nconst { link, unlink, propagate, checkDirty, shallowPropagate, } = createReactiveSystem({\n update(node) {\n if ('getter' in node) {\n return updateComputed(node);\n }\n if ('currentValue' in node) {\n return updateSignal(node);\n }\n node.flags = 1;\n return true;\n },\n notify(effect) {\n let insertIndex = queuedLength;\n let firstInsertedIndex = insertIndex;\n do {\n queued[insertIndex++] = effect;\n effect.flags &= ~2;\n effect = effect.subs?.sub;\n if (effect === undefined || !(effect.flags & 2)) {\n break;\n }\n } while (true);\n queuedLength = insertIndex;\n while (firstInsertedIndex < --insertIndex) {\n const left = queued[firstInsertedIndex];\n queued[firstInsertedIndex++] = queued[insertIndex];\n queued[insertIndex] = left;\n }\n },\n unwatched(node) {\n if ('getter' in node) {\n if (node.depsTail !== undefined) {\n node.flags = 1 | 16;\n disposeAllDepsInReverse(node);\n }\n }\n else if ('currentValue' in node) {\n }\n else if ('fn' in node) {\n effectOper.call(node);\n }\n else {\n effectScopeOper.call(node);\n }\n },\n});\nexport function getActiveSub() {\n return activeSub;\n}\nexport function setActiveSub(sub) {\n const prevSub = activeSub;\n activeSub = sub;\n return prevSub;\n}\nexport function getBatchDepth() {\n return batchDepth;\n}\nexport function startBatch() {\n ++batchDepth;\n}\nexport function endBatch() {\n if (!--batchDepth) {\n flush();\n }\n}\nexport function isSignal(fn) {\n return fn.name === 'bound ' + signalOper.name;\n}\nexport function isComputed(fn) {\n return fn.name === 'bound ' + computedOper.name;\n}\nexport function isEffect(fn) {\n return fn.name === 'bound ' + effectOper.name;\n}\nexport function isEffectScope(fn) {\n return fn.name === 'bound ' + effectScopeOper.name;\n}\nexport function signal(initialValue) {\n return signalOper.bind({\n currentValue: initialValue,\n pendingValue: initialValue,\n subs: undefined,\n subsTail: undefined,\n flags: 1,\n });\n}\nexport function computed(getter) {\n return computedOper.bind({\n value: undefined,\n subs: undefined,\n subsTail: undefined,\n deps: undefined,\n depsTail: undefined,\n flags: 0,\n getter: getter,\n });\n}\nexport function effect(fn) {\n const e = {\n fn,\n cleanup: undefined,\n subs: undefined,\n subsTail: undefined,\n deps: undefined,\n depsTail: undefined,\n flags: 2 | 4,\n };\n const prevSub = setActiveSub(e);\n if (prevSub !== undefined) {\n link(e, prevSub, 0);\n prevSub.flags |= HasChildEffect;\n }\n try {\n ++runDepth;\n e.cleanup = e.fn();\n }\n finally {\n --runDepth;\n activeSub = prevSub;\n e.flags &= ~4;\n }\n return effectOper.bind(e);\n}\nexport function effectScope(fn) {\n const e = {\n deps: undefined,\n depsTail: undefined,\n subs: undefined,\n subsTail: undefined,\n flags: 1,\n };\n const prevSub = setActiveSub(e);\n if (prevSub !== undefined) {\n link(e, prevSub, 0);\n prevSub.flags |= HasChildEffect;\n }\n try {\n fn();\n }\n finally {\n activeSub = prevSub;\n }\n return effectScopeOper.bind(e);\n}\nexport function trigger(fn) {\n const sub = {\n deps: undefined,\n depsTail: undefined,\n flags: 2,\n };\n const prevSub = setActiveSub(sub);\n try {\n fn();\n }\n finally {\n activeSub = prevSub;\n sub.flags = 0;\n let link = sub.deps;\n while (link !== undefined) {\n const dep = link.dep;\n link = unlink(link, sub);\n const subs = dep.subs;\n if (subs !== undefined) {\n propagate(subs, !!runDepth);\n shallowPropagate(subs);\n }\n }\n if (!batchDepth) {\n flush();\n }\n }\n}\nfunction updateComputed(c) {\n if (c.flags & HasChildEffect) {\n let link = c.depsTail;\n while (link !== undefined) {\n const prev = link.prevDep;\n const dep = link.dep;\n if (!('getter' in dep) && !('currentValue' in dep)) {\n unlink(link, c);\n }\n link = prev;\n }\n }\n c.depsTail = undefined;\n c.flags = 1 | 4;\n const prevSub = setActiveSub(c);\n try {\n ++cycle;\n const oldValue = c.value;\n return oldValue !== (c.value = c.getter(oldValue));\n }\n finally {\n activeSub = prevSub;\n c.flags &= ~4;\n purgeDeps(c);\n }\n}\nfunction updateSignal(s) {\n s.flags = 1;\n return s.currentValue !== (s.currentValue = s.pendingValue);\n}\nfunction run(e) {\n const flags = e.flags;\n if (flags & 16\n || (flags & 32\n && checkDirty(e.deps, e))) {\n if (flags & HasChildEffect) {\n let link = e.depsTail;\n while (link !== undefined) {\n const prev = link.prevDep;\n const dep = link.dep;\n if (!('getter' in dep) && !('currentValue' in dep)) {\n unlink(link, e);\n }\n link = prev;\n }\n }\n if (e.cleanup) {\n runCleanup(e);\n if (!e.flags) {\n return;\n }\n }\n e.depsTail = undefined;\n e.flags = 2 | 4;\n const prevSub = setActiveSub(e);\n try {\n ++cycle;\n ++runDepth;\n e.cleanup = e.fn();\n }\n finally {\n --runDepth;\n activeSub = prevSub;\n e.flags &= ~4;\n purgeDeps(e);\n }\n }\n else if (e.deps !== undefined) {\n e.flags = 2 | (flags & HasChildEffect);\n }\n}\nfunction flush() {\n try {\n while (notifyIndex < queuedLength) {\n const effect = queued[notifyIndex];\n queued[notifyIndex++] = undefined;\n run(effect);\n }\n }\n finally {\n while (notifyIndex < queuedLength) {\n const effect = queued[notifyIndex];\n queued[notifyIndex++] = undefined;\n effect.flags |= 2 | 8;\n }\n notifyIndex = 0;\n queuedLength = 0;\n }\n}\nfunction computedOper() {\n const flags = this.flags;\n if (flags & 16\n || (flags & 32\n && (checkDirty(this.deps, this)\n || (this.flags = flags & ~32, false)))) {\n if (updateComputed(this)) {\n const subs = this.subs;\n if (subs !== undefined) {\n shallowPropagate(subs);\n }\n }\n }\n else if (!flags) {\n this.flags = 1 | 4;\n const prevSub = setActiveSub(this);\n try {\n this.value = this.getter();\n }\n finally {\n activeSub = prevSub;\n this.flags &= ~4;\n }\n }\n const sub = activeSub;\n if (sub !== undefined) {\n link(this, sub, cycle);\n }\n return this.value;\n}\nfunction signalOper(...value) {\n if (value.length) {\n if (this.pendingValue !== (this.pendingValue = value[0])) {\n this.flags = 1 | 16;\n const subs = this.subs;\n if (subs !== undefined) {\n propagate(subs, !!runDepth);\n if (!batchDepth) {\n flush();\n }\n }\n }\n }\n else {\n if (this.flags & 16) {\n if (updateSignal(this)) {\n const subs = this.subs;\n if (subs !== undefined) {\n shallowPropagate(subs);\n }\n }\n }\n const sub = activeSub;\n if (sub !== undefined) {\n link(this, sub, cycle);\n }\n return this.currentValue;\n }\n}\nfunction runCleanup(e) {\n const cleanup = e.cleanup;\n e.cleanup = undefined;\n const prevSub = activeSub;\n activeSub = undefined;\n try {\n cleanup();\n }\n finally {\n activeSub = prevSub;\n }\n}\nfunction effectOper() {\n effectScopeOper.call(this);\n if (this.cleanup) {\n runCleanup(this);\n }\n}\nfunction effectScopeOper() {\n this.flags = 0;\n disposeAllDepsInReverse(this);\n const sub = this.subs;\n if (sub !== undefined) {\n unlink(sub);\n }\n}\nfunction disposeAllDepsInReverse(sub) {\n let link = sub.depsTail;\n while (link !== undefined) {\n const prev = link.prevDep;\n unlink(link, sub);\n link = prev;\n }\n}\nfunction purgeDeps(sub) {\n const depsTail = sub.depsTail;\n let dep = depsTail !== undefined ? depsTail.nextDep : sub.deps;\n while (dep !== undefined) {\n dep = unlink(dep, sub);\n }\n}\n","const isObject = (value)=> {\n\treturn value !== null && typeof value === 'object'\n}\n\nconst isPlainObject = value=> value != null && typeof value === 'object' && !Array.isArray(value)\n\nconst flattenChildren = children=> children.flat(Infinity)\n\nconst isEventProp = key=> (/^on[A-Za-z]/).test(key)\n\nconst normalizeTextNodeValue = (value)=> {\n\tif (value == null){\n\t\treturn ''\n\t}\n\n\treturn String(value)\n}\n\nconst toClassTokens = (value)=> {\n\tif (typeof value !== 'string'){\n\t\treturn new Set()\n\t}\n\n\treturn new Set(value\n\t\t.split(/\\s+/)\n\t\t.filter(Boolean))\n}\n\nconst toClassMap = (value)=> {\n\t// null\n\tif(!value){\n\t\treturn new Map()\n\t}\n\t// string\n\tconst tokens = toClassTokens(value)\n\tconst map = new Map()\n\ttokens.forEach((token)=> {\n\t\tmap.set(token, true)\n\t})\n\treturn map\n}\n\nexport {\n\tisObject,\n\tisPlainObject,\n\tflattenChildren,\n\tisEventProp,\n\tnormalizeTextNodeValue,\n\ttoClassTokens,\n\ttoClassMap,\n}\n","/**\n * reactivity.js — Reactive system for the Plastic framework.\n *\n * Built on top of the `alien-signals` library, which provides fine-grained\n * signal primitives (`signal`, `computed`, `effect`) suited for primitive values.\n * This module extends that foundation with deep object reactivity.\n *\n * ## Core concepts\n *\n * ### Signals (`createSignal`)\n * A thin public wrapper around `alien-signals`'s `signal()`. Calling\n * `createSignal(x)` on an already-signal value is a no-op — the original\n * signal is returned unchanged.\n *\n * ### Reactive trees (`tree` / `createTree`)\n * `tree(obj)` wraps a plain object (or array) in an ES Proxy that makes every\n * property access and mutation reactive. It is conceptually equivalent to\n * Vue 3's `reactive()`.\n *\n * Key implementation details:\n * - **Per-property signals**: Each accessed property is lazily backed by an\n * `alien-signals` signal stored in a `signals` map (keyed by property name\n * or symbol). Reads subscribe the current effect; writes trigger updates.\n * - **Proxy cache**: A `WeakMap` (proxyCache) ensures that wrapping the same\n * raw object multiple times always returns the same proxy, preventing\n * duplicate subscriptions.\n * - **`RAW` / `IS_TREE` sentinels**: Two well-known symbols allow consumers to\n * unwrap to the original object (`toRaw`) and to test whether a value is\n * already a reactive tree (`isTree`), avoiding double-wrapping.\n * - **Iterate tracking**: A dedicated `ITERATE_KEY` signal is used to track\n * structural changes (property addition/deletion, array length changes).\n * Operations like `for…in`, `Object.keys`, and spread trigger this signal so\n * effects that iterate over an object re-run when its shape changes.\n * - **Non-trackable keys**: Built-in symbols (`Symbol.iterator`, etc.) and a\n * small set of Vue-compatibility keys are excluded from tracking to avoid\n * spurious subscriptions.\n * - **Array instrumentations**: Mutating array methods (`push`, `pop`, `shift`,\n * `unshift`, `splice`) temporarily pause dependency tracking while executing\n * to prevent the read of `length` inside those methods from creating\n * unintended subscriptions. Search methods (`includes`, `indexOf`,\n * `lastIndexOf`) explicitly track all indices and also fall back to comparing\n * raw (unwrapped) values, supporting reactive proxies as search arguments.\n * - **Nested reactivity**: When `get` returns an object value it is recursively\n * wrapped with `tree()`, providing deep reactivity on demand.\n * - **Raw value storage**: `set` always unwraps values through `toRaw` before\n * writing to the underlying target, keeping raw objects free of proxy\n * references and preventing double-wrapping in the signal store.\n *\n * ### Tracking pause/resume\n * `pauseTracking` / `resumeTracking` manipulate `alien-signals`'s active\n * subscriber stack via `getActiveSub` / `setActiveSub`, temporarily\n * suspending dependency collection for mutation-only code paths.\n *\n * ## Public API\n * Re-exports from `alien-signals`: `computed`, `effect`, `isSignal`, `isComputed`\n * Added by this module: `tree`, `createSignal`, `createTree`, `isTree`, `toRaw`\n */\n\nimport {\n\tcomputed, endBatch, getActiveSub, effect as originalEffect, isComputed as originalIsComputed, isSignal as originalIsSignal, setActiveSub, signal, startBatch,\n} from 'alien-signals'\n\n// alien-signals 3.x treats the effect callback's return value as a cleanup\n// function. Most callers return non-function values (e.g. `log.push(x)` →\n// number), which crash on re-run. Discard non-function returns.\nconst effect = fn=> originalEffect(()=> {\n\tconst result = fn()\n\treturn typeof result === 'function' ? result : undefined\n})\nimport { isObject } from './utils.js'\n\nconst RAW = Symbol('raw')\nconst IS_TREE = Symbol('isTree')\nconst ITERATE_KEY = Symbol('iterate')\nconst proxyCache = new WeakMap()\nconst nonTrackableKeys = new Set([\n\t'__proto__',\n\t'__v_isRef',\n\t'__isVue',\n])\nconst builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol)\n\t.map(key=> Symbol[key])\n\t.filter(symbol=> typeof symbol === 'symbol'))\n\nconst isSignal = (value)=> {\n\tif (typeof value === 'function' && originalIsSignal(value)){\n\t\treturn true\n\t}\n\treturn false\n}\n\nconst isComputed = (value)=> {\n\tif (typeof value === 'function' && originalIsComputed(value)){\n\t\treturn true\n\t}\n\treturn false\n}\n\nconst isTrackableKey = (key)=> {\n\tif (typeof key === 'symbol'){\n\t\treturn !builtInSymbols.has(key)\n\t}\n\tif (typeof key !== 'string'){\n\t\treturn false\n\t}\n\treturn !nonTrackableKeys.has(key)\n}\n\nconst isIntegerKey = (key)=> {\n\tif (typeof key === 'number'){\n\t\treturn Number.isInteger(key) && key >= 0\n\t}\n\tif (typeof key !== 'string' || key === 'NaN' || key[0] === '-'){\n\t\treturn false\n\t}\n\tconst parsed = Number(key)\n\treturn Number.isInteger(parsed) && parsed >= 0 && `${parsed}` === key\n}\n\nconst tree = (obj)=> {\n\tif (!isObject(obj)){\n\t\treturn obj\n\t}\n\tif (obj[RAW]){\n\t\treturn obj\n\t}\n\tif (proxyCache.has(obj)){\n\t\treturn proxyCache.get(obj)\n\t}\n\n\tconst signals = Object.create(null)\n\tconst hasSignal = key=> Object.hasOwn(signals, key)\n\tconst isArrayTarget = Array.isArray(obj)\n\tlet iterateVersion = 0\n\tconst trackKey = (target, key, receiver)=> {\n\t\tif (!isTrackableKey(key)){\n\t\t\treturn Reflect.get(target, key, receiver)\n\t\t}\n\t\tconst currentValue = Reflect.get(target, key, receiver)\n\t\tif (!hasSignal(key)){\n\t\t\tsignals[key] = signal(currentValue)\n\t\t}\n\t\treturn signals[key]()\n\t}\n\tconst triggerKey = (key, value)=> {\n\t\tif (!isTrackableKey(key)){\n\t\t\tif (hasSignal(key)){\n\t\t\t\tsignals[key](value)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t\tif (!hasSignal(key)){\n\t\t\tsignals[key] = signal(value)\n\t\t\treturn\n\t\t}\n\t\tsignals[key](value)\n\t}\n\tconst prevSubStack = []\n\tconst pauseTracking = ()=> {\n\t\tprevSubStack.push(getActiveSub())\n\t\tsetActiveSub(undefined)\n\t}\n\tconst resumeTracking = ()=> {\n\t\tsetActiveSub(prevSubStack.pop())\n\t}\n\tconst trackIterate = ()=> {\n\t\tif (!hasSignal(ITERATE_KEY)){\n\t\t\tsignals[ITERATE_KEY] = signal(iterateVersion)\n\t\t}\n\t\tsignals[ITERATE_KEY]()\n\t}\n\tconst triggerIterate = ()=> {\n\t\titerateVersion += 1\n\t\tif (!hasSignal(ITERATE_KEY)){\n\t\t\tsignals[ITERATE_KEY] = signal(iterateVersion)\n\t\t\treturn\n\t\t}\n\t\tsignals[ITERATE_KEY](iterateVersion)\n\t}\n\n\tlet arrayInstrumentations = null\n\tif(isArrayTarget){\n\t\tarrayInstrumentations = {\n\t\t\tincludes(...args){\n\t\t\t\ttrackKey(obj, 'length')\n\t\t\t\tfor (let i = 0; i < obj.length; i++){\n\t\t\t\t\ttrackKey(obj, `${i}`)\n\t\t\t\t}\n\t\t\t\tconst rawResult = Array.prototype.includes.apply(obj, args)\n\t\t\t\treturn rawResult || Array.prototype.includes.apply(obj, args.map(toRaw))\n\t\t\t},\n\t\t\tindexOf(...args){\n\t\t\t\ttrackKey(obj, 'length')\n\t\t\t\tfor (let i = 0; i < obj.length; i++){\n\t\t\t\t\ttrackKey(obj, `${i}`)\n\t\t\t\t}\n\t\t\t\tconst rawResult = Array.prototype.indexOf.apply(obj, args)\n\t\t\t\tif (rawResult !== -1){\n\t\t\t\t\treturn rawResult\n\t\t\t\t}\n\t\t\t\treturn Array.prototype.indexOf.apply(obj, args.map(toRaw))\n\t\t\t},\n\t\t\tlastIndexOf(...args){\n\t\t\t\ttrackKey(obj, 'length')\n\t\t\t\tfor (let i = 0; i < obj.length; i++){\n\t\t\t\t\ttrackKey(obj, `${i}`)\n\t\t\t\t}\n\t\t\t\tconst rawResult = Array.prototype.lastIndexOf.apply(obj, args)\n\t\t\t\tif (rawResult !== -1){\n\t\t\t\t\treturn rawResult\n\t\t\t\t}\n\t\t\t\treturn Array.prototype.lastIndexOf.apply(obj, args.map(toRaw))\n\t\t\t},\n\t\t\tpush(...args){\n\t\t\t\tpauseTracking()\n\t\t\t\ttry {\n\t\t\t\t\treturn Array.prototype.push.apply(proxy, args.map(toRaw))\n\t\t\t\t} finally {\n\t\t\t\t\tresumeTracking()\n\t\t\t\t}\n\t\t\t},\n\t\t\tpop(...args){\n\t\t\t\tpauseTracking()\n\t\t\t\ttry {\n\t\t\t\t\treturn Array.prototype.pop.apply(proxy, args)\n\t\t\t\t} finally {\n\t\t\t\t\tresumeTracking()\n\t\t\t\t}\n\t\t\t},\n\t\t\tshift(...args){\n\t\t\t\tpauseTracking()\n\t\t\t\ttry {\n\t\t\t\t\treturn Array.prototype.shift.apply(proxy, args)\n\t\t\t\t} finally {\n\t\t\t\t\tresumeTracking()\n\t\t\t\t}\n\t\t\t},\n\t\t\tunshift(...args){\n\t\t\t\tpauseTracking()\n\t\t\t\ttry {\n\t\t\t\t\treturn Array.prototype.unshift.apply(proxy, args.map(toRaw))\n\t\t\t\t} finally {\n\t\t\t\t\tresumeTracking()\n\t\t\t\t}\n\t\t\t},\n\t\t\tsplice(...args){\n\t\t\t\tpauseTracking()\n\t\t\t\ttry {\n\t\t\t\t\tconst normalized = args.map((arg, index)=> index < 2 ? arg : toRaw(arg))\n\t\t\t\t\treturn Array.prototype.splice.apply(proxy, normalized)\n\t\t\t\t} finally {\n\t\t\t\t\tresumeTracking()\n\t\t\t\t}\n\t\t\t},\n\t\t}\n\t}\n\n\tconst proxy = new Proxy(obj, {\n\t\tget(target, key, receiver){\n\t\t\tif (key === RAW){\n\t\t\t\treturn target\n\t\t\t}\n\t\t\tif (key === IS_TREE){\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (isArrayTarget && typeof key === 'string'){\n\t\t\t\tif (arrayInstrumentations && Object.hasOwn(arrayInstrumentations, key)){\n\t\t\t\t\treturn arrayInstrumentations[key]\n\t\t\t\t}\n\t\t\t\tif (typeof target[key] === 'function'){\n\t\t\t\t\treturn Reflect.get(target, key, receiver)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!isTrackableKey(key)){\n\t\t\t\treturn Reflect.get(target, key, receiver)\n\t\t\t}\n\t\t\tconst value = trackKey(target, key, receiver)\n\t\t\tif (isObject(value)){\n\t\t\t\treturn tree(value)\n\t\t\t}\n\t\t\treturn value\n\t\t},\n\t\tset(target, key, value, receiver){\n\t\t\tconst oldLength = isArrayTarget ? target.length : 0\n\t\t\tconst isLengthKey = isArrayTarget && key === 'length'\n\t\t\tconst isIndexKey = isArrayTarget && isIntegerKey(key)\n\t\t\tconst hadKey = Object.hasOwn(target, key)\n\t\t\tconst rawValue = toRaw(value)\n\t\t\tconst setOk = Reflect.set(target, key, rawValue, receiver)\n\t\t\tif (!setOk){\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst nextValue = Reflect.get(target, key, receiver)\n\t\t\tif (!isTrackableKey(key)){\n\t\t\t\ttriggerKey(key, nextValue)\n\t\t\t\tif (!hadKey){\n\t\t\t\t\ttriggerIterate()\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t}\n\t\t\ttriggerKey(key, nextValue)\n\t\t\tif (isLengthKey){\n\t\t\t\tconst newLength = target.length\n\t\t\t\tif (newLength < oldLength){\n\t\t\t\t\tfor (let i = newLength; i < oldLength; i++){\n\t\t\t\t\t\ttriggerKey(String(i), undefined)\n\t\t\t\t\t}\n\t\t\t\t\ttriggerIterate()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isIndexKey && Number(key) >= oldLength){\n\t\t\t\ttriggerKey('length', target.length)\n\t\t\t}\n\t\t\tif (!hadKey){\n\t\t\t\ttriggerIterate()\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\t\thas(target, key){\n\t\t\tif (key === IS_TREE){ return true }\n\t\t\tif (key === RAW){ return key in target }\n\t\t\tif (!isTrackableKey(key)){\n\t\t\t\treturn key in target\n\t\t\t}\n\t\t\ttrackKey(target, key)\n\t\t\treturn key in target\n\t\t},\n\t\townKeys(target){\n\t\t\ttrackIterate()\n\t\t\treturn Reflect.ownKeys(target)\n\t\t},\n\t\tdeleteProperty(target, key){\n\t\t\tconst hadKey = Object.hasOwn(target, key)\n\t\t\tconst deleted = Reflect.deleteProperty(target, key)\n\t\t\tif (deleted && hadKey){\n\t\t\t\tif (hasSignal(key)){\n\t\t\t\t\tsignals[key](undefined)\n\t\t\t\t}\n\t\t\t\ttriggerIterate()\n\t\t\t}\n\t\t\treturn deleted\n\t\t},\n\t})\n\n\tproxyCache.set(obj, proxy)\n\treturn proxy\n}\n\n// Component bodies must not subscribe to the reactive context above them. If\n// the materializer happens to run inside an outer effect (e.g. a router\n// outlet), every signal read by the component would re-trigger that outer\n// effect — re-mounting the whole subtree on every unrelated state change.\n// Internal binding effects/computations create their own active subscribers,\n// so suppressing the outer one here only affects bare signal reads in the\n// component body.\n// Fast path: when no subscriber is currently active (the typical case during\n// initial mount from `renderApp`, outside any enclosing effect), the\n// swap-to-undefined and restore are both no-ops. Skip the try/finally and the\n// swap entirely — this is invoked once per component, so eliminating the\n// instrumentation here removes measurable per-component overhead during mount.\n//\n// Slow path: a single `setActiveSub(undefined)` swap returns the previous\n// subscriber in one call, saving the separate `getActiveSub()` read.\nconst runUntracked = (fn)=> {\n\tif (getActiveSub() === undefined){\n\t\treturn fn()\n\t}\n\tconst prevSub = setActiveSub(undefined)\n\ttry {\n\t\treturn fn()\n\t} finally {\n\t\tsetActiveSub(prevSub)\n\t}\n}\n\nconst createSignal = (value)=> {\n\tif (isSignal(value)){\n\t\treturn value\n\t}\n\n\tif (isComputed(value)){\n\t\tconsole.warn('[reactivity] createSignal: wrapping a computed in a signal is redundant, use the computed directly.')\n\t}\n\n\treturn signal(value)\n}\n\nconst createTree = (value)=> {\n\tif (!isObject(value)){\n\t\treturn value\n\t}\n\n\tif (isTree(value)){\n\t\treturn value\n\t}\n\n\treturn tree(value)\n}\n\nconst isTree = value=> isObject(value) && value[IS_TREE] === true\n\nconst toRaw = (value)=> {\n\tconst raw = isObject(value) && value[RAW]\n\treturn raw ? toRaw(raw) : value\n}\n\nconst batch = (fn)=> {\n\tstartBatch()\n\ttry {\n\t\treturn fn()\n\t} finally {\n\t\tendBatch()\n\t}\n}\n\nexport {\n\tbatch, effect, runUntracked, isComputed, isSignal, isTree, toRaw, createSignal, createTree, computed as createComputed,\n}\n","// Shared module-level state for the currently running computation.\n// Extracted into its own module so the two consumers can share the same\n// reference without forming a circular import between them:\n// - the computation runner writes it before/after executing a tracked fn\n// - the signal/state layer reads it when a signal is invoked (e.g.\n// `signal()`) to register the running computation as a dependency\nlet currentComputation = null\n\nconst getCurrentComputation = ()=> currentComputation\nconst setCurrentComputation = (value)=> {\n\tcurrentComputation = value\n}\n\nexport {\n\tgetCurrentComputation,\n\tsetCurrentComputation,\n}\n","import { createSignal, runUntracked } from './reactivity.js'\nimport { getCurrentComputation, setCurrentComputation } from './computation-context.js'\n\nconst createControlFlow = ({\n\tcreateOwner,\n\trunOwnerMounts,\n\trunWithOwner,\n\tdisposeOwner,\n\tcreateBindingEffect,\n\trenderInOwner,\n\tgetCurrentOwner,\n\tregisterCleanup,\n\tappendChild,\n\tflushPendingDescriptors,\n})=> {\n\t// Reactively replaces DOM content after a comment anchor.\n\t// selectBranch() runs tracked - it should read condition signals and return\n\t// a *branch factory* (or null) identifying which branch to render. The DOM\n\t// is only torn down and rebuilt when that factory identity changes, so signal\n\t// churn that doesn't flip the branch is a no-op (matches Solid's <Show>).\n\tconst NO_BRANCH = Symbol('no-branch')\n\n\tconst mountDynamic = (anchor, selectBranch)=> {\n\t\tlet prevNodes = []\n\t\tlet prevOwner = null\n\t\tlet prevBranch = NO_BRANCH\n\t\t// Capture the Either component's owner at call time so branch owners are always\n\t\t// parented correctly even when the effect re-runs outside component context.\n\t\tconst hostOwner = getCurrentOwner()\n\n\t\tconst update = ()=> {\n\t\t\tconst branch = selectBranch()\n\t\t\tif (branch === prevBranch){\n\t\t\t\treturn\n\t\t\t}\n\t\t\tprevBranch = branch\n\n\t\t\tif (prevOwner){\n\t\t\t\tdisposeOwner(prevOwner)\n\t\t\t\tprevOwner = null\n\t\t\t}\n\t\t\tprevNodes.forEach(n=> n.remove())\n\t\t\tprevNodes = []\n\n\t\t\tconst owner = createOwner(hostOwner)\n\t\t\tconst prevComp = getCurrentComputation()\n\t\t\tsetCurrentComputation(null)\n\t\t\t// Branch invocation runs untracked: the selection above already\n\t\t\t// subscribed to the discriminator, and the branch's own bindings\n\t\t\t// will set up their effects under `owner`. Letting them auto-link\n\t\t\t// into the outer binding effect would re-trigger this update on\n\t\t\t// every internal signal change and rebuild the DOM unnecessarily.\n\t\t\tconst result = runUntracked(()=> runWithOwner(owner, ()=> typeof branch === 'function' ? branch() : null))\n\t\t\tconst node = renderInOwner(owner, result ?? null)\n\t\t\tsetCurrentComputation(prevComp)\n\n\t\t\t// When the branch returns an array (e.g. items.map(...) or spread\n\t\t\t// children), node2Element defers component descriptors onto the\n\t\t\t// DocumentFragment without flushing them. Flush here with the\n\t\t\t// branch owner so deferred children materialize in the DOM instead\n\t\t\t// of remaining as silent placeholder comments.\n\t\t\tif (node instanceof DocumentFragment && flushPendingDescriptors){\n\t\t\t\trunWithOwner(owner, ()=> flushPendingDescriptors(node))\n\t\t\t}\n\n\t\t\t// Collect child refs before insertion: DocumentFragment drains on append.\n\t\t\tif (node instanceof DocumentFragment){\n\t\t\t\tprevNodes = [...node.childNodes]\n\t\t\t} else {\n\t\t\t\tprevNodes = [node]\n\t\t\t}\n\n\t\t\tanchor.after(node)\n\t\t\tprevOwner = owner\n\n\t\t\t// For reactive updates (anchor already in live DOM), trigger mount hooks now.\n\t\t\t// For the initial render, renderApp will call runOwnerMounts on the full tree.\n\t\t\tif (anchor.isConnected){\n\t\t\t\trunOwnerMounts(owner)\n\t\t\t}\n\t\t}\n\n\t\tconst stop = createBindingEffect(update)\n\n\t\treturn ()=> {\n\t\t\tif (typeof stop === 'function'){\n\t\t\t\tstop()\n\t\t\t}\n\t\t\tif (prevOwner){\n\t\t\t\tdisposeOwner(prevOwner)\n\t\t\t\tprevOwner = null\n\t\t\t}\n\t\t\tprevNodes.forEach(n=> n.remove())\n\t\t\tprevNodes = []\n\t\t}\n\t}\n\n\t// <True> and <False> are transparent slot markers - they pass children through.\n\t// The Babel plugin wraps them in lazy arrow functions before Either ever sees them,\n\t// so the inactive branch is never evaluated until needed.\n\tconst True = ({ children })=> children\n\tconst False = ({ children })=> children\n\tconst Case = ({ children })=> children\n\tconst Default = ({ children })=> children\n\n\t// <Either condition={...}>\n\t// <True>...</True>\n\t// <False>...</False>\n\t// </Either>\n\t//\n\t// The Babel plugin transforms this into:\n\t// <Either condition={...} trueBranch={() => <True>...</True>} falseBranch={() => <False>...</False>} />\n\t// so branches are only rendered when active.\n\tconst Either = ({\n\t\tcondition, trueBranch, falseBranch,\n\t})=> {\n\t\tconst anchor = document.createComment('if')\n\t\t// Return a fragment so the anchor and initial branch content land in the\n\t\t// parent as siblings. anchor.after() keeps working once in the live DOM.\n\t\tconst fragment = document.createDocumentFragment()\n\t\tfragment.appendChild(anchor)\n\t\tconst activeTrue = trueBranch\n\t\tconst activeFalse = falseBranch\n\n\t\tmountDynamic(anchor, ()=> {\n\t\t\tconst cond = typeof condition === 'function' ? condition() : condition\n\t\t\treturn cond ? activeTrue : activeFalse\n\t\t})\n\n\t\treturn fragment\n\t}\n\n\t// <Match value={...}>\n\t// <Case when={...}>...</Case>\n\t// <Default>...</Default>\n\t// </Match>\n\t//\n\t// The Babel plugin rewrites Case/Default children into lazy factory props:\n\t// cases=[{ when, branch: () => <Case>...</Case> }, ...]\n\t// defaultBranch={() => <Default>...</Default>}\n\tconst Match = ({\n\t\tvalue,\n\t\tcases = [],\n\t\tdefaultBranch,\n\t})=> {\n\t\tconst anchor = document.createComment('match')\n\t\tconst fragment = document.createDocumentFragment()\n\t\tfragment.appendChild(anchor)\n\n\t\tconst resolve = (source)=> {\n\t\t\treturn typeof source === 'function' ? source() : source\n\t\t}\n\n\t\tmountDynamic(anchor, ()=> {\n\t\t\t// cases may be a function so callers (e.g. router) can produce fresh\n\t\t\t// branch closures on every selection pass, ensuring branch identity\n\t\t\t// changes when the underlying match data changes even if the\n\t\t\t// discriminator value happens to be equal.\n\t\t\tconst resolvedCases = typeof cases === 'function' ? cases() : cases\n\t\t\tconst activeCases = Array.isArray(resolvedCases) ? resolvedCases : []\n\t\t\tconst valueToMatch = resolve(value)\n\n\t\t\tfor (const slot of activeCases){\n\t\t\t\tif (!slot || typeof slot !== 'object'){\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tlet matched = false\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(slot, 'when')){\n\t\t\t\t\tmatched = Object.is(valueToMatch, resolve(slot.when))\n\t\t\t\t}\n\n\t\t\t\tif (!matched){\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\treturn typeof slot.branch === 'function' ? slot.branch : null\n\t\t\t}\n\n\t\t\treturn typeof defaultBranch === 'function' ? defaultBranch : null\n\t\t})\n\n\t\treturn fragment\n\t}\n\n\t// <Loop each={items}>{(item, index) => ...}</Loop>\n\t//\n\t// Rows are tracked by identity (object reference / primitive value).\n\tconst Loop = ({\n\t\teach,\n\t\tchildren,\n\t})=> {\n\t\tconst anchor = document.createComment('for')\n\t\tconst fragment = document.createDocumentFragment()\n\t\tfragment.appendChild(anchor)\n\n\t\tconst hostOwner = getCurrentOwner()\n\t\tlet rows = []\n\n\t\tconst resolveList = ()=> {\n\t\t\tconst list = typeof each === 'function' ? each() : each\n\t\t\treturn Array.isArray(list) ? list : []\n\t\t}\n\n\t\tconst renderRow = (item, indexValue)=> {\n\t\t\tconst owner = createOwner(hostOwner)\n\t\t\tconst indexSignal = createSignal(indexValue)\n\t\t\tconst prevComp = getCurrentComputation()\n\t\t\tsetCurrentComputation(null)\n\t\t\t// runUntracked mirrors materializeComponentDescriptor: the row's binding\n\t\t\t// effects belong to its own owner, so they must not auto-link as deps of\n\t\t\t// the surrounding Loop binding effect. Otherwise Loop's purgeDeps on re-run\n\t\t\t// would unwatch them and sever their signal subscriptions.\n\t\t\tconst result = runUntracked(()=> runWithOwner(owner, ()=> {\n\t\t\t\tif (typeof children !== 'function'){\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\treturn children(item, indexSignal)\n\t\t\t}))\n\t\t\tconst node = runUntracked(()=> renderInOwner(owner, result))\n\t\t\tsetCurrentComputation(prevComp)\n\t\t\tconst nodes = node instanceof DocumentFragment ? [...node.childNodes] : [node]\n\n\t\t\treturn {\n\t\t\t\towner,\n\t\t\t\tindexSignal,\n\t\t\t\tnodes,\n\t\t\t}\n\t\t}\n\n\t\tconst mountRows = (nextRows)=> {\n\t\t\tconst nodeFragment = document.createDocumentFragment()\n\t\t\tnextRows.forEach((row)=> {\n\t\t\t\trow.nodes.forEach((node)=> {\n\t\t\t\t\tnodeFragment.appendChild(node)\n\t\t\t\t})\n\t\t\t})\n\t\t\tanchor.before(nodeFragment)\n\t\t}\n\n\t\tconst reconcileRows = (nextItems)=> {\n\t\t\tconst prevRows = rows\n\t\t\tconst nextRows = new Array(nextItems.length)\n\t\t\tconst createdRows = []\n\t\t\tconst reusedPrevIndices = new Set()\n\n\t\t\t// Build lookup: identity -> [prevIndex, ...] (buckets handle duplicates).\n\t\t\tconst prevRowsByIdentity = new Map()\n\t\t\tprevRows.forEach((row, prevIndex)=> {\n\t\t\t\tconst bucket = prevRowsByIdentity.get(row.identity)\n\t\t\t\tif (bucket){\n\t\t\t\t\tbucket.push(prevIndex)\n\t\t\t\t} else {\n\t\t\t\t\tprevRowsByIdentity.set(row.identity, [prevIndex])\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t// Match existing rows by identity.\n\t\t\tnextItems.forEach((item, nextIndex)=> {\n\t\t\t\tconst bucket = prevRowsByIdentity.get(item)\n\t\t\t\tif (!bucket || bucket.length === 0){\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tconst prevIndex = bucket.shift()\n\t\t\t\tnextRows[nextIndex] = prevRows[prevIndex]\n\t\t\t\treusedPrevIndices.add(prevIndex)\n\t\t\t})\n\n\t\t\t// Create missing rows.\n\t\t\tfor (let nextIndex = 0; nextIndex < nextRows.length; nextIndex++){\n\t\t\t\tconst row = nextRows[nextIndex]\n\t\t\t\tif (row){\n\t\t\t\t\trow.indexSignal(nextIndex)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tconst created = renderRow(nextItems[nextIndex], nextIndex)\n\t\t\t\tcreated.identity = nextItems[nextIndex]\n\t\t\t\tnextRows[nextIndex] = created\n\t\t\t\tcreatedRows.push(created)\n\t\t\t}\n\n\t\t\t// Dispose rows that were not reused.\n\t\t\tprevRows.forEach((row, prevIndex)=> {\n\t\t\t\tif (reusedPrevIndices.has(prevIndex)){\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tdisposeOwner(row.owner)\n\t\t\t\trow.nodes.forEach(node=> node.remove())\n\t\t\t})\n\n\t\t\trows = nextRows\n\t\t\tmountRows(rows)\n\n\t\t\tif (anchor.isConnected){\n\t\t\t\tcreatedRows.forEach((row)=> {\n\t\t\t\t\trunOwnerMounts(row.owner)\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tconst stop = createBindingEffect(()=> {\n\t\t\tconst nextItems = resolveList()\n\t\t\treconcileRows(nextItems)\n\t\t})\n\n\t\tregisterCleanup(()=> {\n\t\t\tif (typeof stop === 'function'){\n\t\t\t\tstop()\n\t\t\t}\n\n\t\t\trows.forEach((row)=> {\n\t\t\t\tdisposeOwner(row.owner)\n\t\t\t\trow.nodes.forEach(node=> node.remove())\n\t\t\t})\n\t\t\trows = []\n\t\t})\n\n\t\treturn fragment\n\t}\n\n\t// <Portal container={el}>...</Portal>\n\t//\n\t// Renders children into `container` (defaults to document.body) instead of\n\t// the component's position in the tree. A comment node is left as a placeholder\n\t// so the surrounding component tree is not disturbed.\n\t// All child owners, effects, and event listeners are disposed when the host\n\t// component unmounts via the registerCleanup call below.\n\tconst Portal = ({ container, children })=> {\n\t\tconst target = (typeof container === 'function' ? container() : container) ?? document.body\n\n\t\tconst hostOwner = getCurrentOwner()\n\t\tconst owner = createOwner(hostOwner)\n\n\t\tconst prevComp = getCurrentComputation()\n\t\tsetCurrentComputation(null)\n\t\tconst result = runWithOwner(owner, ()=> typeof children === 'function' ? children() : children)\n\t\tconst node = renderInOwner(owner, result ?? null)\n\t\tsetCurrentComputation(prevComp)\n\n\t\tconst childCountBefore = target.childNodes.length\n\n\t\tif (node instanceof DocumentFragment && appendChild){\n\t\t\tappendChild(target, node)\n\t\t} else {\n\t\t\ttarget.appendChild(node)\n\t\t}\n\n\t\tif (flushPendingDescriptors){\n\t\t\tflushPendingDescriptors(target)\n\t\t}\n\n\t\tconst portalNodes = [...target.childNodes].slice(childCountBefore)\n\n\t\tif (target.isConnected){\n\t\t\trunOwnerMounts(owner)\n\t\t}\n\n\t\tregisterCleanup(()=> {\n\t\t\tdisposeOwner(owner)\n\t\t\tportalNodes.forEach(n=> n.remove())\n\t\t})\n\n\t\treturn document.createComment('portal')\n\t}\n\n\treturn {\n\t\tmountDynamic,\n\t\tEither,\n\t\tTrue,\n\t\tFalse,\n\t\tMatch,\n\t\tCase,\n\t\tDefault,\n\t\tLoop,\n\t\tPortal,\n\t}\n}\n\nexport {\n\tcreateControlFlow,\n}\n","// Solid-style props proxy. Returns a Proxy that lazily resolves each key from\n// the supplied sources, so getter-defined properties remain reactive: the\n// outer consumer reads `proxy.foo` inside a binding effect, which invokes the\n// getter, which in turn subscribes to any signals it reads.\n//\n// Semantics:\n// - Sources are scanned in argument order. For most keys, the last source\n// that has the key wins (matches Solid).\n// - `class` / `className`: both aliases participate in one merged class\n// stream. Reads of either key see the same concatenated result.\n// - `style`: object values shallow-merge across sources; string values\n// concatenate with `; `; mixing prefers the latest resolved value.\n// - Thunk-valued `class`, `className`, and `style` remain lazy: reads of\n// those keys return a merged accessor thunk that resolves all sources at\n// call time, preserving runtime dependency tracking.\n// - `ref` and `onXxx` event handlers: last source wins (matches Solid).\n// - The proxy is read-only: writes throw.\n\nimport { isPlainObject } from './utils.js'\n\nconst CLASS_KEYS = ['class', 'className']\nconst STYLE_KEYS = ['style']\nconst MAX_MERGE_VALUE_RESOLVE_STEPS = 16\n\nconst normalizeClassValue = (value)=> {\n\tif (value == null || value === false || value === ''){\n\t\treturn undefined\n\t}\n\tif (typeof value !== 'string'){\n\t\treturn undefined\n\t}\n\treturn value\n}\n\nconst isClassKey = key=> key === 'class' || key === 'className'\n\nconst resolveThunkValue = (value)=> {\n\tlet resolved = value\n\tlet steps = 0\n\twhile (typeof resolved === 'function' && steps < MAX_MERGE_VALUE_RESOLVE_STEPS){\n\t\tresolved = resolved()\n\t\tsteps += 1\n\t}\n\n\treturn resolved\n}\n\n// Concatenate only string-valued class sources. If any source carries a\n// function or signal (a reactive accessor for the class string), it would not\n// be safe to coerce via String(...) — that would emit the function's source\n// code. Fall back to last-wins so the consumer's `resolveReactiveValue` can\n// unwrap it normally.\nconst mergeClassValues = (values)=> {\n\tconst hasNonString = values.some(value=> value != null && typeof value !== 'string' && value !== false)\n\tif (hasNonString){\n\t\treturn values[values.length - 1]\n\t}\n\tconst parts = values.map(normalizeClassValue).filter(Boolean)\n\treturn parts.length ? parts.join(' ') : undefined\n}\n\nconst mergeStyleValues = (values)=> {\n\tlet result\n\tfor (const value of values){\n\t\tif (value == null){\n\t\t\tcontinue\n\t\t}\n\t\tif (isPlainObject(result) && isPlainObject(value)){\n\t\t\tresult = { ...result, ...value }\n\t\t} else if (typeof result === 'string' && typeof value === 'string'){\n\t\t\tresult = `${result}; ${value}`\n\t\t} else {\n\t\t\tresult = value\n\t\t}\n\t}\n\treturn result\n}\n\n// Sources can be either plain objects or zero-arg functions (\"thunks\") that\n// the Babel plugin emits for dynamic spread sources like `{...api()}`. The\n// thunk is invoked on every access so signal reads inside `api()` are tracked\n// by whatever effect is currently consuming the proxy.\n// eslint-disable-next-line @stylistic/js/no-confusing-arrow\nconst resolveSource = source=> typeof source === 'function' ? source() : source\n\nconst collectPresentKeys = (source, keys)=> {\n\tconst matches = []\n\tconst seen = new Set()\n\tfor (const key of Reflect.ownKeys(source)){\n\t\tif (typeof key !== 'string' || !keys.includes(key) || seen.has(key)){\n\t\t\tcontinue\n\t\t}\n\t\tseen.add(key)\n\t\tmatches.push(key)\n\t}\n\n\tfor (const key of keys){\n\t\tif (seen.has(key) || !(key in source)){\n\t\t\tcontinue\n\t\t}\n\t\tmatches.push(key)\n\t}\n\n\treturn matches\n}\n\n// Collect each source's value for a key family in source order, invoking any\n// getter (which is where signal-tracking happens for reactive props).\nconst collectValues = (sources, keys)=> {\n\tconst values = []\n\tfor (const source of sources){\n\t\tconst resolved = resolveSource(source)\n\t\tif (resolved == null){\n\t\t\tcontinue\n\t\t}\n\t\tfor (const key of collectPresentKeys(resolved, keys)){\n\t\t\tvalues.push(resolved[key])\n\t\t}\n\t}\n\treturn values\n}\n\nconst getKeyFamily = (key)=> {\n\tif (isClassKey(key)){\n\t\treturn CLASS_KEYS\n\t}\n\tif (key === 'style'){\n\t\treturn STYLE_KEYS\n\t}\n\treturn [key]\n}\n\nconst resolveKey = (sources, key)=> {\n\tconst values = collectValues(sources, getKeyFamily(key))\n\tif (values.length === 0){\n\t\treturn undefined\n\t}\n\n\tif (key === 'class' || key === 'className'){\n\t\tif (values.some(value=> typeof value === 'function')){\n\t\t\t// Keep merged class values lazy so runtime consumers can resolve the\n\t\t\t// accessor inside their own tracking scope instead of subscribing here.\n\t\t\treturn ()=> mergeClassValues(values.map(resolveThunkValue))\n\t\t}\n\t\treturn mergeClassValues(values)\n\t}\n\n\tif (key === 'style'){\n\t\tif (values.some(value=> typeof value === 'function')){\n\t\t\t// Style follows the same rule as class: preserve thunk semantics so\n\t\t\t// updates track at the eventual DOM-binding read site.\n\t\t\treturn ()=> mergeStyleValues(values.map(resolveThunkValue))\n\t\t}\n\t\treturn mergeStyleValues(values)\n\t}\n\n\treturn values[values.length - 1]\n}\n\nconst hasKey = (sources, key)=> {\n\tconst keys = getKeyFamily(key)\n\tfor (const source of sources){\n\t\tconst resolved = resolveSource(source)\n\t\tif (resolved == null){\n\t\t\tcontinue\n\t\t}\n\t\tif (keys.some(candidate=> candidate in resolved)){\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nconst getCanonicalClassKey = (sources)=> {\n\tlet canonicalKey\n\tfor (const source of sources){\n\t\tconst resolved = resolveSource(source)\n\t\tif (resolved == null){\n\t\t\tcontinue\n\t\t}\n\t\tfor (const key of collectPresentKeys(resolved, CLASS_KEYS)){\n\t\t\tcanonicalKey = key\n\t\t}\n\t}\n\treturn canonicalKey\n}\n\nconst collectKeys = (sources)=> {\n\tconst seen = new Set()\n\tconst keys = []\n\tlet hasClassAlias = false\n\tfor (const source of sources){\n\t\tconst resolved = resolveSource(source)\n\t\tif (resolved == null){\n\t\t\tcontinue\n\t\t}\n\t\tfor (const key of Reflect.ownKeys(resolved)){\n\t\t\tif (isClassKey(key)){\n\t\t\t\thasClassAlias = true\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (!seen.has(key)){\n\t\t\t\tseen.add(key)\n\t\t\t\tkeys.push(key)\n\t\t\t}\n\t\t}\n\t}\n\tif (hasClassAlias){\n\t\t// Expose one canonical class key during enumeration so reflection APIs\n\t\t// (`Object.assign`, `Object.entries`) don't duplicate `class`/`className`.\n\t\tkeys.push(getCanonicalClassKey(sources) ?? 'class')\n\t}\n\treturn keys\n}\n\nconst readOnlyTrap = ()=> {\n\tthrow new Error('mergeProps result is read-only')\n}\n\nconst IS_MERGED_PROPS = Symbol('mergeProps')\nconst HAS_STATIC_KEYS = Symbol('mergeProps.staticKeys')\n\nexport const mergeProps = (...sources)=> {\n\t// Fast path: a single plain-object source is structurally equivalent to the\n\t// object itself for prop access (no class/className aliasing across sources,\n\t// no style merging, no spread thunks). Babel reactive transform wraps every\n\t// JSX in `mergeProps({...})` even with no spreads, so this short-circuit\n\t// eliminates one Proxy allocation per element on the typical render path.\n\tif (sources.length === 1 && sources[0] != null && typeof sources[0] === 'object' && isPlainObject(sources[0])){\n\t\treturn sources[0]\n\t}\n\n\t// When no source is a function-typed spread (`{...api()}`), the key set is\n\t// fixed at construction time — applyProps can skip its outer key-tracking\n\t// effect entirely. This is the common case under the babel reactive transform\n\t// which wraps every JSX in mergeProps even when there are no spreads.\n\tlet hasStaticKeys = true\n\tfor (const source of sources){\n\t\tif (typeof source === 'function'){ hasStaticKeys = false; break }\n\t}\n\treturn new Proxy({}, {\n\t\tget: (_, key)=> {\n\t\t\tif (key === IS_MERGED_PROPS){ return true }\n\t\t\tif (key === HAS_STATIC_KEYS){ return hasStaticKeys }\n\t\t\treturn resolveKey(sources, key)\n\t\t},\n\t\thas: (_, key)=> hasKey(sources, key),\n\t\townKeys: ()=> collectKeys(sources),\n\t\tgetOwnPropertyDescriptor: (_, key)=> {\n\t\t\tif (!hasKey(sources, key)){\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tget: ()=> resolveKey(sources, key),\n\t\t\t}\n\t\t},\n\t\tset: readOnlyTrap,\n\t\tdeleteProperty: readOnlyTrap,\n\t})\n}\n\nexport const isMergedProps = value=> value != null && typeof value === 'object' && value[IS_MERGED_PROPS] === true\nexport const hasMergedPropsStaticKeys = value=> value != null && typeof value === 'object' && value[HAS_STATIC_KEYS] === true\n","import {\n\tbatch, createComputed, createSignal, createTree, effect, isComputed, isSignal, isTree, runUntracked, toRaw,\n} from './reactivity.js'\nimport { getActiveSub, setActiveSub } from 'alien-signals'\nimport {\n\tflattenChildren, isEventProp, normalizeTextNodeValue, toClassMap, toClassTokens,\n} from './utils.js'\nimport { getCurrentComputation, setCurrentComputation } from './computation-context.js'\nimport { createControlFlow } from './control-flow.js'\nimport { hasMergedPropsStaticKeys, isMergedProps, mergeProps } from './merge-props.js'\n\nconst Fragment = Symbol('Fragment')\nconst OWNER = Symbol('owner')\nconst COMPONENT_DESCRIPTOR = Symbol('component-descriptor')\nconst PENDING_DESCRIPTORS = Symbol('pending-descriptors')\n\n// ============ Owner & Lifecycle Management ============\n// Global context for effect scoping and cleanup tracking\nlet currentOwner = null\n\nconst CONTEXT_ID = Symbol('context-id')\n\nconst getCurrentOwner = ()=> currentOwner\n\n// Owner fields are lazily allocated. Most components register nothing\n// (no onMount, no context, no refs), so paying for a Set + Map + 4 arrays\n// per component dominated mount cost. Allocate each collection only on first\n// use. Readers must tolerate `undefined`.\nconst createOwner = (parent = null)=> {\n\tconst owner = {\n\t\tparent,\n\t\tchildren: undefined,\n\t\tcleanups: undefined,\n\t\teffects: undefined,\n\t\tcontexts: undefined,\n\t\trefs: undefined,\n\t\tmounts: undefined,\n\t\tmounted: false,\n\t}\n\tif (parent){\n\t\t(parent.children ??= new Set()).add(owner)\n\t}\n\treturn owner\n}\n\nconst runOwnerMounts = (owner)=> {\n\trunUntracked(()=> {\n\t\towner.children?.forEach(child=> runOwnerMounts(child))\n\t\towner.refs?.forEach((fn)=> { fn() })\n\t\towner.mounts?.forEach((fn)=> { fn() })\n\t\towner.mounted = true\n\t})\n}\n\nconst runWithOwner = (owner, fn)=> {\n\tconst prev = currentOwner\n\tcurrentOwner = owner\n\ttry {\n\t\treturn fn()\n\t} finally {\n\t\tcurrentOwner = prev\n\t}\n}\n\nconst renderInOwner = (owner, result)=> runWithOwner(owner, ()=> node2Element(result))\n\n// Reactive child updates can insert plain DOM wrappers that contain mounted\n// component roots deeper in the subtree, so walk the inserted nodes and run\n// any deferred owner mounts we find.\nconst mountOwnedSubtree = (node, { force = false } = {})=> {\n\tif (!(node instanceof Node)){\n\t\treturn\n\t}\n\n\tconst stack = [node]\n\twhile (stack.length){\n\t\tconst current = stack.pop()\n\t\tconst owner = current[OWNER]\n\t\t// `force` is set by explicit mount boundaries (renderApp), where the\n\t\t// caller wants the tree mounted even if the container isn't attached to\n\t\t// a document yet. Downstream insertion paths leave it false so mount\n\t\t// stays deferred until the parent is actually connected.\n\t\t//\n\t\t// In production renderApp is almost always given a container already in\n\t\t// the document, so `current.isConnected` is true and `force` is a no-op;\n\t\t// it only changes behavior for a detached container (the common testing\n\t\t// pattern), so it carries no risk for production rendering.\n\t\tif (owner && !owner.mounted && (force || current.isConnected)){\n\t\t\trunOwnerMounts(owner)\n\t\t}\n\n\t\tfor (const child of current.childNodes){\n\t\t\tstack.push(child)\n\t\t}\n\t}\n}\n\nconst disposeOwner = (owner)=> {\n\tif (owner.parent){\n\t\towner.parent.children?.delete(owner)\n\t}\n\n\t// Dispose all child owners recursively\n\tif (owner.children){\n\t\towner.children.forEach(child=> disposeOwner(child))\n\t\towner.children.clear()\n\t}\n\n\t// Stop owner-bound effects for this scope during unmount.\n\tif (owner.effects){\n\t\tfor (let i = owner.effects.length - 1; i >= 0; i -= 1){\n\t\t\tconst stop = owner.effects[i]\n\t\t\tif (typeof stop === 'function'){ stop() }\n\t\t}\n\t\towner.effects.length = 0\n\t}\n\n\tif (owner.cleanups){\n\t\tfor (let i = owner.cleanups.length - 1; i >= 0; i -= 1){\n\t\t\tconst cleanup = owner.cleanups[i]\n\t\t\tif (typeof cleanup === 'function'){ cleanup() }\n\t\t}\n\t\towner.cleanups.length = 0\n\t}\n\tif (owner.refs){ owner.refs.length = 0 }\n\tif (owner.mounts){ owner.mounts.length = 0 }\n}\n\nconst flushCleanups = (list)=> {\n\trunUntracked(()=> {\n\t\t[...list].reverse().forEach((l)=> {\n\t\t\tl()\n\t\t})\n\t\tlist.length = 0\n\t})\n}\n\n// Create a binding effect that integrates with the owner system\nconst createBindingEffect = (runner)=> {\n\tconst owner = currentOwner\n\t// effect-level cleanups (run before each re-execution)\n\tconst local = []\n\n\tconst stop = effect(()=> {\n\t\t// Run effect-level cleanups in reverse order, untracked to avoid accidental dependency registration\n\t\tflushCleanups(local)\n\n\t\t// Set up computation context for onCleanup within the effect\n\t\tconst prevComp = getCurrentComputation()\n\t\tsetCurrentComputation({ cleanups: local })\n\t\t// Restore the owner captured at creation time so that:\n\t\t// 1. appendChild defers component-descriptor children (requires currentOwner != null)\n\t\t// 2. createOwner() chains new owners under the correct parent on re-fires\n\t\tconst prevOwner = currentOwner\n\t\tcurrentOwner = owner\n\t\ttry {\n\t\t\trunner()\n\t\t} finally {\n\t\t\tsetCurrentComputation(prevComp)\n\t\t\tcurrentOwner = prevOwner\n\t\t}\n\t})\n\n\tif (!owner){\n\t\treturn stop\n\t}\n\t// Register effect and its disposal in the owner\n\t(owner.effects ??= []).push(stop)\n\t;(owner.cleanups ??= []).push(()=> {\n\t\t// Run remaining local cleanups, untracked to avoid accidental dependency registration\n\t\tflushCleanups(local)\n\t})\n\n\treturn stop\n}\n\nconst registerCleanup = (fn)=> {\n\tconst currentComputation = getCurrentComputation()\n\tif (!currentOwner && !currentComputation){\n\t\tthrow new Error('registerCleanup must be called within a component or effect scope')\n\t}\n\tif (currentComputation){\n\t\tcurrentComputation.cleanups.push(fn)\n\t} else {\n\t\t(currentOwner.cleanups ??= []).push(fn)\n\t}\n}\n\n// Public API: onMount - register function to run after mount\nconst onMount = (fn)=> {\n\tif (!currentOwner){\n\t\tthrow new Error('onMount must be called within a component scope')\n\t}\n\t(currentOwner.mounts ??= []).push(fn)\n}\n\nconst onUnmount = (fn)=> {\n\tif (!currentOwner){\n\t\tthrow new Error('onUnmount must be called within a component scope')\n\t}\n\t(currentOwner.cleanups ??= []).push(fn)\n}\n\nconst createContext = (defaultValue)=> {\n\tconst context = {\n\t\t[CONTEXT_ID]: Symbol('context'),\n\t\tdefaultValue,\n\t}\n\n\t// eslint-disable-next-line react/display-name\n\tcontext.Provider = ({ value, children })=> {\n\t\tif (!currentOwner){\n\t\t\tthrow new Error('Context Provider must be rendered within a component scope')\n\t\t}\n\n\t\t(currentOwner.contexts ??= new Map()).set(context[CONTEXT_ID], value)\n\n\t\tif (typeof children === 'function'){\n\t\t\treturn children()\n\t\t}\n\n\t\treturn children ?? null\n\t}\n\n\treturn context\n}\n\nconst useContext = (context)=> {\n\tif (!context || typeof context !== 'object' || !(CONTEXT_ID in context)){\n\t\tthrow new Error('useContext requires a context created by createContext')\n\t}\n\n\tif (!currentOwner){\n\t\tthrow new Error('useContext must be called within a component scope')\n\t}\n\n\tlet owner = currentOwner\n\twhile (owner){\n\t\tif (owner.contexts?.has(context[CONTEXT_ID])){\n\t\t\treturn owner.contexts.get(context[CONTEXT_ID])\n\t\t}\n\t\towner = owner.parent\n\t}\n\n\treturn context.defaultValue\n}\n\nconst createComponentDescriptor = (tag, props, children)=> ({\n\t[COMPONENT_DESCRIPTOR]: true,\n\ttag,\n\tprops,\n\tchildren,\n\tinstance: null,\n})\n\nconst isComponentDescriptor = value=> value != null && typeof value === 'object' && value[COMPONENT_DESCRIPTOR] === true\n\nconst isReactivePrimitive = value=> value != null && (isSignal(value) || isComputed(value))\nconst isReactive = value=> isReactivePrimitive(value) || typeof value === 'function'\nconst createPlaceholder = ()=> document.createComment('null')\nconst isSupportedEvent = (element, eventName)=> `on${eventName}` in element\nconst isBooleanDomProp = (element, key)=> key in element && typeof element[key] === 'boolean'\n\n// JSX uses camelCase for some props whose corresponding DOM property is all-lowercase.\n// Normalise the key before any DOM access so the property lookup and setAttribute\n// calls use the name the browser actually exposes.\nconst JSX_PROP_MAP = {\n\tautoComplete: 'autocomplete',\n\tautoFocus: 'autofocus',\n\tautoPlay: 'autoplay',\n\tencType: 'enctype',\n\threfLang: 'hreflang',\n}\n\nconst MAX_REACTIVE_RESOLVE_STEPS = 16\n\nconst resolveReactiveValue = (value)=> {\n\t// In practice this loop resolves in at most 2 steps. The known chains are:\n\t// signal → primitive (1 step)\n\t// computed → primitive (1 step)\n\t// function → primitive (1 step)\n\t// signal → tree (1 step, tree is an object so the loop stops)\n\t// signal → function → value (2 steps)\n\t// computed → function → value (2 steps)\n\t// signal→signal is forbidden by createSignal; signal→computed triggers a warning.\n\t// The loop is kept rather than hard-coding 2 steps because a function returning\n\t// a function (e.g. const fn = () => () => 'red'; <div style={fn} />) is a grey\n\t// area that the framework does not explicitly forbid, and silently mis-resolving\n\t// it would be worse than the negligible cost of an extra iteration.\n\tlet resolved = value\n\tlet steps = 0\n\n\twhile (steps < MAX_REACTIVE_RESOLVE_STEPS){\n\t\tif (resolved == null){\n\t\t\tbreak\n\t\t}\n\n\t\tif (isSignal(resolved) || isComputed(resolved)){\n\t\t\tresolved = resolved()\n\t\t\tsteps++\n\t\t\tcontinue\n\t\t}\n\n\t\tif (typeof resolved === 'function'){\n\t\t\tresolved = resolved()\n\t\t\tsteps++\n\t\t\tcontinue\n\t\t}\n\n\t\tbreak\n\t}\n\n\treturn resolved\n}\n\nconst createReactiveTextNode = (reactiveValue)=> {\n\tconst textNode = document.createTextNode('')\n\tlet prev = textNode.data\n\n\tcreateBindingEffect(()=> {\n\t\tconst next = normalizeTextNodeValue(resolveReactiveValue(reactiveValue))\n\t\tif (prev === next){\n\t\t\treturn\n\t\t}\n\t\ttextNode.data = next\n\t\tprev = next\n\t})\n\n\treturn textNode\n}\n\nconst materializeComponentDescriptor = (descriptor)=> {\n\tif (descriptor.instance instanceof Node){\n\t\t// DocumentFragments are one-shot: once appended/inserted into a parent\n\t\t// node their children are transferred and the fragment becomes empty.\n\t\t// A cached drained fragment would silently lose all children on\n\t\t// re-materialization (e.g. when a thunk-returning component is used as\n\t\t// a child of another thunk-returning component). Detect this case and\n\t\t// force a fresh materialization instead.\n\t\tif (descriptor.instance instanceof DocumentFragment && descriptor.instance.childNodes.length === 0){\n\t\t\tif (descriptor._owner){\n\t\t\t\tdisposeOwner(descriptor._owner)\n\t\t\t\tdescriptor._owner = null\n\t\t\t}\n\t\t\tdescriptor.instance = null\n\t\t} else {\n\t\t\treturn descriptor.instance\n\t\t}\n\t}\n\n\tconst owner = createOwner(currentOwner)\n\tlet componentProps = descriptor.props ?? {}\n\n\t// Legacy `h(Comp, props, ...children)` carries variadic children alongside\n\t// props. Compiled JSX always packs children into the proxy itself, leaving\n\t// descriptor.children empty. Layer any extra variadic children on top via\n\t// mergeProps so the proxy contract holds for both call shapes.\n\tif (descriptor.children && descriptor.children.length > 0){\n\t\tconst kids = descriptor.children.length === 1 ? descriptor.children[0] : descriptor.children\n\t\tcomponentProps = mergeProps(componentProps, { children: kids })\n\t}\n\n\t// Fuse the owner swap and untracked context into one try/finally. Inlining\n\t// avoids the runUntracked closure + extra try/finally per component, which\n\t// shows up in profile (3000 components × these wrappers was a meaningful\n\t// share of mount time).\n\tconst prevOwner = currentOwner\n\tconst prevSub = getActiveSub()\n\tcurrentOwner = owner\n\tsetActiveSub(undefined)\n\tlet normalized\n\ttry {\n\t\tnormalized = node2Element(descriptor.tag(componentProps))\n\t} finally {\n\t\tcurrentOwner = prevOwner\n\t\tsetActiveSub(prevSub)\n\t}\n\n\tif (normalized instanceof DocumentFragment){\n\t\t// A fragment is drained the moment it is appended into its parent, so an\n\t\t// OWNER assigned on the fragment itself would be lost. Anchor it on the\n\t\t// fragment's first child instead — that node stays connected in the live\n\t\t// DOM at the component's position, and mountOwnedSubtree's childNodes\n\t\t// walk picks it up. createReactiveChildNode emits a stable\n\t\t// `dynamic-start` comment as firstChild for this exact purpose.\n\t\tif (normalized.firstChild){\n\t\t\tnormalized.firstChild[OWNER] = owner\n\t\t}\n\t} else if (normalized instanceof Node){\n\t\tnormalized[OWNER] = owner\n\t}\n\n\tdescriptor._owner = owner\n\tdescriptor.instance = normalized\n\treturn normalized\n}\n\nconst createReactiveChildNode = (reactiveValue)=> {\n\tconst start = document.createComment('dynamic-start')\n\tconst end = document.createComment('dynamic-end')\n\tconst fragment = document.createDocumentFragment()\n\tfragment.append(start, end)\n\tlet mountedNodes = []\n\n\tcreateBindingEffect(()=> {\n\t\tconst nextNode = node2Element(resolveReactiveValue(reactiveValue))\n\t\t// When the reactive value produced an array, node2Element returns a\n\t\t// fragment with deferred component/thunk children. Flush them now before\n\t\t// insertBefore drains the fragment — once drained, PENDING_DESCRIPTORS is\n\t\t// unreachable. currentOwner is correctly set here because createBindingEffect\n\t\t// restores the owner captured at creation time.\n\t\tif (nextNode instanceof DocumentFragment && nextNode[PENDING_DESCRIPTORS]){\n\t\t\tflushPendingDescriptors(nextNode)\n\t\t}\n\t\tconst parent = end.parentNode\n\t\tif (!parent){\n\t\t\treturn\n\t\t}\n\n\t\tmountedNodes.forEach((node)=> {\n\t\t\tif (node.parentNode){\n\t\t\t\tnode.parentNode.removeChild(node)\n\t\t\t}\n\t\t})\n\t\tmountedNodes = []\n\n\t\tif (nextNode instanceof DocumentFragment){\n\t\t\tmountedNodes = [...nextNode.childNodes]\n\t\t} else {\n\t\t\tmountedNodes = [nextNode]\n\t\t}\n\n\t\tparent.insertBefore(nextNode, end)\n\t\tif (start.isConnected){\n\t\t\tmountedNodes.forEach(node=> mountOwnedSubtree(node))\n\t\t}\n\t})\n\n\t// The fragment is drained the moment it's appended into the parent, so the\n\t// start/end markers and mountedNodes become free-standing children of that\n\t// parent. Without this cleanup, disposing the owner stops the binding effect\n\t// but leaves the DOM nodes behind (visible as the fragment-root disposer\n\t// regression). Only register if we're inside an owner/computation scope —\n\t// some standalone render helpers materialize without one.\n\tif (currentOwner || getCurrentComputation()){\n\t\tregisterCleanup(()=> {\n\t\t\tmountedNodes.forEach((node)=> {\n\t\t\t\tif (node.parentNode){\n\t\t\t\t\tnode.parentNode.removeChild(node)\n\t\t\t\t}\n\t\t\t})\n\t\t\tmountedNodes = []\n\t\t\tif (start.parentNode){\n\t\t\t\tstart.parentNode.removeChild(start)\n\t\t\t}\n\t\t\tif (end.parentNode){\n\t\t\t\tend.parentNode.removeChild(end)\n\t\t\t}\n\t\t})\n\t}\n\n\treturn fragment\n}\n\nconst applyClassNameMap = (element, classNameMap)=> {\n\tif (!(classNameMap instanceof Map)){\n\t\tconst temp = new Map()\n\t\tObject.entries(classNameMap).forEach(([className, enabled])=> {\n\t\t\ttemp.set(className, enabled)\n\t\t})\n\t\tclassNameMap = temp\n\t}\n\tclassNameMap.forEach((enabled, className)=> {\n\t\t// if should be enabled but isn't, add it\n\t\tif (enabled && !element.classList.contains(className)){\n\t\t\telement.classList.add(className)\n\t\t}\n\n\t\t// if shouldn't be enabled but is, remove it\n\t\tif (!enabled && element.classList.contains(className)){\n\t\t\telement.classList.remove(className)\n\t\t}\n\t})\n}\n\n// Apply a className value to an element. Always reconciles against the\n// element's current classList so re-runs (e.g. via an enclosing binding\n// effect) drop tokens that disappeared from the new value.\n// NOTE: `value` must already be unwrapped before calling this function.\n// Do not pass signals, computeds, or accessor thunks — callers are\n// responsible for resolving reactive values via `resolveReactiveValue` first.\nconst applyClassProp = (element, value)=> {\n\tconst expectedClass = toClassMap(value)\n\tconst actualClass = new Set(element.classList)\n\tconst shouldRemove = [...actualClass].filter(className=> !expectedClass.has(className))\n\tconst combinedClassMap = new Map([...expectedClass, ...shouldRemove.map(className=> [className, false])])\n\tapplyClassNameMap(element, combinedClassMap)\n}\nconst applyStyleObject = (element, styles, prevStyles = {})=> {\n\tconst nextStyles = styles ?? {}\n\n\tObject.keys(prevStyles).forEach((property)=> {\n\t\tif (nextStyles[property] != null && nextStyles[property] !== false){\n\t\t\treturn\n\t\t}\n\n\t\tclearStyleKey(element, property)\n\t\tdelete prevStyles[property]\n\t})\n\n\tObject.entries(nextStyles).forEach(([property, value])=> {\n\t\tif (value == null || value === false){\n\t\t\treturn\n\t\t}\n\n\t\tconst nextValue = String(value)\n\t\tif (prevStyles[property] === nextValue){\n\t\t\treturn\n\t\t}\n\n\t\tif (property.startsWith('--')){\n\t\t\telement.style.setProperty(property, nextValue)\n\t\t} else {\n\t\t\telement.style[property] = nextValue\n\t\t}\n\n\t\tprevStyles[property] = nextValue\n\t})\n\n\treturn prevStyles\n}\n\nconst clearStyleKey = (element, key)=> {\n\tif (key.startsWith('--')){\n\t\telement.style.removeProperty(key)\n\t} else {\n\t\telement.style[key] = ''\n\t}\n}\n\n// NOTE: `value` must already be unwrapped before calling this function.\n// Do not pass signals, computeds, or accessor thunks — callers are\n// responsible for resolving reactive values via `resolveReactiveValue` first.\nconst applyStyleProp = (element, value, prevValue)=> {\n\tif (value == null || value === false){\n\t\telement.style.cssText = ''\n\t\treturn undefined\n\t}\n\n\tif (typeof value === 'string'){\n\t\telement.style.cssText = value\n\t\treturn value\n\t}\n\n\tif (typeof value === 'object'){\n\t\treturn applyStyleObject(element, value, typeof prevValue === 'string' ? undefined : prevValue)\n\t}\n\n\treturn prevValue\n}\n\nconst clearDomProp = (element, key)=> {\n\tif (key in element){\n\t\ttry {\n\t\t\telement[key] = ''\n\t\t} catch {\n\t\t\t// Some DOM properties (for example HTMLInputElement.form) are readonly.\n\t\t}\n\t}\n\n\telement.removeAttribute(key)\n}\n\n// Apply a prop value directly to the DOM. Reactive props reuse this same path inside effects.\nconst setDomProp = (element, key, value)=> {\n\tif (isBooleanDomProp(element, key)){\n\t\tconst next = Boolean(value)\n\t\tconst prev = element[key]\n\t\tconst hasAttribute = element.hasAttribute(key)\n\t\tif (prev === next && (next && hasAttribute || !next && !hasAttribute)){\n\t\t\treturn\n\t\t}\n\n\t\telement[key] = next\n\n\t\tif (next){\n\t\t\telement.setAttribute(key, '')\n\t\t\treturn\n\t\t}\n\n\t\telement.removeAttribute(key)\n\t\treturn\n\t}\n\n\tif (value == null || value === false){\n\t\t// Skip removal for aria-* when value is false — some ATs distinguish\n\t\t// aria-hidden=\"false\" (visible) from a missing attribute (also visible but unreliable),\n\t\t// so we must keep the attribute present even when falsey.\n\t\tif (!(value === false && typeof key === 'string' && key.startsWith('aria-'))){\n\t\t\tconst prev = key in element ? element[key] : ''\n\t\t\tif (prev === '' && !element.hasAttribute(key)){\n\t\t\t\treturn\n\t\t\t}\n\t\t\tclearDomProp(element, key)\n\t\t\treturn\n\t\t}\n\t}\n\n\tif (key in element){\n\t\tconst prev = element[key]\n\t\tif (prev === value){\n\t\t\treturn\n\t\t}\n\t\ttry {\n\t\t\telement[key] = value\n\t\t\treturn\n\t\t} catch {\n\t\t\t// Fall through to attribute writes for readonly DOM properties.\n\t\t}\n\t}\n\n\tconst next = String(value)\n\tconst prev = element.getAttribute(key)\n\tif (prev === next){\n\t\treturn\n\t}\n\telement.setAttribute(key, next)\n}\n\nconst applyCommonAttribute = (element, key, source)=> {\n\tif (isReactive(source)){\n\t\tcreateBindingEffect(()=> {\n\t\t\tsetDomProp(element, key, resolveReactiveValue(source))\n\t\t})\n\t\treturn\n\t}\n\tsetDomProp(element, key, source)\n}\n\nconst applyRefProp = (element, ref)=> {\n\tif (typeof ref !== 'function'){\n\t\treturn\n\t}\n\n\tconst assignRef = value=> ref(value)\n\n\tconst owner = currentOwner\n\n\tif (owner && !owner.mounted){\n\t\t(owner.refs ??= []).push(()=> assignRef(element))\n\t} else {\n\t\tassignRef(element)\n\t}\n\n\tif (owner || getCurrentComputation()){\n\t\tregisterCleanup(()=> {\n\t\t\tassignRef(null)\n\t\t})\n\t}\n}\n\n// Bind a single non-event, non-special prop key to the DOM element. Each\n// individual prop runs inside its own binding effect so a signal change in\n// one prop's getter only re-writes that one attribute. For plain (non-proxy)\n// props the inner effect runs once with no dependencies and is essentially\n// free. The value is resolved through `resolveReactiveValue` so signals and\n// zero-arg accessor thunks (used widely by ark-plastic / zag adapters) are\n// unwrapped before being applied to the DOM.\nconst bindReactiveProp = (element, props, key, propsIsTracked)=> {\n\tconst rawValue = props[key]\n\n\t// Static (non-reactive) fast path: write the prop directly with no binding\n\t// effect. Most JSX props in real apps are static (className='row', id=...,\n\t// type='button' etc.) — building an effect for each one was the biggest\n\t// per-component cost in mount benchmarks.\n\t// Skip the fast path when `props` is itself a tracking proxy (tree /\n\t// mergeProps): the value may be a plain string but reading `props[key]`\n\t// subscribes through the proxy, so we need an effect to re-run on change.\n\t// Also skip when `props[key]` is exposed via a getter — the getter may\n\t// read signals internally (hand-rolled adapter props bags do this), so\n\t// the read must happen inside a binding effect to register the\n\t// dependency. `getOwnPropertyDescriptor` returns `{ get }` for accessor\n\t// properties and `{ value }` for data properties.\n\tconst descriptor = propsIsTracked ? null : Object.getOwnPropertyDescriptor(props, key)\n\tconst hasGetter = descriptor != null && typeof descriptor.get === 'function'\n\tif (!propsIsTracked && !hasGetter && !isReactive(rawValue)){\n\t\tlet prevStyleValue\n\t\tif (key === 'className' || key === 'class'){\n\t\t\tapplyClassProp(element, rawValue)\n\t\t} else if (key === 'style'){\n\t\t\tprevStyleValue = applyStyleProp(element, rawValue, undefined)\n\t\t} else {\n\t\t\tconst domKey = JSX_PROP_MAP[key] ?? key\n\t\t\tsetDomProp(element, domKey, rawValue)\n\t\t}\n\n\t\treturn ()=> {\n\t\t\tif (key === 'className' || key === 'class'){\n\t\t\t\telement.removeAttribute('class')\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (key === 'style'){\n\t\t\t\tif (prevStyleValue && typeof prevStyleValue === 'object'){\n\t\t\t\t\tObject.keys(prevStyleValue).forEach(prop=> clearStyleKey(element, prop))\n\t\t\t\t} else if (typeof prevStyleValue === 'string'){\n\t\t\t\t\telement.style.cssText = ''\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst domKey = JSX_PROP_MAP[key] ?? key\n\t\t\tclearDomProp(element, domKey)\n\t\t}\n\t}\n\n\tlet prevStyleValue\n\tconst stop = createBindingEffect(()=> {\n\t\tconst value = resolveReactiveValue(props[key])\n\t\tif (key === 'className' || key === 'class'){\n\t\t\tapplyClassProp(element, value)\n\t\t\treturn\n\t\t}\n\t\tif (key === 'style'){\n\t\t\tprevStyleValue = applyStyleProp(element, value, prevStyleValue)\n\t\t\treturn\n\t\t}\n\t\tconst domKey = JSX_PROP_MAP[key] ?? key\n\t\tsetDomProp(element, domKey, value)\n\t})\n\n\treturn ()=> {\n\t\tstop?.()\n\t\tif (key === 'className' || key === 'class'){\n\t\t\telement.removeAttribute('class')\n\t\t\treturn\n\t\t}\n\t\tif (key === 'style'){\n\t\t\t// Only clear style properties that Plastic itself set, preserving any\n\t\t\t// inline styles written directly to the DOM by third-party libraries\n\t\t\t// (e.g. Zag's pointer-events management via assignPointerEventToLayers).\n\t\t\tif (prevStyleValue && typeof prevStyleValue === 'object'){\n\t\t\t\tObject.keys(prevStyleValue).forEach(prop=> clearStyleKey(element, prop))\n\t\t\t} else if (typeof prevStyleValue === 'string'){\n\t\t\t\telement.style.cssText = ''\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t\tconst domKey = JSX_PROP_MAP[key] ?? key\n\t\tclearDomProp(element, domKey)\n\t}\n}\n\n// Attach a single listener that resolves the current handler from `props` at\n// dispatch time. This makes handlers reactive without re-attaching listeners:\n// when a parent's signal changes the handler reference, the next event read\n// sees the new function via the proxy.\nconst bindReactiveEvent = (element, props, key)=> {\n\tconst eventName = key.slice(2).toLowerCase()\n\tif (!isSupportedEvent(element, eventName)){\n\t\treturn ()=> {}\n\t}\n\tconst listener = (...args)=> {\n\t\tconst handler = props[key]\n\t\tif (typeof handler === 'function'){\n\t\t\thandler(...args)\n\t\t}\n\t}\n\telement.addEventListener(eventName, listener)\n\tif (currentOwner || getCurrentComputation()){\n\t\tregisterCleanup(()=> {\n\t\t\telement.removeEventListener(eventName, listener)\n\t\t})\n\t}\n\n\treturn ()=> {\n\t\telement.removeEventListener(eventName, listener)\n\t}\n}\n\n// Apply a props object (plain object or mergeProps proxy) to a DOM element.\n// Each prop gets its own binding effect so a change to one signal only\n// re-writes that one attribute. The enclosing binding effect tracks\n// `Reflect.ownKeys(props)`, so when a dynamic spread source adds or removes\n// keys later we tear down the previous bindings and rebuild them from the\n// current key set.\nconst applyProps = (element, props = {})=> {\n\tconst propsIsTracked = isMergedProps(props) || isTree(props)\n\t// Per-key disposer map. Re-runs of the outer key-tracking effect diff the\n\t// previous and current key set so only added/removed keys touch the DOM;\n\t// surviving keys keep their per-prop binding (which already short-circuits\n\t// on prev===next inside setDomProp). Tearing down all bindings on every\n\t// signal change was the cause of NO-OP attribute thrash on Zag widgets.\n\tconst bindings = new Map()\n\n\tconst createBindingForKey = (key)=> {\n\t\tif (key === 'classList'){\n\t\t\tthrow new Error('classList prop is not supported. Use className instead.')\n\t\t}\n\t\t// Suppress the outer effect's computation context so inner\n\t\t// registerCleanup calls (event listeners, ref nulling) attach to the\n\t\t// owner rather than the outer effect's per-run cleanup list. Otherwise\n\t\t// flushCleanups on the next outer re-run would tear down listeners for\n\t\t// keys we intend to keep.\n\t\t// Also clear alien-signals' activeSub so each per-key inner effect is\n\t\t// a root effect, not a child of the outer key-tracking effect — child\n\t\t// effects get auto-disposed when the parent re-runs, which would kill\n\t\t// surviving keys' bindings.\n\t\tconst prevComp = getCurrentComputation()\n\t\tconst prevSub = getActiveSub()\n\t\tsetCurrentComputation(null)\n\t\tsetActiveSub(undefined)\n\t\ttry {\n\t\t\tif (key === 'ref'){\n\t\t\t\tconst ref = props[key]\n\t\t\t\tapplyRefProp(element, ref)\n\t\t\t\treturn ()=> {\n\t\t\t\t\tif (typeof ref === 'function'){\n\t\t\t\t\t\tref(null)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isEventProp(key)){\n\t\t\t\treturn bindReactiveEvent(element, props, key)\n\t\t\t}\n\t\t\treturn bindReactiveProp(element, props, key, propsIsTracked)\n\t\t} finally {\n\t\t\tsetCurrentComputation(prevComp)\n\t\t\tsetActiveSub(prevSub)\n\t\t}\n\t}\n\n\tconst setup = ()=> {\n\t\tconst nextKeys = new Set()\n\t\tfor (const key of Reflect.ownKeys(props)){\n\t\t\tif (typeof key === 'symbol' || key === 'children' || key === 'key'){\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tnextKeys.add(key)\n\t\t}\n\n\t\t// Dispose bindings for keys that disappeared. Surviving keys are left\n\t\t// alone — their inner binding effects already react to value changes.\n\t\tfor (const [key, dispose] of bindings){\n\t\t\tif (nextKeys.has(key)){ continue }\n\t\t\tif (typeof dispose === 'function'){ dispose() }\n\t\t\tbindings.delete(key)\n\t\t}\n\n\t\tfor (const key of nextKeys){\n\t\t\tif (bindings.has(key)){ continue }\n\t\t\tbindings.set(key, createBindingForKey(key))\n\t\t}\n\t}\n\n\t// Register full teardown at the owner level (not the outer effect's local\n\t// cleanup list) so it fires only on real unmount.\n\tif (currentOwner || getCurrentComputation()){\n\t\tregisterCleanup(()=> {\n\t\t\tfor (const dispose of bindings.values()){\n\t\t\t\tif (typeof dispose === 'function'){ dispose() }\n\t\t\t}\n\t\t\tbindings.clear()\n\t\t})\n\t}\n\n\t// Only wrap in an outer binding effect when the proxy has dynamic keys (a\n\t// function-typed spread source like `{...api()}`, or any tree proxy whose\n\t// key set may grow/shrink at runtime). For static-key proxies (the common\n\t//\n\t// KNOWN LIMITATION: `hasStaticKeys` is decided at `mergeProps()` construction\n\t// time and reflects only whether any *source* is function-typed. A plain\n\t// object source can still be mutated later (`Object.assign(propsBag, {...})`\n\t// or `delete propsBag.foo`), and that mutation will NOT trigger re-binding —\n\t// the outer key-tracking effect is skipped for static-key proxies. This is\n\t// safe under the babel reactive transform (it never mutates a props bag\n\t// post-creation) but callers using `h(Comp, propsBag)` and later mutating\n\t// `propsBag` must instead pass a function source so the proxy becomes\n\t// dynamic: `h(Comp, mergeProps(() => propsBag))`.\n\t// For plain (non-mergeProps) object props, the key set is captured once via\n\t// `Reflect.ownKeys(props)` at construction; the same restriction applies.\n\t// babel reactive transform output with no spreads), and for plain object\n\t// props, keys never change — skip the outer effect to avoid one\n\t// owner-effect allocation per element.\n\tif (isMergedProps(props) && !hasMergedPropsStaticKeys(props) || isTree(props)){\n\t\tcreateBindingEffect(setup)\n\t} else {\n\t\tsetup()\n\t}\n\treturn element\n}\n\n// Normalize any JSX return value into a DOM node that can be appended safely.\n// Dispatch is organized as a `typeof` switch so the engine can lower it to a\n// jump table, and the most frequent shapes are handled first:\n// - 'string'/'number': text children like `[\"item \", i]` (hottest in lists)\n// - 'object' → Node: the Element returned from a component body\n// - 'object' → descriptor: child components in an array\n// Within the 'object' arm we use `node.nodeType != null` instead of\n// `instanceof Node`, since a property read is cheaper than walking the\n// prototype chain, and we read the descriptor symbol directly to skip the\n// redundant `typeof === 'object'` check inside isComponentDescriptor.\nconst node2Element = (node)=> {\n\tswitch (typeof node){\n\t\tcase 'string':\n\t\tcase 'number':\n\t\t\treturn document.createTextNode(String(node))\n\t\tcase 'function':\n\t\t\t// Signals and computeds are functions too (alien-signals binds an\n\t\t\t// operator function) — they render as reactive text nodes, while a\n\t\t\t// plain function child is a thunk that returns dynamic content.\n\t\t\tif (isReactivePrimitive(node)){ return createReactiveTextNode(node) }\n\t\t\treturn createReactiveChildNode(node)\n\t\tcase 'undefined':\n\t\t\treturn createPlaceholder()\n\t\tcase 'object': {\n\t\t\tif (node === null){ return createPlaceholder() }\n\t\t\t// Real DOM node returned from h()/jsx() — by far the most common\n\t\t\t// 'object' case during initial mount. `nodeType` must be a number\n\t\t\t// (Node spec: unsigned short); a plain object happening to carry a\n\t\t\t// non-numeric `nodeType` field would otherwise be treated as a Node\n\t\t\t// here and explode downstream inside parent.appendChild.\n\t\t\tif (typeof node.nodeType === 'number'){\n\t\t\t\tflushPendingDescriptors(node)\n\t\t\t\treturn node\n\t\t\t}\n\t\t\tif (node[COMPONENT_DESCRIPTOR] === true){\n\t\t\t\treturn materializeComponentDescriptor(node)\n\t\t\t}\n\t\t\tif (Array.isArray(node)){\n\t\t\t\tconst fragment = document.createDocumentFragment()\n\t\t\t\tappendChildren(fragment, node)\n\t\t\t\t// Do NOT flush here — the caller (appendChild) will transfer any pending\n\t\t\t\t// descriptors to the real parent element before draining the fragment, so\n\t\t\t\t// flushPendingDescriptors runs later with the correct owner active.\n\t\t\t\treturn fragment\n\t\t\t}\n\t\t\treturn createPlaceholder()\n\t\t}\n\t\tdefault:\n\t\t\treturn createPlaceholder()\n\t}\n}\n\nconst materializeNode = node=> node2Element(node)\n\n// Walk an Element subtree and materialize any component descriptors that were\n// deferred by appendChild during eager native-tag construction. Materialization\n// happens with the *current* owner active, so when this is invoked from inside\n// a component's renderInOwner pass, deferred children correctly chain their\n// owner under that component (e.g. <Provider><div><Label/></div></Provider> —\n// Label's owner.parent becomes the Provider's owner, and useContext walks find\n// the Provider value).\nconst flushPendingDescriptors = (root)=> {\n\tif (!(root instanceof Element) && !(root instanceof DocumentFragment)){\n\t\treturn\n\t}\n\tconst stack = [root]\n\twhile (stack.length){\n\t\tconst node = stack.pop()\n\t\tconst pending = node[PENDING_DESCRIPTORS]\n\t\tif (pending){\n\t\t\tnode[PENDING_DESCRIPTORS] = undefined\n\t\t\tpending.forEach(({ placeholder, descriptor })=> {\n\t\t\t\tif (!placeholder.parentNode){\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconst materialized = node2Element(descriptor)\n\t\t\t\tif (materialized instanceof DocumentFragment && materialized[PENDING_DESCRIPTORS]){\n\t\t\t\t\tflushPendingDescriptors(materialized)\n\t\t\t\t}\n\t\t\t\tplaceholder.parentNode.replaceChild(materialized, placeholder)\n\t\t\t})\n\t\t}\n\t\tfor (const child of node.childNodes){\n\t\t\tif (child instanceof Element){\n\t\t\t\tstack.push(child)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Ignore empty JSX children and append everything else after normalization.\nconst appendChild = (parent, child)=> {\n\tif (child == null){\n\t\treturn parent\n\t}\n\n\t// Defer component-descriptor and reactive-thunk children until the\n\t// surrounding component owner is active. JS evaluates h() arguments eagerly,\n\t// so without this the inner component would materialize (or the reactive\n\t// binding would capture its owner) under the *outer* component's owner,\n\t// missing any context that the wrapping component sets in its body.\n\t// Thunks (`typeof child === 'function') are reactive accessors injected by\n\t// the babel reactive transform; they create a binding that captures\n\t// currentOwner, so deferring them here ensures createReactiveChildNode runs\n\t// later during flushPendingDescriptors with the correct owner active.\n\t// Only defer when we're already inside a component scope (currentOwner set)\n\t// — direct h() usage at the top of a script expects synchronous\n\t// materialization.\n\tif ((isComponentDescriptor(child) || typeof child === 'function') && currentOwner != null && (parent instanceof Element || parent instanceof DocumentFragment)){\n\t\tconst placeholder = document.createComment('pending')\n\t\tparent.appendChild(placeholder)\n\t\tconst list = parent[PENDING_DESCRIPTORS] ?? (parent[PENDING_DESCRIPTORS] = [])\n\t\tlist.push({ placeholder, descriptor: child })\n\t\treturn parent\n\t}\n\n\t// When a native element is appended inside a component scope, it may carry\n\t// pending component descriptors in its subtree that were deferred during\n\t// eager h() construction. Flushing them now (via node2Element → flushPendingDescriptors)\n\t// would materialize those descriptors under the current owner, which is\n\t// the *outer* component — not the provider that will be set up later.\n\t// Instead, bubble all pending descriptors from the element's subtree up to\n\t// the parent so they get flushed by flushPendingDescriptors with the\n\t// correct owner once the surrounding component finishes rendering.\n\tif (child instanceof Element && currentOwner != null && (parent instanceof Element || parent instanceof DocumentFragment)){\n\t\tconst stack = [child]\n\t\twhile (stack.length){\n\t\t\tconst node = stack.pop()\n\t\t\tconst pending = node[PENDING_DESCRIPTORS]\n\t\t\tif (pending){\n\t\t\t\tnode[PENDING_DESCRIPTORS] = undefined\n\t\t\t\tconst list = parent[PENDING_DESCRIPTORS] ?? (parent[PENDING_DESCRIPTORS] = [])\n\t\t\t\tlist.push(...pending)\n\t\t\t}\n\t\t\tfor (const grandchild of node.childNodes){\n\t\t\t\tif (grandchild instanceof Element){ stack.push(grandchild) }\n\t\t\t}\n\t\t}\n\t\tparent.appendChild(child)\n\t\treturn parent\n\t}\n\n\tconst childNode = node2Element(child)\n\t// When the child resolved to a fragment that carries deferred component\n\t// descriptors, transfer them to the real parent before draining so\n\t// flushPendingDescriptors can find and materialize them later with the\n\t// correct owner active (see the array branch in node2Element).\n\tif (childNode instanceof DocumentFragment && childNode[PENDING_DESCRIPTORS] && (parent instanceof Element || parent instanceof DocumentFragment)){\n\t\tconst list = parent[PENDING_DESCRIPTORS] ?? (parent[PENDING_DESCRIPTORS] = [])\n\t\tlist.push(...childNode[PENDING_DESCRIPTORS])\n\t\tchildNode[PENDING_DESCRIPTORS] = undefined\n\t}\n\tparent.appendChild(childNode)\n\treturn parent\n}\n\nconst appendChildren = (parent, children)=> {\n\t// Flatten first so nested array children from conditionals or loops work naturally.\n\tflattenChildren(children).forEach((child)=> {\n\t\tappendChild(parent, child)\n\t})\n\treturn parent\n}\n\nconst {\n\tmountDynamic,\n\tEither,\n\tTrue,\n\tFalse,\n\tMatch,\n\tCase,\n\tDefault,\n\tLoop,\n\tPortal,\n} = createControlFlow({\n\tcreateOwner,\n\trunOwnerMounts,\n\trunWithOwner,\n\tdisposeOwner,\n\tcreateBindingEffect,\n\trenderInOwner,\n\tgetCurrentOwner,\n\tregisterCleanup,\n\tbatch,\n\tappendChild,\n\tflushPendingDescriptors,\n})\n\n// Thin runtime helper for <Dynamic component={tag} ...props />.\n// `component` is treated as the tag argument for `h`.\n\nconst Dynamic = ({ component, ...props })=> {\n\t// Resolve signals/computed directly; also resolve zero-arg accessor thunks produced\n\t// by the Babel reactive plugin when `component` is a dynamic expression.\n\tlet dynamicTag = component\n\tif (isReactivePrimitive(component) || typeof component === 'function' && component.length === 0){\n\t\tdynamicTag = resolveReactiveValue(component)\n\t}\n\treturn h(dynamicTag, props)\n}\n\nconst SVG_TAGS = new Set(['svg', 'animate', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'defs', 'desc', 'ellipse', 'feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'set', 'stop', 'switch', 'symbol', 'text', 'textPath', 'tspan', 'use', 'view'])\n\nconst h = (tag, props, ...children)=> {\n\tconst nextProps = props || {}\n\n\tif (tag === Fragment){\n\t\t// Fragments produce a DocumentFragment so no wrapper element is introduced.\n\t\tconst propChildren = nextProps.children ?? []\n\t\tconst normalizedPropChildren = Array.isArray(propChildren) ? propChildren : [propChildren]\n\t\tconst mergedChildren = [...normalizedPropChildren, ...children]\n\t\tconst fragment = document.createDocumentFragment()\n\t\tappendChildren(fragment, mergedChildren)\n\t\treturn fragment\n\t}\n\n\tif (typeof tag === 'function'){\n\t\t// Compiled JSX always packs children into the props proxy and passes no\n\t\t// variadic children; preserve the proxy as-is so component bodies read\n\t\t// `props.children` reactively. Legacy handwritten `h(Comp, props, ...kids)`\n\t\t// callers pass kids separately — forward them to the descriptor so\n\t\t// materializeComponentDescriptor can layer them into the proxy via\n\t\t// `mergeProps`.\n\t\treturn createComponentDescriptor(tag, nextProps, children)\n\t}\n\n\tif (typeof tag !== 'string'){\n\t\tthrow new Error('Only static string tags and Fragment are supported.')\n\t}\n\n\t// Native tags create real DOM elements directly without a virtual DOM layer.\n\tconst element = SVG_TAGS.has(tag) ? document.createElementNS('http://www.w3.org/2000/svg', tag) : document.createElement(tag)\n\tapplyProps(element, nextProps)\n\n\tconst propChildren = nextProps.children ?? []\n\tconst normalizedPropChildren = Array.isArray(propChildren) ? propChildren : [propChildren]\n\tconst mergedChildren = [...normalizedPropChildren, ...children]\n\tappendChildren(element, mergedChildren)\n\treturn element\n}\n\nconst jsx = (tag, props, key)=> {\n\tif (key === undefined){\n\t\treturn h(tag, props)\n\t}\n\t// Layer key on without flattening the proxy.\n\treturn h(tag, mergeProps(props, { key }))\n}\nconst jsxs = jsx\n\n// Static fast path counterpart to applyProps: writes a single literal value\n// straight to the DOM with no isReactive check, no binding-effect wrapper, and\n// no JSX_PROP_MAP miss for the hot keys. Used exclusively by jsxStatic, which\n// the babel reactive transform emits when every attribute value is provably a\n// scalar literal (string/number/boolean/null) — so there is nothing to track,\n// nothing to dispose, and the prop never changes after initial mount.\nconst applyStaticProp = (element, key, value)=> {\n\tif (key === 'className' || key === 'class'){\n\t\tapplyClassProp(element, value)\n\t\treturn\n\t}\n\tif (key === 'style'){\n\t\tapplyStyleProp(element, value, undefined)\n\t\treturn\n\t}\n\tsetDomProp(element, JSX_PROP_MAP[key] ?? key, value)\n}\n\n// jsxStatic — emitted by the babel reactive transform when ALL of these hold:\n// - tag is a lowercase intrinsic string (no components, no Dynamic)\n// - at least one attribute, none of them spread\n// - every attribute value is a scalar literal (string/number/boolean/null)\n//\n// Under those conditions there are no reactive props, no event handlers, no\n// refs, no merged-props proxy — applyProps' entire dispatch machinery\n// (createBindingEffect / isMergedProps / Reflect.ownKeys / bindReactiveProp /\n// isReactive) is pure overhead. We bypass it and write each prop directly.\n// Children pass through unchanged: babel emits the same child expressions it\n// would for jsx(), so dynamic children still arrive as thunks/descriptors and\n// are routed through appendChild's existing reactive/defer paths.\nconst jsxStatic = (tag, props, child)=> {\n\tconst element = SVG_TAGS.has(tag) ? document.createElementNS('http://www.w3.org/2000/svg', tag) : document.createElement(tag)\n\tfor (const key in props){\n\t\t// Defensive: skip framework-reserved keys in case the babel transform\n\t\t// ever emits them here. `children` shouldn't appear (it's the third\n\t\t// arg), and `key` is consumed by the reconciler upstream.\n\t\tif (key === 'children' || key === 'key'){ continue }\n\t\tapplyStaticProp(element, key, props[key])\n\t}\n\tif (child !== undefined){\n\t\t// Babel emits the third arg as a single value when there is one child\n\t\t// and an array when there are several — mirror jsx() / jsxs() shape.\n\t\tif (Array.isArray(child)){\n\t\t\tappendChildren(element, child)\n\t\t} else {\n\t\t\tappendChild(element, child)\n\t\t}\n\t}\n\treturn element\n}\n// jsxDEV is the development-mode variant used by automatic JSX transforms; the extra\n// debug arguments (isStaticChildren, source, self) are unused at runtime.\nconst jsxDEV = (tag, props, key)=> jsx(tag, props, key)\n\n// ============ DOM template cloning (Solid-style) ============\n// Three helpers the babel reactive transform can emit when it identifies a\n// statically-shaped JSX subtree. They let the framework skip per-element\n// createElement/applyProps/appendChild for the static skeleton and only do\n// runtime work for the dynamic holes that babel can't fold into the template.\n//\n// Emission shape from babel:\n// const _tmpl$ = /*#__PURE__*/ template('<div class=\"row\"><span>item </span></div>')\n// const Row = ({i}) => {\n// const _el = _tmpl$.cloneNode(true)\n// const _span = _el.firstChild\n// insert(_span, () => i, null) // dynamic text appended at end of span\n// return _el\n// }\n// Static props go into the template string itself; dynamic props use setProp;\n// dynamic children use insert. There is no separate clone helper — babel emits\n// `_tmpl$.cloneNode(true)` directly.\n\n// Parse `html` into a detached template and return the first child of its\n// content. Babel emits ONE module-level `template()` call per unique static\n// shape, so the parse cost is amortized across every instance — only the\n// per-instance `cloneNode(true)` remains hot.\n//\n// SVG note: an `<svg>` element parsed via innerHTML of an HTMLTemplateElement\n// correctly inherits the SVG namespace, but standalone SVG children (`<circle>`\n// at the root) do not — pass isSVG=true to wrap-then-unwrap so the namespace\n// resolves on every node.\nconst template = (html, isSVG = false)=> {\n\tconst t = document.createElement('template')\n\tif (isSVG){\n\t\tt.innerHTML = `<svg>${html}</svg>`\n\t\tconst svgRoot = t.content.firstChild\n\t\t// Unwrap so the caller's first cloneNode points at the real root.\n\t\treturn svgRoot.firstChild ?? svgRoot\n\t}\n\tt.innerHTML = html\n\treturn t.content.firstChild\n}\n\n// Recursively resolve `value` (which may be a thunk, signal, descriptor, node,\n// primitive, or array) into a flat list of Nodes ready to insert. Mirrors what\n// node2Element does but flattens arrays in place instead of producing a\n// DocumentFragment, since insert() needs direct control over each Node so the\n// next reactive run can remove exactly the nodes it inserted.\nconst resolveChildToNodes = (value, out)=> {\n\tlet v = value\n\t// Walk through plain thunks (NOT signals/computeds — those resolve to a\n\t// reactive text node so the framework can update .data in place).\n\tlet steps = 0\n\twhile (typeof v === 'function' && !isReactivePrimitive(v) && steps < MAX_REACTIVE_RESOLVE_STEPS){\n\t\tv = v()\n\t\tsteps += 1\n\t}\n\tif (v == null || v === true || v === false){ return }\n\tif (v instanceof Node){\n\t\tout.push(v)\n\t\treturn\n\t}\n\tif (Array.isArray(v)){\n\t\tfor (const item of v){ resolveChildToNodes(item, out) }\n\t\treturn\n\t}\n\tif (isComponentDescriptor(v)){\n\t\tout.push(materializeComponentDescriptor(v))\n\t\treturn\n\t}\n\tif (isReactivePrimitive(v)){\n\t\tout.push(createReactiveTextNode(v))\n\t\treturn\n\t}\n\tout.push(document.createTextNode(String(v)))\n}\n\n// Insert dynamic content into `parent` immediately before `marker` (or at the\n// end when marker is null). Static accessors run once; functions/signals wrap\n// in a binding effect so the slot updates whenever the source changes.\n//\n// Single-text-node fast path: when both the previous and next render produce a\n// single text/string/number, mutate the existing text node's `.data` instead\n// of swapping nodes. This matches Solid's behavior and avoids DOM thrash for\n// the common `{count()}` shape.\nconst insert = (parent, accessor, marker = null)=> {\n\tif (typeof accessor !== 'function'){\n\t\tconst nodes = []\n\t\tresolveChildToNodes(accessor, nodes)\n\t\tfor (const n of nodes){ parent.insertBefore(n, marker) }\n\t\treturn\n\t}\n\tlet current = []\n\tcreateBindingEffect(()=> {\n\t\tconst next = accessor()\n\n\t\t// Fast path: single existing text node + scalar next value → in-place data update.\n\t\tif (current.length === 1 && current[0].nodeType === 3 && (typeof next === 'string' || typeof next === 'number')){\n\t\t\tconst str = String(next)\n\t\t\tif (current[0].data !== str){ current[0].data = str }\n\t\t\treturn\n\t\t}\n\n\t\tconst nodes = []\n\t\tresolveChildToNodes(next, nodes)\n\n\t\t// Naive diff: remove current, insert next. Adequate for single-slot\n\t\t// inserts; keyed list reconciliation is handled separately by <Loop>.\n\t\tfor (const n of current){\n\t\t\tif (n.parentNode === parent){ parent.removeChild(n) }\n\t\t}\n\t\tfor (const n of nodes){ parent.insertBefore(n, marker) }\n\n\t\t// Mount any owners attached to inserted subtrees (component roots inside\n\t\t// the inserted nodes register their owner on the DOM node — runOwnerMounts\n\t\t// must fire once they're connected).\n\t\tif (parent.isConnected){\n\t\t\tfor (const n of nodes){ mountOwnedSubtree(n) }\n\t\t}\n\n\t\tcurrent = nodes\n\t})\n}\n\n// Apply a single prop (static or reactive) to an element. Static values write\n// once; function/signal values wrap in a binding effect that re-applies on\n// change. Class and style go through the existing helpers so the\n// merge/diff semantics stay identical to the JSX path.\nconst setProp = (element, key, accessor)=> {\n\tif (key === 'ref'){\n\t\t// babel-preset-plastic's template fast path emits identifier refs as\n\t\t// `() => refCallback` thunks (0-arity), but passes inline arrow/function\n\t\t// expressions through verbatim (>= 1-arity). Distinguish by arity so\n\t\t// both shapes work without probing (which would invoke a direct callback\n\t\t// with undefined).\n\t\tconst ref = typeof accessor === 'function' && accessor.length === 0 ? accessor() : accessor\n\t\tapplyRefProp(element, ref)\n\t\treturn\n\t}\n\t// Event handlers (onClick, etc.) — the babel transform emits them as\n\t// `() => handler` thunks. Resolve once to the handler and attach a single\n\t// listener that re-reads the current accessor at dispatch time (so a signal\n\t// returning different handlers stays live without re-attaching).\n\tif (isEventProp(key)){\n\t\tconst eventName = key.slice(2).toLowerCase()\n\t\tif (!isSupportedEvent(element, eventName)){\n\t\t\treturn\n\t\t}\n\t\t// The babel transform wraps identifier accessors as `() => handler` thunks\n\t\t// so a later signal update swapping the handler reference stays live\n\t\t// without re-attaching. Arrow/function expressions written inline are\n\t\t// passed through verbatim and *are* the handler.\n\t\t//\n\t\t// Previously we probed `accessor()` once at attach time to decide which\n\t\t// shape we had. That broke whenever the handler was undefined / not yet\n\t\t// resolved at attach time (e.g. `() => api.onPress` where `api.onPress`\n\t\t// is populated later by a signal or async init): probe returned a non-fn,\n\t\t// useUnwrap stayed false forever, dispatch then invoked the thunk itself\n\t\t// (discarding its return value) and the real handler never fired. The\n\t\t// probe also caused observable side effects on attach.\n\t\t//\n\t\t// Instead: at dispatch time, if the accessor is a thunk (returns a\n\t\t// function), unwrap once and call the result; otherwise call the\n\t\t// accessor directly. Reactive primitives (signal/computed) follow the\n\t\t// same shape — they're functions returning the current value.\n\t\tconst listener = (...args)=> {\n\t\t\tconst handler = accessor\n\t\t\tif (typeof handler === 'function'){\n\t\t\t\tconst unwrapped = handler(...args)\n\t\t\t\tif (typeof unwrapped === 'function'){\n\t\t\t\t\tunwrapped(...args)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telement.addEventListener(eventName, listener)\n\t\tif (currentOwner || getCurrentComputation()){\n\t\t\tregisterCleanup(()=> {\n\t\t\t\telement.removeEventListener(eventName, listener)\n\t\t\t})\n\t\t}\n\t\treturn\n\t}\n\tif (typeof accessor !== 'function' || isReactivePrimitive(accessor)){\n\t\t// Reactive primitives (signal/computed) also go through the effect path\n\t\t// so the prop stays in sync — handled in the else branch below.\n\t\tif (!isReactive(accessor)){\n\t\t\tapplyStaticProp(element, key, accessor)\n\t\t\treturn\n\t\t}\n\t}\n\tlet prevStyle\n\tcreateBindingEffect(()=> {\n\t\tconst v = resolveReactiveValue(accessor)\n\t\tif (key === 'className' || key === 'class'){\n\t\t\tapplyClassProp(element, v)\n\t\t\treturn\n\t\t}\n\t\tif (key === 'style'){\n\t\t\tprevStyle = applyStyleProp(element, v, prevStyle)\n\t\t\treturn\n\t\t}\n\t\tsetDomProp(element, JSX_PROP_MAP[key] ?? key, v)\n\t})\n}\n\n// Walk a DOM subtree and dispose every component owner found.\n// Handles native-rooted trees where the root node has no OWNER reference.\nconst disposeOwnedSubtree = (node)=> {\n\tif (!(node instanceof Node)){ return }\n\tconst owners = []\n\tconst stack = [node]\n\twhile (stack.length){\n\t\tconst current = stack.pop()\n\t\tconst owner = current[OWNER]\n\t\tif (owner){\n\t\t\towners.push(owner)\n\t\t}\n\t\tfor (const child of current.childNodes){\n\t\t\tstack.push(child)\n\t\t}\n\t}\n\t// Dispose top-most owners first (parents before children).\n\t// disposeOwner handles children recursively, so disposing a parent\n\t// covers its entire subtree. We only need to fire each unique root.\n\t// Use a Set for O(1) parent-membership lookups — `Array.includes`\n\t// degenerates to O(n²) total work on large unmounts (Loop with thousands\n\t// of items).\n\tconst ownerSet = new Set(owners)\n\tconst seen = new Set()\n\tfor (const o of owners){\n\t\tif (!o.parent || !ownerSet.has(o.parent)){\n\t\t\tif (!seen.has(o)){\n\t\t\t\tseen.add(o)\n\t\t\t\tdisposeOwner(o)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Render by appending the normalized root node into the target container.\n// Returns a disposer function that cleans up all effects and listeners.\nconst renderApp = (container, node)=> {\n\tconst appNode = node2Element(node)\n\t// Capture the actual placed nodes before appendChild — when appNode is a\n\t// DocumentFragment (e.g. a component returning a thunk routes through\n\t// createReactiveChildNode), it is drained on insertion and would no longer\n\t// reference its children, hiding any OWNER attached deeper in the subtree.\n\tconst placedNodes = appNode instanceof DocumentFragment ? [...appNode.childNodes] : [appNode]\n\tcontainer.appendChild(appNode)\n\t// Walk the full DOM subtree to find all component owners and fire their\n\t// onMount callbacks. The root node may be a native element (e.g. <div>)\n\t// which never gets an OWNER reference, but nested component outputs do.\n\t// renderApp is an explicit mount boundary — fire onMount regardless of\n\t// whether `container` is currently attached to a document, so detached\n\t// containers (the common testing pattern) still run lifecycle callbacks.\n\tplacedNodes.forEach(n=> mountOwnedSubtree(n, { force: true }))\n\n\t// Return a disposer function\n\tlet disposed = false\n\tconst dispose = ()=> {\n\t\tif (disposed){ return }\n\t\tdisposed = true\n\t\tplacedNodes.forEach(n=> disposeOwnedSubtree(n))\n\t\tplacedNodes.forEach((n)=> {\n\t\t\tif (n.parentNode === container){\n\t\t\t\tcontainer.removeChild(n)\n\t\t\t}\n\t\t})\n\t}\n\n\treturn dispose\n}\n\nexport {\n\t// Public API\n\tFragment,\n\th,\n\tjsx,\n\tjsxDEV,\n\tjsxs,\n\tjsxStatic,\n\t// DOM template cloning helpers (babel reactive transform emits these for\n\t// statically-shaped JSX subtrees — they let cloned templates skip the\n\t// per-element jsx()/applyProps machinery)\n\ttemplate,\n\tinsert,\n\tsetProp,\n\tonMount,\n\tonUnmount,\n\tcreateContext,\n\tuseContext,\n\trenderApp,\n\t// Internal signal primitives (framework internals/tests)\n\tcreateComputed,\n\tcreateSignal,\n\tcreateTree,\n\ttoRaw,\n\tisTree,\n\t// Owner / lifecycle internals\n\tcreateOwner,\n\trunOwnerMounts,\n\trunWithOwner,\n\tdisposeOwner,\n\tcreateBindingEffect,\n\tregisterCleanup,\n\t// Reactive helpers\n\tisReactivePrimitive,\n\tisReactive,\n\t// DOM helpers\n\tcreatePlaceholder,\n\tflattenChildren,\n\tisEventProp,\n\tisSupportedEvent,\n\tisBooleanDomProp,\n\tJSX_PROP_MAP,\n\tnormalizeTextNodeValue,\n\tcreateReactiveTextNode,\n\ttoClassTokens,\n\ttoClassMap,\n\tapplyClassNameMap,\n\tapplyClassProp,\n\tapplyStyleObject,\n\tclearStyleKey,\n\tapplyStyleProp,\n\tapplyRefProp,\n\tclearDomProp,\n\tsetDomProp,\n\tapplyCommonAttribute,\n\tapplyProps,\n\tmaterializeNode,\n\tnode2Element,\n\tappendChild,\n\tappendChildren,\n\t// Control flow\n\tmountDynamic,\n\tEither,\n\tTrue,\n\tFalse,\n\tMatch,\n\tCase,\n\tDefault,\n\tLoop,\n\tPortal,\n\tDynamic,\n\t// Reactive props proxy\n\tisMergedProps,\n\tmergeProps,\n}\n","import { css } from '@emotion/css'\nimport { splitProps } from '@plastic-js/plastic'\n\nconst wrapperClass = css({\n\tdisplay: 'flex',\n\talignItems: 'center',\n\twidth: '100%',\n\tboxSizing: 'border-box',\n\theight: '44px',\n\tbackground: 'var(--bg, rgba(0,0,0,0.2))',\n\tborder: '1px solid var(--border)',\n\tborderRadius: '10px',\n\tpadding: '0 14px',\n\t'&:focus-within': { borderColor: 'var(--accent)' },\n})\n\nconst errorClass = css({\n\tborderColor: 'var(--danger) !important',\n})\n\nconst inputClass = css({\n\tflex: 1,\n\tminWidth: 0,\n\theight: '100%',\n\tbackground: 'transparent',\n\tborder: 'none',\n\tcolor: 'var(--ink)',\n\tfontSize: '15px',\n\tfontFamily: 'inherit',\n\toutline: 'none',\n\tletterSpacing: '1.5px',\n\t'&::placeholder': { color: 'var(--muted)', letterSpacing: 'normal' },\n})\n\nconst read = (value)=> {\n\treturn typeof value === 'function' ? value() : value\n}\n\nconst groupDigits = (digits)=> {\n\tif (!digits){ return '' }\n\treturn digits.replace(/(\\d{4})(?=\\d)/g, '$1-')\n}\n\nconst CardNumberInput = (props)=> {\n\tconst [local, rest] = splitProps(props, ['value', 'onValueChange', 'invalid', 'placeholder'])\n\treturn (\n\t\t<div className={()=> `${wrapperClass} ${read(local.invalid) ? errorClass : ''}`}>\n\t\t\t<input\n\t\t\t\tclassName={inputClass}\n\t\t\t\tinputMode='numeric'\n\t\t\t\tonInput={e=> local.onValueChange?.(e.target.value.replace(/\\D/g, ''))}\n\t\t\t\tplaceholder={local.placeholder ?? '0000-0000-0000-0000'}\n\t\t\t\tvalue={()=> groupDigits(read(local.value))}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t</div>\n\t)\n}\n\nexport default CardNumberInput\n","import { Carousel } from '@plastic-js/ark'\n\nexport default Carousel\n","import { Checkbox } from '@plastic-js/ark'\n\nexport default Checkbox\n","import { Clipboard } from '@plastic-js/ark'\n\nexport default Clipboard\n","import { Collapsible } from '@plastic-js/ark'\n\nexport default Collapsible\n","import { ColorPicker } from '@plastic-js/ark'\n\nexport default ColorPicker\n","import { Combobox, useComboboxContext } from '@plastic-js/ark'\n\nconst OriginalRoot = Combobox.Root\n\nconst Root = (props = {})=> <OriginalRoot {...props} />\n\nconst Input = (props = {})=> {\n\tconst combobox = useComboboxContext()\n\treturn (\n\t\t<Combobox.Input\n\t\t\t{...props}\n\t\t\tonInput={event=> combobox().getInputProps().onChange?.(event)}\n\t\t/>\n\t)\n}\n\nexport default Object.assign(Root, {\n\t...Combobox, OriginalRoot, Root, Input,\n})\n","import { Portal } from '@plastic-js/ark'\n\nexport default Portal\n","import { css } from '@emotion/css'\n\nconst iconClass = css({\n\tdisplay: 'inline-flex',\n\talignItems: 'center',\n\tjustifyContent: 'center',\n\tcolor: 'currentColor',\n\t'& svg': {\n\t\twidth: '100%', height: '100%', display: 'block', strokeWidth: 'var(--icon-sw)',\n\t},\n})\n\nconst Icon = ({\n\tsvg, size = 22, strokeWidth = 1.25, className,\n})=> {\n\tconst style = {\n\t\twidth: `${size}px`, height: `${size}px`, '--icon-sw': strokeWidth,\n\t}\n\tconst setEl = (el)=> { if (el && el.innerHTML !== svg){ el.innerHTML = svg } }\n\treturn <span className={className ? `${iconClass} ${className}` : iconClass} ref={setEl} style={style} />\n}\n\nexport default Icon\n","import { css } from '@emotion/css'\nimport { Dialog } from '@plastic-js/ark'\nimport { splitProps } from '@plastic-js/plastic'\nimport Portal from './Portal.jsx'\nimport Icon from './Icon.jsx'\n\nconst backdropClass = css({\n\tposition: 'fixed',\n\tinset: 0,\n\tbackground: 'rgba(0, 0, 0, 0.6)',\n\tbackdropFilter: 'blur(4px)',\n\tzIndex: 9998,\n\t'&[hidden]': { display: 'none' },\n})\n\nconst positionerClass = css({\n\tposition: 'fixed',\n\tinset: 0,\n\tdisplay: 'flex',\n\talignItems: 'flex-end',\n\tjustifyContent: 'center',\n\tzIndex: 9999,\n\t'@media (min-width: 640px)': {\n\t\talignItems: 'center',\n\t\tpadding: '24px',\n\t},\n})\n\nconst contentClass = css({\n\tbackground: 'var(--surface)',\n\tborder: '1px solid var(--border)',\n\tborderRadius: '20px 20px 0 0',\n\twidth: '100%',\n\tmaxWidth: '480px',\n\tmaxHeight: '92vh',\n\tdisplay: 'flex',\n\tflexDirection: 'column',\n\tcolor: 'var(--ink)',\n\tboxShadow: '0 -8px 32px rgba(0,0,0,0.4)',\n\t'&[hidden]': { display: 'none' },\n\t'@media (min-width: 640px)': {\n\t\tborderRadius: '20px',\n\t},\n})\n\nconst headClass = css({\n\tdisplay: 'flex',\n\talignItems: 'center',\n\tjustifyContent: 'space-between',\n\tpadding: '18px 20px',\n\tborderBottom: '1px solid var(--border)',\n})\n\nconst titleWrapClass = css({\n\tdisplay: 'flex',\n\talignItems: 'center',\n\tgap: '10px',\n\tminWidth: 0,\n})\n\nconst titleIconClass = css({\n\tflexShrink: 0,\n\tcolor: 'var(--accent)',\n})\n\nconst titleClass = css({\n\tfontSize: '18px',\n\tfontWeight: 700,\n\tmargin: 0,\n})\n\nconst closeBtnClass = css({\n\twidth: '32px',\n\theight: '32px',\n\tborderRadius: '50%',\n\tbackground: 'transparent',\n\tborder: 'none',\n\tcolor: 'var(--muted)',\n\tfontSize: '22px',\n\tlineHeight: 1,\n\tcursor: 'pointer',\n\tdisplay: 'flex',\n\talignItems: 'center',\n\tjustifyContent: 'center',\n\t'&:hover': { background: 'rgba(255,255,255,0.06)', color: 'var(--ink)' },\n\t'&[hidden]': { display: 'none' },\n})\n\nconst bodyClass = css({\n\tpadding: '20px',\n\toverflowY: 'auto',\n})\n\nconst footClass = css({\n\tdisplay: 'flex',\n\tgap: '10px',\n\tpadding: '14px 20px 20px',\n\tborderTop: '1px solid var(--border)',\n})\n\nconst btnClass = css({\n\tflex: 1,\n\theight: '46px',\n\tborderRadius: '10px',\n\tborder: '1px solid var(--border)',\n\tbackground: 'transparent',\n\tcolor: 'var(--ink)',\n\tfontSize: '15px',\n\tfontWeight: 600,\n\tfontFamily: 'inherit',\n\tcursor: 'pointer',\n\t'&:hover': { borderColor: 'rgba(255,255,255,0.2)' },\n})\n\nconst btnPrimaryClass = css({\n\tbackground: 'var(--accent)',\n\tborderColor: 'var(--accent)',\n\tcolor: '#fff',\n\t'&:hover': { filter: 'brightness(1.08)' },\n\t'&:disabled': { opacity: 0.5, cursor: 'not-allowed' },\n})\n\nconst OriginalRoot = Dialog.Root\n\nconst Root = (props = {})=> {\n\tconst [local, rest] = splitProps(props, ['onOpen', 'onClose', 'onOpenChange', 'closeOnInteractOutside'])\n\treturn OriginalRoot({\n\t\t...rest,\n\t\tcloseOnInteractOutside: local.closeOnInteractOutside ?? false,\n\t\tonOpenChange: (open)=> {\n\t\t\tlocal.onOpenChange?.(open)\n\t\t\tif (open){ local.onOpen?.() } else { local.onClose?.() }\n\t\t},\n\t})\n}\n\nconst Preset = (props)=> {\n\tconst [local, rootProps] = splitProps(props, ['title', 'icon', 'cancelText', 'confirmText', 'onConfirm', 'loading', 'children'])\n\treturn (\n\t\t<Root {...rootProps}>\n\t\t\t<Portal>\n\t\t\t\t<Dialog.Backdrop className={backdropClass} />\n\t\t\t\t<Dialog.Positioner className={positionerClass}>\n\t\t\t\t\t<Dialog.Content className={contentClass}>\n\t\t\t\t\t\t<div className={headClass}>\n\t\t\t\t\t\t\t<div className={titleWrapClass}>\n\t\t\t\t\t\t\t\t{local.icon && <Icon className={titleIconClass} size={20} svg={local.icon} />}\n\t\t\t\t\t\t\t\t<Dialog.Title className={titleClass}>\n\t\t\t\t\t\t\t\t\t{local.title}\n\t\t\t\t\t\t\t\t</Dialog.Title>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Dialog.CloseTrigger aria-label='Close' className={closeBtnClass} hidden>×</Dialog.CloseTrigger>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className={bodyClass}>\n\t\t\t\t\t\t\t{local.children}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{((local.cancelText ?? 'Cancel') || (local.confirmText ?? 'Confirm')) && (\n\t\t\t\t\t\t\t<div className={footClass}>\n\t\t\t\t\t\t\t\t<Dialog.CloseTrigger className={btnClass} type='button'>\n\t\t\t\t\t\t\t\t\t{local.cancelText ?? 'Cancel'}\n\t\t\t\t\t\t\t\t</Dialog.CloseTrigger>\n\t\t\t\t\t\t\t\t{(local.confirmText ?? 'Confirm') && (\n\t\t\t\t\t\t\t\t\t<button className={`${btnClass} ${btnPrimaryClass}`} disabled={local.loading?.()} onClick={local.onConfirm} type='button'>\n\t\t\t\t\t\t\t\t\t\t{local.loading?.() ? 'Loading…' : local.confirmText ?? 'Confirm'}\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Dialog.Content>\n\t\t\t\t</Dialog.Positioner>\n\t\t\t</Portal>\n\t\t</Root>\n\t)\n}\n\nexport default Object.assign(Root, {\n\t...Dialog, OriginalRoot: Root, Root: Preset,\n})\n","import { css } from '@emotion/css'\nimport Dialog from './Dialog.jsx'\n\nconst messageClass = css({\n\tfontSize: '15px',\n\tlineHeight: 1.5,\n\tcolor: 'var(--ink)',\n\ttextAlign: 'center',\n\tpadding: '8px 0',\n})\n\nconst ConfirmDialog = ({\n\topen, onOpenChange, onConfirm, loading, title, message, confirmText, cancelText,\n})=> {\n\tconst handleConfirm = ()=> {\n\t\tonConfirm?.()\n\t}\n\n\treturn (\n\t\t<Dialog.Root\n\t\t\tcancelText={cancelText ?? 'Cancel'}\n\t\t\tconfirmText={confirmText ?? 'Delete'}\n\t\t\tloading={loading}\n\t\t\tonConfirm={handleConfirm}\n\t\t\tonOpenChange={onOpenChange}\n\t\t\topen={open}\n\t\t\ttitle={title ?? 'Confirm'}\n\t\t>\n\t\t\t<p className={messageClass}>\n\t\t\t\t{message}\n\t\t\t</p>\n\t\t</Dialog.Root>\n\t)\n}\n\nexport default ConfirmDialog\n","import { DateInput } from '@plastic-js/ark'\n\nexport default DateInput\n","import { DatePicker } from '@plastic-js/ark'\n\nexport default DatePicker\n","import { Drawer } from '@plastic-js/ark'\n\nexport default Drawer\n","import { Field } from '@plastic-js/ark'\n\nexport default Field\n","import { Fieldset } from '@plastic-js/ark'\n\nexport default Fieldset\n","import { FileUpload } from '@plastic-js/ark'\n\nexport default FileUpload\n","import { Combobox, useComboboxContext } from '@plastic-js/ark'\nimport {\n\tLoop, createComputed, createContext, createEffect, createSignal, splitProps, useContext,\n} from '@plastic-js/plastic'\nimport { collection as createCollection } from '@zag-js/combobox'\n\n// FilteredSelect — a filterable single-select built on the pure `Combobox`\n// primitive's underlying headless machine.\n//\n// This file owns two things:\n// 1. The filter plumbing. The headless component is \"controlled collection\"\n// only: it expects you to build a @zag-js collection yourself and narrow it\n// down as the user types. The internal <Root> keeps a query in sync with the\n// input, filters the list and feeds a reactive collection back to the\n// headless Root.\n// 2. The public API / contract. The default-exported <FilteredSelect> assembles\n// the full structure (label, control, input, trigger, content, items) and\n// exposes a flat prop API. It is intentionally style-agnostic: every visual\n// slot is themed through the `classNames` map, so the styling layer\n// (MyFilteredSelect) only has to supply CSS.\n\nconst access = (value)=> {\n\treturn typeof value === 'function' ? value() : value\n}\n\n// Exposes the filtered items to <Items> without forcing the caller to thread\n// them through props.\nconst FilterContext = createContext(null)\n\nconst defaultItemToValue = item=> String(item?.value ?? item?.id ?? item)\nconst defaultItemToString = item=> String(item?.label ?? item?.name ?? item)\n\n// Substring match on the item's display string. Override via the `filter` prop\n// for fuzzy/score-based matching.\nconst defaultFilter = (item, query, itemToString)=> itemToString(item).toLowerCase().includes(query)\n\nconst Root = (props = {})=> {\n\tconst [local, rest] = splitProps(props, [\n\t\t'items', 'itemToValue', 'itemToString', 'filter', 'inputValue', 'onInputValueChange', 'children',\n\t])\n\n\tconst itemToValue = local.itemToValue ?? defaultItemToValue\n\tconst itemToString = local.itemToString ?? defaultItemToString\n\tconst filter = local.filter ?? defaultFilter\n\n\t// Internal query mirrors the input. We seed it from any `inputValue` the\n\t// caller passed so an initial/controlled value still filters correctly.\n\tconst query = createSignal(access(local.inputValue) ?? '')\n\n\t// Recomputes on typing and whenever the source `items` change. An empty\n\t// query shows everything; otherwise only the matches survive.\n\tconst filteredItems = createComputed(()=> {\n\t\tconst q = query().trim().toLowerCase()\n\t\tconst list = access(local.items) ?? []\n\t\treturn q ? list.filter(item=> filter(item, q, itemToString)) : list\n\t})\n\n\tconst collection = createComputed(()=> createCollection({\n\t\titems: filteredItems(),\n\t\titemToValue,\n\t\titemToString,\n\t}))\n\n\treturn (\n\t\t<FilterContext.Provider value={filteredItems}>\n\t\t\t<Combobox.Root\n\t\t\t\t{...rest}\n\t\t\t\tcollection={collection}\n\t\t\t\tinputValue={query}\n\t\t\t\tonInputValueChange={(value)=> {\n\t\t\t\t\tquery(value)\n\t\t\t\t\tlocal.onInputValueChange?.(value)\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<HighlightSingleMatch itemToValue={itemToValue} items={filteredItems} />\n\t\t\t\t{local.children}\n\t\t\t</Combobox.Root>\n\t\t</FilterContext.Provider>\n\t)\n}\n\n// When the open list narrows to a single match, pre-highlight it so the user\n// can confirm with Enter/Tab without arrowing down. We nudge the machine's own\n// (uncontrolled) highlight imperatively rather than controlling `highlightedValue`\n// — controlling it would pin the highlight in place and fight the machine, e.g.\n// blocking the highlight-clear on the next keystroke and the select-and-close on\n// Enter. We only set it; the machine still clears/moves it on input and navigation.\nconst HighlightSingleMatch = (props = {})=> {\n\tconst combobox = useComboboxContext()\n\tcreateEffect(()=> {\n\t\tconst api = combobox()\n\t\tconst list = props.items()\n\t\tif (!api.open || list.length !== 1){ return }\n\t\tconst value = props.itemToValue(list[0])\n\t\tif (api.highlightedValue !== value){ api.setHighlightValue(value) }\n\t})\n\treturn null\n}\n\n// The headless input only fires zag's INPUT.CHANGE on the native `change`\n// event — which, unlike React's onChange, fires on blur, not per keystroke. So\n// typing never reached the machine and the list never filtered. We bridge the\n// per-keystroke `input` event to zag's own onChange handler so every character\n// drives the same INPUT.CHANGE (open + filter) behaviour.\nconst Input = (props = {})=> {\n\tconst combobox = useComboboxContext()\n\treturn (\n\t\t<Combobox.Input\n\t\t\t{...props}\n\t\t\tonInput={event=> combobox().getInputProps().onChange?.(event)}\n\t\t/>\n\t)\n}\n\n// Render-prop over the filtered items. Place inside <Combobox.Content> and\n// return a <Combobox.Item> for each match. Backed by <Loop> so the list stays\n// reactive — a bare thunk returned from a component is unwrapped once and would\n// never re-filter.\nconst Items = (props = {})=> {\n\tconst items = useContext(FilterContext)\n\treturn (\n\t\t<Loop each={items ?? []}>\n\t\t\t{item=> props.children?.(item)}\n\t\t</Loop>\n\t)\n}\n\nfunction ChevronIcon(){\n\treturn (\n\t\t<svg\n\t\t\tfill='none' stroke='currentColor' strokeLinecap='round' strokeLinejoin='round'\n\t\t\tstrokeWidth='2' viewBox='0 0 24 24'\n\t\t>\n\t\t\t<polyline points='6 9 12 15 18 9' />\n\t\t</svg>\n\t)\n}\n\nfunction CheckIcon(){\n\treturn (\n\t\t<svg\n\t\t\tfill='none' stroke='currentColor' strokeLinecap='round' strokeLinejoin='round'\n\t\t\tstrokeWidth='2.5' viewBox='0 0 24 24'\n\t\t>\n\t\t\t<polyline points='20 6 9 17 4 12' />\n\t\t</svg>\n\t)\n}\n\n// Public component. `classNames` themes each slot (control/input/trigger/content/\n// empty/item/itemText/check/label); anything not split here (e.g. `filter`,\n// `name`) flows through to the filter Root.\nconst FilteredSelect = (props = {})=> {\n\tconst [local, rest] = splitProps(props, [\n\t\t'items',\n\t\t'itemToString',\n\t\t'itemToValue',\n\t\t'placeholder',\n\t\t'label',\n\t\t'openOnClick',\n\t\t'disabled',\n\t\t'classNames',\n\t\t'emptyText',\n\t])\n\n\tconst cn = local.classNames ?? {}\n\n\t// `value`, `onValueChange`, `filter`, `name`, … are not transformed here, so\n\t// they ride `rest` straight through to the underlying machine.\n\treturn (\n\t\t<Root\n\t\t\titemToString={local.itemToString}\n\t\t\titemToValue={local.itemToValue}\n\t\t\titems={local.items}\n\t\t\topenOnClick={local.openOnClick ?? true}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{local.label && (\n\t\t\t\t<Combobox.Label className={cn.label}>\n\t\t\t\t\t{local.label}\n\t\t\t\t</Combobox.Label>\n\t\t\t)}\n\t\t\t<Combobox.Control className={cn.control}>\n\t\t\t\t<Input\n\t\t\t\t\tclassName={cn.input}\n\t\t\t\t\tdisabled={local.disabled}\n\t\t\t\t\tplaceholder={local.placeholder ?? 'Type to search...'}\n\t\t\t\t/>\n\t\t\t\t<Combobox.Trigger className={cn.trigger} type='button'>\n\t\t\t\t\t<ChevronIcon />\n\t\t\t\t</Combobox.Trigger>\n\t\t\t</Combobox.Control>\n\t\t\t<Combobox.Content className={cn.content}>\n\t\t\t\t<Combobox.Empty className={cn.empty}>\n\t\t\t\t\t{local.emptyText ?? 'No results found'}\n\t\t\t\t</Combobox.Empty>\n\t\t\t\t<Items>\n\t\t\t\t\t{item=> (\n\t\t\t\t\t\t<Combobox.Item className={cn.item} item={item} key={local.itemToValue?.(item) ?? item}>\n\t\t\t\t\t\t\t<Combobox.ItemText className={cn.itemText}>\n\t\t\t\t\t\t\t\t{local.itemToString?.(item) ?? String(item)}\n\t\t\t\t\t\t\t</Combobox.ItemText>\n\t\t\t\t\t\t\t<span className={cn.check}>\n\t\t\t\t\t\t\t\t<CheckIcon />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</Combobox.Item>\n\t\t\t\t\t)}\n\t\t\t\t</Items>\n\t\t\t</Combobox.Content>\n\t\t</Root>\n\t)\n}\n\nexport default FilteredSelect\n","import { FocusTrap } from '@plastic-js/ark'\n\nexport default FocusTrap\n","import { HoverCard } from '@plastic-js/ark'\n\nexport default HoverCard\n","import { Listbox } from '@plastic-js/ark'\n\nexport default Listbox\n","import { Menu } from '@plastic-js/ark'\n\nexport default Menu\n","import { css } from '@emotion/css'\nimport { splitProps } from '@plastic-js/plastic'\n\nconst wrapperClass = css({\n\tdisplay: 'flex',\n\talignItems: 'center',\n\twidth: '100%',\n\tboxSizing: 'border-box',\n\theight: '44px',\n\tbackground: 'var(--bg, rgba(0,0,0,0.2))',\n\tborder: '1px solid var(--border)',\n\tborderRadius: '10px',\n\tpadding: '0 14px',\n\t'&:focus-within': { borderColor: 'var(--accent)' },\n})\n\nconst errorClass = css({\n\tborderColor: 'var(--danger) !important',\n})\n\nconst affixTextClass = css({\n\tcolor: 'var(--muted)',\n\tfontSize: '14px',\n\twhiteSpace: 'nowrap',\n\tuserSelect: 'none',\n\tmarginRight: '2px',\n})\n\n// Trailing unit (e.g. K, M): brighter and separated so it reads as part of the\n// value rather than faint decoration.\nconst affixSuffixClass = css({\n\tcolor: 'var(--ink)',\n\tfontSize: '14px',\n\tfontWeight: 600,\n\twhiteSpace: 'nowrap',\n\tuserSelect: 'none',\n\tpaddingLeft: '10px',\n\tmarginLeft: '4px',\n\tborderLeft: '1px solid var(--border)',\n})\n\n// Dim the suffix to match the disabled value text (the span is a sibling of the\n// input, so it doesn't inherit the input's :disabled styling).\nconst affixSuffixDisabledClass = css({\n\topacity: 0.5,\n})\n\nconst inputClass = css({\n\tflex: 1,\n\tminWidth: 0,\n\theight: '100%',\n\tbackground: 'transparent',\n\tborder: 'none',\n\tcolor: 'var(--ink)',\n\tfontSize: '15px',\n\tfontFamily: 'inherit',\n\toutline: 'none',\n\t'&::placeholder': { color: 'var(--muted)' },\n\t// Keep disabled text legible (WebKit otherwise forces a faint grey) while\n\t// still reading as read-only, matching the other disabled fields.\n\t'&:disabled': {\n\t\topacity: 0.5,\n\t\tcursor: 'not-allowed',\n\t\tWebkitTextFillColor: 'var(--ink)',\n\t},\n})\n\n// Props may be plain values or reactive accessors (signals); unwrap either.\nconst read = (value)=> {\n\treturn typeof value === 'function' ? value() : value\n}\n\n// Stored value is a digits-only string; display it grouped by thousands.\nconst groupThousands = (digits)=> {\n\tif (!digits){ return '' }\n\treturn Number(digits).toLocaleString('en-US')\n}\n\n/**\n * Currency amount input. Keeps an integer digits-only string as its value and\n * renders it grouped by thousands with a currency prefix.\n *\n * @param value digits-only string, or an accessor returning one\n * @param onValueChange called with the next digits-only string on input\n * @param invalid boolean or accessor; toggles the error border\n * @param currency prefix symbol, defaults to ₱\n * @param affix optional suffix text (e.g. K, M), defaults to empty\n */\nconst MoneyInput = (props)=> {\n\tconst [local, rest] = splitProps(props, ['value', 'onValueChange', 'invalid', 'currency', 'affix', 'placeholder', 'disabled'])\n\treturn (\n\t\t<div className={()=> `${wrapperClass} ${read(local.invalid) ? errorClass : ''}`}>\n\t\t\t<span className={affixTextClass}>\n\t\t\t\t{local.currency ?? '₱'}\n\t\t\t</span>\n\t\t\t<input\n\t\t\t\tclassName={inputClass}\n\t\t\t\tdisabled={local.disabled}\n\t\t\t\tinputMode='numeric'\n\t\t\t\tonInput={e=> local.onValueChange?.(e.target.value.replace(/\\D/g, ''))}\n\t\t\t\tplaceholder={local.placeholder}\n\t\t\t\tvalue={()=> groupThousands(read(local.value))}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t\t{()=> read(local.affix) && (\n\t\t\t\t<span className={()=> `${affixSuffixClass} ${read(local.disabled) ? affixSuffixDisabledClass : ''}`}>\n\t\t\t\t\t{read(local.affix)}\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n\nexport default MoneyInput\n","import { css } from '@emotion/css'\nimport FilteredSelect from './FilteredSelect.jsx'\n\n// MyFilteredSelect — the project's themed FilteredSelect. It owns nothing but\n// style: it supplies a `classNames` slot map to FilteredSelect, which holds all\n// the structure, behaviour and the public API/contract.\n\nconst controlClass = css({\n\tposition: 'relative',\n\tdisplay: 'flex',\n\talignItems: 'center',\n\twidth: '100%',\n\theight: '46px',\n\tbackground: 'var(--surface)',\n\tborder: '1px solid var(--border)',\n\tborderRadius: '10px',\n\ttransition: 'border-color 150ms ease',\n\t'&:focus-within': {\n\t\tborderColor: 'var(--accent)',\n\t},\n})\n\nconst inputClass = css({\n\tflex: 1,\n\tminWidth: 0,\n\theight: '100%',\n\tbackground: 'transparent',\n\tborder: 'none',\n\toutline: 'none',\n\tpadding: '0 0 0 14px',\n\tcolor: 'var(--ink)',\n\tfontSize: '15px',\n\tfontFamily: 'inherit',\n\t'&::placeholder': { color: 'var(--muted)' },\n})\n\nconst triggerClass = css({\n\tflexShrink: 0,\n\twidth: '36px',\n\theight: '100%',\n\tdisplay: 'flex',\n\talignItems: 'center',\n\tjustifyContent: 'center',\n\tbackground: 'transparent',\n\tborder: 'none',\n\tcolor: 'var(--muted)',\n\tcursor: 'pointer',\n\tpadding: 0,\n\ttransition: 'transform 180ms ease, color 180ms ease',\n\t'&[data-state=\"open\"]': {\n\t\ttransform: 'rotate(180deg)',\n\t\tcolor: 'var(--accent)',\n\t},\n\t'& svg': { width: '18px', height: '18px' },\n})\n\nconst contentClass = css({\n\tbackground: 'var(--surface)',\n\tborder: '1px solid var(--border)',\n\tborderRadius: '12px',\n\tpadding: '6px',\n\tboxShadow: '0 8px 32px rgba(0,0,0,0.5)',\n\tmaxHeight: '280px',\n\toverflowY: 'auto',\n\tminWidth: '220px',\n\tzIndex: 9999,\n\tmarginTop: '4px',\n\t'&[hidden]': { display: 'none' },\n\t'&::-webkit-scrollbar': { width: '4px' },\n\t'&::-webkit-scrollbar-track': { background: 'transparent' },\n\t'&::-webkit-scrollbar-thumb': {\n\t\tbackground: 'var(--border)',\n\t\tborderRadius: '4px',\n\t},\n})\n\nconst itemClass = css({\n\tdisplay: 'flex',\n\talignItems: 'center',\n\tgap: '10px',\n\tpadding: '10px 12px',\n\tborderRadius: '8px',\n\tcursor: 'pointer',\n\tcolor: 'var(--ink)',\n\tfontSize: '14px',\n\ttransition: 'background 120ms ease',\n\t'&[data-highlighted]': {\n\t\tbackground: 'var(--surface-2)',\n\t},\n\t'&[data-selected]': {\n\t\tcolor: 'var(--accent)',\n\t\tbackground: 'rgba(47, 123, 255, 0.1)',\n\t},\n})\n\nconst itemTextClass = css({\n\tflex: 1,\n\tminWidth: 0,\n})\n\nconst checkClass = css({\n\tflexShrink: 0,\n\twidth: '18px',\n\theight: '18px',\n\tcolor: 'var(--accent)',\n\topacity: 0,\n\ttransition: 'opacity 120ms ease',\n\t'[data-selected] &': { opacity: 1 },\n})\n\nconst emptyClass = css({\n\tpadding: '24px 12px',\n\ttextAlign: 'center',\n\tcolor: 'var(--muted)',\n\tfontSize: '14px',\n})\n\nconst labelClass = css({\n\tdisplay: 'block',\n\tfontSize: '13px',\n\tfontWeight: 600,\n\tcolor: 'var(--muted)',\n\tmarginBottom: '6px',\n})\n\nconst classNames = {\n\tcontrol: controlClass,\n\tinput: inputClass,\n\ttrigger: triggerClass,\n\tcontent: contentClass,\n\titem: itemClass,\n\titemText: itemTextClass,\n\tcheck: checkClass,\n\tempty: emptyClass,\n\tlabel: labelClass,\n}\n\nconst MyFilteredSelect = (props = {})=> <FilteredSelect classNames={classNames} {...props} />\n\nexport default MyFilteredSelect\n","import { NumberInput } from '@plastic-js/ark'\n\nexport default NumberInput\n","import { Pagination } from '@plastic-js/ark'\n\nexport default Pagination\n","import { Popover } from '@plastic-js/ark'\n\nexport default Popover\n","import { Presence } from '@plastic-js/ark'\n\nexport default Presence\n","import { Progress } from '@plastic-js/ark'\n\nexport default Progress\n","import { RadioGroup } from '@plastic-js/ark'\n\nexport default RadioGroup\n","import { RatingGroup } from '@plastic-js/ark'\n\nexport default RatingGroup\n","import { css } from '@emotion/css'\nimport { splitProps } from '@plastic-js/plastic'\n\nconst wrapperClass = css({\n\tflex: 1,\n\tminWidth: 0,\n\tposition: 'relative',\n})\n\nconst inputClass = css({\n\twidth: '100%',\n\theight: '44px',\n\tbackground: 'var(--surface)',\n\tborder: '1px solid var(--border)',\n\tborderRadius: '10px',\n\tpadding: '0 14px 0 44px',\n\tcolor: 'var(--ink)',\n\tfontSize: '15px',\n\tfontFamily: 'inherit',\n\toutline: 'none',\n\t'&::placeholder': { color: 'var(--muted)' },\n\t'&:focus': { borderColor: 'var(--accent)' },\n})\n\nconst iconClass = css({\n\tposition: 'absolute',\n\tleft: '13px',\n\ttop: '50%',\n\ttransform: 'translateY(-50%)',\n\tcolor: 'var(--muted)',\n\tpointerEvents: 'none',\n\t'& svg': { width: '18px', height: '18px' },\n})\n\nconst SearchInput = (props)=> {\n\tconst [local, rest] = splitProps(props, ['placeholder', 'onInput'])\n\treturn (\n\t\t<div className={wrapperClass}>\n\t\t\t<span aria-hidden='true' className={iconClass}>\n\t\t\t\t<SearchIcon />\n\t\t\t</span>\n\t\t\t<input\n\t\t\t\tclassName={inputClass}\n\t\t\t\tonInput={local.onInput}\n\t\t\t\tplaceholder={local.placeholder ?? 'Search...'}\n\t\t\t\ttype='search'\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t</div>\n\t)\n}\n\nfunction SearchIcon(){\n\treturn (\n\t\t<svg\n\t\t\tfill='none' stroke='currentColor' strokeLinecap='round' strokeLinejoin='round'\n\t\t\tstrokeWidth='2' viewBox='0 0 24 24'\n\t\t>\n\t\t\t<circle cx='11' cy='11' r='7' />\n\t\t\t<path d='M21 21l-4.35-4.35' />\n\t\t</svg>\n\t)\n}\n\nexport default SearchInput\n","import { Select } from '@plastic-js/ark'\n\nexport default Select\n","import { SignaturePad } from '@plastic-js/ark'\n\nexport default SignaturePad\n","import { css, keyframes } from '@emotion/css'\n\nconst shimmer = keyframes({\n\t'0%': { backgroundPosition: '-200% 0' },\n\t'100%': { backgroundPosition: '200% 0' },\n})\n\nconst baseClass = css({\n\tdisplay: 'block',\n\tbackground: 'linear-gradient(90deg, var(--border) 0%, var(--surface) 50%, var(--border) 100%)',\n\tbackgroundSize: '200% 100%',\n\tanimation: `${shimmer} 1.4s ease-in-out infinite`,\n\tborderRadius: '6px',\n})\n\nconst Skeleton = ({\n\twidth = '100%', height = '14px', radius, className, style,\n})=> (\n\t<span\n\t\tclassName={className ? `${baseClass} ${className}` : baseClass}\n\t\tstyle={{\n\t\t\twidth, height, borderRadius: radius, ...style,\n\t\t}}\n\t/>\n)\n\nexport default Skeleton\n","import { Slider } from '@plastic-js/ark'\n\nexport default Slider\n","import { Splitter } from '@plastic-js/ark'\n\nexport default Splitter\n","import { Steps } from '@plastic-js/ark'\n\nexport default Steps\n","import { css } from '@emotion/css'\nimport { createEffect, createSignal } from '@plastic-js/plastic'\n\nconst ACTIONS_WIDTH = 160\nconst SWIPE_THRESHOLD = ACTIONS_WIDTH / 2\n\nconst wrapperClass = css`\n\tposition: relative;\n\toverflow: hidden;\n\tborder-radius: 12px;\n\tuser-select: none;\n`\n\nconst trackClass = css`\n\tdisplay: flex;\n\talign-items: stretch;\n\twill-change: transform;\n\ttransition: transform 220ms ease;\n\ttouch-action: pan-y;\n\t&[data-dragging=\"true\"] { transition: none; }\n`\n\nconst actionsClass = css`\n\tflex: 0 0 ${ACTIONS_WIDTH}px;\n\tdisplay: flex;\n`\n\nconst actionBtnClass = css`\n\tflex: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tborder: none;\n\tcolor: #fff;\n\tfont-size: 14px;\n\tfont-weight: 600;\n\tcursor: pointer;\n\tfont-family: inherit;\n`\n\nconst contentClass = css`\n\tflex: 0 0 100%;\n`\n\nconst SwipeReveal = ({\n\tactions, children, onSwipeStart, onOpenChange, activeId, thisId,\n})=> {\n\tconst isOpen = createSignal(false)\n\n\tlet trackEl = null\n\tlet startX = 0\n\tlet startY = 0\n\tlet baseOffset = 0\n\tlet currentOffset = 0\n\tlet dragging = false\n\tlet axisLocked = false\n\tlet horizontal = false\n\tlet moved = false\n\n\tconst setTrackRef = (el)=> { trackEl = el }\n\n\tconst applyTransform = (px)=> {\n\t\tif (trackEl){ trackEl.style.transform = `translateX(${px}px)` }\n\t}\n\n\tconst snap = (toOpen)=> {\n\t\tcurrentOffset = toOpen ? -ACTIONS_WIDTH : 0\n\t\tif (trackEl){\n\t\t\ttrackEl.dataset.dragging = 'false'\n\t\t\tapplyTransform(currentOffset)\n\t\t}\n\t\tonOpenChange?.(toOpen)\n\t\tisOpen(toOpen)\n\t}\n\n\t// only one card open at a time — close when another card's swipe activates\n\tcreateEffect(()=> {\n\t\tconst currentActive = typeof activeId === 'function' ? activeId() : activeId\n\t\tif (currentActive !== undefined && currentActive !== thisId && isOpen()){\n\t\t\tisOpen(false)\n\t\t\tcurrentOffset = 0\n\t\t\tif (trackEl){\n\t\t\t\ttrackEl.dataset.dragging = 'false'\n\t\t\t\tapplyTransform(0)\n\t\t\t}\n\t\t}\n\t})\n\n\tconst onPointerDown = (e)=> {\n\t\tif (e.pointerType === 'mouse' && e.button !== 0){ return }\n\t\tstartX = e.clientX\n\t\tstartY = e.clientY\n\t\tbaseOffset = isOpen() ? -ACTIONS_WIDTH : 0\n\t\tdragging = true\n\t\taxisLocked = false\n\t\thorizontal = false\n\t\tmoved = false\n\t\te.currentTarget.setPointerCapture?.(e.pointerId)\n\t}\n\n\tconst onPointerMove = (e)=> {\n\t\tif (!dragging){ return }\n\t\tconst dx = e.clientX - startX\n\t\tconst dy = e.clientY - startY\n\t\tif (!axisLocked){\n\t\t\tif (Math.abs(dx) < 6 && Math.abs(dy) < 6){ return }\n\t\t\thorizontal = Math.abs(dx) > Math.abs(dy)\n\t\t\taxisLocked = true\n\t\t\tif (horizontal && trackEl){ trackEl.dataset.dragging = 'true' }\n\t\t}\n\t\tif (!horizontal){ return }\n\t\tmoved = true\n\t\tlet next = baseOffset + dx\n\t\tif (next > 0){ next = 0 }\n\t\tif (next < -ACTIONS_WIDTH){ next = -ACTIONS_WIDTH - (next + ACTIONS_WIDTH) * 0.2 }\n\t\tcurrentOffset = next\n\t\tapplyTransform(next)\n\t}\n\n\tconst onPointerUp = (e)=> {\n\t\tif (!dragging){ return }\n\t\tdragging = false\n\t\te.currentTarget.releasePointerCapture?.(e.pointerId)\n\t\tif (!horizontal){ return }\n\t\tconst shouldOpen = currentOffset < -SWIPE_THRESHOLD\n\t\tsnap(shouldOpen)\n\t}\n\n\tconst handleContentClick = (e)=> {\n\t\tif (moved){ e.stopPropagation(); return }\n\t\tif (isOpen()){ e.stopPropagation(); snap(false); return }\n\t}\n\n\tconst handleActionClick = action=> (e)=> {\n\t\te.stopPropagation()\n\t\tsnap(false)\n\t\taction.onClick?.(e)\n\t}\n\n\treturn (\n\t\t<div className={wrapperClass}>\n\t\t\t<div\n\t\t\t\tclassName={trackClass}\n\t\t\t\tdata-dragging='false'\n\t\t\t\tonPointerCancel={onPointerUp}\n\t\t\t\tonPointerDown={onPointerDown}\n\t\t\t\tonPointerMove={onPointerMove}\n\t\t\t\tonPointerUp={onPointerUp}\n\t\t\t\tref={setTrackRef}\n\t\t\t>\n\t\t\t\t<div className={contentClass} onClick={handleContentClick}>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t\t<div className={actionsClass}>\n\t\t\t\t\t{actions.map(action=> (\n\t\t\t\t\t\t// prevent tab focus when actions are hidden off-screen\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclassName={actionBtnClass}\n\t\t\t\t\t\t\tonClick={handleActionClick(action)}\n\t\t\t\t\t\t\tstyle={{ background: action.color }}\n\t\t\t\t\t\t\ttabIndex={isOpen() ? 0 : -1}\n\t\t\t\t\t\t\ttype='button'\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{action.label}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n\nexport default SwipeReveal\n","import { Switch } from '@plastic-js/ark'\n\nexport default Switch\n","import { Tabs } from '@plastic-js/ark'\n\nexport default Tabs\n","import { TagsInput } from '@plastic-js/ark'\n\nexport default TagsInput\n","import { Toast, createToaster } from '@plastic-js/ark'\n\nexport default Object.assign(Toast, { createToaster })\n","import { Toggle } from '@plastic-js/ark'\n\nexport default Toggle\n","import { ToggleGroup } from '@plastic-js/ark'\n\nexport default ToggleGroup\n","import { Tooltip } from '@plastic-js/ark'\n\nexport default Tooltip\n","import { Tour } from '@plastic-js/ark'\n\nexport default Tour\n","import { TreeView } from '@plastic-js/ark'\n\nexport default TreeView\n"],"x_google_ignoreList":[2,3,4,5,6,7,8,9],"mappings":"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"}
|