@alkimi.org/ui-kit 0.1.29 → 0.2.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-27WVO6KF.js +3 -0
- package/dist/chunk-27WVO6KF.js.map +1 -0
- package/dist/chunk-2YRLGFWP.mjs +3 -0
- package/dist/chunk-2YRLGFWP.mjs.map +1 -0
- package/dist/chunk-372VUZFE.js +6 -0
- package/dist/chunk-372VUZFE.js.map +1 -0
- package/dist/chunk-4LUOGI24.mjs +6 -0
- package/dist/chunk-4LUOGI24.mjs.map +1 -0
- package/dist/chunk-752ERCMU.js +3 -0
- package/dist/chunk-752ERCMU.js.map +1 -0
- package/dist/chunk-ALULX4FP.js +3 -0
- package/dist/chunk-ALULX4FP.js.map +1 -0
- package/dist/chunk-B7XXLTYN.js +3 -0
- package/dist/chunk-B7XXLTYN.js.map +1 -0
- package/dist/chunk-BB3WNO72.mjs +3 -0
- package/dist/chunk-BB3WNO72.mjs.map +1 -0
- package/dist/{chunk-FLYTIYNE.js → chunk-BENG4LHZ.js} +2 -2
- package/dist/{chunk-FLYTIYNE.js.map → chunk-BENG4LHZ.js.map} +1 -1
- package/dist/chunk-CT2CRYC2.js +3 -0
- package/dist/chunk-CT2CRYC2.js.map +1 -0
- package/dist/chunk-DMHIFNXF.mjs +3 -0
- package/dist/chunk-DMHIFNXF.mjs.map +1 -0
- package/dist/{chunk-ULRJYLR3.mjs → chunk-EMGXHXG7.mjs} +2 -2
- package/dist/chunk-EMGXHXG7.mjs.map +1 -0
- package/dist/chunk-ERH5N4LR.mjs +3 -0
- package/dist/chunk-ERH5N4LR.mjs.map +1 -0
- package/dist/chunk-FINC3UAQ.mjs +3 -0
- package/dist/chunk-FINC3UAQ.mjs.map +1 -0
- package/dist/chunk-GOZDJRUZ.mjs +3 -0
- package/dist/chunk-GOZDJRUZ.mjs.map +1 -0
- package/dist/chunk-HPJEH5QX.mjs +3 -0
- package/dist/chunk-HPJEH5QX.mjs.map +1 -0
- package/dist/chunk-IFTA7LUP.mjs +3 -0
- package/dist/chunk-IFTA7LUP.mjs.map +1 -0
- package/dist/chunk-L36V45FD.mjs +3 -0
- package/dist/chunk-L36V45FD.mjs.map +1 -0
- package/dist/chunk-QDJM5EVM.js +3 -0
- package/dist/{chunk-SIGGW2CQ.js.map → chunk-QDJM5EVM.js.map} +1 -1
- package/dist/chunk-QKOZTOYU.js +3 -0
- package/dist/chunk-QKOZTOYU.js.map +1 -0
- package/dist/chunk-RWCTSJUM.js +3 -0
- package/dist/chunk-RWCTSJUM.js.map +1 -0
- package/dist/chunk-W33YK5OA.js +3 -0
- package/dist/chunk-W33YK5OA.js.map +1 -0
- package/dist/chunk-XIYQ5UXO.mjs +3 -0
- package/dist/chunk-XIYQ5UXO.mjs.map +1 -0
- package/dist/chunk-ZF6PO6PJ.js +3 -0
- package/dist/chunk-ZF6PO6PJ.js.map +1 -0
- package/dist/components/GeometricFluidGrid.d.mts +4 -1
- package/dist/components/GeometricFluidGrid.d.ts +4 -1
- package/dist/components/GeometricFluidGrid.js +1 -1
- package/dist/components/GeometricFluidGrid.mjs +1 -1
- package/dist/components/TextDecoder.js +1 -1
- package/dist/components/TextDecoder.mjs +1 -1
- package/dist/components/avatar.d.mts +30 -0
- package/dist/components/avatar.d.ts +30 -0
- package/dist/components/avatar.js +3 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/avatar.mjs +3 -0
- package/dist/components/avatar.mjs.map +1 -0
- package/dist/components/breadcrumb.d.mts +22 -0
- package/dist/components/breadcrumb.d.ts +22 -0
- package/dist/components/breadcrumb.js +3 -0
- package/dist/components/breadcrumb.js.map +1 -0
- package/dist/components/breadcrumb.mjs +3 -0
- package/dist/components/breadcrumb.mjs.map +1 -0
- package/dist/components/button.d.mts +1 -1
- package/dist/components/button.d.ts +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/button.mjs +1 -1
- package/dist/components/card.js +1 -1
- package/dist/components/card.js.map +1 -1
- package/dist/components/card.mjs +1 -1
- package/dist/components/card.mjs.map +1 -1
- package/dist/components/checkbox.d.mts +6 -0
- package/dist/components/checkbox.d.ts +6 -0
- package/dist/components/checkbox.js +3 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/checkbox.mjs +3 -0
- package/dist/components/checkbox.mjs.map +1 -0
- package/dist/components/dropdown-menu.d.mts +30 -0
- package/dist/components/dropdown-menu.d.ts +30 -0
- package/dist/components/dropdown-menu.js +3 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/dropdown-menu.mjs +3 -0
- package/dist/components/dropdown-menu.mjs.map +1 -0
- package/dist/components/field.d.mts +14 -0
- package/dist/components/field.d.ts +14 -0
- package/dist/components/field.js +3 -0
- package/dist/components/field.js.map +1 -0
- package/dist/components/field.mjs +3 -0
- package/dist/components/field.mjs.map +1 -0
- package/dist/components/input.d.mts +1 -0
- package/dist/components/input.d.ts +1 -0
- package/dist/components/input.js +1 -1
- package/dist/components/input.mjs +1 -1
- package/dist/components/label.d.mts +7 -0
- package/dist/components/label.d.ts +7 -0
- package/dist/components/label.js +3 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/label.mjs +3 -0
- package/dist/components/label.mjs.map +1 -0
- package/dist/components/progress.d.mts +6 -0
- package/dist/components/progress.d.ts +6 -0
- package/dist/components/progress.js +3 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/components/progress.mjs +3 -0
- package/dist/components/progress.mjs.map +1 -0
- package/dist/components/sheet.js +1 -1
- package/dist/components/sheet.mjs +1 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/sidebar.mjs +1 -1
- package/dist/components/slider.d.mts +7 -0
- package/dist/components/slider.d.ts +7 -0
- package/dist/components/slider.js +3 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/slider.mjs +3 -0
- package/dist/components/slider.mjs.map +1 -0
- package/dist/components/switch.d.mts +6 -0
- package/dist/components/switch.d.ts +6 -0
- package/dist/components/switch.js +3 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/switch.mjs +3 -0
- package/dist/components/switch.mjs.map +1 -0
- package/dist/components/table.d.mts +17 -0
- package/dist/components/table.d.ts +17 -0
- package/dist/components/table.js +3 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/table.mjs +3 -0
- package/dist/components/table.mjs.map +1 -0
- package/dist/components/tabs.js +1 -1
- package/dist/components/tabs.mjs +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/components/tooltip.mjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +7 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/package.json +7 -1
- package/dist/chunk-272GUG6E.mjs +0 -3
- package/dist/chunk-272GUG6E.mjs.map +0 -1
- package/dist/chunk-6BEVEBGO.mjs +0 -3
- package/dist/chunk-6BEVEBGO.mjs.map +0 -1
- package/dist/chunk-73BUNE7H.mjs +0 -3
- package/dist/chunk-73BUNE7H.mjs.map +0 -1
- package/dist/chunk-C5AZO7RU.js +0 -3
- package/dist/chunk-C5AZO7RU.js.map +0 -1
- package/dist/chunk-JK6CQDLQ.mjs +0 -3
- package/dist/chunk-JK6CQDLQ.mjs.map +0 -1
- package/dist/chunk-MDYLQCAS.js +0 -3
- package/dist/chunk-MDYLQCAS.js.map +0 -1
- package/dist/chunk-MLULTZDS.js +0 -3
- package/dist/chunk-MLULTZDS.js.map +0 -1
- package/dist/chunk-MWLPAT6M.mjs +0 -3
- package/dist/chunk-MWLPAT6M.mjs.map +0 -1
- package/dist/chunk-NKYU43T6.js +0 -3
- package/dist/chunk-NKYU43T6.js.map +0 -1
- package/dist/chunk-PY6WBMT2.mjs +0 -3
- package/dist/chunk-PY6WBMT2.mjs.map +0 -1
- package/dist/chunk-QZ2ZUF7Q.js +0 -3
- package/dist/chunk-QZ2ZUF7Q.js.map +0 -1
- package/dist/chunk-RTHCEJYC.mjs +0 -3
- package/dist/chunk-RTHCEJYC.mjs.map +0 -1
- package/dist/chunk-SIGGW2CQ.js +0 -3
- package/dist/chunk-ULRJYLR3.mjs.map +0 -1
- package/dist/chunk-YU4OSBML.js +0 -3
- package/dist/chunk-YU4OSBML.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/GeometricFluidGrid.tsx"],"sourcesContent":["\"use client\"\nimport React, { useEffect, useRef } from \"react\"\n\n// --- CONFIGURATION ---\nconst GAP = 14\nconst BASE_SIZE = 1\nconst MAX_SIZE = 5\n\n// --- TYPES ---\ninterface Node {\n offsetX: number\n offsetY: number\n vx: number\n vy: number\n radius: number\n t: number\n}\n\ninterface GlitchZone {\n x: number\n y: number\n w: number\n h: number\n life: number\n}\n\ninterface MouseState {\n x: number\n y: number\n lastX: number\n lastY: number\n}\n\n// --- MATH HELPERS ---\nconst getFalloff = (dist: number, radius: number): number => {\n if (dist < radius) {\n const val = 1 - dist / radius\n return val * val * (3 - 2 * val)\n }\n return 0\n}\n\n// --- CLASSES ---\nclass AnchoredBlob {\n // Current Position\n x: number = 0\n y: number = 0\n\n // Anchor Position (Home base)\n anchorX: number = 0\n anchorY: number = 0\n\n // Movement\n vx: number = 0\n vy: number = 0\n\n // Appearance\n nodes: Node[] = []\n opacity: number = 0\n\n // Glitch State\n glitchZones: GlitchZone[] = []\n maxReach: number = 180\n\n constructor(anchorConfig: { x: number; y: number }) {\n this.anchorX = anchorConfig.x\n this.anchorY = anchorConfig.y\n this.x = this.anchorX\n this.y = this.anchorY\n this.init()\n }\n\n init() {\n // 1. Create Internal Nodes (The \"Blob\" composition)\n this.nodes = []\n const nodeCount = 3 + Math.floor(Math.random() * 3) // 3 to 5 nodes\n\n for (let i = 0; i < nodeCount; i++) {\n // Significantly smaller radius (15-40px) to reduce central bulk\n const r = 15 + Math.random() * 25\n // Wider initial spread\n const ox = (Math.random() - 0.5) * 60\n const oy = (Math.random() - 0.5) * 60\n\n this.nodes.push({\n offsetX: ox,\n offsetY: oy,\n vx: (Math.random() - 0.5) * 0.1, // Slower internal movement (was 0.4)\n vy: (Math.random() - 0.5) * 0.1,\n radius: r,\n t: Math.random() * 100,\n })\n }\n\n this.opacity = 1\n }\n\n update() {\n // --- 1. Tethered Movement Logic ---\n const dx = this.anchorX - this.x\n const dy = this.anchorY - this.y\n\n // Spring constant (very loose)\n const k = 0.0005\n const ax = dx * k\n const ay = dy * k\n\n // Random wandering force - Reduced significantly for slower drift\n const wx = (Math.random() - 0.5) * 0.01 // was 0.05\n const wy = (Math.random() - 0.5) * 0.01 // was 0.05\n\n this.vx += ax + wx\n this.vy += ay + wy\n\n this.vx *= 0.96\n this.vy *= 0.96\n\n this.x += this.vx\n this.y += this.vy\n\n // --- 2. Internal Node Animation ---\n this.nodes.forEach((node) => {\n // Slow down time step\n node.t += 0.005 // was 0.02\n\n // Slower oscillation and movement\n node.offsetX += Math.sin(node.t) * 0.1 + node.vx // amp was 0.4\n node.offsetY += Math.cos(node.t * 0.9) * 0.1 + node.vy\n\n // Constrain to \"nucleus\"\n const maxDist = 70\n if (node.offsetX > maxDist || node.offsetX < -maxDist) node.vx *= -1\n if (node.offsetY > maxDist || node.offsetY < -maxDist) node.vy *= -1\n\n // Pulse size\n node.radius += Math.sin(node.t * 2) * 0.1\n })\n\n // --- 3. Manage Glitch Zones ---\n // Remove dead glitches\n this.glitchZones = this.glitchZones.filter((g) => g.life > 0)\n this.glitchZones.forEach((g) => g.life--)\n\n // Randomly spawn new glitches\n if (Math.random() < 0.03) {\n // 3% chance per frame\n const spread = 80\n\n // Snap random positions to exact grid points to ensure clean lines\n const snap = (v: number) =>\n Math.round((v - GAP / 2) / GAP) * GAP + GAP / 2\n\n const rawCx = this.x + (Math.random() - 0.5) * spread\n const rawCy = this.y + (Math.random() - 0.5) * spread\n\n const cx = snap(rawCx)\n const cy = snap(rawCy)\n\n const type = Math.random() > 0.6 ? \"line\" : \"dot\"\n\n if (type === \"line\") {\n const isVert = Math.random() > 0.5\n // Medium length: 40-120px\n const len = 40 + Math.random() * 80\n\n // Thickness is essentially zero (just a sliver) centered on the grid line\n // to guarantee we only pick up exactly one row/column of dots\n const thickness = 2\n\n this.glitchZones.push({\n x: isVert ? cx - thickness / 2 : cx - len / 2,\n y: isVert ? cy - len / 2 : cy - thickness / 2,\n w: isVert ? thickness : len,\n h: isVert ? len : thickness,\n life: 8 + Math.random() * 12,\n })\n } else {\n // Single dot\n // Box just large enough to catch one grid point\n const size = 4\n\n this.glitchZones.push({\n x: cx - size / 2,\n y: cy - size / 2,\n w: size,\n h: size,\n life: 6 + Math.random() * 10,\n })\n }\n }\n }\n}\n\nclass TrailBlob {\n x: number\n y: number\n opacity: number\n decay: number\n nodes: Node[]\n maxReach: number = 60\n\n constructor(x: number, y: number) {\n this.x = x\n this.y = y\n this.opacity = 0.8\n this.decay = 0.03\n\n this.nodes = []\n const count = 2\n for (let i = 0; i < count; i++) {\n this.nodes.push({\n offsetX: (Math.random() - 0.5) * 10,\n offsetY: (Math.random() - 0.5) * 10,\n vx: (Math.random() - 0.5) * 1,\n vy: (Math.random() - 0.5) * 1,\n radius: 5 + Math.random() * 10,\n t: 0,\n })\n }\n }\n\n update() {\n this.opacity -= this.decay\n this.nodes.forEach((node) => {\n node.offsetX += node.vx\n node.offsetY += node.vy\n node.radius *= 0.95\n })\n }\n}\n\ninterface GeometricFluidGridProps {\n variant?: \"animated\" | \"static\"\n}\n\nconst GeometricFluidGrid: React.FC<GeometricFluidGridProps> = ({\n variant = \"animated\",\n}) => {\n const canvasRef = useRef<HTMLCanvasElement>(null)\n\n useEffect(() => {\n const canvas = canvasRef.current\n if (!canvas) return\n\n const ctx = canvas.getContext(\"2d\")\n if (!ctx) return\n\n let animationFrameId: number\n let orbs: AnchoredBlob[] = []\n let trail: TrailBlob[] = []\n let mouse: MouseState = { x: -1000, y: -1000, lastX: -1000, lastY: -1000 }\n\n const initWorld = () => {\n orbs = []\n const w = canvas.width\n const h = canvas.height\n\n // 1. Top Right\n orbs.push(\n new AnchoredBlob({\n x: w - w * 0.15,\n y: h * 0.15,\n })\n )\n\n // 2. ~40% from top and ~40% from left\n orbs.push(\n new AnchoredBlob({\n x: w * 0.4,\n y: h * 0.4,\n })\n )\n\n // 3. Bottom Left\n orbs.push(\n new AnchoredBlob({\n x: w * 0.05 + 50,\n y: h - h * 0.15,\n })\n )\n\n // 4. Bottom Right\n orbs.push(\n new AnchoredBlob({\n x: w - w * 0.05 - 50,\n y: h - h * 0.05 - 50,\n })\n )\n }\n\n const resize = () => {\n const rect = canvas.getBoundingClientRect()\n canvas.width = rect.width\n canvas.height = rect.height\n initWorld()\n }\n\n const handleMouseMove = (e: MouseEvent) => {\n const rect = canvas.getBoundingClientRect()\n mouse.x = e.clientX - rect.left\n mouse.y = e.clientY - rect.top\n\n if (mouse.lastX === -1000) {\n mouse.lastX = mouse.x\n mouse.lastY = mouse.y\n }\n\n const dx = mouse.x - mouse.lastX\n const dy = mouse.y - mouse.lastY\n const dist = Math.sqrt(dx * dx + dy * dy)\n\n if (dist > 20) {\n trail.push(new TrailBlob(mouse.x, mouse.y))\n mouse.lastX = mouse.x\n mouse.lastY = mouse.y\n }\n }\n\n const handleResize = () => {\n resize()\n }\n\n const draw = () => {\n const w = canvas.width\n const h = canvas.height\n\n // Clear Screen\n ctx.fillStyle = \"#050505\"\n ctx.fillRect(0, 0, w, h)\n\n // Static variant: just render uniform dots\n if (variant === \"static\") {\n for (let x = GAP / 2; x < w; x += GAP) {\n for (let y = GAP / 2; y < h; y += GAP) {\n ctx.fillStyle = \"rgba(255, 255, 255, 0.03)\"\n ctx.fillRect(x - 0.5, y - 0.5, 1, 1)\n }\n }\n return // No animation loop for static variant\n }\n\n // Animated variant: update and render with animations\n // Update Logic\n orbs.forEach((orb) => orb.update())\n for (let i = trail.length - 1; i >= 0; i--) {\n trail[i].update()\n if (trail[i].opacity <= 0) trail.splice(i, 1)\n }\n\n const renderList = [...orbs, ...trail]\n\n // Collect all glitch zones for easier checking inside the loop\n // We flat map them to a simple array to iterate quickly\n const allGlitches: GlitchZone[] = []\n orbs.forEach((o) => allGlitches.push(...o.glitchZones))\n\n for (let x = GAP / 2; x < w; x += GAP) {\n for (let y = GAP / 2; y < h; y += GAP) {\n // --- GLITCH CHECK ---\n // Check if this specific grid dot is inside a glitch zone\n let isGlitching = false\n for (const g of allGlitches) {\n // Simple AABB check\n if (x >= g.x && x <= g.x + g.w && y >= g.y && y <= g.y + g.h) {\n isGlitching = true\n break\n }\n }\n\n if (isGlitching) {\n // Glitched Dot: Bright\n // We use the grid itself to manifest the glitch\n ctx.fillStyle = \"rgba(182, 243, 191, 0.95)\"\n\n // Randomly skip some dots in the glitch line for a \"broken\" look\n if (Math.random() > 0.1) {\n const size = Math.random() > 0.5 ? MAX_SIZE * 0.7 : BASE_SIZE * 2\n ctx.beginPath()\n ctx.arc(x, y, size / 2, 0, Math.PI * 2)\n ctx.fill()\n }\n continue // Skip standard influence calculation for this dot\n }\n\n // --- STANDARD INFLUENCE CHECK ---\n let totalInfluence = 0\n\n // Optimization: Is near blob?\n let nearby = false\n for (const entity of renderList) {\n if (\n Math.abs(x - entity.x) < entity.maxReach &&\n Math.abs(y - entity.y) < entity.maxReach\n ) {\n nearby = true\n break\n }\n }\n\n if (!nearby) {\n // Passive Background Dot\n ctx.fillStyle = \"rgba(255, 255, 255, 0.03)\"\n ctx.fillRect(x - 0.5, y - 0.5, 1, 1)\n continue\n }\n\n // Calculate Influence\n for (const entity of renderList) {\n const dx = x - entity.x\n const dy = y - entity.y\n\n if (\n Math.abs(dx) > entity.maxReach ||\n Math.abs(dy) > entity.maxReach\n )\n continue\n\n let localInf = 0\n for (const node of entity.nodes) {\n const nx = dx - node.offsetX\n const ny = dy - node.offsetY\n const dist = Math.sqrt(nx * nx + ny * ny)\n localInf += getFalloff(dist, node.radius)\n }\n if (localInf > 1) localInf = 1\n totalInfluence += localInf * entity.opacity\n }\n\n if (totalInfluence > 1) totalInfluence = 1\n\n // Draw Cell\n if (totalInfluence > 0.01) {\n // Gradient: White (Edge) to Green (#B6F3BF - Center)\n const edgeR = 255,\n centerR = 182\n const edgeG = 255,\n centerG = 243\n const edgeB = 255,\n centerB = 191\n\n // Interpolate from White (0 influence) to Green (1 influence)\n const r = Math.floor(edgeR + (centerR - edgeR) * totalInfluence)\n const g = Math.floor(edgeG + (centerG - edgeG) * totalInfluence)\n const b = Math.floor(edgeB + (centerB - edgeB) * totalInfluence)\n\n const alpha = totalInfluence * 0.5\n const size = BASE_SIZE + totalInfluence * (MAX_SIZE - BASE_SIZE)\n\n ctx.fillStyle = `rgba(${r}, ${g}, ${b}, ${alpha})`\n ctx.beginPath()\n ctx.arc(x, y, size / 2, 0, Math.PI * 2)\n ctx.fill()\n } else {\n ctx.fillStyle = \"rgba(255, 255, 255, 0.03)\"\n ctx.fillRect(x - 0.5, y - 0.5, 1, 1)\n }\n }\n }\n\n animationFrameId = requestAnimationFrame(draw)\n }\n\n window.addEventListener(\"resize\", handleResize)\n if (variant === \"animated\") {\n window.addEventListener(\"mousemove\", handleMouseMove)\n }\n\n resize()\n draw()\n\n return () => {\n window.removeEventListener(\"resize\", handleResize)\n if (variant === \"animated\") {\n window.removeEventListener(\"mousemove\", handleMouseMove)\n }\n cancelAnimationFrame(animationFrameId)\n }\n }, [variant])\n\n return (\n <canvas\n ref={canvasRef}\n className=\"fixed inset-0 -z-10 w-full h-full pointer-events-none\"\n />\n )\n}\n\nexport default GeometricFluidGrid\n"],"mappings":"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","names":["useEffect","useRef","jsx","GAP","BASE_SIZE","MAX_SIZE","getFalloff","dist","radius","val","AnchoredBlob","anchorConfig","__publicField","nodeCount","i","r","ox","oy","dx","dy","k","ax","ay","wx","wy","node","maxDist","g","snap","v","rawCx","rawCy","cx","cy","isVert","len","thickness","TrailBlob","x","y","count","GeometricFluidGrid","variant","canvasRef","useRef","useEffect","canvas","ctx","animationFrameId","orbs","trail","mouse","initWorld","w","resize","rect","handleMouseMove","e","handleResize","draw","orb","renderList","allGlitches","o","isGlitching","size","totalInfluence","nearby","entity","localInf","nx","ny","b","alpha","GeometricFluidGrid_default"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{a as e}from"./chunk-S5TKCF6T.mjs";import*as a from"react";import{jsx as s}from"react/jsx-runtime";var r=a.forwardRef(({className:l,...t},o)=>s("label",{ref:o,className:e("text-sm mb-2 font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",l),...t}));r.displayName="Label";export{r as a};
|
|
3
|
+
//# sourceMappingURL=chunk-GOZDJRUZ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/label.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { cn } from \"@/lib/utils\"\n\nexport interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {}\n\nconst Label = React.forwardRef<HTMLLabelElement, LabelProps>(\n ({ className, ...props }, ref) => (\n <label\n ref={ref}\n className={cn(\n \"text-sm mb-2 font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n className\n )}\n {...props}\n />\n )\n)\nLabel.displayName = \"Label\"\n\nexport { Label }\n"],"mappings":";yCAEA,UAAYA,MAAW,QAOnB,cAAAC,MAAA,oBAFJ,IAAMC,EAAc,aAClB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,IACxBJ,EAAC,SACC,IAAKI,EACL,UAAWC,EACT,kGACAH,CACF,EACC,GAAGC,EACN,CAEJ,EACAF,EAAM,YAAc","names":["React","jsx","Label","className","props","ref","cn"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{a as o}from"./chunk-S5TKCF6T.mjs";import*as e from"@radix-ui/react-tabs";import{forwardRef as a,useCallback as p,useEffect as g,useRef as T,useState as R}from"react";import{jsx as l,jsxs as L}from"react/jsx-runtime";var C=e.Root,y=a(({className:r,...n},t)=>{let[c,b]=R({left:0,width:0}),s=T(null);g(()=>{let i=()=>{if(!s.current)return;let f=s.current.querySelector('[data-state="active"]');if(f){let v=s.current.getBoundingClientRect(),m=f.getBoundingClientRect();b({left:m.left-v.left,width:m.width})}};i();let u=new MutationObserver(i);return s.current&&u.observe(s.current,{attributes:!0,attributeFilter:["data-state"],subtree:!0}),window.addEventListener("resize",i),()=>{u.disconnect(),window.removeEventListener("resize",i)}},[]);let d=p(i=>{s.current=i,typeof t=="function"?t(i):t&&(t.current=i)},[t]);return L(e.List,{ref:d,className:o("relative inline-flex items-center justify-center rounded-4xl bg-muted p-1 text-muted-foreground",r),...n,children:[l("span",{className:"absolute h-[calc(100%-0.5rem)] rounded-4xl bg-background shadow-sm transition-all duration-200 ease-out",style:{left:`${c.left}px`,width:`${c.width}px`}}),n.children]})});y.displayName=e.List.displayName;var P=a(({className:r,...n},t)=>l(e.Trigger,{ref:t,className:o("cursor-pointer relative inline-flex items-center justify-center whitespace-nowrap rounded-4xl px-3 py-1 text-sm font-medium ring-offset-background transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:text-foreground z-10",r),...n}));P.displayName=e.Trigger.displayName;var w=a(({className:r,...n},t)=>l(e.Content,{ref:t,className:o("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",r),...n}));w.displayName=e.Content.displayName;export{C as a,y as b,P as c,w as d};
|
|
3
|
+
//# sourceMappingURL=chunk-HPJEH5QX.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/tabs.tsx"],"sourcesContent":["import * as TabsPrimitive from \"@radix-ui/react-tabs\"\n\nimport { cn } from \"@/lib/utils\"\nimport { forwardRef, useCallback, useEffect, useRef, useState } from \"react\"\n\nconst Tabs = TabsPrimitive.Root\n\nconst TabsList = forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => {\n const [indicatorStyle, setIndicatorStyle] = useState({\n left: 0,\n width: 0,\n })\n const listRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const updateIndicator = () => {\n if (!listRef.current) return\n\n const activeTab = listRef.current.querySelector(\n '[data-state=\"active\"]'\n ) as HTMLElement\n\n if (activeTab) {\n const listRect = listRef.current.getBoundingClientRect()\n const tabRect = activeTab.getBoundingClientRect()\n\n setIndicatorStyle({\n left: tabRect.left - listRect.left,\n width: tabRect.width,\n })\n }\n }\n\n updateIndicator()\n\n // Use MutationObserver to detect when data-state changes\n const observer = new MutationObserver(updateIndicator)\n\n if (listRef.current) {\n observer.observe(listRef.current, {\n attributes: true,\n attributeFilter: [\"data-state\"],\n subtree: true,\n })\n }\n\n // Also update on window resize\n window.addEventListener(\"resize\", updateIndicator)\n\n return () => {\n observer.disconnect()\n window.removeEventListener(\"resize\", updateIndicator)\n }\n }, [])\n\n // Combine refs\n const combinedRef = useCallback(\n (node: HTMLDivElement | null) => {\n ;(listRef as React.MutableRefObject<HTMLDivElement | null>).current = node\n\n if (typeof ref === \"function\") {\n ref(node)\n } else if (ref) {\n ;(ref as React.MutableRefObject<HTMLDivElement | null>).current = node\n }\n },\n [ref]\n )\n\n return (\n <TabsPrimitive.List\n ref={combinedRef}\n className={cn(\n \"relative inline-flex items-center justify-center rounded-4xl bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...props}\n >\n {/* Animated indicator */}\n <span\n className=\"absolute h-[calc(100%-0.5rem)] rounded-4xl bg-background shadow-sm transition-all duration-200 ease-out\"\n style={{\n left: `${indicatorStyle.left}px`,\n width: `${indicatorStyle.width}px`,\n }}\n />\n {props.children}\n </TabsPrimitive.List>\n )\n})\nTabsList.displayName = TabsPrimitive.List.displayName\n\nconst TabsTrigger = forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"cursor-pointer relative inline-flex items-center justify-center whitespace-nowrap rounded-4xl px-3 py-1 text-sm font-medium ring-offset-background transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:text-foreground z-10\",\n className\n )}\n {...props}\n />\n))\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\n\nconst TabsContent = forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n))\nTabsContent.displayName = TabsPrimitive.Content.displayName\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n"],"mappings":";yCAAA,UAAYA,MAAmB,uBAG/B,OAAS,cAAAC,EAAY,eAAAC,EAAa,aAAAC,EAAW,UAAAC,EAAQ,YAAAC,MAAgB,QAsEjE,OASE,OAAAC,EATF,QAAAC,MAAA,oBApEJ,IAAMC,EAAqB,OAErBC,EAAWR,EAGf,CAAC,CAAE,UAAAS,EAAW,GAAGC,CAAM,EAAGC,IAAQ,CAClC,GAAM,CAACC,EAAgBC,CAAiB,EAAIT,EAAS,CACnD,KAAM,EACN,MAAO,CACT,CAAC,EACKU,EAAUX,EAAuB,IAAI,EAE3CD,EAAU,IAAM,CACd,IAAMa,EAAkB,IAAM,CAC5B,GAAI,CAACD,EAAQ,QAAS,OAEtB,IAAME,EAAYF,EAAQ,QAAQ,cAChC,uBACF,EAEA,GAAIE,EAAW,CACb,IAAMC,EAAWH,EAAQ,QAAQ,sBAAsB,EACjDI,EAAUF,EAAU,sBAAsB,EAEhDH,EAAkB,CAChB,KAAMK,EAAQ,KAAOD,EAAS,KAC9B,MAAOC,EAAQ,KACjB,CAAC,CACH,CACF,EAEAH,EAAgB,EAGhB,IAAMI,EAAW,IAAI,iBAAiBJ,CAAe,EAErD,OAAID,EAAQ,SACVK,EAAS,QAAQL,EAAQ,QAAS,CAChC,WAAY,GACZ,gBAAiB,CAAC,YAAY,EAC9B,QAAS,EACX,CAAC,EAIH,OAAO,iBAAiB,SAAUC,CAAe,EAE1C,IAAM,CACXI,EAAS,WAAW,EACpB,OAAO,oBAAoB,SAAUJ,CAAe,CACtD,CACF,EAAG,CAAC,CAAC,EAGL,IAAMK,EAAcnB,EACjBoB,GAAgC,CAC7BP,EAA0D,QAAUO,EAElE,OAAOV,GAAQ,WACjBA,EAAIU,CAAI,EACCV,IACPA,EAAsD,QAAUU,EAEtE,EACA,CAACV,CAAG,CACN,EAEA,OACEL,EAAe,OAAd,CACC,IAAKc,EACL,UAAWE,EACT,kGACAb,CACF,EACC,GAAGC,EAGJ,UAAAL,EAAC,QACC,UAAU,0GACV,MAAO,CACL,KAAM,GAAGO,EAAe,IAAI,KAC5B,MAAO,GAAGA,EAAe,KAAK,IAChC,EACF,EACCF,EAAM,UACT,CAEJ,CAAC,EACDF,EAAS,YAA4B,OAAK,YAE1C,IAAMe,EAAcvB,EAGlB,CAAC,CAAE,UAAAS,EAAW,GAAGC,CAAM,EAAGC,IAC1BN,EAAe,UAAd,CACC,IAAKM,EACL,UAAWW,EACT,kXACAb,CACF,EACC,GAAGC,EACN,CACD,EACDa,EAAY,YAA4B,UAAQ,YAEhD,IAAMC,EAAcxB,EAGlB,CAAC,CAAE,UAAAS,EAAW,GAAGC,CAAM,EAAGC,IAC1BN,EAAe,UAAd,CACC,IAAKM,EACL,UAAWW,EACT,kIACAb,CACF,EACC,GAAGC,EACN,CACD,EACDc,EAAY,YAA4B,UAAQ","names":["TabsPrimitive","forwardRef","useCallback","useEffect","useRef","useState","jsx","jsxs","Tabs","TabsList","className","props","ref","indicatorStyle","setIndicatorStyle","listRef","updateIndicator","activeTab","listRect","tabRect","observer","combinedRef","node","cn","TabsTrigger","TabsContent"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{a}from"./chunk-S5TKCF6T.mjs";import*as d from"react";import*as e from"@radix-ui/react-dropdown-menu";import{Check as s,ChevronRight as u,Circle as l}from"lucide-react";import{jsx as i,jsxs as p}from"react/jsx-runtime";var g=e.Root,N=e.Trigger,C=e.Group,x=e.Portal,I=e.Sub,S=e.RadioGroup,c=d.forwardRef(({className:o,inset:t,children:n,...r},m)=>p(e.SubTrigger,{ref:m,className:a("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-secondary data-[state=open]:bg-secondary",t&&"pl-8",o),...r,children:[n,i(u,{className:"ml-auto h-4 w-4"})]}));c.displayName=e.SubTrigger.displayName;var f=d.forwardRef(({className:o,...t},n)=>i(e.SubContent,{ref:n,className:a("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-dropdown-menu p-1 text-dropdown-menu-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",o),...t}));f.displayName=e.SubContent.displayName;var w=d.forwardRef(({className:o,sideOffset:t=4,...n},r)=>i(e.Portal,{children:i(e.Content,{ref:r,sideOffset:t,className:a("z-50 min-w-[8rem] overflow-hidden rounded-xl border border-border bg-dropdown-menu p-1 text-dropdown-menu-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",o),...n})}));w.displayName=e.Content.displayName;var M=d.forwardRef(({className:o,inset:t,...n},r)=>i(e.Item,{ref:r,className:a("relative flex cursor-pointer select-none items-center rounded-sm p-2 text-sm outline-none transition-colors focus:bg-secondary data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t&&"pl-8",o),...n}));M.displayName=e.Item.displayName;var D=d.forwardRef(({className:o,children:t,checked:n,...r},m)=>p(e.CheckboxItem,{ref:m,className:a("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-secondary data-[disabled]:pointer-events-none data-[disabled]:opacity-50",o),checked:n,...r,children:[i("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i(e.ItemIndicator,{children:i(s,{className:"h-4 w-4"})})}),t]}));D.displayName=e.CheckboxItem.displayName;var P=d.forwardRef(({className:o,children:t,...n},r)=>p(e.RadioItem,{ref:r,className:a("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-secondary data-[disabled]:pointer-events-none data-[disabled]:opacity-50",o),...n,children:[i("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i(e.ItemIndicator,{children:i(l,{className:"h-2 w-2 fill-current"})})}),t]}));P.displayName=e.RadioItem.displayName;var R=d.forwardRef(({className:o,inset:t,...n},r)=>i(e.Label,{ref:r,className:a("px-2 py-1.5 text-sm font-semibold",t&&"pl-8",o),...n}));R.displayName=e.Label.displayName;var v=d.forwardRef(({className:o,...t},n)=>i(e.Separator,{ref:n,className:a("-mx-1 my-1 h-px bg-muted",o),...t}));v.displayName=e.Separator.displayName;var b=({className:o,...t})=>i("span",{className:a("ml-auto text-xs tracking-widest opacity-60",o),...t});b.displayName="DropdownMenuShortcut";export{g as a,N as b,C as c,x as d,I as e,S as f,c as g,f as h,w as i,M as j,D as k,P as l,R as m,v as n,b as o};
|
|
3
|
+
//# sourceMappingURL=chunk-IFTA7LUP.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/dropdown-menu.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst DropdownMenu = DropdownMenuPrimitive.Root\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-secondary data-[state=open]:bg-secondary\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto h-4 w-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n))\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-dropdown-menu p-1 text-dropdown-menu-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-xl border border-border bg-dropdown-menu p-1 text-dropdown-menu-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n))\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-pointer select-none items-center rounded-sm p-2 text-sm outline-none transition-colors focus:bg-secondary data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-secondary data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n))\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-secondary data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n))\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n))\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n />\n )\n}\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\"\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n}\n"],"mappings":"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","names":["React","DropdownMenuPrimitive","Check","ChevronRight","Circle","jsx","jsxs","DropdownMenu","DropdownMenuTrigger","DropdownMenuGroup","DropdownMenuPortal","DropdownMenuSub","DropdownMenuRadioGroup","DropdownMenuSubTrigger","className","inset","children","props","ref","cn","ChevronRight","DropdownMenuSubContent","DropdownMenuContent","sideOffset","DropdownMenuItem","DropdownMenuCheckboxItem","checked","Check","DropdownMenuRadioItem","Circle","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{a}from"./chunk-S5TKCF6T.mjs";import*as i from"react";import{jsx as l}from"react/jsx-runtime";var s=i.forwardRef(({className:e,...t},r)=>l("div",{ref:r,className:a("space-y-2",e),...t}));s.displayName="Field";var d=i.forwardRef(({className:e,...t},r)=>l("label",{ref:r,className:a("text-sm font-medium leading-none text-primary-accent peer-disabled:cursor-not-allowed peer-disabled:opacity-70",e),...t}));d.displayName="FieldLabel";var n=i.forwardRef(({className:e,error:t,...r},o)=>l("p",{ref:o,className:a("text-sm",t?"text-destructive-foreground":"text-muted-foreground",e),...r}));n.displayName="FieldDescription";export{s as a,d as b,n as c};
|
|
3
|
+
//# sourceMappingURL=chunk-L36V45FD.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/field.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { cn } from \"@/lib/utils\"\n\nexport interface FieldProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst Field = React.forwardRef<HTMLDivElement, FieldProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"space-y-2\", className)} {...props} />\n )\n)\nField.displayName = \"Field\"\n\nexport interface FieldLabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {}\n\nconst FieldLabel = React.forwardRef<HTMLLabelElement, FieldLabelProps>(\n ({ className, ...props }, ref) => (\n <label\n ref={ref}\n className={cn(\n \"text-sm font-medium leading-none text-primary-accent peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n className\n )}\n {...props}\n />\n )\n)\nFieldLabel.displayName = \"FieldLabel\"\n\nexport interface FieldDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {\n error?: boolean\n}\n\nconst FieldDescription = React.forwardRef<\n HTMLParagraphElement,\n FieldDescriptionProps\n>(({ className, error, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\n \"text-sm\",\n error ? \"text-destructive-foreground\" : \"text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\nFieldDescription.displayName = \"FieldDescription\"\n\nexport { Field, FieldLabel, FieldDescription }\n"],"mappings":";oCAEA,UAAYA,MAAW,QAOnB,cAAAC,MAAA,oBAFJ,IAAMC,EAAc,aAClB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,IACxBJ,EAAC,OAAI,IAAKI,EAAK,UAAWC,EAAG,YAAaH,CAAS,EAAI,GAAGC,EAAO,CAErE,EACAF,EAAM,YAAc,QAIpB,IAAMK,EAAmB,aACvB,CAAC,CAAE,UAAAJ,EAAW,GAAGC,CAAM,EAAGC,IACxBJ,EAAC,SACC,IAAKI,EACL,UAAWC,EACT,iHACAH,CACF,EACC,GAAGC,EACN,CAEJ,EACAG,EAAW,YAAc,aAMzB,IAAMC,EAAyB,aAG7B,CAAC,CAAE,UAAAL,EAAW,MAAAM,EAAO,GAAGL,CAAM,EAAGC,IACjCJ,EAAC,KACC,IAAKI,EACL,UAAWC,EACT,UACAG,EAAQ,8BAAgC,wBACxCN,CACF,EACC,GAAGC,EACN,CACD,EACDI,EAAiB,YAAc","names":["React","jsx","Field","className","props","ref","cn","FieldLabel","FieldDescription","error"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }"use client";
|
|
2
|
+
var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _reacttabs = require('@radix-ui/react-tabs'); var e = _interopRequireWildcard(_reacttabs);var _react = require('react');var _jsxruntime = require('react/jsx-runtime');var C=e.Root,y= exports.b =_react.forwardRef.call(void 0, ({className:r,...n},t)=>{let[c,b]=_react.useState.call(void 0, {left:0,width:0}),s=_react.useRef.call(void 0, null);_react.useEffect.call(void 0, ()=>{let i=()=>{if(!s.current)return;let f=s.current.querySelector('[data-state="active"]');if(f){let v=s.current.getBoundingClientRect(),m=f.getBoundingClientRect();b({left:m.left-v.left,width:m.width})}};i();let u=new MutationObserver(i);return s.current&&u.observe(s.current,{attributes:!0,attributeFilter:["data-state"],subtree:!0}),window.addEventListener("resize",i),()=>{u.disconnect(),window.removeEventListener("resize",i)}},[]);let d=_react.useCallback.call(void 0, i=>{s.current=i,typeof t=="function"?t(i):t&&(t.current=i)},[t]);return _jsxruntime.jsxs.call(void 0, e.List,{ref:d,className:_chunkFUYXCJOQjs.a.call(void 0, "relative inline-flex items-center justify-center rounded-4xl bg-muted p-1 text-muted-foreground",r),...n,children:[_jsxruntime.jsx.call(void 0, "span",{className:"absolute h-[calc(100%-0.5rem)] rounded-4xl bg-background shadow-sm transition-all duration-200 ease-out",style:{left:`${c.left}px`,width:`${c.width}px`}}),n.children]})});y.displayName=e.List.displayName;var P=_react.forwardRef.call(void 0, ({className:r,...n},t)=>_jsxruntime.jsx.call(void 0, e.Trigger,{ref:t,className:_chunkFUYXCJOQjs.a.call(void 0, "cursor-pointer relative inline-flex items-center justify-center whitespace-nowrap rounded-4xl px-3 py-1 text-sm font-medium ring-offset-background transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:text-foreground z-10",r),...n}));P.displayName=e.Trigger.displayName;var w=_react.forwardRef.call(void 0, ({className:r,...n},t)=>_jsxruntime.jsx.call(void 0, e.Content,{ref:t,className:_chunkFUYXCJOQjs.a.call(void 0, "mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",r),...n}));w.displayName=e.Content.displayName;exports.a = C; exports.b = y; exports.c = P; exports.d = w;
|
|
3
|
+
//# sourceMappingURL=chunk-QDJM5EVM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-QDJM5EVM.js","../src/components/tabs.tsx"],"names":["Tabs","TabsList","forwardRef","className","props","ref","indicatorStyle","setIndicatorStyle","useState","listRef","useRef","useEffect","updateIndicator","activeTab","listRect","tabRect","observer","combinedRef","useCallback","node","jsxs","cn","jsx"],"mappings":"AAAA,uWAAY;AACZ,sDAAuC,8FCDR,8BAGsC,+CAsEjE,IApEEA,CAAAA,CAAqB,CAAA,CAAA,IAAA,CAErBC,CAAAA,aAAWC,+BAAAA,CAGd,CAAE,SAAA,CAAAC,CAAAA,CAAW,GAAGC,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EAAQ,CAClC,GAAM,CAACC,CAAAA,CAAgBC,CAAiB,CAAA,CAAIC,6BAAAA,CAC1C,IAAA,CAAM,CAAA,CACN,KAAA,CAAO,CACT,CAAC,CAAA,CACKC,CAAAA,CAAUC,2BAAAA,IAA2B,CAAA,CAE3CC,8BAAAA,CAAU,CAAA,EAAM,CACd,IAAMC,CAAAA,CAAkB,CAAA,CAAA,EAAM,CAC5B,EAAA,CAAI,CAACH,CAAAA,CAAQ,OAAA,CAAS,MAAA,CAEtB,IAAMI,CAAAA,CAAYJ,CAAAA,CAAQ,OAAA,CAAQ,aAAA,CAChC,uBACF,CAAA,CAEA,EAAA,CAAII,CAAAA,CAAW,CACb,IAAMC,CAAAA,CAAWL,CAAAA,CAAQ,OAAA,CAAQ,qBAAA,CAAsB,CAAA,CACjDM,CAAAA,CAAUF,CAAAA,CAAU,qBAAA,CAAsB,CAAA,CAEhDN,CAAAA,CAAkB,CAChB,IAAA,CAAMQ,CAAAA,CAAQ,IAAA,CAAOD,CAAAA,CAAS,IAAA,CAC9B,KAAA,CAAOC,CAAAA,CAAQ,KACjB,CAAC,CACH,CACF,CAAA,CAEAH,CAAAA,CAAgB,CAAA,CAGhB,IAAMI,CAAAA,CAAW,IAAI,gBAAA,CAAiBJ,CAAe,CAAA,CAErD,OAAIH,CAAAA,CAAQ,OAAA,EACVO,CAAAA,CAAS,OAAA,CAAQP,CAAAA,CAAQ,OAAA,CAAS,CAChC,UAAA,CAAY,CAAA,CAAA,CACZ,eAAA,CAAiB,CAAC,YAAY,CAAA,CAC9B,OAAA,CAAS,CAAA,CACX,CAAC,CAAA,CAIH,MAAA,CAAO,gBAAA,CAAiB,QAAA,CAAUG,CAAe,CAAA,CAE1C,CAAA,CAAA,EAAM,CACXI,CAAAA,CAAS,UAAA,CAAW,CAAA,CACpB,MAAA,CAAO,mBAAA,CAAoB,QAAA,CAAUJ,CAAe,CACtD,CACF,CAAA,CAAG,CAAC,CAAC,CAAA,CAGL,IAAMK,CAAAA,CAAcC,gCAAAA,CACjBC,EAAgC,CAC7BV,CAAAA,CAA0D,OAAA,CAAUU,CAAAA,CAElE,OAAOd,CAAAA,EAAQ,UAAA,CACjBA,CAAAA,CAAIc,CAAI,CAAA,CACCd,CAAAA,EAAAA,CACPA,CAAAA,CAAsD,OAAA,CAAUc,CAAAA,CAEtE,CAAA,CACA,CAACd,CAAG,CACN,CAAA,CAEA,OACEe,8BAAAA,CAAe,CAAA,IAAA,CAAd,CACC,GAAA,CAAKH,CAAAA,CACL,SAAA,CAAWI,gCAAAA,iGACT,CACAlB,CACF,CAAA,CACC,GAAGC,CAAAA,CAGJ,QAAA,CAAA,CAAAkB,6BAAAA,MAAC,CAAA,CACC,SAAA,CAAU,yGAAA,CACV,KAAA,CAAO,CACL,IAAA,CAAM,CAAA,EAAA","file":"/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-QDJM5EVM.js","sourcesContent":[null,"import * as TabsPrimitive from \"@radix-ui/react-tabs\"\n\nimport { cn } from \"@/lib/utils\"\nimport { forwardRef, useCallback, useEffect, useRef, useState } from \"react\"\n\nconst Tabs = TabsPrimitive.Root\n\nconst TabsList = forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => {\n const [indicatorStyle, setIndicatorStyle] = useState({\n left: 0,\n width: 0,\n })\n const listRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const updateIndicator = () => {\n if (!listRef.current) return\n\n const activeTab = listRef.current.querySelector(\n '[data-state=\"active\"]'\n ) as HTMLElement\n\n if (activeTab) {\n const listRect = listRef.current.getBoundingClientRect()\n const tabRect = activeTab.getBoundingClientRect()\n\n setIndicatorStyle({\n left: tabRect.left - listRect.left,\n width: tabRect.width,\n })\n }\n }\n\n updateIndicator()\n\n // Use MutationObserver to detect when data-state changes\n const observer = new MutationObserver(updateIndicator)\n\n if (listRef.current) {\n observer.observe(listRef.current, {\n attributes: true,\n attributeFilter: [\"data-state\"],\n subtree: true,\n })\n }\n\n // Also update on window resize\n window.addEventListener(\"resize\", updateIndicator)\n\n return () => {\n observer.disconnect()\n window.removeEventListener(\"resize\", updateIndicator)\n }\n }, [])\n\n // Combine refs\n const combinedRef = useCallback(\n (node: HTMLDivElement | null) => {\n ;(listRef as React.MutableRefObject<HTMLDivElement | null>).current = node\n\n if (typeof ref === \"function\") {\n ref(node)\n } else if (ref) {\n ;(ref as React.MutableRefObject<HTMLDivElement | null>).current = node\n }\n },\n [ref]\n )\n\n return (\n <TabsPrimitive.List\n ref={combinedRef}\n className={cn(\n \"relative inline-flex items-center justify-center rounded-4xl bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...props}\n >\n {/* Animated indicator */}\n <span\n className=\"absolute h-[calc(100%-0.5rem)] rounded-4xl bg-background shadow-sm transition-all duration-200 ease-out\"\n style={{\n left: `${indicatorStyle.left}px`,\n width: `${indicatorStyle.width}px`,\n }}\n />\n {props.children}\n </TabsPrimitive.List>\n )\n})\nTabsList.displayName = TabsPrimitive.List.displayName\n\nconst TabsTrigger = forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"cursor-pointer relative inline-flex items-center justify-center whitespace-nowrap rounded-4xl px-3 py-1 text-sm font-medium ring-offset-background transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:text-foreground z-10\",\n className\n )}\n {...props}\n />\n))\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\n\nconst TabsContent = forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n))\nTabsContent.displayName = TabsPrimitive.Content.displayName\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }"use client";
|
|
2
|
+
var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _react = require('react'); var a = _interopRequireWildcard(_react);var _reactslot = require('@radix-ui/react-slot');var _classvarianceauthority = require('class-variance-authority');var _jsxruntime = require('react/jsx-runtime');var m=_classvarianceauthority.cva.call(void 0, "inline-flex items-center cursor-pointer justify-center whitespace-nowrap rounded-4xl font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary-accent text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive hover:bg-destructive/90",outline:"border border-input hover:bg-base-accent text-primary-accent",secondary:"bg-muted text-primary-accent hover:bg-muted/20",ghost:"hover:bg-base-accent text-primary-accent",link:"text-primary-accent underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 text-sm",sm:"h-8 text-xs px-3 py-2",lg:"h-10 px-8 py-2 text-sm",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),f= exports.b =a.forwardRef(({className:i,variant:s,size:c,asChild:d=!1,loading:e=!1,icon:r,...t},u)=>_jsxruntime.jsxs.call(void 0, d?_reactslot.Slot:"button",{className:_chunkFUYXCJOQjs.a.call(void 0, m({variant:s,size:c,className:i})),ref:u,disabled:e||t.disabled,...t,children:[e&&_jsxruntime.jsx.call(void 0, "div",{className:"mr-2 h-4 w-4 animate-spin rounded-full border border-primary-foreground border-t-transparent"}),!e&&r&&_jsxruntime.jsx.call(void 0, "span",{className:"mr-2",children:r}),t.children]}));f.displayName="Button";exports.a = m; exports.b = f;
|
|
3
|
+
//# sourceMappingURL=chunk-QKOZTOYU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-QKOZTOYU.js","../src/components/button.tsx"],"names":["buttonVariants","cva","Button","className","variant","size","asChild","loading","icon","props","ref","jsxs","Slot","cn","jsx"],"mappings":"AAAA,uWAAY;AACZ,sDAAuC,uECDhB,iDACF,kEACkB,+CAuDjC,IAnDAA,CAAAA,CAAiBC,yCAAAA,gSACrB,CACA,CACE,QAAA,CAAU,CACR,OAAA,CAAS,CACP,OAAA,CACE,+DAAA,CACF,WAAA,CAAa,wCAAA,CACb,OAAA,CAAS,8DAAA,CACT,SAAA,CAAW,gDAAA,CACX,KAAA,CAAO,0CAAA,CACP,IAAA,CAAM,wDACR,CAAA,CACA,IAAA,CAAM,CACJ,OAAA,CAAS,uBAAA,CACT,EAAA,CAAI,uBAAA,CACJ,EAAA,CAAI,wBAAA,CACJ,IAAA,CAAM,SACR,CACF,CAAA,CACA,eAAA,CAAiB,CACf,OAAA,CAAS,SAAA,CACT,IAAA,CAAM,SACR,CACF,CACF,CAAA,CAWMC,CAAAA,aAAe,CAAA,CAAA,UAAA,CACnB,CACE,CACE,SAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,IAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CAAU,CAAA,CAAA,CACV,OAAA,CAAAC,CAAAA,CAAU,CAAA,CAAA,CACV,IAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CACAC,CAAAA,CAAAA,EAIEC,8BAAAA,CAFWL,CAAUM,eAAAA,CAAO,QAAA,CAE3B,CACC,SAAA,CAAWC,gCAAAA,CAAGb,CAAe,CAAE,OAAA,CAAAI,CAAAA,CAAS,IAAA,CAAAC,CAAAA,CAAM,SAAA,CAAAF,CAAU,CAAC,CAAC,CAAA,CAC1D,GAAA,CAAKO,CAAAA,CACL,QAAA,CAAUH,CAAAA,EAAWE,CAAAA,CAAM,QAAA,CAC1B,GAAGA,CAAAA,CAEH,QAAA,CAAA,CAAAF,CAAAA,EACCO,6BAAAA,KAAC,CAAA,CAAI,SAAA,CAAU,8FAAA,CAA+F,CAAA,CAE/G,CAACP,CAAAA,EAAWC,CAAAA,EAAQM,6BAAAA,MAAC,CAAA,CAAK,SAAA,CAAU,MAAA,CAAQ,QAAA,CAAAN,CAAAA,CAAK,CAAA,CACjDC,CAAAA,CAAM,QAAA,CAAA,CACT,CAGN,CAAA,CACAP,CAAAA,CAAO,WAAA,CAAc,QAAA,CAAA,6BAAA","file":"/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-QKOZTOYU.js","sourcesContent":[null,"import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center cursor-pointer justify-center whitespace-nowrap rounded-4xl font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary-accent text-primary-foreground hover:bg-primary/90\",\n destructive: \"bg-destructive hover:bg-destructive/90\",\n outline: \"border border-input hover:bg-base-accent text-primary-accent\",\n secondary: \"bg-muted text-primary-accent hover:bg-muted/20\",\n ghost: \"hover:bg-base-accent text-primary-accent\",\n link: \"text-primary-accent underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 text-sm\",\n sm: \"h-8 text-xs px-3 py-2\",\n lg: \"h-10 px-8 py-2 text-sm\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n loading?: boolean\n icon?: React.ReactNode\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n asChild = false,\n loading = false,\n icon,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\"\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n disabled={loading || props.disabled}\n {...props}\n >\n {loading && (\n <div className=\"mr-2 h-4 w-4 animate-spin rounded-full border border-primary-foreground border-t-transparent\" />\n )}\n {!loading && icon && <span className=\"mr-2\">{icon}</span>}\n {props.children}\n </Comp>\n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
|
+
var _chunkXYO4VLMFjs = require('./chunk-XYO4VLMF.js');var _react = require('react');var _jsxruntime = require('react/jsx-runtime');var m=14,B=1,P=5,q=(x,a)=>{if(x<a){let s=1-x/a;return s*s*(3-2*s)}return 0},v=class{constructor(a){_chunkXYO4VLMFjs.a.call(void 0, this,"x",0);_chunkXYO4VLMFjs.a.call(void 0, this,"y",0);_chunkXYO4VLMFjs.a.call(void 0, this,"anchorX",0);_chunkXYO4VLMFjs.a.call(void 0, this,"anchorY",0);_chunkXYO4VLMFjs.a.call(void 0, this,"vx",0);_chunkXYO4VLMFjs.a.call(void 0, this,"vy",0);_chunkXYO4VLMFjs.a.call(void 0, this,"nodes",[]);_chunkXYO4VLMFjs.a.call(void 0, this,"opacity",0);_chunkXYO4VLMFjs.a.call(void 0, this,"glitchZones",[]);_chunkXYO4VLMFjs.a.call(void 0, this,"maxReach",180);this.anchorX=a.x,this.anchorY=a.y,this.x=this.anchorX,this.y=this.anchorY,this.init()}init(){this.nodes=[];let a=3+Math.floor(Math.random()*3);for(let s=0;s<a;s++){let e=15+Math.random()*25,b=(Math.random()-.5)*60,u=(Math.random()-.5)*60;this.nodes.push({offsetX:b,offsetY:u,vx:(Math.random()-.5)*.1,vy:(Math.random()-.5)*.1,radius:e,t:Math.random()*100})}this.opacity=1}update(){let a=this.anchorX-this.x,s=this.anchorY-this.y,e=5e-4,b=a*e,u=s*e,g=(Math.random()-.5)*.01,r=(Math.random()-.5)*.01;if(this.vx+=b+g,this.vy+=u+r,this.vx*=.96,this.vy*=.96,this.x+=this.vx,this.y+=this.vy,this.nodes.forEach(n=>{n.t+=.005,n.offsetX+=Math.sin(n.t)*.1+n.vx,n.offsetY+=Math.cos(n.t*.9)*.1+n.vy;let d=70;(n.offsetX>d||n.offsetX<-d)&&(n.vx*=-1),(n.offsetY>d||n.offsetY<-d)&&(n.vy*=-1),n.radius+=Math.sin(n.t*2)*.1}),this.glitchZones=this.glitchZones.filter(n=>n.life>0),this.glitchZones.forEach(n=>n.life--),Math.random()<.03){let d=f=>Math.round((f-m/2)/m)*m+m/2,R=this.x+(Math.random()-.5)*80,X=this.y+(Math.random()-.5)*80,p=d(R),i=d(X);if((Math.random()>.6?"line":"dot")==="line"){let f=Math.random()>.5,y=40+Math.random()*80,t=2;this.glitchZones.push({x:f?p-t/2:p-y/2,y:f?i-y/2:i-t/2,w:f?t:y,h:f?y:t,life:8+Math.random()*12})}else this.glitchZones.push({x:p-4/2,y:i-4/2,w:4,h:4,life:6+Math.random()*10})}}},F=class{constructor(a,s){_chunkXYO4VLMFjs.a.call(void 0, this,"x");_chunkXYO4VLMFjs.a.call(void 0, this,"y");_chunkXYO4VLMFjs.a.call(void 0, this,"opacity");_chunkXYO4VLMFjs.a.call(void 0, this,"decay");_chunkXYO4VLMFjs.a.call(void 0, this,"nodes");_chunkXYO4VLMFjs.a.call(void 0, this,"maxReach",60);this.x=a,this.y=s,this.opacity=.8,this.decay=.03,this.nodes=[];let e=2;for(let b=0;b<e;b++)this.nodes.push({offsetX:(Math.random()-.5)*10,offsetY:(Math.random()-.5)*10,vx:(Math.random()-.5)*1,vy:(Math.random()-.5)*1,radius:5+Math.random()*10,t:0})}update(){this.opacity-=this.decay,this.nodes.forEach(a=>{a.offsetX+=a.vx,a.offsetY+=a.vy,a.radius*=.95})}},_=({variant:x="animated"})=>{let a=_react.useRef.call(void 0, null);return _react.useEffect.call(void 0, ()=>{let s=a.current;if(!s)return;let e=s.getContext("2d");if(!e)return;let b,u=[],g=[],r={x:-1e3,y:-1e3,lastX:-1e3,lastY:-1e3},n=()=>{u=[];let i=s.width,h=s.height;u.push(new v({x:i-i*.15,y:h*.15})),u.push(new v({x:i*.4,y:h*.4})),u.push(new v({x:i*.05+50,y:h-h*.15})),u.push(new v({x:i-i*.05-50,y:h-h*.05-50}))},d=()=>{let i=s.getBoundingClientRect();s.width=i.width,s.height=i.height,n()},R=i=>{let h=s.getBoundingClientRect();r.x=i.clientX-h.left,r.y=i.clientY-h.top,r.lastX===-1e3&&(r.lastX=r.x,r.lastY=r.y);let f=r.x-r.lastX,y=r.y-r.lastY;Math.sqrt(f*f+y*y)>20&&(g.push(new F(r.x,r.y)),r.lastX=r.x,r.lastY=r.y)},X=()=>{d()},p=()=>{let i=s.width,h=s.height;if(e.fillStyle="#050505",e.fillRect(0,0,i,h),x==="static"){for(let t=m/2;t<i;t+=m)for(let l=m/2;l<h;l+=m)e.fillStyle="rgba(255, 255, 255, 0.03)",e.fillRect(t-.5,l-.5,1,1);return}u.forEach(t=>t.update());for(let t=g.length-1;t>=0;t--)g[t].update(),g[t].opacity<=0&&g.splice(t,1);let f=[...u,...g],y=[];u.forEach(t=>y.push(...t.glitchZones));for(let t=m/2;t<i;t+=m)for(let l=m/2;l<h;l+=m){let C=!1;for(let o of y)if(t>=o.x&&t<=o.x+o.w&&l>=o.y&&l<=o.y+o.h){C=!0;break}if(C){if(e.fillStyle="rgba(182, 243, 191, 0.95)",Math.random()>.1){let o=Math.random()>.5?P*.7:B*2;e.beginPath(),e.arc(t,l,o/2,0,Math.PI*2),e.fill()}continue}let M=0,I=!1;for(let o of f)if(Math.abs(t-o.x)<o.maxReach&&Math.abs(l-o.y)<o.maxReach){I=!0;break}if(!I){e.fillStyle="rgba(255, 255, 255, 0.03)",e.fillRect(t-.5,l-.5,1,1);continue}for(let o of f){let E=t-o.x,z=l-o.y;if(Math.abs(E)>o.maxReach||Math.abs(z)>o.maxReach)continue;let w=0;for(let Y of o.nodes){let Z=E-Y.offsetX,G=z-Y.offsetY,S=Math.sqrt(Z*Z+G*G);w+=q(S,Y.radius)}w>1&&(w=1),M+=w*o.opacity}if(M>1&&(M=1),M>.01){let G=Math.floor(255+-73*M),S=Math.floor(255+-12*M),L=Math.floor(255+-64*M),A=M*.5,k=B+M*(P-B);e.fillStyle=`rgba(${G}, ${S}, ${L}, ${A})`,e.beginPath(),e.arc(t,l,k/2,0,Math.PI*2),e.fill()}else e.fillStyle="rgba(255, 255, 255, 0.03)",e.fillRect(t-.5,l-.5,1,1)}b=requestAnimationFrame(p)};return window.addEventListener("resize",X),x==="animated"&&window.addEventListener("mousemove",R),d(),p(),()=>{window.removeEventListener("resize",X),x==="animated"&&window.removeEventListener("mousemove",R),cancelAnimationFrame(b)}},[x]),_jsxruntime.jsx.call(void 0, "canvas",{ref:a,className:"fixed inset-0 -z-10 w-full h-full pointer-events-none"})},V= exports.a =_;exports.a = V;
|
|
3
|
+
//# sourceMappingURL=chunk-RWCTSJUM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-RWCTSJUM.js","../src/components/GeometricFluidGrid.tsx"],"names":["GAP","BASE_SIZE","MAX_SIZE","getFalloff","dist","radius","val","AnchoredBlob","anchorConfig","__publicField","nodeCount","i","r","ox","oy","dx","dy","k","ax","ay","wx","wy","node","maxDist","g","snap","v","rawCx","rawCy","cx","cy","isVert","len","thickness","TrailBlob","x","y","count","GeometricFluidGrid","variant","canvasRef","useRef","useEffect","canvas","ctx","animationFrameId","orbs","trail","mouse","initWorld","w","resize","rect","handleMouseMove","e","handleResize","draw","orb","renderList","allGlitches","o","isGlitching","size","totalInfluence","nearby","entity","localInf","nx","ny","b","alpha","jsx","GeometricFluidGrid_default"],"mappings":"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","file":"/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-RWCTSJUM.js","sourcesContent":[null,"\"use client\"\nimport React, { useEffect, useRef } from \"react\"\n\n// --- CONFIGURATION ---\nconst GAP = 14\nconst BASE_SIZE = 1\nconst MAX_SIZE = 5\n\n// --- TYPES ---\ninterface Node {\n offsetX: number\n offsetY: number\n vx: number\n vy: number\n radius: number\n t: number\n}\n\ninterface GlitchZone {\n x: number\n y: number\n w: number\n h: number\n life: number\n}\n\ninterface MouseState {\n x: number\n y: number\n lastX: number\n lastY: number\n}\n\n// --- MATH HELPERS ---\nconst getFalloff = (dist: number, radius: number): number => {\n if (dist < radius) {\n const val = 1 - dist / radius\n return val * val * (3 - 2 * val)\n }\n return 0\n}\n\n// --- CLASSES ---\nclass AnchoredBlob {\n // Current Position\n x: number = 0\n y: number = 0\n\n // Anchor Position (Home base)\n anchorX: number = 0\n anchorY: number = 0\n\n // Movement\n vx: number = 0\n vy: number = 0\n\n // Appearance\n nodes: Node[] = []\n opacity: number = 0\n\n // Glitch State\n glitchZones: GlitchZone[] = []\n maxReach: number = 180\n\n constructor(anchorConfig: { x: number; y: number }) {\n this.anchorX = anchorConfig.x\n this.anchorY = anchorConfig.y\n this.x = this.anchorX\n this.y = this.anchorY\n this.init()\n }\n\n init() {\n // 1. Create Internal Nodes (The \"Blob\" composition)\n this.nodes = []\n const nodeCount = 3 + Math.floor(Math.random() * 3) // 3 to 5 nodes\n\n for (let i = 0; i < nodeCount; i++) {\n // Significantly smaller radius (15-40px) to reduce central bulk\n const r = 15 + Math.random() * 25\n // Wider initial spread\n const ox = (Math.random() - 0.5) * 60\n const oy = (Math.random() - 0.5) * 60\n\n this.nodes.push({\n offsetX: ox,\n offsetY: oy,\n vx: (Math.random() - 0.5) * 0.1, // Slower internal movement (was 0.4)\n vy: (Math.random() - 0.5) * 0.1,\n radius: r,\n t: Math.random() * 100,\n })\n }\n\n this.opacity = 1\n }\n\n update() {\n // --- 1. Tethered Movement Logic ---\n const dx = this.anchorX - this.x\n const dy = this.anchorY - this.y\n\n // Spring constant (very loose)\n const k = 0.0005\n const ax = dx * k\n const ay = dy * k\n\n // Random wandering force - Reduced significantly for slower drift\n const wx = (Math.random() - 0.5) * 0.01 // was 0.05\n const wy = (Math.random() - 0.5) * 0.01 // was 0.05\n\n this.vx += ax + wx\n this.vy += ay + wy\n\n this.vx *= 0.96\n this.vy *= 0.96\n\n this.x += this.vx\n this.y += this.vy\n\n // --- 2. Internal Node Animation ---\n this.nodes.forEach((node) => {\n // Slow down time step\n node.t += 0.005 // was 0.02\n\n // Slower oscillation and movement\n node.offsetX += Math.sin(node.t) * 0.1 + node.vx // amp was 0.4\n node.offsetY += Math.cos(node.t * 0.9) * 0.1 + node.vy\n\n // Constrain to \"nucleus\"\n const maxDist = 70\n if (node.offsetX > maxDist || node.offsetX < -maxDist) node.vx *= -1\n if (node.offsetY > maxDist || node.offsetY < -maxDist) node.vy *= -1\n\n // Pulse size\n node.radius += Math.sin(node.t * 2) * 0.1\n })\n\n // --- 3. Manage Glitch Zones ---\n // Remove dead glitches\n this.glitchZones = this.glitchZones.filter((g) => g.life > 0)\n this.glitchZones.forEach((g) => g.life--)\n\n // Randomly spawn new glitches\n if (Math.random() < 0.03) {\n // 3% chance per frame\n const spread = 80\n\n // Snap random positions to exact grid points to ensure clean lines\n const snap = (v: number) =>\n Math.round((v - GAP / 2) / GAP) * GAP + GAP / 2\n\n const rawCx = this.x + (Math.random() - 0.5) * spread\n const rawCy = this.y + (Math.random() - 0.5) * spread\n\n const cx = snap(rawCx)\n const cy = snap(rawCy)\n\n const type = Math.random() > 0.6 ? \"line\" : \"dot\"\n\n if (type === \"line\") {\n const isVert = Math.random() > 0.5\n // Medium length: 40-120px\n const len = 40 + Math.random() * 80\n\n // Thickness is essentially zero (just a sliver) centered on the grid line\n // to guarantee we only pick up exactly one row/column of dots\n const thickness = 2\n\n this.glitchZones.push({\n x: isVert ? cx - thickness / 2 : cx - len / 2,\n y: isVert ? cy - len / 2 : cy - thickness / 2,\n w: isVert ? thickness : len,\n h: isVert ? len : thickness,\n life: 8 + Math.random() * 12,\n })\n } else {\n // Single dot\n // Box just large enough to catch one grid point\n const size = 4\n\n this.glitchZones.push({\n x: cx - size / 2,\n y: cy - size / 2,\n w: size,\n h: size,\n life: 6 + Math.random() * 10,\n })\n }\n }\n }\n}\n\nclass TrailBlob {\n x: number\n y: number\n opacity: number\n decay: number\n nodes: Node[]\n maxReach: number = 60\n\n constructor(x: number, y: number) {\n this.x = x\n this.y = y\n this.opacity = 0.8\n this.decay = 0.03\n\n this.nodes = []\n const count = 2\n for (let i = 0; i < count; i++) {\n this.nodes.push({\n offsetX: (Math.random() - 0.5) * 10,\n offsetY: (Math.random() - 0.5) * 10,\n vx: (Math.random() - 0.5) * 1,\n vy: (Math.random() - 0.5) * 1,\n radius: 5 + Math.random() * 10,\n t: 0,\n })\n }\n }\n\n update() {\n this.opacity -= this.decay\n this.nodes.forEach((node) => {\n node.offsetX += node.vx\n node.offsetY += node.vy\n node.radius *= 0.95\n })\n }\n}\n\ninterface GeometricFluidGridProps {\n variant?: \"animated\" | \"static\"\n}\n\nconst GeometricFluidGrid: React.FC<GeometricFluidGridProps> = ({\n variant = \"animated\",\n}) => {\n const canvasRef = useRef<HTMLCanvasElement>(null)\n\n useEffect(() => {\n const canvas = canvasRef.current\n if (!canvas) return\n\n const ctx = canvas.getContext(\"2d\")\n if (!ctx) return\n\n let animationFrameId: number\n let orbs: AnchoredBlob[] = []\n let trail: TrailBlob[] = []\n let mouse: MouseState = { x: -1000, y: -1000, lastX: -1000, lastY: -1000 }\n\n const initWorld = () => {\n orbs = []\n const w = canvas.width\n const h = canvas.height\n\n // 1. Top Right\n orbs.push(\n new AnchoredBlob({\n x: w - w * 0.15,\n y: h * 0.15,\n })\n )\n\n // 2. ~40% from top and ~40% from left\n orbs.push(\n new AnchoredBlob({\n x: w * 0.4,\n y: h * 0.4,\n })\n )\n\n // 3. Bottom Left\n orbs.push(\n new AnchoredBlob({\n x: w * 0.05 + 50,\n y: h - h * 0.15,\n })\n )\n\n // 4. Bottom Right\n orbs.push(\n new AnchoredBlob({\n x: w - w * 0.05 - 50,\n y: h - h * 0.05 - 50,\n })\n )\n }\n\n const resize = () => {\n const rect = canvas.getBoundingClientRect()\n canvas.width = rect.width\n canvas.height = rect.height\n initWorld()\n }\n\n const handleMouseMove = (e: MouseEvent) => {\n const rect = canvas.getBoundingClientRect()\n mouse.x = e.clientX - rect.left\n mouse.y = e.clientY - rect.top\n\n if (mouse.lastX === -1000) {\n mouse.lastX = mouse.x\n mouse.lastY = mouse.y\n }\n\n const dx = mouse.x - mouse.lastX\n const dy = mouse.y - mouse.lastY\n const dist = Math.sqrt(dx * dx + dy * dy)\n\n if (dist > 20) {\n trail.push(new TrailBlob(mouse.x, mouse.y))\n mouse.lastX = mouse.x\n mouse.lastY = mouse.y\n }\n }\n\n const handleResize = () => {\n resize()\n }\n\n const draw = () => {\n const w = canvas.width\n const h = canvas.height\n\n // Clear Screen\n ctx.fillStyle = \"#050505\"\n ctx.fillRect(0, 0, w, h)\n\n // Static variant: just render uniform dots\n if (variant === \"static\") {\n for (let x = GAP / 2; x < w; x += GAP) {\n for (let y = GAP / 2; y < h; y += GAP) {\n ctx.fillStyle = \"rgba(255, 255, 255, 0.03)\"\n ctx.fillRect(x - 0.5, y - 0.5, 1, 1)\n }\n }\n return // No animation loop for static variant\n }\n\n // Animated variant: update and render with animations\n // Update Logic\n orbs.forEach((orb) => orb.update())\n for (let i = trail.length - 1; i >= 0; i--) {\n trail[i].update()\n if (trail[i].opacity <= 0) trail.splice(i, 1)\n }\n\n const renderList = [...orbs, ...trail]\n\n // Collect all glitch zones for easier checking inside the loop\n // We flat map them to a simple array to iterate quickly\n const allGlitches: GlitchZone[] = []\n orbs.forEach((o) => allGlitches.push(...o.glitchZones))\n\n for (let x = GAP / 2; x < w; x += GAP) {\n for (let y = GAP / 2; y < h; y += GAP) {\n // --- GLITCH CHECK ---\n // Check if this specific grid dot is inside a glitch zone\n let isGlitching = false\n for (const g of allGlitches) {\n // Simple AABB check\n if (x >= g.x && x <= g.x + g.w && y >= g.y && y <= g.y + g.h) {\n isGlitching = true\n break\n }\n }\n\n if (isGlitching) {\n // Glitched Dot: Bright\n // We use the grid itself to manifest the glitch\n ctx.fillStyle = \"rgba(182, 243, 191, 0.95)\"\n\n // Randomly skip some dots in the glitch line for a \"broken\" look\n if (Math.random() > 0.1) {\n const size = Math.random() > 0.5 ? MAX_SIZE * 0.7 : BASE_SIZE * 2\n ctx.beginPath()\n ctx.arc(x, y, size / 2, 0, Math.PI * 2)\n ctx.fill()\n }\n continue // Skip standard influence calculation for this dot\n }\n\n // --- STANDARD INFLUENCE CHECK ---\n let totalInfluence = 0\n\n // Optimization: Is near blob?\n let nearby = false\n for (const entity of renderList) {\n if (\n Math.abs(x - entity.x) < entity.maxReach &&\n Math.abs(y - entity.y) < entity.maxReach\n ) {\n nearby = true\n break\n }\n }\n\n if (!nearby) {\n // Passive Background Dot\n ctx.fillStyle = \"rgba(255, 255, 255, 0.03)\"\n ctx.fillRect(x - 0.5, y - 0.5, 1, 1)\n continue\n }\n\n // Calculate Influence\n for (const entity of renderList) {\n const dx = x - entity.x\n const dy = y - entity.y\n\n if (\n Math.abs(dx) > entity.maxReach ||\n Math.abs(dy) > entity.maxReach\n )\n continue\n\n let localInf = 0\n for (const node of entity.nodes) {\n const nx = dx - node.offsetX\n const ny = dy - node.offsetY\n const dist = Math.sqrt(nx * nx + ny * ny)\n localInf += getFalloff(dist, node.radius)\n }\n if (localInf > 1) localInf = 1\n totalInfluence += localInf * entity.opacity\n }\n\n if (totalInfluence > 1) totalInfluence = 1\n\n // Draw Cell\n if (totalInfluence > 0.01) {\n // Gradient: White (Edge) to Green (#B6F3BF - Center)\n const edgeR = 255,\n centerR = 182\n const edgeG = 255,\n centerG = 243\n const edgeB = 255,\n centerB = 191\n\n // Interpolate from White (0 influence) to Green (1 influence)\n const r = Math.floor(edgeR + (centerR - edgeR) * totalInfluence)\n const g = Math.floor(edgeG + (centerG - edgeG) * totalInfluence)\n const b = Math.floor(edgeB + (centerB - edgeB) * totalInfluence)\n\n const alpha = totalInfluence * 0.5\n const size = BASE_SIZE + totalInfluence * (MAX_SIZE - BASE_SIZE)\n\n ctx.fillStyle = `rgba(${r}, ${g}, ${b}, ${alpha})`\n ctx.beginPath()\n ctx.arc(x, y, size / 2, 0, Math.PI * 2)\n ctx.fill()\n } else {\n ctx.fillStyle = \"rgba(255, 255, 255, 0.03)\"\n ctx.fillRect(x - 0.5, y - 0.5, 1, 1)\n }\n }\n }\n\n animationFrameId = requestAnimationFrame(draw)\n }\n\n window.addEventListener(\"resize\", handleResize)\n if (variant === \"animated\") {\n window.addEventListener(\"mousemove\", handleMouseMove)\n }\n\n resize()\n draw()\n\n return () => {\n window.removeEventListener(\"resize\", handleResize)\n if (variant === \"animated\") {\n window.removeEventListener(\"mousemove\", handleMouseMove)\n }\n cancelAnimationFrame(animationFrameId)\n }\n }, [variant])\n\n return (\n <canvas\n ref={canvasRef}\n className=\"fixed inset-0 -z-10 w-full h-full pointer-events-none\"\n />\n )\n}\n\nexport default GeometricFluidGrid\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
|
|
2
|
+
var _chunkB7XXLTYNjs = require('./chunk-B7XXLTYN.js');var _chunk7SOZ6MOVjs = require('./chunk-7SOZ6MOV.js');var _chunk752ERCMUjs = require('./chunk-752ERCMU.js');var _chunk5L5DM2X5js = require('./chunk-5L5DM2X5.js');var _chunkQKOZTOYUjs = require('./chunk-QKOZTOYU.js');var _chunkALULX4FPjs = require('./chunk-ALULX4FP.js');var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _react = require('react'); var t = _interopRequireWildcard(_react);var _reactslot = require('@radix-ui/react-slot');var _classvarianceauthority = require('class-variance-authority');var _lucidereact = require('lucide-react');var _jsxruntime = require('react/jsx-runtime');var Q="sidebar_state",Z=3600*24*7,ee="16rem",V="23rem",ae="4.625rem",te="b",j=t.createContext(null);function y(){let e=t.useContext(j);if(!e)throw new Error("useSidebar must be used within a SidebarProvider.");return e}var re=t.forwardRef(({defaultOpen:e=!0,open:a,onOpenChange:r,className:i,style:s,children:d,...b},l)=>{let[v,f]=t.useState(!1),[u,h]=t.useState(e),[x,S]=t.useState(!1),[R,C]=t.useState(e),m=_nullishCoalesce(a, () => (R)),N=t.useCallback(c=>{let g=typeof c=="function"?c(m):c;r?r(g):C(g),document.cookie=`${Q}=${g}; path=/; max-age=${Z}`},[r,m]),M=t.useCallback(()=>{N(c=>!c)},[N]),I=t.useCallback(()=>{f(c=>!c)},[f]);t.useEffect(()=>{let c=g=>{g.key===te&&(g.metaKey||g.ctrlKey)&&(g.preventDefault(),M())};return window.addEventListener("keydown",c),()=>window.removeEventListener("keydown",c)},[M]);let L=m?"expanded":"collapsed",U=t.useMemo(()=>({state:L,isOpen:u,setOpen:N,openMobile:v,setOpenMobile:f,toggleSidebar:M,toggleMobileSidebar:I,setIsFullyOpen:h,isAnimating:x,setIsAnimating:S}),[L,u,N,v,f,M,I,h,x,S]);return _jsxruntime.jsx.call(void 0, j.Provider,{value:U,children:_jsxruntime.jsx.call(void 0, _chunkB7XXLTYNjs.a,{delayDuration:0,children:_jsxruntime.jsx.call(void 0, "div",{style:{"--sidebar-width":ee,"--sidebar-width-icon":ae,...s},className:_chunkFUYXCJOQjs.a.call(void 0, "group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",i),ref:l,...b,children:d})})})});re.displayName="SidebarProvider";var oe=t.forwardRef(({side:e="left",variant:a="sidebar",collapsible:r="offcanvas",className:i,children:s,...d},b)=>{let{state:l,openMobile:v,setOpenMobile:f,setIsFullyOpen:u,setIsAnimating:h}=y(),x=t.useRef(null),S=t.useRef(!0);return t.useEffect(()=>{let R=x.current;if(!R)return;if(S.current){S.current=!1,u(l==="expanded");return}h(!0);let C=m=>{m.target===R&&(m.propertyName==="left"||m.propertyName==="right"||m.propertyName==="width")&&(u(l==="expanded"),h(!1))};return R.addEventListener("transitionend",C),()=>R.removeEventListener("transitionend",C)},[l,u,h]),r==="none"?_jsxruntime.jsx.call(void 0, "aside",{className:_chunkFUYXCJOQjs.a.call(void 0, "flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",i),ref:b,...d,children:s}):_jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, _chunk752ERCMUjs.a,{open:v,onOpenChange:f,children:_jsxruntime.jsxs.call(void 0, _chunk752ERCMUjs.f,{"data-sidebar":"sidebar","data-mobile":"true",className:"md:hidden bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{width:V,maxWidth:V},side:e,children:[_jsxruntime.jsxs.call(void 0, _chunk752ERCMUjs.g,{className:"sr-only",children:[_jsxruntime.jsx.call(void 0, _chunk752ERCMUjs.i,{children:"Sidebar"}),_jsxruntime.jsx.call(void 0, _chunk752ERCMUjs.j,{children:"Displays the mobile sidebar."})]}),_jsxruntime.jsx.call(void 0, "div",{className:"flex h-full w-full flex-col",children:s})]})}),_jsxruntime.jsxs.call(void 0, "aside",{ref:b,className:"group peer hidden text-sidebar-foreground md:block","data-state":l,"data-collapsible":l==="collapsed"?r:"","data-variant":a,"data-side":e,children:[_jsxruntime.jsx.call(void 0, "div",{className:_chunkFUYXCJOQjs.a.call(void 0, "relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180",a==="floating"||a==="inset"?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),_jsxruntime.jsx.call(void 0, "div",{ref:x,className:_chunkFUYXCJOQjs.a.call(void 0, "fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",e==="left"?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",a==="floating"||a==="inset"?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)",i),...d,children:_jsxruntime.jsx.call(void 0, "div",{"data-sidebar":"sidebar",className:"flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow",children:_jsxruntime.jsx.call(void 0, "div",{className:"m-2.5 rounded-2xl border bg-sidebar border-sidebar-border h-full",children:s})})})]})]})});oe.displayName="Sidebar";var W=t.forwardRef(({className:e,onClick:a,...r},i)=>{let{toggleSidebar:s,toggleMobileSidebar:d,openMobile:b}=y();return _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsxs.call(void 0, _chunkQKOZTOYUjs.b,{ref:i,"data-sidebar":"trigger",variant:"ghost",size:"icon",className:_chunkFUYXCJOQjs.a.call(void 0, "md:hidden bg-transparent hover:bg-transparent",e),onClick:l=>{_optionalChain([a, 'optionalCall', _2 => _2(l)]),d()},...r,children:[b?_jsxruntime.jsx.call(void 0, "span",{className:_chunkFUYXCJOQjs.a.call(void 0, _chunkQKOZTOYUjs.a.call(void 0, {variant:"secondary",size:"icon"})),children:_jsxruntime.jsx.call(void 0, _lucidereact.X,{size:16})}):_jsxruntime.jsx.call(void 0, "span",{className:_chunkFUYXCJOQjs.a.call(void 0, _chunkQKOZTOYUjs.a.call(void 0, {variant:"outline",size:"icon"})),children:_jsxruntime.jsx.call(void 0, _lucidereact.Menu,{size:16})}),_jsxruntime.jsx.call(void 0, "span",{className:"sr-only",children:"Toggle Sidebar"})]}),_jsxruntime.jsxs.call(void 0, _chunkQKOZTOYUjs.b,{ref:i,"data-sidebar":"trigger",variant:"ghost",size:"icon",className:_chunkFUYXCJOQjs.a.call(void 0, "hidden md:flex h-7 w-7 bg-transparent hover:bg-transparent",e),onClick:l=>{_optionalChain([a, 'optionalCall', _3 => _3(l)]),s()},...r,children:[_jsxruntime.jsx.call(void 0, "span",{className:"rounded-full hover:bg-secondary p-2",children:_jsxruntime.jsx.call(void 0, _lucidereact.PanelLeft,{size:16})}),_jsxruntime.jsx.call(void 0, "span",{className:"sr-only",children:"Toggle Sidebar"})]})]})});W.displayName="SidebarTrigger";var ne=t.forwardRef(({className:e,...a},r)=>{let{toggleSidebar:i}=y();return _jsxruntime.jsx.call(void 0, "button",{ref:r,"data-sidebar":"rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:i,title:"Toggle Sidebar",className:_chunkFUYXCJOQjs.a.call(void 0, "absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex","in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize","group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",e),...a})});ne.displayName="SidebarRail";var ie=t.memo(t.forwardRef(({className:e,...a},r)=>_jsxruntime.jsx.call(void 0, "main",{ref:r,className:_chunkFUYXCJOQjs.a.call(void 0, "relative flex w-full flex-1 flex-col","md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow",e),...a})));ie.displayName="SidebarInset";var se=t.forwardRef(({className:e,...a},r)=>_jsxruntime.jsx.call(void 0, _chunkALULX4FPjs.a,{ref:r,"data-sidebar":"input",className:_chunkFUYXCJOQjs.a.call(void 0, "h-8 w-full bg-sidebar shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring",e),...a}));se.displayName="SidebarInput";var de=t.forwardRef(({className:e,showTrigger:a=!1,children:r,...i},s)=>{let{state:d}=y();return _jsxruntime.jsxs.call(void 0, "div",{ref:s,"data-sidebar":"header",className:_chunkFUYXCJOQjs.a.call(void 0, "flex w-full gap-2 p-2",d==="collapsed"?"justify-center items-center":"justify-between items-start",e),...i,children:[d!=="collapsed"&&_jsxruntime.jsx.call(void 0, "div",{className:"transition-all duration-200 w-full overflow-hidden",children:_jsxruntime.jsx.call(void 0, "div",{className:"whitespace-nowrap",children:r})}),a&&_jsxruntime.jsx.call(void 0, W,{})]})});de.displayName="SidebarHeader";var le=t.forwardRef(({className:e,...a},r)=>_jsxruntime.jsx.call(void 0, "div",{ref:r,"data-sidebar":"footer",className:_chunkFUYXCJOQjs.a.call(void 0, "flex flex-col gap-2 p-2",e),...a}));le.displayName="SidebarFooter";var ce=t.forwardRef(({className:e,...a},r)=>_jsxruntime.jsx.call(void 0, _chunk7SOZ6MOVjs.a,{ref:r,"data-sidebar":"separator",className:_chunkFUYXCJOQjs.a.call(void 0, "mx-2 w-auto bg-border",e),...a}));ce.displayName="SidebarSeparator";var pe=t.forwardRef(({className:e,...a},r)=>_jsxruntime.jsx.call(void 0, "div",{ref:r,"data-sidebar":"content",className:_chunkFUYXCJOQjs.a.call(void 0, "flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden p-2",e),...a}));pe.displayName="SidebarContent";var be=t.forwardRef(({className:e,...a},r)=>_jsxruntime.jsx.call(void 0, "div",{ref:r,"data-sidebar":"group",className:_chunkFUYXCJOQjs.a.call(void 0, "relative flex w-full min-w-0 flex-col","group-data-[collapsible=icon]:p-0",e),...a}));be.displayName="SidebarGroup";var ue=t.forwardRef(({className:e,asChild:a=!1,...r},i)=>_jsxruntime.jsx.call(void 0, a?_reactslot.Slot:"div",{ref:i,"data-sidebar":"group-label",className:_chunkFUYXCJOQjs.a.call(void 0, "flex h-8 shrink-0 items-center rounded-md text-xs font-medium text-secondary-text outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",e),...r}));ue.displayName="SidebarGroupLabel";var fe=t.forwardRef(({className:e,asChild:a=!1,...r},i)=>_jsxruntime.jsx.call(void 0, a?_reactslot.Slot:"button",{ref:i,"data-sidebar":"group-action",className:_chunkFUYXCJOQjs.a.call(void 0, "absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 after:md:hidden","group-data-[collapsible=icon]:hidden",e),...r}));fe.displayName="SidebarGroupAction";var me=t.forwardRef(({className:e,...a},r)=>_jsxruntime.jsx.call(void 0, "div",{ref:r,"data-sidebar":"group-content",className:_chunkFUYXCJOQjs.a.call(void 0, "w-full text-sm",e),...a}));me.displayName="SidebarGroupContent";var ge=t.forwardRef(({className:e,...a},r)=>_jsxruntime.jsx.call(void 0, "ul",{ref:r,"data-sidebar":"menu",className:_chunkFUYXCJOQjs.a.call(void 0, "flex w-full min-w-0 flex-col gap-1",e),...a}));ge.displayName="SidebarMenu";var ve=t.forwardRef(({className:e,...a},r)=>_jsxruntime.jsx.call(void 0, "li",{ref:r,"data-sidebar":"menu-item",className:_chunkFUYXCJOQjs.a.call(void 0, "group/menu-item relative",e),...a}));ve.displayName="SidebarMenuItem";var he=_classvarianceauthority.cva.call(void 0, "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent/20 hover:text-sidebar-accent-foreground",outline:"bg-sidebar shadow-[0_0_0_1px_hsl(var(--border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--base-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:!p-0"}},defaultVariants:{variant:"default",size:"default"}}),Re= exports.r =t.forwardRef(({asChild:e=!1,isActive:a=!1,variant:r="default",size:i="default",tooltip:s,className:d,...b},l)=>{let v=e?_reactslot.Slot:"button",{state:f}=y(),u=_jsxruntime.jsx.call(void 0, v,{ref:l,"data-sidebar":"menu-button","data-size":i,"data-active":a,className:_chunkFUYXCJOQjs.a.call(void 0, he({variant:r,size:i}),d),...b});return s?(typeof s=="string"&&(s={children:s}),_jsxruntime.jsxs.call(void 0, _chunkB7XXLTYNjs.b,{children:[_jsxruntime.jsx.call(void 0, _chunkB7XXLTYNjs.c,{asChild:!0,children:u}),_jsxruntime.jsx.call(void 0, _chunkB7XXLTYNjs.d,{side:"right",align:"center",hidden:f!=="collapsed",...s})]})):u});Re.displayName="SidebarMenuButton";var xe=t.forwardRef(({className:e,asChild:a=!1,showOnHover:r=!1,...i},s)=>_jsxruntime.jsx.call(void 0, a?_reactslot.Slot:"button",{ref:s,"data-sidebar":"menu-action",className:_chunkFUYXCJOQjs.a.call(void 0, "absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 after:md:hidden","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",r&&"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-base-accent-foreground md:opacity-0",e),...i}));xe.displayName="SidebarMenuAction";var Se=t.forwardRef(({className:e,...a},r)=>_jsxruntime.jsx.call(void 0, "div",{ref:r,"data-sidebar":"menu-badge",className:_chunkFUYXCJOQjs.a.call(void 0, "pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground","peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",e),...a}));Se.displayName="SidebarMenuBadge";var we=t.forwardRef(({className:e,showIcon:a=!1,...r},i)=>{let s=t.useMemo(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return _jsxruntime.jsxs.call(void 0, "div",{ref:i,"data-sidebar":"menu-skeleton",className:_chunkFUYXCJOQjs.a.call(void 0, "flex h-8 items-center gap-2 rounded-md px-2",e),...r,children:[a&&_jsxruntime.jsx.call(void 0, _chunk5L5DM2X5js.a,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}),_jsxruntime.jsx.call(void 0, _chunk5L5DM2X5js.a,{className:"h-4 max-w-[--skeleton-width] flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":s}})]})});we.displayName="SidebarMenuSkeleton";var ye=t.forwardRef(({className:e,...a},r)=>_jsxruntime.jsx.call(void 0, "ul",{ref:r,"data-sidebar":"menu-sub",className:_chunkFUYXCJOQjs.a.call(void 0, "mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5","group-data-[collapsible=icon]:hidden",e),...a}));ye.displayName="SidebarMenuSub";var Ce=t.forwardRef(({...e},a)=>_jsxruntime.jsx.call(void 0, "li",{ref:a,...e}));Ce.displayName="SidebarMenuSubItem";var Ne=t.forwardRef(({asChild:e=!1,size:a="md",isActive:r,className:i,...s},d)=>_jsxruntime.jsx.call(void 0, e?_reactslot.Slot:"a",{ref:d,"data-sidebar":"menu-sub-button","data-size":a,"data-active":r,className:_chunkFUYXCJOQjs.a.call(void 0, "flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground","data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",a==="sm"&&"text-xs",a==="md"&&"text-sm","group-data-[collapsible=icon]:hidden",i),...s}));Ne.displayName="SidebarMenuSubButton";exports.a = y; exports.b = re; exports.c = oe; exports.d = W; exports.e = ne; exports.f = ie; exports.g = se; exports.h = de; exports.i = le; exports.j = ce; exports.k = pe; exports.l = be; exports.m = ue; exports.n = fe; exports.o = me; exports.p = ge; exports.q = ve; exports.r = Re; exports.s = xe; exports.t = Se; exports.u = we; exports.v = ye; exports.w = Ce; exports.x = Ne;
|
|
3
|
+
//# sourceMappingURL=chunk-W33YK5OA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-W33YK5OA.js","../src/components/sidebar.tsx"],"names":["SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","useSidebar","context","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","ref","openMobile","setOpenMobile","isFullyOpen","setIsFullyOpen","isAnimating","setIsAnimating","_open","_setOpen","open","setOpen","value","openState"],"mappings":"AAAA,+8BAAY;AACZ,sDAA4D,sDAAwC,sDAAoE,sDAAwC,sDAA+C,sDAAwC,sDAAwC,uECCxT,iDACF,kEACkB,2CACJ,+CAmJzB,IA9HJA,CAAAA,CAAsB,eAAA,CACtBC,CAAAA,CAAyB,IAAA,CAAU,EAAA,CAAK,CAAA,CACxCC,EAAAA,CAAgB,OAAA,CAChBC,CAAAA,CAAuB,OAAA,CACvBC,EAAAA,CAAqB,UAAA,CACrBC,EAAAA,CAA4B,GAAA,CAe5BC,CAAAA,CAAuB,CAAA,CAAA,aAAA,CAA0C,IAAI,CAAA,CAE3E,SAASC,CAAAA,CAAAA,CAAa,CACpB,IAAMC,CAAAA,CAAgB,CAAA,CAAA,UAAA,CAAWF,CAAc,CAAA,CAC/C,EAAA,CAAI,CAACE,CAAAA,CACH,MAAM,IAAI,KAAA,CAAM,mDAAmD,CAAA,CAGrE,OAAOA,CACT,CAEA,IAAMC,EAAAA,CAAwB,CAAA,CAAA,UAAA,CAQ5B,CACE,CACE,WAAA,CAAAC,CAAAA,CAAc,CAAA,CAAA,CACd,IAAA,CAAMC,CAAAA,CACN,YAAA,CAAcC,CAAAA,CACd,SAAA,CAAAC,CAAAA,CACA,KAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CACAC,CAAAA,CAAAA,EACG,CACH,GAAM,CAACC,CAAAA,CAAYC,CAAa,CAAA,CAAU,CAAA,CAAA,QAAA,CAAS,CAAA,CAAK,CAAA,CAClD,CAACC,CAAAA,CAAaC,CAAc,CAAA,CAAU,CAAA,CAAA,QAAA,CAASX,CAAW,CAAA,CAC1D,CAACY,CAAAA,CAAaC,CAAc,CAAA,CAAU,CAAA,CAAA,QAAA,CAAS,CAAA,CAAK,CAAA,CAEpD,CAACC,CAAAA,CAAOC,CAAQ,CAAA,CAAU,CAAA,CAAA,QAAA,CAASf,CAAW,CAAA,CAC9CgB,CAAAA,kBAAOf,CAAAA,SAAYa,GAAAA,CACnBG,CAAAA,CAAgB,CAAA,CAAA,WAAA,CACnBC,CAAAA,EAAmD,CAClD,IAAMC,CAAAA,CAAY,OAAOD,CAAAA,EAAU,UAAA,CAAaA,CAAAA,CAAMF,CAAI,CAAA,CAAIE,CAAAA,CAC1DhB,CAAAA,CACFA,CAAAA,CAAYiB,CAAS,CAAA,CAErBJ,CAAAA,CAASI,CAAS,CAAA,CAGpB,QAAA,CAAS,MAAA,CAAS,CAAA,EAAA","file":"/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-W33YK5OA.js","sourcesContent":[null,"\"use client\"\n\nimport * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { PanelLeft, X, Menu } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button, buttonVariants } from \"@/components/button\"\nimport { Input } from \"@/components/input\"\nimport { Separator } from \"@/components/separator\"\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"@/components/sheet\"\nimport { Skeleton } from \"@/components/skeleton\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/tooltip\"\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\"\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nconst SIDEBAR_WIDTH = \"16rem\"\nconst SIDEBAR_WIDTH_MOBILE = \"23rem\"\nconst SIDEBAR_WIDTH_ICON = \"4.625rem\"\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\"\n\ntype SidebarContextProps = {\n state: \"expanded\" | \"collapsed\"\n isOpen: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n toggleSidebar: () => void\n toggleMobileSidebar: () => void\n setIsFullyOpen: (open: boolean) => void\n isAnimating: boolean\n setIsAnimating: (animating: boolean) => void\n}\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null)\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext)\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\")\n }\n\n return context\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n }\n>(\n (\n {\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n },\n ref\n ) => {\n const [openMobile, setOpenMobile] = React.useState(false)\n const [isFullyOpen, setIsFullyOpen] = React.useState(defaultOpen)\n const [isAnimating, setIsAnimating] = React.useState(false)\n\n const [_open, _setOpen] = React.useState(defaultOpen)\n const open = openProp ?? _open\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open]\n )\n\n const toggleSidebar = React.useCallback(() => {\n setOpen((open) => !open)\n }, [setOpen])\n\n const toggleMobileSidebar = React.useCallback(() => {\n setOpenMobile((open) => !open)\n }, [setOpenMobile])\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault()\n toggleSidebar()\n }\n }\n\n window.addEventListener(\"keydown\", handleKeyDown)\n return () => window.removeEventListener(\"keydown\", handleKeyDown)\n }, [toggleSidebar])\n\n const state = open ? \"expanded\" : \"collapsed\"\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n isOpen: isFullyOpen,\n setOpen,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n toggleMobileSidebar,\n setIsFullyOpen,\n isAnimating,\n setIsAnimating,\n }),\n [\n state,\n isFullyOpen,\n setOpen,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n toggleMobileSidebar,\n setIsFullyOpen,\n isAnimating,\n setIsAnimating,\n ]\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n }\n)\nSidebarProvider.displayName = \"SidebarProvider\"\n\nconst Sidebar = React.forwardRef<\n HTMLElement,\n React.ComponentProps<\"aside\"> & {\n side?: \"left\" | \"right\"\n variant?: \"sidebar\" | \"floating\" | \"inset\"\n collapsible?: \"offcanvas\" | \"icon\" | \"none\"\n }\n>(\n (\n {\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n ...props\n },\n ref\n ) => {\n const { state, openMobile, setOpenMobile, setIsFullyOpen, setIsAnimating } =\n useSidebar()\n const sidebarRef = React.useRef<HTMLDivElement>(null)\n const isFirstRenderRef = React.useRef(true)\n\n // Track when the sidebar animation completes\n React.useEffect(() => {\n const sidebar = sidebarRef.current\n if (!sidebar) return\n\n // On first render, set isFullyOpen immediately without waiting for animation\n if (isFirstRenderRef.current) {\n isFirstRenderRef.current = false\n setIsFullyOpen(state === \"expanded\")\n return\n }\n\n // Mark as animating when state changes\n setIsAnimating(true)\n\n const handleTransitionEnd = (event: TransitionEvent) => {\n // Only respond to transitions on the sidebar itself, not children\n if (event.target !== sidebar) return\n\n // Check if we're transitioning width, left, or right properties\n if (\n event.propertyName === \"left\" ||\n event.propertyName === \"right\" ||\n event.propertyName === \"width\"\n ) {\n setIsFullyOpen(state === \"expanded\")\n setIsAnimating(false)\n }\n }\n\n sidebar.addEventListener(\"transitionend\", handleTransitionEnd)\n return () =>\n sidebar.removeEventListener(\"transitionend\", handleTransitionEnd)\n }, [state, setIsFullyOpen, setIsAnimating])\n\n if (collapsible === \"none\") {\n return (\n <aside\n className={cn(\n \"flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </aside>\n )\n }\n\n return (\n <>\n {/* Mobile Sheet - visible only on mobile (< md) */}\n <Sheet open={openMobile} onOpenChange={setOpenMobile}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"md:hidden bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n width: SIDEBAR_WIDTH_MOBILE,\n maxWidth: SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n\n {/* Desktop Sidebar - visible only on desktop (md+) */}\n <aside\n ref={ref}\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n >\n <div\n className={cn(\n \"relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\"\n )}\n />\n <div\n ref={sidebarRef}\n className={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\n >\n <div className=\"m-2.5 rounded-2xl border bg-sidebar border-sidebar-border h-full\">\n {children}\n </div>\n </div>\n </div>\n </aside>\n </>\n )\n }\n)\nSidebar.displayName = \"Sidebar\"\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentProps<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar, toggleMobileSidebar, openMobile } = useSidebar()\n\n return (\n <>\n {/* Mobile trigger - visible only on mobile (< md) */}\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\n \"md:hidden bg-transparent hover:bg-transparent\",\n className\n )}\n onClick={(event) => {\n onClick?.(event)\n toggleMobileSidebar()\n }}\n {...props}\n >\n {openMobile ? (\n <span\n className={cn(\n buttonVariants({ variant: \"secondary\", size: \"icon\" })\n )}\n >\n <X size={16} />\n </span>\n ) : (\n <span\n className={cn(buttonVariants({ variant: \"outline\", size: \"icon\" }))}\n >\n <Menu size={16} />\n </span>\n )}\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n\n {/* Desktop trigger - visible only on desktop (md+) */}\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\n \"hidden md:flex h-7 w-7 bg-transparent hover:bg-transparent\",\n className\n )}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <span className=\"rounded-full hover:bg-secondary p-2\">\n <PanelLeft size={16} />\n </span>\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n </>\n )\n})\nSidebarTrigger.displayName = \"SidebarTrigger\"\n\nconst SidebarRail = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\">\n>(({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarRail.displayName = \"SidebarRail\"\n\nconst SidebarInset = React.memo(\n React.forwardRef<HTMLDivElement, React.ComponentProps<\"main\">>(\n ({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n \"relative flex w-full flex-1 flex-col\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\",\n className\n )}\n {...props}\n />\n )\n }\n )\n)\nSidebarInset.displayName = \"SidebarInset\"\n\nconst SidebarInput = React.forwardRef<\n React.ElementRef<typeof Input>,\n React.ComponentProps<typeof Input>\n>(({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n \"h-8 w-full bg-sidebar shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarInput.displayName = \"SidebarInput\"\n\nconst SidebarHeader = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n showTrigger?: boolean\n }\n>(({ className, showTrigger = false, children, ...props }, ref) => {\n const { state } = useSidebar()\n\n return (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn(\n \"flex w-full gap-2 p-2\",\n state === \"collapsed\"\n ? \"justify-center items-center\"\n : \"justify-between items-start\",\n className\n )}\n {...props}\n >\n {state !== \"collapsed\" && (\n <div className=\"transition-all duration-200 w-full overflow-hidden\">\n <div className=\"whitespace-nowrap\">{children}</div>\n </div>\n )}\n\n {showTrigger && <SidebarTrigger />}\n </div>\n )\n})\nSidebarHeader.displayName = \"SidebarHeader\"\n\nconst SidebarFooter = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n )\n})\nSidebarFooter.displayName = \"SidebarFooter\"\n\nconst SidebarSeparator = React.forwardRef<\n React.ElementRef<typeof Separator>,\n React.ComponentProps<typeof Separator>\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn(\"mx-2 w-auto bg-border\", className)}\n {...props}\n />\n )\n})\nSidebarSeparator.displayName = \"SidebarSeparator\"\n\nconst SidebarContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden p-2\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarContent.displayName = \"SidebarContent\"\n\nconst SidebarGroup = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn(\n \"relative flex w-full min-w-0 flex-col\",\n \"group-data-[collapsible=icon]:p-0\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroup.displayName = \"SidebarGroup\"\n\nconst SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"div\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n \"flex h-8 shrink-0 items-center rounded-md text-xs font-medium text-secondary-text outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\"\n\nconst SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n \"absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroupAction.displayName = \"SidebarGroupAction\"\n\nconst SidebarGroupContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n))\nSidebarGroupContent.displayName = \"SidebarGroupContent\"\n\nconst SidebarMenu = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n))\nSidebarMenu.displayName = \"SidebarMenu\"\n\nconst SidebarMenuItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n))\nSidebarMenuItem.displayName = \"SidebarMenuItem\"\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"hover:bg-sidebar-accent/20 hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-sidebar shadow-[0_0_0_1px_hsl(var(--border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--base-accent))]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:!p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\"\n const { state } = useSidebar()\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n )\n\n if (!tooltip) {\n return button\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n }\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\"}\n {...tooltip}\n />\n </Tooltip>\n )\n }\n)\nSidebarMenuButton.displayName = \"SidebarMenuButton\"\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean\n showOnHover?: boolean\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n \"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0\",\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-base-accent-foreground md:opacity-0\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarMenuAction.displayName = \"SidebarMenuAction\"\n\nconst SidebarMenuBadge = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n))\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\"\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n showIcon?: boolean\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n }, [])\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-[--skeleton-width] flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n})\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\"\n\nconst SidebarMenuSub = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n))\nSidebarMenuSub.displayName = \"SidebarMenuSub\"\n\nconst SidebarMenuSubItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ ...props }, ref) => <li ref={ref} {...props} />)\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\"\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<\"a\"> & {\n asChild?: boolean\n size?: \"sm\" | \"md\"\n isActive?: boolean\n }\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\"\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n}\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{a as e}from"./chunk-S5TKCF6T.mjs";import*as r from"react";import{jsx as d}from"react/jsx-runtime";var u=r.forwardRef(({className:t,type:o,error:n,...i},s)=>d("input",{type:o,className:e("flex my-2 h-10 w-full rounded-3xl border bg-background hover:bg-secondary px-4 py-2 text-sm text-primary-accent ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",n?"border-destructive-foreground focus-visible:ring-destructive-foreground":"border-border",t),ref:s,...i}));u.displayName="Input";export{u as a};
|
|
3
|
+
//# sourceMappingURL=chunk-XIYQ5UXO.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/input.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n error?: boolean\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, error, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex my-2 h-10 w-full rounded-3xl border bg-background hover:bg-secondary px-4 py-2 text-sm text-primary-accent ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n error\n ? \"border-destructive-foreground focus-visible:ring-destructive-foreground\"\n : \"border-border\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input }\n"],"mappings":";yCAAA,UAAYA,MAAW,QAWjB,cAAAC,MAAA,oBAHN,IAAMC,EAAc,aAClB,CAAC,CAAE,UAAAC,EAAW,KAAAC,EAAM,MAAAC,EAAO,GAAGC,CAAM,EAAGC,IAEnCN,EAAC,SACC,KAAMG,EACN,UAAWI,EACT,+XACAH,EACI,0EACA,gBACJF,CACF,EACA,IAAKI,EACJ,GAAGD,EACN,CAGN,EACAJ,EAAM,YAAc","names":["React","jsx","Input","className","type","error","props","ref","cn"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }"use client";
|
|
2
|
+
var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _react = require('react'); var a = _interopRequireWildcard(_react);var _jsxruntime = require('react/jsx-runtime');var r=a.forwardRef(({className:l,...t},o)=>_jsxruntime.jsx.call(void 0, "label",{ref:o,className:_chunkFUYXCJOQjs.a.call(void 0, "text-sm mb-2 font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",l),...t}));r.displayName="Label";exports.a = r;
|
|
3
|
+
//# sourceMappingURL=chunk-ZF6PO6PJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-ZF6PO6PJ.js","../src/components/label.tsx"],"names":["Label","className","props","ref","jsx","cn"],"mappings":"AAAA,uWAAY;AACZ,sDAAuC,uECChB,+CAOnB,IAFEA,CAAAA,CAAc,CAAA,CAAA,UAAA,CAClB,CAAC,CAAE,SAAA,CAAAC,CAAAA,CAAW,GAAGC,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EACxBC,6BAAAA,OAAC,CAAA,CACC,GAAA,CAAKD,CAAAA,CACL,SAAA,CAAWE,gCAAAA,iGACT,CACAJ,CACF,CAAA,CACC,GAAGC,CAAAA,CACN,CAEJ,CAAA,CACAF,CAAAA,CAAM,WAAA,CAAc,OAAA,CAAA,cAAA","file":"/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-ZF6PO6PJ.js","sourcesContent":[null,"\"use client\"\n\nimport * as React from \"react\"\nimport { cn } from \"@/lib/utils\"\n\nexport interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {}\n\nconst Label = React.forwardRef<HTMLLabelElement, LabelProps>(\n ({ className, ...props }, ref) => (\n <label\n ref={ref}\n className={cn(\n \"text-sm mb-2 font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n className\n )}\n {...props}\n />\n )\n)\nLabel.displayName = \"Label\"\n\nexport { Label }\n"]}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
interface GeometricFluidGridProps {
|
|
4
|
+
variant?: "animated" | "static";
|
|
5
|
+
}
|
|
6
|
+
declare const GeometricFluidGrid: React__default.FC<GeometricFluidGridProps>;
|
|
4
7
|
|
|
5
8
|
export { GeometricFluidGrid as default };
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
interface GeometricFluidGridProps {
|
|
4
|
+
variant?: "animated" | "static";
|
|
5
|
+
}
|
|
6
|
+
declare const GeometricFluidGrid: React__default.FC<GeometricFluidGridProps>;
|
|
4
7
|
|
|
5
8
|
export { GeometricFluidGrid as default };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
|
-
"use client";var
|
|
2
|
+
"use client";var _chunkRWCTSJUMjs = require('../chunk-RWCTSJUM.js');require('../chunk-XYO4VLMF.js');exports.default = _chunkRWCTSJUMjs.a;
|
|
3
3
|
//# sourceMappingURL=GeometricFluidGrid.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
|
-
"use client";var
|
|
2
|
+
"use client";var _chunkBENG4LHZjs = require('../chunk-BENG4LHZ.js');require('../chunk-FUYXCJOQ.js');require('../chunk-XYO4VLMF.js');exports.default = _chunkBENG4LHZjs.a;
|
|
3
3
|
//# sourceMappingURL=TextDecoder.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
"use client";import{a}from"../chunk-
|
|
2
|
+
"use client";import{a}from"../chunk-EMGXHXG7.mjs";import"../chunk-S5TKCF6T.mjs";import"../chunk-KPAOPUY2.mjs";export{a as default};
|
|
3
3
|
//# sourceMappingURL=TextDecoder.mjs.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Creates a mesh-style radial gradient that mimics a 3D sphere.
|
|
6
|
+
* Base color: #F8F8F8
|
|
7
|
+
* Top: Two distinct HSL blobs that occupy roughly the upper 3/4.
|
|
8
|
+
*/
|
|
9
|
+
declare const getSphericalGradient: (seed?: string) => {
|
|
10
|
+
backgroundColor: string;
|
|
11
|
+
backgroundImage: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Generates a unique single color from a seed string.
|
|
15
|
+
* This color is in sync with the spherical gradient - the same seed will produce
|
|
16
|
+
* a color that matches the primary color (color1) of the gradient.
|
|
17
|
+
* Useful for leaderboards, badges, or other UI elements that need a consistent identifier color.
|
|
18
|
+
*
|
|
19
|
+
* @param seed - The seed string (e.g., username, user ID)
|
|
20
|
+
* @returns A single HSL color string (e.g., "hsl(120, 85%, 60%)")
|
|
21
|
+
*/
|
|
22
|
+
declare const getSeedColor: (seed?: string) => string;
|
|
23
|
+
declare const Avatar: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
24
|
+
declare const AvatarImage: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarImageProps & React.RefAttributes<HTMLImageElement>, "ref"> & React.RefAttributes<HTMLImageElement>>;
|
|
25
|
+
interface FallbackProps extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback> {
|
|
26
|
+
seed?: string;
|
|
27
|
+
}
|
|
28
|
+
declare const AvatarFallback: React.ForwardRefExoticComponent<FallbackProps & React.RefAttributes<HTMLSpanElement>>;
|
|
29
|
+
|
|
30
|
+
export { Avatar, AvatarFallback, AvatarImage, getSeedColor, getSphericalGradient };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Creates a mesh-style radial gradient that mimics a 3D sphere.
|
|
6
|
+
* Base color: #F8F8F8
|
|
7
|
+
* Top: Two distinct HSL blobs that occupy roughly the upper 3/4.
|
|
8
|
+
*/
|
|
9
|
+
declare const getSphericalGradient: (seed?: string) => {
|
|
10
|
+
backgroundColor: string;
|
|
11
|
+
backgroundImage: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Generates a unique single color from a seed string.
|
|
15
|
+
* This color is in sync with the spherical gradient - the same seed will produce
|
|
16
|
+
* a color that matches the primary color (color1) of the gradient.
|
|
17
|
+
* Useful for leaderboards, badges, or other UI elements that need a consistent identifier color.
|
|
18
|
+
*
|
|
19
|
+
* @param seed - The seed string (e.g., username, user ID)
|
|
20
|
+
* @returns A single HSL color string (e.g., "hsl(120, 85%, 60%)")
|
|
21
|
+
*/
|
|
22
|
+
declare const getSeedColor: (seed?: string) => string;
|
|
23
|
+
declare const Avatar: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
24
|
+
declare const AvatarImage: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarImageProps & React.RefAttributes<HTMLImageElement>, "ref"> & React.RefAttributes<HTMLImageElement>>;
|
|
25
|
+
interface FallbackProps extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback> {
|
|
26
|
+
seed?: string;
|
|
27
|
+
}
|
|
28
|
+
declare const AvatarFallback: React.ForwardRefExoticComponent<FallbackProps & React.RefAttributes<HTMLSpanElement>>;
|
|
29
|
+
|
|
30
|
+
export { Avatar, AvatarFallback, AvatarImage, getSeedColor, getSphericalGradient };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
|
+
"use client";var _chunk372VUZFEjs = require('../chunk-372VUZFE.js');require('../chunk-FUYXCJOQ.js');require('../chunk-XYO4VLMF.js');exports.Avatar = _chunk372VUZFEjs.c; exports.AvatarFallback = _chunk372VUZFEjs.e; exports.AvatarImage = _chunk372VUZFEjs.d; exports.getSeedColor = _chunk372VUZFEjs.b; exports.getSphericalGradient = _chunk372VUZFEjs.a;
|
|
3
|
+
//# sourceMappingURL=avatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/components/avatar.js"],"names":[],"mappings":"AAAA,qFAAY;AACZ,YAAY,CAAC,uDAA2C,gCAA6B,gCAA6B,yNAAqG","file":"/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/components/avatar.js"}
|