@dendelion/func-ui 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE +21 -0
  3. package/README.md +61 -0
  4. package/dist/components/backdrop/backdrop.d.ts +15 -0
  5. package/dist/components/backdrop/backdrop.d.ts.map +1 -0
  6. package/dist/components/backdrop/index.d.ts +3 -0
  7. package/dist/components/backdrop/index.d.ts.map +1 -0
  8. package/dist/components/button/button.d.ts +19 -0
  9. package/dist/components/button/button.d.ts.map +1 -0
  10. package/dist/components/button/index.d.ts +3 -0
  11. package/dist/components/button/index.d.ts.map +1 -0
  12. package/dist/components/card/card.d.ts +20 -0
  13. package/dist/components/card/card.d.ts.map +1 -0
  14. package/dist/components/card/index.d.ts +3 -0
  15. package/dist/components/card/index.d.ts.map +1 -0
  16. package/dist/components/glass/glass.d.ts +15 -0
  17. package/dist/components/glass/glass.d.ts.map +1 -0
  18. package/dist/components/glass/index.d.ts +3 -0
  19. package/dist/components/glass/index.d.ts.map +1 -0
  20. package/dist/components/glow/glow.d.ts +16 -0
  21. package/dist/components/glow/glow.d.ts.map +1 -0
  22. package/dist/components/glow/index.d.ts +3 -0
  23. package/dist/components/glow/index.d.ts.map +1 -0
  24. package/dist/components/grain/grain.d.ts +11 -0
  25. package/dist/components/grain/grain.d.ts.map +1 -0
  26. package/dist/components/grain/index.d.ts +3 -0
  27. package/dist/components/grain/index.d.ts.map +1 -0
  28. package/dist/components/icon-button/icon-button.d.ts +17 -0
  29. package/dist/components/icon-button/icon-button.d.ts.map +1 -0
  30. package/dist/components/icon-button/index.d.ts +3 -0
  31. package/dist/components/icon-button/index.d.ts.map +1 -0
  32. package/dist/components/stamp/index.d.ts +3 -0
  33. package/dist/components/stamp/index.d.ts.map +1 -0
  34. package/dist/components/stamp/stamp.d.ts +21 -0
  35. package/dist/components/stamp/stamp.d.ts.map +1 -0
  36. package/dist/components/toast/index.d.ts +5 -0
  37. package/dist/components/toast/index.d.ts.map +1 -0
  38. package/dist/components/toast/toast-context.d.ts +17 -0
  39. package/dist/components/toast/toast-context.d.ts.map +1 -0
  40. package/dist/components/toast/toast-provider.d.ts +14 -0
  41. package/dist/components/toast/toast-provider.d.ts.map +1 -0
  42. package/dist/components/toast/use-toast.d.ts +2 -0
  43. package/dist/components/toast/use-toast.d.ts.map +1 -0
  44. package/dist/components/tooltip/index.d.ts +3 -0
  45. package/dist/components/tooltip/index.d.ts.map +1 -0
  46. package/dist/components/tooltip/tooltip.d.ts +17 -0
  47. package/dist/components/tooltip/tooltip.d.ts.map +1 -0
  48. package/dist/fonts/KyivTypeSerif-Bold.woff2 +0 -0
  49. package/dist/fonts/KyivTypeSerif-Heavy.woff2 +0 -0
  50. package/dist/fonts/KyivTypeSerif-Medium.woff2 +0 -0
  51. package/dist/fonts/montserrat-alternates-latin-400-normal.woff2 +0 -0
  52. package/dist/fonts/montserrat-alternates-latin-500-normal.woff2 +0 -0
  53. package/dist/fonts/montserrat-alternates-latin-600-normal.woff2 +0 -0
  54. package/dist/fonts/montserrat-alternates-latin-700-normal.woff2 +0 -0
  55. package/dist/fonts/tiny5-latin-400-normal.woff2 +0 -0
  56. package/dist/index.cjs +2 -0
  57. package/dist/index.cjs.map +1 -0
  58. package/dist/index.css +1 -0
  59. package/dist/index.d.ts +22 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.mjs +514 -0
  62. package/dist/index.mjs.map +1 -0
  63. package/dist/utils/style-helpers.d.ts +2 -0
  64. package/dist/utils/style-helpers.d.ts.map +1 -0
  65. package/package.json +105 -0
  66. package/postcss.config.js +6 -0
  67. package/public/fonts/KyivTypeSerif-Bold.woff2 +0 -0
  68. package/public/fonts/KyivTypeSerif-Heavy.woff2 +0 -0
  69. package/public/fonts/KyivTypeSerif-Medium.woff2 +0 -0
  70. package/public/fonts/montserrat-alternates-latin-400-normal.woff2 +0 -0
  71. package/public/fonts/montserrat-alternates-latin-500-normal.woff2 +0 -0
  72. package/public/fonts/montserrat-alternates-latin-600-normal.woff2 +0 -0
  73. package/public/fonts/montserrat-alternates-latin-700-normal.woff2 +0 -0
  74. package/public/fonts/tiny5-latin-400-normal.woff2 +0 -0
  75. package/src/globals.scss +133 -0
  76. package/src/styles/_mixins.scss +30 -0
  77. package/src/styles/_tokens.scss +46 -0
  78. package/tailwind.config.js +7 -0
  79. package/tailwind.ts +66 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../src/utils/style-helpers.ts","../src/components/grain/grain.tsx","../src/components/glow/glow.tsx","../src/components/backdrop/backdrop.tsx","../src/components/glass/glass.tsx","../src/components/button/button.tsx","../src/components/icon-button/icon-button.tsx","../src/components/stamp/stamp.tsx","../src/components/tooltip/tooltip.tsx","../src/components/toast/toast-context.ts","../src/components/toast/toast-provider.tsx","../src/components/toast/use-toast.ts","../src/components/card/card.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: (string | undefined | null | false)[]) {\n return twMerge(clsx(inputs));\n}\n","import type { CSSProperties, HTMLAttributes } from 'react';\nimport { cn } from '../../utils/style-helpers';\nimport styles from './grain.module.scss';\n\nexport interface GrainProps extends HTMLAttributes<HTMLDivElement> {\n /** Overlay opacity (0–1). Defaults to 0.06. */\n opacity?: number;\n}\n\n/**\n * Animated film-grain overlay. Drop it inside a positioned container to add a\n * drifting noise texture. Purely decorative — `aria-hidden` by default.\n */\nexport function Grain({ opacity, className, style, ...props }: GrainProps) {\n const vars =\n opacity != null ? ({ '--fui-grain-opacity': String(opacity) } as CSSProperties) : undefined;\n // Default opacity lives in the SCSS (0.4 dark / 0.2 light) — override via the `opacity` prop.\n\n return (\n <div\n aria-hidden\n className={cn(styles.grain, className)}\n style={{ ...vars, ...style }}\n {...props}\n />\n );\n}\n","import { type CSSProperties, useId, useMemo, useState } from 'react';\nimport { cn } from '../../utils/style-helpers';\nimport styles from './glow.module.scss';\n\nexport interface GlowProps {\n className?: string;\n /**\n * Seed for the procedurally generated blobs. Each mount picks a random lamp\n * by default; pass a fixed seed for a reproducible one (e.g. with SSR).\n */\n seed?: number;\n}\n\n// mulberry32 — tiny seeded PRNG so a given seed always yields the same lamp.\nfunction mulberry32(seed: number) {\n let a = seed | 0;\n return () => {\n a = (a + 0x6d2b79f5) | 0;\n let t = Math.imul(a ^ (a >>> 15), 1 | a);\n t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t;\n return ((t ^ (t >>> 14)) >>> 0) / 4294967296;\n };\n}\n\n// An organic closed outline: 6–9 vertices scattered around a (squashed)\n// circle, joined by a Catmull-Rom spline converted to cubic Béziers. The goo\n// filter smooths whatever this produces, so irregularity reads as lava, not\n// polygons.\nfunction blobPath(rng: () => number, cx: number, cy: number, r: number): string {\n const vertices = 6 + Math.floor(rng() * 4);\n const irregularity = 0.12 + rng() * 0.28;\n const squashX = 0.85 + rng() * 0.4;\n const squashY = 0.85 + rng() * 0.4;\n const phase = rng() * Math.PI * 2;\n\n const pts: [number, number][] = [];\n for (let i = 0; i < vertices; i++) {\n const angle = phase + (i / vertices) * Math.PI * 2;\n const radius = r * (1 - irregularity + rng() * irregularity * 2);\n pts.push([cx + Math.cos(angle) * radius * squashX, cy + Math.sin(angle) * radius * squashY]);\n }\n\n let d = `M${pts[0][0].toFixed(1)},${pts[0][1].toFixed(1)}`;\n for (let i = 0; i < vertices; i++) {\n const p0 = pts[(i - 1 + vertices) % vertices];\n const p1 = pts[i];\n const p2 = pts[(i + 1) % vertices];\n const p3 = pts[(i + 2) % vertices];\n const c1x = p1[0] + (p2[0] - p0[0]) / 6;\n const c1y = p1[1] + (p2[1] - p0[1]) / 6;\n const c2x = p2[0] - (p3[0] - p1[0]) / 6;\n const c2y = p2[1] - (p3[1] - p1[1]) / 6;\n d += `C${c1x.toFixed(1)},${c1y.toFixed(1)} ${c2x.toFixed(1)},${c2y.toFixed(1)} ${p2[0].toFixed(1)},${p2[1].toFixed(1)}`;\n }\n return `${d}Z`;\n}\n\ninterface BlobConfig {\n d: string;\n opacity: number;\n dur: number;\n delay: number;\n rise: number;\n wobbleDur: number;\n wobbleDelay: number;\n sway: number;\n}\n\ninterface LampConfig {\n blobs: BlobConfig[];\n depthBlobs: BlobConfig[];\n}\n\nfunction generateLamp(seed: number): LampConfig {\n const rng = mulberry32(seed);\n const count = 4 + Math.floor(rng() * 2);\n const blobs: BlobConfig[] = [];\n for (let i = 0; i < count; i++) {\n const r = 13 + rng() * 8; // narrow band — similar sizes, no giant/tiny pair\n const cx = 270 + rng() * 50; // spread across the pool, inside the glass\n const cy = 350 + rng() * 24; // resting in the pool — the cycle rises from here\n const dur = 24 + rng() * 28; // full rise-hover-sink cycle\n const wobbleDur = 6 + rng() * 8;\n // Climb target in lamp coords. At the 4× backdrop scale the screen top\n // sits at y≈225, so most flights poke a little past the screen edge;\n // the clip shape ends at y=174, comfortably off-screen above it.\n const peak = 196 + rng() * 42;\n blobs.push({\n d: blobPath(rng, cx, cy, r),\n opacity: 0.6 + rng() * 0.4,\n dur,\n // Stratified phases: blob i starts i/count of the way through its\n // cycle (± jitter), so the wax stays spread through the lamp instead\n // of randomly clumping into one goo column mid-flight.\n delay: -(((i + rng() * 0.6) / count) * dur),\n rise: cy - peak,\n wobbleDur,\n wobbleDelay: -(rng() * wobbleDur),\n sway: 3 + rng() * 5,\n });\n }\n\n // Background wax — a dim, slow, softer-edged layer rendered behind the\n // main blobs to give the lamp depth: slightly smaller (perspective),\n // much fainter, and drifting at roughly half speed.\n const depthCount = 3 + Math.floor(rng() * 2);\n const depthBlobs: BlobConfig[] = [];\n for (let i = 0; i < depthCount; i++) {\n const r = 12 + rng() * 6;\n const cx = 268 + rng() * 54;\n const cy = 352 + rng() * 24;\n const dur = 36 + rng() * 30;\n const wobbleDur = 9 + rng() * 8;\n const peak = 205 + rng() * 45; // stays a touch lower — the foreground owns the top edge\n depthBlobs.push({\n d: blobPath(rng, cx, cy, r),\n // Near-full alpha INTO the filter — the goo threshold erases dim input.\n // The layer is faded as a whole, after filtering, in the JSX.\n opacity: 0.85 + rng() * 0.15,\n dur,\n delay: -(((i + rng() * 0.6) / depthCount) * dur),\n rise: cy - peak,\n wobbleDur,\n wobbleDelay: -(rng() * wobbleDur),\n sway: 2 + rng() * 3,\n });\n }\n\n return { blobs, depthBlobs };\n}\n\n/**\n * The signature lava-lamp ambient glow — gooey blobs drifting behind a soft\n * radial halo. Colour follows `--fui-glow` (via `currentColor`), so it retints\n * with the theme; size/position are controlled by the parent. Blob shapes are\n * procedurally generated: random per mount unless `seed` is given.\n */\nexport function Glow({ className, seed }: GlowProps) {\n const uid = useId().replace(/:/g, '');\n const goo = `goo-${uid}`;\n const gooSoft = `goo-soft-${uid}`;\n const clip = `clip-${uid}`;\n const grad = `grad-${uid}`;\n\n const [fallbackSeed] = useState(() => Math.floor(Math.random() * 2 ** 31));\n const { blobs, depthBlobs } = useMemo(\n () => generateLamp(seed ?? fallbackSeed),\n [seed, fallbackSeed],\n );\n\n const renderWax = (configs: BlobConfig[]) =>\n configs.map((b) => (\n <g\n key={b.d}\n className={styles.blob}\n style={\n {\n opacity: b.opacity,\n '--lava-dur': `${b.dur.toFixed(1)}s`,\n '--lava-delay': `${b.delay.toFixed(1)}s`,\n '--lava-rise': `${b.rise.toFixed(0)}px`,\n } as CSSProperties\n }\n >\n <path\n className={styles.wobble}\n d={b.d}\n style={\n {\n '--lava-wdur': `${b.wobbleDur.toFixed(1)}s`,\n '--lava-wdelay': `${b.wobbleDelay.toFixed(1)}s`,\n '--lava-sway': `${b.sway.toFixed(1)}px`,\n } as CSSProperties\n }\n />\n </g>\n ));\n\n return (\n <svg\n className={cn(styles.glow, className)}\n viewBox=\"0 0 600 600\"\n aria-hidden\n role=\"presentation\"\n >\n <defs>\n <filter id={goo} colorInterpolationFilters=\"sRGB\">\n <feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"8\" result=\"blur\" />\n <feColorMatrix\n in=\"blur\"\n mode=\"matrix\"\n values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 21 -9\"\n result=\"cm\"\n />\n <feBlend />\n </filter>\n\n {/* Softer goo for the depth layer — bigger blur, gentler threshold,\n so background wax reads as out-of-focus */}\n <filter id={gooSoft} colorInterpolationFilters=\"sRGB\">\n <feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"10\" result=\"blur\" />\n <feColorMatrix\n in=\"blur\"\n mode=\"matrix\"\n values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 14 -6\"\n />\n </filter>\n\n <clipPath id={clip}>\n <path d=\"M262,174h60l33.5,182.3c0,0,2.7,12.8,2.5,22.8c-7.5,0-131,0-131,0s-0.7-9.3,0-18C227.6,352.9,262,174,262,174z\" />\n </clipPath>\n\n <radialGradient id={grad} cx=\"300\" cy=\"300\" r=\"400\" gradientUnits=\"userSpaceOnUse\">\n <stop offset=\"0.0714\" stopColor=\"currentColor\" stopOpacity=\"0.19\" />\n <stop offset=\"0.3107\" stopColor=\"currentColor\" stopOpacity=\"0.13\" />\n <stop offset=\"0.553\" stopColor=\"currentColor\" stopOpacity=\"0.06\" />\n <stop offset=\"0.7828\" stopColor=\"currentColor\" stopOpacity=\"0.02\" />\n <stop offset=\"0.9847\" stopColor=\"currentColor\" stopOpacity=\"0\" />\n </radialGradient>\n </defs>\n\n <rect fill={`url(#${grad})`} width=\"600\" height=\"600\" />\n\n {/* Depth layer first — slow, soft-edged wax behind the main blobs.\n Opacity sits on this group so it dims AFTER the goo filter; dimming\n the blobs before it would push them under the threshold entirely. */}\n <g filter={`url(#${gooSoft})`} clipPath={`url(#${clip})`} fill=\"currentColor\" opacity={0.2}>\n {renderWax(depthBlobs)}\n </g>\n\n <g filter={`url(#${goo})`} clipPath={`url(#${clip})`} fill=\"currentColor\">\n {renderWax(blobs)}\n <path\n className={styles.botBlob}\n d=\"M354,381.2c6.8,3.4,5.4,7.4-5.6,10.4c-10.7,3.1-31.1,5.1-54.4,8.4c-23.3,3.3-43.7,0.8-54.4-2.4c-11-3.4-12.4-7.6-5.6-13.8c6.8-7,18.9-14.6,29.6-17.4c11-3.3,20.6-1.8,30.4-1.4c9.8,0.4,19.4,5.1,30.4,8.3C335.1,376.8,347.2,378.6,354,381.2z\"\n />\n </g>\n </svg>\n );\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '../../utils/style-helpers';\nimport { Glow } from '../glow';\nimport { Grain } from '../grain';\nimport styles from './backdrop.module.scss';\n\nexport interface BackdropProps {\n /** Render the drifting film-grain layer. Defaults to true. */\n grain?: boolean;\n /** Render the lava glow layer. Defaults to true. */\n glow?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\n/**\n * Full-bleed ambient background: the lava {@link Glow} and film {@link Grain}\n * layered behind its children. Use it as the outermost shell of a page.\n */\nexport function Backdrop({ grain = true, glow = true, className, children }: BackdropProps) {\n return (\n <div className={cn(styles.backdrop, className)}>\n {glow && (\n <div className={styles.glowLayer}>\n <Glow />\n </div>\n )}\n {grain && <Grain className={styles.grainLayer} />}\n <div className={styles.content}>{children}</div>\n </div>\n );\n}\n","import { type CSSProperties, type HTMLAttributes, forwardRef } from 'react';\nimport { cn } from '../../utils/style-helpers';\nimport styles from './glass.module.scss';\n\nexport interface GlassProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Backdrop-blur radius in px. Defaults to the token (50).\n * Pass 0 to disable the filter entirely — useful for Glass nested inside\n * Glass, where the backdrop is already blurred.\n */\n blur?: number;\n}\n\n/**\n * The core frosted-glass surface: a translucent fill behind a heavy backdrop\n * blur, with a soft ambient shadow. The building block for panels and cards.\n */\nexport const Glass = forwardRef<HTMLDivElement, GlassProps>(function Glass(\n { blur, className, style, children, ...props },\n ref,\n) {\n // blur={0} must remove the filter, not apply blur(0px) — a zero-radius\n // backdrop-filter still forces the browser to isolate and re-composite a\n // render surface on every backdrop change.\n const vars: CSSProperties | undefined =\n blur === 0\n ? { backdropFilter: 'none', WebkitBackdropFilter: 'none' }\n : blur != null\n ? ({ '--fui-glass-blur': `${blur}px` } as CSSProperties)\n : undefined;\n\n return (\n <div ref={ref} className={cn(styles.glass, className)} style={{ ...vars, ...style }} {...props}>\n {children}\n </div>\n );\n});\n","import { type ButtonHTMLAttributes, type ReactNode, forwardRef } from 'react';\nimport { cn } from '../../utils/style-helpers';\nimport styles from './button.module.scss';\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'primary' | 'secondary' | 'ghost' | 'danger';\n size?: 'sm' | 'md';\n fullWidth?: boolean;\n /** Leading icon slot. */\n icon?: ReactNode;\n /** Trailing icon slot. */\n iconRight?: ReactNode;\n /** Pressed-in look for toggles and nav tabs. Also sets aria-pressed. */\n isActive?: boolean;\n}\n\n/**\n * A chunky, uppercase button with the signature hard offset shadow that snaps\n * flush on press. Ghost is a shadow-outlined variant; secondary is frosted;\n * danger is for destructive actions.\n */\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n {\n variant = 'primary',\n size = 'md',\n fullWidth = false,\n icon,\n iconRight,\n isActive = false,\n className,\n children,\n ...props\n },\n ref,\n) {\n return (\n <button\n ref={ref}\n type=\"button\"\n aria-pressed={isActive || undefined}\n className={cn(\n styles.button,\n styles[variant],\n styles[size],\n fullWidth && styles.fullWidth,\n isActive && styles.active,\n className,\n )}\n {...props}\n >\n {icon && <span className={styles.iconSlot}>{icon}</span>}\n {children}\n {iconRight && <span className={styles.iconSlot}>{iconRight}</span>}\n </button>\n );\n});\n","import { type ButtonHTMLAttributes, type ReactNode, forwardRef } from 'react';\nimport { cn } from '../../utils/style-helpers';\nimport styles from './icon-button.module.scss';\n\nexport interface IconButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n icon: ReactNode;\n /** Accessible name — rendered as aria-label and title. */\n label: string;\n variant?: 'default' | 'ghost' | 'danger';\n size?: 'sm' | 'md';\n /** Pressed-in look for toggles. Also sets aria-pressed. */\n isActive?: boolean;\n}\n\n/**\n * A square icon-only button. Default is a frosted chip with the offset\n * shadow; ghost is chrome-less for dense toolbars; danger for destructive\n * actions.\n */\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(function IconButton(\n { icon, label, variant = 'default', size = 'md', isActive = false, className, ...props },\n ref,\n) {\n return (\n <button\n ref={ref}\n type=\"button\"\n aria-label={label}\n title={label}\n aria-pressed={isActive || undefined}\n className={cn(\n styles.iconButton,\n styles[variant],\n styles[size],\n isActive && styles.active,\n className,\n )}\n {...props}\n >\n {icon}\n </button>\n );\n});\n","import type { CSSProperties, HTMLAttributes, MouseEventHandler } from 'react';\nimport { cn } from '../../utils/style-helpers';\nimport styles from './stamp.module.scss';\n\nexport type StampVariant = 'neutral' | 'info' | 'success' | 'warning' | 'error';\n\nexport interface StampProps extends HTMLAttributes<HTMLElement> {\n variant?: StampVariant;\n size?: 'sm' | 'md';\n /** Leading square status dot in the text colour. */\n dot?: boolean;\n /** Override the variant background with any CSS colour. */\n fillColor?: string;\n /** Override the variant text colour with any CSS colour. */\n textColor?: string;\n /** When set, the stamp renders as a real button with hover/press states. */\n onClick?: MouseEventHandler<HTMLElement>;\n}\n\n/**\n * A compact status badge on the semantic status tokens. Pass `onClick` to get\n * a genuinely clickable stamp — it renders as a `<button>` with hover lift,\n * no wrapper needed.\n */\nexport function Stamp({\n variant = 'neutral',\n size = 'sm',\n dot = false,\n fillColor,\n textColor,\n onClick,\n className,\n style,\n children,\n ...props\n}: StampProps) {\n const Tag = onClick ? 'button' : 'span';\n const colorOverrides: CSSProperties | undefined =\n fillColor || textColor ? { backgroundColor: fillColor, color: textColor } : undefined;\n\n return (\n <Tag\n type={onClick ? 'button' : undefined}\n onClick={onClick}\n className={cn(styles.stamp, styles[variant], styles[size], className)}\n style={{ ...colorOverrides, ...style }}\n {...props}\n >\n {dot && <span className={styles.dot} aria-hidden />}\n {children}\n </Tag>\n );\n}\n","import {\n Children,\n type FocusEvent,\n type MouseEvent,\n type ReactElement,\n type ReactNode,\n cloneElement,\n useCallback,\n useEffect,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { cn } from '../../utils/style-helpers';\nimport styles from './tooltip.module.scss';\n\nexport type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right';\n\nexport interface TooltipProps {\n /** Tooltip content. Pass undefined/null to disable without unwrapping the child. */\n content?: ReactNode;\n /** A single element that becomes the trigger (handlers are merged in). */\n children: ReactElement;\n placement?: TooltipPlacement;\n /** Hover delay in ms — keyboard focus shows immediately. */\n delay?: number;\n}\n\nconst GAP = 8;\nconst EDGE = 8;\n\nfunction composeHandlers<E>(theirs: unknown, ours: (event: E) => void) {\n return (event: E) => {\n if (typeof theirs === 'function') (theirs as (event: E) => void)(event);\n ours(event);\n };\n}\n\n/**\n * A portal tooltip on hover and keyboard focus. Position is computed against\n * the trigger and clamped to the viewport; Escape, scroll, and resize hide it.\n */\nexport function Tooltip({ content, children, placement = 'top', delay = 300 }: TooltipProps) {\n const id = useId();\n const [open, setOpen] = useState(false);\n const [coords, setCoords] = useState<{ top: number; left: number } | null>(null);\n const bubbleRef = useRef<HTMLDivElement>(null);\n const rectRef = useRef<DOMRect | null>(null);\n const timer = useRef<number | undefined>(undefined);\n\n const hide = useCallback(() => {\n window.clearTimeout(timer.current);\n setOpen(false);\n setCoords(null);\n }, []);\n\n useEffect(() => () => window.clearTimeout(timer.current), []);\n\n useEffect(() => {\n if (!open) return;\n const onKey = (e: KeyboardEvent) => {\n if (e.key === 'Escape') hide();\n };\n window.addEventListener('keydown', onKey);\n window.addEventListener('scroll', hide, true);\n window.addEventListener('resize', hide);\n return () => {\n window.removeEventListener('keydown', onKey);\n window.removeEventListener('scroll', hide, true);\n window.removeEventListener('resize', hide);\n };\n }, [open, hide]);\n\n // Two-phase: render hidden, measure, then place (and clamp to viewport).\n useLayoutEffect(() => {\n if (!open) return;\n const rect = rectRef.current;\n const bubble = bubbleRef.current;\n if (!rect || !bubble) return;\n const b = bubble.getBoundingClientRect();\n\n let top: number;\n let left: number;\n switch (placement) {\n case 'bottom':\n top = rect.bottom + GAP;\n left = rect.left + rect.width / 2 - b.width / 2;\n break;\n case 'left':\n top = rect.top + rect.height / 2 - b.height / 2;\n left = rect.left - b.width - GAP;\n break;\n case 'right':\n top = rect.top + rect.height / 2 - b.height / 2;\n left = rect.right + GAP;\n break;\n default:\n top = rect.top - b.height - GAP;\n left = rect.left + rect.width / 2 - b.width / 2;\n }\n\n left = Math.min(Math.max(left, EDGE), window.innerWidth - b.width - EDGE);\n top = Math.min(Math.max(top, EDGE), window.innerHeight - b.height - EDGE);\n setCoords({ top, left });\n }, [open, placement]);\n\n const disabled = content == null || content === false || content === '';\n\n const child = Children.only(children);\n const childProps = child.props as Record<string, unknown>;\n\n const showNow = (el: Element) => {\n rectRef.current = el.getBoundingClientRect();\n setOpen(true);\n };\n\n if (disabled) return children;\n\n const trigger = cloneElement(child as ReactElement<Record<string, unknown>>, {\n onMouseEnter: composeHandlers(childProps.onMouseEnter, (e: MouseEvent<HTMLElement>) => {\n const el = e.currentTarget;\n window.clearTimeout(timer.current);\n timer.current = window.setTimeout(() => showNow(el), delay);\n }),\n onMouseLeave: composeHandlers(childProps.onMouseLeave, hide),\n onFocus: composeHandlers(childProps.onFocus, (e: FocusEvent<HTMLElement>) => {\n showNow(e.currentTarget);\n }),\n onBlur: composeHandlers(childProps.onBlur, hide),\n 'aria-describedby': open ? id : (childProps['aria-describedby'] as string | undefined),\n });\n\n return (\n <>\n {trigger}\n {open &&\n createPortal(\n <div\n ref={bubbleRef}\n id={id}\n role=\"tooltip\"\n className={cn(styles.tooltip, coords && styles.ready)}\n style={coords ? { top: coords.top, left: coords.left } : undefined}\n >\n {content}\n </div>,\n document.body,\n )}\n </>\n );\n}\n","import { createContext } from 'react';\nimport type { ReactNode } from 'react';\n\nexport type ToastVariant = 'info' | 'success' | 'warning' | 'error';\n\nexport type ToastPosition =\n | 'top-left'\n | 'top-center'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'bottom-right';\n\nexport interface ToastOptions {\n title?: ReactNode;\n description?: ReactNode;\n variant?: ToastVariant;\n /** Auto-dismiss after this many ms; 0 keeps the toast until dismissed. */\n duration?: number;\n}\n\nexport interface ToastContextValue {\n /** Show a toast; returns its id for programmatic dismissal. */\n toast: (options: ToastOptions) => string;\n dismiss: (id: string) => void;\n}\n\nexport const ToastContext = createContext<ToastContextValue | null>(null);\n","import { type ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { cn } from '../../utils/style-helpers';\nimport {\n ToastContext,\n type ToastOptions,\n type ToastPosition,\n type ToastVariant,\n} from './toast-context';\nimport styles from './toast.module.scss';\n\nexport interface ToastProviderProps {\n children: ReactNode;\n position?: ToastPosition;\n /** Default auto-dismiss in ms for toasts that don't set their own. */\n defaultDuration?: number;\n}\n\ninterface ToastItem {\n id: string;\n title?: ReactNode;\n description?: ReactNode;\n variant: ToastVariant;\n}\n\n/**\n * Portal-renders the toast stack and provides the `useToast` context.\n * Wrap the app once, near the root.\n */\nexport function ToastProvider({\n children,\n position = 'bottom-right',\n defaultDuration = 5000,\n}: ToastProviderProps) {\n const [toasts, setToasts] = useState<ToastItem[]>([]);\n const timers = useRef(new Map<string, number>());\n const counter = useRef(0);\n\n const dismiss = useCallback((id: string) => {\n setToasts((current) => current.filter((t) => t.id !== id));\n const handle = timers.current.get(id);\n if (handle !== undefined) {\n window.clearTimeout(handle);\n timers.current.delete(id);\n }\n }, []);\n\n const toast = useCallback(\n (options: ToastOptions) => {\n counter.current += 1;\n const id = `fui-toast-${counter.current}`;\n setToasts((current) => [\n ...current,\n {\n id,\n title: options.title,\n description: options.description,\n variant: options.variant ?? 'info',\n },\n ]);\n const duration = options.duration ?? defaultDuration;\n if (duration > 0) {\n timers.current.set(\n id,\n window.setTimeout(() => dismiss(id), duration),\n );\n }\n return id;\n },\n [defaultDuration, dismiss],\n );\n\n useEffect(() => {\n const pending = timers.current;\n return () => {\n for (const handle of pending.values()) window.clearTimeout(handle);\n };\n }, []);\n\n const value = useMemo(() => ({ toast, dismiss }), [toast, dismiss]);\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {createPortal(\n <div className={cn(styles.stack, styles[position])}>\n {toasts.map((t) => (\n <div\n key={t.id}\n role={t.variant === 'error' ? 'alert' : 'status'}\n className={cn(styles.toast, styles[t.variant])}\n >\n {t.title && <p className={styles.title}>{t.title}</p>}\n {t.description && <p className={styles.description}>{t.description}</p>}\n <button\n type=\"button\"\n aria-label=\"Dismiss\"\n className={styles.close}\n onClick={() => dismiss(t.id)}\n >\n ×\n </button>\n </div>\n ))}\n </div>,\n document.body,\n )}\n </ToastContext.Provider>\n );\n}\n","import { useContext } from 'react';\nimport { ToastContext } from './toast-context';\n\nexport function useToast() {\n const ctx = useContext(ToastContext);\n if (!ctx) throw new Error('useToast must be used within a <ToastProvider>');\n return ctx;\n}\n","import type { HTMLAttributes, KeyboardEvent, MouseEventHandler } from 'react';\nimport { cn } from '../../utils/style-helpers';\nimport styles from './card.module.scss';\n\nexport interface CardProps extends HTMLAttributes<HTMLDivElement> {\n /** `sm` is the dense list-row size; `md` the roomy default. */\n size?: 'sm' | 'md';\n /**\n * Makes the whole card clickable — adds role, tab stop, Enter/Space\n * activation, and hover/press styling.\n */\n onClick?: MouseEventHandler<HTMLDivElement>;\n}\n\nfunction activateOnEnterOrSpace(e: KeyboardEvent<HTMLDivElement>) {\n if (e.target === e.currentTarget && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n e.currentTarget.click();\n }\n}\n\nfunction CardRoot({ size = 'md', onClick, className, children, ...props }: CardProps) {\n const interactive = onClick != null;\n return (\n <div\n className={cn(styles.card, styles[size], interactive && styles.interactive, className)}\n onClick={onClick}\n {...(interactive\n ? { role: 'button', tabIndex: 0, onKeyDown: activateOnEnterOrSpace }\n : undefined)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nfunction Title({ className, children, ...props }: HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h3 className={cn(styles.title, className)} {...props}>\n {children}\n </h3>\n );\n}\n\nfunction Body({ className, children, ...props }: HTMLAttributes<HTMLParagraphElement>) {\n return (\n <p className={cn(styles.body, className)} {...props}>\n {children}\n </p>\n );\n}\n\n/** A frosted card surface with the film offset shadow. Compose with Card.Title / Card.Body. */\nexport const Card = Object.assign(CardRoot, { Title, Body });\n"],"names":["cn","inputs","twMerge","clsx","Grain","opacity","className","style","props","vars","jsx","styles","mulberry32","seed","a","t","blobPath","rng","cx","cy","r","vertices","irregularity","squashX","squashY","phase","pts","i","angle","radius","d","p0","p1","p2","p3","c1x","c1y","c2x","c2y","generateLamp","count","blobs","dur","wobbleDur","peak","depthCount","depthBlobs","Glow","uid","useId","goo","gooSoft","clip","grad","fallbackSeed","useState","useMemo","renderWax","configs","b","jsxs","Backdrop","grain","glow","children","Glass","forwardRef","blur","ref","Button","variant","size","fullWidth","icon","iconRight","isActive","IconButton","label","Stamp","dot","fillColor","textColor","onClick","Tag","colorOverrides","GAP","EDGE","composeHandlers","theirs","ours","event","Tooltip","content","placement","delay","id","open","setOpen","coords","setCoords","bubbleRef","useRef","rectRef","timer","hide","useCallback","useEffect","onKey","e","useLayoutEffect","rect","bubble","top","left","disabled","child","Children","childProps","showNow","el","trigger","cloneElement","Fragment","createPortal","ToastContext","createContext","ToastProvider","position","defaultDuration","toasts","setToasts","timers","counter","dismiss","current","handle","toast","options","duration","pending","value","useToast","ctx","useContext","activateOnEnterOrSpace","CardRoot","interactive","Title","Body","Card"],"mappings":"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"}
package/dist/index.css ADDED
@@ -0,0 +1 @@
1
+ *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Montserrat Alternates,ui-sans-serif,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:Montserrat Alternates,ui-sans-serif,sans-serif;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.left-0{left:0}.top-0{top:0}.isolate{isolation:isolate}.m-0{margin:0}.my-auto{margin-top:auto;margin-bottom:auto}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.hidden{display:none}.h-10{height:2.5rem}.h-32{height:8rem}.h-full{height:100%}.h-screen{height:100vh}.min-h-\[100px\]{min-height:100px}.min-h-\[48px\]{min-height:48px}.min-h-\[60px\]{min-height:60px}.min-h-\[80px\]{min-height:80px}.min-h-full{min-height:100%}.w-10{width:2.5rem}.w-24{width:6rem}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}@keyframes marquee{to{transform:translate(-50%)}}.animate-\[marquee_55s_linear_infinite\]{animation:marquee 55s linear infinite}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.scroll-mt-10{scroll-margin-top:2.5rem}.list-none{list-style-type:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.whitespace-nowrap{white-space:nowrap}.border{border-width:1px}.border-accent{--tw-border-opacity: 1;border-color:rgb(43 165 121 / var(--tw-border-opacity, 1))}.border-black\/15{border-color:#00000026}.bg-black\/20{background-color:#0003}.p-0{padding:0}.p-12{padding:3rem}.p-4{padding:1rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.pl-16{padding-left:4rem}.text-right{text-align:right}.font-\[ui-monospace\,monospace\]{font-family:ui-monospace,monospace}.font-mono,.font-sans{font-family:Montserrat Alternates,ui-sans-serif,sans-serif}.font-title{font-family:"KyivType Serif",Georgia,serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-5xl{font-size:3rem;line-height:1}.text-9xl{font-size:8rem;line-height:1}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-wide{letter-spacing:.025em}.text-accent{--tw-text-opacity: 1;color:rgb(43 165 121 / var(--tw-text-opacity, 1))}.opacity-100{opacity:1}.opacity-20{opacity:.2}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-\[0\.05\]{opacity:.05}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[3px_3px_0_0_var\(--fui-shadow-color\)\]{--tw-shadow: 3px 3px 0 0 var(--fui-shadow-color);--tw-shadow-colored: 3px 3px 0 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\[mask-image\:linear-gradient\(to_right\,transparent\,black_12\%\,black_88\%\,transparent\)\]{-webkit-mask-image:linear-gradient(to right,transparent,black 12%,black 88%,transparent);mask-image:linear-gradient(to right,transparent,black 12%,black 88%,transparent)}@font-face{font-family:Montserrat Alternates;src:url(/fonts/montserrat-alternates-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Montserrat Alternates;src:url(/fonts/montserrat-alternates-latin-500-normal.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Montserrat Alternates;src:url(/fonts/montserrat-alternates-latin-600-normal.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Montserrat Alternates;src:url(/fonts/montserrat-alternates-latin-700-normal.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:"KyivType Serif";src:url(/fonts/KyivTypeSerif-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:"KyivType Serif";src:url(/fonts/KyivTypeSerif-Bold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:"KyivType Serif";src:url(/fonts/KyivTypeSerif-Heavy.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Tiny5;src:url(/fonts/tiny5-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--fui-bg: #fafafa;--fui-text: #0e0e10;--fui-surface: rgba(255, 255, 255, .32);--fui-scroller: #eaeaea;--fui-accent: #2ba579;--fui-glow: #36ce91;--fui-shadow-color: #000;--fui-shadow-offset: 5px 5px 0 0 #000;--fui-card-bg: rgba(255, 255, 255, .35);--fui-danger: #c04f4f;--fui-status-neutral-fill: rgba(0, 0, 0, .08);--fui-status-neutral-text: #55555a;--fui-status-info-fill: rgba(74, 144, 217, .16);--fui-status-info-text: #2f6cb0;--fui-status-success-fill: rgba(43, 165, 121, .16);--fui-status-success-text: #1e8460;--fui-status-warning-fill: rgba(224, 158, 66, .18);--fui-status-warning-text: #a66a1f;--fui-status-error-fill: rgba(214, 86, 86, .16);--fui-status-error-text: #b03a3a}.dark{--fui-bg: #0e0e10;--fui-text: #ececec;--fui-surface: rgba(24, 24, 24, .72);--fui-scroller: #222224;--fui-shadow-color: #fff;--fui-shadow-offset: 5px 5px 0 0 #fff;--fui-card-bg: rgba(38, 38, 38, .5);--fui-danger: #c25b5b;--fui-status-neutral-fill: rgba(255, 255, 255, .1);--fui-status-neutral-text: #b9b9c0;--fui-status-info-fill: rgba(96, 165, 235, .2);--fui-status-info-text: #8ec2f2;--fui-status-success-fill: rgba(54, 206, 145, .18);--fui-status-success-text: #7de3b6;--fui-status-warning-fill: rgba(235, 178, 92, .18);--fui-status-warning-text: #ecc487;--fui-status-error-fill: rgba(226, 106, 106, .18);--fui-status-error-text: #eda1a1}html,body{height:100%}body{margin:0;font-family:Montserrat Alternates,sans-serif;line-height:1.6;background-color:var(--fui-bg);color:var(--fui-text);transition:background-color .3s ease,color .3s ease}.hover\:opacity-100:hover,.group:hover .group-hover\:opacity-100{opacity:1}@media (prefers-reduced-motion: reduce){.motion-reduce\:animate-none{animation:none}}.dark\:border-white\/15:is(.dark *){border-color:#ffffff26}.dark\:bg-black\/40:is(.dark *){background-color:#0006}.grain-module__grain___sp9ca{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.grain-module__grain___sp9ca:after{content:"";position:absolute;top:-60%;left:-60%;width:220%;height:220%;background-image:url(data:image/jpeg;base64,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);opacity:var(--fui-grain-opacity, .4);animation:grain-module__grain-shift___IdmvT 8s steps(10) infinite}:root:not(.dark) .grain-module__grain___sp9ca:after{background-image:url(data:image/webp;base64,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);opacity:var(--fui-grain-opacity, .2)}@keyframes grain-module__grain-shift___IdmvT{0%,to{transform:translate(0)}10%{transform:translate(-5%,-10%)}20%{transform:translate(-15%,5%)}30%{transform:translate(7%,-25%)}40%{transform:translate(-5%,25%)}50%{transform:translate(-15%,10%)}60%{transform:translate(15%)}70%{transform:translateY(15%)}80%{transform:translate(3%,-15%)}90%{transform:translate(-10%,10%)}}@media (prefers-reduced-motion: reduce){.grain-module__grain___sp9ca:after{animation:none}}.glow-module__glow___kEcKf{display:block;width:auto;height:100%;color:var(--fui-glow)}.glow-module__blob___b1llZ,.glow-module__wobble___kfp96{transform-box:fill-box;transform-origin:center}.glow-module__blob___b1llZ{animation:glow-module__lava-cycle___i7HSR var(--lava-dur, 30s) infinite;animation-delay:var(--lava-delay, 0s)}.glow-module__wobble___kfp96{animation:glow-module__lava-wobble___1YnIq var(--lava-wdur, 9s) ease-in-out infinite;animation-delay:var(--lava-wdelay, 0s)}.glow-module__botBlob___XG8Xf{opacity:.73}@keyframes glow-module__lava-cycle___i7HSR{0%{transform:translateY(0) scale(1);animation-timing-function:ease-in}14%{transform:translateY(calc(var(--lava-rise, 120px) * -.25)) scale(.9,1.16);animation-timing-function:ease-out}44%{transform:translateY(calc(var(--lava-rise, 120px) * -1)) scale(1.08,.9);animation-timing-function:ease-in-out}60%{transform:translateY(calc(var(--lava-rise, 120px) * -.88)) scale(.97,1.05);animation-timing-function:ease-in-out}to{transform:translateY(0) scale(1)}}@keyframes glow-module__lava-wobble___1YnIq{0%,to{transform:translate(0) scale(1)}33%{transform:translate(var(--lava-sway, 4px)) scale(1.05,.95)}66%{transform:translate(calc(var(--lava-sway, 4px) * -1)) scale(.95,1.05)}}@media (prefers-reduced-motion: reduce){.glow-module__blob___b1llZ,.glow-module__wobble___kfp96{animation:none}}.backdrop-module__backdrop___CoxJ-{position:relative;min-height:100%;overflow:hidden;background-color:var(--fui-bg)}.backdrop-module__glowLayer___esKR8{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;pointer-events:none}.backdrop-module__glowLayer___esKR8 svg{position:absolute;top:0;right:0;height:100%;width:auto;transform:translate(var(--fui-glow-x, -38vw)) scale(4);transform-origin:center}.backdrop-module__grainLayer___44u-y{z-index:0;transform:scale(1.2)}.backdrop-module__content___W2hOD{position:relative;z-index:2;min-height:100%}.glass-module__glass___Z6fy2{background-color:var(--fui-surface);backdrop-filter:blur(var(--fui-glass-blur, 50px));-webkit-backdrop-filter:blur(var(--fui-glass-blur, 50px));box-shadow:0 0 50px #0000004d;transition:background-color .3s ease;--fui-nested-backdrop: none;position:relative}.button-module__button___Z331g{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:none;cursor:pointer;font-family:Montserrat Alternates,sans-serif;font-weight:700;line-height:1.2;text-transform:uppercase;outline:none;transition:transform .12s ease,box-shadow .12s ease,background-color .2s ease,filter .2s ease}.button-module__button___Z331g:hover:not(:disabled){filter:brightness(1.05)}.button-module__button___Z331g:active:not(:disabled){transform:translate(3px,3px);box-shadow:none!important}.button-module__button___Z331g.button-module__active___weXhI:not(:disabled){transform:translate(3px,3px);box-shadow:none!important}.button-module__button___Z331g:focus-visible{outline:2px solid #2ba579;outline-offset:2px}.button-module__button___Z331g:disabled{opacity:.5;cursor:not-allowed}.button-module__primary___ppbyq{background-color:var(--fui-accent);color:#000}.button-module__secondary___esy5L{background-color:var(--fui-surface);color:var(--fui-text);-webkit-backdrop-filter:var(--fui-nested-backdrop, blur(12px));backdrop-filter:var(--fui-nested-backdrop, blur(12px))}.button-module__ghost___NisA0{background-color:transparent;color:var(--fui-text);box-shadow:inset 0 0 0 2px var(--fui-shadow-color)!important}.button-module__danger___Wnvuq{background-color:var(--fui-danger);color:#fff}.button-module__md___REpcP{padding:.5rem 1.5rem;font-size:1rem;box-shadow:5px 5px 0 0 var(--fui-shadow-color)}.button-module__sm___QYj0l{padding:.25rem 1rem;font-size:.875rem;box-shadow:3px 3px 0 0 var(--fui-shadow-color)}.button-module__fullWidth___H0P0F{width:100%}.button-module__iconSlot___BGOaK{display:inline-flex;align-items:center}.icon-button-module__iconButton___avg6i{display:inline-flex;align-items:center;justify-content:center;flex:none;border:none;padding:0;cursor:pointer;color:var(--fui-text);background-color:transparent;transition:transform .12s ease,box-shadow .12s ease,background-color .2s ease}.icon-button-module__iconButton___avg6i:focus-visible{outline:2px solid #2ba579;outline-offset:2px}.icon-button-module__iconButton___avg6i:disabled{opacity:.5;cursor:not-allowed}.icon-button-module__default___9frNR{background-color:var(--fui-surface);-webkit-backdrop-filter:var(--fui-nested-backdrop, blur(12px));backdrop-filter:var(--fui-nested-backdrop, blur(12px));box-shadow:3px 3px 0 0 var(--fui-shadow-color)}.icon-button-module__default___9frNR:active:not(:disabled),.icon-button-module__default___9frNR.icon-button-module__active___XaJ4h:not(:disabled){transform:translate(2px,2px);box-shadow:none}.icon-button-module__ghost___Wbxog:hover:not(:disabled){background-color:#7f7f7f2e}.icon-button-module__ghost___Wbxog:active:not(:disabled),.icon-button-module__ghost___Wbxog.icon-button-module__active___XaJ4h:not(:disabled){background-color:#7f7f7f47}.icon-button-module__danger___p0Xz5{background-color:var(--fui-danger);color:#fff;box-shadow:3px 3px 0 0 var(--fui-shadow-color)}.icon-button-module__danger___p0Xz5:active:not(:disabled),.icon-button-module__danger___p0Xz5.icon-button-module__active___XaJ4h:not(:disabled){transform:translate(2px,2px);box-shadow:none}.icon-button-module__sm___4l7PX{width:28px;height:28px}.icon-button-module__md___48iuw{width:36px;height:36px}.stamp-module__stamp___5qaNY{display:inline-flex;align-items:center;gap:.375rem;border:none;font-family:Montserrat Alternates,sans-serif;font-weight:700;text-transform:lowercase;letter-spacing:.02em;line-height:1.4;white-space:nowrap}button.stamp-module__stamp___5qaNY{cursor:pointer}button.stamp-module__stamp___5qaNY:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.08)}button.stamp-module__stamp___5qaNY:active:not(:disabled){transform:none;filter:brightness(.95)}button.stamp-module__stamp___5qaNY:focus-visible{outline:2px solid #2ba579;outline-offset:2px}button.stamp-module__stamp___5qaNY:disabled{opacity:.5;cursor:not-allowed}.stamp-module__dot___qZyCR{width:6px;height:6px;flex:none;background-color:currentColor}.stamp-module__neutral___6CXei{background-color:var(--fui-status-neutral-fill);color:var(--fui-status-neutral-text)}.stamp-module__info___hH0OA{background-color:var(--fui-status-info-fill);color:var(--fui-status-info-text)}.stamp-module__success___vtscx{background-color:var(--fui-status-success-fill);color:var(--fui-status-success-text)}.stamp-module__warning___H6sZS{background-color:var(--fui-status-warning-fill);color:var(--fui-status-warning-text)}.stamp-module__error___G-HEQ{background-color:var(--fui-status-error-fill);color:var(--fui-status-error-text)}.stamp-module__sm___N-jia{padding:.0625rem .4375rem;font-size:.6875rem}.stamp-module__md___Cz5Vg{padding:.125rem .5rem;font-size:.75rem}.tooltip-module__tooltip___e-rkz{position:fixed;top:0;left:0;z-index:500;max-width:260px;padding:.25rem .5rem;font-family:Montserrat Alternates,sans-serif;font-size:.75rem;line-height:1.4;background-color:var(--fui-text);color:var(--fui-bg);pointer-events:none;visibility:hidden}.tooltip-module__ready___LI2J6{visibility:visible;animation:tooltip-module__tooltip-in___Uw1tI .12s ease-out}@keyframes tooltip-module__tooltip-in___Uw1tI{0%{opacity:0;transform:translateY(2px)}}@media (prefers-reduced-motion: reduce){.tooltip-module__ready___LI2J6{animation:none}}.toast-module__stack___hDi0s{position:fixed;z-index:600;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.toast-module__stack___hDi0s>*{pointer-events:auto}.toast-module__top-left___rIwtH{top:1rem;left:1rem;align-items:flex-start}.toast-module__top-center___OapVt{top:1rem;left:50%;transform:translate(-50%);align-items:center}.toast-module__top-right___Ci4Ki{top:1rem;right:1rem;align-items:flex-end}.toast-module__bottom-left___y6xhK{bottom:1rem;left:1rem;align-items:flex-start}.toast-module__bottom-center___yYVrc{bottom:1rem;left:50%;transform:translate(-50%);align-items:center}.toast-module__bottom-right___JeMil{bottom:1rem;right:1rem;align-items:flex-end}.toast-module__toast___y1lVX{position:relative;min-width:240px;max-width:340px;padding:.625rem 2.125rem .625rem .875rem;background-color:var(--fui-surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:4px 4px 0 0 var(--fui-shadow-color);border-left:4px solid var(--fui-status-info-text);animation:toast-module__toast-in___TYYwQ .16s ease-out}.toast-module__title___1Oqh8{margin:0;font-size:.875rem;font-weight:700}.toast-module__description___eiUSB{margin:0;font-size:.8125rem;opacity:.8}.toast-module__title___1Oqh8+.toast-module__description___eiUSB{margin-top:.125rem}.toast-module__close___IDukn{position:absolute;top:.25rem;right:.25rem;width:22px;height:22px;border:none;padding:0;background:transparent;color:inherit;font-size:1rem;line-height:1;cursor:pointer;opacity:.55}.toast-module__close___IDukn:hover{opacity:1}.toast-module__close___IDukn:focus-visible{outline:2px solid #2ba579;outline-offset:2px}.toast-module__info___Nh8S9{border-left-color:var(--fui-status-info-text)}.toast-module__success___hlKLc{border-left-color:var(--fui-status-success-text)}.toast-module__warning___XUMJt{border-left-color:var(--fui-status-warning-text)}.toast-module__error___pSFFC{border-left-color:var(--fui-status-error-text)}@keyframes toast-module__toast-in___TYYwQ{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion: reduce){.toast-module__toast___y1lVX{animation:none}}.card-module__card___HG0v6{display:flex;flex-direction:column;background-color:var(--fui-card-bg);box-shadow:3px 3px 0 0 var(--fui-shadow-color);transition:background-color .3s ease,box-shadow .12s ease,transform .12s ease;-webkit-backdrop-filter:var(--fui-nested-backdrop, blur(8px));backdrop-filter:var(--fui-nested-backdrop, blur(8px))}.card-module__interactive___lCSFj{cursor:pointer}.card-module__interactive___lCSFj:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 0 var(--fui-shadow-color)}.card-module__interactive___lCSFj:active{transform:translate(1px,1px);box-shadow:2px 2px 0 0 var(--fui-shadow-color)}.card-module__interactive___lCSFj:focus-visible{outline:2px solid #2ba579;outline-offset:2px}.card-module__sm___ug17X{gap:.5rem;padding:.5rem .75rem}.card-module__md___BAzpC{gap:.75rem;padding:1.5rem}.card-module__title___9LIjW{margin:0;font-family:"KyivType Serif",Georgia,serif;font-weight:600;font-size:1.25rem}.card-module__body___b17cz{margin:0;opacity:.8}
@@ -0,0 +1,22 @@
1
+ export { Grain } from './components/grain';
2
+ export type { GrainProps } from './components/grain';
3
+ export { Glow } from './components/glow';
4
+ export type { GlowProps } from './components/glow';
5
+ export { Backdrop } from './components/backdrop';
6
+ export type { BackdropProps } from './components/backdrop';
7
+ export { Glass } from './components/glass';
8
+ export type { GlassProps } from './components/glass';
9
+ export { Button } from './components/button';
10
+ export type { ButtonProps } from './components/button';
11
+ export { IconButton } from './components/icon-button';
12
+ export type { IconButtonProps } from './components/icon-button';
13
+ export { Stamp } from './components/stamp';
14
+ export type { StampProps, StampVariant } from './components/stamp';
15
+ export { Tooltip } from './components/tooltip';
16
+ export type { TooltipProps, TooltipPlacement } from './components/tooltip';
17
+ export { ToastProvider, useToast } from './components/toast';
18
+ export type { ToastContextValue, ToastOptions, ToastPosition, ToastProviderProps, ToastVariant, } from './components/toast';
19
+ export { Card } from './components/card';
20
+ export type { CardProps } from './components/card';
21
+ export { cn } from './utils/style-helpers';
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AAExB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EACV,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC"}