@backbay/glia 0.2.0-alpha.6 → 0.2.0-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/dist/audio/index.js +1145 -5
  2. package/dist/audio/index.js.map +1 -1
  3. package/dist/components/index.js +3187 -10
  4. package/dist/components/index.js.map +1 -1
  5. package/dist/core.js +19714 -12
  6. package/dist/core.js.map +1 -1
  7. package/dist/emotion/index.js +1 -1
  8. package/dist/emotion/index.js.map +1 -1
  9. package/dist/hooks/index.js +941 -6
  10. package/dist/hooks/index.js.map +1 -1
  11. package/dist/index.js +31841 -183
  12. package/dist/index.js.map +1 -1
  13. package/dist/primitives/index.js +21111 -57
  14. package/dist/primitives/index.js.map +1 -1
  15. package/dist/protocol/index.js +360 -2
  16. package/dist/protocol/index.js.map +1 -1
  17. package/dist/speakeasy/index.js +2786 -38
  18. package/dist/speakeasy/index.js.map +1 -1
  19. package/dist/styles.css +1 -1
  20. package/dist/theme/index.js +1150 -3
  21. package/dist/theme/index.js.map +1 -1
  22. package/dist/vision/index.js +370 -2
  23. package/dist/vision/index.js.map +1 -1
  24. package/dist/workspace/index.js +16824 -2
  25. package/dist/workspace/index.js.map +1 -1
  26. package/package.json +16 -10
  27. package/dist/AuroraBackground-AP6ZHVFA.js +0 -6
  28. package/dist/AuroraBackground-AP6ZHVFA.js.map +0 -1
  29. package/dist/BentoGrid-CDARICNM.js +0 -6
  30. package/dist/BentoGrid-CDARICNM.js.map +0 -1
  31. package/dist/CommandPalette-JCWJKRBY.js +0 -6
  32. package/dist/CommandPalette-JCWJKRBY.js.map +0 -1
  33. package/dist/Glass-H4X4ZI4P.js +0 -7
  34. package/dist/Glass-H4X4ZI4P.js.map +0 -1
  35. package/dist/GlitchText-KLQ57PPY.js +0 -6
  36. package/dist/GlitchText-KLQ57PPY.js.map +0 -1
  37. package/dist/GlowButton-VGBPMZO7.js +0 -6
  38. package/dist/GlowButton-VGBPMZO7.js.map +0 -1
  39. package/dist/Graph3D-GO7N2EZQ.js +0 -540
  40. package/dist/Graph3D-GO7N2EZQ.js.map +0 -1
  41. package/dist/HUDProgressRing-N6C5NAEV.js +0 -6
  42. package/dist/HUDProgressRing-N6C5NAEV.js.map +0 -1
  43. package/dist/KPIStat-PBQK27ZB.js +0 -6
  44. package/dist/KPIStat-PBQK27ZB.js.map +0 -1
  45. package/dist/NeonToast-W5F7MU3U.js +0 -6
  46. package/dist/NeonToast-W5F7MU3U.js.map +0 -1
  47. package/dist/ParticleField-WK6CNHWU.js +0 -51
  48. package/dist/ParticleField-WK6CNHWU.js.map +0 -1
  49. package/dist/TextGenerateEffect-EUCEIIUJ.js +0 -6
  50. package/dist/TextGenerateEffect-EUCEIIUJ.js.map +0 -1
  51. package/dist/ThreeDCard-VH5I3SSY.js +0 -6
  52. package/dist/ThreeDCard-VH5I3SSY.js.map +0 -1
  53. package/dist/TypingAnimation-GIWOHPIX.js +0 -6
  54. package/dist/TypingAnimation-GIWOHPIX.js.map +0 -1
  55. package/dist/alert-dialog-QOSYBIIE.js +0 -19
  56. package/dist/alert-dialog-QOSYBIIE.js.map +0 -1
  57. package/dist/avatar-N5R37PCU.js +0 -10
  58. package/dist/avatar-N5R37PCU.js.map +0 -1
  59. package/dist/badge-GTVIIGPY.js +0 -8
  60. package/dist/badge-GTVIIGPY.js.map +0 -1
  61. package/dist/button-D7IMSV2D.js +0 -8
  62. package/dist/button-D7IMSV2D.js.map +0 -1
  63. package/dist/chunk-3CMPQOMY.js +0 -69
  64. package/dist/chunk-3CMPQOMY.js.map +0 -1
  65. package/dist/chunk-3OQT6IYR.js +0 -41
  66. package/dist/chunk-3OQT6IYR.js.map +0 -1
  67. package/dist/chunk-43B2WVLS.js +0 -85
  68. package/dist/chunk-43B2WVLS.js.map +0 -1
  69. package/dist/chunk-4SRFO5W3.js +0 -121
  70. package/dist/chunk-4SRFO5W3.js.map +0 -1
  71. package/dist/chunk-5IZELOOU.js +0 -362
  72. package/dist/chunk-5IZELOOU.js.map +0 -1
  73. package/dist/chunk-6DM4ACSS.js +0 -154
  74. package/dist/chunk-6DM4ACSS.js.map +0 -1
  75. package/dist/chunk-6IGT34PC.js +0 -50
  76. package/dist/chunk-6IGT34PC.js.map +0 -1
  77. package/dist/chunk-6RKBCJHN.js +0 -194
  78. package/dist/chunk-6RKBCJHN.js.map +0 -1
  79. package/dist/chunk-6RX2WGCO.js +0 -108
  80. package/dist/chunk-6RX2WGCO.js.map +0 -1
  81. package/dist/chunk-7K4WZM3U.js +0 -189
  82. package/dist/chunk-7K4WZM3U.js.map +0 -1
  83. package/dist/chunk-7MDBHJPT.js +0 -407
  84. package/dist/chunk-7MDBHJPT.js.map +0 -1
  85. package/dist/chunk-7UQD6ROV.js +0 -9
  86. package/dist/chunk-7UQD6ROV.js.map +0 -1
  87. package/dist/chunk-AFNIVLZP.js +0 -1069
  88. package/dist/chunk-AFNIVLZP.js.map +0 -1
  89. package/dist/chunk-ANWYRO6A.js +0 -407
  90. package/dist/chunk-ANWYRO6A.js.map +0 -1
  91. package/dist/chunk-DIXPOHDO.js +0 -71
  92. package/dist/chunk-DIXPOHDO.js.map +0 -1
  93. package/dist/chunk-DWYMKYPI.js +0 -3
  94. package/dist/chunk-DWYMKYPI.js.map +0 -1
  95. package/dist/chunk-E3NVDCZG.js +0 -280
  96. package/dist/chunk-E3NVDCZG.js.map +0 -1
  97. package/dist/chunk-EBM7YBKL.js +0 -399
  98. package/dist/chunk-EBM7YBKL.js.map +0 -1
  99. package/dist/chunk-EPAM7IWW.js +0 -294
  100. package/dist/chunk-EPAM7IWW.js.map +0 -1
  101. package/dist/chunk-EXQ7GYRS.js +0 -134
  102. package/dist/chunk-EXQ7GYRS.js.map +0 -1
  103. package/dist/chunk-F4QTUZ3C.js +0 -136
  104. package/dist/chunk-F4QTUZ3C.js.map +0 -1
  105. package/dist/chunk-FEW533R2.js +0 -105
  106. package/dist/chunk-FEW533R2.js.map +0 -1
  107. package/dist/chunk-FFZLJKC7.js +0 -270
  108. package/dist/chunk-FFZLJKC7.js.map +0 -1
  109. package/dist/chunk-GEAMOBF7.js +0 -8486
  110. package/dist/chunk-GEAMOBF7.js.map +0 -1
  111. package/dist/chunk-GRTRSCTD.js +0 -74
  112. package/dist/chunk-GRTRSCTD.js.map +0 -1
  113. package/dist/chunk-IKGYOGLK.js +0 -16
  114. package/dist/chunk-IKGYOGLK.js.map +0 -1
  115. package/dist/chunk-IQ7WYWVJ.js +0 -73
  116. package/dist/chunk-IQ7WYWVJ.js.map +0 -1
  117. package/dist/chunk-IXIVWQLF.js +0 -543
  118. package/dist/chunk-IXIVWQLF.js.map +0 -1
  119. package/dist/chunk-JCJU57RC.js +0 -115
  120. package/dist/chunk-JCJU57RC.js.map +0 -1
  121. package/dist/chunk-KORSTBU4.js +0 -117
  122. package/dist/chunk-KORSTBU4.js.map +0 -1
  123. package/dist/chunk-KSEZ6UM2.js +0 -235
  124. package/dist/chunk-KSEZ6UM2.js.map +0 -1
  125. package/dist/chunk-MHPF7R3O.js +0 -1376
  126. package/dist/chunk-MHPF7R3O.js.map +0 -1
  127. package/dist/chunk-MPC5IH7E.js +0 -81
  128. package/dist/chunk-MPC5IH7E.js.map +0 -1
  129. package/dist/chunk-MQIU2NYA.js +0 -114
  130. package/dist/chunk-MQIU2NYA.js.map +0 -1
  131. package/dist/chunk-NYMBJOGR.js +0 -2192
  132. package/dist/chunk-NYMBJOGR.js.map +0 -1
  133. package/dist/chunk-OBZD2M3C.js +0 -169
  134. package/dist/chunk-OBZD2M3C.js.map +0 -1
  135. package/dist/chunk-ODM2AG6G.js +0 -176
  136. package/dist/chunk-ODM2AG6G.js.map +0 -1
  137. package/dist/chunk-ONDKF5LP.js +0 -53
  138. package/dist/chunk-ONDKF5LP.js.map +0 -1
  139. package/dist/chunk-P25YCWQB.js +0 -41
  140. package/dist/chunk-P25YCWQB.js.map +0 -1
  141. package/dist/chunk-PFYVNM6H.js +0 -14
  142. package/dist/chunk-PFYVNM6H.js.map +0 -1
  143. package/dist/chunk-PWNNSGFL.js +0 -20
  144. package/dist/chunk-PWNNSGFL.js.map +0 -1
  145. package/dist/chunk-Q2PGZVOT.js +0 -36
  146. package/dist/chunk-Q2PGZVOT.js.map +0 -1
  147. package/dist/chunk-Q2XDMV7U.js +0 -76
  148. package/dist/chunk-Q2XDMV7U.js.map +0 -1
  149. package/dist/chunk-QG7FH2FI.js +0 -45
  150. package/dist/chunk-QG7FH2FI.js.map +0 -1
  151. package/dist/chunk-R7HUOK2D.js +0 -1914
  152. package/dist/chunk-R7HUOK2D.js.map +0 -1
  153. package/dist/chunk-REUYY7G5.js +0 -773
  154. package/dist/chunk-REUYY7G5.js.map +0 -1
  155. package/dist/chunk-RHC2Z2HT.js +0 -199
  156. package/dist/chunk-RHC2Z2HT.js.map +0 -1
  157. package/dist/chunk-RMCVLIFE.js +0 -23
  158. package/dist/chunk-RMCVLIFE.js.map +0 -1
  159. package/dist/chunk-ROZLTXGR.js +0 -234
  160. package/dist/chunk-ROZLTXGR.js.map +0 -1
  161. package/dist/chunk-RSS2C2O3.js +0 -17
  162. package/dist/chunk-RSS2C2O3.js.map +0 -1
  163. package/dist/chunk-SAGCG5SH.js +0 -355
  164. package/dist/chunk-SAGCG5SH.js.map +0 -1
  165. package/dist/chunk-TM6AOUSD.js +0 -40
  166. package/dist/chunk-TM6AOUSD.js.map +0 -1
  167. package/dist/chunk-TPK4BYCO.js +0 -970
  168. package/dist/chunk-TPK4BYCO.js.map +0 -1
  169. package/dist/chunk-UNQIL4K2.js +0 -34
  170. package/dist/chunk-UNQIL4K2.js.map +0 -1
  171. package/dist/chunk-UUG6L75Y.js +0 -47
  172. package/dist/chunk-UUG6L75Y.js.map +0 -1
  173. package/dist/chunk-V2SYMV4W.js +0 -114
  174. package/dist/chunk-V2SYMV4W.js.map +0 -1
  175. package/dist/chunk-V7EN5CTH.js +0 -130
  176. package/dist/chunk-V7EN5CTH.js.map +0 -1
  177. package/dist/chunk-VITKG2HL.js +0 -1125
  178. package/dist/chunk-VITKG2HL.js.map +0 -1
  179. package/dist/chunk-VYEWU5LO.js +0 -2631
  180. package/dist/chunk-VYEWU5LO.js.map +0 -1
  181. package/dist/chunk-W67QAGSH.js +0 -178
  182. package/dist/chunk-W67QAGSH.js.map +0 -1
  183. package/dist/chunk-WWBIN6KV.js +0 -1353
  184. package/dist/chunk-WWBIN6KV.js.map +0 -1
  185. package/dist/chunk-X77Z4PFB.js +0 -224
  186. package/dist/chunk-X77Z4PFB.js.map +0 -1
  187. package/dist/chunk-X7VG7OTT.js +0 -8
  188. package/dist/chunk-X7VG7OTT.js.map +0 -1
  189. package/dist/chunk-XE4K2SGI.js +0 -74
  190. package/dist/chunk-XE4K2SGI.js.map +0 -1
  191. package/dist/chunk-YIUG7IJK.js +0 -628
  192. package/dist/chunk-YIUG7IJK.js.map +0 -1
  193. package/dist/chunk-YNVN3V4Y.js +0 -13
  194. package/dist/chunk-YNVN3V4Y.js.map +0 -1
  195. package/dist/chunk-Z2S54IZX.js +0 -198
  196. package/dist/chunk-Z2S54IZX.js.map +0 -1
  197. package/dist/chunk-ZR6AH25Z.js +0 -17
  198. package/dist/chunk-ZR6AH25Z.js.map +0 -1
  199. package/dist/dialog-SPM3DTTI.js +0 -17
  200. package/dist/dialog-SPM3DTTI.js.map +0 -1
  201. package/dist/dropdown-menu-HMTWKWGK.js +0 -21
  202. package/dist/dropdown-menu-HMTWKWGK.js.map +0 -1
  203. package/dist/input-BH4P4S26.js +0 -6
  204. package/dist/input-BH4P4S26.js.map +0 -1
  205. package/dist/label-5Z4Q6VER.js +0 -8
  206. package/dist/label-5Z4Q6VER.js.map +0 -1
  207. package/dist/popover-IFOUXYLI.js +0 -18
  208. package/dist/popover-IFOUXYLI.js.map +0 -1
  209. package/dist/scroll-area-DJXNW6QX.js +0 -14
  210. package/dist/scroll-area-DJXNW6QX.js.map +0 -1
  211. package/dist/select-FZ277C3G.js +0 -22
  212. package/dist/select-FZ277C3G.js.map +0 -1
  213. package/dist/separator-BTMLN4NB.js +0 -8
  214. package/dist/separator-BTMLN4NB.js.map +0 -1
  215. package/dist/skeleton-DXIWBH4W.js +0 -6
  216. package/dist/skeleton-DXIWBH4W.js.map +0 -1
  217. package/dist/switch-4MCXIZBY.js +0 -13
  218. package/dist/switch-4MCXIZBY.js.map +0 -1
  219. package/dist/tabs-O7AW3APK.js +0 -17
  220. package/dist/tabs-O7AW3APK.js.map +0 -1
  221. package/dist/textarea-IB5WAFDO.js +0 -6
  222. package/dist/textarea-IB5WAFDO.js.map +0 -1
  223. package/dist/toggle-XVPPG6P4.js +0 -10
  224. package/dist/toggle-XVPPG6P4.js.map +0 -1
  225. package/dist/tooltip-JICZTD4F.js +0 -18
  226. package/dist/tooltip-JICZTD4F.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/primitives/three/Graph3D/GraphEdge.tsx","../src/primitives/three/Graph3D/utils.ts","../src/primitives/three/Graph3D/GraphNode.tsx","../src/primitives/three/Graph3D/Graph3D.tsx"],"names":["THREE","useRef","useFrame","jsx","THREE3","jsxs"],"mappings":"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","file":"Graph3D-GO7N2EZQ.js","sourcesContent":["import { Line } from \"@react-three/drei\";\nimport { useFrame } from \"@react-three/fiber\";\nimport { useRef } from \"react\";\nimport * as THREE from \"three\";\nimport { Line2 } from \"three-stdlib\";\nimport { GraphEdge as GraphEdgeData } from \"./types\";\n\ninterface GraphEdgeProps {\n edge: GraphEdgeData;\n start: THREE.Vector3;\n end: THREE.Vector3;\n isPathActive?: boolean;\n isDimmed?: boolean;\n}\n\nexport const GraphEdge = ({ edge, start, end, isPathActive, isDimmed }: GraphEdgeProps) => {\n const lineRef = useRef<Line2>(null);\n\n // Determine style based on type and state\n const isAgentPath = edge.type === \"agentPath\";\n const isSuggested = edge.type === \"suggested\";\n const isDistraction = edge.type === \"distraction\";\n\n // Colors & Styles per spec\n // Path: Cyan tint, thicker\n // Suggested: Bright but transparent, dashed\n // Distraction: Warm orange/red, dashed\n // Default: Soft gray-blue\n\n const color =\n isPathActive || isAgentPath\n ? \"#00f0ff\" // Cyan\n : isDistraction\n ? \"#ff6b4a\" // Warm Orange/Red\n : isSuggested\n ? \"#e0e7ff\" // Cool white/blue\n : \"#a0b0d0\"; // Soft gray-blue\n\n const opacity = isDimmed\n ? 0.03 // Faded out\n : isPathActive || isAgentPath\n ? 0.85 // High visibility\n : isDistraction\n ? 0.6 // Visible but ghost-like\n : isSuggested\n ? 0.25 // Slightly reduced per feedback (was 0.35)\n : 0.08; // Subtle default\n\n const width = isPathActive || isAgentPath ? 2.5 : isDistraction ? 1.5 : 1;\n const dashed = isSuggested || isAgentPath || isPathActive || isDistraction;\n\n useFrame((_state, delta) => {\n // Animate flow for agent paths or active paths\n if (lineRef.current && (isAgentPath || isPathActive || isSuggested || isDistraction)) {\n if (lineRef.current.material) {\n // Speed varies by type\n const speed = isPathActive ? 1.5 : isAgentPath ? 1 : isDistraction ? 0.3 : 0.5;\n lineRef.current.material.dashOffset -= delta * speed;\n }\n }\n });\n\n return (\n <Line\n ref={lineRef}\n points={[start, end]}\n color={color}\n transparent\n opacity={opacity}\n lineWidth={width}\n dashed={dashed}\n dashScale={isSuggested ? 2 : isDistraction ? 3 : 1.4} // Distraction = wider dashes\n dashSize={isPathActive ? 0.22 : 0.16}\n gapSize={isPathActive ? 0.14 : 0.2}\n depthWrite={false} // Prevent z-fighting with nodes\n toneMapped={false} // Keep colors bright\n />\n );\n};\n","import * as THREE from \"three\";\nimport { GraphEdge, GraphNode, LayoutOptions } from \"./types\";\n\nexport const CATEGORY_COLORS: Record<string, string> = {\n ADHD: \"#00d4e6\", // Neon Cyan (slightly desaturated from #00f0ff)\n AI: \"#d000ff\", // Magenta (slightly desaturated from #f000ff)\n Infrastructure: \"#cfd8ff\", // Cool white/blue (softer than #e0e7ff)\n Systems: \"#00e08a\", // Emerald (shifted from #00ff99)\n Personal: \"#f4c948\", // Soft Gold (shifted from #ffd700)\n\n // Mission Clusters\n Mission: \"#00d4e6\", // Default Mission = Cyan\n MissionA: \"#00d4e6\", // Cyan\n MissionB: \"#00e08a\", // Emerald\n MissionC: \"#f4c948\", // Gold\n\n // Distraction\n Distraction: \"#ff4d4d\", // Red/Warning\n\n // Generic\n Plan: \"#00f0ff\",\n Step: \"#a0b0d0\",\n Task: \"#a0b0d0\",\n Rest: \"#a0b0d0\",\n Admin: \"#a0b0d0\",\n};\n\nexport const getCategoryColor = (category?: string) => {\n // Check direct match\n if (CATEGORY_COLORS[category || \"\"]) return CATEGORY_COLORS[category || \"\"];\n\n // Fallback or \"Task\" variants\n if (category?.startsWith(\"Mission\")) return CATEGORY_COLORS[\"Mission\"];\n\n return \"#888888\";\n};\n\n// Helper to get node size based on weight\nexport const getNodeSize = (weight: number = 0.5) => {\n const baseRadius = 0.14; // slightly bigger base\n const maxBump = 0.05; // but less spread between min/max\n return baseRadius + weight * maxBump;\n};\n\n// Layout Algorithms\n\nexport function layoutFibonacci(\n nodes: GraphNode[],\n options: LayoutOptions = {}\n): Map<string, THREE.Vector3> {\n const positions = new Map<string, THREE.Vector3>();\n const radius = options.radius ?? 4; // Increased default radius for \"Universe\" feel\n\n nodes.forEach((node, i) => {\n // Fibonacci sphere distribution\n const phi = Math.acos(-1 + (2 * i) / nodes.length);\n const theta = Math.sqrt(nodes.length * Math.PI) * phi;\n\n positions.set(\n node.id,\n new THREE.Vector3(\n radius * Math.cos(theta) * Math.sin(phi),\n radius * Math.sin(theta) * Math.sin(phi),\n radius * Math.cos(phi)\n )\n );\n });\n\n return positions;\n}\n\nexport function layoutRing(\n nodes: GraphNode[],\n options: LayoutOptions = {}\n): Map<string, THREE.Vector3> {\n const positions = new Map<string, THREE.Vector3>();\n const radius = options.radius ?? 4;\n\n // Arrange in a ring on the XZ plane\n // \"Top\" of the circle (negative Z?) as start?\n // Let's start at -Z (top in top-down view) and go clockwise.\n // Standard math: 0 is +X. Clockwise means decreasing angle?\n // Let's just do standard circle and rotate if needed.\n // Start at -PI/2 (top) and go clockwise (+angle in 3D usually CCW around Y).\n // Let's do: Top is -Z.\n\n nodes.forEach((node, i) => {\n const angle = (i / nodes.length) * Math.PI * 2;\n // Offset by -PI/2 to start at \"top\" (negative Z) if we map to X/Z appropriately\n // x = sin(angle), z = -cos(angle) starts at (0, -1) and goes clockwise?\n // i=0 -> x=0, z=-1 (Top)\n // i=small -> x>0, z~-1 (Top Right) -> Clockwise\n\n positions.set(\n node.id,\n new THREE.Vector3(Math.sin(angle) * radius, 0, -Math.cos(angle) * radius)\n );\n });\n\n return positions;\n}\n\nexport function layoutCustom(nodes: GraphNode[]): Map<string, THREE.Vector3> {\n const positions = new Map<string, THREE.Vector3>();\n\n nodes.forEach((node) => {\n if (node.positionHint) {\n positions.set(node.id, new THREE.Vector3(...node.positionHint));\n } else {\n positions.set(node.id, new THREE.Vector3(0, 0, 0));\n }\n });\n\n return positions;\n}\n\n// Force-directed layout\nexport function layoutForce(\n nodes: GraphNode[],\n edges: GraphEdge[],\n options: LayoutOptions = {}\n): Map<string, THREE.Vector3> {\n const positions = new Map<string, THREE.Vector3>();\n const velocities = new Map<string, THREE.Vector3>();\n\n // Initialize\n nodes.forEach((node, i) => {\n // Use fibonacci as seed if no prev positions, to avoid initial explosion\n const phi = Math.acos(-1 + (2 * i) / nodes.length);\n const theta = Math.sqrt(nodes.length * Math.PI) * phi;\n const r = options.radius ?? 4;\n\n positions.set(\n node.id,\n new THREE.Vector3(\n r * Math.cos(theta) * Math.sin(phi),\n r * Math.sin(theta) * Math.sin(phi),\n r * Math.cos(phi)\n )\n );\n velocities.set(node.id, new THREE.Vector3(0, 0, 0));\n });\n\n const iterations = options.iterations ?? 120; // Increased default iterations\n const repelStrength = options.repelStrength ?? 8;\n const linkStrength = options.linkStrength ?? 0.8;\n const gravity = options.gravity ?? 0.05;\n const damping = 0.8;\n\n for (let i = 0; i < iterations; i++) {\n // Repulsion\n for (let j = 0; j < nodes.length; j++) {\n for (let k = j + 1; k < nodes.length; k++) {\n const nodeA = nodes[j];\n const nodeB = nodes[k];\n const posA = positions.get(nodeA.id)!;\n const posB = positions.get(nodeB.id)!;\n\n const delta = new THREE.Vector3().subVectors(posA, posB);\n let dist = delta.length();\n if (dist === 0) {\n dist = 0.01;\n delta.set(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5);\n }\n\n const force = delta.normalize().multiplyScalar(repelStrength / (dist * dist));\n velocities.get(nodeA.id)!.add(force);\n velocities.get(nodeB.id)!.sub(force);\n }\n }\n\n // Attraction\n edges.forEach((edge) => {\n if (!positions.has(edge.source) || !positions.has(edge.target)) return;\n const posA = positions.get(edge.source)!;\n const posB = positions.get(edge.target)!;\n\n const delta = new THREE.Vector3().subVectors(posB, posA);\n const dist = delta.length();\n const idealDist = options.spacing ?? 1.5;\n\n const force = delta.normalize().multiplyScalar((dist - idealDist) * linkStrength);\n\n velocities.get(edge.source)!.add(force);\n velocities.get(edge.target)!.sub(force);\n });\n\n // Gravity\n nodes.forEach((node) => {\n const pos = positions.get(node.id)!;\n const force = pos.clone().negate().multiplyScalar(gravity);\n velocities.get(node.id)!.add(force);\n });\n\n // Apply\n nodes.forEach((node) => {\n const vel = velocities.get(node.id)!;\n vel.multiplyScalar(damping);\n positions.get(node.id)!.add(vel);\n });\n }\n\n return positions;\n}\n","import { Html } from \"@react-three/drei\";\nimport { ThreeEvent, useFrame } from \"@react-three/fiber\";\nimport { motion } from \"framer-motion\";\nimport { useMemo, useRef } from \"react\";\nimport * as THREE from \"three\";\nimport { GraphNode as GraphNodeData } from \"./types\";\nimport { getCategoryColor, getNodeSize } from \"./utils\";\n\ninterface GraphNodeProps {\n node: GraphNodeData;\n position: THREE.Vector3;\n isSelected?: boolean;\n isHovered?: boolean;\n isPathActive?: boolean;\n isDimmed?: boolean;\n showLabel?: boolean;\n onClick?: (id: string) => void;\n onDoubleClick?: (id: string) => void;\n onHover?: (id: string | null) => void;\n}\n\nexport const GraphNode = ({\n node,\n position,\n isSelected,\n isHovered,\n isPathActive,\n isDimmed,\n showLabel,\n onClick,\n onDoubleClick,\n onHover,\n}: GraphNodeProps) => {\n // Calculate size based on spec\n const baseSize = useMemo(() => getNodeSize(node.weight), [node.weight]);\n const color = useMemo(() => getCategoryColor(node.category), [node.category]);\n\n // Derived state flags\n const isHighlighted = isSelected || isHovered || isPathActive;\n const isActiveStatus = node.status === \"active\";\n const isDeployingStatus = node.status === \"candidate\"; // candidate = deploying in our model\n const isBlockedStatus = node.status === \"blocked\"; // blocked = error\n\n // Emissive color logic: active path nodes shift slightly to cyan\n const emissiveColor = useMemo(() => {\n const baseColor = new THREE.Color(color);\n if (isPathActive) {\n return baseColor.lerp(new THREE.Color(\"#00f0ff\"), 0.3);\n }\n if (isBlockedStatus) {\n return baseColor.lerp(new THREE.Color(\"#ff4444\"), 0.5);\n }\n return baseColor;\n }, [color, isPathActive, isBlockedStatus]);\n\n const groupRef = useRef<THREE.Group>(null);\n const meshRef = useRef<THREE.Mesh>(null);\n const didInitRef = useRef(false);\n const targetScaleRef = useRef(new THREE.Vector3(1, 1, 1));\n\n useFrame(({ clock }, delta) => {\n const group = groupRef.current;\n const mesh = meshRef.current;\n if (!group || !mesh) return;\n\n const t = clock.elapsedTime;\n const positionAlpha = 1 - Math.exp(-delta * 8);\n const scaleAlpha = 1 - Math.exp(-delta * 12);\n\n const getScaleScalar = () => {\n if (isSelected) return 1.2;\n if (isHovered) return 1.1;\n if (isPathActive) {\n return 1 + 0.05 * Math.sin((t * Math.PI * 2) / 2.5);\n }\n // Active nodes pulse more prominently\n if (isActiveStatus) {\n return 1 + 0.06 * Math.sin((t * Math.PI * 2) / 2);\n }\n // Deploying nodes pulse faster\n if (isDeployingStatus) {\n return 1 + 0.08 * Math.sin((t * Math.PI * 2) / 0.8);\n }\n // Blocked/error nodes have a rapid flicker\n if (isBlockedStatus) {\n return 1 + 0.04 * Math.sin((t * Math.PI * 2) / 0.5);\n }\n return 1 + 0.02 * Math.sin((t * Math.PI * 2) / 10);\n };\n\n if (!didInitRef.current) {\n group.position.copy(position);\n mesh.scale.setScalar(getScaleScalar());\n didInitRef.current = true;\n return;\n }\n\n group.position.lerp(position, positionAlpha);\n\n targetScaleRef.current.setScalar(getScaleScalar());\n mesh.scale.lerp(targetScaleRef.current, scaleAlpha);\n });\n\n return (\n <group ref={groupRef}>\n {/* Main Sphere - Glassy/Metallic Look */}\n <mesh\n ref={meshRef}\n onClick={(e: ThreeEvent<PointerEvent>) => {\n e.stopPropagation();\n onClick?.(node.id);\n }}\n onDoubleClick={(e: ThreeEvent<PointerEvent>) => {\n e.stopPropagation();\n onDoubleClick?.(node.id);\n }}\n onPointerOver={(e: ThreeEvent<PointerEvent>) => {\n e.stopPropagation();\n onHover?.(node.id);\n document.body.style.cursor = \"pointer\";\n }}\n onPointerOut={() => {\n onHover?.(null);\n document.body.style.cursor = \"auto\";\n }}\n >\n <sphereGeometry args={[baseSize, 32, 32]} />\n <meshPhysicalMaterial\n color={color}\n emissive={emissiveColor}\n emissiveIntensity={\n isSelected ? 0.8 :\n isHovered ? 0.6 :\n isPathActive ? 0.5 :\n isActiveStatus ? 0.45 :\n isDeployingStatus ? 0.5 :\n isBlockedStatus ? 0.6 :\n 0.2\n }\n roughness={0.2}\n metalness={0.6}\n transparent\n opacity={isDimmed ? 0.15 : 0.9}\n transmission={0.2} // Slight glass effect\n thickness={0.5}\n />\n </mesh>\n\n {/* Halo / Outer Glow (when highlighted, active status, or deploying) */}\n {(isHighlighted || isActiveStatus || isDeployingStatus) && (\n <mesh>\n <sphereGeometry args={[baseSize * (isSelected ? 2 : isActiveStatus ? 1.8 : 1.6), 32, 32]} />\n <meshBasicMaterial\n color={isBlockedStatus ? \"#ff4444\" : emissiveColor}\n transparent\n opacity={isSelected ? 0.15 : isActiveStatus ? 0.12 : isDeployingStatus ? 0.18 : 0.1}\n side={THREE.BackSide}\n blending={THREE.AdditiveBlending}\n depthWrite={false}\n />\n </mesh>\n )}\n\n {/* Extra glow ring for active status nodes */}\n {isActiveStatus && !isSelected && (\n <mesh rotation={[Math.PI / 2, 0, 0]}>\n <ringGeometry args={[baseSize * 1.5, baseSize * 1.55, 64]} />\n <meshBasicMaterial\n color=\"#00ff88\"\n side={THREE.DoubleSide}\n transparent\n opacity={0.4}\n blending={THREE.AdditiveBlending}\n />\n </mesh>\n )}\n\n {/* Selected Orbit Ring */}\n {isSelected && (\n <mesh rotation={[Math.PI / 2, 0, 0]}>\n <ringGeometry args={[baseSize * 1.8, baseSize * 1.85, 64]} />\n <meshBasicMaterial\n color={color}\n side={THREE.DoubleSide}\n transparent\n opacity={0.6}\n blending={THREE.AdditiveBlending}\n />\n </mesh>\n )}\n\n {/* Label */}\n {(showLabel || isHighlighted) && (\n <Html distanceFactor={12} zIndexRange={[100, 0]} style={{ pointerEvents: \"none\" }}>\n <motion.div\n initial={{ opacity: 0, y: 4 }}\n animate={{ opacity: 1, y: -12 }}\n transition={{ duration: 0.18 }}\n className={`\n flex flex-col items-center\n ${isHighlighted ? \"scale-100\" : \"scale-95 opacity-40\"}\n `}\n >\n <div\n className={`\n px-2 py-1 rounded-full border backdrop-blur-xl transition-colors duration-300\n ${\n isHighlighted\n ? \"bg-[rgba(2,4,10,0.85)] border-white/[0.06] shadow-[inset_0_1px_0_rgba(255,255,255,0.02)]\"\n : \"bg-transparent border-transparent\"\n }\n `}\n >\n <div\n className={`text-[9px] font-mono font-semibold whitespace-nowrap ${isHighlighted ? \"text-white\" : \"text-white/55\"}`}\n >\n {node.label}\n </div>\n </div>\n\n {/* Category Chip */}\n {isHighlighted && node.category && (\n <div\n className=\"text-[7px] uppercase tracking-[0.18em] font-bold mt-1 px-1.5 py-px rounded border border-white/[0.06] bg-[rgba(2,4,10,0.85)] backdrop-blur-xl\"\n style={{\n color: color,\n borderColor: `${color}33`,\n boxShadow: `0 0 6px ${color}22`,\n }}\n >\n {node.category}\n </div>\n )}\n </motion.div>\n </Html>\n )}\n </group>\n );\n};\n","import { OrbitControls, Stars } from \"@react-three/drei\";\nimport { useFrame, useThree } from \"@react-three/fiber\";\nimport { AnimatePresence } from \"framer-motion\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef, useState } from \"react\";\nimport * as THREE from \"three\";\nimport type { OrbitControls as OrbitControlsImpl } from \"three-stdlib\";\nimport { GraphEdge } from \"./GraphEdge\";\nimport { GraphNode } from \"./GraphNode\";\nimport { Graph3DHandle, GraphNodeId, GraphSnapshot, LayoutMode, LayoutOptions } from \"./types\";\nimport { layoutCustom, layoutFibonacci, layoutForce, layoutRing } from \"./utils\";\n\nexport interface Graph3DProps {\n graph: GraphSnapshot;\n\n // selection / hover\n selectedNodeId?: GraphNodeId | null;\n focusedPath?: GraphNodeId[];\n highlightedNodeIds?: GraphNodeId[];\n dimUnhighlighted?: boolean;\n\n layout?: LayoutMode;\n layoutOptions?: LayoutOptions;\n\n // agent overlays\n agentActivity?: {\n mode: \"idle\" | \"weaving\" | \"updating\" | \"explaining\";\n activeNodeIds?: GraphNodeId[];\n activeEdgeIds?: string[];\n };\n\n // interaction\n onNodeClick?: (id: GraphNodeId) => void;\n onNodeDoubleClick?: (id: GraphNodeId) => void;\n onNodeHoverChange?: (id: GraphNodeId | null) => void;\n onBackgroundClick?: () => void;\n\n // visuals\n showGrid?: boolean;\n enableInstancing?: boolean;\n maxNodeCountForLabels?: number;\n embedMode?: boolean; // If true, disable environment setup (fog, lights, etc.)\n}\n\nexport const Graph3D = forwardRef<Graph3DHandle, Graph3DProps>(\n (\n {\n graph,\n selectedNodeId,\n focusedPath = [],\n highlightedNodeIds = [],\n dimUnhighlighted,\n layout = \"fibonacci\",\n layoutOptions = {},\n agentActivity = { mode: \"idle\" },\n onNodeClick,\n onNodeDoubleClick,\n onNodeHoverChange,\n onBackgroundClick,\n maxNodeCountForLabels = 20,\n embedMode = false,\n },\n ref\n ) => {\n const { camera } = useThree();\n const controlsRef = useRef<OrbitControlsImpl | null>(null);\n const groupRef = useRef<THREE.Group>(null);\n\n // State for positions map\n const [positions, setPositions] = useState<Map<string, THREE.Vector3>>(new Map());\n\n // State for current layout mode\n const [currentLayout, setCurrentLayout] = useState<LayoutMode>(layout);\n const [currentLayoutOptions, setCurrentLayoutOptions] = useState<LayoutOptions>(layoutOptions);\n\n // Calculate positions when graph or layout changes\n useEffect(() => {\n let newPositions: Map<string, THREE.Vector3>;\n\n switch (currentLayout) {\n case \"force\":\n newPositions = layoutForce(graph.nodes, graph.edges, currentLayoutOptions);\n break;\n case \"ring\":\n newPositions = layoutRing(graph.nodes, currentLayoutOptions);\n break;\n case \"custom\":\n newPositions = layoutCustom(graph.nodes);\n break;\n case \"fibonacci\":\n default:\n newPositions = layoutFibonacci(graph.nodes, currentLayoutOptions);\n break;\n }\n setPositions(newPositions);\n }, [graph, currentLayout, currentLayoutOptions]);\n\n // Handle prop updates for layout\n useEffect(() => {\n setCurrentLayout(layout);\n setCurrentLayoutOptions(layoutOptions);\n }, [layout, layoutOptions]);\n\n // Imperative API\n useImperativeHandle(ref, () => ({\n focusNode: (id, options) => {\n const pos = positions.get(id);\n if (pos && controlsRef.current) {\n // Animate OrbitControls target\n // Using a simple lerp logic or just setting it for now.\n // Ideally we'd tween this, but direct assignment is okay for MVP interactivity.\n // controlsRef.current.target.lerp(pos, 0.1);\n // For immediate focus:\n controlsRef.current.target.copy(pos);\n\n if (options?.animateCamera) {\n // Move camera to a nice offset\n const offset = new THREE.Vector3(0, 2, 6);\n // We can't easily animate camera pos inside imperative handle without a loop or library\n // Just setting for now, assuming external animation or simple jump\n // Ideally: integration with GSAP or react-spring for camera\n camera.position.copy(pos).add(offset);\n }\n }\n },\n pulseNode: (_id, _options) => {},\n highlightPath: (_ids, _options) => {},\n showDiff: (_oldGraph, _newGraph, _options) => {},\n setLayout: (mode, opts) => {\n setCurrentLayout(mode);\n if (opts) setCurrentLayoutOptions(opts);\n },\n getNodePosition: (id) => {\n return positions.get(id);\n },\n }));\n\n // Slow rotation for \"cinematic\" feel (idle mode)\n useFrame((_state, delta) => {\n if (groupRef.current && agentActivity.mode === \"idle\" && !selectedNodeId) {\n groupRef.current.rotation.y += delta * 0.02; // Slower rotation\n }\n });\n\n // Determine visibility/dimming\n const isNodeDimmed = (id: string): boolean => {\n if (!dimUnhighlighted) return false;\n if (selectedNodeId && id === selectedNodeId) return false;\n if (focusedPath.includes(id)) return false;\n if (highlightedNodeIds.includes(id)) return false;\n if (selectedNodeId || focusedPath.length > 0 || highlightedNodeIds.length > 0) return true;\n return false;\n };\n\n return (\n <>\n {!embedMode && (\n <>\n {/* Environment / Background */}\n <color attach=\"background\" args={[\"#050812\"]} />\n <fog attach=\"fog\" args={[\"#050812\", 8, 25]} /> {/* Distance fog */}\n <Stars radius={90} depth={40} count={1800} factor={3} saturation={0} fade speed={0.3} />\n {/* Cinematic Lighting */}\n <ambientLight intensity={0.2} />\n <pointLight position={[10, 10, 10]} intensity={0.5} color=\"#4060ff\" />\n <pointLight position={[-10, -5, -10]} intensity={0.3} color=\"#ff0080\" />\n <hemisphereLight args={[\"#050812\", \"#000000\", 0.5]} />\n </>\n )}\n {/* Controls */}\n <OrbitControls\n ref={controlsRef}\n makeDefault\n enableDamping\n dampingFactor={0.05}\n rotateSpeed={0.5}\n minDistance={3}\n maxDistance={16}\n />\n {/* Background Click Catcher */}\n <mesh visible={false} scale={[100, 100, 100]} onClick={() => onBackgroundClick?.()}>\n <sphereGeometry args={[1, 16, 16]} />\n <meshBasicMaterial side={THREE.BackSide} />\n </mesh>\n <group ref={groupRef}>\n {/* Edges */}\n {graph.edges.map((edge) => {\n const start = positions.get(edge.source);\n const end = positions.get(edge.target);\n if (!start || !end) return null;\n\n const bothInPath =\n focusedPath.includes(edge.source) && focusedPath.includes(edge.target);\n const isDimmed =\n dimUnhighlighted && !bothInPath && (focusedPath.length > 0 || !!selectedNodeId);\n\n return (\n <GraphEdge\n key={edge.id}\n edge={edge}\n start={start}\n end={end}\n isPathActive={bothInPath}\n isDimmed={isDimmed}\n />\n );\n })}\n\n {/* Nodes */}\n <AnimatePresence>\n {graph.nodes.map((node) => {\n const pos = positions.get(node.id);\n if (!pos) return null;\n\n const isSelected = selectedNodeId === node.id;\n const isPathActive = focusedPath.includes(node.id);\n\n // Show label logic: hovered, selected, active path, or sparse graph\n // We pass `showLabel` as a base visibility, but hover handles itself\n const shouldShowLabel =\n isSelected ||\n isPathActive ||\n highlightedNodeIds.includes(node.id) ||\n graph.nodes.length < maxNodeCountForLabels;\n\n return (\n <GraphNode\n key={node.id}\n node={node}\n position={pos}\n isSelected={isSelected}\n isPathActive={isPathActive}\n isHovered={false}\n isDimmed={isNodeDimmed(node.id)}\n showLabel={shouldShowLabel}\n onClick={onNodeClick}\n onDoubleClick={onNodeDoubleClick}\n onHover={onNodeHoverChange}\n />\n );\n })}\n </AnimatePresence>\n </group>\n </>\n );\n }\n);\n\nGraph3D.displayName = \"Graph3D\";\n"]}
