@fluix-ui/vanilla 0.0.7 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/index.cjs +1059 -1220
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -16
- package/dist/index.d.ts +1 -16
- package/dist/index.global.js +1241 -1284
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +1060 -1221
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/toast.ts","../src/notch.ts","../src/menu.ts"],"names":["CoreToaster","SVG_NS","applyAttrs","FLUIX_SPRING","animateSpring"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Vanilla JS Toaster — imperative DOM adapter for the Fluix toast system.\n *\n * Subscribes to the core store and diffs snapshots to create, update, and\n * destroy toast DOM elements without any framework dependency.\n */\n\nimport {\n\tToaster as CoreToaster,\n\tFLUIX_SPRING,\n\ttype FluixPosition,\n\ttype FluixToastItem,\n\ttype FluixToastLayout,\n\ttype FluixToasterConfig,\n\tTOAST_DEFAULTS,\n\ttype ToastMachine,\n\tanimateSpring,\n} from \"@fluix-ui/core\";\n\n/* ----------------------------- Constants ----------------------------- */\n\nconst WIDTH = 350;\nconst HEIGHT = 40;\nconst PILL_PADDING = 10;\nconst MIN_EXPAND_RATIO = 2.25;\nconst HEADER_EXIT_MS = 600 * 0.7;\nconst BODY_MERGE_OVERLAP = 6;\n\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\n/* ----------------------------- Types ----------------------------- */\n\ninterface ToastInstance {\n\tel: HTMLButtonElement;\n\tpillEl: SVGRectElement;\n\tbodyEl: SVGRectElement;\n\tsvgEl: SVGSVGElement;\n\theaderEl: HTMLDivElement;\n\tinnerEl: HTMLDivElement;\n\theaderStackEl: HTMLDivElement;\n\tcontentEl: HTMLDivElement | null;\n\tdescriptionEl: HTMLDivElement | null;\n\tlocalState: { ready: boolean; expanded: boolean };\n\tpillWidth: number;\n\tcontentHeight: number;\n\tfrozenExpanded: number;\n\thovering: boolean;\n\tpendingDismiss: boolean;\n\tdismissRequested: boolean;\n\tpillRo: ResizeObserver;\n\tcontentRo: ResizeObserver | null;\n\tpillAnim: Animation | null;\n\tprevPill: { x: number; width: number; height: number };\n\tpillFirst: boolean;\n\theaderKey: string;\n\theaderPad: number | null;\n\tconnectHandle: { destroy(): void };\n\ttimers: Set<ReturnType<typeof setTimeout>>;\n\titem: FluixToastItem;\n}\n\n/* ----------------------------- SVG icon builders ----------------------------- */\n\nfunction createSvgIcon(state: FluixToastItem[\"state\"]): SVGSVGElement | null {\n\tconst svg = document.createElementNS(SVG_NS, \"svg\");\n\tsvg.setAttribute(\"width\", \"14\");\n\tsvg.setAttribute(\"height\", \"14\");\n\tsvg.setAttribute(\"viewBox\", \"0 0 24 24\");\n\tsvg.setAttribute(\"fill\", \"none\");\n\tsvg.setAttribute(\"stroke\", \"currentColor\");\n\tsvg.setAttribute(\"stroke-width\", \"2.5\");\n\tsvg.setAttribute(\"stroke-linecap\", \"round\");\n\tsvg.setAttribute(\"stroke-linejoin\", \"round\");\n\tsvg.setAttribute(\"aria-hidden\", \"true\");\n\n\tswitch (state) {\n\t\tcase \"success\": {\n\t\t\tconst p = document.createElementNS(SVG_NS, \"polyline\");\n\t\t\tp.setAttribute(\"points\", \"20 6 9 17 4 12\");\n\t\t\tsvg.appendChild(p);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"error\": {\n\t\t\tconst l1 = document.createElementNS(SVG_NS, \"line\");\n\t\t\tl1.setAttribute(\"x1\", \"18\");\n\t\t\tl1.setAttribute(\"y1\", \"6\");\n\t\t\tl1.setAttribute(\"x2\", \"6\");\n\t\t\tl1.setAttribute(\"y2\", \"18\");\n\t\t\tconst l2 = document.createElementNS(SVG_NS, \"line\");\n\t\t\tl2.setAttribute(\"x1\", \"6\");\n\t\t\tl2.setAttribute(\"y1\", \"6\");\n\t\t\tl2.setAttribute(\"x2\", \"18\");\n\t\t\tl2.setAttribute(\"y2\", \"18\");\n\t\t\tsvg.appendChild(l1);\n\t\t\tsvg.appendChild(l2);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"warning\": {\n\t\t\tconst path = document.createElementNS(SVG_NS, \"path\");\n\t\t\tpath.setAttribute(\n\t\t\t\t\"d\",\n\t\t\t\t\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\",\n\t\t\t);\n\t\t\tconst l1 = document.createElementNS(SVG_NS, \"line\");\n\t\t\tl1.setAttribute(\"x1\", \"12\");\n\t\t\tl1.setAttribute(\"y1\", \"9\");\n\t\t\tl1.setAttribute(\"x2\", \"12\");\n\t\t\tl1.setAttribute(\"y2\", \"13\");\n\t\t\tconst l2 = document.createElementNS(SVG_NS, \"line\");\n\t\t\tl2.setAttribute(\"x1\", \"12\");\n\t\t\tl2.setAttribute(\"y1\", \"17\");\n\t\t\tl2.setAttribute(\"x2\", \"12.01\");\n\t\t\tl2.setAttribute(\"y2\", \"17\");\n\t\t\tsvg.appendChild(path);\n\t\t\tsvg.appendChild(l1);\n\t\t\tsvg.appendChild(l2);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"info\": {\n\t\t\tconst c = document.createElementNS(SVG_NS, \"circle\");\n\t\t\tc.setAttribute(\"cx\", \"12\");\n\t\t\tc.setAttribute(\"cy\", \"12\");\n\t\t\tc.setAttribute(\"r\", \"10\");\n\t\t\tconst l1 = document.createElementNS(SVG_NS, \"line\");\n\t\t\tl1.setAttribute(\"x1\", \"12\");\n\t\t\tl1.setAttribute(\"y1\", \"16\");\n\t\t\tl1.setAttribute(\"x2\", \"12\");\n\t\t\tl1.setAttribute(\"y2\", \"12\");\n\t\t\tconst l2 = document.createElementNS(SVG_NS, \"line\");\n\t\t\tl2.setAttribute(\"x1\", \"12\");\n\t\t\tl2.setAttribute(\"y1\", \"8\");\n\t\t\tl2.setAttribute(\"x2\", \"12.01\");\n\t\t\tl2.setAttribute(\"y2\", \"8\");\n\t\t\tsvg.appendChild(c);\n\t\t\tsvg.appendChild(l1);\n\t\t\tsvg.appendChild(l2);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"loading\": {\n\t\t\tsvg.setAttribute(\"data-fluix-icon\", \"spin\");\n\t\t\tconst lines: [string, string, string, string][] = [\n\t\t\t\t[\"12\", \"2\", \"12\", \"6\"],\n\t\t\t\t[\"12\", \"18\", \"12\", \"22\"],\n\t\t\t\t[\"4.93\", \"4.93\", \"7.76\", \"7.76\"],\n\t\t\t\t[\"16.24\", \"16.24\", \"19.07\", \"19.07\"],\n\t\t\t\t[\"2\", \"12\", \"6\", \"12\"],\n\t\t\t\t[\"18\", \"12\", \"22\", \"12\"],\n\t\t\t\t[\"4.93\", \"19.07\", \"7.76\", \"16.24\"],\n\t\t\t\t[\"16.24\", \"7.76\", \"19.07\", \"4.93\"],\n\t\t\t];\n\t\t\tfor (const [x1, y1, x2, y2] of lines) {\n\t\t\t\tconst l = document.createElementNS(SVG_NS, \"line\");\n\t\t\t\tl.setAttribute(\"x1\", x1);\n\t\t\t\tl.setAttribute(\"y1\", y1);\n\t\t\t\tl.setAttribute(\"x2\", x2);\n\t\t\t\tl.setAttribute(\"y2\", y2);\n\t\t\t\tsvg.appendChild(l);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"action\": {\n\t\t\tconst c = document.createElementNS(SVG_NS, \"circle\");\n\t\t\tc.setAttribute(\"cx\", \"12\");\n\t\t\tc.setAttribute(\"cy\", \"12\");\n\t\t\tc.setAttribute(\"r\", \"10\");\n\t\t\tconst poly = document.createElementNS(SVG_NS, \"polygon\");\n\t\t\tpoly.setAttribute(\"points\", \"10 8 16 12 10 16 10 8\");\n\t\t\tpoly.setAttribute(\"fill\", \"currentColor\");\n\t\t\tpoly.setAttribute(\"stroke\", \"none\");\n\t\t\tsvg.appendChild(c);\n\t\t\tsvg.appendChild(poly);\n\t\t\tbreak;\n\t\t}\n\t\tdefault:\n\t\t\treturn null;\n\t}\n\treturn svg;\n}\n\nfunction renderIconInto(container: HTMLElement, icon: unknown, state: FluixToastItem[\"state\"]) {\n\tcontainer.textContent = \"\";\n\tif (icon != null) {\n\t\tif (icon instanceof HTMLElement || icon instanceof SVGElement) {\n\t\t\tcontainer.appendChild(icon);\n\t\t} else {\n\t\t\tconst span = document.createElement(\"span\");\n\t\t\tspan.setAttribute(\"aria-hidden\", \"true\");\n\t\t\tspan.textContent = String(icon);\n\t\t\tcontainer.appendChild(span);\n\t\t}\n\t\treturn;\n\t}\n\tconst svgIcon = createSvgIcon(state);\n\tif (svgIcon) container.appendChild(svgIcon);\n}\n\n/* ----------------------------- Helpers ----------------------------- */\n\nfunction getPillAlign(position: FluixPosition): \"left\" | \"center\" | \"right\" {\n\tif (position.includes(\"right\")) return \"right\";\n\tif (position.includes(\"center\")) return \"center\";\n\treturn \"left\";\n}\n\nfunction applyAttrs(el: Element, attrs: Record<string, string>) {\n\tfor (const [key, value] of Object.entries(attrs)) {\n\t\tel.setAttribute(key, value);\n\t}\n}\n\nfunction resolveOffsetValue(v: number | string): string {\n\treturn typeof v === \"number\" ? `${v}px` : v;\n}\n\nfunction applyViewportOffset(\n\tel: HTMLElement,\n\toffset: FluixToasterConfig[\"offset\"],\n\tposition: FluixPosition,\n) {\n\tel.style.top = \"\";\n\tel.style.right = \"\";\n\tel.style.bottom = \"\";\n\tel.style.left = \"\";\n\tel.style.paddingLeft = \"\";\n\tel.style.paddingRight = \"\";\n\n\tif (offset == null) return;\n\n\tlet top: string | undefined;\n\tlet right: string | undefined;\n\tlet bottom: string | undefined;\n\tlet left: string | undefined;\n\n\tif (typeof offset === \"number\" || typeof offset === \"string\") {\n\t\tconst v = resolveOffsetValue(offset as number | string);\n\t\ttop = v;\n\t\tright = v;\n\t\tbottom = v;\n\t\tleft = v;\n\t} else {\n\t\tif (offset.top != null) top = resolveOffsetValue(offset.top);\n\t\tif (offset.right != null) right = resolveOffsetValue(offset.right);\n\t\tif (offset.bottom != null) bottom = resolveOffsetValue(offset.bottom);\n\t\tif (offset.left != null) left = resolveOffsetValue(offset.left);\n\t}\n\n\tif (position.startsWith(\"top\") && top) el.style.top = top;\n\tif (position.startsWith(\"bottom\") && bottom) el.style.bottom = bottom;\n\tif (position.endsWith(\"right\") && right) el.style.right = right;\n\tif (position.endsWith(\"left\") && left) el.style.left = left;\n\tif (position.endsWith(\"center\")) {\n\t\tif (left) el.style.paddingLeft = left;\n\t\tif (right) el.style.paddingRight = right;\n\t}\n}\n\nfunction setTimer(inst: ToastInstance, fn: () => void, ms: number): ReturnType<typeof setTimeout> {\n\tconst id = setTimeout(() => {\n\t\tinst.timers.delete(id);\n\t\tfn();\n\t}, ms);\n\tinst.timers.add(id);\n\treturn id;\n}\n\n/* ----------------------------- Compute layout values ----------------------------- */\n\nfunction computeLayout(item: FluixToastItem, inst: ToastInstance) {\n\tconst { ready, expanded: isExpanded } = inst.localState;\n\tconst roundness = item.roundness ?? TOAST_DEFAULTS.roundness;\n\tconst blur = Math.min(10, Math.max(6, roundness * 0.45));\n\tconst hasDesc = Boolean(item.description) || Boolean(item.button);\n\tconst isLoading = item.state === \"loading\";\n\tconst open = hasDesc && isExpanded && !isLoading;\n\tconst position = getPillAlign(item.position);\n\tconst edge = item.position.startsWith(\"top\") ? \"bottom\" : \"top\";\n\n\tconst resolvedPillWidth = Math.max(inst.pillWidth || HEIGHT, HEIGHT);\n\tconst pillHeight = HEIGHT + blur * 3;\n\tconst pillX =\n\t\tposition === \"right\"\n\t\t\t? WIDTH - resolvedPillWidth\n\t\t\t: position === \"center\"\n\t\t\t\t? (WIDTH - resolvedPillWidth) / 2\n\t\t\t\t: 0;\n\n\tconst minExpanded = HEIGHT * MIN_EXPAND_RATIO;\n\tconst rawExpanded = hasDesc ? Math.max(minExpanded, HEIGHT + inst.contentHeight) : minExpanded;\n\tif (open) {\n\t\tinst.frozenExpanded = rawExpanded;\n\t}\n\tconst expanded = open ? rawExpanded : inst.frozenExpanded;\n\tconst expandedContent = Math.max(0, expanded - HEIGHT);\n\tconst svgHeight = hasDesc ? Math.max(expanded, minExpanded) : HEIGHT;\n\n\treturn {\n\t\tready,\n\t\tisExpanded,\n\t\troundness,\n\t\tblur,\n\t\thasDesc,\n\t\tisLoading,\n\t\topen,\n\t\tposition,\n\t\tedge,\n\t\tresolvedPillWidth,\n\t\tpillHeight,\n\t\tpillX,\n\t\tminExpanded,\n\t\texpanded,\n\t\texpandedContent,\n\t\tsvgHeight,\n\t};\n}\n\n/* ----------------------------- createInstance ----------------------------- */\n\nfunction createInstance(item: FluixToastItem, machine: ToastMachine): ToastInstance {\n\tconst localState = { ready: false, expanded: false };\n\tconst roundness = item.roundness ?? TOAST_DEFAULTS.roundness;\n\tconst blur = Math.min(10, Math.max(6, roundness * 0.45));\n\tconst filterId = `fluix-gooey-${item.id.replace(/[^a-z0-9-]/gi, \"-\")}`;\n\tconst hasDesc = Boolean(item.description) || Boolean(item.button);\n\n\t// Root button\n\tconst el = document.createElement(\"button\");\n\tel.type = \"button\";\n\n\t// Canvas div\n\tconst canvasDiv = document.createElement(\"div\");\n\n\t// SVG — initial height accounts for description area (matches React/Vue)\n\tconst minExpanded = HEIGHT * MIN_EXPAND_RATIO;\n\tconst initialSvgHeight = hasDesc ? minExpanded : HEIGHT;\n\tconst svg = document.createElementNS(SVG_NS, \"svg\");\n\tsvg.setAttribute(\"data-fluix-svg\", \"\");\n\tsvg.setAttribute(\"width\", String(WIDTH));\n\tsvg.setAttribute(\"height\", String(initialSvgHeight));\n\tsvg.setAttribute(\"viewBox\", `0 0 ${WIDTH} ${initialSvgHeight}`);\n\tsvg.setAttribute(\"aria-hidden\", \"true\");\n\n\t// Defs + filter\n\tconst defs = document.createElementNS(SVG_NS, \"defs\");\n\tconst filter = document.createElementNS(SVG_NS, \"filter\");\n\tfilter.setAttribute(\"id\", filterId);\n\tfilter.setAttribute(\"x\", \"-20%\");\n\tfilter.setAttribute(\"y\", \"-20%\");\n\tfilter.setAttribute(\"width\", \"140%\");\n\tfilter.setAttribute(\"height\", \"140%\");\n\tfilter.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n\n\tconst feBlur = document.createElementNS(SVG_NS, \"feGaussianBlur\");\n\tfeBlur.setAttribute(\"in\", \"SourceGraphic\");\n\tfeBlur.setAttribute(\"stdDeviation\", String(blur));\n\tfeBlur.setAttribute(\"result\", \"blur\");\n\n\tconst feCM = document.createElementNS(SVG_NS, \"feColorMatrix\");\n\tfeCM.setAttribute(\"in\", \"blur\");\n\tfeCM.setAttribute(\"type\", \"matrix\");\n\tfeCM.setAttribute(\"values\", \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 20 -10\");\n\tfeCM.setAttribute(\"result\", \"goo\");\n\n\tconst feComp = document.createElementNS(SVG_NS, \"feComposite\");\n\tfeComp.setAttribute(\"in\", \"SourceGraphic\");\n\tfeComp.setAttribute(\"in2\", \"goo\");\n\tfeComp.setAttribute(\"operator\", \"atop\");\n\n\tfilter.appendChild(feBlur);\n\tfilter.appendChild(feCM);\n\tfilter.appendChild(feComp);\n\tdefs.appendChild(filter);\n\tsvg.appendChild(defs);\n\n\tconst g = document.createElementNS(SVG_NS, \"g\");\n\tg.setAttribute(\"filter\", `url(#${filterId})`);\n\n\t// Pill rect — initial position matches React/Vue (computed from position)\n\tconst initialPillX =\n\t\tgetPillAlign(item.position) === \"right\"\n\t\t\t? WIDTH - HEIGHT\n\t\t\t: getPillAlign(item.position) === \"center\"\n\t\t\t\t? (WIDTH - HEIGHT) / 2\n\t\t\t\t: 0;\n\tconst pillEl = document.createElementNS(SVG_NS, \"rect\");\n\tpillEl.setAttribute(\"data-fluix-pill\", \"\");\n\tpillEl.setAttribute(\"x\", String(initialPillX));\n\tpillEl.setAttribute(\"y\", \"0\");\n\tpillEl.setAttribute(\"width\", String(HEIGHT));\n\tpillEl.setAttribute(\"height\", String(HEIGHT));\n\tpillEl.setAttribute(\"rx\", String(roundness));\n\tpillEl.setAttribute(\"ry\", String(roundness));\n\tpillEl.setAttribute(\"fill\", item.fill ?? \"var(--fluix-surface-contrast)\");\n\n\t// Body rect\n\tconst bodyEl = document.createElementNS(SVG_NS, \"rect\");\n\tbodyEl.setAttribute(\"data-fluix-body\", \"\");\n\tbodyEl.setAttribute(\"x\", \"0\");\n\tbodyEl.setAttribute(\"y\", String(HEIGHT));\n\tbodyEl.setAttribute(\"width\", String(WIDTH));\n\tbodyEl.setAttribute(\"height\", \"0\");\n\tbodyEl.setAttribute(\"rx\", String(roundness));\n\tbodyEl.setAttribute(\"ry\", String(roundness));\n\tbodyEl.setAttribute(\"fill\", item.fill ?? \"var(--fluix-surface-contrast)\");\n\tbodyEl.setAttribute(\"opacity\", \"0\");\n\n\tg.appendChild(pillEl);\n\tg.appendChild(bodyEl);\n\tsvg.appendChild(g);\n\tcanvasDiv.appendChild(svg);\n\tel.appendChild(canvasDiv);\n\n\t// Header div\n\tconst headerEl = document.createElement(\"div\");\n\tconst headerStackEl = document.createElement(\"div\");\n\theaderStackEl.setAttribute(\"data-fluix-header-stack\", \"\");\n\n\tconst innerEl = document.createElement(\"div\");\n\tinnerEl.setAttribute(\"data-fluix-header-inner\", \"\");\n\tinnerEl.setAttribute(\"data-layer\", \"current\");\n\n\tconst badgeEl = document.createElement(\"div\");\n\trenderIconInto(badgeEl, item.icon, item.state);\n\n\tconst titleEl = document.createElement(\"span\");\n\ttitleEl.textContent = item.title ?? item.state;\n\n\tinnerEl.appendChild(badgeEl);\n\tinnerEl.appendChild(titleEl);\n\theaderStackEl.appendChild(innerEl);\n\theaderEl.appendChild(headerStackEl);\n\tel.appendChild(headerEl);\n\n\t// Content div (optional)\n\tlet contentEl: HTMLDivElement | null = null;\n\tlet descriptionEl: HTMLDivElement | null = null;\n\n\tif (hasDesc) {\n\t\tcontentEl = document.createElement(\"div\");\n\t\tdescriptionEl = document.createElement(\"div\");\n\t\tif (item.styles?.description) {\n\t\t\tdescriptionEl.className = item.styles.description;\n\t\t}\n\n\t\tif (item.description != null) {\n\t\t\tif (typeof item.description === \"string\") {\n\t\t\t\tdescriptionEl.textContent = item.description;\n\t\t\t} else if (item.description instanceof HTMLElement) {\n\t\t\t\tdescriptionEl.appendChild(item.description);\n\t\t\t}\n\t\t}\n\n\t\tif (item.button) {\n\t\t\tconst btn = document.createElement(\"button\");\n\t\t\tbtn.type = \"button\";\n\t\t\tbtn.textContent = item.button.title;\n\t\t\tif (item.styles?.button) {\n\t\t\t\tbtn.className = item.styles.button;\n\t\t\t}\n\t\t\tbtn.addEventListener(\"click\", (e) => {\n\t\t\t\te.stopPropagation();\n\t\t\t\titem.button?.onClick();\n\t\t\t});\n\t\t\tdescriptionEl.appendChild(btn);\n\t\t}\n\n\t\tcontentEl.appendChild(descriptionEl);\n\t\tel.appendChild(contentEl);\n\t}\n\n\t// Apply initial attrs\n\tconst attrs = CoreToaster.getAttrs(item, localState);\n\tapplyAttrs(el, attrs.root);\n\tapplyAttrs(canvasDiv, attrs.canvas);\n\tapplyAttrs(headerEl, attrs.header);\n\tapplyAttrs(badgeEl, attrs.badge);\n\tif (item.styles?.badge) badgeEl.className = item.styles.badge;\n\tapplyAttrs(titleEl, attrs.title);\n\tif (item.styles?.title) titleEl.className = item.styles.title;\n\tif (contentEl) applyAttrs(contentEl, attrs.content);\n\tif (descriptionEl) applyAttrs(descriptionEl, attrs.description);\n\n\t// Apply button attrs\n\tif (item.button && descriptionEl) {\n\t\tconst btnEl = descriptionEl.querySelector(\"button\");\n\t\tif (btnEl) applyAttrs(btnEl, attrs.button);\n\t}\n\n\tconst headerKey = `${item.state}-${item.title ?? item.state}`;\n\n\tconst inst: ToastInstance = {\n\t\tel,\n\t\tpillEl,\n\t\tbodyEl,\n\t\tsvgEl: svg,\n\t\theaderEl,\n\t\tinnerEl,\n\t\theaderStackEl,\n\t\tcontentEl,\n\t\tdescriptionEl,\n\t\tlocalState,\n\t\tpillWidth: 0,\n\t\tcontentHeight: 0,\n\t\tfrozenExpanded: HEIGHT * MIN_EXPAND_RATIO,\n\t\thovering: false,\n\t\tpendingDismiss: false,\n\t\tdismissRequested: false,\n\t\tpillRo: null!,\n\t\tcontentRo: null,\n\t\tpillAnim: null,\n\t\tprevPill: { x: initialPillX, width: HEIGHT, height: HEIGHT },\n\t\tpillFirst: true,\n\t\theaderKey,\n\t\theaderPad: null,\n\t\tconnectHandle: null!,\n\t\ttimers: new Set(),\n\t\titem,\n\t};\n\n\t// Set up pill ResizeObserver\n\tinst.pillRo = new ResizeObserver(() => {\n\t\trequestAnimationFrame(() => {\n\t\t\tmeasurePillWidth(inst);\n\t\t\tapplyVars(inst, inst.item);\n\t\t\tanimatePill(inst, inst.item);\n\t\t});\n\t});\n\tinst.pillRo.observe(innerEl);\n\n\t// Set up content ResizeObserver\n\tif (descriptionEl) {\n\t\tinst.contentRo = new ResizeObserver(() => {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tconst h = descriptionEl!.scrollHeight;\n\t\t\t\tif (h !== inst.contentHeight) {\n\t\t\t\t\tinst.contentHeight = h;\n\t\t\t\t\tapplyVars(inst, inst.item);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tinst.contentRo.observe(descriptionEl);\n\t}\n\n\t// Wire connect\n\tinst.connectHandle = CoreToaster.connect(\n\t\tel,\n\t\t{\n\t\t\tonExpand: () => {\n\t\t\t\tif (inst.item.exiting || inst.dismissRequested) return;\n\t\t\t\tinst.localState.expanded = true;\n\t\t\t\tapplyUpdate(inst, inst.item, machine);\n\t\t\t},\n\t\t\tonCollapse: () => {\n\t\t\t\tif (inst.item.exiting || inst.dismissRequested) return;\n\t\t\t\tif (inst.item.autopilot !== false) return;\n\t\t\t\tinst.localState.expanded = false;\n\t\t\t\tapplyUpdate(inst, inst.item, machine);\n\t\t\t},\n\t\t\tonDismiss: () => {\n\t\t\t\tif (inst.dismissRequested) return;\n\t\t\t\tinst.dismissRequested = true;\n\t\t\t\tmachine.dismiss(item.id);\n\t\t\t},\n\t\t\tonHoverStart: () => {\n\t\t\t\tinst.hovering = true;\n\t\t\t},\n\t\t\tonHoverEnd: () => {\n\t\t\t\tinst.hovering = false;\n\t\t\t\tif (inst.pendingDismiss) {\n\t\t\t\t\tinst.pendingDismiss = false;\n\t\t\t\t\tif (inst.dismissRequested) return;\n\t\t\t\t\tinst.dismissRequested = true;\n\t\t\t\t\tmachine.dismiss(inst.item.id);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\titem,\n\t);\n\n\t// Apply initial CSS vars\n\tapplyVars(inst, item);\n\n\t// Ready timer\n\tsetTimer(\n\t\tinst,\n\t\t() => {\n\t\t\tinst.localState.ready = true;\n\t\t\tapplyUpdate(inst, inst.item, machine);\n\t\t\t// Autopilot must be set up after ready (matches React's useEffect dep on ready)\n\t\t\tsetupAutopilot(inst, inst.item, machine);\n\t\t},\n\t\t32,\n\t);\n\n\t// Auto-dismiss timer\n\tsetupAutoDismiss(inst, item, machine);\n\n\t// Initial pill measurement\n\tmeasurePillWidth(inst);\n\n\treturn inst;\n}\n\n/* ----------------------------- measurePillWidth ----------------------------- */\n\nfunction measurePillWidth(inst: ToastInstance) {\n\t// Skip measurement if the element is not connected to the DOM yet\n\tif (!inst.el.isConnected) return;\n\n\tif (inst.headerPad === null) {\n\t\tconst cs = getComputedStyle(inst.headerEl);\n\t\tinst.headerPad = Number.parseFloat(cs.paddingLeft) + Number.parseFloat(cs.paddingRight);\n\t}\n\t// Use getBoundingClientRect for accurate measurement (matches Vue adapter)\n\tconst intrinsicWidth = inst.innerEl.getBoundingClientRect().width;\n\tconst w = intrinsicWidth + inst.headerPad + PILL_PADDING;\n\tif (w > PILL_PADDING && w !== inst.pillWidth) {\n\t\tinst.pillWidth = w;\n\t}\n}\n\n/* ----------------------------- applyVars ----------------------------- */\n\nfunction applyVars(inst: ToastInstance, item: FluixToastItem) {\n\tconst layout = computeLayout(item, inst);\n\tconst { open, expanded, resolvedPillWidth, pillX, edge, expandedContent, svgHeight } = layout;\n\n\tconst vars: Record<string, string> = {\n\t\t\"--_h\": `${open ? expanded : HEIGHT}px`,\n\t\t\"--_pw\": `${resolvedPillWidth}px`,\n\t\t\"--_px\": `${pillX}px`,\n\t\t\"--_ht\": `translateY(${open ? (edge === \"bottom\" ? 3 : -3) : 0}px) scale(${open ? 0.9 : 1})`,\n\t\t\"--_co\": `${open ? 1 : 0}`,\n\t\t\"--_cy\": `${open ? 0 : -14}px`,\n\t\t\"--_cm\": `${open ? expandedContent : 0}px`,\n\t\t\"--_by\": `${open ? HEIGHT - BODY_MERGE_OVERLAP : HEIGHT}px`,\n\t\t\"--_bh\": `${open ? expandedContent : 0}px`,\n\t\t\"--_bo\": `${open ? 1 : 0}`,\n\t};\n\n\tfor (const [key, value] of Object.entries(vars)) {\n\t\tinst.el.style.setProperty(key, value);\n\t}\n\n\t// Update SVG dimensions\n\tinst.svgEl.setAttribute(\"height\", String(svgHeight));\n\tinst.svgEl.setAttribute(\"viewBox\", `0 0 ${WIDTH} ${svgHeight}`);\n}\n\n/* ----------------------------- animatePill ----------------------------- */\n\nfunction animatePill(inst: ToastInstance, item: FluixToastItem) {\n\tconst layout = computeLayout(item, inst);\n\tconst { open, resolvedPillWidth, pillX, pillHeight } = layout;\n\n\tconst prev = inst.prevPill;\n\tconst next = { x: pillX, width: resolvedPillWidth, height: open ? pillHeight : HEIGHT };\n\n\tif (prev.x === next.x && prev.width === next.width && prev.height === next.height) return;\n\n\tinst.pillAnim?.cancel();\n\n\t// Before ready or on first measurement, set attributes directly (no spring)\n\tif (!inst.localState.ready || inst.pillFirst) {\n\t\tinst.pillFirst = false;\n\t\tinst.pillEl.setAttribute(\"x\", String(next.x));\n\t\tinst.pillEl.setAttribute(\"width\", String(next.width));\n\t\tinst.pillEl.setAttribute(\"height\", String(next.height));\n\t\tinst.prevPill = next;\n\t\treturn;\n\t}\n\n\tconst anim = animateSpring(\n\t\tinst.pillEl,\n\t\t{\n\t\t\tx: { from: prev.x, to: next.x, unit: \"px\" },\n\t\t\twidth: { from: prev.width, to: next.width, unit: \"px\" },\n\t\t\theight: { from: prev.height, to: next.height, unit: \"px\" },\n\t\t},\n\t\tFLUIX_SPRING,\n\t);\n\n\tinst.pillAnim = anim;\n\tinst.prevPill = next;\n}\n\n/* ----------------------------- setupAutoDismiss ----------------------------- */\n\nfunction setupAutoDismiss(inst: ToastInstance, item: FluixToastItem, machine: ToastMachine) {\n\tconst duration = item.duration;\n\tif (duration == null || duration <= 0) return;\n\n\tsetTimer(\n\t\tinst,\n\t\t() => {\n\t\t\tif (inst.hovering) {\n\t\t\t\tinst.pendingDismiss = true;\n\t\t\t\tsetTimer(\n\t\t\t\t\tinst,\n\t\t\t\t\t() => {\n\t\t\t\t\t\tif (inst.dismissRequested) return;\n\t\t\t\t\t\tinst.dismissRequested = true;\n\t\t\t\t\t\tinst.pendingDismiss = false;\n\t\t\t\t\t\tmachine.dismiss(item.id);\n\t\t\t\t\t},\n\t\t\t\t\t1200,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tinst.pendingDismiss = false;\n\t\t\tinst.dismissRequested = true;\n\t\t\tmachine.dismiss(item.id);\n\t\t},\n\t\tduration,\n\t);\n}\n\n/* ----------------------------- setupAutopilot ----------------------------- */\n\nfunction setupAutopilot(inst: ToastInstance, item: FluixToastItem, machine: ToastMachine) {\n\tif (item.autoExpandDelayMs != null && item.autoExpandDelayMs > 0) {\n\t\tsetTimer(\n\t\t\tinst,\n\t\t\t() => {\n\t\t\t\tif (!inst.hovering) {\n\t\t\t\t\tinst.localState.expanded = true;\n\t\t\t\t\tapplyUpdate(inst, inst.item, machine);\n\t\t\t\t}\n\t\t\t},\n\t\t\titem.autoExpandDelayMs,\n\t\t);\n\t}\n\n\tif (item.autoCollapseDelayMs != null && item.autoCollapseDelayMs > 0) {\n\t\tsetTimer(\n\t\t\tinst,\n\t\t\t() => {\n\t\t\t\tif (!inst.hovering) {\n\t\t\t\t\tinst.localState.expanded = false;\n\t\t\t\t\tapplyUpdate(inst, inst.item, machine);\n\t\t\t\t}\n\t\t\t},\n\t\t\titem.autoCollapseDelayMs,\n\t\t);\n\t}\n}\n\n/* ----------------------------- applyUpdate ----------------------------- */\n\nfunction applyUpdate(inst: ToastInstance, item: FluixToastItem, _machine: ToastMachine) {\n\tinst.item = item;\n\n\tconst attrs = CoreToaster.getAttrs(item, inst.localState);\n\tapplyAttrs(inst.el, attrs.root);\n\n\t// Canvas\n\tconst canvasEl = inst.el.querySelector(\"[data-fluix-canvas]\");\n\tif (canvasEl) applyAttrs(canvasEl, attrs.canvas);\n\n\t// Header\n\tapplyAttrs(inst.headerEl, attrs.header);\n\n\t// Badge & title in current layer\n\tconst badgeEl = inst.innerEl.querySelector(\"[data-fluix-badge]\");\n\tif (badgeEl) {\n\t\tapplyAttrs(badgeEl, attrs.badge);\n\t\tif (item.styles?.badge) (badgeEl as HTMLElement).className = item.styles.badge;\n\t}\n\tconst titleEl = inst.innerEl.querySelector(\"[data-fluix-title]\");\n\tif (titleEl) {\n\t\tapplyAttrs(titleEl, attrs.title);\n\t\tif (item.styles?.title) (titleEl as HTMLElement).className = item.styles.title;\n\t}\n\n\t// Content — update description text and button (notch mode swaps content)\n\tconst hasDesc = Boolean(item.description) || Boolean(item.button);\n\tif (hasDesc && !inst.contentEl) {\n\t\t// Toast gained a description — create content elements\n\t\tconst contentEl = document.createElement(\"div\");\n\t\tconst descriptionEl = document.createElement(\"div\");\n\t\tcontentEl.appendChild(descriptionEl);\n\t\tinst.el.appendChild(contentEl);\n\t\tinst.contentEl = contentEl;\n\t\tinst.descriptionEl = descriptionEl;\n\n\t\t// Set up content ResizeObserver\n\t\tinst.contentRo = new ResizeObserver(() => {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tconst h = descriptionEl.scrollHeight;\n\t\t\t\tif (h !== inst.contentHeight) {\n\t\t\t\t\tinst.contentHeight = h;\n\t\t\t\t\tapplyVars(inst, inst.item);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tinst.contentRo.observe(descriptionEl);\n\t}\n\n\tif (inst.contentEl) applyAttrs(inst.contentEl, attrs.content);\n\tif (inst.descriptionEl) {\n\t\tapplyAttrs(inst.descriptionEl, attrs.description);\n\t\tif (item.styles?.description) {\n\t\t\tinst.descriptionEl.className = item.styles.description;\n\t\t}\n\n\t\t// Update description content\n\t\t// Remove old children except action button\n\t\tconst existingBtn = inst.descriptionEl.querySelector(\"[data-fluix-button]\");\n\t\tinst.descriptionEl.textContent = \"\";\n\n\t\tif (item.description != null) {\n\t\t\tif (typeof item.description === \"string\") {\n\t\t\t\tinst.descriptionEl.textContent = item.description;\n\t\t\t} else if (item.description instanceof HTMLElement) {\n\t\t\t\tinst.descriptionEl.appendChild(item.description);\n\t\t\t}\n\t\t}\n\n\t\t// Update or create action button\n\t\tif (item.button) {\n\t\t\tlet btnEl = existingBtn as HTMLButtonElement | null;\n\t\t\tif (!btnEl) {\n\t\t\t\tbtnEl = document.createElement(\"button\");\n\t\t\t\tbtnEl.type = \"button\";\n\t\t\t}\n\t\t\tbtnEl.textContent = item.button.title;\n\t\t\tif (item.styles?.button) btnEl.className = item.styles.button;\n\t\t\tapplyAttrs(btnEl, attrs.button);\n\t\t\t// Re-wire click handler\n\t\t\tconst newBtn = btnEl.cloneNode(true) as HTMLButtonElement;\n\t\t\tnewBtn.addEventListener(\"click\", (e) => {\n\t\t\t\te.stopPropagation();\n\t\t\t\titem.button?.onClick();\n\t\t\t});\n\t\t\tinst.descriptionEl.appendChild(newBtn);\n\t\t}\n\t}\n\n\t// Update pill fill\n\tinst.pillEl.setAttribute(\"fill\", item.fill ?? \"var(--fluix-surface-contrast)\");\n\tinst.bodyEl.setAttribute(\"fill\", item.fill ?? \"var(--fluix-surface-contrast)\");\n\n\t// Header crossfade\n\tconst newHeaderKey = `${item.state}-${item.title ?? item.state}`;\n\tif (newHeaderKey !== inst.headerKey) {\n\t\tcrossfadeHeader(inst, item, attrs);\n\t\tinst.headerKey = newHeaderKey;\n\t}\n\n\tapplyVars(inst, item);\n\tanimatePill(inst, item);\n}\n\n/* ----------------------------- crossfadeHeader ----------------------------- */\n\nfunction crossfadeHeader(\n\tinst: ToastInstance,\n\titem: FluixToastItem,\n\tattrs: ReturnType<typeof CoreToaster.getAttrs>,\n) {\n\t// Move current → prev (exiting)\n\tconst oldInner = inst.innerEl;\n\toldInner.setAttribute(\"data-layer\", \"prev\");\n\toldInner.setAttribute(\"data-exiting\", \"true\");\n\n\t// Create new current\n\tconst newInner = document.createElement(\"div\");\n\tnewInner.setAttribute(\"data-fluix-header-inner\", \"\");\n\tnewInner.setAttribute(\"data-layer\", \"current\");\n\n\tconst badgeEl = document.createElement(\"div\");\n\tapplyAttrs(badgeEl, attrs.badge);\n\tif (item.styles?.badge) badgeEl.className = item.styles.badge;\n\trenderIconInto(badgeEl, item.icon, item.state);\n\n\tconst titleEl = document.createElement(\"span\");\n\tapplyAttrs(titleEl, attrs.title);\n\tif (item.styles?.title) titleEl.className = item.styles.title;\n\ttitleEl.textContent = item.title ?? item.state;\n\n\tnewInner.appendChild(badgeEl);\n\tnewInner.appendChild(titleEl);\n\tinst.headerStackEl.insertBefore(newInner, oldInner);\n\tinst.innerEl = newInner;\n\n\t// Re-observe for pill measurement\n\tinst.pillRo.unobserve(oldInner);\n\tinst.pillRo.observe(newInner);\n\n\t// Remove old after exit animation\n\tsetTimer(\n\t\tinst,\n\t\t() => {\n\t\t\toldInner.remove();\n\t\t},\n\t\tHEADER_EXIT_MS,\n\t);\n\n\t// Re-measure pill\n\trequestAnimationFrame(() => {\n\t\tmeasurePillWidth(inst);\n\t\tapplyVars(inst, inst.item);\n\t\tanimatePill(inst, inst.item);\n\t});\n}\n\n/* ----------------------------- destroyInstance ----------------------------- */\n\nfunction destroyInstance(inst: ToastInstance) {\n\tfor (const t of inst.timers) clearTimeout(t);\n\tinst.timers.clear();\n\tinst.pillAnim?.cancel();\n\tinst.pillRo.disconnect();\n\tinst.contentRo?.disconnect();\n\tinst.connectHandle.destroy();\n\tinst.el.remove();\n}\n\n/* ----------------------------- createToaster ----------------------------- */\n\nexport function createToaster(config?: FluixToasterConfig): {\n\tdestroy(): void;\n\tupdate(config: FluixToasterConfig): void;\n} {\n\tconst machine = CoreToaster.getMachine();\n\tlet currentConfig = config;\n\tif (currentConfig) machine.configure(currentConfig);\n\n\tconst instances = new Map<string, ToastInstance>();\n\tconst viewports = new Map<FluixPosition, HTMLElement>();\n\n\tfunction ensureViewport(\n\t\tposition: FluixPosition,\n\t\tlayout: FluixToastLayout,\n\t\toffset: FluixToasterConfig[\"offset\"],\n\t): HTMLElement {\n\t\tlet vp = viewports.get(position);\n\t\tif (!vp) {\n\t\t\tvp = document.createElement(\"section\");\n\t\t\tconst vpAttrs = CoreToaster.getViewportAttrs(position, layout);\n\t\t\tapplyAttrs(vp, vpAttrs);\n\t\t\tapplyViewportOffset(vp, offset, position);\n\t\t\tdocument.body.appendChild(vp);\n\t\t\tviewports.set(position, vp);\n\t\t}\n\t\treturn vp;\n\t}\n\n\tfunction removeViewport(position: FluixPosition) {\n\t\tconst vp = viewports.get(position);\n\t\tif (vp) {\n\t\t\tvp.remove();\n\t\t\tviewports.delete(position);\n\t\t}\n\t}\n\n\tfunction sync() {\n\t\tconst next = machine.store.getSnapshot();\n\t\tconst resolvedLayout = next.config?.layout ?? currentConfig?.layout ?? \"stack\";\n\t\tconst resolvedOffset = next.config?.offset ?? currentConfig?.offset;\n\n\t\t// Track which positions are active\n\t\tconst activePositions = new Set<FluixPosition>();\n\t\tconst nextIds = new Set(next.toasts.map((t) => t.id));\n\n\t\t// Remove instances for toasts that are gone\n\t\tfor (const [id, inst] of instances) {\n\t\t\tif (!nextIds.has(id)) {\n\t\t\t\tdestroyInstance(inst);\n\t\t\t\tinstances.delete(id);\n\t\t\t}\n\t\t}\n\n\t\t// Create/update instances\n\t\tfor (const item of next.toasts) {\n\t\t\tactivePositions.add(item.position);\n\t\t\tconst vp = ensureViewport(item.position, resolvedLayout, resolvedOffset);\n\n\t\t\tconst existing = instances.get(item.id);\n\t\t\tif (!existing) {\n\t\t\t\t// New toast\n\t\t\t\tconst inst = createInstance(item, machine);\n\t\t\t\tinstances.set(item.id, inst);\n\t\t\t\tvp.appendChild(inst.el);\n\t\t\t} else if (existing.item.instanceId !== item.instanceId) {\n\t\t\t\t// Content swapped (e.g., promise resolution) - rebuild\n\t\t\t\tdestroyInstance(existing);\n\t\t\t\tconst inst = createInstance(item, machine);\n\t\t\t\tinstances.set(item.id, inst);\n\t\t\t\tvp.appendChild(inst.el);\n\t\t\t} else {\n\t\t\t\t// Same instance, update attrs/vars\n\t\t\t\tapplyUpdate(existing, item, machine);\n\t\t\t\t// Ensure it's in the right viewport\n\t\t\t\tif (existing.el.parentElement !== vp) {\n\t\t\t\t\tvp.appendChild(existing.el);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Update viewport attrs (layout may have changed)\n\t\tfor (const [position, vp] of viewports) {\n\t\t\tconst vpAttrs = CoreToaster.getViewportAttrs(position, resolvedLayout);\n\t\t\tapplyAttrs(vp, vpAttrs);\n\t\t\tapplyViewportOffset(vp, resolvedOffset, position);\n\t\t}\n\n\t\t// Remove empty viewports\n\t\tfor (const [position] of viewports) {\n\t\t\tif (!activePositions.has(position)) {\n\t\t\t\tremoveViewport(position);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Initial sync\n\tsync();\n\n\t// Subscribe to store changes\n\tconst unsubscribe = machine.store.subscribe(sync);\n\n\treturn {\n\t\tdestroy() {\n\t\t\tunsubscribe();\n\t\t\tfor (const inst of instances.values()) {\n\t\t\t\tdestroyInstance(inst);\n\t\t\t}\n\t\t\tinstances.clear();\n\t\t\tfor (const vp of viewports.values()) {\n\t\t\t\tvp.remove();\n\t\t\t}\n\t\t\tviewports.clear();\n\t\t},\n\t\tupdate(newConfig: FluixToasterConfig) {\n\t\t\tcurrentConfig = newConfig;\n\t\t\tmachine.configure(newConfig);\n\t\t},\n\t};\n}\n","/**\r\n * Vanilla JS Notch — imperative DOM adapter for the Fluix Notch component.\r\n *\r\n * Creates all DOM elements (measurer, root, SVG canvas with gooey filter +\r\n * highlight rect, pill div, content div), subscribes to the core notch machine,\r\n * and drives WAAPI spring animations.\r\n */\r\n\r\nimport {\r\n\tcreateNotchMachine,\r\n\tgetNotchAttrs,\r\n\tanimateSpring,\r\n\tFLUIX_SPRING,\r\n\tNOTCH_DEFAULTS,\r\n\ttype NotchMachine,\r\n\ttype NotchPosition,\r\n\ttype NotchTrigger,\r\n\ttype NotchTheme,\r\n\ttype SpringConfig,\r\n} from \"@fluix-ui/core\";\r\n\r\n/* ----------------------------- Constants ----------------------------- */\r\n\r\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\r\n\r\n/* ----------------------------- Types ----------------------------- */\r\n\r\nexport interface NotchOptions {\r\n\ttrigger?: NotchTrigger;\r\n\tposition?: NotchPosition;\r\n\tspring?: SpringConfig;\r\n\t/** Collapsed dot size in px. Default: 36 */\r\n\tdotSize?: number;\r\n\troundness?: number;\r\n\t/** Visual theme. Default: \"dark\" */\r\n\ttheme?: NotchTheme;\r\n\tfill?: string;\r\n\topen?: boolean;\r\n\tonOpenChange?: (open: boolean) => void;\r\n\t/** Icon/content shown in the collapsed dot */\r\n\tpill: HTMLElement | string;\r\n\t/** Content shown when expanded */\r\n\tcontent: HTMLElement | string;\r\n}\r\n\r\nexport interface NotchInstance {\r\n\topen(): void;\r\n\tclose(): void;\r\n\ttoggle(): void;\r\n\tdestroy(): void;\r\n\tupdate(opts: Partial<NotchOptions>): void;\r\n}\r\n\r\n/* ----------------------------- Helpers ----------------------------- */\r\n\r\nfunction applyAttrs(el: Element, attrs: Record<string, string>) {\r\n\tfor (const [key, value] of Object.entries(attrs)) {\r\n\t\tel.setAttribute(key, value);\r\n\t}\r\n}\r\n\r\nfunction resolveContent(source: HTMLElement | string): HTMLElement {\r\n\tif (source instanceof HTMLElement) return source;\r\n\tconst span = document.createElement(\"span\");\r\n\tspan.textContent = source;\r\n\treturn span;\r\n}\r\n\r\n/* ----------------------------- createNotch ----------------------------- */\r\n\r\nexport function createNotch(\r\n\tcontainer: HTMLElement,\r\n\toptions: NotchOptions,\r\n): NotchInstance {\r\n\tlet {\r\n\t\ttrigger = \"click\",\r\n\t\tposition = \"top-center\",\r\n\t\tspring,\r\n\t\tdotSize = 36,\r\n\t\troundness = NOTCH_DEFAULTS.roundness,\r\n\t\ttheme = \"dark\",\r\n\t\tfill,\r\n\t\topen: controlledOpen,\r\n\t\tonOpenChange,\r\n\t} = options;\r\n\r\n\tconst springConfig = (): SpringConfig => spring ?? FLUIX_SPRING;\r\n\r\n\t/* ---- Core machine ---- */\r\n\tconst machine: NotchMachine = createNotchMachine({\r\n\t\tposition,\r\n\t\ttrigger,\r\n\t\troundness,\r\n\t\tfill,\r\n\t\tspring,\r\n\t});\r\n\r\n\tlet snapshot = machine.store.getSnapshot();\r\n\tlet prevOpenVal: boolean | undefined;\r\n\r\n\t/* ---- Derived values ---- */\r\n\tconst blur = () => Math.min(10, Math.max(6, roundness * 0.45));\r\n\r\n\tconst collapsedW = () => dotSize;\r\n\tconst collapsedH = () => dotSize;\r\n\r\n\tlet contentSize = { w: 200, h: 44 };\r\n\r\n\tconst hlPad = 12;\r\n\tconst expandedW = () => contentSize.w + hlPad * 2;\r\n\tconst expandedH = () => Math.max(contentSize.h + hlPad, dotSize);\r\n\r\n\tconst targetW = () => (snapshot.open ? expandedW() : collapsedW());\r\n\tconst targetH = () => (snapshot.open ? expandedH() : collapsedH());\r\n\r\n\tconst rootW = () => Math.max(expandedW(), collapsedW());\r\n\tconst rootH = () => Math.max(expandedH(), collapsedH());\r\n\r\n\t/* ---- Animation state ---- */\r\n\tconst prev = { w: 0, h: 0, initialized: false };\r\n\tlet currentAnim: Animation | null = null;\r\n\r\n\t/* ---- Hover blob state ---- */\n\tlet highlightAnim: Animation | null = null;\n\tconst hlPrev = { x: 0, y: 0, w: 0, h: 0, visible: false };\n\r\n\t/* ---- Create DOM: Hidden content measurer ---- */\r\n\tconst measureEl = document.createElement(\"div\");\r\n\tmeasureEl.setAttribute(\"data-fluix-notch-measure\", \"\");\r\n\tmeasureEl.appendChild(resolveContent(options.content).cloneNode(true));\r\n\tcontainer.appendChild(measureEl);\r\n\r\n\t/* ---- Create DOM: Root ---- */\r\n\tconst rootEl = document.createElement(\"div\");\r\n\tconst attrs = getNotchAttrs({ open: snapshot.open, position, theme });\r\n\tapplyAttrs(rootEl, attrs.root);\r\n\trootEl.style.width = `${rootW()}px`;\r\n\trootEl.style.height = `${rootH()}px`;\r\n\r\n\t/* ---- Create DOM: SVG canvas ---- */\r\n\tconst canvasDiv = document.createElement(\"div\");\r\n\tapplyAttrs(canvasDiv, attrs.canvas);\r\n\r\n\tconst svg = document.createElementNS(SVG_NS, \"svg\");\r\n\tsvg.setAttribute(\"xmlns\", \"http://www.w3.org/2000/svg\");\r\n\tsvg.setAttribute(\"width\", String(rootW()));\r\n\tsvg.setAttribute(\"height\", String(rootH()));\r\n\tsvg.setAttribute(\"viewBox\", `0 0 ${rootW()} ${rootH()}`);\r\n\tsvg.setAttribute(\"aria-hidden\", \"true\");\r\n\r\n\t// Defs + gooey filter\r\n\tconst defs = document.createElementNS(SVG_NS, \"defs\");\r\n\tconst filter = document.createElementNS(SVG_NS, \"filter\");\r\n\tfilter.setAttribute(\"id\", \"fluix-notch-goo\");\r\n\tfilter.setAttribute(\"x\", \"-20%\");\r\n\tfilter.setAttribute(\"y\", \"-20%\");\r\n\tfilter.setAttribute(\"width\", \"140%\");\r\n\tfilter.setAttribute(\"height\", \"140%\");\r\n\tfilter.setAttribute(\"color-interpolation-filters\", \"sRGB\");\r\n\r\n\tconst feBlur = document.createElementNS(SVG_NS, \"feGaussianBlur\");\r\n\tfeBlur.setAttribute(\"in\", \"SourceGraphic\");\r\n\tfeBlur.setAttribute(\"stdDeviation\", String(blur()));\r\n\tfeBlur.setAttribute(\"result\", \"blur\");\r\n\r\n\tconst feCM = document.createElementNS(SVG_NS, \"feColorMatrix\");\r\n\tfeCM.setAttribute(\"in\", \"blur\");\r\n\tfeCM.setAttribute(\"type\", \"matrix\");\r\n\tfeCM.setAttribute(\"values\", \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 20 -10\");\r\n\tfeCM.setAttribute(\"result\", \"goo\");\r\n\r\n\tconst feComp = document.createElementNS(SVG_NS, \"feComposite\");\r\n\tfeComp.setAttribute(\"in\", \"SourceGraphic\");\r\n\tfeComp.setAttribute(\"in2\", \"goo\");\r\n\tfeComp.setAttribute(\"operator\", \"atop\");\r\n\r\n\tfilter.appendChild(feBlur);\r\n\tfilter.appendChild(feCM);\r\n\tfilter.appendChild(feComp);\r\n\tdefs.appendChild(filter);\r\n\tsvg.appendChild(defs);\r\n\r\n\tconst gGroup = document.createElementNS(SVG_NS, \"g\");\r\n\tgGroup.setAttribute(\"filter\", \"url(#fluix-notch-goo)\");\r\n\r\n\t// Main shape rect\r\n\tconst svgRectEl = document.createElementNS(SVG_NS, \"rect\");\r\n\tconst cw = collapsedW();\r\n\tconst ch = collapsedH();\r\n\tsvgRectEl.setAttribute(\"x\", String((rootW() - cw) / 2));\r\n\tsvgRectEl.setAttribute(\"y\", String((rootH() - ch) / 2));\r\n\tsvgRectEl.setAttribute(\"width\", String(cw));\r\n\tsvgRectEl.setAttribute(\"height\", String(ch));\r\n\tsvgRectEl.setAttribute(\"rx\", String(cw / 2));\r\n\tsvgRectEl.setAttribute(\"ry\", String(ch / 2));\r\n\tsvgRectEl.setAttribute(\"fill\", fill ?? \"var(--fluix-notch-bg)\");\r\n\r\n\tgGroup.appendChild(svgRectEl);\r\n\tsvg.appendChild(gGroup);\r\n\r\n\t// Hover blob (same fill, inside gooey group for local deformation)\n\tconst hoverBlobEl = document.createElementNS(SVG_NS, \"rect\");\n\thoverBlobEl.setAttribute(\"x\", String((rootW() - cw) / 2));\n\thoverBlobEl.setAttribute(\"y\", String((rootH() - ch) / 2));\n\thoverBlobEl.setAttribute(\"width\", \"0\");\n\thoverBlobEl.setAttribute(\"height\", \"0\");\n\thoverBlobEl.setAttribute(\"rx\", \"0\");\n\thoverBlobEl.setAttribute(\"ry\", \"0\");\n\thoverBlobEl.setAttribute(\"opacity\", \"0\");\n\thoverBlobEl.setAttribute(\"fill\", fill ?? \"var(--fluix-notch-bg)\");\n\tgGroup.appendChild(hoverBlobEl);\n\r\n\tcanvasDiv.appendChild(svg);\r\n\trootEl.appendChild(canvasDiv);\r\n\r\n\t/* ---- Create DOM: Pill div ---- */\r\n\tconst pillDiv = document.createElement(\"div\");\r\n\tapplyAttrs(pillDiv, attrs.pill);\r\n\tpillDiv.style.width = `${dotSize}px`;\r\n\tpillDiv.style.height = `${dotSize}px`;\r\n\tpillDiv.appendChild(resolveContent(options.pill));\r\n\trootEl.appendChild(pillDiv);\r\n\r\n\t/* ---- Create DOM: Content div ---- */\r\n\tconst contentDiv = document.createElement(\"div\");\r\n\tapplyAttrs(contentDiv, attrs.content);\r\n\tcontentDiv.appendChild(resolveContent(options.content));\r\n\trootEl.appendChild(contentDiv);\r\n\r\n\tcontainer.appendChild(rootEl);\r\n\r\n\t/* ---- Initialize prev for animation ---- */\r\n\tprev.w = cw;\r\n\tprev.h = ch;\r\n\tprev.initialized = true;\r\n\r\n\t/* ---- ResizeObserver for content measurement ---- */\r\n\tlet measureRaf = 0;\r\n\tconst measureObs = new ResizeObserver(() => {\r\n\t\tcancelAnimationFrame(measureRaf);\r\n\t\tmeasureRaf = requestAnimationFrame(() => {\r\n\t\t\tconst r = measureEl.getBoundingClientRect();\r\n\t\t\tif (r.width > 0 && r.height > 0) {\r\n\t\t\t\tconst newSize = { w: Math.ceil(r.width), h: Math.ceil(r.height) };\r\n\t\t\t\tif (newSize.w !== contentSize.w || newSize.h !== contentSize.h) {\r\n\t\t\t\t\tcontentSize = newSize;\r\n\t\t\t\t\tupdateLayout();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\tmeasureObs.observe(measureEl);\r\n\r\n\t/* ---- Highlight tracking ---- */\r\n\tfunction onItemEnter(e: MouseEvent) {\n\t\tconst target = (e.target as HTMLElement).closest(\"a, button\") as HTMLElement | null;\r\n\t\tif (!target || !snapshot.open) return;\r\n\r\n\t\tconst rootRect = rootEl.getBoundingClientRect();\r\n\t\tconst itemW = target.offsetWidth;\r\n\t\tconst itemH = target.offsetHeight;\r\n\t\tconst itemRect = target.getBoundingClientRect();\r\n\t\tconst itemCenterX = itemRect.left + itemRect.width / 2;\r\n\t\tconst itemCenterY = itemRect.top + itemRect.height / 2;\r\n\r\n\t\tconst padX = 8;\n\t\tconst padY = 4;\n\t\tconst blobOvershoot = Math.max(6, roundness * 0.35);\n\t\tconst toW = itemW + padX * 2;\n\t\tconst toH = Math.max(itemH + padY * 2, rootRect.height + blobOvershoot * 2);\n\t\tconst toX = itemCenterX - rootRect.left - toW / 2;\n\t\tconst toY = itemCenterY - rootRect.top - toH / 2;\n\t\tconst toRx = toH / 2;\r\n\r\n\t\tconst fromX = hlPrev.visible ? hlPrev.x : toX + toW / 2;\n\t\tconst fromY = hlPrev.visible ? hlPrev.y : toY + toH / 2;\n\t\tconst fromW = hlPrev.visible ? hlPrev.w : 0;\n\t\tconst fromH = hlPrev.visible ? hlPrev.h : 0;\n\t\tconst fromR = hlPrev.visible ? hlPrev.h / 2 : 0;\n\n\t\tif (highlightAnim) {\n\t\t\thighlightAnim.cancel();\n\t\t\thighlightAnim = null;\n\t\t}\r\n\r\n\t\tconst sc = springConfig();\r\n\t\tconst a = animateSpring(\r\n\t\t\thoverBlobEl,\n\t\t\t{\n\t\t\t\tx: { from: fromX, to: toX, unit: \"px\" },\n\t\t\t\ty: { from: fromY, to: toY, unit: \"px\" },\n\t\t\t\twidth: { from: fromW, to: toW, unit: \"px\" },\n\t\t\t\theight: { from: fromH, to: toH, unit: \"px\" },\n\t\t\t\trx: { from: fromR, to: toRx, unit: \"px\" },\n\t\t\t\try: { from: fromR, to: toRx, unit: \"px\" },\n\t\t\t},\n\t\t\t{ ...sc, stiffness: (sc.stiffness ?? 300) * 1.2 },\n\t\t);\n\r\n\t\thlPrev.x = toX;\r\n\t\thlPrev.y = toY;\r\n\t\thlPrev.w = toW;\r\n\t\thlPrev.h = toH;\r\n\r\n\t\tif (a) {\r\n\t\t\thighlightAnim = a;\r\n\t\t\ta.onfinish = () => {\r\n\t\t\t\thighlightAnim = null;\n\t\t\t\thoverBlobEl.setAttribute(\"x\", String(toX));\n\t\t\t\thoverBlobEl.setAttribute(\"y\", String(toY));\n\t\t\t\thoverBlobEl.setAttribute(\"width\", String(toW));\n\t\t\t\thoverBlobEl.setAttribute(\"height\", String(toH));\n\t\t\t\thoverBlobEl.setAttribute(\"rx\", String(toRx));\n\t\t\t\thoverBlobEl.setAttribute(\"ry\", String(toRx));\n\t\t\t\thoverBlobEl.setAttribute(\"opacity\", \"1\");\n\t\t\t};\n\t\t} else {\n\t\t\thoverBlobEl.setAttribute(\"x\", String(toX));\n\t\t\thoverBlobEl.setAttribute(\"y\", String(toY));\n\t\t\thoverBlobEl.setAttribute(\"width\", String(toW));\n\t\t\thoverBlobEl.setAttribute(\"height\", String(toH));\n\t\t\thoverBlobEl.setAttribute(\"rx\", String(toRx));\n\t\t\thoverBlobEl.setAttribute(\"ry\", String(toRx));\n\t\t\thoverBlobEl.setAttribute(\"opacity\", \"1\");\n\t\t}\n\t\thoverBlobEl.setAttribute(\"opacity\", \"1\");\n\t\thlPrev.visible = true;\n\t}\n\n\tfunction resetHoverBlobImmediate() {\n\t\tif (highlightAnim) {\n\t\t\thighlightAnim.cancel();\n\t\t\thighlightAnim = null;\n\t\t}\n\t\thoverBlobEl.setAttribute(\"x\", String(rootW() / 2));\n\t\thoverBlobEl.setAttribute(\"y\", String(rootH() / 2));\n\t\thoverBlobEl.setAttribute(\"width\", \"0\");\n\t\thoverBlobEl.setAttribute(\"height\", \"0\");\n\t\thoverBlobEl.setAttribute(\"rx\", \"0\");\n\t\thoverBlobEl.setAttribute(\"ry\", \"0\");\n\t\thoverBlobEl.setAttribute(\"opacity\", \"0\");\n\t\thlPrev.visible = false;\n\t}\n\n\tfunction onItemLeave() {\n\t\tif (!hlPrev.visible) return;\n\t\tconst cx = hlPrev.x + hlPrev.w / 2;\n\t\tconst cy = hlPrev.y + hlPrev.h / 2;\n\t\tconst sc = springConfig();\n\t\tconst a = animateSpring(\n\t\t\thoverBlobEl,\n\t\t\t{\n\t\t\t\tx: { from: hlPrev.x, to: cx, unit: \"px\" },\n\t\t\t\ty: { from: hlPrev.y, to: cy, unit: \"px\" },\n\t\t\t\twidth: { from: hlPrev.w, to: 0, unit: \"px\" },\n\t\t\t\theight: { from: hlPrev.h, to: 0, unit: \"px\" },\n\t\t\t\trx: { from: hlPrev.h / 2, to: 0, unit: \"px\" },\n\t\t\t\try: { from: hlPrev.h / 2, to: 0, unit: \"px\" },\n\t\t\t},\n\t\t\t{ ...sc, stiffness: (sc.stiffness ?? 300) * 1.2 },\n\t\t);\n\t\tif (a) {\n\t\t\thighlightAnim = a;\n\t\t\ta.onfinish = () => {\n\t\t\t\thighlightAnim = null;\n\t\t\t\thoverBlobEl.setAttribute(\"x\", String(cx));\n\t\t\t\thoverBlobEl.setAttribute(\"y\", String(cy));\n\t\t\t\thoverBlobEl.setAttribute(\"width\", \"0\");\n\t\t\t\thoverBlobEl.setAttribute(\"height\", \"0\");\n\t\t\t\thoverBlobEl.setAttribute(\"rx\", \"0\");\n\t\t\t\thoverBlobEl.setAttribute(\"ry\", \"0\");\n\t\t\t\thoverBlobEl.setAttribute(\"opacity\", \"0\");\n\t\t\t};\n\t\t} else {\n\t\t\thoverBlobEl.setAttribute(\"x\", String(cx));\n\t\t\thoverBlobEl.setAttribute(\"y\", String(cy));\n\t\t\thoverBlobEl.setAttribute(\"width\", \"0\");\n\t\t\thoverBlobEl.setAttribute(\"height\", \"0\");\n\t\t\thoverBlobEl.setAttribute(\"rx\", \"0\");\n\t\t\thoverBlobEl.setAttribute(\"ry\", \"0\");\n\t\t\thoverBlobEl.setAttribute(\"opacity\", \"0\");\n\t\t}\n\t\thlPrev.visible = false;\n\t}\n\r\n\t/* ---- Event handlers ---- */\r\n\tfunction handleOpen() {\r\n\t\tif (controlledOpen === undefined) machine.open();\r\n\t\telse onOpenChange?.(true);\r\n\t}\r\n\tfunction handleClose() {\r\n\t\tif (controlledOpen === undefined) machine.close();\r\n\t\telse onOpenChange?.(false);\r\n\t}\r\n\tfunction handleToggle() {\r\n\t\tif (controlledOpen === undefined) machine.toggle();\r\n\t\telse onOpenChange?.(!snapshot.open);\r\n\t}\r\n\tfunction onMouseEnter() {\r\n\t\tif (trigger === \"hover\") handleOpen();\r\n\t}\r\n\tfunction onMouseLeave() {\n\t\tif (trigger === \"hover\") {\n\t\t\thandleClose();\n\t\t\tresetHoverBlobImmediate();\n\t\t\treturn;\n\t\t}\n\t\tonItemLeave();\n\t}\n\tfunction onClick() {\r\n\t\tif (trigger === \"click\") handleToggle();\r\n\t}\r\n\r\n\trootEl.addEventListener(\"mouseenter\", onMouseEnter);\r\n\trootEl.addEventListener(\"mouseleave\", onMouseLeave);\r\n\trootEl.addEventListener(\"mouseover\", onItemEnter);\r\n\trootEl.addEventListener(\"click\", onClick);\r\n\r\n\t/* ---- SVG rect animation ---- */\r\n\tfunction animateRect() {\r\n\t\tconst tw = targetW();\r\n\t\tconst th = targetH();\r\n\r\n\t\tif (tw === prev.w && th === prev.h) return;\r\n\r\n\t\tif (currentAnim) {\r\n\t\t\tcurrentAnim.cancel();\r\n\t\t\tcurrentAnim = null;\r\n\t\t}\r\n\r\n\t\tconst rw = rootW();\r\n\t\tconst rh = rootH();\r\n\r\n\t\tconst fromW = prev.w;\r\n\t\tconst fromH = prev.h;\r\n\t\tconst fromX = (rw - fromW) / 2;\r\n\t\tconst fromY = (rh - fromH) / 2;\r\n\t\tconst toX = (rw - tw) / 2;\r\n\t\tconst toY = (rh - th) / 2;\r\n\r\n\t\tprev.w = tw;\r\n\t\tprev.h = th;\r\n\r\n\t\tconst isCollapsing = tw === collapsedW() && th === collapsedH();\r\n\t\tconst wasCollapsed = fromW === collapsedW() && fromH === collapsedH();\r\n\t\tconst fromRx = wasCollapsed ? collapsedW() / 2 : roundness;\r\n\t\tconst toRx = isCollapsing ? collapsedW() / 2 : roundness;\r\n\r\n\t\tconst a = animateSpring(\r\n\t\t\tsvgRectEl,\r\n\t\t\t{\r\n\t\t\t\twidth: { from: fromW, to: tw, unit: \"px\" },\r\n\t\t\t\theight: { from: fromH, to: th, unit: \"px\" },\r\n\t\t\t\tx: { from: fromX, to: toX, unit: \"px\" },\r\n\t\t\t\ty: { from: fromY, to: toY, unit: \"px\" },\r\n\t\t\t\trx: { from: fromRx, to: toRx, unit: \"px\" },\r\n\t\t\t\try: { from: fromRx, to: toRx, unit: \"px\" },\r\n\t\t\t},\r\n\t\t\tspringConfig(),\r\n\t\t);\r\n\r\n\t\tif (a) {\r\n\t\t\tcurrentAnim = a;\r\n\t\t\ta.onfinish = () => {\r\n\t\t\t\tcurrentAnim = null;\r\n\t\t\t\tsvgRectEl.setAttribute(\"width\", String(tw));\r\n\t\t\t\tsvgRectEl.setAttribute(\"height\", String(th));\r\n\t\t\t\tsvgRectEl.setAttribute(\"x\", String(toX));\r\n\t\t\t\tsvgRectEl.setAttribute(\"y\", String(toY));\r\n\t\t\t\tsvgRectEl.setAttribute(\"rx\", String(toRx));\r\n\t\t\t\tsvgRectEl.setAttribute(\"ry\", String(toRx));\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\tsvgRectEl.setAttribute(\"width\", String(tw));\r\n\t\t\tsvgRectEl.setAttribute(\"height\", String(th));\r\n\t\t\tsvgRectEl.setAttribute(\"x\", String(toX));\r\n\t\t\tsvgRectEl.setAttribute(\"y\", String(toY));\r\n\t\t\tsvgRectEl.setAttribute(\"rx\", String(toRx));\r\n\t\t\tsvgRectEl.setAttribute(\"ry\", String(toRx));\r\n\t\t}\r\n\t}\r\n\r\n\t/* ---- Layout update ---- */\r\n\tfunction updateLayout() {\r\n\t\tconst isOpen = snapshot.open;\r\n\t\tconst newAttrs = getNotchAttrs({ open: isOpen, position, theme });\r\n\r\n\t\t// Update root attrs and size\r\n\t\tapplyAttrs(rootEl, newAttrs.root);\r\n\t\trootEl.style.width = `${rootW()}px`;\r\n\t\trootEl.style.height = `${rootH()}px`;\r\n\r\n\t\t// Update SVG viewBox\r\n\t\tsvg.setAttribute(\"width\", String(rootW()));\r\n\t\tsvg.setAttribute(\"height\", String(rootH()));\r\n\t\tsvg.setAttribute(\"viewBox\", `0 0 ${rootW()} ${rootH()}`);\r\n\r\n\t\t// Update gooey filter blur\r\n\t\tfeBlur.setAttribute(\"stdDeviation\", String(blur()));\r\n\r\n\t\t// Update fill\n\t\tsvgRectEl.setAttribute(\"fill\", fill ?? \"var(--fluix-notch-bg)\");\n\t\thoverBlobEl.setAttribute(\"fill\", fill ?? \"var(--fluix-notch-bg)\");\n\r\n\t\t// Update content attrs\r\n\t\tapplyAttrs(contentDiv, newAttrs.content);\r\n\r\n\t\t// Animate the SVG rect\r\n\t\tanimateRect();\r\n\r\n\t\t// Reset hover blob when closing\n\t\tif (!isOpen) {\n\t\t\tresetHoverBlobImmediate();\n\t\t}\n\r\n\t\t// Expose notch height as CSS variable for toast collision avoidance\r\n\t\tdocument.documentElement.style.setProperty(\r\n\t\t\t\"--fluix-notch-offset\",\r\n\t\t\t`${rootH()}px`,\r\n\t\t);\r\n\t}\r\n\r\n\t/* ---- Store subscription ---- */\r\n\tconst unsubscribe = machine.store.subscribe(() => {\r\n\t\tconst next = machine.store.getSnapshot();\r\n\t\tsnapshot = next;\r\n\r\n\t\t// Controlled open sync\r\n\t\tif (controlledOpen !== undefined) {\r\n\t\t\tif (controlledOpen && !next.open) machine.open();\r\n\t\t\telse if (!controlledOpen && next.open) machine.close();\r\n\t\t}\r\n\r\n\t\t// Fire onOpenChange callback\r\n\t\tif (prevOpenVal !== undefined && prevOpenVal !== next.open) {\r\n\t\t\tonOpenChange?.(next.open);\r\n\t\t}\r\n\t\tprevOpenVal = next.open;\r\n\r\n\t\tupdateLayout();\r\n\t});\r\n\r\n\t// Initial layout\r\n\tupdateLayout();\r\n\r\n\t// Set initial CSS variable\r\n\tdocument.documentElement.style.setProperty(\r\n\t\t\"--fluix-notch-offset\",\r\n\t\t`${rootH()}px`,\r\n\t);\r\n\r\n\t/* ---- Public API ---- */\r\n\treturn {\r\n\t\topen() {\r\n\t\t\thandleOpen();\r\n\t\t},\r\n\r\n\t\tclose() {\r\n\t\t\thandleClose();\r\n\t\t},\r\n\r\n\t\ttoggle() {\r\n\t\t\thandleToggle();\r\n\t\t},\r\n\r\n\t\tdestroy() {\r\n\t\t\tunsubscribe();\r\n\t\t\tcancelAnimationFrame(measureRaf);\r\n\t\t\tmeasureObs.disconnect();\r\n\t\t\tcurrentAnim?.cancel();\r\n\t\t\thighlightAnim?.cancel();\r\n\t\t\trootEl.removeEventListener(\"mouseenter\", onMouseEnter);\r\n\t\t\trootEl.removeEventListener(\"mouseleave\", onMouseLeave);\r\n\t\t\trootEl.removeEventListener(\"mouseover\", onItemEnter);\r\n\t\t\trootEl.removeEventListener(\"click\", onClick);\r\n\t\t\tmachine.destroy();\r\n\t\t\tmeasureEl.remove();\r\n\t\t\trootEl.remove();\r\n\t\t\tdocument.documentElement.style.removeProperty(\"--fluix-notch-offset\");\r\n\t\t},\r\n\r\n\t\tupdate(opts: Partial<NotchOptions>) {\r\n\t\t\t// Update local option values\r\n\t\t\tif (opts.trigger !== undefined) trigger = opts.trigger;\r\n\t\t\tif (opts.position !== undefined) position = opts.position;\r\n\t\t\tif (opts.spring !== undefined) spring = opts.spring;\r\n\t\t\tif (opts.dotSize !== undefined) dotSize = opts.dotSize;\r\n\t\t\tif (opts.roundness !== undefined) roundness = opts.roundness;\r\n\t\t\tif (opts.theme !== undefined) theme = opts.theme;\r\n\t\t\tif (opts.fill !== undefined) fill = opts.fill;\r\n\t\t\tif (opts.open !== undefined) controlledOpen = opts.open;\r\n\t\t\tif (opts.onOpenChange !== undefined) onOpenChange = opts.onOpenChange;\r\n\r\n\t\t\t// Update pill content\r\n\t\t\tif (opts.pill !== undefined) {\r\n\t\t\t\tpillDiv.textContent = \"\";\r\n\t\t\t\tpillDiv.appendChild(resolveContent(opts.pill));\r\n\t\t\t}\r\n\r\n\t\t\t// Update expanded content\r\n\t\t\tif (opts.content !== undefined) {\r\n\t\t\t\tcontentDiv.textContent = \"\";\r\n\t\t\t\tcontentDiv.appendChild(resolveContent(opts.content));\r\n\t\t\t\tmeasureEl.textContent = \"\";\r\n\t\t\t\tmeasureEl.appendChild(resolveContent(opts.content).cloneNode(true));\r\n\t\t\t}\r\n\r\n\t\t\t// Update pill style\r\n\t\t\tpillDiv.style.width = `${dotSize}px`;\r\n\t\t\tpillDiv.style.height = `${dotSize}px`;\r\n\r\n\t\t\t// Reconfigure the core machine\r\n\t\t\tmachine.configure({ position, trigger, roundness, fill, spring });\r\n\r\n\t\t\t// Sync controlled open\r\n\t\t\tif (controlledOpen !== undefined) {\r\n\t\t\t\tif (controlledOpen && !snapshot.open) machine.open();\r\n\t\t\t\telse if (!controlledOpen && snapshot.open) machine.close();\r\n\t\t\t}\r\n\r\n\t\t\t// Re-apply event listeners (trigger may have changed)\r\n\t\t\trootEl.removeEventListener(\"mouseenter\", onMouseEnter);\r\n\t\t\trootEl.removeEventListener(\"mouseleave\", onMouseLeave);\r\n\t\t\trootEl.removeEventListener(\"click\", onClick);\r\n\t\t\trootEl.addEventListener(\"mouseenter\", onMouseEnter);\r\n\t\t\trootEl.addEventListener(\"mouseleave\", onMouseLeave);\r\n\t\t\trootEl.addEventListener(\"click\", onClick);\r\n\r\n\t\t\tupdateLayout();\r\n\t\t},\r\n\t};\r\n}\r\n","/**\r\n * Vanilla JS Menu — imperative DOM adapter for the Fluix Menu component.\r\n *\r\n * Creates all DOM elements (nav, item buttons, SVG canvas with indicator),\r\n * subscribes to the core menu machine, and drives the indicator animation\r\n * via connectMenu.\r\n */\r\n\r\nimport {\r\n\tFLUIX_SPRING,\r\n\tMENU_DEFAULTS,\r\n\tconnectMenu,\r\n\tcreateMenuMachine,\r\n\tgetMenuAttrs,\r\n\ttype MenuMachine,\r\n\ttype MenuOrientation,\r\n\ttype MenuVariant,\r\n\ttype MenuTheme,\r\n\ttype SpringConfig,\r\n} from \"@fluix-ui/core\";\r\n\r\n/* ----------------------------- Constants ----------------------------- */\r\n\r\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\r\nconst GOO_MATRIX = \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 20 -10\";\r\n\r\n/* ----------------------------- Types ----------------------------- */\r\n\r\nexport interface MenuItemConfig {\r\n\tid: string;\r\n\tlabel: string;\r\n\tdisabled?: boolean;\r\n}\r\n\r\nexport interface MenuOptions {\r\n\torientation?: MenuOrientation;\r\n\tvariant?: MenuVariant;\r\n\ttheme?: MenuTheme;\r\n\tactiveId?: string | null;\r\n\tonActiveChange?: (id: string) => void;\r\n\tspring?: SpringConfig;\r\n\troundness?: number;\r\n\tblur?: number;\r\n\tfill?: string;\r\n\titems: MenuItemConfig[];\r\n}\r\n\r\nexport interface MenuInstance {\r\n\tsetActive(id: string | null): void;\r\n\tupdate(opts: Partial<MenuOptions>): void;\r\n\tdestroy(): void;\r\n}\r\n\r\n/* ----------------------------- Helpers ----------------------------- */\r\n\r\nfunction applyAttrs(el: Element, attrs: Record<string, string>) {\r\n\tfor (const [key, value] of Object.entries(attrs)) {\r\n\t\tel.setAttribute(key, value);\r\n\t}\r\n}\r\n\r\n/* ----------------------------- createMenu ----------------------------- */\r\n\r\nexport function createMenu(\r\n\tcontainer: HTMLElement,\r\n\toptions: MenuOptions,\r\n): MenuInstance {\r\n\tlet {\r\n\t\torientation = MENU_DEFAULTS.orientation,\r\n\t\tvariant = \"pill\",\r\n\t\ttheme = \"dark\",\r\n\t\tactiveId: controlledActiveId,\r\n\t\tonActiveChange,\r\n\t\tspring,\r\n\t\troundness = MENU_DEFAULTS.roundness,\r\n\t\tblur: blurProp,\r\n\t\tfill,\r\n\t\titems,\r\n\t} = options;\r\n\r\n\tconst springConfig = (): SpringConfig => spring ?? FLUIX_SPRING;\r\n\tconst resolvedBlur = () => blurProp ?? Math.min(10, Math.max(6, roundness * 0.45));\r\n\r\n\t/* ---- Core machine ---- */\r\n\tconst machine: MenuMachine = createMenuMachine({\r\n\t\torientation,\r\n\t\tvariant,\r\n\t\tspring,\r\n\t\troundness,\r\n\t\tblur: blurProp,\r\n\t\tfill,\r\n\t\tinitialActiveId: controlledActiveId ?? null,\r\n\t});\r\n\r\n\tlet snapshot = machine.store.getSnapshot();\r\n\tlet lastActiveNotified: string | null = snapshot.activeId;\r\n\r\n\t/* ---- Create DOM ---- */\r\n\tconst attrs = getMenuAttrs({ orientation, theme, variant });\r\n\tconst filterId = `fluix-menu-goo-${Math.random().toString(36).slice(2, 8)}`;\r\n\tconst isTab = variant === \"tab\";\r\n\r\n\t// Nav root\r\n\tconst navEl = document.createElement(\"nav\");\r\n\tapplyAttrs(navEl, attrs.root);\r\n\tnavEl.setAttribute(\"aria-label\", \"Fluix menu\");\r\n\r\n\t// SVG canvas\r\n\tconst canvasDiv = document.createElement(\"div\");\r\n\tapplyAttrs(canvasDiv, attrs.canvas);\r\n\r\n\tconst svg = document.createElementNS(SVG_NS, \"svg\");\r\n\tsvg.setAttribute(\"xmlns\", SVG_NS);\r\n\tsvg.setAttribute(\"width\", \"1\");\r\n\tsvg.setAttribute(\"height\", \"1\");\r\n\tsvg.setAttribute(\"viewBox\", \"0 0 1 1\");\r\n\tsvg.setAttribute(\"aria-hidden\", \"true\");\r\n\r\n\tlet indicatorEl: SVGRectElement | SVGPathElement;\r\n\r\n\tif (isTab) {\r\n\t\tindicatorEl = document.createElementNS(SVG_NS, \"path\") as SVGPathElement;\r\n\t\tapplyAttrs(indicatorEl, attrs.indicator);\r\n\t\tindicatorEl.setAttribute(\"d\", \"\");\r\n\t\tindicatorEl.setAttribute(\"opacity\", \"0\");\r\n\t\tindicatorEl.setAttribute(\"fill\", fill ?? \"var(--fluix-menu-indicator)\");\r\n\t\tsvg.appendChild(indicatorEl);\r\n\t} else {\r\n\t\t// Defs + gooey filter\r\n\t\tconst defs = document.createElementNS(SVG_NS, \"defs\");\r\n\t\tconst filter = document.createElementNS(SVG_NS, \"filter\");\r\n\t\tfilter.setAttribute(\"id\", filterId);\r\n\t\tfilter.setAttribute(\"x\", \"-20%\");\r\n\t\tfilter.setAttribute(\"y\", \"-20%\");\r\n\t\tfilter.setAttribute(\"width\", \"140%\");\r\n\t\tfilter.setAttribute(\"height\", \"140%\");\r\n\t\tfilter.setAttribute(\"color-interpolation-filters\", \"sRGB\");\r\n\r\n\t\tconst feBlur = document.createElementNS(SVG_NS, \"feGaussianBlur\");\r\n\t\tfeBlur.setAttribute(\"in\", \"SourceGraphic\");\r\n\t\tfeBlur.setAttribute(\"stdDeviation\", String(resolvedBlur()));\r\n\t\tfeBlur.setAttribute(\"result\", \"blur\");\r\n\r\n\t\tconst feCM = document.createElementNS(SVG_NS, \"feColorMatrix\");\r\n\t\tfeCM.setAttribute(\"in\", \"blur\");\r\n\t\tfeCM.setAttribute(\"type\", \"matrix\");\r\n\t\tfeCM.setAttribute(\"values\", GOO_MATRIX);\r\n\t\tfeCM.setAttribute(\"result\", \"goo\");\r\n\r\n\t\tconst feComp = document.createElementNS(SVG_NS, \"feComposite\");\r\n\t\tfeComp.setAttribute(\"in\", \"SourceGraphic\");\r\n\t\tfeComp.setAttribute(\"in2\", \"goo\");\r\n\t\tfeComp.setAttribute(\"operator\", \"atop\");\r\n\r\n\t\tfilter.appendChild(feBlur);\r\n\t\tfilter.appendChild(feCM);\r\n\t\tfilter.appendChild(feComp);\r\n\t\tdefs.appendChild(filter);\r\n\t\tsvg.appendChild(defs);\r\n\r\n\t\tconst gGroup = document.createElementNS(SVG_NS, \"g\");\r\n\t\tgGroup.setAttribute(\"filter\", `url(#${filterId})`);\r\n\r\n\t\tindicatorEl = document.createElementNS(SVG_NS, \"rect\") as SVGRectElement;\r\n\t\tapplyAttrs(indicatorEl, attrs.indicator);\r\n\t\tindicatorEl.setAttribute(\"x\", \"0\");\r\n\t\tindicatorEl.setAttribute(\"y\", \"0\");\r\n\t\tindicatorEl.setAttribute(\"width\", \"0\");\r\n\t\tindicatorEl.setAttribute(\"height\", \"0\");\r\n\t\tindicatorEl.setAttribute(\"rx\", \"0\");\r\n\t\tindicatorEl.setAttribute(\"ry\", \"0\");\r\n\t\tindicatorEl.setAttribute(\"opacity\", \"0\");\r\n\t\tindicatorEl.setAttribute(\"fill\", fill ?? \"var(--fluix-menu-indicator)\");\r\n\r\n\t\tgGroup.appendChild(indicatorEl);\r\n\t\tsvg.appendChild(gGroup);\r\n\t}\r\n\r\n\tcanvasDiv.appendChild(svg);\r\n\tnavEl.appendChild(canvasDiv);\r\n\r\n\t// Item list\r\n\tconst listDiv = document.createElement(\"div\");\r\n\tapplyAttrs(listDiv, attrs.list);\r\n\r\n\tconst buttonMap = new Map<string, HTMLButtonElement>();\r\n\r\n\tfunction createItemButton(item: MenuItemConfig) {\r\n\t\tconst btn = document.createElement(\"button\");\r\n\t\tbtn.type = \"button\";\r\n\t\tconst active = snapshot.activeId === item.id;\r\n\t\tconst itemAttrs = attrs.item({ id: item.id, active, disabled: item.disabled });\r\n\t\tapplyAttrs(btn, itemAttrs);\r\n\t\tif (item.disabled) btn.disabled = true;\r\n\t\tbtn.textContent = item.label;\r\n\t\tbtn.addEventListener(\"click\", () => {\r\n\t\t\tif (item.disabled) return;\r\n\t\t\tif (controlledActiveId === undefined) {\r\n\t\t\t\tmachine.setActive(item.id);\r\n\t\t\t} else {\r\n\t\t\t\tonActiveChange?.(item.id);\r\n\t\t\t}\r\n\t\t});\r\n\t\tbuttonMap.set(item.id, btn);\r\n\t\tlistDiv.appendChild(btn);\r\n\t}\r\n\r\n\tfor (const item of items) {\r\n\t\tcreateItemButton(item);\r\n\t}\r\n\r\n\tnavEl.appendChild(listDiv);\r\n\tcontainer.appendChild(navEl);\r\n\r\n\t/* ---- ResizeObserver ---- */\r\n\tlet size = { width: 0, height: 0 };\r\n\tlet measureRaf = 0;\r\n\r\n\tconst measure = () => {\r\n\t\tconst rect = navEl.getBoundingClientRect();\r\n\t\tconst w = Math.ceil(rect.width);\r\n\t\tconst h = Math.ceil(rect.height);\r\n\t\tif (size.width !== w || size.height !== h) {\r\n\t\t\tsize = { width: w, height: h };\r\n\t\t\tupdateSvgSize();\r\n\t\t\tconnection?.sync(false);\r\n\t\t}\r\n\t};\r\n\r\n\tconst resizeObs = new ResizeObserver(() => {\r\n\t\tcancelAnimationFrame(measureRaf);\r\n\t\tmeasureRaf = requestAnimationFrame(measure);\r\n\t});\r\n\tresizeObs.observe(navEl);\r\n\r\n\tfunction updateSvgSize() {\r\n\t\tconst w = Math.max(1, size.width);\r\n\t\tconst h = Math.max(1, size.height);\r\n\t\tsvg.setAttribute(\"width\", String(w));\r\n\t\tsvg.setAttribute(\"height\", String(h));\r\n\t\tsvg.setAttribute(\"viewBox\", `0 0 ${w} ${h}`);\r\n\t}\r\n\r\n\t/* ---- connectMenu ---- */\r\n\tlet connection = connectMenu({\r\n\t\troot: navEl,\r\n\t\tindicator: indicatorEl,\r\n\t\tgetActiveId: () => snapshot.activeId,\r\n\t\tonSelect(id) {\r\n\t\t\tif (controlledActiveId === undefined) {\r\n\t\t\t\tmachine.setActive(id);\r\n\t\t\t} else {\r\n\t\t\t\tonActiveChange?.(id);\r\n\t\t\t}\r\n\t\t},\r\n\t\tspring: springConfig(),\r\n\t\tvariant,\r\n\t\torientation,\r\n\t});\r\n\r\n\t// Initial measure\r\n\trequestAnimationFrame(() => {\r\n\t\tmeasure();\r\n\t\tconnection.sync(false);\r\n\t});\r\n\r\n\t/* ---- Store subscription ---- */\r\n\tconst unsubscribe = machine.store.subscribe(() => {\r\n\t\tconst next = machine.store.getSnapshot();\r\n\t\tsnapshot = next;\r\n\r\n\t\t// Update item button states\r\n\t\tfor (const item of items) {\r\n\t\t\tconst btn = buttonMap.get(item.id);\r\n\t\t\tif (btn) {\r\n\t\t\t\tconst active = next.activeId === item.id;\r\n\t\t\t\tconst itemAttrs = attrs.item({ id: item.id, active, disabled: item.disabled });\r\n\t\t\t\tapplyAttrs(btn, itemAttrs);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Fire onActiveChange callback\r\n\t\tif (next.activeId && lastActiveNotified !== next.activeId && onActiveChange) {\r\n\t\t\tonActiveChange(next.activeId);\r\n\t\t}\r\n\t\tlastActiveNotified = next.activeId;\r\n\r\n\t\tconnection.sync(false);\r\n\t});\r\n\r\n\t/* ---- Public API ---- */\r\n\treturn {\r\n\t\tsetActive(id: string | null) {\r\n\t\t\tmachine.setActive(id);\r\n\t\t},\r\n\r\n\t\tupdate(opts: Partial<MenuOptions>) {\r\n\t\t\tif (opts.orientation !== undefined) orientation = opts.orientation;\r\n\t\t\tif (opts.variant !== undefined) variant = opts.variant;\r\n\t\t\tif (opts.theme !== undefined) theme = opts.theme;\r\n\t\t\tif (opts.activeId !== undefined) controlledActiveId = opts.activeId;\r\n\t\t\tif (opts.onActiveChange !== undefined) onActiveChange = opts.onActiveChange;\r\n\t\t\tif (opts.spring !== undefined) spring = opts.spring;\r\n\t\t\tif (opts.roundness !== undefined) roundness = opts.roundness;\r\n\t\t\tif (opts.blur !== undefined) blurProp = opts.blur;\r\n\t\t\tif (opts.fill !== undefined) fill = opts.fill;\r\n\r\n\t\t\tmachine.configure({ orientation, variant, spring, roundness, blur: blurProp, fill });\r\n\r\n\t\t\tif (controlledActiveId !== undefined) {\r\n\t\t\t\tmachine.setActive(controlledActiveId ?? null);\r\n\t\t\t}\r\n\r\n\t\t\t// Update root attrs\r\n\t\t\tconst newAttrs = getMenuAttrs({ orientation, theme, variant });\r\n\t\t\tapplyAttrs(navEl, newAttrs.root);\r\n\r\n\t\t\t// Rebuild items if provided\r\n\t\t\tif (opts.items !== undefined) {\r\n\t\t\t\titems = opts.items;\r\n\t\t\t\tlistDiv.innerHTML = \"\";\r\n\t\t\t\tbuttonMap.clear();\r\n\t\t\t\tfor (const item of items) {\r\n\t\t\t\t\tcreateItemButton(item);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Reconnect\r\n\t\t\tconnection.destroy();\r\n\t\t\tconnection = connectMenu({\r\n\t\t\t\troot: navEl,\r\n\t\t\t\tindicator: indicatorEl,\r\n\t\t\t\tgetActiveId: () => snapshot.activeId,\r\n\t\t\t\tonSelect(id) {\r\n\t\t\t\t\tif (controlledActiveId === undefined) {\r\n\t\t\t\t\t\tmachine.setActive(id);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tonActiveChange?.(id);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tspring: springConfig(),\r\n\t\t\t\tvariant,\r\n\t\t\t\torientation,\r\n\t\t\t});\r\n\r\n\t\t\trequestAnimationFrame(() => {\r\n\t\t\t\tmeasure();\r\n\t\t\t\tconnection.sync(false);\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tdestroy() {\r\n\t\t\tunsubscribe();\r\n\t\t\tcancelAnimationFrame(measureRaf);\r\n\t\t\tresizeObs.disconnect();\r\n\t\t\tconnection.destroy();\r\n\t\t\tmachine.destroy();\r\n\t\t\tnavEl.remove();\r\n\t\t},\r\n\t};\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/shared.ts","../src/toast/icons.ts","../src/toast/update.ts","../src/toast/instance.ts","../src/toast/index.ts","../src/notch/highlight.ts","../src/notch/dom.ts","../src/notch/index.ts","../src/menu/index.ts"],"names":["el","blur","CoreToaster","MIN_EXPAND_RATIO","TOAST_DEFAULTS","animateSpring","springCfg","HL_PAD","FLUIX_SPRING","getNotchAttrs","indicatorEl"],"mappings":"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","file":"index.js","sourcesContent":["/** Shared constants and helpers for vanilla adapters. */\n\nexport const SVG_NS = \"http://www.w3.org/2000/svg\";\nconst GOO_MATRIX = \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 20 -10\";\n\nexport function applyAttrs(el: Element, attrs: Record<string, string>) {\n\tfor (const [key, value] of Object.entries(attrs)) {\n\t\tel.setAttribute(key, value);\n\t}\n}\n\nexport function clearChildren(el: Element) {\n\twhile (el.firstChild) el.removeChild(el.firstChild);\n}\n\n/** Creates an SVG gooey filter group. Returns the `<g>` and `<defs>` elements. */\nexport function createGooeyFilter(filterId: string, blur: number) {\n\tconst defs = document.createElementNS(SVG_NS, \"defs\");\n\tconst filter = document.createElementNS(SVG_NS, \"filter\");\n\tfilter.setAttribute(\"id\", filterId);\n\tfor (const [k, v] of Object.entries({ x: \"-50%\", y: \"-50%\", width: \"200%\", height: \"200%\" })) {\n\t\tfilter.setAttribute(k, v);\n\t}\n\tfilter.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n\n\tconst feBlur = document.createElementNS(SVG_NS, \"feGaussianBlur\");\n\tfeBlur.setAttribute(\"in\", \"SourceGraphic\");\n\tfeBlur.setAttribute(\"stdDeviation\", String(blur));\n\tfeBlur.setAttribute(\"result\", \"blur\");\n\n\tconst feCM = document.createElementNS(SVG_NS, \"feColorMatrix\");\n\tfeCM.setAttribute(\"in\", \"blur\");\n\tfeCM.setAttribute(\"type\", \"matrix\");\n\tfeCM.setAttribute(\"values\", GOO_MATRIX);\n\tfeCM.setAttribute(\"result\", \"goo\");\n\n\tconst feComp = document.createElementNS(SVG_NS, \"feComposite\");\n\tfeComp.setAttribute(\"in\", \"SourceGraphic\");\n\tfeComp.setAttribute(\"in2\", \"goo\");\n\tfeComp.setAttribute(\"operator\", \"atop\");\n\n\tfilter.appendChild(feBlur);\n\tfilter.appendChild(feCM);\n\tfilter.appendChild(feComp);\n\tdefs.appendChild(filter);\n\n\tconst g = document.createElementNS(SVG_NS, \"g\");\n\tg.setAttribute(\"filter\", `url(#${filterId})`);\n\n\treturn { g, defs, feBlur };\n}\n\n/** Initialize a set of SVG rect attributes to zero. */\nexport function zeroRect(el: SVGElement) {\n\tfor (const attr of [\"x\", \"y\", \"width\", \"height\", \"rx\", \"ry\"]) {\n\t\tel.setAttribute(attr, \"0\");\n\t}\n}\n","/** SVG icon builders for toast states. */\n\nimport type { FluixToastItem } from \"@fluix-ui/core\";\nimport { SVG_NS } from \"../shared\";\n\ntype SvgChild = { tag: string; attrs: Record<string, string> };\n\nfunction el(tag: string, attrs: Record<string, string>): SvgChild { return { tag, attrs }; }\nfunction line(x1: string, y1: string, x2: string, y2: string) { return el(\"line\", { x1, y1, x2, y2 }); }\n\nconst ICON_DEFS: Record<string, { spin?: boolean; children: SvgChild[] }> = {\n\tsuccess: { children: [el(\"polyline\", { points: \"20 6 9 17 4 12\" })] },\n\terror: { children: [line(\"18\", \"6\", \"6\", \"18\"), line(\"6\", \"6\", \"18\", \"18\")] },\n\twarning: { children: [\n\t\tel(\"path\", { d: \"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\" }),\n\t\tline(\"12\", \"9\", \"12\", \"13\"), line(\"12\", \"17\", \"12.01\", \"17\"),\n\t] },\n\tinfo: { children: [\n\t\tel(\"circle\", { cx: \"12\", cy: \"12\", r: \"10\" }),\n\t\tline(\"12\", \"16\", \"12\", \"12\"), line(\"12\", \"8\", \"12.01\", \"8\"),\n\t] },\n\tloading: { spin: true, children: [\n\t\tline(\"12\", \"2\", \"12\", \"6\"), line(\"12\", \"18\", \"12\", \"22\"),\n\t\tline(\"4.93\", \"4.93\", \"7.76\", \"7.76\"), line(\"16.24\", \"16.24\", \"19.07\", \"19.07\"),\n\t\tline(\"2\", \"12\", \"6\", \"12\"), line(\"18\", \"12\", \"22\", \"12\"),\n\t\tline(\"4.93\", \"19.07\", \"7.76\", \"16.24\"), line(\"16.24\", \"7.76\", \"19.07\", \"4.93\"),\n\t] },\n\taction: { children: [\n\t\tel(\"circle\", { cx: \"12\", cy: \"12\", r: \"10\" }),\n\t\tel(\"polygon\", { points: \"10 8 16 12 10 16 10 8\", fill: \"currentColor\", stroke: \"none\" }),\n\t] },\n};\n\nfunction createSvgIcon(state: FluixToastItem[\"state\"]): SVGSVGElement | null {\n\tconst def = ICON_DEFS[state];\n\tif (!def) return null;\n\n\tconst svg = document.createElementNS(SVG_NS, \"svg\");\n\tfor (const [k, v] of Object.entries({ width: \"14\", height: \"14\", viewBox: \"0 0 24 24\", fill: \"none\", stroke: \"currentColor\", \"stroke-width\": \"2.5\", \"stroke-linecap\": \"round\", \"stroke-linejoin\": \"round\", \"aria-hidden\": \"true\" })) {\n\t\tsvg.setAttribute(k, v);\n\t}\n\tif (def.spin) svg.setAttribute(\"data-fluix-icon\", \"spin\");\n\n\tfor (const child of def.children) {\n\t\tconst node = document.createElementNS(SVG_NS, child.tag);\n\t\tfor (const [k, v] of Object.entries(child.attrs)) node.setAttribute(k, v);\n\t\tsvg.appendChild(node);\n\t}\n\treturn svg;\n}\n\nexport function renderIconInto(container: HTMLElement, icon: unknown, state: FluixToastItem[\"state\"]) {\n\tcontainer.textContent = \"\";\n\tif (icon != null) {\n\t\tif (icon instanceof HTMLElement || icon instanceof SVGElement) {\n\t\t\tcontainer.appendChild(icon);\n\t\t} else {\n\t\t\tconst span = document.createElement(\"span\");\n\t\t\tspan.setAttribute(\"aria-hidden\", \"true\");\n\t\t\tspan.textContent = String(icon);\n\t\t\tcontainer.appendChild(span);\n\t\t}\n\t\treturn;\n\t}\n\tconst svgIcon = createSvgIcon(state);\n\tif (svgIcon) container.appendChild(svgIcon);\n}\n","/** Toast instance runtime: layout computation, animation, update, crossfade, and teardown. */\n\nimport {\n\tToaster as CoreToaster,\n\tFLUIX_SPRING,\n\ttype FluixToastItem,\n\tTOAST_DEFAULTS,\n\ttype ToastMachine,\n\tanimateSpring,\n} from \"@fluix-ui/core\";\n\nimport { applyAttrs } from \"../shared\";\nimport { renderIconInto } from \"./icons\";\nimport type { ToastInstance } from \"./instance\";\nimport { WIDTH, HEIGHT } from \"./instance\";\n\n/* ----------------------------- Constants ----------------------------- */\n\nconst PILL_PADDING = 10;\nconst MIN_EXPAND_RATIO = 2.25;\nconst HEADER_EXIT_MS = 600 * 0.7;\nconst BODY_MERGE_OVERLAP = 6;\n\n/* ----------------------------- Layout ----------------------------- */\n\nfunction computeLayout(item: FluixToastItem, inst: ToastInstance) {\n\tconst { ready, expanded: isExpanded } = inst.localState;\n\tconst roundness = item.roundness ?? TOAST_DEFAULTS.roundness;\n\tconst blur = Math.min(10, Math.max(6, roundness * 0.45));\n\tconst hasDesc = Boolean(item.description) || Boolean(item.button);\n\tconst isLoading = item.state === \"loading\";\n\tconst open = hasDesc && isExpanded && !isLoading;\n\tconst position = getPillAlignLocal(item.position);\n\tconst edge = item.position.startsWith(\"top\") ? \"bottom\" : \"top\";\n\n\tconst resolvedPillWidth = Math.max(inst.pillWidth || HEIGHT, HEIGHT);\n\tconst pillHeight = HEIGHT + blur * 3;\n\tconst pillX =\n\t\tposition === \"right\" ? WIDTH - resolvedPillWidth\n\t\t: position === \"center\" ? (WIDTH - resolvedPillWidth) / 2\n\t\t: 0;\n\n\tconst minExpanded = HEIGHT * MIN_EXPAND_RATIO;\n\tconst rawExpanded = hasDesc ? Math.max(minExpanded, HEIGHT + inst.contentHeight) : minExpanded;\n\tif (open) inst.frozenExpanded = rawExpanded;\n\tconst expanded = open ? rawExpanded : inst.frozenExpanded;\n\tconst expandedContent = Math.max(0, expanded - HEIGHT);\n\tconst svgHeight = hasDesc ? Math.max(expanded, minExpanded) : HEIGHT;\n\n\treturn {\n\t\tready, isExpanded, roundness, blur, hasDesc, isLoading, open,\n\t\tposition, edge, resolvedPillWidth, pillHeight, pillX,\n\t\tminExpanded, expanded, expandedContent, svgHeight,\n\t};\n}\n\nfunction getPillAlignLocal(position: string): \"left\" | \"center\" | \"right\" {\n\tif (position.includes(\"right\")) return \"right\";\n\tif (position.includes(\"center\")) return \"center\";\n\treturn \"left\";\n}\n\n/* ----------------------------- Measurement ----------------------------- */\n\nexport function measurePillWidth(inst: ToastInstance) {\n\tif (!inst.el.isConnected) return;\n\tif (inst.headerPad === null) {\n\t\tconst cs = getComputedStyle(inst.headerEl);\n\t\tinst.headerPad = Number.parseFloat(cs.paddingLeft) + Number.parseFloat(cs.paddingRight);\n\t}\n\tconst w = inst.innerEl.getBoundingClientRect().width + inst.headerPad + PILL_PADDING;\n\tif (w > PILL_PADDING && w !== inst.pillWidth) inst.pillWidth = w;\n}\n\n/* ----------------------------- CSS vars ----------------------------- */\n\nexport function applyVars(inst: ToastInstance, item: FluixToastItem) {\n\tconst layout = computeLayout(item, inst);\n\tconst { open, expanded, resolvedPillWidth, pillX, edge, expandedContent, svgHeight } = layout;\n\n\tconst vars: Record<string, string> = {\n\t\t\"--_h\": `${open ? expanded : HEIGHT}px`,\n\t\t\"--_pw\": `${resolvedPillWidth}px`,\n\t\t\"--_px\": `${pillX}px`,\n\t\t\"--_ht\": `translateY(${open ? (edge === \"bottom\" ? 3 : -3) : 0}px) scale(${open ? 0.9 : 1})`,\n\t\t\"--_co\": `${open ? 1 : 0}`,\n\t\t\"--_cy\": `${open ? 0 : -14}px`,\n\t\t\"--_cm\": `${open ? expandedContent : 0}px`,\n\t\t\"--_by\": `${open ? HEIGHT - BODY_MERGE_OVERLAP : HEIGHT}px`,\n\t\t\"--_bh\": `${open ? expandedContent : 0}px`,\n\t\t\"--_bo\": `${open ? 1 : 0}`,\n\t};\n\n\tfor (const [key, value] of Object.entries(vars)) inst.el.style.setProperty(key, value);\n\tinst.svgEl.setAttribute(\"height\", String(svgHeight));\n\tinst.svgEl.setAttribute(\"viewBox\", `0 0 ${WIDTH} ${svgHeight}`);\n}\n\n/* ----------------------------- Pill animation ----------------------------- */\n\nexport function animatePill(inst: ToastInstance, item: FluixToastItem) {\n\tconst { open, resolvedPillWidth, pillX, pillHeight } = computeLayout(item, inst);\n\tconst prev = inst.prevPill;\n\tconst next = { x: pillX, width: resolvedPillWidth, height: open ? pillHeight : HEIGHT };\n\n\tif (prev.x === next.x && prev.width === next.width && prev.height === next.height) return;\n\tinst.pillAnim?.cancel();\n\n\tif (!inst.localState.ready || inst.pillFirst) {\n\t\tinst.pillFirst = false;\n\t\tinst.pillEl.setAttribute(\"x\", String(next.x));\n\t\tinst.pillEl.setAttribute(\"width\", String(next.width));\n\t\tinst.pillEl.setAttribute(\"height\", String(next.height));\n\t\tinst.prevPill = next;\n\t\treturn;\n\t}\n\n\tinst.pillAnim = animateSpring(inst.pillEl, {\n\t\tx: { from: prev.x, to: next.x, unit: \"px\" },\n\t\twidth: { from: prev.width, to: next.width, unit: \"px\" },\n\t\theight: { from: prev.height, to: next.height, unit: \"px\" },\n\t}, FLUIX_SPRING);\n\tinst.prevPill = next;\n}\n\n/* ----------------------------- Timers ----------------------------- */\n\nexport function setTimer(inst: ToastInstance, fn: () => void, ms: number) {\n\tconst id = setTimeout(() => { inst.timers.delete(id); fn(); }, ms);\n\tinst.timers.add(id);\n\treturn id;\n}\n\nexport function setupAutoDismiss(inst: ToastInstance, item: FluixToastItem, machine: ToastMachine) {\n\tconst duration = item.duration;\n\tif (duration == null || duration <= 0) return;\n\tsetTimer(inst, () => {\n\t\tif (inst.hovering) {\n\t\t\tinst.pendingDismiss = true;\n\t\t\tsetTimer(inst, () => {\n\t\t\t\tif (inst.dismissRequested) return;\n\t\t\t\tinst.dismissRequested = true;\n\t\t\t\tinst.pendingDismiss = false;\n\t\t\t\tmachine.dismiss(item.id);\n\t\t\t}, 1200);\n\t\t\treturn;\n\t\t}\n\t\tinst.pendingDismiss = false;\n\t\tinst.dismissRequested = true;\n\t\tmachine.dismiss(item.id);\n\t}, duration);\n}\n\nexport function setupAutopilot(inst: ToastInstance, item: FluixToastItem, machine: ToastMachine) {\n\tif (item.autoExpandDelayMs != null && item.autoExpandDelayMs > 0) {\n\t\tsetTimer(inst, () => {\n\t\t\tif (!inst.hovering) { inst.localState.expanded = true; applyUpdate(inst, inst.item, machine); }\n\t\t}, item.autoExpandDelayMs);\n\t}\n\tif (item.autoCollapseDelayMs != null && item.autoCollapseDelayMs > 0) {\n\t\tsetTimer(inst, () => {\n\t\t\tif (!inst.hovering) { inst.localState.expanded = false; applyUpdate(inst, inst.item, machine); }\n\t\t}, item.autoCollapseDelayMs);\n\t}\n}\n\n/* ----------------------------- Update ----------------------------- */\n\nfunction updateDescription(inst: ToastInstance, item: FluixToastItem, attrs: ReturnType<typeof CoreToaster.getAttrs>) {\n\tconst hasDesc = Boolean(item.description) || Boolean(item.button);\n\tif (hasDesc && !inst.contentEl) {\n\t\tconst contentEl = document.createElement(\"div\");\n\t\tconst descriptionEl = document.createElement(\"div\");\n\t\tcontentEl.appendChild(descriptionEl);\n\t\tinst.el.appendChild(contentEl);\n\t\tinst.contentEl = contentEl;\n\t\tinst.descriptionEl = descriptionEl;\n\n\t\tinst.contentRo = new ResizeObserver(() => {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tconst h = descriptionEl.scrollHeight;\n\t\t\t\tif (h !== inst.contentHeight) { inst.contentHeight = h; applyVars(inst, inst.item); }\n\t\t\t});\n\t\t});\n\t\tinst.contentRo.observe(descriptionEl);\n\t}\n\n\tif (inst.contentEl) applyAttrs(inst.contentEl, attrs.content);\n\tif (!inst.descriptionEl) return;\n\n\tapplyAttrs(inst.descriptionEl, attrs.description);\n\tif (item.styles?.description) inst.descriptionEl.className = item.styles.description;\n\n\tconst existingBtn = inst.descriptionEl.querySelector(\"[data-fluix-button]\");\n\tinst.descriptionEl.textContent = \"\";\n\n\tif (item.description != null) {\n\t\tif (typeof item.description === \"string\") inst.descriptionEl.textContent = item.description;\n\t\telse if (item.description instanceof HTMLElement) inst.descriptionEl.appendChild(item.description);\n\t}\n\n\tif (item.button) {\n\t\tlet btnEl = existingBtn as HTMLButtonElement | null;\n\t\tif (!btnEl) { btnEl = document.createElement(\"button\"); btnEl.type = \"button\"; }\n\t\tbtnEl.textContent = item.button.title;\n\t\tif (item.styles?.button) btnEl.className = item.styles.button;\n\t\tapplyAttrs(btnEl, attrs.button);\n\t\tconst newBtn = btnEl.cloneNode(true) as HTMLButtonElement;\n\t\tnewBtn.addEventListener(\"click\", (e) => { e.stopPropagation(); item.button?.onClick(); });\n\t\tinst.descriptionEl.appendChild(newBtn);\n\t}\n}\n\nexport function applyUpdate(inst: ToastInstance, item: FluixToastItem, _machine: ToastMachine) {\n\tinst.item = item;\n\tconst attrs = CoreToaster.getAttrs(item, inst.localState);\n\tapplyAttrs(inst.el, attrs.root);\n\n\tconst canvasEl = inst.el.querySelector(\"[data-fluix-canvas]\");\n\tif (canvasEl) applyAttrs(canvasEl, attrs.canvas);\n\tapplyAttrs(inst.headerEl, attrs.header);\n\n\tconst badgeEl = inst.innerEl.querySelector(\"[data-fluix-badge]\");\n\tif (badgeEl) {\n\t\tapplyAttrs(badgeEl, attrs.badge);\n\t\tif (item.styles?.badge) (badgeEl as HTMLElement).className = item.styles.badge;\n\t}\n\tconst titleEl = inst.innerEl.querySelector(\"[data-fluix-title]\");\n\tif (titleEl) {\n\t\tapplyAttrs(titleEl, attrs.title);\n\t\tif (item.styles?.title) (titleEl as HTMLElement).className = item.styles.title;\n\t}\n\n\tupdateDescription(inst, item, attrs);\n\n\tinst.pillEl.setAttribute(\"fill\", item.fill ?? \"var(--fluix-surface-contrast)\");\n\tinst.bodyEl.setAttribute(\"fill\", item.fill ?? \"var(--fluix-surface-contrast)\");\n\n\tconst newHeaderKey = `${item.state}-${item.title ?? item.state}`;\n\tif (newHeaderKey !== inst.headerKey) { crossfadeHeader(inst, item, attrs); inst.headerKey = newHeaderKey; }\n\n\tapplyVars(inst, item);\n\tanimatePill(inst, item);\n}\n\n/* ----------------------------- Crossfade ----------------------------- */\n\nfunction crossfadeHeader(inst: ToastInstance, item: FluixToastItem, attrs: ReturnType<typeof CoreToaster.getAttrs>) {\n\tconst oldInner = inst.innerEl;\n\toldInner.setAttribute(\"data-layer\", \"prev\");\n\toldInner.setAttribute(\"data-exiting\", \"true\");\n\n\tconst newInner = document.createElement(\"div\");\n\tnewInner.setAttribute(\"data-fluix-header-inner\", \"\");\n\tnewInner.setAttribute(\"data-layer\", \"current\");\n\n\tconst badgeEl = document.createElement(\"div\");\n\tapplyAttrs(badgeEl, attrs.badge);\n\tif (item.styles?.badge) badgeEl.className = item.styles.badge;\n\trenderIconInto(badgeEl, item.icon, item.state);\n\n\tconst titleEl = document.createElement(\"span\");\n\tapplyAttrs(titleEl, attrs.title);\n\tif (item.styles?.title) titleEl.className = item.styles.title;\n\ttitleEl.textContent = item.title ?? item.state;\n\n\tnewInner.appendChild(badgeEl);\n\tnewInner.appendChild(titleEl);\n\tinst.headerStackEl.insertBefore(newInner, oldInner);\n\tinst.innerEl = newInner;\n\n\tinst.pillRo.unobserve(oldInner);\n\tinst.pillRo.observe(newInner);\n\tsetTimer(inst, () => { oldInner.remove(); }, HEADER_EXIT_MS);\n\n\trequestAnimationFrame(() => {\n\t\tmeasurePillWidth(inst);\n\t\tapplyVars(inst, inst.item);\n\t\tanimatePill(inst, inst.item);\n\t});\n}\n\n/* ----------------------------- Destroy ----------------------------- */\n\nexport function destroyInstance(inst: ToastInstance) {\n\tfor (const t of inst.timers) clearTimeout(t);\n\tinst.timers.clear();\n\tinst.pillAnim?.cancel();\n\tinst.pillRo.disconnect();\n\tinst.contentRo?.disconnect();\n\tinst.connectHandle.destroy();\n\tinst.el.remove();\n}\n","/** Toast instance creation and DOM building. */\n\nimport {\n\tToaster as CoreToaster,\n\ttype FluixToastItem,\n\tTOAST_DEFAULTS,\n\ttype ToastMachine,\n} from \"@fluix-ui/core\";\n\nimport { SVG_NS, applyAttrs, createGooeyFilter } from \"../shared\";\nimport { renderIconInto } from \"./icons\";\nimport { measurePillWidth, applyVars, applyUpdate, setTimer, setupAutoDismiss, setupAutopilot } from \"./update\";\n\n/* ----------------------------- Constants ----------------------------- */\n\nexport const WIDTH = 350;\nexport const HEIGHT = 40;\nconst MIN_EXPAND_RATIO = 2.25;\n\n/* ----------------------------- Types ----------------------------- */\n\nexport interface ToastInstance {\n\tel: HTMLButtonElement;\n\tpillEl: SVGRectElement;\n\tbodyEl: SVGRectElement;\n\tsvgEl: SVGSVGElement;\n\theaderEl: HTMLDivElement;\n\tinnerEl: HTMLDivElement;\n\theaderStackEl: HTMLDivElement;\n\tcontentEl: HTMLDivElement | null;\n\tdescriptionEl: HTMLDivElement | null;\n\tlocalState: { ready: boolean; expanded: boolean };\n\tpillWidth: number;\n\tcontentHeight: number;\n\tfrozenExpanded: number;\n\thovering: boolean;\n\tpendingDismiss: boolean;\n\tdismissRequested: boolean;\n\tpillRo: ResizeObserver;\n\tcontentRo: ResizeObserver | null;\n\tpillAnim: Animation | null;\n\tprevPill: { x: number; width: number; height: number };\n\tpillFirst: boolean;\n\theaderKey: string;\n\theaderPad: number | null;\n\tconnectHandle: { destroy(): void };\n\ttimers: Set<ReturnType<typeof setTimeout>>;\n\titem: FluixToastItem;\n}\n\n/* ----------------------------- Re-exports ----------------------------- */\n\nexport { applyUpdate, destroyInstance } from \"./update\";\n\n/* ----------------------------- Helpers ----------------------------- */\n\nexport function getPillAlign(position: string): \"left\" | \"center\" | \"right\" {\n\tif (position.includes(\"right\")) return \"right\";\n\tif (position.includes(\"center\")) return \"center\";\n\treturn \"left\";\n}\n\n/* ----------------------------- SVG builder ----------------------------- */\n\nfunction buildInstanceSvg(item: FluixToastItem, roundness: number, blur: number) {\n\tconst filterId = `fluix-gooey-${item.id.replace(/[^a-z0-9-]/gi, \"-\")}`;\n\tconst hasDesc = Boolean(item.description) || Boolean(item.button);\n\tconst initialSvgHeight = hasDesc ? HEIGHT * MIN_EXPAND_RATIO : HEIGHT;\n\n\tconst svg = document.createElementNS(SVG_NS, \"svg\");\n\tsvg.setAttribute(\"data-fluix-svg\", \"\");\n\tsvg.setAttribute(\"width\", String(WIDTH));\n\tsvg.setAttribute(\"height\", String(initialSvgHeight));\n\tsvg.setAttribute(\"viewBox\", `0 0 ${WIDTH} ${initialSvgHeight}`);\n\tsvg.setAttribute(\"aria-hidden\", \"true\");\n\n\tconst { g, defs } = createGooeyFilter(filterId, blur);\n\tsvg.appendChild(defs);\n\n\tconst initialPillX =\n\t\tgetPillAlign(item.position) === \"right\" ? WIDTH - HEIGHT\n\t\t: getPillAlign(item.position) === \"center\" ? (WIDTH - HEIGHT) / 2\n\t\t: 0;\n\n\tconst fill = item.fill ?? \"var(--fluix-surface-contrast)\";\n\n\tconst pillEl = document.createElementNS(SVG_NS, \"rect\");\n\tpillEl.setAttribute(\"data-fluix-pill\", \"\");\n\tfor (const [k, v] of Object.entries({ x: initialPillX, y: 0, width: HEIGHT, height: HEIGHT, rx: roundness, ry: roundness })) {\n\t\tpillEl.setAttribute(k, String(v));\n\t}\n\tpillEl.setAttribute(\"fill\", fill);\n\n\tconst bodyEl = document.createElementNS(SVG_NS, \"rect\");\n\tbodyEl.setAttribute(\"data-fluix-body\", \"\");\n\tfor (const [k, v] of Object.entries({ x: 0, y: HEIGHT, width: WIDTH, height: 0, rx: roundness, ry: roundness })) {\n\t\tbodyEl.setAttribute(k, String(v));\n\t}\n\tbodyEl.setAttribute(\"fill\", fill);\n\tbodyEl.setAttribute(\"opacity\", \"0\");\n\n\tg.appendChild(pillEl);\n\tg.appendChild(bodyEl);\n\tsvg.appendChild(g);\n\n\treturn { svg, pillEl, bodyEl, initialPillX };\n}\n\n/* ----------------------------- Content builder ----------------------------- */\n\nfunction buildInstanceContent(item: FluixToastItem) {\n\tlet contentEl: HTMLDivElement | null = null;\n\tlet descriptionEl: HTMLDivElement | null = null;\n\tconst hasDesc = Boolean(item.description) || Boolean(item.button);\n\n\tif (!hasDesc) return { contentEl, descriptionEl };\n\n\tcontentEl = document.createElement(\"div\");\n\tdescriptionEl = document.createElement(\"div\");\n\tif (item.styles?.description) descriptionEl.className = item.styles.description;\n\n\tif (item.description != null) {\n\t\tif (typeof item.description === \"string\") descriptionEl.textContent = item.description;\n\t\telse if (item.description instanceof HTMLElement) descriptionEl.appendChild(item.description);\n\t}\n\n\tif (item.button) {\n\t\tconst btn = document.createElement(\"button\");\n\t\tbtn.type = \"button\";\n\t\tbtn.textContent = item.button.title;\n\t\tif (item.styles?.button) btn.className = item.styles.button;\n\t\tbtn.addEventListener(\"click\", (e) => { e.stopPropagation(); item.button?.onClick(); });\n\t\tdescriptionEl.appendChild(btn);\n\t}\n\n\tcontentEl.appendChild(descriptionEl);\n\treturn { contentEl, descriptionEl };\n}\n\n/* ----------------------------- Header builder ----------------------------- */\n\nfunction buildHeader(item: FluixToastItem) {\n\tconst headerEl = document.createElement(\"div\");\n\tconst headerStackEl = document.createElement(\"div\");\n\theaderStackEl.setAttribute(\"data-fluix-header-stack\", \"\");\n\n\tconst innerEl = document.createElement(\"div\");\n\tinnerEl.setAttribute(\"data-fluix-header-inner\", \"\");\n\tinnerEl.setAttribute(\"data-layer\", \"current\");\n\n\tconst badgeEl = document.createElement(\"div\");\n\trenderIconInto(badgeEl, item.icon, item.state);\n\n\tconst titleEl = document.createElement(\"span\");\n\ttitleEl.textContent = item.title ?? item.state;\n\n\tinnerEl.appendChild(badgeEl);\n\tinnerEl.appendChild(titleEl);\n\theaderStackEl.appendChild(innerEl);\n\theaderEl.appendChild(headerStackEl);\n\n\treturn { headerEl, headerStackEl, innerEl, badgeEl, titleEl };\n}\n\n/* ----------------------------- createInstance ----------------------------- */\n\nexport function createInstance(item: FluixToastItem, machine: ToastMachine): ToastInstance {\n\tconst localState = { ready: false, expanded: false };\n\tconst roundness = item.roundness ?? TOAST_DEFAULTS.roundness;\n\tconst blur = Math.min(10, Math.max(6, roundness * 0.45));\n\n\tconst el = document.createElement(\"button\");\n\tel.type = \"button\";\n\n\tconst canvasDiv = document.createElement(\"div\");\n\tconst { svg, pillEl, bodyEl, initialPillX } = buildInstanceSvg(item, roundness, blur);\n\tcanvasDiv.appendChild(svg);\n\tel.appendChild(canvasDiv);\n\n\tconst { headerEl, headerStackEl, innerEl, badgeEl, titleEl } = buildHeader(item);\n\tel.appendChild(headerEl);\n\n\tconst { contentEl, descriptionEl } = buildInstanceContent(item);\n\tif (contentEl) el.appendChild(contentEl);\n\n\tconst attrs = CoreToaster.getAttrs(item, localState);\n\tapplyAttrs(el, attrs.root);\n\tapplyAttrs(canvasDiv, attrs.canvas);\n\tapplyAttrs(headerEl, attrs.header);\n\tapplyAttrs(badgeEl, attrs.badge);\n\tif (item.styles?.badge) badgeEl.className = item.styles.badge;\n\tapplyAttrs(titleEl, attrs.title);\n\tif (item.styles?.title) titleEl.className = item.styles.title;\n\tif (contentEl) applyAttrs(contentEl, attrs.content);\n\tif (descriptionEl) applyAttrs(descriptionEl, attrs.description);\n\tif (item.button && descriptionEl) {\n\t\tconst btnEl = descriptionEl.querySelector(\"button\");\n\t\tif (btnEl) applyAttrs(btnEl, attrs.button);\n\t}\n\n\tconst inst: ToastInstance = {\n\t\tel, pillEl, bodyEl, svgEl: svg, headerEl, innerEl, headerStackEl,\n\t\tcontentEl, descriptionEl, localState,\n\t\tpillWidth: 0, contentHeight: 0,\n\t\tfrozenExpanded: HEIGHT * MIN_EXPAND_RATIO,\n\t\thovering: false, pendingDismiss: false, dismissRequested: false,\n\t\tpillRo: null!, contentRo: null, pillAnim: null,\n\t\tprevPill: { x: initialPillX, width: HEIGHT, height: HEIGHT },\n\t\tpillFirst: true,\n\t\theaderKey: `${item.state}-${item.title ?? item.state}`,\n\t\theaderPad: null, connectHandle: null!,\n\t\ttimers: new Set(), item,\n\t};\n\n\twireObservers(inst, item);\n\twireConnect(inst, item, machine);\n\tapplyVars(inst, item);\n\tsetTimer(inst, () => {\n\t\tinst.localState.ready = true;\n\t\tapplyUpdate(inst, inst.item, machine);\n\t\tsetupAutopilot(inst, inst.item, machine);\n\t}, 32);\n\tsetupAutoDismiss(inst, item, machine);\n\tmeasurePillWidth(inst);\n\n\treturn inst;\n}\n\n/* ----------------------------- Observers ----------------------------- */\n\nfunction wireObservers(inst: ToastInstance, _item: FluixToastItem) {\n\tinst.pillRo = new ResizeObserver(() => {\n\t\trequestAnimationFrame(() => {\n\t\t\tmeasurePillWidth(inst);\n\t\t\tapplyVars(inst, inst.item);\n\t\t});\n\t});\n\tinst.pillRo.observe(inst.innerEl);\n\n\tif (inst.descriptionEl) {\n\t\tconst descEl = inst.descriptionEl;\n\t\tinst.contentRo = new ResizeObserver(() => {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tconst h = descEl.scrollHeight;\n\t\t\t\tif (h !== inst.contentHeight) { inst.contentHeight = h; applyVars(inst, inst.item); }\n\t\t\t});\n\t\t});\n\t\tinst.contentRo.observe(descEl);\n\t}\n}\n\nfunction wireConnect(inst: ToastInstance, item: FluixToastItem, machine: ToastMachine) {\n\tinst.connectHandle = CoreToaster.connect(inst.el, {\n\t\tonExpand: () => {\n\t\t\tif (inst.item.exiting || inst.dismissRequested) return;\n\t\t\tinst.localState.expanded = true;\n\t\t\tapplyUpdate(inst, inst.item, machine);\n\t\t},\n\t\tonCollapse: () => {\n\t\t\tif (inst.item.exiting || inst.dismissRequested) return;\n\t\t\tif (inst.item.autopilot !== false) return;\n\t\t\tinst.localState.expanded = false;\n\t\t\tapplyUpdate(inst, inst.item, machine);\n\t\t},\n\t\tonDismiss: () => {\n\t\t\tif (inst.dismissRequested) return;\n\t\t\tinst.dismissRequested = true;\n\t\t\tmachine.dismiss(item.id);\n\t\t},\n\t\tonHoverStart: () => { inst.hovering = true; },\n\t\tonHoverEnd: () => {\n\t\t\tinst.hovering = false;\n\t\t\tif (inst.pendingDismiss) {\n\t\t\t\tinst.pendingDismiss = false;\n\t\t\t\tif (inst.dismissRequested) return;\n\t\t\t\tinst.dismissRequested = true;\n\t\t\t\tmachine.dismiss(inst.item.id);\n\t\t\t}\n\t\t},\n\t}, item);\n}\n","/**\n * Vanilla JS Toaster — public API for the Fluix toast system.\n */\n\nimport {\n\tToaster as CoreToaster,\n\ttype FluixPosition,\n\ttype FluixToastLayout,\n\ttype FluixToasterConfig,\n} from \"@fluix-ui/core\";\n\nimport { applyAttrs } from \"../shared\";\nimport { createInstance, destroyInstance, applyUpdate, type ToastInstance } from \"./instance\";\n\n/* ----------------------------- Viewport offset ----------------------------- */\n\nfunction resolveOffsetValue(v: number | string): string {\n\treturn typeof v === \"number\" ? `${v}px` : v;\n}\n\nfunction applyViewportOffset(el: HTMLElement, offset: FluixToasterConfig[\"offset\"], position: FluixPosition) {\n\tel.style.top = \"\"; el.style.right = \"\"; el.style.bottom = \"\"; el.style.left = \"\";\n\tel.style.paddingLeft = \"\"; el.style.paddingRight = \"\";\n\tif (offset == null) return;\n\n\tlet top: string | undefined, right: string | undefined, bottom: string | undefined, left: string | undefined;\n\n\tif (typeof offset === \"number\" || typeof offset === \"string\") {\n\t\tconst v = resolveOffsetValue(offset as number | string);\n\t\ttop = v; right = v; bottom = v; left = v;\n\t} else {\n\t\tif (offset.top != null) top = resolveOffsetValue(offset.top);\n\t\tif (offset.right != null) right = resolveOffsetValue(offset.right);\n\t\tif (offset.bottom != null) bottom = resolveOffsetValue(offset.bottom);\n\t\tif (offset.left != null) left = resolveOffsetValue(offset.left);\n\t}\n\n\tif (position.startsWith(\"top\") && top) el.style.top = top;\n\tif (position.startsWith(\"bottom\") && bottom) el.style.bottom = bottom;\n\tif (position.endsWith(\"right\") && right) el.style.right = right;\n\tif (position.endsWith(\"left\") && left) el.style.left = left;\n\tif (position.endsWith(\"center\")) {\n\t\tif (left) el.style.paddingLeft = left;\n\t\tif (right) el.style.paddingRight = right;\n\t}\n}\n\n/* ----------------------------- Sync ----------------------------- */\n\ninterface ToasterState {\n\tmachine: ReturnType<typeof CoreToaster.getMachine>;\n\tinstances: Map<string, ToastInstance>;\n\tviewports: Map<FluixPosition, HTMLElement>;\n\tcurrentConfig: FluixToasterConfig | undefined;\n}\n\nfunction ensureViewport(state: ToasterState, position: FluixPosition, layout: FluixToastLayout, offset: FluixToasterConfig[\"offset\"]) {\n\tlet vp = state.viewports.get(position);\n\tif (!vp) {\n\t\tvp = document.createElement(\"section\");\n\t\tapplyAttrs(vp, CoreToaster.getViewportAttrs(position, layout));\n\t\tapplyViewportOffset(vp, offset, position);\n\t\tdocument.body.appendChild(vp);\n\t\tstate.viewports.set(position, vp);\n\t}\n\treturn vp;\n}\n\nfunction sync(state: ToasterState) {\n\tconst next = state.machine.store.getSnapshot();\n\tconst layout = next.config?.layout ?? state.currentConfig?.layout ?? \"stack\";\n\tconst offset = next.config?.offset ?? state.currentConfig?.offset;\n\n\tconst activePositions = new Set<FluixPosition>();\n\tconst nextIds = new Set(next.toasts.map((t) => t.id));\n\n\tfor (const [id, inst] of state.instances) {\n\t\tif (!nextIds.has(id)) { destroyInstance(inst); state.instances.delete(id); }\n\t}\n\n\tfor (const item of next.toasts) {\n\t\tactivePositions.add(item.position);\n\t\tconst vp = ensureViewport(state, item.position, layout, offset);\n\t\tconst existing = state.instances.get(item.id);\n\n\t\tif (!existing) {\n\t\t\tconst inst = createInstance(item, state.machine);\n\t\t\tstate.instances.set(item.id, inst);\n\t\t\tvp.appendChild(inst.el);\n\t\t} else if (existing.item.instanceId !== item.instanceId) {\n\t\t\tdestroyInstance(existing);\n\t\t\tconst inst = createInstance(item, state.machine);\n\t\t\tstate.instances.set(item.id, inst);\n\t\t\tvp.appendChild(inst.el);\n\t\t} else {\n\t\t\tapplyUpdate(existing, item, state.machine);\n\t\t\tif (existing.el.parentElement !== vp) vp.appendChild(existing.el);\n\t\t}\n\t}\n\n\tfor (const [position, vp] of state.viewports) {\n\t\tapplyAttrs(vp, CoreToaster.getViewportAttrs(position, layout));\n\t\tapplyViewportOffset(vp, offset, position);\n\t}\n\n\tfor (const [position] of state.viewports) {\n\t\tif (!activePositions.has(position)) { state.viewports.get(position)?.remove(); state.viewports.delete(position); }\n\t}\n}\n\n/* ----------------------------- createToaster ----------------------------- */\n\nexport function createToaster(config?: FluixToasterConfig): {\n\tdestroy(): void;\n\tupdate(config: FluixToasterConfig): void;\n} {\n\tconst state: ToasterState = {\n\t\tmachine: CoreToaster.getMachine(),\n\t\tinstances: new Map(),\n\t\tviewports: new Map(),\n\t\tcurrentConfig: config,\n\t};\n\tif (config) state.machine.configure(config);\n\n\tsync(state);\n\tconst unsubscribe = state.machine.store.subscribe(() => sync(state));\n\n\treturn {\n\t\tdestroy() {\n\t\t\tunsubscribe();\n\t\t\tfor (const inst of state.instances.values()) destroyInstance(inst);\n\t\t\tstate.instances.clear();\n\t\t\tfor (const vp of state.viewports.values()) vp.remove();\n\t\t\tstate.viewports.clear();\n\t\t},\n\t\tupdate(newConfig) { state.currentConfig = newConfig; state.machine.configure(newConfig); },\n\t};\n}\n","/** Hover blob highlight tracking for the Notch component. */\n\nimport { animateSpring, type SpringConfig } from \"@fluix-ui/core\";\n\nexport interface HighlightTracker {\n\tonItemEnter(e: MouseEvent, rootEl: HTMLElement, isOpen: boolean, roundness: number): void;\n\tonItemLeave(): void;\n\treset(rootW: number, rootH: number): void;\n\tcancelAnim(): void;\n}\n\nfunction setBlobAttrs(el: SVGRectElement, x: number, y: number, w: number, h: number, rx: number, opacity: string) {\n\tel.setAttribute(\"x\", String(x));\n\tel.setAttribute(\"y\", String(y));\n\tel.setAttribute(\"width\", String(w));\n\tel.setAttribute(\"height\", String(h));\n\tel.setAttribute(\"rx\", String(rx));\n\tel.setAttribute(\"ry\", String(rx));\n\tel.setAttribute(\"opacity\", opacity);\n}\n\nfunction springBlob(\n\tel: SVGRectElement,\n\tfrom: { x: number; y: number; w: number; h: number; rx: number },\n\tto: { x: number; y: number; w: number; h: number; rx: number },\n\tsc: SpringConfig,\n) {\n\treturn animateSpring(el, {\n\t\tx: { from: from.x, to: to.x, unit: \"px\" },\n\t\ty: { from: from.y, to: to.y, unit: \"px\" },\n\t\twidth: { from: from.w, to: to.w, unit: \"px\" },\n\t\theight: { from: from.h, to: to.h, unit: \"px\" },\n\t\trx: { from: from.rx, to: to.rx, unit: \"px\" },\n\t\try: { from: from.rx, to: to.rx, unit: \"px\" },\n\t}, { ...sc, stiffness: (sc.stiffness ?? 300) * 1.2 });\n}\n\nexport function createHighlightTracker(el: SVGRectElement, springConfig: () => SpringConfig): HighlightTracker {\n\tlet anim: Animation | null = null;\n\tconst prev = { x: 0, y: 0, w: 0, h: 0, visible: false };\n\n\tfunction finish(a: Animation | null, x: number, y: number, w: number, h: number, rx: number, opacity: string) {\n\t\tif (a) { anim = a; a.onfinish = () => { anim = null; setBlobAttrs(el, x, y, w, h, rx, opacity); }; }\n\t\telse { setBlobAttrs(el, x, y, w, h, rx, opacity); }\n\t}\n\n\treturn {\n\t\tonItemEnter(e, rootEl, isOpen, roundness) {\n\t\t\tconst target = (e.target as HTMLElement).closest(\"a, button\") as HTMLElement | null;\n\t\t\tif (!target || !isOpen) return;\n\n\t\t\tconst rootRect = rootEl.getBoundingClientRect();\n\t\t\tconst itemRect = target.getBoundingClientRect();\n\t\t\tconst padX = 8, padY = 4;\n\t\t\tconst overshoot = Math.max(6, roundness * 0.35);\n\t\t\tconst toW = target.offsetWidth + padX * 2;\n\t\t\tconst toH = Math.max(target.offsetHeight + padY * 2, rootRect.height + overshoot * 2);\n\t\t\tconst toX = itemRect.left + itemRect.width / 2 - rootRect.left - toW / 2;\n\t\t\tconst toY = itemRect.top + itemRect.height / 2 - rootRect.top - toH / 2;\n\n\t\t\tif (anim) { anim.cancel(); anim = null; }\n\n\t\t\tconst from = {\n\t\t\t\tx: prev.visible ? prev.x : toX + toW / 2, y: prev.visible ? prev.y : toY + toH / 2,\n\t\t\t\tw: prev.visible ? prev.w : 0, h: prev.visible ? prev.h : 0,\n\t\t\t\trx: prev.visible ? prev.h / 2 : 0,\n\t\t\t};\n\t\t\tfinish(springBlob(el, from, { x: toX, y: toY, w: toW, h: toH, rx: toH / 2 }, springConfig()), toX, toY, toW, toH, toH / 2, \"1\");\n\t\t\tel.setAttribute(\"opacity\", \"1\");\n\t\t\tprev.x = toX; prev.y = toY; prev.w = toW; prev.h = toH; prev.visible = true;\n\t\t},\n\n\t\tonItemLeave() {\n\t\t\tif (!prev.visible) return;\n\t\t\tconst cx = prev.x + prev.w / 2, cy = prev.y + prev.h / 2;\n\t\t\tfinish(springBlob(el, { x: prev.x, y: prev.y, w: prev.w, h: prev.h, rx: prev.h / 2 }, { x: cx, y: cy, w: 0, h: 0, rx: 0 }, springConfig()), cx, cy, 0, 0, 0, \"0\");\n\t\t\tprev.visible = false;\n\t\t},\n\n\t\treset(rootW, rootH) {\n\t\t\tif (anim) { anim.cancel(); anim = null; }\n\t\t\tsetBlobAttrs(el, rootW / 2, rootH / 2, 0, 0, 0, \"0\");\n\t\t\tprev.visible = false;\n\t\t},\n\n\t\tcancelAnim() { anim?.cancel(); },\n\t};\n}\n","/** Notch DOM building helpers. */\n\nimport { getNotchAttrs, type NotchPosition, type NotchTheme, type SpringConfig } from \"@fluix-ui/core\";\nimport { SVG_NS, applyAttrs, createGooeyFilter } from \"../shared\";\nimport { createHighlightTracker, type HighlightTracker } from \"./highlight\";\n\nfunction resolveContent(source: HTMLElement | string): HTMLElement {\n\tif (source instanceof HTMLElement) return source;\n\tconst span = document.createElement(\"span\");\n\tspan.textContent = source;\n\treturn span;\n}\n\nexport { resolveContent };\n\nexport function buildNotchSvg(rW: number, rH: number, collW: number, collH: number, blurVal: number, fill: string | undefined) {\n\tconst svg = document.createElementNS(SVG_NS, \"svg\");\n\tsvg.setAttribute(\"xmlns\", \"http://www.w3.org/2000/svg\");\n\tfor (const [k, v] of Object.entries({ width: String(rW), height: String(rH), viewBox: `0 0 ${rW} ${rH}`, \"aria-hidden\": \"true\" })) svg.setAttribute(k, v);\n\n\tconst { g, defs, feBlur } = createGooeyFilter(\"fluix-notch-goo\", blurVal);\n\tsvg.appendChild(defs);\n\n\tconst effectiveFill = fill ?? \"var(--fluix-notch-bg)\";\n\n\tconst svgRectEl = document.createElementNS(SVG_NS, \"rect\");\n\tconst cx = (rW - collW) / 2, cy = (rH - collH) / 2;\n\tfor (const [k, v] of Object.entries({ x: cx, y: cy, width: collW, height: collH, rx: collW / 2, ry: collH / 2 })) svgRectEl.setAttribute(k, String(v));\n\tsvgRectEl.setAttribute(\"fill\", effectiveFill);\n\tg.appendChild(svgRectEl);\n\n\tconst hoverBlobEl = document.createElementNS(SVG_NS, \"rect\");\n\tfor (const [k, v] of Object.entries({ x: cx, y: cy, width: 0, height: 0, rx: 0, ry: 0, opacity: \"0\" })) hoverBlobEl.setAttribute(k, String(v));\n\thoverBlobEl.setAttribute(\"fill\", effectiveFill);\n\tg.appendChild(hoverBlobEl);\n\n\tsvg.appendChild(g);\n\treturn { svg, svgRectEl, hoverBlobEl, feBlur };\n}\n\nexport interface NotchDOMConfig {\n\tsnapshot: { open: boolean };\n\tposition: NotchPosition;\n\ttheme: NotchTheme;\n\tdotSize: number;\n\tfill: string | undefined;\n\tcontentSize: { w: number; h: number };\n\troundness: number;\n\tspring: SpringConfig | undefined;\n}\n\nexport interface NotchDOMRefs {\n\trootEl: HTMLElement;\n\tsvg: SVGSVGElement;\n\tsvgRectEl: SVGRectElement;\n\thoverBlobEl: SVGRectElement;\n\tfeBlur: SVGElement;\n\tpillDiv: HTMLElement;\n\tcontentDiv: HTMLElement;\n\tmeasureEl: HTMLElement;\n\thighlight: HighlightTracker;\n}\n\nconst HL_PAD = 12;\n\nfunction computeDims(cfg: NotchDOMConfig) {\n\tconst collW = cfg.dotSize, collH = cfg.dotSize;\n\tconst expW = cfg.contentSize.w + HL_PAD * 2;\n\tconst expH = Math.max(cfg.contentSize.h + HL_PAD, cfg.dotSize);\n\tconst rW = Math.max(expW, collW);\n\tconst rH = Math.max(expH, collH);\n\treturn { collW, collH, rW, rH };\n}\n\nfunction computeBlur(roundness: number) { return Math.min(10, Math.max(6, roundness * 0.45)); }\n\nexport function buildNotchDOM(\n\tcfg: NotchDOMConfig,\n\tpill: HTMLElement | string,\n\tcontent: HTMLElement | string,\n\tcontainer: HTMLElement,\n\tspringCfg: () => SpringConfig,\n): NotchDOMRefs {\n\tconst measureEl = document.createElement(\"div\");\n\tmeasureEl.setAttribute(\"data-fluix-notch-measure\", \"\");\n\tmeasureEl.appendChild(resolveContent(content).cloneNode(true));\n\tcontainer.appendChild(measureEl);\n\n\tconst d = computeDims(cfg);\n\tconst rootEl = document.createElement(\"div\");\n\tconst attrs = getNotchAttrs({ open: cfg.snapshot.open, position: cfg.position, theme: cfg.theme });\n\tapplyAttrs(rootEl, attrs.root);\n\trootEl.style.width = `${d.rW}px`;\n\trootEl.style.height = `${d.rH}px`;\n\n\tconst canvasDiv = document.createElement(\"div\");\n\tapplyAttrs(canvasDiv, attrs.canvas);\n\tcanvasDiv.style.cssText = \"position:absolute;inset:0;pointer-events:none;overflow:visible;\";\n\n\tconst svgRefs = buildNotchSvg(d.rW, d.rH, d.collW, d.collH, computeBlur(cfg.roundness), cfg.fill);\n\tcanvasDiv.appendChild(svgRefs.svg);\n\trootEl.appendChild(canvasDiv);\n\n\tconst highlight = createHighlightTracker(svgRefs.hoverBlobEl, springCfg);\n\n\tconst pillDiv = document.createElement(\"div\");\n\tapplyAttrs(pillDiv, attrs.pill);\n\tpillDiv.style.cssText = `position:absolute;z-index:10;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;pointer-events:none;width:${cfg.dotSize}px;height:${cfg.dotSize}px;color:var(--fluix-notch-color);`;\n\tpillDiv.appendChild(resolveContent(pill));\n\trootEl.appendChild(pillDiv);\n\n\tconst contentDiv = document.createElement(\"div\");\n\tapplyAttrs(contentDiv, attrs.content);\n\tcontentDiv.style.cssText = \"position:absolute;z-index:10;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;color:var(--fluix-notch-color);\";\n\tcontentDiv.appendChild(resolveContent(content));\n\trootEl.appendChild(contentDiv);\n\n\tcontainer.appendChild(rootEl);\n\trootEl.setAttribute(\"role\", \"button\");\n\trootEl.setAttribute(\"tabindex\", \"0\");\n\trootEl.setAttribute(\"aria-expanded\", String(cfg.snapshot.open));\n\n\treturn { rootEl, measureEl, pillDiv, contentDiv, highlight, ...svgRefs };\n}\n","/**\n * Vanilla JS Notch — imperative DOM adapter for the Fluix Notch component.\n */\n\nimport {\n\tcreateNotchMachine,\n\tgetNotchAttrs,\n\tanimateSpring,\n\tFLUIX_SPRING,\n\tNOTCH_DEFAULTS,\n\ttype NotchMachine,\n\ttype NotchPosition,\n\ttype NotchTrigger,\n\ttype NotchTheme,\n\ttype SpringConfig,\n} from \"@fluix-ui/core\";\n\nimport { applyAttrs } from \"../shared\";\nimport { type HighlightTracker } from \"./highlight\";\nimport { resolveContent, buildNotchDOM, type NotchDOMRefs } from \"./dom\";\n\n/* ----------------------------- Types ----------------------------- */\n\nexport interface NotchOptions {\n\ttrigger?: NotchTrigger;\n\tposition?: NotchPosition;\n\tspring?: SpringConfig;\n\tdotSize?: number;\n\troundness?: number;\n\ttheme?: NotchTheme;\n\tfill?: string;\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n\tpill: HTMLElement | string;\n\tcontent: HTMLElement | string;\n}\n\nexport interface NotchInstance {\n\topen(): void;\n\tclose(): void;\n\ttoggle(): void;\n\tdestroy(): void;\n\tupdate(opts: Partial<NotchOptions>): void;\n}\n\n/** Internal mutable state for a notch instance. */\ninterface NotchCtx {\n\ttrigger: NotchTrigger;\n\tposition: NotchPosition;\n\tspring: SpringConfig | undefined;\n\tdotSize: number;\n\troundness: number;\n\ttheme: NotchTheme;\n\tfill: string | undefined;\n\tcontrolledOpen: boolean | undefined;\n\tonOpenChange: ((open: boolean) => void) | undefined;\n\tsnapshot: { open: boolean };\n\tprevOpenVal: boolean | undefined;\n\tcontentSize: { w: number; h: number };\n\tcurrentAnim: Animation | null;\n\tmeasureRaf: number;\n\tmachine: NotchMachine;\n\thighlight: HighlightTracker;\n\tprev: { w: number; h: number };\n\tdom: NotchDOMRefs;\n}\n\n/* ----------------------------- Helpers ----------------------------- */\n\nconst HL_PAD = 12;\n\nfunction dims(ctx: NotchCtx) {\n\tconst collW = ctx.dotSize, collH = ctx.dotSize;\n\tconst expW = ctx.contentSize.w + HL_PAD * 2;\n\tconst expH = Math.max(ctx.contentSize.h + HL_PAD, ctx.dotSize);\n\tconst tW = ctx.snapshot.open ? expW : collW;\n\tconst tH = ctx.snapshot.open ? expH : collH;\n\tconst rW = Math.max(expW, collW);\n\tconst rH = Math.max(expH, collH);\n\treturn { collW, collH, expW, expH, tW, tH, rW, rH };\n}\n\nfunction blur(ctx: NotchCtx) { return Math.min(10, Math.max(6, ctx.roundness * 0.45)); }\nfunction springCfg(ctx: NotchCtx): SpringConfig { return ctx.spring ?? FLUIX_SPRING; }\n\n/* ----------------------------- Rect animation ----------------------------- */\n\nfunction animateRect(ctx: NotchCtx) {\n\tconst d = dims(ctx);\n\tconst toX = (d.rW - d.tW) / 2, toY = (d.rH - d.tH) / 2;\n\n\tif (d.tW === ctx.prev.w && d.tH === ctx.prev.h) {\n\t\t// Target size unchanged but reserve area may have shifted — reposition without animation\n\t\tconst el = ctx.dom.svgRectEl;\n\t\tconst rx = (d.tW === d.collW && d.tH === d.collH) ? d.collW / 2 : ctx.roundness;\n\t\tfor (const [k, v] of Object.entries({ x: toX, y: toY, width: d.tW, height: d.tH, rx, ry: rx })) el.setAttribute(k, String(v));\n\t\treturn;\n\t}\n\n\tif (ctx.currentAnim) { ctx.currentAnim.cancel(); ctx.currentAnim = null; }\n\n\tconst fromW = ctx.prev.w, fromH = ctx.prev.h;\n\tconst fromX = (d.rW - fromW) / 2, fromY = (d.rH - fromH) / 2;\n\tctx.prev.w = d.tW; ctx.prev.h = d.tH;\n\n\tconst wasCollapsed = fromW === d.collW && fromH === d.collH;\n\tconst isCollapsing = d.tW === d.collW && d.tH === d.collH;\n\tconst fromRx = wasCollapsed ? d.collW / 2 : ctx.roundness;\n\tconst toRx = isCollapsing ? d.collW / 2 : ctx.roundness;\n\n\tconst el = ctx.dom.svgRectEl;\n\tconst a = animateSpring(el, {\n\t\twidth: { from: fromW, to: d.tW, unit: \"px\" }, height: { from: fromH, to: d.tH, unit: \"px\" },\n\t\tx: { from: fromX, to: toX, unit: \"px\" }, y: { from: fromY, to: toY, unit: \"px\" },\n\t\trx: { from: fromRx, to: toRx, unit: \"px\" }, ry: { from: fromRx, to: toRx, unit: \"px\" },\n\t}, springCfg(ctx));\n\n\tconst applyFinal = () => {\n\t\tfor (const [k, v] of Object.entries({ width: d.tW, height: d.tH, x: toX, y: toY, rx: toRx, ry: toRx })) el.setAttribute(k, String(v));\n\t};\n\tif (a) { ctx.currentAnim = a; a.onfinish = () => { ctx.currentAnim = null; applyFinal(); }; }\n\telse applyFinal();\n}\n\n/* ----------------------------- Layout update ----------------------------- */\n\nfunction updateLayout(ctx: NotchCtx) {\n\tconst d = dims(ctx);\n\tconst isOpen = ctx.snapshot.open;\n\tconst newAttrs = getNotchAttrs({ open: isOpen, position: ctx.position, theme: ctx.theme });\n\n\tapplyAttrs(ctx.dom.rootEl, newAttrs.root);\n\tctx.dom.rootEl.setAttribute(\"aria-expanded\", String(isOpen));\n\tctx.dom.rootEl.style.width = `${d.rW}px`;\n\tctx.dom.rootEl.style.height = `${d.rH}px`;\n\n\tctx.dom.svg.setAttribute(\"width\", String(d.rW));\n\tctx.dom.svg.setAttribute(\"height\", String(d.rH));\n\tctx.dom.svg.setAttribute(\"viewBox\", `0 0 ${d.rW} ${d.rH}`);\n\tctx.dom.feBlur.setAttribute(\"stdDeviation\", String(blur(ctx)));\n\n\tconst effectiveFill = ctx.fill ?? \"var(--fluix-notch-bg)\";\n\tctx.dom.svgRectEl.setAttribute(\"fill\", effectiveFill);\n\tctx.dom.hoverBlobEl.setAttribute(\"fill\", effectiveFill);\n\n\tapplyAttrs(ctx.dom.contentDiv, newAttrs.content);\n\tctx.dom.contentDiv.style.opacity = isOpen ? \"1\" : \"0\";\n\tctx.dom.contentDiv.style.pointerEvents = isOpen ? \"auto\" : \"none\";\n\tctx.dom.pillDiv.style.opacity = isOpen ? \"0\" : \"1\";\n\n\tanimateRect(ctx);\n\tif (!isOpen) ctx.highlight.reset(d.rW, d.rH);\n\tdocument.documentElement.style.setProperty(\"--fluix-notch-offset\", `${d.rH}px`);\n}\n\n/* ----------------------------- Event setup ----------------------------- */\n\ntype NotchListeners = { mouseenter: () => void; mouseleave: () => void; mouseover: (e: MouseEvent) => void; click: () => void; keydown: (e: KeyboardEvent) => void };\n\nfunction createListeners(ctx: NotchCtx): NotchListeners {\n\tconst handleOpen = () => { ctx.controlledOpen === undefined ? ctx.machine.open() : ctx.onOpenChange?.(true); };\n\tconst handleClose = () => { ctx.controlledOpen === undefined ? ctx.machine.close() : ctx.onOpenChange?.(false); };\n\tconst handleToggle = () => { ctx.controlledOpen === undefined ? ctx.machine.toggle() : ctx.onOpenChange?.(!ctx.snapshot.open); };\n\n\treturn {\n\t\tmouseenter: () => { if (ctx.trigger === \"hover\") handleOpen(); },\n\t\tmouseleave: () => {\n\t\t\tif (ctx.trigger === \"hover\") { handleClose(); ctx.highlight.reset(dims(ctx).rW, dims(ctx).rH); return; }\n\t\t\tctx.highlight.onItemLeave();\n\t\t},\n\t\tmouseover: (e) => { ctx.highlight.onItemEnter(e, ctx.dom.rootEl, ctx.snapshot.open, ctx.roundness); },\n\t\tclick: () => { if (ctx.trigger === \"click\") handleToggle(); },\n\t\tkeydown: (e) => {\n\t\t\tif (e.key === \"Enter\" || e.key === \" \") { e.preventDefault(); handleToggle(); }\n\t\t\telse if (e.key === \"Escape\" && ctx.snapshot.open) { e.preventDefault(); handleClose(); }\n\t\t},\n\t};\n}\n\nfunction attachListeners(el: HTMLElement, ls: NotchListeners) {\n\tel.addEventListener(\"mouseenter\", ls.mouseenter);\n\tel.addEventListener(\"mouseleave\", ls.mouseleave);\n\tel.addEventListener(\"mouseover\", ls.mouseover);\n\tel.addEventListener(\"click\", ls.click);\n\tel.addEventListener(\"keydown\", ls.keydown);\n}\n\nfunction detachListeners(el: HTMLElement, ls: NotchListeners) {\n\tel.removeEventListener(\"mouseenter\", ls.mouseenter);\n\tel.removeEventListener(\"mouseleave\", ls.mouseleave);\n\tel.removeEventListener(\"mouseover\", ls.mouseover);\n\tel.removeEventListener(\"click\", ls.click);\n\tel.removeEventListener(\"keydown\", ls.keydown);\n}\n\n/* ----------------------------- Update ----------------------------- */\n\nfunction notchUpdate(ctx: NotchCtx, opts: Partial<NotchOptions>, listeners: NotchListeners) {\n\tif (opts.trigger !== undefined) ctx.trigger = opts.trigger;\n\tif (opts.position !== undefined) ctx.position = opts.position;\n\tif (opts.spring !== undefined) ctx.spring = opts.spring;\n\tif (opts.dotSize !== undefined) ctx.dotSize = opts.dotSize;\n\tif (opts.roundness !== undefined) ctx.roundness = opts.roundness;\n\tif (opts.theme !== undefined) ctx.theme = opts.theme;\n\tif (opts.fill !== undefined) ctx.fill = opts.fill;\n\tif (opts.open !== undefined) ctx.controlledOpen = opts.open;\n\tif (opts.onOpenChange !== undefined) ctx.onOpenChange = opts.onOpenChange;\n\n\tif (opts.pill !== undefined) { ctx.dom.pillDiv.textContent = \"\"; ctx.dom.pillDiv.appendChild(resolveContent(opts.pill)); }\n\tif (opts.content !== undefined) {\n\t\tctx.dom.contentDiv.textContent = \"\"; ctx.dom.contentDiv.appendChild(resolveContent(opts.content));\n\t\tctx.dom.measureEl.textContent = \"\"; ctx.dom.measureEl.appendChild(resolveContent(opts.content).cloneNode(true));\n\t}\n\n\tctx.dom.pillDiv.style.width = `${ctx.dotSize}px`;\n\tctx.dom.pillDiv.style.height = `${ctx.dotSize}px`;\n\tctx.machine.configure({ position: ctx.position, trigger: ctx.trigger, roundness: ctx.roundness, fill: ctx.fill, spring: ctx.spring });\n\n\tif (ctx.controlledOpen !== undefined) {\n\t\tif (ctx.controlledOpen && !ctx.snapshot.open) ctx.machine.open();\n\t\telse if (!ctx.controlledOpen && ctx.snapshot.open) ctx.machine.close();\n\t}\n\n\tdetachListeners(ctx.dom.rootEl, listeners);\n\tconst newListeners = createListeners(ctx);\n\tObject.assign(listeners, newListeners);\n\tattachListeners(ctx.dom.rootEl, listeners);\n\n\tupdateLayout(ctx);\n\treturn listeners;\n}\n\n/* ----------------------------- createNotch ----------------------------- */\n\nexport function createNotch(container: HTMLElement, options: NotchOptions): NotchInstance {\n\tconst machine = createNotchMachine({\n\t\tposition: options.position ?? \"top-center\", trigger: options.trigger ?? \"click\",\n\t\troundness: options.roundness ?? NOTCH_DEFAULTS.roundness, fill: options.fill, spring: options.spring,\n\t});\n\n\tconst dotSize = options.dotSize ?? 36;\n\tconst roundness = options.roundness ?? NOTCH_DEFAULTS.roundness;\n\tconst spring = options.spring;\n\n\tconst domCfg = {\n\t\tsnapshot: machine.store.getSnapshot(), position: (options.position ?? \"top-center\") as NotchPosition,\n\t\ttheme: (options.theme ?? \"dark\") as NotchTheme, dotSize, fill: options.fill,\n\t\tcontentSize: { w: 200, h: 44 }, roundness, spring,\n\t};\n\tconst dom = buildNotchDOM(domCfg, options.pill, options.content, container, () => springCfg(ctx));\n\n\tconst ctx: NotchCtx = {\n\t\ttrigger: options.trigger ?? \"click\", position: options.position ?? \"top-center\",\n\t\tspring, dotSize, roundness, theme: options.theme ?? \"dark\",\n\t\tfill: options.fill, controlledOpen: options.open, onOpenChange: options.onOpenChange,\n\t\tsnapshot: machine.store.getSnapshot(), prevOpenVal: undefined,\n\t\tcontentSize: { w: 200, h: 44 }, currentAnim: null, measureRaf: 0,\n\t\tmachine, prev: { w: dotSize, h: dotSize }, highlight: dom.highlight, dom,\n\t};\n\n\tlet listeners = createListeners(ctx);\n\tattachListeners(ctx.dom.rootEl, listeners);\n\n\tconst measureObs = new ResizeObserver(() => {\n\t\tcancelAnimationFrame(ctx.measureRaf);\n\t\tctx.measureRaf = requestAnimationFrame(() => {\n\t\t\tconst r = ctx.dom.measureEl.getBoundingClientRect();\n\t\t\tif (r.width > 0 && r.height > 0) {\n\t\t\t\tconst newSize = { w: Math.ceil(r.width), h: Math.ceil(r.height) };\n\t\t\t\tif (newSize.w !== ctx.contentSize.w || newSize.h !== ctx.contentSize.h) { ctx.contentSize = newSize; updateLayout(ctx); }\n\t\t\t}\n\t\t});\n\t});\n\tmeasureObs.observe(ctx.dom.measureEl);\n\n\tconst unsubscribe = machine.store.subscribe(() => {\n\t\tctx.snapshot = machine.store.getSnapshot();\n\t\tif (ctx.controlledOpen !== undefined) {\n\t\t\tif (ctx.controlledOpen && !ctx.snapshot.open) machine.open();\n\t\t\telse if (!ctx.controlledOpen && ctx.snapshot.open) machine.close();\n\t\t}\n\t\tif (ctx.prevOpenVal !== undefined && ctx.prevOpenVal !== ctx.snapshot.open) ctx.onOpenChange?.(ctx.snapshot.open);\n\t\tctx.prevOpenVal = ctx.snapshot.open;\n\t\tupdateLayout(ctx);\n\t});\n\n\tupdateLayout(ctx);\n\tdocument.documentElement.style.setProperty(\"--fluix-notch-offset\", `${dims(ctx).rH}px`);\n\n\treturn {\n\t\topen() { ctx.controlledOpen === undefined ? machine.open() : ctx.onOpenChange?.(true); },\n\t\tclose() { ctx.controlledOpen === undefined ? machine.close() : ctx.onOpenChange?.(false); },\n\t\ttoggle() { ctx.controlledOpen === undefined ? machine.toggle() : ctx.onOpenChange?.(!ctx.snapshot.open); },\n\t\tdestroy() {\n\t\t\tunsubscribe(); cancelAnimationFrame(ctx.measureRaf); measureObs.disconnect();\n\t\t\tctx.currentAnim?.cancel(); ctx.highlight.cancelAnim();\n\t\t\tdetachListeners(ctx.dom.rootEl, listeners);\n\t\t\tmachine.destroy(); ctx.dom.measureEl.remove(); ctx.dom.rootEl.remove();\n\t\t\tdocument.documentElement.style.removeProperty(\"--fluix-notch-offset\");\n\t\t},\n\t\tupdate(opts) { listeners = notchUpdate(ctx, opts, listeners); },\n\t};\n}\n","/**\n * Vanilla JS Menu — imperative DOM adapter for the Fluix Menu component.\n */\n\nimport {\n\tFLUIX_SPRING,\n\tMENU_DEFAULTS,\n\tconnectMenu,\n\tcreateMenuMachine,\n\tgetMenuAttrs,\n\ttype MenuMachine,\n\ttype MenuOrientation,\n\ttype MenuVariant,\n\ttype MenuTheme,\n\ttype SpringConfig,\n} from \"@fluix-ui/core\";\n\nimport { SVG_NS, applyAttrs, clearChildren, createGooeyFilter, zeroRect } from \"../shared\";\n\n/* ----------------------------- Types ----------------------------- */\n\nexport interface MenuItemConfig { id: string; label: string; disabled?: boolean; }\n\nexport interface MenuOptions {\n\torientation?: MenuOrientation;\n\tvariant?: MenuVariant;\n\ttheme?: MenuTheme;\n\tactiveId?: string | null;\n\tonActiveChange?: (id: string) => void;\n\tspring?: SpringConfig;\n\troundness?: number;\n\tblur?: number;\n\tfill?: string;\n\titems: MenuItemConfig[];\n}\n\nexport interface MenuInstance {\n\tsetActive(id: string | null): void;\n\tupdate(opts: Partial<MenuOptions>): void;\n\tdestroy(): void;\n}\n\n/** Internal mutable state for a menu instance. */\ninterface MenuCtx {\n\torientation: MenuOrientation;\n\tvariant: MenuVariant;\n\ttheme: MenuTheme;\n\tcontrolledActiveId: string | null | undefined;\n\tonActiveChange: ((id: string) => void) | undefined;\n\tspring: SpringConfig | undefined;\n\troundness: number;\n\tblurProp: number | undefined;\n\tfill: string | undefined;\n\titems: MenuItemConfig[];\n\tsnapshot: { activeId: string | null };\n\tlastActiveNotified: string | null;\n\tattrs: ReturnType<typeof getMenuAttrs>;\n\tindicatorEl: SVGRectElement | SVGPathElement;\n\tghostIndicatorEl: SVGRectElement | null;\n\tconnection: ReturnType<typeof connectMenu>;\n\tsize: { width: number; height: number };\n\tmeasureRaf: number;\n\tmachine: MenuMachine;\n\tnavEl: HTMLElement;\n\tsvg: SVGSVGElement;\n\tlistDiv: HTMLElement;\n\tbuttonMap: Map<string, HTMLButtonElement>;\n\tfilterId: string;\n}\n\n/* ----------------------------- SVG Indicator ----------------------------- */\n\nfunction buildSvgIndicator(\n\tsvg: SVGSVGElement, isTab: boolean, filterId: string,\n\tresolvedBlur: number, fill: string | undefined, indicatorAttrs: Record<string, string>,\n) {\n\tclearChildren(svg);\n\tconst effectiveFill = fill ?? \"var(--fluix-menu-indicator)\";\n\n\tif (isTab) {\n\t\tconst indicatorEl = document.createElementNS(SVG_NS, \"path\") as SVGPathElement;\n\t\tapplyAttrs(indicatorEl, indicatorAttrs);\n\t\tindicatorEl.setAttribute(\"d\", \"\");\n\t\tindicatorEl.setAttribute(\"opacity\", \"0\");\n\t\tindicatorEl.style.fill = effectiveFill;\n\t\tsvg.appendChild(indicatorEl);\n\t\treturn { indicatorEl, ghostIndicatorEl: null as SVGRectElement | null };\n\t}\n\n\tconst { g, defs } = createGooeyFilter(filterId, resolvedBlur);\n\tsvg.appendChild(defs);\n\n\tconst ghostIndicatorEl = document.createElementNS(SVG_NS, \"rect\") as SVGRectElement;\n\tzeroRect(ghostIndicatorEl);\n\tghostIndicatorEl.setAttribute(\"opacity\", \"0\");\n\tghostIndicatorEl.style.fill = effectiveFill;\n\n\tconst indicatorEl = document.createElementNS(SVG_NS, \"rect\") as SVGRectElement;\n\tapplyAttrs(indicatorEl, indicatorAttrs);\n\tzeroRect(indicatorEl);\n\tindicatorEl.setAttribute(\"opacity\", \"0\");\n\tindicatorEl.style.fill = effectiveFill;\n\n\tg.appendChild(ghostIndicatorEl);\n\tg.appendChild(indicatorEl);\n\tsvg.appendChild(g);\n\n\treturn { indicatorEl, ghostIndicatorEl };\n}\n\n/* ----------------------------- DOM ----------------------------- */\n\nfunction buildMenuDOM(attrs: ReturnType<typeof getMenuAttrs>, filterId: string, variant: MenuVariant, resolvedBlur: number, fill: string | undefined) {\n\tconst navEl = document.createElement(\"nav\");\n\tapplyAttrs(navEl, attrs.root);\n\tnavEl.setAttribute(\"aria-label\", \"Fluix menu\");\n\n\tconst canvasDiv = document.createElement(\"div\");\n\tapplyAttrs(canvasDiv, attrs.canvas);\n\n\tconst svg = document.createElementNS(SVG_NS, \"svg\");\n\tsvg.setAttribute(\"xmlns\", SVG_NS);\n\tfor (const [k, v] of Object.entries({ width: \"1\", height: \"1\", viewBox: \"0 0 1 1\", \"aria-hidden\": \"true\" })) svg.setAttribute(k, v);\n\n\tconst { indicatorEl, ghostIndicatorEl } = buildSvgIndicator(svg, variant === \"tab\", filterId, resolvedBlur, fill, attrs.indicator);\n\tcanvasDiv.appendChild(svg);\n\tnavEl.appendChild(canvasDiv);\n\n\tconst listDiv = document.createElement(\"div\");\n\tapplyAttrs(listDiv, attrs.list);\n\tnavEl.appendChild(listDiv);\n\n\treturn { navEl, svg, listDiv, buttonMap: new Map<string, HTMLButtonElement>(), indicatorEl, ghostIndicatorEl };\n}\n\n/* ----------------------------- Helpers ----------------------------- */\n\nfunction createItemButton(ctx: MenuCtx, item: MenuItemConfig) {\n\tconst btn = document.createElement(\"button\");\n\tbtn.type = \"button\";\n\tconst active = ctx.snapshot.activeId === item.id;\n\tapplyAttrs(btn, ctx.attrs.item({ id: item.id, active, disabled: item.disabled }));\n\tif (item.disabled) btn.disabled = true;\n\tbtn.textContent = item.label;\n\tbtn.addEventListener(\"click\", () => {\n\t\tif (item.disabled) return;\n\t\tif (ctx.controlledActiveId === undefined) ctx.machine.setActive(item.id);\n\t\telse ctx.onActiveChange?.(item.id);\n\t});\n\tctx.buttonMap.set(item.id, btn);\n\tctx.listDiv.appendChild(btn);\n}\n\nfunction makeConnection(ctx: MenuCtx) {\n\treturn connectMenu({\n\t\troot: ctx.navEl, indicator: ctx.indicatorEl, ghostIndicator: ctx.ghostIndicatorEl,\n\t\tgetActiveId: () => ctx.snapshot.activeId,\n\t\tonSelect(id) {\n\t\t\tif (ctx.controlledActiveId === undefined) ctx.machine.setActive(id);\n\t\t\telse ctx.onActiveChange?.(id);\n\t\t},\n\t\tspring: ctx.spring ?? FLUIX_SPRING, variant: ctx.variant, orientation: ctx.orientation,\n\t});\n}\n\nfunction measure(ctx: MenuCtx) {\n\tconst rect = ctx.navEl.getBoundingClientRect();\n\tconst w = Math.ceil(rect.width);\n\tconst h = Math.ceil(rect.height);\n\tif (ctx.size.width !== w || ctx.size.height !== h) {\n\t\tctx.size = { width: w, height: h };\n\t\tconst sw = Math.max(1, w);\n\t\tconst sh = Math.max(1, h);\n\t\tctx.svg.setAttribute(\"width\", String(sw));\n\t\tctx.svg.setAttribute(\"height\", String(sh));\n\t\tctx.svg.setAttribute(\"viewBox\", `0 0 ${sw} ${sh}`);\n\t\tctx.connection?.sync(false);\n\t}\n}\n\nfunction menuUpdate(ctx: MenuCtx, opts: Partial<MenuOptions>) {\n\tconst prevVariant = ctx.variant;\n\tif (opts.orientation !== undefined) ctx.orientation = opts.orientation;\n\tif (opts.variant !== undefined) ctx.variant = opts.variant;\n\tif (opts.theme !== undefined) ctx.theme = opts.theme;\n\tif (opts.activeId !== undefined) ctx.controlledActiveId = opts.activeId;\n\tif (opts.onActiveChange !== undefined) ctx.onActiveChange = opts.onActiveChange;\n\tif (opts.spring !== undefined) ctx.spring = opts.spring;\n\tif (opts.roundness !== undefined) ctx.roundness = opts.roundness;\n\tif (opts.blur !== undefined) ctx.blurProp = opts.blur;\n\tif (opts.fill !== undefined) ctx.fill = opts.fill;\n\n\tctx.machine.configure({ orientation: ctx.orientation, variant: ctx.variant, spring: ctx.spring, roundness: ctx.roundness, blur: ctx.blurProp, fill: ctx.fill });\n\tif (ctx.controlledActiveId !== undefined) ctx.machine.setActive(ctx.controlledActiveId ?? null);\n\n\tctx.attrs = getMenuAttrs({ orientation: ctx.orientation, theme: ctx.theme, variant: ctx.variant });\n\tapplyAttrs(ctx.navEl, ctx.attrs.root);\n\n\tif (prevVariant !== ctx.variant) {\n\t\tconst resolvedBlur = ctx.blurProp ?? Math.min(10, Math.max(6, ctx.roundness * 0.45));\n\t\tconst refs = buildSvgIndicator(ctx.svg, ctx.variant === \"tab\", ctx.filterId, resolvedBlur, ctx.fill, ctx.attrs.indicator);\n\t\tctx.indicatorEl = refs.indicatorEl;\n\t\tctx.ghostIndicatorEl = refs.ghostIndicatorEl;\n\t}\n\n\tif (opts.items !== undefined) {\n\t\tctx.items = opts.items;\n\t\tclearChildren(ctx.listDiv);\n\t\tctx.buttonMap.clear();\n\t\tfor (const item of ctx.items) createItemButton(ctx, item);\n\t}\n\n\tctx.connection.destroy();\n\tctx.connection = makeConnection(ctx);\n\trequestAnimationFrame(() => { measure(ctx); ctx.connection.sync(false); });\n}\n\n/* ----------------------------- createMenu ----------------------------- */\n\nexport function createMenu(container: HTMLElement, options: MenuOptions): MenuInstance {\n\tconst {\n\t\torientation = MENU_DEFAULTS.orientation, variant = \"pill\", theme = \"dark\",\n\t\tactiveId: controlledActiveId, onActiveChange, spring,\n\t\troundness = MENU_DEFAULTS.roundness, blur: blurProp, fill, items,\n\t} = options;\n\n\tconst machine = createMenuMachine({\n\t\torientation, variant, spring, roundness, blur: blurProp, fill,\n\t\tinitialActiveId: controlledActiveId ?? null,\n\t});\n\n\tconst attrs = getMenuAttrs({ orientation, theme, variant });\n\tconst filterId = `fluix-menu-goo-${Math.random().toString(36).slice(2, 8)}`;\n\tconst resolvedBlur = blurProp ?? Math.min(10, Math.max(6, roundness * 0.45));\n\tconst dom = buildMenuDOM(attrs, filterId, variant, resolvedBlur, fill);\n\n\tconst ctx: MenuCtx = {\n\t\torientation, variant, theme, controlledActiveId, onActiveChange, spring,\n\t\troundness, blurProp, fill, items, attrs, filterId, machine,\n\t\tsnapshot: machine.store.getSnapshot(),\n\t\tlastActiveNotified: machine.store.getSnapshot().activeId,\n\t\t...dom, connection: null!,\n\t\tsize: { width: 0, height: 0 }, measureRaf: 0,\n\t};\n\n\tfor (const item of items) createItemButton(ctx, item);\n\tcontainer.appendChild(ctx.navEl);\n\n\tconst resizeObs = new ResizeObserver(() => {\n\t\tcancelAnimationFrame(ctx.measureRaf);\n\t\tctx.measureRaf = requestAnimationFrame(() => measure(ctx));\n\t});\n\tresizeObs.observe(ctx.navEl);\n\n\tctx.connection = makeConnection(ctx);\n\trequestAnimationFrame(() => { measure(ctx); ctx.connection.sync(false); });\n\n\tconst unsubscribe = machine.store.subscribe(() => {\n\t\tctx.snapshot = machine.store.getSnapshot();\n\t\tfor (const item of ctx.items) {\n\t\t\tconst btn = ctx.buttonMap.get(item.id);\n\t\t\tif (btn) applyAttrs(btn, ctx.attrs.item({ id: item.id, active: ctx.snapshot.activeId === item.id, disabled: item.disabled }));\n\t\t}\n\t\tif (ctx.snapshot.activeId && ctx.lastActiveNotified !== ctx.snapshot.activeId && ctx.onActiveChange) {\n\t\t\tctx.onActiveChange(ctx.snapshot.activeId);\n\t\t}\n\t\tctx.lastActiveNotified = ctx.snapshot.activeId;\n\t\tctx.connection.sync(false);\n\t});\n\n\treturn {\n\t\tsetActive(id) { machine.setActive(id); },\n\t\tupdate(opts) { menuUpdate(ctx, opts); },\n\t\tdestroy() {\n\t\t\tunsubscribe();\n\t\t\tcancelAnimationFrame(ctx.measureRaf);\n\t\t\tresizeObs.disconnect();\n\t\t\tctx.connection.destroy();\n\t\t\tmachine.destroy();\n\t\t\tctx.navEl.remove();\n\t\t},\n\t};\n}\n"]}
|