@fluix-ui/react 0.0.2
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/LICENSE +21 -0
- package/dist/index.cjs +760 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +11 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +755 -0
- package/dist/index.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/toast.icon.tsx","../src/toast.root-vars.ts","../src/toast.viewport-offset.ts","../src/toast.tsx"],"names":["jsx","jsxs","useRef","useState","TOAST_DEFAULTS","useMemo","CoreToaster","useLayoutEffect","useEffect","animateSpring","FLUIX_SPRING","useSyncExternalStore","useCallback","Fragment"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { FluixToastItem } from \"@fluix-ui/core\";\nimport type { ReactElement, ReactNode } from \"react\";\n\nfunction DefaultIcon({ state }: { state: FluixToastItem[\"state\"] }) {\n\tswitch (state) {\n\t\tcase \"success\":\n\t\t\treturn (\n\t\t\t\t<svg\n\t\t\t\t\twidth=\"14\"\n\t\t\t\t\theight=\"14\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstrokeWidth=\"2.5\"\n\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t\taria-hidden\n\t\t\t\t>\n\t\t\t\t\t<polyline points=\"20 6 9 17 4 12\" />\n\t\t\t\t</svg>\n\t\t\t);\n\t\tcase \"error\":\n\t\t\treturn (\n\t\t\t\t<svg\n\t\t\t\t\twidth=\"14\"\n\t\t\t\t\theight=\"14\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstrokeWidth=\"2.5\"\n\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t\taria-hidden\n\t\t\t\t>\n\t\t\t\t\t<line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n\t\t\t\t\t<line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n\t\t\t\t</svg>\n\t\t\t);\n\t\tcase \"warning\":\n\t\t\treturn (\n\t\t\t\t<svg\n\t\t\t\t\twidth=\"14\"\n\t\t\t\t\theight=\"14\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstrokeWidth=\"2.5\"\n\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t\taria-hidden\n\t\t\t\t>\n\t\t\t\t\t<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\t\t\t\t<line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n\t\t\t\t\t<line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n\t\t\t\t</svg>\n\t\t\t);\n\t\tcase \"info\":\n\t\t\treturn (\n\t\t\t\t<svg\n\t\t\t\t\twidth=\"14\"\n\t\t\t\t\theight=\"14\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstrokeWidth=\"2.5\"\n\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t\taria-hidden\n\t\t\t\t>\n\t\t\t\t\t<circle cx=\"12\" cy=\"12\" r=\"10\" />\n\t\t\t\t\t<line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\" />\n\t\t\t\t\t<line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\" />\n\t\t\t\t</svg>\n\t\t\t);\n\t\tcase \"loading\":\n\t\t\treturn (\n\t\t\t\t<svg\n\t\t\t\t\twidth=\"14\"\n\t\t\t\t\theight=\"14\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstrokeWidth=\"2.5\"\n\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t\taria-hidden\n\t\t\t\t\tdata-fluix-icon=\"spin\"\n\t\t\t\t>\n\t\t\t\t\t<line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"6\" />\n\t\t\t\t\t<line x1=\"12\" y1=\"18\" x2=\"12\" y2=\"22\" />\n\t\t\t\t\t<line x1=\"4.93\" y1=\"4.93\" x2=\"7.76\" y2=\"7.76\" />\n\t\t\t\t\t<line x1=\"16.24\" y1=\"16.24\" x2=\"19.07\" y2=\"19.07\" />\n\t\t\t\t\t<line x1=\"2\" y1=\"12\" x2=\"6\" y2=\"12\" />\n\t\t\t\t\t<line x1=\"18\" y1=\"12\" x2=\"22\" y2=\"12\" />\n\t\t\t\t\t<line x1=\"4.93\" y1=\"19.07\" x2=\"7.76\" y2=\"16.24\" />\n\t\t\t\t\t<line x1=\"16.24\" y1=\"7.76\" x2=\"19.07\" y2=\"4.93\" />\n\t\t\t\t</svg>\n\t\t\t);\n\t\tcase \"action\":\n\t\t\treturn (\n\t\t\t\t<svg\n\t\t\t\t\twidth=\"14\"\n\t\t\t\t\theight=\"14\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstrokeWidth=\"2.5\"\n\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t\taria-hidden\n\t\t\t\t>\n\t\t\t\t\t<circle cx=\"12\" cy=\"12\" r=\"10\" />\n\t\t\t\t\t<polygon points=\"10 8 16 12 10 16 10 8\" fill=\"currentColor\" stroke=\"none\" />\n\t\t\t\t</svg>\n\t\t\t);\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\nexport function renderToastIcon(icon: unknown, state: FluixToastItem[\"state\"]): ReactNode {\n\tif (icon != null) {\n\t\tif (typeof icon === \"object\" && icon !== null && \"type\" in icon) {\n\t\t\treturn icon as ReactElement;\n\t\t}\n\t\treturn <span aria-hidden>{String(icon)}</span>;\n\t}\n\n\treturn <DefaultIcon state={state} />;\n}\n","type ToastEdge = \"top\" | \"bottom\";\n\ninterface RootVarsInput {\n\topen: boolean;\n\texpanded: number;\n\theight: number;\n\tresolvedPillWidth: number;\n\tpillX: number;\n\tedge: ToastEdge;\n\texpandedContent: number;\n\tbodyMergeOverlap: number;\n}\n\nexport function getToastRootVars(input: RootVarsInput): Record<string, string> {\n\treturn {\n\t\t\"--_h\": `${input.open ? input.expanded : input.height}px`,\n\t\t\"--_pw\": `${input.resolvedPillWidth}px`,\n\t\t\"--_px\": `${input.pillX}px`,\n\t\t\"--_ht\": `translateY(${input.open ? (input.edge === \"bottom\" ? 3 : -3) : 0}px) scale(${input.open ? 0.9 : 1})`,\n\t\t\"--_co\": `${input.open ? 1 : 0}`,\n\t\t\"--_cy\": `${input.open ? 0 : -14}px`,\n\t\t\"--_cm\": `${input.open ? input.expandedContent : 0}px`,\n\t\t\"--_by\": `${input.open ? input.height - input.bodyMergeOverlap : input.height}px`,\n\t\t\"--_bh\": `${input.open ? input.expandedContent : 0}px`,\n\t\t\"--_bo\": `${input.open ? 1 : 0}`,\n\t};\n}\n","import type { FluixPosition, FluixToasterConfig } from \"@fluix-ui/core\";\nimport type { CSSProperties } from \"react\";\n\nfunction resolveOffsetValue(value: number | string): string {\n\treturn typeof value === \"number\" ? `${value}px` : value;\n}\n\nfunction resolveSides(offset: FluixToasterConfig[\"offset\"]) {\n\tif (offset == null) return {};\n\n\tif (typeof offset === \"number\" || typeof offset === \"string\") {\n\t\tconst value = resolveOffsetValue(offset);\n\t\treturn { top: value, right: value, bottom: value, left: value };\n\t}\n\n\tconst top = offset.top != null ? resolveOffsetValue(offset.top) : undefined;\n\tconst right = offset.right != null ? resolveOffsetValue(offset.right) : undefined;\n\tconst bottom = offset.bottom != null ? resolveOffsetValue(offset.bottom) : undefined;\n\tconst left = offset.left != null ? resolveOffsetValue(offset.left) : undefined;\n\n\treturn { top, right, bottom, left };\n}\n\nexport function getViewportOffsetStyle(\n\toffset: FluixToasterConfig[\"offset\"],\n\tposition: FluixPosition,\n): CSSProperties {\n\tconst sides = resolveSides(offset);\n\tconst style: CSSProperties = {};\n\n\tif (position.startsWith(\"top\") && sides.top) style.top = sides.top;\n\tif (position.startsWith(\"bottom\") && sides.bottom) style.bottom = sides.bottom;\n\tif (position.endsWith(\"right\") && sides.right) style.right = sides.right;\n\tif (position.endsWith(\"left\") && sides.left) style.left = sides.left;\n\n\tif (position.endsWith(\"center\")) {\n\t\tif (sides.left) style.paddingLeft = sides.left;\n\t\tif (sides.right) style.paddingRight = sides.right;\n\t}\n\n\treturn style;\n}\n","/**\n * React Toaster — thin adapter that uses the Toaster API from core.\n *\n * Subscribes to the core store, applies attrs from core, and wires DOM via Toaster.connect.\n * SVG pill/body rects are animated with WAAPI spring physics via animateSpring.\n */\n\nimport {\n\tToaster as CoreToaster,\n\tFLUIX_SPRING,\n\ttype FluixPosition,\n\ttype FluixToastItem,\n\ttype FluixToasterConfig,\n\tTOAST_DEFAULTS,\n\ttype ToastMachine,\n\ttype ToastMachineState,\n\tanimateSpring,\n} from \"@fluix-ui/core\";\nimport {\n\ttype ReactNode,\n\tuseCallback,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n\tuseSyncExternalStore,\n} from \"react\";\nimport { renderToastIcon } from \"./toast.icon\";\nimport { getToastRootVars } from \"./toast.root-vars\";\nimport { getViewportOffsetStyle } from \"./toast.viewport-offset\";\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\n/* ----------------------------- Types ----------------------------- */\n\nexport interface ToasterProps {\n\t/** Default position and viewport config. Applied on mount and when changed. */\n\tconfig?: FluixToasterConfig;\n}\n\ntype ToastLocalState = Record<string, { ready: boolean; expanded: boolean }>;\n\ninterface HeaderLayerView {\n\tstate: FluixToastItem[\"state\"];\n\ttitle: string;\n\ticon: unknown;\n\tstyles?: FluixToastItem[\"styles\"];\n}\n\ninterface HeaderLayerState {\n\tcurrent: { key: string; view: HeaderLayerView };\n\tprev: { key: string; view: HeaderLayerView } | null;\n}\n\n/* ----------------------------- Pill align from position ----------------------------- */\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\n/* ----------------------------- Single toast item (internal) ----------------------------- */\n\nfunction ToastItem({\n\titem,\n\tmachine,\n\tlocalState,\n\tonLocalStateChange,\n}: {\n\titem: FluixToastItem;\n\tmachine: ToastMachine;\n\tlocalState: { ready: boolean; expanded: boolean };\n\tonLocalStateChange: (patch: Partial<{ ready: boolean; expanded: boolean }>) => void;\n}) {\n\tconst rootRef = useRef<HTMLButtonElement>(null);\n\tconst headerRef = useRef<HTMLDivElement>(null);\n\tconst innerRef = useRef<HTMLDivElement>(null);\n\tconst contentRef = useRef<HTMLDivElement>(null);\n\tconst pillRef = useRef<SVGRectElement>(null);\n\tconst connectCleanupRef = useRef<(() => void) | null>(null);\n\tconst hoveringRef = useRef(false);\n\tconst pendingDismissRef = useRef(false);\n\tconst dismissRequestedRef = useRef(false);\n\tconst forcedDismissTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\tconst headerPadRef = useRef<number | null>(null);\n\tconst pillRoRef = useRef<ResizeObserver | null>(null);\n\tconst pillRafRef = useRef(0);\n\tconst pillObservedRef = useRef<Element | null>(null);\n\tconst headerExitRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\tconst onLocalStateChangeRef = useRef(onLocalStateChange);\n\tonLocalStateChangeRef.current = onLocalStateChange;\n\n\t// Animation refs\n\tconst pillAnimRef = useRef<Animation | null>(null);\n\tconst pillFirstRef = useRef(true);\n\tconst prevPillRef = useRef({ x: 0, width: HEIGHT, height: HEIGHT });\n\n\t// Local measurements\n\tconst [pillWidth, setPillWidth] = useState(0);\n\tconst [contentHeight, setContentHeight] = useState(0);\n\n\t// Header crossfade state\n\tconst headerKey = `${item.state}-${item.title ?? item.state}`;\n\tconst [headerLayer, setHeaderLayer] = useState<HeaderLayerState>(() => ({\n\t\tcurrent: {\n\t\t\tkey: headerKey,\n\t\t\tview: {\n\t\t\t\tstate: item.state,\n\t\t\t\ttitle: item.title ?? item.state,\n\t\t\t\ticon: item.icon,\n\t\t\t\tstyles: item.styles,\n\t\t\t},\n\t\t},\n\t\tprev: null,\n\t}));\n\n\t// Derived layout\n\tconst { ready, expanded: isExpanded } = localState;\n\tconst roundness = item.roundness ?? TOAST_DEFAULTS.roundness;\n\t// Keep gooey merge subtle; large blur distorts corners during expansion.\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\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(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 + contentHeight) : minExpanded;\n\tconst frozenExpandedRef = useRef(rawExpanded);\n\tif (open) {\n\t\tfrozenExpandedRef.current = rawExpanded;\n\t}\n\tconst expanded = open ? rawExpanded : frozenExpandedRef.current;\n\tconst expandedContent = Math.max(0, expanded - HEIGHT);\n\tconst svgHeight = hasDesc ? Math.max(expanded, minExpanded) : HEIGHT;\n\tconst viewBox = `0 0 ${WIDTH} ${svgHeight}`;\n\n\tconst attrs = useMemo(\n\t\t() => CoreToaster.getAttrs(item, { ready, expanded: isExpanded }),\n\t\t[item, ready, isExpanded],\n\t);\n\n\t// Root style with CSS custom properties for CSS selectors\n\tconst rootVars = useMemo<Record<string, string>>(\n\t\t() =>\n\t\t\tgetToastRootVars({\n\t\t\t\topen,\n\t\t\t\texpanded,\n\t\t\t\theight: HEIGHT,\n\t\t\t\tresolvedPillWidth,\n\t\t\t\tpillX,\n\t\t\t\tedge,\n\t\t\t\texpandedContent,\n\t\t\t\tbodyMergeOverlap: BODY_MERGE_OVERLAP,\n\t\t\t}),\n\t\t[open, expanded, resolvedPillWidth, pillX, edge, expandedContent],\n\t);\n\n\tuseLayoutEffect(() => {\n\t\tconst el = rootRef.current;\n\t\tif (!el) return;\n\t\tfor (const [key, value] of Object.entries(rootVars)) {\n\t\t\tel.style.setProperty(key, value);\n\t\t}\n\t}, [rootVars]);\n\n\t// ----------------------------- Header crossfade -----------------------------\n\tuseLayoutEffect(() => {\n\t\tsetHeaderLayer((state) => {\n\t\t\tif (state.current.key === headerKey) {\n\t\t\t\t// Same key, just update view in place\n\t\t\t\tconst newView = {\n\t\t\t\t\tstate: item.state,\n\t\t\t\t\ttitle: item.title ?? item.state,\n\t\t\t\t\ticon: item.icon,\n\t\t\t\t\tstyles: item.styles,\n\t\t\t\t};\n\t\t\t\tif (state.current.view === newView) return state;\n\t\t\t\treturn { ...state, current: { key: headerKey, view: newView } };\n\t\t\t}\n\t\t\t// New key: swap current → prev\n\t\t\treturn {\n\t\t\t\tprev: state.current,\n\t\t\t\tcurrent: {\n\t\t\t\t\tkey: headerKey,\n\t\t\t\t\tview: {\n\t\t\t\t\t\tstate: item.state,\n\t\t\t\t\t\ttitle: item.title ?? item.state,\n\t\t\t\t\t\ticon: item.icon,\n\t\t\t\t\t\tstyles: item.styles,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\t\t});\n\t}, [headerKey, item.state, item.title, item.icon, item.styles]);\n\n\t// Clean prev layer after exit animation\n\tuseEffect(() => {\n\t\tif (!headerLayer.prev) return;\n\t\tif (headerExitRef.current) clearTimeout(headerExitRef.current);\n\t\theaderExitRef.current = setTimeout(() => {\n\t\t\tsetHeaderLayer((s) => (s.prev ? { ...s, prev: null } : s));\n\t\t\theaderExitRef.current = null;\n\t\t}, HEADER_EXIT_MS);\n\t\treturn () => {\n\t\t\tif (headerExitRef.current) clearTimeout(headerExitRef.current);\n\t\t};\n\t}, [headerLayer.prev]);\n\n\t// ----------------------------- Measure pill width (ResizeObserver) -----------------------------\n\tuseLayoutEffect(() => {\n\t\tconst el = innerRef.current;\n\t\tconst header = headerRef.current;\n\t\tif (!el || !header) return;\n\n\t\tif (headerPadRef.current === null) {\n\t\t\tconst cs = getComputedStyle(header);\n\t\t\theaderPadRef.current = Number.parseFloat(cs.paddingLeft) + Number.parseFloat(cs.paddingRight);\n\t\t}\n\t\tconst px = headerPadRef.current;\n\n\t\tconst measure = () => {\n\t\t\tconst w = el.scrollWidth + px + PILL_PADDING;\n\t\t\tif (w > PILL_PADDING) {\n\t\t\t\tsetPillWidth((prev) => (prev === w ? prev : w));\n\t\t\t}\n\t\t};\n\t\tmeasure();\n\n\t\tif (!pillRoRef.current) {\n\t\t\tpillRoRef.current = new ResizeObserver(() => {\n\t\t\t\tcancelAnimationFrame(pillRafRef.current);\n\t\t\t\tpillRafRef.current = requestAnimationFrame(() => {\n\t\t\t\t\tconst inner = innerRef.current;\n\t\t\t\t\tconst pad = headerPadRef.current ?? 0;\n\t\t\t\t\tif (!inner) return;\n\t\t\t\t\tconst w = inner.scrollWidth + pad + PILL_PADDING;\n\t\t\t\t\tif (w > PILL_PADDING) {\n\t\t\t\t\t\tsetPillWidth((prev) => (prev === w ? prev : w));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tif (pillObservedRef.current !== el) {\n\t\t\tif (pillObservedRef.current) {\n\t\t\t\tpillRoRef.current.unobserve(pillObservedRef.current);\n\t\t\t}\n\t\t\tpillRoRef.current.observe(el);\n\t\t\tpillObservedRef.current = el;\n\t\t}\n\t}, []);\n\n\t// ----------------------------- Measure content height (ResizeObserver) -----------------------------\n\tuseLayoutEffect(() => {\n\t\tif (!hasDesc) {\n\t\t\tsetContentHeight(0);\n\t\t\treturn;\n\t\t}\n\t\tconst el = contentRef.current;\n\t\tif (!el) return;\n\n\t\tconst measure = () => {\n\t\t\tconst h = el.scrollHeight;\n\t\t\tsetContentHeight((prev) => (prev === h ? prev : h));\n\t\t};\n\t\tmeasure();\n\n\t\tlet rafId = 0;\n\t\tconst ro = new ResizeObserver(() => {\n\t\t\tcancelAnimationFrame(rafId);\n\t\t\trafId = requestAnimationFrame(measure);\n\t\t});\n\t\tro.observe(el);\n\t\treturn () => {\n\t\t\tcancelAnimationFrame(rafId);\n\t\t\tro.disconnect();\n\t\t};\n\t}, [hasDesc]);\n\n\t// ----------------------------- Mark ready after mount -----------------------------\n\tuseEffect(() => {\n\t\tconst timer = setTimeout(() => {\n\t\t\tonLocalStateChangeRef.current({ ready: true });\n\t\t}, 32);\n\t\treturn () => clearTimeout(timer);\n\t}, []);\n\n\t// Reset transient hover/dismiss flags for each new toast instance payload.\n\tuseEffect(() => {\n\t\thoveringRef.current = false;\n\t\tpendingDismissRef.current = false;\n\t\tdismissRequestedRef.current = false;\n\t\tif (forcedDismissTimerRef.current) {\n\t\t\tclearTimeout(forcedDismissTimerRef.current);\n\t\t\tforcedDismissTimerRef.current = null;\n\t\t}\n\t}, []);\n\n\t// ----------------------------- WAAPI: animate pill rect -----------------------------\n\tuseEffect(() => {\n\t\tconst el = pillRef.current;\n\t\tif (!el || !ready) return;\n\n\t\tconst prev = prevPillRef.current;\n\t\tconst next = { x: pillX, width: resolvedPillWidth, height: open ? pillHeight : HEIGHT };\n\n\t\t// Skip if no meaningful change\n\t\tif (prev.x === next.x && prev.width === next.width && prev.height === next.height) return;\n\n\t\t// Cancel previous animation\n\t\tpillAnimRef.current?.cancel();\n\n\t\t// On first render, set values directly (no animation from default size)\n\t\tif (pillFirstRef.current) {\n\t\t\tpillFirstRef.current = false;\n\t\t\tel.setAttribute(\"x\", String(next.x));\n\t\t\tel.setAttribute(\"width\", String(next.width));\n\t\t\tel.setAttribute(\"height\", String(next.height));\n\t\t\tprevPillRef.current = next;\n\t\t\treturn;\n\t\t}\n\n\t\tconst anim = animateSpring(\n\t\t\tel,\n\t\t\t{\n\t\t\t\tx: { from: prev.x, to: next.x, unit: \"px\" },\n\t\t\t\twidth: { from: prev.width, to: next.width, unit: \"px\" },\n\t\t\t\theight: { from: prev.height, to: next.height, unit: \"px\" },\n\t\t\t},\n\t\t\tFLUIX_SPRING,\n\t\t);\n\n\t\tpillAnimRef.current = anim;\n\t\tprevPillRef.current = next;\n\n\t\treturn () => {\n\t\t\tanim?.cancel();\n\t\t};\n\t}, [ready, pillX, resolvedPillWidth, open, pillHeight]);\n\n\t// ----------------------------- Auto-dismiss timer -----------------------------\n\tuseEffect(() => {\n\t\tconst duration = item.duration;\n\t\tif (duration == null || duration <= 0) return;\n\n\t\tconst timer = setTimeout(() => {\n\t\t\tif (hoveringRef.current) {\n\t\t\t\tpendingDismissRef.current = true;\n\t\t\t\t// Safety net: if hover state gets stuck, force dismiss shortly after.\n\t\t\t\tforcedDismissTimerRef.current = setTimeout(() => {\n\t\t\t\t\tif (dismissRequestedRef.current) return;\n\t\t\t\t\tdismissRequestedRef.current = true;\n\t\t\t\t\tpendingDismissRef.current = false;\n\t\t\t\t\tmachine.dismiss(item.id);\n\t\t\t\t}, 1200);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tpendingDismissRef.current = false;\n\t\t\tdismissRequestedRef.current = true;\n\t\t\tmachine.dismiss(item.id);\n\t\t}, duration);\n\t\treturn () => {\n\t\t\tclearTimeout(timer);\n\t\t\tif (forcedDismissTimerRef.current) {\n\t\t\t\tclearTimeout(forcedDismissTimerRef.current);\n\t\t\t\tforcedDismissTimerRef.current = null;\n\t\t\t}\n\t\t};\n\t}, [item.id, item.duration, machine]);\n\n\t// ----------------------------- Autopilot: auto-expand then auto-collapse -----------------------------\n\tuseEffect(() => {\n\t\tif (!ready) return;\n\t\tconst timers: ReturnType<typeof setTimeout>[] = [];\n\n\t\tif (item.autoExpandDelayMs != null && item.autoExpandDelayMs > 0) {\n\t\t\ttimers.push(\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (!hoveringRef.current) onLocalStateChangeRef.current({ expanded: true });\n\t\t\t\t}, item.autoExpandDelayMs),\n\t\t\t);\n\t\t}\n\n\t\tif (item.autoCollapseDelayMs != null && item.autoCollapseDelayMs > 0) {\n\t\t\ttimers.push(\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (!hoveringRef.current) onLocalStateChangeRef.current({ expanded: false });\n\t\t\t\t}, item.autoCollapseDelayMs),\n\t\t\t);\n\t\t}\n\n\t\treturn () => timers.forEach(clearTimeout);\n\t}, [item.autoExpandDelayMs, item.autoCollapseDelayMs, ready]);\n\n\t// ----------------------------- Wire DOM events via connectToast -----------------------------\n\tuseEffect(() => {\n\t\tconst el = rootRef.current;\n\t\tif (!el) return;\n\n\t\tconst callbacks = {\n\t\t\tonExpand: () => {\n\t\t\t\tif (item.exiting || dismissRequestedRef.current) return;\n\t\t\t\tonLocalStateChangeRef.current({ expanded: true });\n\t\t\t},\n\t\t\tonCollapse: () => {\n\t\t\t\tif (item.exiting || dismissRequestedRef.current) return;\n\t\t\t\t// With autopilot enabled, avoid collapsing immediately on mouseleave.\n\t\t\t\t// Let the configured collapse timer drive this to prevent early compact state.\n\t\t\t\tif (item.autopilot !== false) return;\n\t\t\t\tonLocalStateChangeRef.current({ expanded: false });\n\t\t\t},\n\t\t\tonDismiss: () => {\n\t\t\t\tif (dismissRequestedRef.current) return;\n\t\t\t\tdismissRequestedRef.current = true;\n\t\t\t\tmachine.dismiss(item.id);\n\t\t\t},\n\t\t\tonHoverStart: () => {\n\t\t\t\thoveringRef.current = true;\n\t\t\t},\n\t\t\tonHoverEnd: () => {\n\t\t\t\thoveringRef.current = false;\n\t\t\t\tif (pendingDismissRef.current) {\n\t\t\t\t\tpendingDismissRef.current = false;\n\t\t\t\t\tif (dismissRequestedRef.current) return;\n\t\t\t\t\tdismissRequestedRef.current = true;\n\t\t\t\t\tmachine.dismiss(item.id);\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\n\t\tconst { destroy } = CoreToaster.connect(el, callbacks, item);\n\t\tconnectCleanupRef.current = destroy;\n\t\treturn () => {\n\t\t\tdestroy();\n\t\t\tconnectCleanupRef.current = null;\n\t\t};\n\t}, [item, machine]);\n\n\t// ----------------------------- Cleanup ResizeObserver on unmount -----------------------------\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tpillRoRef.current?.disconnect();\n\t\t\tcancelAnimationFrame(pillRafRef.current);\n\t\t};\n\t}, []);\n\n\treturn (\n\t\t<button ref={rootRef} type=\"button\" {...attrs.root}>\n\t\t\t<div {...attrs.canvas}>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\tdata-fluix-svg\n\t\t\t\t\twidth={WIDTH}\n\t\t\t\t\theight={svgHeight}\n\t\t\t\t\tviewBox={viewBox}\n\t\t\t\t\taria-hidden\n\t\t\t\t>\n\t\t\t\t\t<defs>\n\t\t\t\t\t\t<filter\n\t\t\t\t\t\t\tid={filterId}\n\t\t\t\t\t\t\tx=\"-20%\"\n\t\t\t\t\t\t\ty=\"-20%\"\n\t\t\t\t\t\t\twidth=\"140%\"\n\t\t\t\t\t\t\theight=\"140%\"\n\t\t\t\t\t\t\tcolorInterpolationFilters=\"sRGB\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<feGaussianBlur in=\"SourceGraphic\" stdDeviation={blur} result=\"blur\" />\n\t\t\t\t\t\t\t<feColorMatrix\n\t\t\t\t\t\t\t\tin=\"blur\"\n\t\t\t\t\t\t\t\ttype=\"matrix\"\n\t\t\t\t\t\t\t\tvalues=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 20 -10\"\n\t\t\t\t\t\t\t\tresult=\"goo\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<feComposite in=\"SourceGraphic\" in2=\"goo\" operator=\"atop\" />\n\t\t\t\t\t\t</filter>\n\t\t\t\t\t</defs>\n\t\t\t\t\t<g filter={`url(#${filterId})`}>\n\t\t\t\t\t\t<rect\n\t\t\t\t\t\t\tref={pillRef}\n\t\t\t\t\t\t\tdata-fluix-pill\n\t\t\t\t\t\t\tx={pillX}\n\t\t\t\t\t\t\ty={0}\n\t\t\t\t\t\t\twidth={resolvedPillWidth}\n\t\t\t\t\t\t\theight={HEIGHT}\n\t\t\t\t\t\t\trx={roundness}\n\t\t\t\t\t\t\try={roundness}\n\t\t\t\t\t\t\tfill={item.fill ?? \"#FFFFFF\"}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<rect\n\t\t\t\t\t\t\tdata-fluix-body\n\t\t\t\t\t\t\tx={0}\n\t\t\t\t\t\t\ty={HEIGHT}\n\t\t\t\t\t\t\twidth={WIDTH}\n\t\t\t\t\t\t\theight={0}\n\t\t\t\t\t\t\trx={roundness}\n\t\t\t\t\t\t\try={roundness}\n\t\t\t\t\t\t\tfill={item.fill ?? \"#FFFFFF\"}\n\t\t\t\t\t\t\topacity={0}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</g>\n\t\t\t\t</svg>\n\t\t\t</div>\n\n\t\t\t<div ref={headerRef} {...attrs.header}>\n\t\t\t\t<div data-fluix-header-stack>\n\t\t\t\t\t<div\n\t\t\t\t\t\tref={innerRef}\n\t\t\t\t\t\tkey={headerLayer.current.key}\n\t\t\t\t\t\tdata-fluix-header-inner\n\t\t\t\t\t\tdata-layer=\"current\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t{...attrs.badge}\n\t\t\t\t\t\t\tdata-state={headerLayer.current.view.state}\n\t\t\t\t\t\t\tclassName={headerLayer.current.view.styles?.badge}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{renderToastIcon(headerLayer.current.view.icon, headerLayer.current.view.state)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t{...attrs.title}\n\t\t\t\t\t\t\tdata-state={headerLayer.current.view.state}\n\t\t\t\t\t\t\tclassName={headerLayer.current.view.styles?.title}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{headerLayer.current.view.title}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t{headerLayer.prev && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={headerLayer.prev.key}\n\t\t\t\t\t\t\tdata-fluix-header-inner\n\t\t\t\t\t\t\tdata-layer=\"prev\"\n\t\t\t\t\t\t\tdata-exiting=\"true\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tdata-fluix-badge\n\t\t\t\t\t\t\t\tdata-state={headerLayer.prev.view.state}\n\t\t\t\t\t\t\t\tclassName={headerLayer.prev.view.styles?.badge}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderToastIcon(headerLayer.prev.view.icon, headerLayer.prev.view.state)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tdata-fluix-title\n\t\t\t\t\t\t\t\tdata-state={headerLayer.prev.view.state}\n\t\t\t\t\t\t\t\tclassName={headerLayer.prev.view.styles?.title}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{headerLayer.prev.view.title}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{hasDesc && (\n\t\t\t\t<div {...attrs.content}>\n\t\t\t\t\t<div ref={contentRef} {...attrs.description} className={item.styles?.description}>\n\t\t\t\t\t\t{typeof item.description === \"string\"\n\t\t\t\t\t\t\t? item.description\n\t\t\t\t\t\t\t: (item.description as ReactNode)}\n\t\t\t\t\t\t{item.button && (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t{...attrs.button}\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tclassName={item.styles?.button}\n\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\titem.button?.onClick();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{item.button.title}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</button>\n\t);\n}\n\n/* ----------------------------- Toaster ----------------------------- */\n\nconst EMPTY_STATE: ToastMachineState = { toasts: [], config: { position: \"top-right\" } };\n\nfunction getServerSnapshot(): ToastMachineState {\n\treturn EMPTY_STATE;\n}\n\nfunction ViewportGroup({\n\tposition,\n\tlayout,\n\toffset,\n\tchildren,\n}: {\n\tposition: FluixPosition;\n\tlayout: \"stack\" | \"notch\";\n\toffset: FluixToasterConfig[\"offset\"];\n\tchildren: ReactNode;\n}) {\n\tconst sectionRef = useRef<HTMLElement>(null);\n\tconst offsetStyle = useMemo(() => getViewportOffsetStyle(offset, position), [offset, position]);\n\n\tuseLayoutEffect(() => {\n\t\tconst el = sectionRef.current;\n\t\tif (!el) return;\n\t\t// Clear previous offset props before applying the next resolved style.\n\t\tel.style.top = \"\";\n\t\tel.style.right = \"\";\n\t\tel.style.bottom = \"\";\n\t\tel.style.left = \"\";\n\t\tel.style.paddingLeft = \"\";\n\t\tel.style.paddingRight = \"\";\n\t\tObject.assign(el.style, offsetStyle);\n\t}, [offsetStyle]);\n\n\treturn (\n\t\t<section ref={sectionRef} {...CoreToaster.getViewportAttrs(position, layout)}>\n\t\t\t{children}\n\t\t</section>\n\t);\n}\n\nexport function Toaster({ config }: ToasterProps = {}) {\n\tconst machine = useMemo(() => CoreToaster.getMachine(), []);\n\tconst snapshot = useSyncExternalStore(\n\t\tmachine.store.subscribe,\n\t\tmachine.store.getSnapshot,\n\t\tgetServerSnapshot,\n\t);\n\n\t// Apply config when provided\n\tuseEffect(() => {\n\t\tif (config) machine.configure(config);\n\t}, [machine, config]);\n\n\t// Per-toast local state: ready, expanded\n\tconst [localState, setLocalState] = useState<ToastLocalState>(() => ({}));\n\n\tconst setToastLocal = useCallback(\n\t\t(id: string, patch: Partial<{ ready: boolean; expanded: boolean }>) => {\n\t\t\tsetLocalState((prev) => {\n\t\t\t\tconst next = { ...prev };\n\t\t\t\tif (!next[id]) next[id] = { ready: false, expanded: false };\n\t\t\t\tnext[id] = { ...next[id]!, ...patch };\n\t\t\t\treturn next;\n\t\t\t});\n\t\t},\n\t\t[],\n\t);\n\n\t// Initialize local state for new toasts; prune removed\n\tuseEffect(() => {\n\t\tconst ids = new Set(snapshot.toasts.map((t) => t.id));\n\t\tsetLocalState((prev) => {\n\t\t\tconst next: ToastLocalState = {};\n\t\t\tfor (const id of ids) {\n\t\t\t\tnext[id] = prev[id] ?? { ready: false, expanded: false };\n\t\t\t}\n\t\t\treturn Object.keys(next).length ? next : prev;\n\t\t});\n\t}, [snapshot.toasts]);\n\n\t// Group toasts by position\n\tconst byPosition = useMemo(() => {\n\t\tconst map = new Map<FluixPosition, FluixToastItem[]>();\n\t\tfor (const item of snapshot.toasts) {\n\t\t\tconst list = map.get(item.position) ?? [];\n\t\t\tlist.push(item);\n\t\t\tmap.set(item.position, list);\n\t\t}\n\t\treturn map;\n\t}, [snapshot.toasts]);\n\n\tconst resolvedOffset = snapshot.config?.offset ?? config?.offset;\n\tconst resolvedLayout = snapshot.config?.layout ?? config?.layout ?? \"stack\";\n\n\treturn (\n\t\t<>\n\t\t\t{Array.from(byPosition.entries()).map(([position, toasts]) => (\n\t\t\t\t<ViewportGroup\n\t\t\t\t\tkey={position}\n\t\t\t\t\tposition={position}\n\t\t\t\t\tlayout={resolvedLayout}\n\t\t\t\t\toffset={resolvedOffset}\n\t\t\t\t>\n\t\t\t\t\t{toasts.map((item) => (\n\t\t\t\t\t\t<ToastItem\n\t\t\t\t\t\t\tkey={item.instanceId}\n\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\tmachine={machine}\n\t\t\t\t\t\t\tlocalState={localState[item.id] ?? { ready: false, expanded: false }}\n\t\t\t\t\t\t\tonLocalStateChange={(patch) => setToastLocal(item.id, patch)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</ViewportGroup>\n\t\t\t))}\n\t\t</>\n\t);\n}\n"]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FluixToasterConfig } from '@fluix-ui/core';
|
|
2
|
+
export { FluixPosition, FluixTheme, FluixToastOptions, FluixToastPromiseOptions, FluixToastState, FluixToasterConfig, fluix } from '@fluix-ui/core';
|
|
3
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
interface ToasterProps {
|
|
6
|
+
/** Default position and viewport config. Applied on mount and when changed. */
|
|
7
|
+
config?: FluixToasterConfig;
|
|
8
|
+
}
|
|
9
|
+
declare function Toaster({ config }?: ToasterProps): react_jsx_runtime.JSX.Element;
|
|
10
|
+
|
|
11
|
+
export { Toaster, type ToasterProps };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FluixToasterConfig } from '@fluix-ui/core';
|
|
2
|
+
export { FluixPosition, FluixTheme, FluixToastOptions, FluixToastPromiseOptions, FluixToastState, FluixToasterConfig, fluix } from '@fluix-ui/core';
|
|
3
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
interface ToasterProps {
|
|
6
|
+
/** Default position and viewport config. Applied on mount and when changed. */
|
|
7
|
+
config?: FluixToasterConfig;
|
|
8
|
+
}
|
|
9
|
+
declare function Toaster({ config }?: ToasterProps): react_jsx_runtime.JSX.Element;
|
|
10
|
+
|
|
11
|
+
export { Toaster, type ToasterProps };
|