@@ -1,6 +0,0 @@
1
- export { HUDProgressRing } from './chunk-7K4WZM3U.js';
2
- import './chunk-6RX2WGCO.js';
3
- import './chunk-3CMPQOMY.js';
4
- import './chunk-TM6AOUSD.js';
5
- //# sourceMappingURL=HUDProgressRing-N6C5NAEV.js.map
6
- //# sourceMappingURL=HUDProgressRing-N6C5NAEV.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"HUDProgressRing-N6C5NAEV.js"}
@@ -1,6 +0,0 @@
1
- export { KPIStat } from './chunk-6RKBCJHN.js';
2
- import './chunk-6RX2WGCO.js';
3
- import './chunk-3CMPQOMY.js';
4
- import './chunk-TM6AOUSD.js';
5
- //# sourceMappingURL=KPIStat-PBQK27ZB.js.map
6
- //# sourceMappingURL=KPIStat-PBQK27ZB.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"KPIStat-PBQK27ZB.js"}
@@ -1,6 +0,0 @@
1
- export { NeonToast, showNeonToast } from './chunk-RHC2Z2HT.js';
2
- import './chunk-6RX2WGCO.js';
3
- import './chunk-3CMPQOMY.js';
4
- import './chunk-TM6AOUSD.js';
5
- //# sourceMappingURL=NeonToast-W5F7MU3U.js.map
6
- //# sourceMappingURL=NeonToast-W5F7MU3U.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"NeonToast-W5F7MU3U.js"}
@@ -1,51 +0,0 @@
1
- import './chunk-TM6AOUSD.js';
2
- import { Instances, Instance } from '@react-three/drei';
3
- import { useFrame } from '@react-three/fiber';
4
- import { useRef } from 'react';
5
- import { jsxs, jsx } from 'react/jsx-runtime';
6
-
7
- var Particle = ({ factor, speed, xFactor, yFactor, zFactor }) => {
8
- const ref = useRef(null);
9
- useFrame((state) => {
10
- const t = factor + state.clock.elapsedTime * (speed / 2);
11
- if (ref.current) {
12
- ref.current.rotation.z = t * xFactor;
13
- ref.current.rotation.y = t * yFactor;
14
- ref.current.position.x = Math.cos(t) + Math.sin(t * 1) / 10 + xFactor + Math.cos(t / 10 * factor) + Math.sin(t * 1) * factor / 10;
15
- ref.current.position.y = Math.sin(t) + Math.cos(t * 2) / 10 + yFactor + Math.sin(t / 10 * factor) + Math.cos(t * 2) * factor / 10;
16
- ref.current.position.z = Math.sin(t) + Math.cos(t * 2) / 10 + zFactor + Math.cos(t / 10 * factor) + Math.sin(t * 3) * factor / 10;
17
- }
18
- });
19
- return /* @__PURE__ */ jsx(Instance, { ref });
20
- };
21
- var ParticleField = ({
22
- count = 100,
23
- range = 20,
24
- color = "#00f0ff"
25
- }) => {
26
- const particles = new Array(count).fill(0).map(() => ({
27
- factor: 0.5 + Math.random(),
28
- speed: 0.01 + Math.random() / 200,
29
- xFactor: -10 + Math.random() * 20,
30
- yFactor: -10 + Math.random() * 20,
31
- zFactor: -10 + Math.random() * 20
32
- }));
33
- return /* @__PURE__ */ jsxs(Instances, { range, limit: count, children: [
34
- /* @__PURE__ */ jsx("dodecahedronGeometry", { args: [0.05, 0] }),
35
- /* @__PURE__ */ jsx(
36
- "meshStandardMaterial",
37
- {
38
- color,
39
- roughness: 0,
40
- metalness: 0.5,
41
- emissive: color,
42
- emissiveIntensity: 0.5
43
- }
44
- ),
45
- particles.map((data, i) => /* @__PURE__ */ jsx(Particle, { ...data }, i))
46
- ] });
47
- };
48
-
49
- export { ParticleField };
50
- //# sourceMappingURL=ParticleField-WK6CNHWU.js.map
51
- //# sourceMappingURL=ParticleField-WK6CNHWU.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/primitives/three/ParticleField/ParticleField.tsx"],"names":[],"mappings":"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","file":"ParticleField-WK6CNHWU.js","sourcesContent":["import { Instance, Instances } from \"@react-three/drei\";\nimport { useFrame } from \"@react-three/fiber\";\nimport { useRef } from \"react\";\nimport * as THREE from \"three\";\n\ninterface ParticleFieldProps {\n count?: number;\n range?: number;\n color?: string;\n}\n\ninterface ParticleProps {\n factor: number;\n speed: number;\n xFactor: number;\n yFactor: number;\n zFactor: number;\n}\n\nconst Particle = ({ factor, speed, xFactor, yFactor, zFactor }: ParticleProps) => {\n const ref = useRef<THREE.Group>(null);\n\n useFrame((state) => {\n const t = factor + state.clock.elapsedTime * (speed / 2);\n if (ref.current) {\n ref.current.rotation.z = t * xFactor;\n ref.current.rotation.y = t * yFactor;\n ref.current.position.x =\n Math.cos(t) +\n Math.sin(t * 1) / 10 +\n xFactor +\n Math.cos((t / 10) * factor) +\n (Math.sin(t * 1) * factor) / 10;\n ref.current.position.y =\n Math.sin(t) +\n Math.cos(t * 2) / 10 +\n yFactor +\n Math.sin((t / 10) * factor) +\n (Math.cos(t * 2) * factor) / 10;\n ref.current.position.z =\n Math.sin(t) +\n Math.cos(t * 2) / 10 +\n zFactor +\n Math.cos((t / 10) * factor) +\n (Math.sin(t * 3) * factor) / 10;\n }\n });\n\n return <Instance ref={ref} />;\n};\n\nexport const ParticleField = ({\n count = 100,\n range = 20,\n color = \"#00f0ff\",\n}: ParticleFieldProps) => {\n // Generate random data for instances\n const particles: ParticleProps[] = new Array(count).fill(0).map(() => ({\n factor: 0.5 + Math.random(),\n speed: 0.01 + Math.random() / 200,\n xFactor: -10 + Math.random() * 20,\n yFactor: -10 + Math.random() * 20,\n zFactor: -10 + Math.random() * 20,\n }));\n\n return (\n <Instances range={range} limit={count}>\n <dodecahedronGeometry args={[0.05, 0]} />\n <meshStandardMaterial\n color={color}\n roughness={0}\n metalness={0.5}\n emissive={color}\n emissiveIntensity={0.5}\n />\n {particles.map((data, i) => (\n <Particle key={i} {...data} />\n ))}\n </Instances>\n );\n};\n"]}
@@ -1,6 +0,0 @@
1
- export { TextGenerateEffect } from './chunk-6IGT34PC.js';
2
- import './chunk-6RX2WGCO.js';
3
- import './chunk-3CMPQOMY.js';
4
- import './chunk-TM6AOUSD.js';
5
- //# sourceMappingURL=TextGenerateEffect-EUCEIIUJ.js.map
6
- //# sourceMappingURL=TextGenerateEffect-EUCEIIUJ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"TextGenerateEffect-EUCEIIUJ.js"}
@@ -1,6 +0,0 @@
1
- export { CardBody, CardContainer, CardItem, useMouseEnter } from './chunk-KORSTBU4.js';
2
- import './chunk-6RX2WGCO.js';
3
- import './chunk-3CMPQOMY.js';
4
- import './chunk-TM6AOUSD.js';
5
- //# sourceMappingURL=ThreeDCard-VH5I3SSY.js.map
6
- //# sourceMappingURL=ThreeDCard-VH5I3SSY.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"ThreeDCard-VH5I3SSY.js"}
@@ -1,6 +0,0 @@
1
- export { TypingAnimation } from './chunk-V2SYMV4W.js';
2
- import './chunk-6RX2WGCO.js';
3
- import './chunk-3CMPQOMY.js';
4
- import './chunk-TM6AOUSD.js';
5
- //# sourceMappingURL=TypingAnimation-GIWOHPIX.js.map
6
- //# sourceMappingURL=TypingAnimation-GIWOHPIX.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"TypingAnimation-GIWOHPIX.js"}
@@ -1,19 +0,0 @@
1
- export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from './chunk-FFZLJKC7.js';
2
- import './chunk-EBM7YBKL.js';
3
- import './chunk-AFNIVLZP.js';
4
- import './chunk-ROZLTXGR.js';
5
- import './chunk-IKGYOGLK.js';
6
- import './chunk-V7EN5CTH.js';
7
- import './chunk-PFYVNM6H.js';
8
- import './chunk-MPC5IH7E.js';
9
- import './chunk-DIXPOHDO.js';
10
- import './chunk-EXQ7GYRS.js';
11
- import './chunk-7UQD6ROV.js';
12
- import './chunk-ONDKF5LP.js';
13
- import './chunk-FEW533R2.js';
14
- import './chunk-P25YCWQB.js';
15
- import './chunk-6RX2WGCO.js';
16
- import './chunk-3CMPQOMY.js';
17
- import './chunk-TM6AOUSD.js';
18
- //# sourceMappingURL=alert-dialog-QOSYBIIE.js.map
19
- //# sourceMappingURL=alert-dialog-QOSYBIIE.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"alert-dialog-QOSYBIIE.js"}
@@ -1,10 +0,0 @@
1
- export { Avatar, AvatarFallback, AvatarImage } from './chunk-7MDBHJPT.js';
2
- import './chunk-PFYVNM6H.js';
3
- import './chunk-7UQD6ROV.js';
4
- import './chunk-FEW533R2.js';
5
- import './chunk-P25YCWQB.js';
6
- import './chunk-6RX2WGCO.js';
7
- import './chunk-3CMPQOMY.js';
8
- import './chunk-TM6AOUSD.js';
9
- //# sourceMappingURL=avatar-N5R37PCU.js.map
10
- //# sourceMappingURL=avatar-N5R37PCU.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"avatar-N5R37PCU.js"}
@@ -1,8 +0,0 @@
1
- export { Badge, badgeVariants } from './chunk-UNQIL4K2.js';
2
- import './chunk-FEW533R2.js';
3
- import './chunk-P25YCWQB.js';
4
- import './chunk-6RX2WGCO.js';
5
- import './chunk-3CMPQOMY.js';
6
- import './chunk-TM6AOUSD.js';
7
- //# sourceMappingURL=badge-GTVIIGPY.js.map
8
- //# sourceMappingURL=badge-GTVIIGPY.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"badge-GTVIIGPY.js"}
@@ -1,8 +0,0 @@
1
- export { Button, buttonVariants } from './chunk-ONDKF5LP.js';
2
- import './chunk-FEW533R2.js';
3
- import './chunk-P25YCWQB.js';
4
- import './chunk-6RX2WGCO.js';
5
- import './chunk-3CMPQOMY.js';
6
- import './chunk-TM6AOUSD.js';
7
- //# sourceMappingURL=button-D7IMSV2D.js.map
8
- //# sourceMappingURL=button-D7IMSV2D.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"button-D7IMSV2D.js"}
@@ -1,69 +0,0 @@
1
- import { useSyncExternalStore } from 'react';
2
-
3
- // src/lib/accessibility.ts
4
- function createMediaQueryStore(query) {
5
- function subscribe(callback) {
6
- if (typeof window === "undefined") return () => {
7
- };
8
- const mql = window.matchMedia(query);
9
- mql.addEventListener("change", callback);
10
- return () => mql.removeEventListener("change", callback);
11
- }
12
- function getSnapshot() {
13
- if (typeof window === "undefined") return false;
14
- return window.matchMedia(query).matches;
15
- }
16
- function getServerSnapshot() {
17
- return false;
18
- }
19
- return { subscribe, getSnapshot, getServerSnapshot };
20
- }
21
- var reducedTransparencyStore = createMediaQueryStore(
22
- "(prefers-reduced-transparency: reduce)"
23
- );
24
- function prefersReducedTransparency() {
25
- if (typeof window === "undefined") return false;
26
- return window.matchMedia("(prefers-reduced-transparency: reduce)").matches;
27
- }
28
- function usePrefersReducedTransparency() {
29
- return useSyncExternalStore(
30
- reducedTransparencyStore.subscribe,
31
- reducedTransparencyStore.getSnapshot,
32
- reducedTransparencyStore.getServerSnapshot
33
- );
34
- }
35
- var reducedMotionStore = createMediaQueryStore(
36
- "(prefers-reduced-motion: reduce)"
37
- );
38
- function usePrefersReducedMotion() {
39
- return useSyncExternalStore(
40
- reducedMotionStore.subscribe,
41
- reducedMotionStore.getSnapshot,
42
- reducedMotionStore.getServerSnapshot
43
- );
44
- }
45
- var colorSchemeStore = createMediaQueryStore(
46
- "(prefers-color-scheme: dark)"
47
- );
48
- function usePrefersColorScheme() {
49
- const isDark = useSyncExternalStore(
50
- colorSchemeStore.subscribe,
51
- colorSchemeStore.getSnapshot,
52
- colorSchemeStore.getServerSnapshot
53
- );
54
- return isDark ? "dark" : "light";
55
- }
56
- var highContrastStore = createMediaQueryStore(
57
- "(prefers-contrast: more)"
58
- );
59
- function usePrefersHighContrast() {
60
- return useSyncExternalStore(
61
- highContrastStore.subscribe,
62
- highContrastStore.getSnapshot,
63
- highContrastStore.getServerSnapshot
64
- );
65
- }
66
-
67
- export { prefersReducedTransparency, usePrefersColorScheme, usePrefersHighContrast, usePrefersReducedMotion, usePrefersReducedTransparency };
68
- //# sourceMappingURL=chunk-3CMPQOMY.js.map
69
- //# sourceMappingURL=chunk-3CMPQOMY.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/accessibility.ts"],"names":[],"mappings":";;;AAYA,SAAS,sBAAsB,KAAA,EAAe;AAC5C,EAAA,SAAS,UAAU,QAAA,EAAkC;AACnD,IAAA,IAAI,OAAO,MAAA,KAAW,WAAA,EAAa,OAAO,MAAM;AAAA,IAAC,CAAA;AACjD,IAAA,MAAM,GAAA,GAAM,MAAA,CAAO,UAAA,CAAW,KAAK,CAAA;AACnC,IAAA,GAAA,CAAI,gBAAA,CAAiB,UAAU,QAAQ,CAAA;AACvC,IAAA,OAAO,MAAM,GAAA,CAAI,mBAAA,CAAoB,QAAA,EAAU,QAAQ,CAAA;AAAA,EACzD;AAEA,EAAA,SAAS,WAAA,GAAuB;AAC9B,IAAA,IAAI,OAAO,MAAA,KAAW,WAAA,EAAa,OAAO,KAAA;AAC1C,IAAA,OAAO,MAAA,CAAO,UAAA,CAAW,KAAK,CAAA,CAAE,OAAA;AAAA,EAClC;AAEA,EAAA,SAAS,iBAAA,GAA6B;AACpC,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,OAAO,EAAE,SAAA,EAAW,WAAA,EAAa,iBAAA,EAAkB;AACrD;AAMA,IAAM,wBAAA,GAA2B,qBAAA;AAAA,EAC/B;AACF,CAAA;AAWO,SAAS,0BAAA,GAAsC;AACpD,EAAA,IAAI,OAAO,MAAA,KAAW,WAAA,EAAa,OAAO,KAAA;AAC1C,EAAA,OAAO,MAAA,CAAO,UAAA,CAAW,wCAAwC,CAAA,CAAE,OAAA;AACrE;AAWO,SAAS,6BAAA,GAAyC;AACvD,EAAA,OAAO,oBAAA;AAAA,IACL,wBAAA,CAAyB,SAAA;AAAA,IACzB,wBAAA,CAAyB,WAAA;AAAA,IACzB,wBAAA,CAAyB;AAAA,GAC3B;AACF;AAMA,IAAM,kBAAA,GAAqB,qBAAA;AAAA,EACzB;AACF,CAAA;AAUO,SAAS,uBAAA,GAAmC;AACjD,EAAA,OAAO,oBAAA;AAAA,IACL,kBAAA,CAAmB,SAAA;AAAA,IACnB,kBAAA,CAAmB,WAAA;AAAA,IACnB,kBAAA,CAAmB;AAAA,GACrB;AACF;AAMA,IAAM,gBAAA,GAAmB,qBAAA;AAAA,EACvB;AACF,CAAA;AAOO,SAAS,qBAAA,GAA0C;AACxD,EAAA,MAAM,MAAA,GAAS,oBAAA;AAAA,IACb,gBAAA,CAAiB,SAAA;AAAA,IACjB,gBAAA,CAAiB,WAAA;AAAA,IACjB,gBAAA,CAAiB;AAAA,GACnB;AACA,EAAA,OAAO,SAAS,MAAA,GAAS,OAAA;AAC3B;AAMA,IAAM,iBAAA,GAAoB,qBAAA;AAAA,EACxB;AACF,CAAA;AAOO,SAAS,sBAAA,GAAkC;AAChD,EAAA,OAAO,oBAAA;AAAA,IACL,iBAAA,CAAkB,SAAA;AAAA,IAClB,iBAAA,CAAkB,WAAA;AAAA,IAClB,iBAAA,CAAkB;AAAA,GACpB;AACF","file":"chunk-3CMPQOMY.js","sourcesContent":["\"use client\";\n\nimport { useSyncExternalStore } from \"react\";\n\n// ============================================================================\n// MEDIA QUERY SUBSCRIPTION HELPER\n// ============================================================================\n\n/**\n * Creates a concurrent-safe subscription to a CSS media query\n * for use with React.useSyncExternalStore.\n */\nfunction createMediaQueryStore(query: string) {\n function subscribe(callback: () => void): () => void {\n if (typeof window === \"undefined\") return () => {};\n const mql = window.matchMedia(query);\n mql.addEventListener(\"change\", callback);\n return () => mql.removeEventListener(\"change\", callback);\n }\n\n function getSnapshot(): boolean {\n if (typeof window === \"undefined\") return false;\n return window.matchMedia(query).matches;\n }\n\n function getServerSnapshot(): boolean {\n return false;\n }\n\n return { subscribe, getSnapshot, getServerSnapshot };\n}\n\n// ============================================================================\n// REDUCED TRANSPARENCY\n// ============================================================================\n\nconst reducedTransparencyStore = createMediaQueryStore(\n \"(prefers-reduced-transparency: reduce)\"\n);\n\n/**\n * Check if user prefers reduced transparency.\n *\n * Uses the CSS media query `prefers-reduced-transparency: reduce`.\n * SSR-safe: returns false on the server.\n *\n * NOTE: Browser support is limited (Safari 16.4+, Firefox 113+).\n * Falls back to false when not supported.\n */\nexport function prefersReducedTransparency(): boolean {\n if (typeof window === \"undefined\") return false;\n return window.matchMedia(\"(prefers-reduced-transparency: reduce)\").matches;\n}\n\n/**\n * React hook that reactively tracks the user's reduced-transparency preference.\n *\n * Unlike the bare `prefersReducedTransparency()` function, this hook\n * subscribes to media-query change events and triggers a re-render\n * when the preference changes (e.g. user toggles the OS setting).\n *\n * @returns boolean -- true when the user prefers reduced transparency\n */\nexport function usePrefersReducedTransparency(): boolean {\n return useSyncExternalStore(\n reducedTransparencyStore.subscribe,\n reducedTransparencyStore.getSnapshot,\n reducedTransparencyStore.getServerSnapshot\n );\n}\n\n// ============================================================================\n// REDUCED MOTION\n// ============================================================================\n\nconst reducedMotionStore = createMediaQueryStore(\n \"(prefers-reduced-motion: reduce)\"\n);\n\n/**\n * React hook that reactively tracks the user's reduced-motion preference.\n *\n * Subscribes to media-query change events and triggers a re-render\n * when the preference changes (e.g. user toggles the OS setting).\n *\n * @returns boolean -- true when the user prefers reduced motion\n */\nexport function usePrefersReducedMotion(): boolean {\n return useSyncExternalStore(\n reducedMotionStore.subscribe,\n reducedMotionStore.getSnapshot,\n reducedMotionStore.getServerSnapshot\n );\n}\n\n// ============================================================================\n// COLOR SCHEME\n// ============================================================================\n\nconst colorSchemeStore = createMediaQueryStore(\n \"(prefers-color-scheme: dark)\"\n);\n\n/**\n * React hook that reactively tracks the user's preferred color scheme.\n *\n * @returns \"dark\" | \"light\" based on the OS/browser preference\n */\nexport function usePrefersColorScheme(): \"dark\" | \"light\" {\n const isDark = useSyncExternalStore(\n colorSchemeStore.subscribe,\n colorSchemeStore.getSnapshot,\n colorSchemeStore.getServerSnapshot\n );\n return isDark ? \"dark\" : \"light\";\n}\n\n// ============================================================================\n// HIGH CONTRAST\n// ============================================================================\n\nconst highContrastStore = createMediaQueryStore(\n \"(prefers-contrast: more)\"\n);\n\n/**\n * React hook that reactively tracks the user's high-contrast preference.\n *\n * @returns boolean -- true when the user prefers higher contrast\n */\nexport function usePrefersHighContrast(): boolean {\n return useSyncExternalStore(\n highContrastStore.subscribe,\n highContrastStore.getSnapshot,\n highContrastStore.getServerSnapshot\n );\n}\n"]}
@@ -1,41 +0,0 @@
1
- import { useLayoutEffect2 } from './chunk-7UQD6ROV.js';
2
- import * as React from 'react';
3
-
4
- function useSize(element) {
5
- const [size, setSize] = React.useState(void 0);
6
- useLayoutEffect2(() => {
7
- if (element) {
8
- setSize({ width: element.offsetWidth, height: element.offsetHeight });
9
- const resizeObserver = new ResizeObserver((entries) => {
10
- if (!Array.isArray(entries)) {
11
- return;
12
- }
13
- if (!entries.length) {
14
- return;
15
- }
16
- const entry = entries[0];
17
- let width;
18
- let height;
19
- if ("borderBoxSize" in entry) {
20
- const borderSizeEntry = entry["borderBoxSize"];
21
- const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;
22
- width = borderSize["inlineSize"];
23
- height = borderSize["blockSize"];
24
- } else {
25
- width = element.offsetWidth;
26
- height = element.offsetHeight;
27
- }
28
- setSize({ width, height });
29
- });
30
- resizeObserver.observe(element, { box: "border-box" });
31
- return () => resizeObserver.unobserve(element);
32
- } else {
33
- setSize(void 0);
34
- }
35
- }, [element]);
36
- return size;
37
- }
38
-
39
- export { useSize };
40
- //# sourceMappingURL=chunk-3OQT6IYR.js.map
41
- //# sourceMappingURL=chunk-3OQT6IYR.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../node_modules/@radix-ui/react-use-size/src/use-size.tsx"],"names":[],"mappings":";;;AAKA,SAAS,QAAQ,OAAA,EAA6B;AAC5C,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAU,eAAwD,MAAS,CAAA;AAE/F,EAAA,gBAAA,CAAgB,MAAM;AACpB,IAAA,IAAI,OAAA,EAAS;AAEX,MAAA,OAAA,CAAQ,EAAE,KAAA,EAAO,OAAA,CAAQ,aAAa,MAAA,EAAQ,OAAA,CAAQ,cAAc,CAAA;AAEpE,MAAA,MAAM,cAAA,GAAiB,IAAI,cAAA,CAAe,CAAC,OAAA,KAAY;AACrD,QAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,EAAG;AAC3B,UAAA;AACF,QAAA;AAIA,QAAA,IAAI,CAAC,QAAQ,MAAA,EAAQ;AACnB,UAAA;AACF,QAAA;AAEA,QAAA,MAAM,KAAA,GAAQ,QAAQ,CAAC,CAAA;AACvB,QAAA,IAAI,KAAA;AACJ,QAAA,IAAI,MAAA;AAEJ,QAAA,IAAI,mBAAmB,KAAA,EAAO;AAC5B,UAAA,MAAM,eAAA,GAAkB,MAAM,eAAe,CAAA;AAE7C,UAAA,MAAM,aAAa,KAAA,CAAM,OAAA,CAAQ,eAAe,CAAA,GAAI,eAAA,CAAgB,CAAC,CAAA,GAAI,eAAA;AACzE,UAAA,KAAA,GAAQ,WAAW,YAAY,CAAA;AAC/B,UAAA,MAAA,GAAS,WAAW,WAAW,CAAA;QACjC,CAAA,MAAO;AAGL,UAAA,KAAA,GAAQ,OAAA,CAAQ,WAAA;AAChB,UAAA,MAAA,GAAS,OAAA,CAAQ,YAAA;AACnB,QAAA;AAEA,QAAA,OAAA,CAAQ,EAAE,KAAA,EAAO,MAAA,EAAQ,CAAA;MAC3B,CAAC,CAAA;AAED,MAAA,cAAA,CAAe,OAAA,CAAQ,OAAA,EAAS,EAAE,GAAA,EAAK,cAAc,CAAA;AAErD,MAAA,OAAO,MAAM,cAAA,CAAe,SAAA,CAAU,OAAO,CAAA;IAC/C,CAAA,MAAO;AAGL,MAAA,OAAA,CAAQ,MAAS,CAAA;AACnB,IAAA;EACF,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,OAAO,IAAA;AACT","file":"chunk-3OQT6IYR.js","sourcesContent":["/// <reference types=\"resize-observer-browser\" />\n\nimport * as React from 'react';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\n\nfunction useSize(element: HTMLElement | null) {\n const [size, setSize] = React.useState<{ width: number; height: number } | undefined>(undefined);\n\n useLayoutEffect(() => {\n if (element) {\n // provide size as early as possible\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n\n // Since we only observe the one element, we don't need to loop over the\n // array\n if (!entries.length) {\n return;\n }\n\n const entry = entries[0];\n let width: number;\n let height: number;\n\n if ('borderBoxSize' in entry) {\n const borderSizeEntry = entry['borderBoxSize'];\n // iron out differences between browsers\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize['inlineSize'];\n height = borderSize['blockSize'];\n } else {\n // for browsers that don't support `borderBoxSize`\n // we calculate it ourselves to get the correct border box.\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n\n setSize({ width, height });\n });\n\n resizeObserver.observe(element, { box: 'border-box' });\n\n return () => resizeObserver.unobserve(element);\n } else {\n // We only want to reset to `undefined` when the element becomes `null`,\n // not if it changes to another element.\n setSize(undefined);\n }\n }, [element]);\n\n return size;\n}\n\nexport { useSize };\n"]}
@@ -1,85 +0,0 @@
1
- import { createSlot } from './chunk-FEW533R2.js';
2
- import { cn } from './chunk-6RX2WGCO.js';
3
- import * as React from 'react';
4
- import 'react-dom';
5
- import { jsx } from 'react/jsx-runtime';
6
-
7
- var NODES = [
8
- "a",
9
- "button",
10
- "div",
11
- "form",
12
- "h2",
13
- "h3",
14
- "img",
15
- "input",
16
- "label",
17
- "li",
18
- "nav",
19
- "ol",
20
- "p",
21
- "select",
22
- "span",
23
- "svg",
24
- "ul"
25
- ];
26
- var Primitive = NODES.reduce((primitive, node) => {
27
- const Slot = createSlot(`Primitive.${node}`);
28
- const Node = React.forwardRef((props, forwardedRef) => {
29
- const { asChild, ...primitiveProps } = props;
30
- const Comp = asChild ? Slot : node;
31
- if (typeof window !== "undefined") {
32
- window[/* @__PURE__ */ Symbol.for("radix-ui")] = true;
33
- }
34
- return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });
35
- });
36
- Node.displayName = `Primitive.${node}`;
37
- return { ...primitive, [node]: Node };
38
- }, {});
39
- var NAME = "Separator";
40
- var DEFAULT_ORIENTATION = "horizontal";
41
- var ORIENTATIONS = ["horizontal", "vertical"];
42
- var Separator = React.forwardRef((props, forwardedRef) => {
43
- const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;
44
- const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;
45
- const ariaOrientation = orientation === "vertical" ? orientation : void 0;
46
- const semanticProps = decorative ? { role: "none" } : { "aria-orientation": ariaOrientation, role: "separator" };
47
- return /* @__PURE__ */ jsx(
48
- Primitive.div,
49
- {
50
- "data-orientation": orientation,
51
- ...semanticProps,
52
- ...domProps,
53
- ref: forwardedRef
54
- }
55
- );
56
- });
57
- Separator.displayName = NAME;
58
- function isValidOrientation(orientation) {
59
- return ORIENTATIONS.includes(orientation);
60
- }
61
- var Root = Separator;
62
- function Separator2({
63
- className,
64
- orientation = "horizontal",
65
- decorative = true,
66
- ...props
67
- }) {
68
- return /* @__PURE__ */ jsx(
69
- Root,
70
- {
71
- "data-slot": "separator",
72
- decorative,
73
- orientation,
74
- className: cn(
75
- "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
76
- className
77
- ),
78
- ...props
79
- }
80
- );
81
- }
82
-
83
- export { Separator2 as Separator };
84
- //# sourceMappingURL=chunk-43B2WVLS.js.map
85
- //# sourceMappingURL=chunk-43B2WVLS.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/src/primitive.tsx","../../../node_modules/@radix-ui/react-separator/src/separator.tsx","../src/primitives/ui/separator.tsx"],"names":["React2","jsx","Separator"],"mappings":"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","file":"chunk-43B2WVLS.js","sourcesContent":["import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createSlot } from '@radix-ui/react-slot';\n\nconst NODES = [\n 'a',\n 'button',\n 'div',\n 'form',\n 'h2',\n 'h3',\n 'img',\n 'input',\n 'label',\n 'li',\n 'nav',\n 'ol',\n 'p',\n 'select',\n 'span',\n 'svg',\n 'ul',\n] as const;\n\ntype Primitives = { [E in (typeof NODES)[number]]: PrimitiveForwardRefComponent<E> };\ntype PrimitivePropsWithRef<E extends React.ElementType> = React.ComponentPropsWithRef<E> & {\n asChild?: boolean;\n};\n\ninterface PrimitiveForwardRefComponent<E extends React.ElementType>\n extends React.ForwardRefExoticComponent<PrimitivePropsWithRef<E>> {}\n\n/* -------------------------------------------------------------------------------------------------\n * Primitive\n * -----------------------------------------------------------------------------------------------*/\n\nconst Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props: PrimitivePropsWithRef<typeof node>, forwardedRef: any) => {\n const { asChild, ...primitiveProps } = props;\n const Comp: any = asChild ? Slot : node;\n\n if (typeof window !== 'undefined') {\n (window as any)[Symbol.for('radix-ui')] = true;\n }\n\n return <Comp {...primitiveProps} ref={forwardedRef} />;\n });\n\n Node.displayName = `Primitive.${node}`;\n\n return { ...primitive, [node]: Node };\n}, {} as Primitives);\n\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Flush custom event dispatch\n * https://github.com/radix-ui/primitives/pull/1378\n *\n * React batches *all* event handlers since version 18, this introduces certain considerations when using custom event types.\n *\n * Internally, React prioritises events in the following order:\n * - discrete\n * - continuous\n * - default\n *\n * https://github.com/facebook/react/blob/a8a4742f1c54493df00da648a3f9d26e3db9c8b5/packages/react-dom/src/events/ReactDOMEventListener.js#L294-L350\n *\n * `discrete` is an important distinction as updates within these events are applied immediately.\n * React however, is not able to infer the priority of custom event types due to how they are detected internally.\n * Because of this, it's possible for updates from custom events to be unexpectedly batched when\n * dispatched by another `discrete` event.\n *\n * In order to ensure that updates from custom events are applied predictably, we need to manually flush the batch.\n * This utility should be used when dispatching a custom event from within another `discrete` event, this utility\n * is not necessary when dispatching known event types, or if dispatching a custom type inside a non-discrete event.\n * For example:\n *\n * dispatching a known click 👎\n * target.dispatchEvent(new Event(‘click’))\n *\n * dispatching a custom type within a non-discrete event 👎\n * onScroll={(event) => event.target.dispatchEvent(new CustomEvent(‘customType’))}\n *\n * dispatching a custom type within a `discrete` event 👍\n * onPointerDown={(event) => dispatchDiscreteCustomEvent(event.target, new CustomEvent(‘customType’))}\n *\n * Note: though React classifies `focus`, `focusin` and `focusout` events as `discrete`, it's not recommended to use\n * this utility with them. This is because it's possible for those handlers to be called implicitly during render\n * e.g. when focus is within a component as it is unmounted, or when managing focus on mount.\n */\n\nfunction dispatchDiscreteCustomEvent<E extends CustomEvent>(target: E['target'], event: E) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Primitive;\n\nexport {\n Primitive,\n //\n Root,\n //\n dispatchDiscreteCustomEvent,\n};\nexport type { PrimitivePropsWithRef };\n","import * as React from 'react';\nimport { Primitive } from '@radix-ui/react-primitive';\n\n/* -------------------------------------------------------------------------------------------------\n * Separator\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAME = 'Separator';\nconst DEFAULT_ORIENTATION = 'horizontal';\nconst ORIENTATIONS = ['horizontal', 'vertical'] as const;\n\ntype Orientation = (typeof ORIENTATIONS)[number];\ntype SeparatorElement = React.ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface SeparatorProps extends PrimitiveDivProps {\n /**\n * Either `vertical` or `horizontal`. Defaults to `horizontal`.\n */\n orientation?: Orientation;\n /**\n * Whether or not the component is purely decorative. When true, accessibility-related attributes\n * are updated so that that the rendered element is removed from the accessibility tree.\n */\n decorative?: boolean;\n}\n\nconst Separator = React.forwardRef<SeparatorElement, SeparatorProps>((props, forwardedRef) => {\n const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;\n const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;\n // `aria-orientation` defaults to `horizontal` so we only need it if `orientation` is vertical\n const ariaOrientation = orientation === 'vertical' ? orientation : undefined;\n const semanticProps = decorative\n ? { role: 'none' }\n : { 'aria-orientation': ariaOrientation, role: 'separator' };\n\n return (\n <Primitive.div\n data-orientation={orientation}\n {...semanticProps}\n {...domProps}\n ref={forwardedRef}\n />\n );\n});\n\nSeparator.displayName = NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction isValidOrientation(orientation: any): orientation is Orientation {\n return ORIENTATIONS.includes(orientation);\n}\n\nconst Root = Separator;\n\nexport {\n Separator,\n //\n Root,\n};\nexport type { SeparatorProps };\n","\"use client\";\n\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n"]}