@backbay/glia 0.2.0-alpha.7 → 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 +15 -9
  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/theme/nebula.ts","../src/theme/solarpunk.ts","../src/theme/registry.ts","../src/theme/UiThemeProvider.tsx","../src/theme/GliaThemeProvider.tsx","../src/theme/bridge.ts","../src/theme/materials.ts"],"names":["React2","STORAGE_KEY","jsx","easeToCss"],"mappings":"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","file":"chunk-VITKG2HL.js","sourcesContent":["/**\n * Nebula Theme - Clinical Cyberpunk HUD\n *\n * The original Out-of-Scope aesthetic: deep space darkness with\n * cyan/magenta neon accents, glass panels, and starfield ambience.\n */\n\nimport type { UiTheme } from \"./types\";\n\nexport const nebulaTheme: UiTheme = {\n id: \"nebula\",\n name: \"Nebula\",\n description: \"Clinical cyberpunk HUD with neon accents and starfield ambience\",\n\n color: {\n bg: {\n body: \"#02040a\",\n panel: \"rgba(4, 8, 16, 0.94)\",\n elevated: \"rgba(12, 17, 23, 0.98)\",\n horizon: \"#050609\",\n },\n text: {\n primary: \"#E5E7EB\",\n muted: \"#94A3B8\",\n soft: \"#64748B\",\n },\n accent: {\n primary: \"#22D3EE\", // cyan-neon\n secondary: \"#F43F5E\", // magenta-neon\n positive: \"#10B981\", // emerald-neon\n warning: \"#EAB308\", // yellow-warning\n destructive: \"#F43F5E\",\n },\n border: \"rgba(34, 211, 238, 0.12)\",\n ring: \"#22D3EE\",\n },\n\n glass: {\n panelBg: \"rgba(4, 8, 16, 0.94)\",\n panelBorder: \"rgba(34, 211, 238, 0.12)\",\n panelBlur: \"24px\",\n headerGradient:\n \"linear-gradient(to right, rgba(255, 255, 255, 0.025), rgba(255, 255, 255, 0.015), transparent)\",\n cardBg: \"rgba(255, 255, 255, 0.015)\",\n cardBorder: \"rgba(255, 255, 255, 0.04)\",\n hoverBg: \"rgba(34, 211, 238, 0.08)\",\n activeBorder: \"rgba(34, 211, 238, 0.35)\",\n activeShadow: \"0 6px 28px rgba(34, 211, 238, 0.1)\",\n },\n\n elevation: {\n softDrop: \"0 2px 8px rgba(0, 0, 0, 0.15)\",\n hudPanel: \"0 8px 32px rgba(2, 4, 8, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.02)\",\n hudRail: \"0 -6px 32px rgba(2, 4, 8, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.02)\",\n modal: \"0 16px 48px rgba(0, 0, 0, 0.5), 0 8px 24px rgba(34, 211, 238, 0.08)\",\n glow: \"0 0 16px 1px rgba(34, 211, 238, 0.4)\",\n },\n\n motion: {\n fast: { duration: 0.15, ease: \"easeOut\" },\n normal: { duration: 0.2, ease: \"easeOut\" },\n spring: { type: \"spring\", damping: 25, stiffness: 280 },\n ambientDrift: { duration: 8, ease: \"linear\" },\n ripple: { duration: 2, ease: \"easeInOut\" },\n },\n\n ambient: {\n type: \"nebula-stars\",\n particleColors: [\"#22D3EE\", \"#F43F5E\", \"#8B5CF6\", \"#10B981\"],\n particleDensity: 0.6,\n particleSpeed: 0.3,\n particleSizeRange: [1, 3],\n horizonGradient: `\n radial-gradient(ellipse at top left, rgba(34, 211, 238, 0.08), transparent 50%),\n radial-gradient(ellipse at bottom right, rgba(139, 92, 246, 0.06), transparent 50%),\n radial-gradient(circle at 30% 70%, rgba(244, 63, 94, 0.04), transparent 40%)\n `,\n rippleColorPrimary: \"rgba(34, 211, 238, 0.04)\",\n rippleColorSecondary: \"rgba(217, 70, 239, 0.025)\",\n glowIntensity: 0.8,\n },\n\n controls: {\n switch: {\n track: {\n bg: {\n on: \"rgba(34, 211, 238, 0.2)\",\n off: \"rgba(255, 255, 255, 0.08)\",\n },\n border: {\n on: \"rgba(34, 211, 238, 0.4)\",\n off: \"rgba(255, 255, 255, 0.15)\",\n },\n },\n thumb: {\n bg: {\n on: \"#22D3EE\",\n off: \"#64748B\",\n },\n shadow: {\n on: \"0 0 8px rgba(34, 211, 238, 0.5)\",\n off: \"0 1px 2px rgba(0, 0, 0, 0.2)\",\n },\n },\n },\n slider: {\n track: {\n bg: \"rgba(255, 255, 255, 0.08)\",\n border: \"rgba(255, 255, 255, 0.15)\",\n },\n thumb: {\n bg: \"#22D3EE\",\n shadow: \"0 0 8px rgba(34, 211, 238, 0.5)\",\n },\n fill: \"rgba(34, 211, 238, 0.6)\",\n },\n buttonGlow: {\n hoverBg: \"rgba(34, 211, 238, 0.08)\",\n hoverText: \"#22D3EE\",\n hoverShadow: \"0 0 10px rgba(34, 211, 238, 0.1)\",\n },\n },\n\n fonts: {\n display: \"'Inter', sans-serif\",\n body: \"'Inter', sans-serif\",\n mono: \"'JetBrains Mono', monospace\",\n },\n\n radii: {\n sm: \"6px\",\n md: \"8px\",\n lg: \"8px\",\n },\n\n spacing: {\n taskbarHeight: \"48px\",\n titlebarHeight: \"36px\",\n windowPadding: \"12px\",\n iconSize: \"64px\",\n iconGap: \"16px\",\n windowBorderWidth: \"1px\",\n },\n};\n","/**\n * Solarpunk Theme - Botanical Observatory\n *\n * A warmer, sunlit aesthetic: deep navy with jade and gold accents,\n * soft analog controls, and floating dust motes.\n */\n\nimport type { UiTheme } from \"./types\";\n\nexport const solarpunkTheme: UiTheme = {\n id: \"solarpunk\",\n name: \"Solarpunk Observatory\",\n description: \"Botanical space station with sunlit warmth and organic calm\",\n\n color: {\n bg: {\n body: \"#0a0f14\", // Slightly warmer than nebula\n panel: \"rgba(16, 24, 32, 0.92)\",\n elevated: \"rgba(24, 32, 40, 0.96)\",\n horizon: \"#0d1318\",\n },\n text: {\n primary: \"#F0EDE8\", // Warm white\n muted: \"#A8B4A8\", // Sage-tinged gray\n soft: \"#6B7B6B\", // Muted sage\n },\n accent: {\n primary: \"#F5A623\", // Warm gold (sun)\n secondary: \"#4ADE80\", // Leaf green\n positive: \"#4ADE80\", // Same leaf green\n warning: \"#FB923C\", // Warm orange\n destructive: \"#EF4444\", // Softer red\n },\n border: \"rgba(74, 222, 128, 0.15)\",\n ring: \"#4ADE80\",\n },\n\n glass: {\n panelBg: \"rgba(16, 24, 20, 0.88)\", // Jade-tinted\n panelBorder: \"rgba(74, 222, 128, 0.12)\",\n panelBlur: \"20px\", // Slightly less blur for organic feel\n headerGradient:\n \"linear-gradient(to right, rgba(245, 166, 35, 0.06), rgba(74, 222, 128, 0.04), transparent)\",\n cardBg: \"rgba(245, 166, 35, 0.02)\",\n cardBorder: \"rgba(74, 222, 128, 0.08)\",\n hoverBg: \"rgba(245, 166, 35, 0.06)\",\n activeBorder: \"rgba(245, 166, 35, 0.35)\",\n activeShadow: \"0 6px 24px rgba(245, 166, 35, 0.1)\",\n },\n\n elevation: {\n softDrop: \"0 4px 12px rgba(0, 0, 0, 0.12)\",\n hudPanel: \"0 8px 32px rgba(10, 15, 20, 0.5), inset 0 1px 0 rgba(245, 166, 35, 0.02)\",\n hudRail: \"0 -6px 28px rgba(10, 15, 20, 0.5), inset 0 1px 0 rgba(74, 222, 128, 0.03)\",\n modal: \"0 16px 48px rgba(0, 0, 0, 0.4), 0 4px 16px rgba(245, 166, 35, 0.06)\",\n glow: \"0 0 20px 2px rgba(245, 166, 35, 0.25)\",\n },\n\n motion: {\n fast: { duration: 0.18, ease: \"easeOut\" },\n normal: { duration: 0.25, ease: [0.4, 0, 0.2, 1] }, // Slightly smoother\n spring: { type: \"spring\", damping: 28, stiffness: 240 }, // More relaxed\n ambientDrift: { duration: 12, ease: \"linear\" }, // Slower drift\n ripple: { duration: 2.5, ease: \"easeInOut\" },\n },\n\n ambient: {\n type: \"dust-motes\",\n particleColors: [\n \"rgba(245, 166, 35, 0.6)\", // Gold\n \"rgba(255, 248, 220, 0.5)\", // Warm cream\n \"rgba(74, 222, 128, 0.3)\", // Faint green\n \"rgba(255, 255, 255, 0.4)\", // White\n ],\n particleDensity: 0.35, // Sparser than stars\n particleSpeed: 0.15, // Slower, lazier drift\n particleSizeRange: [2, 6], // Larger motes\n horizonGradient: `\n radial-gradient(ellipse at top, rgba(245, 166, 35, 0.06), transparent 60%),\n radial-gradient(ellipse at bottom left, rgba(74, 222, 128, 0.05), transparent 50%),\n linear-gradient(to bottom, rgba(16, 24, 20, 0.3), transparent 70%)\n `,\n rippleColorPrimary: \"rgba(245, 166, 35, 0.035)\",\n rippleColorSecondary: \"rgba(74, 222, 128, 0.025)\",\n glowIntensity: 0.5, // Softer glow\n },\n\n controls: {\n switch: {\n track: {\n bg: {\n on: \"rgba(74, 222, 128, 0.2)\",\n off: \"rgba(245, 230, 210, 0.1)\", // Warm cream off state\n },\n border: {\n on: \"rgba(74, 222, 128, 0.4)\",\n off: \"rgba(245, 230, 210, 0.2)\",\n },\n },\n thumb: {\n bg: {\n on: \"#F5A623\", // Gold sun disk\n off: \"#8B9B8B\", // Sage gray\n },\n shadow: {\n on: \"0 0 10px rgba(245, 166, 35, 0.5), inset 0 -1px 2px rgba(0,0,0,0.1)\",\n off: \"0 1px 3px rgba(0, 0, 0, 0.15)\",\n },\n },\n },\n slider: {\n track: {\n bg: \"rgba(245, 230, 210, 0.1)\",\n border: \"rgba(74, 222, 128, 0.15)\",\n },\n thumb: {\n bg: \"linear-gradient(135deg, #F5A623, #D4860F)\", // Brass/wood knob\n shadow: \"0 2px 6px rgba(0, 0, 0, 0.2), 0 0 8px rgba(245, 166, 35, 0.3)\",\n },\n fill: \"rgba(74, 222, 128, 0.5)\",\n },\n buttonGlow: {\n hoverBg: \"rgba(245, 166, 35, 0.08)\",\n hoverText: \"#F5A623\",\n hoverShadow: \"0 0 12px rgba(245, 166, 35, 0.12)\",\n },\n },\n\n fonts: {\n display: \"'Inter', sans-serif\",\n body: \"'Inter', sans-serif\",\n mono: \"'JetBrains Mono', monospace\",\n },\n\n radii: {\n sm: \"6px\",\n md: \"8px\",\n lg: \"8px\",\n },\n\n spacing: {\n taskbarHeight: \"48px\",\n titlebarHeight: \"36px\",\n windowPadding: \"12px\",\n iconSize: \"64px\",\n iconGap: \"16px\",\n windowBorderWidth: \"1px\",\n },\n};\n","/**\n * Theme Registry\n *\n * Central registry of all available UI themes.\n * Provides lookup and utility functions for theme management.\n */\n\nimport { nebulaTheme } from \"./nebula\";\nimport { solarpunkTheme } from \"./solarpunk\";\nimport type { ThemeCssVariables, UiTheme, UiThemeId } from \"./types\";\n\n// ============================================================================\n// THEME REGISTRY\n// ============================================================================\n\nexport const THEMES: Record<UiThemeId, UiTheme> = {\n nebula: nebulaTheme,\n solarpunk: solarpunkTheme,\n};\n\nexport const DEFAULT_THEME_ID: UiThemeId = \"nebula\";\n\nexport function getTheme(id: UiThemeId): UiTheme {\n return THEMES[id] ?? THEMES[DEFAULT_THEME_ID];\n}\n\nexport function getThemeIds(): UiThemeId[] {\n return Object.keys(THEMES) as UiThemeId[];\n}\n\n// ============================================================================\n// CSS VARIABLE GENERATION\n// ============================================================================\n\ntype RgbColor = { r: number; g: number; b: number };\n\nfunction clampByte(value: number): number {\n if (Number.isNaN(value)) return 0;\n return Math.min(255, Math.max(0, value));\n}\n\nfunction parseHexColor(hex: string): RgbColor | null {\n const value = hex.trim();\n if (!value.startsWith(\"#\")) return null;\n\n const raw = value.slice(1);\n if (raw.length === 3) {\n const r = Number.parseInt(raw[0] + raw[0], 16);\n const g = Number.parseInt(raw[1] + raw[1], 16);\n const b = Number.parseInt(raw[2] + raw[2], 16);\n if ([r, g, b].some((n) => Number.isNaN(n))) return null;\n return { r, g, b };\n }\n\n if (raw.length === 6) {\n const r = Number.parseInt(raw.slice(0, 2), 16);\n const g = Number.parseInt(raw.slice(2, 4), 16);\n const b = Number.parseInt(raw.slice(4, 6), 16);\n if ([r, g, b].some((n) => Number.isNaN(n))) return null;\n return { r, g, b };\n }\n\n return null;\n}\n\nfunction parseRgbFunction(color: string): RgbColor | null {\n const match = color\n .trim()\n .match(/^rgba?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)(?:\\s*,\\s*[\\d.]+)?\\s*\\)$/i);\n if (!match) return null;\n\n const r = clampByte(Number.parseFloat(match[1]));\n const g = clampByte(Number.parseFloat(match[2]));\n const b = clampByte(Number.parseFloat(match[3]));\n return { r, g, b };\n}\n\nfunction parseColorToRgb(color: string): RgbColor | null {\n return parseHexColor(color) ?? parseRgbFunction(color);\n}\n\nfunction rgbToHslComponents(rgb: RgbColor): string {\n const r = rgb.r / 255;\n const g = rgb.g / 255;\n const b = rgb.b / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const delta = max - min;\n\n let h = 0;\n let s = 0;\n const l = (max + min) / 2;\n\n if (delta !== 0) {\n s = l > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / delta + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / delta + 2;\n break;\n default:\n h = (r - g) / delta + 4;\n break;\n }\n\n h /= 6;\n }\n\n const hDeg = Math.round(h * 360);\n const sPct = Math.round(s * 100);\n const lPct = Math.round(l * 100);\n return `${hDeg} ${sPct}% ${lPct}%`;\n}\n\nexport function colorToHslComponents(color: string): string | null {\n const rgb = parseColorToRgb(color);\n if (!rgb) return null;\n return rgbToHslComponents(rgb);\n}\n\n/**\n * Converts a theme object to CSS custom properties\n */\nexport function themeToCssVariables(theme: UiTheme): ThemeCssVariables {\n return {\n // Colors\n \"--theme-bg-body\": theme.color.bg.body,\n \"--theme-bg-panel\": theme.color.bg.panel,\n \"--theme-bg-elevated\": theme.color.bg.elevated,\n \"--theme-bg-horizon\": theme.color.bg.horizon,\n \"--theme-text-primary\": theme.color.text.primary,\n \"--theme-text-muted\": theme.color.text.muted,\n \"--theme-text-soft\": theme.color.text.soft,\n \"--theme-accent-primary\": theme.color.accent.primary,\n \"--theme-accent-secondary\": theme.color.accent.secondary,\n \"--theme-accent-positive\": theme.color.accent.positive,\n \"--theme-accent-warning\": theme.color.accent.warning,\n \"--theme-accent-destructive\": theme.color.accent.destructive,\n \"--theme-border\": theme.color.border,\n \"--theme-ring\": theme.color.ring,\n\n // Glass\n \"--theme-glass-panel-bg\": theme.glass.panelBg,\n \"--theme-glass-panel-border\": theme.glass.panelBorder,\n \"--theme-glass-panel-blur\": theme.glass.panelBlur,\n \"--theme-glass-header-gradient\": theme.glass.headerGradient,\n \"--theme-glass-card-bg\": theme.glass.cardBg,\n \"--theme-glass-card-border\": theme.glass.cardBorder,\n \"--theme-glass-hover-bg\": theme.glass.hoverBg,\n \"--theme-glass-active-border\": theme.glass.activeBorder,\n \"--theme-glass-active-shadow\": theme.glass.activeShadow,\n\n // Elevation\n \"--theme-shadow-soft\": theme.elevation.softDrop,\n \"--theme-shadow-hud-panel\": theme.elevation.hudPanel,\n \"--theme-shadow-hud-rail\": theme.elevation.hudRail,\n \"--theme-shadow-modal\": theme.elevation.modal,\n \"--theme-shadow-glow\": theme.elevation.glow,\n\n // Ambient\n \"--theme-ambient-horizon\": theme.ambient.horizonGradient,\n \"--theme-ambient-ripple-primary\": theme.ambient.rippleColorPrimary,\n \"--theme-ambient-ripple-secondary\": theme.ambient.rippleColorSecondary,\n \"--theme-ambient-glow-intensity\": String(theme.ambient.glowIntensity),\n\n // Controls\n \"--theme-switch-track-on\": theme.controls.switch.track.bg.on,\n \"--theme-switch-track-off\": theme.controls.switch.track.bg.off,\n \"--theme-switch-thumb-on\": theme.controls.switch.thumb.bg.on,\n \"--theme-switch-thumb-off\": theme.controls.switch.thumb.bg.off,\n \"--theme-button-glow-hover-bg\": theme.controls.buttonGlow.hoverBg,\n \"--theme-button-glow-hover-text\": theme.controls.buttonGlow.hoverText,\n \"--theme-button-glow-hover-shadow\": theme.controls.buttonGlow.hoverShadow,\n };\n}\n\nconst TAILWIND_CSS_VARIABLE_KEYS = [\n \"--cyan-neon\",\n \"--magenta-neon\",\n \"--emerald-neon\",\n \"--violet-neon\",\n \"--yellow-warning\",\n \"--background\",\n \"--foreground\",\n \"--card\",\n \"--card-foreground\",\n \"--popover\",\n \"--popover-foreground\",\n \"--primary\",\n \"--primary-foreground\",\n \"--secondary\",\n \"--secondary-foreground\",\n \"--muted\",\n \"--muted-foreground\",\n \"--accent\",\n \"--accent-foreground\",\n \"--destructive\",\n \"--destructive-foreground\",\n \"--border\",\n \"--input\",\n \"--ring\",\n] as const;\n\ntype TailwindCssVariables = Partial<Record<(typeof TAILWIND_CSS_VARIABLE_KEYS)[number], string>>;\n\nfunction themeToTailwindCssVariables(theme: UiTheme): TailwindCssVariables {\n const bg = colorToHslComponents(theme.color.bg.body);\n const fg = colorToHslComponents(theme.color.text.primary);\n const panel = colorToHslComponents(theme.color.bg.panel);\n const elevated = colorToHslComponents(theme.color.bg.elevated);\n const primary = colorToHslComponents(theme.color.accent.primary);\n const secondary = colorToHslComponents(theme.color.accent.secondary);\n const positive = colorToHslComponents(theme.color.accent.positive);\n const warning = colorToHslComponents(theme.color.accent.warning);\n const destructive = colorToHslComponents(theme.color.accent.destructive);\n const border = colorToHslComponents(theme.color.border);\n const ring = colorToHslComponents(theme.color.ring);\n const mutedFg = colorToHslComponents(theme.color.text.muted);\n\n const violetFallback =\n theme.id === \"nebula\"\n ? colorToHslComponents(\"#8B5CF6\")\n : colorToHslComponents(theme.color.accent.secondary);\n\n return {\n \"--cyan-neon\": primary ?? undefined,\n \"--magenta-neon\": secondary ?? undefined,\n \"--emerald-neon\": positive ?? undefined,\n \"--violet-neon\": violetFallback ?? undefined,\n \"--yellow-warning\": warning ?? undefined,\n\n \"--background\": bg ?? undefined,\n \"--foreground\": fg ?? undefined,\n\n \"--card\": panel ?? undefined,\n \"--card-foreground\": fg ?? undefined,\n\n \"--popover\": elevated ?? undefined,\n \"--popover-foreground\": fg ?? undefined,\n\n \"--primary\": primary ?? undefined,\n \"--primary-foreground\": bg ?? undefined,\n\n \"--secondary\": secondary ?? undefined,\n \"--secondary-foreground\": fg ?? undefined,\n\n \"--muted\": elevated ?? undefined,\n \"--muted-foreground\": mutedFg ?? undefined,\n\n \"--accent\": panel ?? undefined,\n \"--accent-foreground\": primary ?? undefined,\n\n \"--destructive\": destructive ?? undefined,\n \"--destructive-foreground\": fg ?? undefined,\n\n \"--border\": border ?? undefined,\n \"--input\": elevated ?? undefined,\n \"--ring\": ring ?? undefined,\n };\n}\n\n/**\n * Applies theme CSS variables to a target element\n */\nexport function applyThemeCssVariables(\n theme: UiTheme,\n target: HTMLElement = document.documentElement\n): void {\n const variables = themeToCssVariables(theme);\n const tailwindVariables = themeToTailwindCssVariables(theme);\n\n for (const [key, value] of Object.entries(variables)) {\n target.style.setProperty(key, value);\n }\n\n for (const [key, value] of Object.entries(tailwindVariables)) {\n if (!value) continue;\n target.style.setProperty(key, value);\n }\n\n // Set data attribute for CSS selectors\n target.dataset.uiTheme = theme.id;\n}\n\n/**\n * Removes theme CSS variables from a target element\n */\nexport function removeThemeCssVariables(target: HTMLElement = document.documentElement): void {\n const variables = themeToCssVariables(THEMES.nebula);\n\n for (const key of Object.keys(variables)) {\n target.style.removeProperty(key);\n }\n\n for (const key of TAILWIND_CSS_VARIABLE_KEYS) {\n target.style.removeProperty(key);\n }\n\n delete target.dataset.uiTheme;\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { MotionConfig } from \"framer-motion\";\nimport { applyThemeCssVariables, DEFAULT_THEME_ID, getTheme } from \"./registry\";\nimport type { UiTheme, UiThemeContextValue, UiThemeId } from \"./types\";\nimport { usePrefersReducedMotion } from \"../lib/accessibility\";\n\n// ============================================================================\n// CONTEXT\n// ============================================================================\n\nconst UiThemeContext = React.createContext<UiThemeContextValue | null>(null);\n\n// ============================================================================\n// PROVIDER\n// ============================================================================\n\nexport interface UiThemeProviderProps {\n children: React.ReactNode;\n /** Initial theme ID */\n defaultThemeId?: UiThemeId;\n /** Controlled theme ID */\n themeId?: UiThemeId;\n /** Callback when theme changes */\n onThemeChange?: (themeId: UiThemeId) => void;\n /** Storage key for persisting theme preference */\n storageKey?: string;\n /** Disable CSS variable injection (for SSR or custom handling) */\n disableCssVariables?: boolean;\n}\n\nconst STORAGE_KEY = \"oos-ui-theme\";\n\nexport function UiThemeProvider({\n children,\n defaultThemeId = DEFAULT_THEME_ID,\n themeId: controlledThemeId,\n onThemeChange,\n storageKey = STORAGE_KEY,\n disableCssVariables = false,\n}: UiThemeProviderProps) {\n const deprecationWarned = React.useRef(false);\n if (!deprecationWarned.current) {\n deprecationWarned.current = true;\n console.warn(\"[Glia] UiThemeProvider is deprecated. Use GliaThemeProvider instead.\");\n }\n\n const [isHydrating, setIsHydrating] = React.useState(true);\n const [internalThemeId, setInternalThemeId] = React.useState<UiThemeId>(defaultThemeId);\n\n // Determine active theme ID (controlled vs uncontrolled)\n const activeThemeId = controlledThemeId ?? internalThemeId;\n const theme = getTheme(activeThemeId);\n\n // Load persisted theme on mount\n React.useEffect(() => {\n if (controlledThemeId !== undefined) {\n setIsHydrating(false);\n return;\n }\n\n try {\n const stored = localStorage.getItem(storageKey);\n if (stored && (stored === \"nebula\" || stored === \"solarpunk\")) {\n setInternalThemeId(stored as UiThemeId);\n }\n } catch {\n // localStorage not available\n }\n\n setIsHydrating(false);\n }, [controlledThemeId, storageKey]);\n\n // Apply CSS variables when theme changes\n React.useEffect(() => {\n if (disableCssVariables || isHydrating) return;\n\n applyThemeCssVariables(theme);\n\n return () => {\n // Cleanup is handled by the next theme application\n };\n }, [theme, disableCssVariables, isHydrating]);\n\n // Theme setter\n const setThemeId = React.useCallback(\n (id: UiThemeId) => {\n if (controlledThemeId === undefined) {\n setInternalThemeId(id);\n try {\n localStorage.setItem(storageKey, id);\n } catch {\n // localStorage not available\n }\n }\n onThemeChange?.(id);\n },\n [controlledThemeId, onThemeChange, storageKey]\n );\n\n const contextValue = React.useMemo<UiThemeContextValue>(\n () => ({\n theme,\n themeId: activeThemeId,\n setThemeId,\n isHydrating,\n }),\n [theme, activeThemeId, setThemeId, isHydrating]\n );\n\n const reduceMotion = usePrefersReducedMotion();\n\n return (\n <UiThemeContext.Provider value={contextValue}>\n <MotionConfig reducedMotion={reduceMotion ? \"always\" : \"never\"}>\n {children}\n </MotionConfig>\n </UiThemeContext.Provider>\n );\n}\n\n// ============================================================================\n// HOOKS\n// ============================================================================\n\n/**\n * Access the current UI theme context\n */\nexport function useUiTheme(): UiThemeContextValue {\n const context = React.useContext(UiThemeContext);\n\n if (!context) {\n throw new Error(\"useUiTheme must be used within a UiThemeProvider\");\n }\n\n return context;\n}\n\n/**\n * Access just the current theme object (shorthand)\n */\nexport function useThemeTokens(): UiTheme {\n const { theme } = useUiTheme();\n return theme;\n}\n\n/**\n * Access specific token groups\n */\nexport function useGlassTokens() {\n const { theme } = useUiTheme();\n return theme.glass;\n}\n\nexport function useColorTokens() {\n const { theme } = useUiTheme();\n return theme.color;\n}\n\nexport function useMotionTokens() {\n const { theme } = useUiTheme();\n return theme.motion;\n}\n\nexport function useAmbientTokens() {\n const { theme } = useUiTheme();\n return theme.ambient;\n}\n\nexport function useControlTokens() {\n const { theme } = useUiTheme();\n return theme.controls;\n}\n\nexport function useElevationTokens() {\n const { theme } = useUiTheme();\n return theme.elevation;\n}\n\n// ============================================================================\n// UTILITY HOOKS\n// ============================================================================\n\n/**\n * Returns true if the current theme is Solarpunk\n */\nexport function useIsSolarpunk(): boolean {\n const { themeId } = useUiTheme();\n return themeId === \"solarpunk\";\n}\n\n/**\n * Returns true if the current theme is Nebula\n */\nexport function useIsNebula(): boolean {\n const { themeId } = useUiTheme();\n return themeId === \"nebula\";\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport {\n getTheme,\n DEFAULT_THEME_ID,\n applyThemeCssVariables,\n colorToHslComponents,\n} from \"./registry\";\nimport type { UiTheme, UiThemeId } from \"./types\";\n\n// SSR-safe useLayoutEffect\nconst useIsomorphicLayoutEffect =\n typeof window !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\n\n// ============================================================================\n// GLIA CSS VARIABLE GENERATION\n// ============================================================================\n\n/**\n * Convert a UiTheme motion ease value to a CSS easing string.\n */\nfunction easeToCss(ease: string | number[]): string {\n if (Array.isArray(ease)) {\n return `cubic-bezier(${ease[0]}, ${ease[1]}, ${ease[2]}, ${ease[3]})`;\n }\n const map: Record<string, string> = {\n linear: \"linear\",\n easeIn: \"cubic-bezier(0.4, 0, 1, 1)\",\n easeOut: \"cubic-bezier(0, 0, 0.2, 1)\",\n easeInOut: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n };\n return map[ease] ?? \"cubic-bezier(0.4, 0, 0.2, 1)\";\n}\n\n/**\n * Build all --glia-* CSS variables from a UiTheme.\n * Also produces backward-compatible --theme-* and --bb-* aliases.\n */\nexport function buildGliaCssVariables(theme: UiTheme): Record<string, string> {\n const vars: Record<string, string> = {};\n\n // ---- Colors ----\n vars[\"--glia-color-bg-body\"] = theme.color.bg.body;\n vars[\"--glia-color-bg-panel\"] = theme.color.bg.panel;\n vars[\"--glia-color-bg-elevated\"] = theme.color.bg.elevated;\n vars[\"--glia-color-bg-horizon\"] = theme.color.bg.horizon;\n vars[\"--glia-color-text-primary\"] = theme.color.text.primary;\n vars[\"--glia-color-text-muted\"] = theme.color.text.muted;\n vars[\"--glia-color-text-soft\"] = theme.color.text.soft;\n vars[\"--glia-color-accent\"] = theme.color.accent.primary;\n vars[\"--glia-color-accent-secondary\"] = theme.color.accent.secondary;\n vars[\"--glia-color-accent-positive\"] = theme.color.accent.positive;\n vars[\"--glia-color-accent-warning\"] = theme.color.accent.warning;\n vars[\"--glia-color-accent-destructive\"] = theme.color.accent.destructive;\n vars[\"--glia-color-border\"] = theme.color.border;\n vars[\"--glia-color-ring\"] = theme.color.ring;\n\n // ---- Glass ----\n vars[\"--glia-glass-panel-bg\"] = theme.glass.panelBg;\n vars[\"--glia-glass-panel-border\"] = theme.glass.panelBorder;\n vars[\"--glia-glass-panel-blur\"] = theme.glass.panelBlur;\n vars[\"--glia-glass-header-gradient\"] = theme.glass.headerGradient;\n vars[\"--glia-glass-card-bg\"] = theme.glass.cardBg;\n vars[\"--glia-glass-card-border\"] = theme.glass.cardBorder;\n vars[\"--glia-glass-hover-bg\"] = theme.glass.hoverBg;\n vars[\"--glia-glass-active-border\"] = theme.glass.activeBorder;\n vars[\"--glia-glass-active-shadow\"] = theme.glass.activeShadow;\n\n // ---- Elevation ----\n vars[\"--glia-shadow-soft\"] = theme.elevation.softDrop;\n vars[\"--glia-shadow-hud-panel\"] = theme.elevation.hudPanel;\n vars[\"--glia-shadow-hud-rail\"] = theme.elevation.hudRail;\n vars[\"--glia-shadow-modal\"] = theme.elevation.modal;\n vars[\"--glia-shadow-glow\"] = theme.elevation.glow;\n\n // ---- Ambient ----\n vars[\"--glia-ambient-horizon\"] = theme.ambient.horizonGradient;\n vars[\"--glia-ambient-ripple-primary\"] = theme.ambient.rippleColorPrimary;\n vars[\"--glia-ambient-ripple-secondary\"] = theme.ambient.rippleColorSecondary;\n vars[\"--glia-ambient-glow-intensity\"] = String(theme.ambient.glowIntensity);\n\n // ---- Controls ----\n vars[\"--glia-switch-track-on\"] = theme.controls.switch.track.bg.on;\n vars[\"--glia-switch-track-off\"] = theme.controls.switch.track.bg.off;\n vars[\"--glia-switch-thumb-on\"] = theme.controls.switch.thumb.bg.on;\n vars[\"--glia-switch-thumb-off\"] = theme.controls.switch.thumb.bg.off;\n vars[\"--glia-button-glow-hover-bg\"] = theme.controls.buttonGlow.hoverBg;\n vars[\"--glia-button-glow-hover-text\"] = theme.controls.buttonGlow.hoverText;\n vars[\"--glia-button-glow-hover-shadow\"] = theme.controls.buttonGlow.hoverShadow;\n\n // ---- Fonts ----\n vars[\"--glia-font-display\"] = theme.fonts.display;\n vars[\"--glia-font-body\"] = theme.fonts.body;\n vars[\"--glia-font-mono\"] = theme.fonts.mono;\n\n // ---- Radii ----\n vars[\"--glia-radius-sm\"] = theme.radii.sm;\n vars[\"--glia-radius-md\"] = theme.radii.md;\n vars[\"--glia-radius-lg\"] = theme.radii.lg;\n\n // ---- Spacing ----\n vars[\"--glia-spacing-taskbar-height\"] = theme.spacing.taskbarHeight;\n vars[\"--glia-spacing-titlebar-height\"] = theme.spacing.titlebarHeight;\n vars[\"--glia-spacing-window-padding\"] = theme.spacing.windowPadding;\n vars[\"--glia-spacing-icon-size\"] = theme.spacing.iconSize;\n vars[\"--glia-spacing-icon-gap\"] = theme.spacing.iconGap;\n vars[\"--glia-spacing-window-border-width\"] = theme.spacing.windowBorderWidth;\n\n // ---- Motion / Animation ----\n const fastMs = Math.round(theme.motion.fast.duration * 1000);\n const normalMs = Math.round(theme.motion.normal.duration * 1000);\n const slowMs = Math.round(theme.motion.normal.duration * 1500);\n vars[\"--glia-duration-fast\"] = `${fastMs}ms`;\n vars[\"--glia-duration-normal\"] = `${normalMs}ms`;\n vars[\"--glia-duration-slow\"] = `${slowMs}ms`;\n vars[\"--glia-easing-default\"] = easeToCss(theme.motion.normal.ease);\n vars[\"--glia-easing-spring\"] = \"cubic-bezier(0.34, 1.56, 0.64, 1)\";\n vars[\"--glia-easing-bounce\"] = \"cubic-bezier(0.68, -0.55, 0.265, 1.55)\";\n\n // ---- Blur ----\n vars[\"--glia-blur-backdrop\"] = `blur(${theme.glass.panelBlur})`;\n\n // ---- Tailwind HSL component variables (--glia-tw-*) ----\n const twMap: Record<string, string> = {\n \"background\": theme.color.bg.body,\n \"foreground\": theme.color.text.primary,\n \"card\": theme.color.bg.panel,\n \"card-foreground\": theme.color.text.primary,\n \"popover\": theme.color.bg.elevated,\n \"popover-foreground\": theme.color.text.primary,\n \"primary\": theme.color.accent.primary,\n \"primary-foreground\": theme.color.bg.body,\n \"secondary\": theme.color.accent.secondary,\n \"secondary-foreground\": theme.color.text.primary,\n \"muted\": theme.color.bg.elevated,\n \"muted-foreground\": theme.color.text.muted,\n \"accent\": theme.color.bg.panel,\n \"accent-foreground\": theme.color.accent.primary,\n \"destructive\": theme.color.accent.destructive,\n \"destructive-foreground\": theme.color.text.primary,\n \"border\": theme.color.border,\n \"input\": theme.color.bg.elevated,\n \"ring\": theme.color.ring,\n };\n for (const [name, color] of Object.entries(twMap)) {\n const hsl = colorToHslComponents(color);\n if (hsl) {\n vars[`--glia-tw-${name}`] = hsl;\n }\n }\n\n // Neon accents for Tailwind\n const neonMap: Record<string, string> = {\n \"cyan-neon\": theme.color.accent.primary,\n \"magenta-neon\": theme.color.accent.secondary,\n \"emerald-neon\": theme.color.accent.positive,\n \"yellow-warning\": theme.color.accent.warning,\n };\n const violetFallback =\n theme.id === \"nebula\" ? \"#8B5CF6\" : theme.color.accent.secondary;\n neonMap[\"violet-neon\"] = violetFallback;\n for (const [name, color] of Object.entries(neonMap)) {\n const hsl = colorToHslComponents(color);\n if (hsl) {\n vars[`--glia-tw-${name}`] = hsl;\n }\n }\n\n // ============================================================================\n // BACKWARD-COMPATIBLE ALIASES: --theme-* -> var(--glia-*)\n // ============================================================================\n vars[\"--theme-bg-body\"] = \"var(--glia-color-bg-body)\";\n vars[\"--theme-bg-panel\"] = \"var(--glia-color-bg-panel)\";\n vars[\"--theme-bg-elevated\"] = \"var(--glia-color-bg-elevated)\";\n vars[\"--theme-bg-horizon\"] = \"var(--glia-color-bg-horizon)\";\n vars[\"--theme-text-primary\"] = \"var(--glia-color-text-primary)\";\n vars[\"--theme-text-muted\"] = \"var(--glia-color-text-muted)\";\n vars[\"--theme-text-soft\"] = \"var(--glia-color-text-soft)\";\n vars[\"--theme-accent-primary\"] = \"var(--glia-color-accent)\";\n vars[\"--theme-accent-secondary\"] = \"var(--glia-color-accent-secondary)\";\n vars[\"--theme-accent-positive\"] = \"var(--glia-color-accent-positive)\";\n vars[\"--theme-accent-warning\"] = \"var(--glia-color-accent-warning)\";\n vars[\"--theme-accent-destructive\"] = \"var(--glia-color-accent-destructive)\";\n vars[\"--theme-border\"] = \"var(--glia-color-border)\";\n vars[\"--theme-ring\"] = \"var(--glia-color-ring)\";\n vars[\"--theme-glass-panel-bg\"] = \"var(--glia-glass-panel-bg)\";\n vars[\"--theme-glass-panel-border\"] = \"var(--glia-glass-panel-border)\";\n vars[\"--theme-glass-panel-blur\"] = \"var(--glia-glass-panel-blur)\";\n vars[\"--theme-glass-header-gradient\"] = \"var(--glia-glass-header-gradient)\";\n vars[\"--theme-glass-card-bg\"] = \"var(--glia-glass-card-bg)\";\n vars[\"--theme-glass-card-border\"] = \"var(--glia-glass-card-border)\";\n vars[\"--theme-glass-hover-bg\"] = \"var(--glia-glass-hover-bg)\";\n vars[\"--theme-glass-active-border\"] = \"var(--glia-glass-active-border)\";\n vars[\"--theme-glass-active-shadow\"] = \"var(--glia-glass-active-shadow)\";\n vars[\"--theme-shadow-soft\"] = \"var(--glia-shadow-soft)\";\n vars[\"--theme-shadow-hud-panel\"] = \"var(--glia-shadow-hud-panel)\";\n vars[\"--theme-shadow-hud-rail\"] = \"var(--glia-shadow-hud-rail)\";\n vars[\"--theme-shadow-modal\"] = \"var(--glia-shadow-modal)\";\n vars[\"--theme-shadow-glow\"] = \"var(--glia-shadow-glow)\";\n vars[\"--theme-ambient-horizon\"] = \"var(--glia-ambient-horizon)\";\n vars[\"--theme-ambient-ripple-primary\"] = \"var(--glia-ambient-ripple-primary)\";\n vars[\"--theme-ambient-ripple-secondary\"] = \"var(--glia-ambient-ripple-secondary)\";\n vars[\"--theme-ambient-glow-intensity\"] = \"var(--glia-ambient-glow-intensity)\";\n vars[\"--theme-switch-track-on\"] = \"var(--glia-switch-track-on)\";\n vars[\"--theme-switch-track-off\"] = \"var(--glia-switch-track-off)\";\n vars[\"--theme-switch-thumb-on\"] = \"var(--glia-switch-thumb-on)\";\n vars[\"--theme-switch-thumb-off\"] = \"var(--glia-switch-thumb-off)\";\n vars[\"--theme-button-glow-hover-bg\"] = \"var(--glia-button-glow-hover-bg)\";\n vars[\"--theme-button-glow-hover-text\"] = \"var(--glia-button-glow-hover-text)\";\n vars[\"--theme-button-glow-hover-shadow\"] = \"var(--glia-button-glow-hover-shadow)\";\n\n // ============================================================================\n // BACKWARD-COMPATIBLE ALIASES: --bb-* -> var(--glia-*)\n // ============================================================================\n // Colors\n vars[\"--bb-color-window-bg\"] = \"var(--glia-color-bg-panel)\";\n vars[\"--bb-color-window-border\"] = \"var(--glia-color-border)\";\n vars[\"--bb-color-window-border-focused\"] = \"var(--glia-glass-active-border)\";\n vars[\"--bb-color-titlebar-bg\"] = \"var(--glia-color-bg-panel)\";\n vars[\"--bb-color-titlebar-text\"] = \"var(--glia-color-text-primary)\";\n vars[\"--bb-color-accent\"] = \"var(--glia-color-accent)\";\n vars[\"--bb-color-accent-muted\"] = \"var(--glia-glass-hover-bg)\";\n vars[\"--bb-color-accent-glow\"] = \"var(--glia-glass-active-shadow)\";\n vars[\"--bb-color-taskbar-bg\"] = \"var(--glia-glass-panel-bg)\";\n vars[\"--bb-color-taskbar-text\"] = \"var(--glia-color-text-muted)\";\n vars[\"--bb-color-start-menu-bg\"] = \"var(--glia-color-bg-elevated)\";\n vars[\"--bb-color-context-menu-bg\"] = \"var(--glia-color-bg-elevated)\";\n vars[\"--bb-color-context-menu-hover\"] = \"var(--glia-glass-hover-bg)\";\n vars[\"--bb-color-desktop-bg\"] = \"var(--glia-color-bg-body)\";\n vars[\"--bb-color-icon-text\"] = \"var(--glia-color-text-muted)\";\n vars[\"--bb-color-icon-selected\"] = \"var(--glia-glass-hover-bg)\";\n vars[\"--bb-color-destructive\"] = \"var(--glia-color-accent-destructive)\";\n vars[\"--bb-color-success\"] = \"var(--glia-color-accent-positive)\";\n vars[\"--bb-color-warning\"] = \"var(--glia-color-accent-warning)\";\n vars[\"--bb-color-text-primary\"] = \"var(--glia-color-text-primary)\";\n vars[\"--bb-color-text-secondary\"] = \"var(--glia-color-text-muted)\";\n vars[\"--bb-color-text-muted\"] = \"var(--glia-color-text-soft)\";\n // Fonts\n vars[\"--bb-font-display\"] = \"var(--glia-font-display)\";\n vars[\"--bb-font-body\"] = \"var(--glia-font-body)\";\n vars[\"--bb-font-mono\"] = \"var(--glia-font-mono)\";\n // Radii\n vars[\"--bb-radius-window\"] = \"var(--glia-radius-lg)\";\n vars[\"--bb-radius-button\"] = \"var(--glia-radius-sm)\";\n vars[\"--bb-radius-menu\"] = \"var(--glia-radius-md)\";\n vars[\"--bb-radius-input\"] = \"var(--glia-radius-sm)\";\n // Shadows\n vars[\"--bb-shadow-window\"] = \"var(--glia-shadow-hud-panel)\";\n vars[\"--bb-shadow-window-focused\"] = \"var(--glia-shadow-modal)\";\n vars[\"--bb-shadow-menu\"] = \"var(--glia-shadow-hud-panel)\";\n vars[\"--bb-shadow-tooltip\"] = \"var(--glia-shadow-soft)\";\n // Spacing\n vars[\"--bb-spacing-window-padding\"] = \"var(--glia-spacing-window-padding)\";\n vars[\"--bb-spacing-taskbar-height\"] = \"var(--glia-spacing-taskbar-height)\";\n vars[\"--bb-spacing-icon-size\"] = \"var(--glia-spacing-icon-size)\";\n vars[\"--bb-spacing-icon-gap\"] = \"var(--glia-spacing-icon-gap)\";\n vars[\"--bb-spacing-titlebar-height\"] = \"var(--glia-spacing-titlebar-height)\";\n vars[\"--bb-spacing-window-border-width\"] = \"var(--glia-spacing-window-border-width)\";\n // Animation\n vars[\"--bb-duration-fast\"] = \"var(--glia-duration-fast)\";\n vars[\"--bb-duration-normal\"] = \"var(--glia-duration-normal)\";\n vars[\"--bb-duration-slow\"] = \"var(--glia-duration-slow)\";\n vars[\"--bb-easing-default\"] = \"var(--glia-easing-default)\";\n vars[\"--bb-easing-spring\"] = \"var(--glia-easing-spring)\";\n vars[\"--bb-easing-bounce\"] = \"var(--glia-easing-bounce)\";\n // Blur\n vars[\"--bb-blur-backdrop\"] = \"var(--glia-blur-backdrop)\";\n\n return vars;\n}\n\n/**\n * Apply all --glia-* CSS variables (plus backward-compat aliases) to an element.\n * Also sets Tailwind-compatible variables via the existing registry machinery.\n */\nexport function applyGliaCssVariables(\n theme: UiTheme,\n target: HTMLElement = document.documentElement,\n): void {\n const vars = buildGliaCssVariables(theme);\n for (const [key, value] of Object.entries(vars)) {\n target.style.setProperty(key, value);\n }\n\n // Apply legacy --theme-* and Tailwind vars with real values\n // (applyThemeCssVariables sets --theme-* + bare --background, etc.)\n applyThemeCssVariables(theme, target);\n\n target.dataset.gliaTheme = theme.id;\n}\n\n// ============================================================================\n// CONTEXT\n// ============================================================================\n\nexport interface GliaThemeContextValue {\n theme: UiTheme;\n themeId: UiThemeId;\n setThemeId: (id: UiThemeId) => void;\n}\n\nconst GliaThemeContext = React.createContext<GliaThemeContextValue | null>(null);\n\n// ============================================================================\n// PROVIDER\n// ============================================================================\n\nexport interface GliaThemeProviderProps {\n children: React.ReactNode;\n /** Theme ID (default: 'nebula') */\n themeId?: UiThemeId;\n /** Deep partial overrides merged on top of the resolved theme */\n overrides?: Partial<UiTheme>;\n /** Storage key for persisting theme preference */\n storageKey?: string;\n}\n\nconst STORAGE_KEY = \"glia-theme\";\n\nexport function GliaThemeProvider({\n children,\n themeId: controlledThemeId,\n overrides,\n storageKey = STORAGE_KEY,\n}: GliaThemeProviderProps) {\n const [internalThemeId, setInternalThemeId] = React.useState<UiThemeId>(\n controlledThemeId ?? DEFAULT_THEME_ID,\n );\n\n const activeThemeId = controlledThemeId ?? internalThemeId;\n\n const theme = React.useMemo(() => {\n const base = getTheme(activeThemeId);\n if (!overrides) return base;\n return { ...base, ...overrides } as UiTheme;\n }, [activeThemeId, overrides]);\n\n // Load persisted theme on mount (uncontrolled mode only)\n React.useEffect(() => {\n if (controlledThemeId !== undefined) return;\n try {\n const stored = localStorage.getItem(storageKey);\n if (stored && (stored === \"nebula\" || stored === \"solarpunk\")) {\n setInternalThemeId(stored as UiThemeId);\n }\n } catch {\n // localStorage not available\n }\n }, [controlledThemeId, storageKey]);\n\n // Inject CSS variables\n useIsomorphicLayoutEffect(() => {\n applyGliaCssVariables(theme);\n return () => {\n // Cleanup handled by next theme application\n };\n }, [theme]);\n\n const setThemeId = React.useCallback(\n (id: UiThemeId) => {\n if (controlledThemeId === undefined) {\n setInternalThemeId(id);\n try {\n localStorage.setItem(storageKey, id);\n } catch {\n // localStorage not available\n }\n }\n },\n [controlledThemeId, storageKey],\n );\n\n const contextValue = React.useMemo<GliaThemeContextValue>(\n () => ({ theme, themeId: activeThemeId, setThemeId }),\n [theme, activeThemeId, setThemeId],\n );\n\n return (\n <GliaThemeContext.Provider value={contextValue}>\n {children}\n </GliaThemeContext.Provider>\n );\n}\n\n// ============================================================================\n// HOOKS\n// ============================================================================\n\nexport function useGliaTheme(): GliaThemeContextValue {\n const context = React.useContext(GliaThemeContext);\n if (!context) {\n throw new Error(\"useGliaTheme must be used within a GliaThemeProvider\");\n }\n return context;\n}\n\nexport function useFontTokens() {\n const { theme } = useGliaTheme();\n return theme.fonts;\n}\n\nexport function useRadiiTokens() {\n const { theme } = useGliaTheme();\n return theme.radii;\n}\n\nexport function useSpacingTokens() {\n const { theme } = useGliaTheme();\n return theme.spacing;\n}\n","/**\n * Theme Bridge -- Maps UiTheme tokens to DesktopOSTheme tokens.\n *\n * Allows the desktop OS shell to be styled consistently with the\n * active UiTheme, creating a unified visual experience.\n *\n * @example\n * ```tsx\n * import { nebulaTheme } from '@backbay/glia/theme';\n * import { desktopThemeFromUiTheme } from '@backbay/glia/theme';\n *\n * const desktopTheme = desktopThemeFromUiTheme(nebulaTheme);\n * // Use with <DesktopOSProvider theme={desktopTheme}>\n * ```\n */\n\nimport type { UiTheme } from './types';\nimport type { DesktopOSTheme } from '../desktop/themes/types';\n\n/**\n * Options for customizing the bridge mapping.\n */\nexport interface ThemeBridgeOptions {\n /** Override specific DesktopOSTheme values after mapping */\n overrides?: Partial<{\n colors: Partial<DesktopOSTheme['colors']>;\n fonts: Partial<DesktopOSTheme['fonts']>;\n radii: Partial<DesktopOSTheme['radii']>;\n shadows: Partial<DesktopOSTheme['shadows']>;\n spacing: Partial<DesktopOSTheme['spacing']>;\n }>;\n /** Custom font families (UiTheme doesn't include font tokens) */\n fonts?: {\n display?: string;\n body?: string;\n mono?: string;\n };\n}\n\n/**\n * Named easing presets used by framer-motion / UiTheme motion tokens.\n * Maps to CSS cubic-bezier equivalents.\n */\nconst EASING_MAP: Record<string, string> = {\n linear: 'linear',\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n easeOut: 'cubic-bezier(0, 0, 0.2, 1)',\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n};\n\n/**\n * Convert a UiTheme motion ease value to a CSS easing string.\n *\n * Handles both named easings (e.g. \"easeOut\") and numeric arrays\n * (e.g. [0.4, 0, 0.2, 1]).\n */\nfunction easeToCss(ease: string | number[]): string {\n if (Array.isArray(ease)) {\n return `cubic-bezier(${ease[0]}, ${ease[1]}, ${ease[2]}, ${ease[3]})`;\n }\n return EASING_MAP[ease] ?? 'cubic-bezier(0.4, 0, 0.2, 1)';\n}\n\n/**\n * Extract an rgba color from a CSS box-shadow string.\n *\n * Looks for `rgba(...)` or `rgb(...)` patterns and returns the first match.\n * Falls back to the provided fallback color if no match is found.\n */\nfunction extractColorFromShadow(shadow: string, fallback: string): string {\n const rgbaMatch = shadow.match(/rgba?\\([^)]+\\)/);\n return rgbaMatch ? rgbaMatch[0] : fallback;\n}\n\n/**\n * Nudge the alpha channel of an rgba color string by a delta.\n *\n * If the input isn't a valid rgba() string, returns it unchanged.\n */\nfunction nudgeAlpha(color: string, delta: number): string {\n const match = color.match(\n /^rgba\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d.]+)\\s*\\)$/,\n );\n if (!match) return color;\n const [, r, g, b, a] = match;\n const newAlpha = Math.min(1, Math.max(0, parseFloat(a) + delta));\n return `rgba(${r}, ${g}, ${b}, ${newAlpha})`;\n}\n\n/**\n * Derive a complete DesktopOSTheme from a UiTheme.\n *\n * This is the core bridge function. It is pure (no side effects, no DOM\n * access) and produces a full DesktopOSTheme ready for use with the\n * desktop shell's ThemeProvider.\n */\nexport function desktopThemeFromUiTheme(\n uiTheme: UiTheme,\n options: ThemeBridgeOptions = {},\n): DesktopOSTheme {\n const { overrides, fonts: fontOverrides } = options;\n\n // --- Colors ---\n const colors: DesktopOSTheme['colors'] = {\n windowBg: uiTheme.color.bg.panel,\n windowBorder: uiTheme.color.border,\n windowBorderFocused: uiTheme.glass.activeBorder,\n titlebarBg: nudgeAlpha(uiTheme.color.bg.panel, 0.02),\n titlebarText: uiTheme.color.text.primary,\n accent: uiTheme.color.accent.primary,\n accentMuted: uiTheme.glass.hoverBg,\n accentGlow: extractColorFromShadow(\n uiTheme.glass.activeShadow,\n uiTheme.color.accent.primary,\n ),\n taskbarBg: uiTheme.glass.panelBg,\n taskbarText: uiTheme.color.text.muted,\n startMenuBg: uiTheme.color.bg.elevated,\n contextMenuBg: uiTheme.color.bg.elevated,\n contextMenuHover: uiTheme.glass.hoverBg,\n desktopBg: uiTheme.color.bg.body,\n iconText: uiTheme.color.text.muted,\n iconSelected: uiTheme.glass.hoverBg,\n destructive: uiTheme.color.accent.destructive,\n success: uiTheme.color.accent.positive,\n warning: uiTheme.color.accent.warning,\n textPrimary: uiTheme.color.text.primary,\n textSecondary: uiTheme.color.text.muted,\n textMuted: uiTheme.color.text.soft,\n ...overrides?.colors,\n };\n\n // --- Fonts ---\n const fonts: DesktopOSTheme['fonts'] = {\n display: fontOverrides?.display ?? uiTheme.fonts.display,\n body: fontOverrides?.body ?? uiTheme.fonts.body,\n mono: fontOverrides?.mono ?? uiTheme.fonts.mono,\n ...overrides?.fonts,\n };\n\n // --- Radii ---\n const radii: DesktopOSTheme['radii'] = {\n window: uiTheme.radii.lg,\n button: uiTheme.radii.sm,\n menu: uiTheme.radii.md,\n input: uiTheme.radii.sm,\n ...overrides?.radii,\n };\n\n // --- Shadows ---\n const shadows: DesktopOSTheme['shadows'] = {\n window: uiTheme.elevation.hudPanel,\n windowFocused: uiTheme.elevation.modal,\n menu: uiTheme.elevation.hudPanel,\n tooltip: uiTheme.elevation.softDrop,\n ...overrides?.shadows,\n };\n\n // --- Spacing ---\n const spacing: DesktopOSTheme['spacing'] = {\n windowPadding: uiTheme.spacing.windowPadding,\n taskbarHeight: uiTheme.spacing.taskbarHeight,\n iconSize: uiTheme.spacing.iconSize,\n iconGap: uiTheme.spacing.iconGap,\n titlebarHeight: uiTheme.spacing.titlebarHeight,\n windowBorderWidth: uiTheme.spacing.windowBorderWidth,\n ...overrides?.spacing,\n };\n\n // --- Animation ---\n const fastMs = Math.round(uiTheme.motion.fast.duration * 1000);\n const normalMs = Math.round(uiTheme.motion.normal.duration * 1000);\n const slowMs = Math.round(uiTheme.motion.normal.duration * 1500);\n\n const animation: DesktopOSTheme['animation'] = {\n duration: {\n fast: `${fastMs}ms`,\n normal: `${normalMs}ms`,\n slow: `${slowMs}ms`,\n },\n easing: {\n default: easeToCss(uiTheme.motion.normal.ease),\n spring: 'cubic-bezier(0.34, 1.56, 0.64, 1)',\n bounce: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',\n },\n };\n\n // --- Blur ---\n const blur: DesktopOSTheme['blur'] = {\n backdrop: `blur(${uiTheme.glass.panelBlur})`,\n };\n\n return {\n id: `bridged-${uiTheme.id}`,\n name: `${uiTheme.name} (Bridged)`,\n colors,\n fonts,\n radii,\n shadows,\n spacing,\n animation,\n blur,\n };\n}\n","/**\n * Glass Materials -- Predefined glassmorphism material combinations.\n *\n * Materials define the visual \"substance\" of glass surfaces:\n * backdrop-filter settings, background opacity overrides,\n * border treatment, and noise overlay configuration.\n *\n * @example\n * ```tsx\n * <GlassPanel material=\"frosted\">\n * Content behind frosted glass\n * </GlassPanel>\n * ```\n */\n\nimport type { NoisePreset } from \"../lib/noise\";\n\nexport interface GlassMaterial {\n /** Material identifier */\n id: string;\n /** Human-readable name */\n name: string;\n /** Backdrop filter value (blur + optional saturate/brightness) */\n backdropFilter: string;\n /** Background opacity multiplier (0-1, applied to panelBg alpha) */\n bgOpacity: number;\n /** Border opacity multiplier (0-1, applied to panelBorder alpha) */\n borderOpacity: number;\n /** Whether to show noise overlay */\n showNoise: boolean;\n /** Noise preset to use (if showNoise is true) */\n noisePreset: NoisePreset;\n /** Noise opacity override */\n noiseOpacity: number;\n /** Additional saturate filter (percentage). 100 = normal. */\n saturate: number;\n /** Additional brightness filter (percentage). 100 = normal. */\n brightness: number;\n}\n\n/**\n * Predefined glass materials.\n */\nexport const GLASS_MATERIALS: Record<string, GlassMaterial> = {\n /**\n * Standard frosted glass -- the default material.\n * Medium blur, full opacity, subtle noise grain.\n */\n frosted: {\n id: \"frosted\",\n name: \"Frosted Glass\",\n backdropFilter: \"blur(24px)\",\n bgOpacity: 1.0,\n borderOpacity: 1.0,\n showNoise: true,\n noisePreset: \"glass\",\n noiseOpacity: 0.03,\n saturate: 180,\n brightness: 110,\n },\n\n /**\n * Thin/clear glass -- minimal blur, very transparent.\n * For subtle layering where content behind should remain visible.\n */\n thin: {\n id: \"thin\",\n name: \"Thin Glass\",\n backdropFilter: \"blur(8px)\",\n bgOpacity: 0.4,\n borderOpacity: 0.6,\n showNoise: false,\n noisePreset: \"fine\",\n noiseOpacity: 0.02,\n saturate: 120,\n brightness: 105,\n },\n\n /**\n * Thick/dense glass -- heavy blur, opaque, strong borders.\n * For modals, dialogs, and high-contrast surfaces.\n */\n thick: {\n id: \"thick\",\n name: \"Thick Glass\",\n backdropFilter: \"blur(40px)\",\n bgOpacity: 1.2,\n borderOpacity: 1.5,\n showNoise: true,\n noisePreset: \"card\",\n noiseOpacity: 0.05,\n saturate: 200,\n brightness: 100,\n },\n\n /**\n * Clear glass -- no blur, just tinted transparency.\n * For overlays that should be visible but not obscured.\n */\n clear: {\n id: \"clear\",\n name: \"Clear Glass\",\n backdropFilter: \"blur(0px)\",\n bgOpacity: 0.3,\n borderOpacity: 0.4,\n showNoise: false,\n noisePreset: \"glass\",\n noiseOpacity: 0,\n saturate: 100,\n brightness: 100,\n },\n\n /**\n * Holographic glass -- saturated, vibrant, with heavy noise.\n * For decorative/accent panels with a sci-fi feel.\n */\n holographic: {\n id: \"holographic\",\n name: \"Holographic Glass\",\n backdropFilter: \"blur(20px)\",\n bgOpacity: 0.8,\n borderOpacity: 1.0,\n showNoise: true,\n noisePreset: \"heavy\",\n noiseOpacity: 0.08,\n saturate: 250,\n brightness: 120,\n },\n};\n\nexport type GlassMaterialId = keyof typeof GLASS_MATERIALS;\n\n/**\n * Get a glass material by ID, with fallback to 'frosted'.\n */\nexport function getGlassMaterial(id: GlassMaterialId | string): GlassMaterial {\n return GLASS_MATERIALS[id] ?? GLASS_MATERIALS.frosted;\n}\n\n/**\n * Build the complete backdrop-filter CSS value for a material.\n * Combines blur with saturate and brightness.\n */\nexport function buildBackdropFilter(material: GlassMaterial): string {\n const parts = [material.backdropFilter];\n if (material.saturate !== 100) {\n parts.push(`saturate(${material.saturate}%)`);\n }\n if (material.brightness !== 100) {\n parts.push(`brightness(${material.brightness}%)`);\n }\n return parts.join(\" \");\n}\n\n/**\n * Compute the \"reduced transparency\" fallback for a material.\n * When the user prefers reduced transparency, we replace\n * backdrop-filter with a solid background and remove noise.\n */\nexport function getReducedTransparencyStyles(material: GlassMaterial): {\n backdropFilter: string;\n bgOpacity: number;\n showNoise: boolean;\n} {\n return {\n backdropFilter: \"none\",\n bgOpacity: Math.min(material.bgOpacity * 2.5, 1.0),\n showNoise: false,\n };\n}\n"]}