@blimu/react 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/dist/_virtual/index.cjs +5 -1
  2. package/dist/_virtual/index.cjs.map +1 -1
  3. package/dist/_virtual/index.js +3 -3
  4. package/dist/_virtual/index2.cjs +4 -1
  5. package/dist/_virtual/index2.cjs.map +1 -1
  6. package/dist/_virtual/index2.js +2 -2
  7. package/dist/_virtual/use-sync-external-store-shim.development.cjs +4 -1
  8. package/dist/_virtual/use-sync-external-store-shim.development.cjs.map +1 -1
  9. package/dist/_virtual/use-sync-external-store-shim.development.js +2 -2
  10. package/dist/_virtual/use-sync-external-store-shim.production.cjs +4 -1
  11. package/dist/_virtual/use-sync-external-store-shim.production.cjs.map +1 -1
  12. package/dist/_virtual/use-sync-external-store-shim.production.js +2 -2
  13. package/dist/client/auth.service.cjs +249 -1
  14. package/dist/client/auth.service.cjs.map +1 -1
  15. package/dist/client/auth.service.js +194 -96
  16. package/dist/client/auth.service.js.map +1 -1
  17. package/dist/client/external-store.cjs +26 -1
  18. package/dist/client/external-store.cjs.map +1 -1
  19. package/dist/client/external-store.js +22 -8
  20. package/dist/client/external-store.js.map +1 -1
  21. package/dist/client/runtime-client.cjs +136 -1
  22. package/dist/client/runtime-client.cjs.map +1 -1
  23. package/dist/client/runtime-client.js +85 -51
  24. package/dist/client/runtime-client.js.map +1 -1
  25. package/dist/components/index.cjs +13 -0
  26. package/dist/components/index.cjs.map +1 -0
  27. package/dist/components/index.js +13 -0
  28. package/dist/components/index.js.map +1 -0
  29. package/dist/components/members-list.cjs +132 -1
  30. package/dist/components/members-list.cjs.map +1 -1
  31. package/dist/components/members-list.js +69 -64
  32. package/dist/components/members-list.js.map +1 -1
  33. package/dist/components/redirect-to-sign-in.cjs +34 -1
  34. package/dist/components/redirect-to-sign-in.cjs.map +1 -1
  35. package/dist/components/redirect-to-sign-in.js +28 -20
  36. package/dist/components/redirect-to-sign-in.js.map +1 -1
  37. package/dist/components/sign-in-button.cjs +36 -1
  38. package/dist/components/sign-in-button.cjs.map +1 -1
  39. package/dist/components/sign-in-button.js +25 -21
  40. package/dist/components/sign-in-button.js.map +1 -1
  41. package/dist/components/ui/avatar.cjs +42 -1
  42. package/dist/components/ui/avatar.cjs.map +1 -1
  43. package/dist/components/ui/avatar.js +23 -23
  44. package/dist/components/ui/avatar.js.map +1 -1
  45. package/dist/components/ui/dropdown-menu.cjs +148 -1
  46. package/dist/components/ui/dropdown-menu.cjs.map +1 -1
  47. package/dist/components/ui/dropdown-menu.js +83 -81
  48. package/dist/components/ui/dropdown-menu.js.map +1 -1
  49. package/dist/components/user-avatar.cjs +22 -1
  50. package/dist/components/user-avatar.cjs.map +1 -1
  51. package/dist/components/user-avatar.js +16 -16
  52. package/dist/components/user-avatar.js.map +1 -1
  53. package/dist/components/user-button/styles.cjs +39 -1
  54. package/dist/components/user-button/styles.cjs.map +1 -1
  55. package/dist/components/user-button/styles.js +6 -5
  56. package/dist/components/user-button/styles.js.map +1 -1
  57. package/dist/components/user-button/user-button.cjs +98 -1
  58. package/dist/components/user-button/user-button.cjs.map +1 -1
  59. package/dist/components/user-button/user-button.js +64 -58
  60. package/dist/components/user-button/user-button.js.map +1 -1
  61. package/dist/hooks/index.cjs +14 -0
  62. package/dist/hooks/index.cjs.map +1 -0
  63. package/dist/hooks/index.d.ts +1 -0
  64. package/dist/hooks/index.d.ts.map +1 -1
  65. package/dist/hooks/index.js +14 -0
  66. package/dist/hooks/index.js.map +1 -0
  67. package/dist/hooks/use-auth.cjs +44 -1
  68. package/dist/hooks/use-auth.cjs.map +1 -1
  69. package/dist/hooks/use-auth.d.ts +13 -15
  70. package/dist/hooks/use-auth.d.ts.map +1 -1
  71. package/dist/hooks/use-auth.js +30 -26
  72. package/dist/hooks/use-auth.js.map +1 -1
  73. package/dist/hooks/use-client.cjs +9 -1
  74. package/dist/hooks/use-client.cjs.map +1 -1
  75. package/dist/hooks/use-client.d.ts +1 -1
  76. package/dist/hooks/use-client.d.ts.map +1 -1
  77. package/dist/hooks/use-client.js +6 -5
  78. package/dist/hooks/use-client.js.map +1 -1
  79. package/dist/hooks/use-members.cjs +60 -1
  80. package/dist/hooks/use-members.cjs.map +1 -1
  81. package/dist/hooks/use-members.js +53 -41
  82. package/dist/hooks/use-members.js.map +1 -1
  83. package/dist/hooks/use-store.cjs +17 -1
  84. package/dist/hooks/use-store.cjs.map +1 -1
  85. package/dist/hooks/use-store.js +7 -7
  86. package/dist/hooks/use-store.js.map +1 -1
  87. package/dist/index.cjs +37 -1
  88. package/dist/index.cjs.map +1 -1
  89. package/dist/index.d.ts +1 -1
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +35 -35
  92. package/dist/lib/utils.cjs +8 -1
  93. package/dist/lib/utils.cjs.map +1 -1
  94. package/dist/lib/utils.js +5 -5
  95. package/dist/lib/utils.js.map +1 -1
  96. package/dist/lib/variants.cjs +46 -1
  97. package/dist/lib/variants.cjs.map +1 -1
  98. package/dist/lib/variants.js +6 -5
  99. package/dist/lib/variants.js.map +1 -1
  100. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.cjs +721 -1
  101. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.cjs.map +1 -1
  102. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +571 -377
  103. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -1
  104. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.cjs +625 -1
  105. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.cjs.map +1 -1
  106. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +539 -316
  107. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -1
  108. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.cjs +313 -1
  109. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.cjs.map +1 -1
  110. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +261 -172
  111. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js.map +1 -1
  112. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.cjs +154 -1
  113. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.cjs.map +1 -1
  114. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.cjs +173 -1
  115. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.cjs.map +1 -1
  116. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +144 -107
  117. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -1
  118. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +111 -87
  119. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +1 -1
  120. package/dist/node_modules/@radix-ui/primitive/dist/index.cjs +11 -1
  121. package/dist/node_modules/@radix-ui/primitive/dist/index.cjs.map +1 -1
  122. package/dist/node_modules/@radix-ui/primitive/dist/index.js +7 -5
  123. package/dist/node_modules/@radix-ui/primitive/dist/index.js.map +1 -1
  124. package/dist/node_modules/@radix-ui/react-arrow/dist/index.cjs +42 -1
  125. package/dist/node_modules/@radix-ui/react-arrow/dist/index.cjs.map +1 -1
  126. package/dist/node_modules/@radix-ui/react-arrow/dist/index.js +17 -16
  127. package/dist/node_modules/@radix-ui/react-arrow/dist/index.js.map +1 -1
  128. package/dist/node_modules/@radix-ui/react-avatar/dist/index.cjs +140 -1
  129. package/dist/node_modules/@radix-ui/react-avatar/dist/index.cjs.map +1 -1
  130. package/dist/node_modules/@radix-ui/react-avatar/dist/index.js +105 -57
  131. package/dist/node_modules/@radix-ui/react-avatar/dist/index.js.map +1 -1
  132. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-context/dist/index.cjs +80 -1
  133. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-context/dist/index.cjs.map +1 -1
  134. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-context/dist/index.js +49 -41
  135. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-context/dist/index.js.map +1 -1
  136. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.cjs +56 -1
  137. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.cjs.map +1 -1
  138. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.js +17 -10
  139. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -1
  140. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-slot/dist/index.cjs +119 -1
  141. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-slot/dist/index.cjs.map +1 -1
  142. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-slot/dist/index.js +86 -42
  143. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -1
  144. package/dist/node_modules/@radix-ui/react-collection/dist/index.cjs +70 -1
  145. package/dist/node_modules/@radix-ui/react-collection/dist/index.cjs.map +1 -1
  146. package/dist/node_modules/@radix-ui/react-collection/dist/index.js +57 -37
  147. package/dist/node_modules/@radix-ui/react-collection/dist/index.js.map +1 -1
  148. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.cjs +56 -1
  149. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.cjs.map +1 -1
  150. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js +29 -19
  151. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +1 -1
  152. package/dist/node_modules/@radix-ui/react-context/dist/index.cjs +79 -1
  153. package/dist/node_modules/@radix-ui/react-context/dist/index.cjs.map +1 -1
  154. package/dist/node_modules/@radix-ui/react-context/dist/index.js +48 -39
  155. package/dist/node_modules/@radix-ui/react-context/dist/index.js.map +1 -1
  156. package/dist/node_modules/@radix-ui/react-direction/dist/index.cjs +27 -1
  157. package/dist/node_modules/@radix-ui/react-direction/dist/index.cjs.map +1 -1
  158. package/dist/node_modules/@radix-ui/react-direction/dist/index.js +6 -6
  159. package/dist/node_modules/@radix-ui/react-direction/dist/index.js.map +1 -1
  160. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.cjs +229 -1
  161. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.cjs.map +1 -1
  162. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +182 -97
  163. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +1 -1
  164. package/dist/node_modules/@radix-ui/react-dropdown-menu/dist/index.cjs +296 -1
  165. package/dist/node_modules/@radix-ui/react-dropdown-menu/dist/index.cjs.map +1 -1
  166. package/dist/node_modules/@radix-ui/react-dropdown-menu/dist/index.js +232 -167
  167. package/dist/node_modules/@radix-ui/react-dropdown-menu/dist/index.js.map +1 -1
  168. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.cjs +46 -1
  169. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.cjs.map +1 -1
  170. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js +23 -11
  171. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +1 -1
  172. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.cjs +224 -1
  173. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.cjs.map +1 -1
  174. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js +169 -98
  175. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +1 -1
  176. package/dist/node_modules/@radix-ui/react-id/dist/index.cjs +31 -1
  177. package/dist/node_modules/@radix-ui/react-id/dist/index.cjs.map +1 -1
  178. package/dist/node_modules/@radix-ui/react-id/dist/index.js +11 -10
  179. package/dist/node_modules/@radix-ui/react-id/dist/index.js.map +1 -1
  180. package/dist/node_modules/@radix-ui/react-menu/dist/index.cjs +845 -1
  181. package/dist/node_modules/@radix-ui/react-menu/dist/index.cjs.map +1 -1
  182. package/dist/node_modules/@radix-ui/react-menu/dist/index.js +662 -442
  183. package/dist/node_modules/@radix-ui/react-menu/dist/index.js.map +1 -1
  184. package/dist/node_modules/@radix-ui/react-popper/dist/index.cjs +308 -1
  185. package/dist/node_modules/@radix-ui/react-popper/dist/index.cjs.map +1 -1
  186. package/dist/node_modules/@radix-ui/react-popper/dist/index.js +209 -137
  187. package/dist/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -1
  188. package/dist/node_modules/@radix-ui/react-portal/dist/index.cjs +34 -1
  189. package/dist/node_modules/@radix-ui/react-portal/dist/index.cjs.map +1 -1
  190. package/dist/node_modules/@radix-ui/react-portal/dist/index.js +14 -12
  191. package/dist/node_modules/@radix-ui/react-portal/dist/index.js.map +1 -1
  192. package/dist/node_modules/@radix-ui/react-presence/dist/index.cjs +145 -1
  193. package/dist/node_modules/@radix-ui/react-presence/dist/index.cjs.map +1 -1
  194. package/dist/node_modules/@radix-ui/react-presence/dist/index.js +103 -45
  195. package/dist/node_modules/@radix-ui/react-presence/dist/index.js.map +1 -1
  196. package/dist/node_modules/@radix-ui/react-primitive/dist/index.cjs +61 -1
  197. package/dist/node_modules/@radix-ui/react-primitive/dist/index.cjs.map +1 -1
  198. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js +21 -14
  199. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -1
  200. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.cjs +244 -1
  201. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.cjs.map +1 -1
  202. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js +179 -135
  203. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js.map +1 -1
  204. package/dist/node_modules/@radix-ui/react-slot/dist/index.cjs +105 -1
  205. package/dist/node_modules/@radix-ui/react-slot/dist/index.cjs.map +1 -1
  206. package/dist/node_modules/@radix-ui/react-slot/dist/index.js +74 -35
  207. package/dist/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -1
  208. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.cjs +28 -1
  209. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.cjs.map +1 -1
  210. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +8 -7
  211. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +1 -1
  212. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.cjs +86 -1
  213. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.cjs.map +1 -1
  214. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +57 -40
  215. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +1 -1
  216. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.cjs +34 -1
  217. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.cjs.map +1 -1
  218. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +13 -10
  219. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +1 -1
  220. package/dist/node_modules/@radix-ui/react-use-is-hydrated/dist/index.cjs +15 -1
  221. package/dist/node_modules/@radix-ui/react-use-is-hydrated/dist/index.cjs.map +1 -1
  222. package/dist/node_modules/@radix-ui/react-use-is-hydrated/dist/index.js +8 -8
  223. package/dist/node_modules/@radix-ui/react-use-is-hydrated/dist/index.js.map +1 -1
  224. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.cjs +23 -1
  225. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.cjs.map +1 -1
  226. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +3 -3
  227. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +1 -1
  228. package/dist/node_modules/@radix-ui/react-use-size/dist/index.cjs +56 -1
  229. package/dist/node_modules/@radix-ui/react-use-size/dist/index.cjs.map +1 -1
  230. package/dist/node_modules/@radix-ui/react-use-size/dist/index.js +34 -22
  231. package/dist/node_modules/@radix-ui/react-use-size/dist/index.js.map +1 -1
  232. package/dist/node_modules/aria-hidden/dist/es2015/index.cjs +122 -1
  233. package/dist/node_modules/aria-hidden/dist/es2015/index.cjs.map +1 -1
  234. package/dist/node_modules/aria-hidden/dist/es2015/index.js +111 -41
  235. package/dist/node_modules/aria-hidden/dist/es2015/index.js.map +1 -1
  236. package/dist/node_modules/class-variance-authority/dist/index.cjs +45 -1
  237. package/dist/node_modules/class-variance-authority/dist/index.cjs.map +1 -1
  238. package/dist/node_modules/class-variance-authority/dist/index.js +40 -30
  239. package/dist/node_modules/class-variance-authority/dist/index.js.map +1 -1
  240. package/dist/node_modules/clsx/dist/clsx.cjs +17 -1
  241. package/dist/node_modules/clsx/dist/clsx.cjs.map +1 -1
  242. package/dist/node_modules/clsx/dist/clsx.js +13 -13
  243. package/dist/node_modules/clsx/dist/clsx.js.map +1 -1
  244. package/dist/node_modules/get-nonce/dist/es2015/index.cjs +9 -1
  245. package/dist/node_modules/get-nonce/dist/es2015/index.cjs.map +1 -1
  246. package/dist/node_modules/get-nonce/dist/es2015/index.js +5 -3
  247. package/dist/node_modules/get-nonce/dist/es2015/index.js.map +1 -1
  248. package/dist/node_modules/js-cookie/dist/js.cookie.cjs +98 -1
  249. package/dist/node_modules/js-cookie/dist/js.cookie.cjs.map +1 -1
  250. package/dist/node_modules/js-cookie/dist/js.cookie.js +69 -43
  251. package/dist/node_modules/js-cookie/dist/js.cookie.js.map +1 -1
  252. package/dist/node_modules/jwt-decode/build/esm/index.cjs +58 -1
  253. package/dist/node_modules/jwt-decode/build/esm/index.cjs.map +1 -1
  254. package/dist/node_modules/jwt-decode/build/esm/index.js +36 -30
  255. package/dist/node_modules/jwt-decode/build/esm/index.js.map +1 -1
  256. package/dist/node_modules/lucide-react/dist/esm/Icon.cjs +34 -1
  257. package/dist/node_modules/lucide-react/dist/esm/Icon.cjs.map +1 -1
  258. package/dist/node_modules/lucide-react/dist/esm/Icon.js +25 -25
  259. package/dist/node_modules/lucide-react/dist/esm/Icon.js.map +1 -1
  260. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.cjs +21 -1
  261. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.cjs.map +1 -1
  262. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js +16 -15
  263. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js.map +1 -1
  264. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.cjs +13 -1
  265. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.cjs.map +1 -1
  266. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js +2 -2
  267. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js.map +1 -1
  268. package/dist/node_modules/lucide-react/dist/esm/icons/check.cjs +7 -1
  269. package/dist/node_modules/lucide-react/dist/esm/icons/check.cjs.map +1 -1
  270. package/dist/node_modules/lucide-react/dist/esm/icons/check.js +5 -4
  271. package/dist/node_modules/lucide-react/dist/esm/icons/check.js.map +1 -1
  272. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.cjs +7 -1
  273. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.cjs.map +1 -1
  274. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js +5 -4
  275. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js.map +1 -1
  276. package/dist/node_modules/lucide-react/dist/esm/icons/circle.cjs +7 -1
  277. package/dist/node_modules/lucide-react/dist/esm/icons/circle.cjs.map +1 -1
  278. package/dist/node_modules/lucide-react/dist/esm/icons/circle.js +5 -4
  279. package/dist/node_modules/lucide-react/dist/esm/icons/circle.js.map +1 -1
  280. package/dist/node_modules/lucide-react/dist/esm/icons/log-out.cjs +11 -1
  281. package/dist/node_modules/lucide-react/dist/esm/icons/log-out.cjs.map +1 -1
  282. package/dist/node_modules/lucide-react/dist/esm/icons/log-out.js +6 -5
  283. package/dist/node_modules/lucide-react/dist/esm/icons/log-out.js.map +1 -1
  284. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.cjs +26 -1
  285. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.cjs.map +1 -1
  286. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.js +22 -14
  287. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.js.map +1 -1
  288. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.cjs +27 -1
  289. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.cjs.map +1 -1
  290. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js +8 -8
  291. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js.map +1 -1
  292. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.cjs +197 -4
  293. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.cjs.map +1 -1
  294. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +163 -98
  295. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js.map +1 -1
  296. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.cjs +55 -1
  297. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.cjs.map +1 -1
  298. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js +31 -24
  299. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js.map +1 -1
  300. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.cjs +19 -1
  301. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.cjs.map +1 -1
  302. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js +12 -9
  303. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js.map +1 -1
  304. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.cjs +102 -1
  305. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.cjs.map +1 -1
  306. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +85 -51
  307. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js.map +1 -1
  308. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.cjs +5 -1
  309. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.cjs.map +1 -1
  310. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js +3 -3
  311. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js.map +1 -1
  312. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.cjs +6 -1
  313. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.cjs.map +1 -1
  314. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js +5 -5
  315. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js.map +1 -1
  316. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.cjs +62 -36
  317. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.cjs.map +1 -1
  318. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js +41 -65
  319. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js.map +1 -1
  320. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.cjs +10 -1
  321. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.cjs.map +1 -1
  322. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js +8 -5
  323. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js.map +1 -1
  324. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.cjs +37 -1
  325. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.cjs.map +1 -1
  326. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js +28 -16
  327. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js.map +1 -1
  328. package/dist/node_modules/react-style-singleton/dist/es2015/component.cjs +13 -1
  329. package/dist/node_modules/react-style-singleton/dist/es2015/component.cjs.map +1 -1
  330. package/dist/node_modules/react-style-singleton/dist/es2015/component.js +9 -7
  331. package/dist/node_modules/react-style-singleton/dist/es2015/component.js.map +1 -1
  332. package/dist/node_modules/react-style-singleton/dist/es2015/hook.cjs +33 -1
  333. package/dist/node_modules/react-style-singleton/dist/es2015/hook.cjs.map +1 -1
  334. package/dist/node_modules/react-style-singleton/dist/es2015/hook.js +11 -10
  335. package/dist/node_modules/react-style-singleton/dist/es2015/hook.js.map +1 -1
  336. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.cjs +48 -1
  337. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.cjs.map +1 -1
  338. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js +35 -17
  339. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js.map +1 -1
  340. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.cjs +3014 -1
  341. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.cjs.map +1 -1
  342. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +804 -555
  343. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -1
  344. package/dist/node_modules/tailwindcss/dist/plugin.cjs +12 -1
  345. package/dist/node_modules/tailwindcss/dist/plugin.cjs.map +1 -1
  346. package/dist/node_modules/tailwindcss/dist/plugin.js +8 -8
  347. package/dist/node_modules/tailwindcss/dist/plugin.js.map +1 -1
  348. package/dist/node_modules/tslib/tslib.es6.cjs +38 -1
  349. package/dist/node_modules/tslib/tslib.es6.cjs.map +1 -1
  350. package/dist/node_modules/tslib/tslib.es6.js +33 -21
  351. package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
  352. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.cjs +11 -1
  353. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.cjs.map +1 -1
  354. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js +8 -3
  355. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js.map +1 -1
  356. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.cjs +52 -1
  357. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.cjs.map +1 -1
  358. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js +28 -19
  359. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js.map +1 -1
  360. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.cjs +29 -1
  361. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.cjs.map +1 -1
  362. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js +15 -11
  363. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js.map +1 -1
  364. package/dist/node_modules/use-sidecar/dist/es2015/exports.cjs +38 -1
  365. package/dist/node_modules/use-sidecar/dist/es2015/exports.cjs.map +1 -1
  366. package/dist/node_modules/use-sidecar/dist/es2015/exports.js +15 -12
  367. package/dist/node_modules/use-sidecar/dist/es2015/exports.js.map +1 -1
  368. package/dist/node_modules/use-sidecar/dist/es2015/medium.cjs +88 -1
  369. package/dist/node_modules/use-sidecar/dist/es2015/medium.cjs.map +1 -1
  370. package/dist/node_modules/use-sidecar/dist/es2015/medium.js +64 -43
  371. package/dist/node_modules/use-sidecar/dist/es2015/medium.js.map +1 -1
  372. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.cjs +68 -1
  373. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.cjs.map +1 -1
  374. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +49 -39
  375. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  376. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.cjs +53 -1
  377. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.cjs.map +1 -1
  378. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +39 -32
  379. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js.map +1 -1
  380. package/dist/node_modules/use-sync-external-store/shim/index.cjs +17 -1
  381. package/dist/node_modules/use-sync-external-store/shim/index.cjs.map +1 -1
  382. package/dist/node_modules/use-sync-external-store/shim/index.js +14 -7
  383. package/dist/node_modules/use-sync-external-store/shim/index.js.map +1 -1
  384. package/dist/providers/auth/auth.context.cjs +5 -1
  385. package/dist/providers/auth/auth.context.cjs.map +1 -1
  386. package/dist/providers/auth/auth.context.js +3 -3
  387. package/dist/providers/auth/auth.context.js.map +1 -1
  388. package/dist/providers/auth/auth.hook.cjs +12 -1
  389. package/dist/providers/auth/auth.hook.cjs.map +1 -1
  390. package/dist/providers/auth/auth.hook.js +8 -7
  391. package/dist/providers/auth/auth.hook.js.map +1 -1
  392. package/dist/providers/auth/auth.provider.cjs +37 -1
  393. package/dist/providers/auth/auth.provider.cjs.map +1 -1
  394. package/dist/providers/auth/auth.provider.js +31 -22
  395. package/dist/providers/auth/auth.provider.js.map +1 -1
  396. package/dist/providers/blimu/blimu.context.cjs +5 -1
  397. package/dist/providers/blimu/blimu.context.cjs.map +1 -1
  398. package/dist/providers/blimu/blimu.context.js +3 -3
  399. package/dist/providers/blimu/blimu.context.js.map +1 -1
  400. package/dist/providers/blimu/blimu.hook.cjs +12 -1
  401. package/dist/providers/blimu/blimu.hook.cjs.map +1 -1
  402. package/dist/providers/blimu/blimu.hook.js +8 -7
  403. package/dist/providers/blimu/blimu.hook.js.map +1 -1
  404. package/dist/providers/blimu/blimu.provider.cjs +71 -1
  405. package/dist/providers/blimu/blimu.provider.cjs.map +1 -1
  406. package/dist/providers/blimu/blimu.provider.js +32 -27
  407. package/dist/providers/blimu/blimu.provider.js.map +1 -1
  408. package/dist/providers/index.cjs +13 -0
  409. package/dist/providers/index.cjs.map +1 -0
  410. package/dist/providers/index.js +13 -0
  411. package/dist/providers/index.js.map +1 -0
  412. package/dist/providers/theme/theme.context.cjs +5 -1
  413. package/dist/providers/theme/theme.context.cjs.map +1 -1
  414. package/dist/providers/theme/theme.context.js +3 -3
  415. package/dist/providers/theme/theme.context.js.map +1 -1
  416. package/dist/providers/theme/theme.hook.cjs +12 -1
  417. package/dist/providers/theme/theme.hook.cjs.map +1 -1
  418. package/dist/providers/theme/theme.hook.js +8 -7
  419. package/dist/providers/theme/theme.hook.js.map +1 -1
  420. package/dist/providers/theme/theme.provider.cjs +104 -1
  421. package/dist/providers/theme/theme.provider.cjs.map +1 -1
  422. package/dist/providers/theme/theme.provider.js +85 -48
  423. package/dist/providers/theme/theme.provider.js.map +1 -1
  424. package/dist/tailwind.cjs +200 -0
  425. package/dist/tailwind.cjs.map +1 -0
  426. package/dist/{tailwind.plugin.js → tailwind.js} +6 -6
  427. package/dist/tailwind.js.map +1 -0
  428. package/dist/types/index.cjs +11 -1
  429. package/dist/types/index.cjs.map +1 -1
  430. package/dist/types/index.js +8 -8
  431. package/dist/types/index.js.map +1 -1
  432. package/dist/utils/publishable-key.cjs +62 -1
  433. package/dist/utils/publishable-key.cjs.map +1 -1
  434. package/dist/utils/publishable-key.js +52 -27
  435. package/dist/utils/publishable-key.js.map +1 -1
  436. package/package.json +41 -42
  437. package/dist/components.cjs +0 -2
  438. package/dist/components.cjs.map +0 -1
  439. package/dist/components.js +0 -13
  440. package/dist/components.js.map +0 -1
  441. package/dist/hooks.cjs +0 -2
  442. package/dist/hooks.cjs.map +0 -1
  443. package/dist/hooks.js +0 -14
  444. package/dist/hooks.js.map +0 -1
  445. package/dist/providers.cjs +0 -2
  446. package/dist/providers.cjs.map +0 -1
  447. package/dist/providers.js +0 -13
  448. package/dist/providers.js.map +0 -1
  449. package/dist/tailwind.plugin.cjs +0 -2
  450. package/dist/tailwind.plugin.cjs.map +0 -1
  451. package/dist/tailwind.plugin.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwind.js","sources":["../src/tailwind.plugin.ts"],"sourcesContent":["import plugin from 'tailwindcss/plugin';\n\n/**\n * Blimu Tailwind CSS Plugin\n *\n * This plugin extends Tailwind with Blimu-specific design tokens and utilities.\n * It injects CSS variables and extends the theme with the Blimu color palette.\n *\n * @example\n * ```javascript\n * // tailwind.config.js\n * import { blimuPlugin } from '@blimu/react/tailwind';\n *\n * export default {\n * plugins: [blimuPlugin],\n * };\n * ```\n */\nexport const blimuPlugin: ReturnType<typeof plugin> = plugin(\n ({ addBase, theme }) => {\n // Inject CSS variables as base styles\n addBase({\n ':root': {\n '--blimu-background': 'oklch(1 0 0)',\n '--blimu-foreground': 'oklch(0.145 0 0)',\n '--blimu-card': 'oklch(1 0 0)',\n '--blimu-card-foreground': 'oklch(0.145 0 0)',\n '--blimu-popover': 'oklch(1 0 0)',\n '--blimu-popover-foreground': 'oklch(0.145 0 0)',\n '--blimu-primary': 'oklch(0.5 0.2 270)',\n '--blimu-primary-foreground': 'oklch(0.985 0 0)',\n '--blimu-secondary': 'oklch(0.97 0 0)',\n '--blimu-secondary-foreground': 'oklch(0.205 0 0)',\n '--blimu-muted': 'oklch(0.97 0 0)',\n '--blimu-muted-foreground': 'oklch(0.556 0 0)',\n '--blimu-accent': 'oklch(0.97 0 0)',\n '--blimu-accent-foreground': 'oklch(0.205 0 0)',\n '--blimu-destructive': 'oklch(0.577 0.245 27.325)',\n '--blimu-destructive-foreground': 'oklch(0.577 0.245 27.325)',\n '--blimu-border': 'oklch(0.922 0 0)',\n '--blimu-input': 'oklch(0.922 0 0)',\n '--blimu-ring': 'oklch(0.4 0 0)',\n '--blimu-chart-1': 'oklch(0.646 0.222 41.116)',\n '--blimu-chart-2': 'oklch(0.6 0.118 184.704)',\n '--blimu-chart-3': 'oklch(0.398 0.07 227.392)',\n '--blimu-chart-4': 'oklch(0.828 0.189 84.429)',\n '--blimu-chart-5': 'oklch(0.769 0.188 70.08)',\n '--blimu-radius': '0.625rem',\n '--blimu-sidebar': 'oklch(0.985 0 0)',\n '--blimu-sidebar-foreground': 'oklch(0.145 0 0)',\n '--blimu-sidebar-primary': 'oklch(0.205 0 0)',\n '--blimu-sidebar-primary-foreground': 'oklch(0.985 0 0)',\n '--blimu-sidebar-accent': 'oklch(0.97 0 0)',\n '--blimu-sidebar-accent-foreground': 'oklch(0.205 0 0)',\n '--blimu-sidebar-border': 'oklch(0.922 0 0)',\n '--blimu-sidebar-ring': 'oklch(0.708 0 0)',\n },\n '.dark': {\n '--blimu-background': 'oklch(0.145 0 0)',\n '--blimu-foreground': 'oklch(0.985 0 0)',\n '--blimu-card': 'oklch(0.145 0 0)',\n '--blimu-card-foreground': 'oklch(0.985 0 0)',\n '--blimu-popover': 'oklch(0.22 0 0)',\n '--blimu-popover-foreground': 'oklch(0.985 0 0)',\n '--blimu-primary': 'oklch(0.65 0.2 270)',\n '--blimu-primary-foreground': 'oklch(0.985 0 0)',\n '--blimu-secondary': 'oklch(0.269 0 0)',\n '--blimu-secondary-foreground': 'oklch(0.985 0 0)',\n '--blimu-muted': 'oklch(0.269 0 0)',\n '--blimu-muted-foreground': 'oklch(0.708 0 0)',\n '--blimu-accent': 'oklch(0.269 0 0)',\n '--blimu-accent-foreground': 'oklch(0.985 0 0)',\n '--blimu-destructive': 'oklch(0.396 0.141 25.723)',\n '--blimu-destructive-foreground': 'oklch(0.637 0.237 25.331)',\n '--blimu-border': 'oklch(0.269 0 0)',\n '--blimu-input': 'oklch(0.269 0 0)',\n '--blimu-ring': 'oklch(0.7 0 0)',\n '--blimu-chart-1': 'oklch(0.488 0.243 264.376)',\n '--blimu-chart-2': 'oklch(0.696 0.17 162.48)',\n '--blimu-chart-3': 'oklch(0.769 0.188 70.08)',\n '--blimu-chart-4': 'oklch(0.627 0.265 303.9)',\n '--blimu-chart-5': 'oklch(0.645 0.246 16.439)',\n '--blimu-sidebar': 'oklch(0.205 0 0)',\n '--blimu-sidebar-foreground': 'oklch(0.985 0 0)',\n '--blimu-sidebar-primary': 'oklch(0.488 0.243 264.376)',\n '--blimu-sidebar-primary-foreground': 'oklch(0.985 0 0)',\n '--blimu-sidebar-accent': 'oklch(0.269 0 0)',\n '--blimu-sidebar-accent-foreground': 'oklch(0.985 0 0)',\n '--blimu-sidebar-border': 'oklch(0.269 0 0)',\n '--blimu-sidebar-ring': 'oklch(0.439 0 0)',\n },\n });\n },\n {\n // Extend Tailwind with Blimu-specific utilities\n theme: {\n extend: {\n colors: {\n // Top-level aliases matching Shadcn pattern (for compatibility)\n background: 'oklch(var(--blimu-background))',\n foreground: 'oklch(var(--blimu-foreground))',\n card: {\n DEFAULT: 'oklch(var(--blimu-card))',\n foreground: 'oklch(var(--blimu-card-foreground))',\n },\n popover: {\n DEFAULT: 'oklch(var(--blimu-popover))',\n foreground: 'oklch(var(--blimu-popover-foreground))',\n },\n primary: {\n DEFAULT: 'oklch(var(--blimu-primary))',\n foreground: 'oklch(var(--blimu-primary-foreground))',\n },\n secondary: {\n DEFAULT: 'oklch(var(--blimu-secondary))',\n foreground: 'oklch(var(--blimu-secondary-foreground))',\n },\n muted: {\n DEFAULT: 'oklch(var(--blimu-muted))',\n foreground: 'oklch(var(--blimu-muted-foreground))',\n },\n accent: {\n DEFAULT: 'oklch(var(--blimu-accent))',\n foreground: 'oklch(var(--blimu-accent-foreground))',\n },\n destructive: {\n DEFAULT: 'oklch(var(--blimu-destructive))',\n foreground: 'oklch(var(--blimu-destructive-foreground))',\n },\n border: 'oklch(var(--blimu-border))',\n input: 'oklch(var(--blimu-input))',\n ring: 'oklch(var(--blimu-ring))',\n // Scoped Blimu colors (preferred for explicit scoping)\n blimu: {\n background: 'oklch(var(--blimu-background))',\n foreground: 'oklch(var(--blimu-foreground))',\n card: {\n DEFAULT: 'oklch(var(--blimu-card))',\n foreground: 'oklch(var(--blimu-card-foreground))',\n },\n popover: {\n DEFAULT: 'oklch(var(--blimu-popover))',\n foreground: 'oklch(var(--blimu-popover-foreground))',\n },\n primary: {\n DEFAULT: 'oklch(var(--blimu-primary))',\n foreground: 'oklch(var(--blimu-primary-foreground))',\n },\n secondary: {\n DEFAULT: 'oklch(var(--blimu-secondary))',\n foreground: 'oklch(var(--blimu-secondary-foreground))',\n },\n muted: {\n DEFAULT: 'oklch(var(--blimu-muted))',\n foreground: 'oklch(var(--blimu-muted-foreground))',\n },\n accent: {\n DEFAULT: 'oklch(var(--blimu-accent))',\n foreground: 'oklch(var(--blimu-accent-foreground))',\n },\n destructive: {\n DEFAULT: 'oklch(var(--blimu-destructive))',\n foreground: 'oklch(var(--blimu-destructive-foreground))',\n },\n border: 'oklch(var(--blimu-border))',\n input: 'oklch(var(--blimu-input))',\n ring: 'oklch(var(--blimu-ring))',\n chart: {\n 1: 'oklch(var(--blimu-chart-1))',\n 2: 'oklch(var(--blimu-chart-2))',\n 3: 'oklch(var(--blimu-chart-3))',\n 4: 'oklch(var(--blimu-chart-4))',\n 5: 'oklch(var(--blimu-chart-5))',\n },\n sidebar: {\n DEFAULT: 'oklch(var(--blimu-sidebar))',\n foreground: 'oklch(var(--blimu-sidebar-foreground))',\n primary: {\n DEFAULT: 'oklch(var(--blimu-sidebar-primary))',\n foreground: 'oklch(var(--blimu-sidebar-primary-foreground))',\n },\n accent: {\n DEFAULT: 'oklch(var(--blimu-sidebar-accent))',\n foreground: 'oklch(var(--blimu-sidebar-accent-foreground))',\n },\n border: 'oklch(var(--blimu-sidebar-border))',\n ring: 'oklch(var(--blimu-sidebar-ring))',\n },\n },\n },\n borderRadius: {\n blimu: 'var(--blimu-radius)',\n 'blimu-sm': 'calc(var(--blimu-radius) - 4px)',\n 'blimu-md': 'calc(var(--blimu-radius) - 2px)',\n 'blimu-lg': 'var(--blimu-radius)',\n 'blimu-xl': 'calc(var(--blimu-radius) + 4px)',\n },\n },\n },\n // Safelist critical animation classes\n content: [\n 'animate-in',\n 'animate-out',\n 'fade-in-0',\n 'fade-out-0',\n 'zoom-in-95',\n 'zoom-out-95',\n 'slide-in-from-top',\n 'slide-in-from-bottom',\n 'slide-in-from-left',\n 'slide-in-from-right',\n ],\n },\n);\n"],"names":["plugin"],"mappings":"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"}
@@ -1,2 +1,12 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a={isIdle:t=>t.status==="idle",isLoading:t=>t.status==="loading",isAuthenticated:t=>t.status==="authenticated",isUnauthenticated:t=>t.status==="unauthenticated",isError:t=>t.status==="error",isReady:t=>t.status==="authenticated"||t.status==="unauthenticated"};exports.AuthStateGuards=a;
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const AuthStateGuards = {
4
+ isIdle: (state) => state.status === "idle",
5
+ isLoading: (state) => state.status === "loading",
6
+ isAuthenticated: (state) => state.status === "authenticated",
7
+ isUnauthenticated: (state) => state.status === "unauthenticated",
8
+ isError: (state) => state.status === "error",
9
+ isReady: (state) => state.status === "authenticated" || state.status === "unauthenticated"
10
+ };
11
+ exports.AuthStateGuards = AuthStateGuards;
2
12
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/types/index.ts"],"sourcesContent":["/**\n * Theme colors that can be customized\n */\nexport interface BlimuThemeColors {\n background?: string;\n foreground?: string;\n card?: string;\n cardForeground?: string;\n popover?: string;\n popoverForeground?: string;\n primary?: string;\n primaryForeground?: string;\n secondary?: string;\n secondaryForeground?: string;\n muted?: string;\n mutedForeground?: string;\n accent?: string;\n accentForeground?: string;\n destructive?: string;\n destructiveForeground?: string;\n border?: string;\n input?: string;\n ring?: string;\n}\n\n/**\n * Border radius presets\n */\nexport type BlimuRadiusPreset = 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full';\n\n/**\n * Theme configuration for Blimu components\n */\nexport interface BlimuTheme {\n /** Color overrides using CSS color values (e.g., 'oklch(0.5 0.2 250)', '#3b82f6') */\n colors?: BlimuThemeColors;\n /** Border radius preset or custom CSS value */\n radius?: BlimuRadiusPreset | string;\n}\n\nexport interface BlimuConfig {\n /** Redirect URI for auth flow (where to return after authentication) */\n redirectUri?: string;\n /** Publishable key for the environment (contains full UI domain) */\n publishableKey: string;\n /** Theme customization */\n theme?: BlimuTheme;\n}\n\nexport interface User {\n id: string;\n email: string;\n firstName?: string | null;\n lastName?: string | null;\n emailVerified: boolean;\n}\n\nexport type AuthStatus = 'idle' | 'loading' | 'authenticated' | 'unauthenticated' | 'error';\n\n/**\n * Discriminated union for auth states\n * Provides type-safe state management with clear state transitions\n */\nexport type AuthState =\n | {\n status: 'idle';\n user: null;\n error: null;\n }\n | {\n status: 'loading';\n user: null;\n error: null;\n }\n | {\n status: 'authenticated';\n user: User;\n error: null;\n }\n | {\n status: 'unauthenticated';\n user: null;\n error: null;\n }\n | {\n status: 'error';\n user: null;\n error: string;\n };\n\ntype ReadyState = Extract<AuthState, { status: 'authenticated' | 'unauthenticated' | 'error' }>;\n\n/**\n * Helper type guards for auth states\n */\nexport const AuthStateGuards = {\n isIdle: (state: AuthState): state is Extract<AuthState, { status: 'idle' }> =>\n state.status === 'idle',\n isLoading: (state: AuthState): state is Extract<AuthState, { status: 'loading' }> =>\n state.status === 'loading',\n isAuthenticated: (state: AuthState): state is Extract<AuthState, { status: 'authenticated' }> =>\n state.status === 'authenticated',\n isUnauthenticated: (\n state: AuthState,\n ): state is Extract<AuthState, { status: 'unauthenticated' }> =>\n state.status === 'unauthenticated',\n isError: (state: AuthState): state is Extract<AuthState, { status: 'error' }> =>\n state.status === 'error',\n isReady: (state: AuthState): state is ReadyState =>\n state.status === 'authenticated' || state.status === 'unauthenticated',\n} as const;\n\nexport interface AuthContextValue {\n // State (discriminated union)\n state: AuthState;\n\n // Actions\n login: (returnUrl?: string) => void; // Redirects to auth domain for authentication\n logout: () => Promise<void>;\n\n // Utilities\n getToken: (options: { template: 'web' }) => Promise<string | null>;\n getAuthState: () => AuthState;\n}\n\n/**\n * Component customization props for className overrides\n */\nexport interface ComponentClasses {\n [key: string]: string | undefined;\n}\n\n/**\n * Common props for all Blimu components\n */\nexport interface BlimuComponentProps {\n /** Custom className to apply to the root element */\n className?: string;\n /** Object of classNames to apply to specific sub-elements */\n classes?: ComponentClasses;\n}\n"],"names":["AuthStateGuards","state"],"mappings":"gFA+FO,MAAMA,EAAkB,CAC7B,OAASC,GACPA,EAAM,SAAW,OACnB,UAAYA,GACVA,EAAM,SAAW,UACnB,gBAAkBA,GAChBA,EAAM,SAAW,gBACnB,kBACEA,GAEAA,EAAM,SAAW,kBACnB,QAAUA,GACRA,EAAM,SAAW,QACnB,QAAUA,GACRA,EAAM,SAAW,iBAAmBA,EAAM,SAAW,iBACzD"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/types/index.ts"],"sourcesContent":["/**\n * Theme colors that can be customized\n */\nexport interface BlimuThemeColors {\n background?: string;\n foreground?: string;\n card?: string;\n cardForeground?: string;\n popover?: string;\n popoverForeground?: string;\n primary?: string;\n primaryForeground?: string;\n secondary?: string;\n secondaryForeground?: string;\n muted?: string;\n mutedForeground?: string;\n accent?: string;\n accentForeground?: string;\n destructive?: string;\n destructiveForeground?: string;\n border?: string;\n input?: string;\n ring?: string;\n}\n\n/**\n * Border radius presets\n */\nexport type BlimuRadiusPreset = 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full';\n\n/**\n * Theme configuration for Blimu components\n */\nexport interface BlimuTheme {\n /** Color overrides using CSS color values (e.g., 'oklch(0.5 0.2 250)', '#3b82f6') */\n colors?: BlimuThemeColors;\n /** Border radius preset or custom CSS value */\n radius?: BlimuRadiusPreset | string;\n}\n\nexport interface BlimuConfig {\n /** Redirect URI for auth flow (where to return after authentication) */\n redirectUri?: string;\n /** Publishable key for the environment (contains full UI domain) */\n publishableKey: string;\n /** Theme customization */\n theme?: BlimuTheme;\n}\n\nexport interface User {\n id: string;\n email: string;\n firstName?: string | null;\n lastName?: string | null;\n emailVerified: boolean;\n}\n\nexport type AuthStatus = 'idle' | 'loading' | 'authenticated' | 'unauthenticated' | 'error';\n\n/**\n * Discriminated union for auth states\n * Provides type-safe state management with clear state transitions\n */\nexport type AuthState =\n | {\n status: 'idle';\n user: null;\n error: null;\n }\n | {\n status: 'loading';\n user: null;\n error: null;\n }\n | {\n status: 'authenticated';\n user: User;\n error: null;\n }\n | {\n status: 'unauthenticated';\n user: null;\n error: null;\n }\n | {\n status: 'error';\n user: null;\n error: string;\n };\n\ntype ReadyState = Extract<AuthState, { status: 'authenticated' | 'unauthenticated' | 'error' }>;\n\n/**\n * Helper type guards for auth states\n */\nexport const AuthStateGuards = {\n isIdle: (state: AuthState): state is Extract<AuthState, { status: 'idle' }> =>\n state.status === 'idle',\n isLoading: (state: AuthState): state is Extract<AuthState, { status: 'loading' }> =>\n state.status === 'loading',\n isAuthenticated: (state: AuthState): state is Extract<AuthState, { status: 'authenticated' }> =>\n state.status === 'authenticated',\n isUnauthenticated: (\n state: AuthState,\n ): state is Extract<AuthState, { status: 'unauthenticated' }> =>\n state.status === 'unauthenticated',\n isError: (state: AuthState): state is Extract<AuthState, { status: 'error' }> =>\n state.status === 'error',\n isReady: (state: AuthState): state is ReadyState =>\n state.status === 'authenticated' || state.status === 'unauthenticated',\n} as const;\n\nexport interface AuthContextValue {\n // State (discriminated union)\n state: AuthState;\n\n // Actions\n login: (returnUrl?: string) => void; // Redirects to auth domain for authentication\n logout: () => Promise<void>;\n\n // Utilities\n getToken: (options: { template: 'web' }) => Promise<string | null>;\n getAuthState: () => AuthState;\n}\n\n/**\n * Component customization props for className overrides\n */\nexport interface ComponentClasses {\n [key: string]: string | undefined;\n}\n\n/**\n * Common props for all Blimu components\n */\nexport interface BlimuComponentProps {\n /** Custom className to apply to the root element */\n className?: string;\n /** Object of classNames to apply to specific sub-elements */\n classes?: ComponentClasses;\n}\n"],"names":[],"mappings":";;AA+FO,MAAM,kBAAkB;AAAA,EAC7B,QAAQ,CAAC,UACP,MAAM,WAAW;AAAA,EACnB,WAAW,CAAC,UACV,MAAM,WAAW;AAAA,EACnB,iBAAiB,CAAC,UAChB,MAAM,WAAW;AAAA,EACnB,mBAAmB,CACjB,UAEA,MAAM,WAAW;AAAA,EACnB,SAAS,CAAC,UACR,MAAM,WAAW;AAAA,EACnB,SAAS,CAAC,UACR,MAAM,WAAW,mBAAmB,MAAM,WAAW;AACzD;;"}
@@ -1,12 +1,12 @@
1
- const a = {
2
- isIdle: (t) => t.status === "idle",
3
- isLoading: (t) => t.status === "loading",
4
- isAuthenticated: (t) => t.status === "authenticated",
5
- isUnauthenticated: (t) => t.status === "unauthenticated",
6
- isError: (t) => t.status === "error",
7
- isReady: (t) => t.status === "authenticated" || t.status === "unauthenticated"
1
+ const AuthStateGuards = {
2
+ isIdle: (state) => state.status === "idle",
3
+ isLoading: (state) => state.status === "loading",
4
+ isAuthenticated: (state) => state.status === "authenticated",
5
+ isUnauthenticated: (state) => state.status === "unauthenticated",
6
+ isError: (state) => state.status === "error",
7
+ isReady: (state) => state.status === "authenticated" || state.status === "unauthenticated"
8
8
  };
9
9
  export {
10
- a as AuthStateGuards
10
+ AuthStateGuards
11
11
  };
12
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/types/index.ts"],"sourcesContent":["/**\n * Theme colors that can be customized\n */\nexport interface BlimuThemeColors {\n background?: string;\n foreground?: string;\n card?: string;\n cardForeground?: string;\n popover?: string;\n popoverForeground?: string;\n primary?: string;\n primaryForeground?: string;\n secondary?: string;\n secondaryForeground?: string;\n muted?: string;\n mutedForeground?: string;\n accent?: string;\n accentForeground?: string;\n destructive?: string;\n destructiveForeground?: string;\n border?: string;\n input?: string;\n ring?: string;\n}\n\n/**\n * Border radius presets\n */\nexport type BlimuRadiusPreset = 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full';\n\n/**\n * Theme configuration for Blimu components\n */\nexport interface BlimuTheme {\n /** Color overrides using CSS color values (e.g., 'oklch(0.5 0.2 250)', '#3b82f6') */\n colors?: BlimuThemeColors;\n /** Border radius preset or custom CSS value */\n radius?: BlimuRadiusPreset | string;\n}\n\nexport interface BlimuConfig {\n /** Redirect URI for auth flow (where to return after authentication) */\n redirectUri?: string;\n /** Publishable key for the environment (contains full UI domain) */\n publishableKey: string;\n /** Theme customization */\n theme?: BlimuTheme;\n}\n\nexport interface User {\n id: string;\n email: string;\n firstName?: string | null;\n lastName?: string | null;\n emailVerified: boolean;\n}\n\nexport type AuthStatus = 'idle' | 'loading' | 'authenticated' | 'unauthenticated' | 'error';\n\n/**\n * Discriminated union for auth states\n * Provides type-safe state management with clear state transitions\n */\nexport type AuthState =\n | {\n status: 'idle';\n user: null;\n error: null;\n }\n | {\n status: 'loading';\n user: null;\n error: null;\n }\n | {\n status: 'authenticated';\n user: User;\n error: null;\n }\n | {\n status: 'unauthenticated';\n user: null;\n error: null;\n }\n | {\n status: 'error';\n user: null;\n error: string;\n };\n\ntype ReadyState = Extract<AuthState, { status: 'authenticated' | 'unauthenticated' | 'error' }>;\n\n/**\n * Helper type guards for auth states\n */\nexport const AuthStateGuards = {\n isIdle: (state: AuthState): state is Extract<AuthState, { status: 'idle' }> =>\n state.status === 'idle',\n isLoading: (state: AuthState): state is Extract<AuthState, { status: 'loading' }> =>\n state.status === 'loading',\n isAuthenticated: (state: AuthState): state is Extract<AuthState, { status: 'authenticated' }> =>\n state.status === 'authenticated',\n isUnauthenticated: (\n state: AuthState,\n ): state is Extract<AuthState, { status: 'unauthenticated' }> =>\n state.status === 'unauthenticated',\n isError: (state: AuthState): state is Extract<AuthState, { status: 'error' }> =>\n state.status === 'error',\n isReady: (state: AuthState): state is ReadyState =>\n state.status === 'authenticated' || state.status === 'unauthenticated',\n} as const;\n\nexport interface AuthContextValue {\n // State (discriminated union)\n state: AuthState;\n\n // Actions\n login: (returnUrl?: string) => void; // Redirects to auth domain for authentication\n logout: () => Promise<void>;\n\n // Utilities\n getToken: (options: { template: 'web' }) => Promise<string | null>;\n getAuthState: () => AuthState;\n}\n\n/**\n * Component customization props for className overrides\n */\nexport interface ComponentClasses {\n [key: string]: string | undefined;\n}\n\n/**\n * Common props for all Blimu components\n */\nexport interface BlimuComponentProps {\n /** Custom className to apply to the root element */\n className?: string;\n /** Object of classNames to apply to specific sub-elements */\n classes?: ComponentClasses;\n}\n"],"names":["AuthStateGuards","state"],"mappings":"AA+FO,MAAMA,IAAkB;AAAA,EAC7B,QAAQ,CAACC,MACPA,EAAM,WAAW;AAAA,EACnB,WAAW,CAACA,MACVA,EAAM,WAAW;AAAA,EACnB,iBAAiB,CAACA,MAChBA,EAAM,WAAW;AAAA,EACnB,mBAAmB,CACjBA,MAEAA,EAAM,WAAW;AAAA,EACnB,SAAS,CAACA,MACRA,EAAM,WAAW;AAAA,EACnB,SAAS,CAACA,MACRA,EAAM,WAAW,mBAAmBA,EAAM,WAAW;AACzD;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/types/index.ts"],"sourcesContent":["/**\n * Theme colors that can be customized\n */\nexport interface BlimuThemeColors {\n background?: string;\n foreground?: string;\n card?: string;\n cardForeground?: string;\n popover?: string;\n popoverForeground?: string;\n primary?: string;\n primaryForeground?: string;\n secondary?: string;\n secondaryForeground?: string;\n muted?: string;\n mutedForeground?: string;\n accent?: string;\n accentForeground?: string;\n destructive?: string;\n destructiveForeground?: string;\n border?: string;\n input?: string;\n ring?: string;\n}\n\n/**\n * Border radius presets\n */\nexport type BlimuRadiusPreset = 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full';\n\n/**\n * Theme configuration for Blimu components\n */\nexport interface BlimuTheme {\n /** Color overrides using CSS color values (e.g., 'oklch(0.5 0.2 250)', '#3b82f6') */\n colors?: BlimuThemeColors;\n /** Border radius preset or custom CSS value */\n radius?: BlimuRadiusPreset | string;\n}\n\nexport interface BlimuConfig {\n /** Redirect URI for auth flow (where to return after authentication) */\n redirectUri?: string;\n /** Publishable key for the environment (contains full UI domain) */\n publishableKey: string;\n /** Theme customization */\n theme?: BlimuTheme;\n}\n\nexport interface User {\n id: string;\n email: string;\n firstName?: string | null;\n lastName?: string | null;\n emailVerified: boolean;\n}\n\nexport type AuthStatus = 'idle' | 'loading' | 'authenticated' | 'unauthenticated' | 'error';\n\n/**\n * Discriminated union for auth states\n * Provides type-safe state management with clear state transitions\n */\nexport type AuthState =\n | {\n status: 'idle';\n user: null;\n error: null;\n }\n | {\n status: 'loading';\n user: null;\n error: null;\n }\n | {\n status: 'authenticated';\n user: User;\n error: null;\n }\n | {\n status: 'unauthenticated';\n user: null;\n error: null;\n }\n | {\n status: 'error';\n user: null;\n error: string;\n };\n\ntype ReadyState = Extract<AuthState, { status: 'authenticated' | 'unauthenticated' | 'error' }>;\n\n/**\n * Helper type guards for auth states\n */\nexport const AuthStateGuards = {\n isIdle: (state: AuthState): state is Extract<AuthState, { status: 'idle' }> =>\n state.status === 'idle',\n isLoading: (state: AuthState): state is Extract<AuthState, { status: 'loading' }> =>\n state.status === 'loading',\n isAuthenticated: (state: AuthState): state is Extract<AuthState, { status: 'authenticated' }> =>\n state.status === 'authenticated',\n isUnauthenticated: (\n state: AuthState,\n ): state is Extract<AuthState, { status: 'unauthenticated' }> =>\n state.status === 'unauthenticated',\n isError: (state: AuthState): state is Extract<AuthState, { status: 'error' }> =>\n state.status === 'error',\n isReady: (state: AuthState): state is ReadyState =>\n state.status === 'authenticated' || state.status === 'unauthenticated',\n} as const;\n\nexport interface AuthContextValue {\n // State (discriminated union)\n state: AuthState;\n\n // Actions\n login: (returnUrl?: string) => void; // Redirects to auth domain for authentication\n logout: () => Promise<void>;\n\n // Utilities\n getToken: (options: { template: 'web' }) => Promise<string | null>;\n getAuthState: () => AuthState;\n}\n\n/**\n * Component customization props for className overrides\n */\nexport interface ComponentClasses {\n [key: string]: string | undefined;\n}\n\n/**\n * Common props for all Blimu components\n */\nexport interface BlimuComponentProps {\n /** Custom className to apply to the root element */\n className?: string;\n /** Object of classNames to apply to specific sub-elements */\n classes?: ComponentClasses;\n}\n"],"names":[],"mappings":"AA+FO,MAAM,kBAAkB;AAAA,EAC7B,QAAQ,CAAC,UACP,MAAM,WAAW;AAAA,EACnB,WAAW,CAAC,UACV,MAAM,WAAW;AAAA,EACnB,iBAAiB,CAAC,UAChB,MAAM,WAAW;AAAA,EACnB,mBAAmB,CACjB,UAEA,MAAM,WAAW;AAAA,EACnB,SAAS,CAAC,UACR,MAAM,WAAW;AAAA,EACnB,SAAS,CAAC,UACR,MAAM,WAAW,mBAAmB,MAAM,WAAW;AACzD;"}
@@ -1,2 +1,63 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=[".dev-blimuauth.com",".blimuauth.com"];function n(t){try{const i=t.match(/^pk_(test|live)_(.+)$/);if(!i)return null;const e=i[1]==="live",o=i[2];if(!o)return null;const u=atob(o.replace(/-/g,"+").replace(/_/g,"/")).trim().split("$")[0];return u?{uiDomain:u,isProduction:e}:null}catch(i){return console.error("Failed to decode publishable key:",t,i),null}}function r(t){const i=n(t);return i?i.uiDomain==="localhost"||i.uiDomain.includes("localhost")?`http://${i.uiDomain}`:`https://${i.uiDomain}`:null}function a(t){const i=n(t);if(!i)return null;if(i.uiDomain==="localhost"||i.uiDomain.includes("localhost"))return`http://${i.uiDomain}`;if(i.isProduction)return i.uiDomain.startsWith("id.")?`https://${i.uiDomain.replace(/^id\./,"blimu.")}`:null;for(const e of l)if(i.uiDomain.endsWith(e))return`https://${i.uiDomain.replace(e,"")}.api${e}`;return null}exports.decodePublishableKey=n;exports.getAuthApiUrl=a;exports.getAuthDomainFromPublishableKey=r;
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const developmentDomains = [".dev-blimuauth.com", ".blimuauth.com"];
4
+ function decodePublishableKey(publishableKey) {
5
+ try {
6
+ const prefixMatch = publishableKey.match(/^pk_(test|live)_(.+)$/);
7
+ if (!prefixMatch) {
8
+ return null;
9
+ }
10
+ const isProduction = prefixMatch[1] === "live";
11
+ const encoded = prefixMatch[2];
12
+ if (!encoded) {
13
+ return null;
14
+ }
15
+ const decoded = atob(encoded.replace(/-/g, "+").replace(/_/g, "/"));
16
+ const uiDomain = decoded.trim().split("$")[0];
17
+ if (!uiDomain) {
18
+ return null;
19
+ }
20
+ return { uiDomain, isProduction };
21
+ } catch (error) {
22
+ console.error("Failed to decode publishable key:", publishableKey, error);
23
+ return null;
24
+ }
25
+ }
26
+ function getAuthDomainFromPublishableKey(publishableKey) {
27
+ const decoded = decodePublishableKey(publishableKey);
28
+ if (!decoded) {
29
+ return null;
30
+ }
31
+ if (decoded.uiDomain === "localhost" || decoded.uiDomain.includes("localhost")) {
32
+ return `http://${decoded.uiDomain}`;
33
+ }
34
+ return `https://${decoded.uiDomain}`;
35
+ }
36
+ function getAuthApiUrl(publishableKey) {
37
+ const decoded = decodePublishableKey(publishableKey);
38
+ if (!decoded) {
39
+ return null;
40
+ }
41
+ if (decoded.uiDomain === "localhost" || decoded.uiDomain.includes("localhost")) {
42
+ return `http://${decoded.uiDomain}`;
43
+ }
44
+ if (decoded.isProduction) {
45
+ if (decoded.uiDomain.startsWith("id.")) {
46
+ const apiDomain = decoded.uiDomain.replace(/^id\./, "blimu.");
47
+ return `https://${apiDomain}`;
48
+ }
49
+ return null;
50
+ } else {
51
+ for (const domain of developmentDomains) {
52
+ if (decoded.uiDomain.endsWith(domain)) {
53
+ const subdomain = decoded.uiDomain.replace(domain, "");
54
+ return `https://${subdomain}.api${domain}`;
55
+ }
56
+ }
57
+ return null;
58
+ }
59
+ }
60
+ exports.decodePublishableKey = decodePublishableKey;
61
+ exports.getAuthApiUrl = getAuthApiUrl;
62
+ exports.getAuthDomainFromPublishableKey = getAuthDomainFromPublishableKey;
2
63
  //# sourceMappingURL=publishable-key.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"publishable-key.cjs","sources":["../../src/utils/publishable-key.ts"],"sourcesContent":["/**\n * Utility functions for working with publishable keys\n *\n * Publishable key format: pk_test_<base64(fullUIDomain)>\n * or pk_live_<base64(fullUIDomain)> for production\n *\n * Test: {subdomain}.blimuauth.com\n * Live: id.{rootDomain}\n */\n\nexport interface DecodedPublishableKey {\n uiDomain: string;\n isProduction: boolean;\n}\n\n// CAUTION: Order matters, dev-blimuauth.com must be first\nconst developmentDomains = ['.dev-blimuauth.com', '.blimuauth.com'];\n\n/**\n * Decode publishable key to extract full UI domain\n *\n * @param publishableKey - The publishable key (e.g., pk_test_... or pk_live_...)\n * @returns Decoded information or null if invalid\n */\nexport function decodePublishableKey(publishableKey: string): DecodedPublishableKey | null {\n try {\n // Remove prefix (pk_test_ or pk_live_)\n const prefixMatch = publishableKey.match(/^pk_(test|live)_(.+)$/);\n if (!prefixMatch) {\n return null;\n }\n\n const isProduction = prefixMatch[1] === 'live';\n const encoded = prefixMatch[2];\n\n if (!encoded) {\n return null;\n }\n\n // Decode base64url\n const decoded = atob(encoded.replace(/-/g, '+').replace(/_/g, '/'));\n const uiDomain = decoded.trim().split('$')[0];\n\n if (!uiDomain) {\n return null;\n }\n\n return { uiDomain, isProduction };\n } catch (error) {\n console.error('Failed to decode publishable key:', publishableKey, error);\n return null;\n }\n}\n\n/**\n * Get auth UI domain URL from publishable key\n *\n * @param publishableKey - The publishable key\n * @returns Auth UI domain URL (e.g., https://subdomain.blimuauth.com or https://id.scrunchai.com)\n */\nexport function getAuthDomainFromPublishableKey(publishableKey: string): string | null {\n const decoded = decodePublishableKey(publishableKey);\n if (!decoded) {\n return null;\n }\n\n // For localhost development, use http://\n if (decoded.uiDomain === 'localhost' || decoded.uiDomain.includes('localhost')) {\n return `http://${decoded.uiDomain}`;\n }\n\n return `https://${decoded.uiDomain}`;\n}\n\n/**\n * Get auth API domain URL from publishable key\n *\n * Test environment: {subdomain}.api.blimuauth.com\n * Live environment: blimu.{customDomain}\n *\n * @param publishableKey - The publishable key\n * @returns Auth API domain URL (e.g., https://subdomain.api.blimuauth.com or https://blimu.scrunchai.com)\n */\nexport function getAuthApiUrl(publishableKey: string): string | null {\n const decoded = decodePublishableKey(publishableKey);\n if (!decoded) {\n return null;\n }\n\n // For localhost development\n if (decoded.uiDomain === 'localhost' || decoded.uiDomain.includes('localhost')) {\n return `http://${decoded.uiDomain}`;\n }\n\n if (decoded.isProduction) {\n // Live: Replace \"id.\" with \"blimu.\" to get API domain\n // e.g., id.scrunchai.com -> blimu.scrunchai.com\n if (decoded.uiDomain.startsWith('id.')) {\n const apiDomain = decoded.uiDomain.replace(/^id\\./, 'blimu.');\n return `https://${apiDomain}`;\n }\n return null;\n } else {\n for (const domain of developmentDomains) {\n if (decoded.uiDomain.endsWith(domain)) {\n const subdomain = decoded.uiDomain.replace(domain, '');\n return `https://${subdomain}.api${domain}`;\n }\n }\n\n return null;\n }\n}\n"],"names":["developmentDomains","decodePublishableKey","publishableKey","prefixMatch","isProduction","encoded","uiDomain","error","getAuthDomainFromPublishableKey","decoded","getAuthApiUrl","domain"],"mappings":"gFAgBA,MAAMA,EAAqB,CAAC,qBAAsB,gBAAgB,EAQ3D,SAASC,EAAqBC,EAAsD,CACzF,GAAI,CAEF,MAAMC,EAAcD,EAAe,MAAM,uBAAuB,EAChE,GAAI,CAACC,EACH,OAAO,KAGT,MAAMC,EAAeD,EAAY,CAAC,IAAM,OAClCE,EAAUF,EAAY,CAAC,EAE7B,GAAI,CAACE,EACH,OAAO,KAKT,MAAMC,EADU,KAAKD,EAAQ,QAAQ,KAAM,GAAG,EAAE,QAAQ,KAAM,GAAG,CAAC,EACzC,KAAA,EAAO,MAAM,GAAG,EAAE,CAAC,EAE5C,OAAKC,EAIE,CAAE,SAAAA,EAAU,aAAAF,CAAA,EAHV,IAIX,OAASG,EAAO,CACd,eAAQ,MAAM,oCAAqCL,EAAgBK,CAAK,EACjE,IACT,CACF,CAQO,SAASC,EAAgCN,EAAuC,CACrF,MAAMO,EAAUR,EAAqBC,CAAc,EACnD,OAAKO,EAKDA,EAAQ,WAAa,aAAeA,EAAQ,SAAS,SAAS,WAAW,EACpE,UAAUA,EAAQ,QAAQ,GAG5B,WAAWA,EAAQ,QAAQ,GARzB,IASX,CAWO,SAASC,EAAcR,EAAuC,CACnE,MAAMO,EAAUR,EAAqBC,CAAc,EACnD,GAAI,CAACO,EACH,OAAO,KAIT,GAAIA,EAAQ,WAAa,aAAeA,EAAQ,SAAS,SAAS,WAAW,EAC3E,MAAO,UAAUA,EAAQ,QAAQ,GAGnC,GAAIA,EAAQ,aAGV,OAAIA,EAAQ,SAAS,WAAW,KAAK,EAE5B,WADWA,EAAQ,SAAS,QAAQ,QAAS,QAAQ,CACjC,GAEtB,KAEP,UAAWE,KAAUX,EACnB,GAAIS,EAAQ,SAAS,SAASE,CAAM,EAElC,MAAO,WADWF,EAAQ,SAAS,QAAQE,EAAQ,EAAE,CAC1B,OAAOA,CAAM,GAI5C,OAAO,IAEX"}
1
+ {"version":3,"file":"publishable-key.cjs","sources":["../../src/utils/publishable-key.ts"],"sourcesContent":["/**\n * Utility functions for working with publishable keys\n *\n * Publishable key format: pk_test_<base64(fullUIDomain)>\n * or pk_live_<base64(fullUIDomain)> for production\n *\n * Test: {subdomain}.blimuauth.com\n * Live: id.{rootDomain}\n */\n\nexport interface DecodedPublishableKey {\n uiDomain: string;\n isProduction: boolean;\n}\n\n// CAUTION: Order matters, dev-blimuauth.com must be first\nconst developmentDomains = ['.dev-blimuauth.com', '.blimuauth.com'];\n\n/**\n * Decode publishable key to extract full UI domain\n *\n * @param publishableKey - The publishable key (e.g., pk_test_... or pk_live_...)\n * @returns Decoded information or null if invalid\n */\nexport function decodePublishableKey(publishableKey: string): DecodedPublishableKey | null {\n try {\n // Remove prefix (pk_test_ or pk_live_)\n const prefixMatch = publishableKey.match(/^pk_(test|live)_(.+)$/);\n if (!prefixMatch) {\n return null;\n }\n\n const isProduction = prefixMatch[1] === 'live';\n const encoded = prefixMatch[2];\n\n if (!encoded) {\n return null;\n }\n\n // Decode base64url\n const decoded = atob(encoded.replace(/-/g, '+').replace(/_/g, '/'));\n const uiDomain = decoded.trim().split('$')[0];\n\n if (!uiDomain) {\n return null;\n }\n\n return { uiDomain, isProduction };\n } catch (error) {\n console.error('Failed to decode publishable key:', publishableKey, error);\n return null;\n }\n}\n\n/**\n * Get auth UI domain URL from publishable key\n *\n * @param publishableKey - The publishable key\n * @returns Auth UI domain URL (e.g., https://subdomain.blimuauth.com or https://id.scrunchai.com)\n */\nexport function getAuthDomainFromPublishableKey(publishableKey: string): string | null {\n const decoded = decodePublishableKey(publishableKey);\n if (!decoded) {\n return null;\n }\n\n // For localhost development, use http://\n if (decoded.uiDomain === 'localhost' || decoded.uiDomain.includes('localhost')) {\n return `http://${decoded.uiDomain}`;\n }\n\n return `https://${decoded.uiDomain}`;\n}\n\n/**\n * Get auth API domain URL from publishable key\n *\n * Test environment: {subdomain}.api.blimuauth.com\n * Live environment: blimu.{customDomain}\n *\n * @param publishableKey - The publishable key\n * @returns Auth API domain URL (e.g., https://subdomain.api.blimuauth.com or https://blimu.scrunchai.com)\n */\nexport function getAuthApiUrl(publishableKey: string): string | null {\n const decoded = decodePublishableKey(publishableKey);\n if (!decoded) {\n return null;\n }\n\n // For localhost development\n if (decoded.uiDomain === 'localhost' || decoded.uiDomain.includes('localhost')) {\n return `http://${decoded.uiDomain}`;\n }\n\n if (decoded.isProduction) {\n // Live: Replace \"id.\" with \"blimu.\" to get API domain\n // e.g., id.scrunchai.com -> blimu.scrunchai.com\n if (decoded.uiDomain.startsWith('id.')) {\n const apiDomain = decoded.uiDomain.replace(/^id\\./, 'blimu.');\n return `https://${apiDomain}`;\n }\n return null;\n } else {\n for (const domain of developmentDomains) {\n if (decoded.uiDomain.endsWith(domain)) {\n const subdomain = decoded.uiDomain.replace(domain, '');\n return `https://${subdomain}.api${domain}`;\n }\n }\n\n return null;\n }\n}\n"],"names":[],"mappings":";;AAgBA,MAAM,qBAAqB,CAAC,sBAAsB,gBAAgB;AAQ3D,SAAS,qBAAqB,gBAAsD;AACzF,MAAI;AAEF,UAAM,cAAc,eAAe,MAAM,uBAAuB;AAChE,QAAI,CAAC,aAAa;AAChB,aAAO;AAAA,IACT;AAEA,UAAM,eAAe,YAAY,CAAC,MAAM;AACxC,UAAM,UAAU,YAAY,CAAC;AAE7B,QAAI,CAAC,SAAS;AACZ,aAAO;AAAA,IACT;AAGA,UAAM,UAAU,KAAK,QAAQ,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG,CAAC;AAClE,UAAM,WAAW,QAAQ,KAAA,EAAO,MAAM,GAAG,EAAE,CAAC;AAE5C,QAAI,CAAC,UAAU;AACb,aAAO;AAAA,IACT;AAEA,WAAO,EAAE,UAAU,aAAA;AAAA,EACrB,SAAS,OAAO;AACd,YAAQ,MAAM,qCAAqC,gBAAgB,KAAK;AACxE,WAAO;AAAA,EACT;AACF;AAQO,SAAS,gCAAgC,gBAAuC;AACrF,QAAM,UAAU,qBAAqB,cAAc;AACnD,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAGA,MAAI,QAAQ,aAAa,eAAe,QAAQ,SAAS,SAAS,WAAW,GAAG;AAC9E,WAAO,UAAU,QAAQ,QAAQ;AAAA,EACnC;AAEA,SAAO,WAAW,QAAQ,QAAQ;AACpC;AAWO,SAAS,cAAc,gBAAuC;AACnE,QAAM,UAAU,qBAAqB,cAAc;AACnD,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAGA,MAAI,QAAQ,aAAa,eAAe,QAAQ,SAAS,SAAS,WAAW,GAAG;AAC9E,WAAO,UAAU,QAAQ,QAAQ;AAAA,EACnC;AAEA,MAAI,QAAQ,cAAc;AAGxB,QAAI,QAAQ,SAAS,WAAW,KAAK,GAAG;AACtC,YAAM,YAAY,QAAQ,SAAS,QAAQ,SAAS,QAAQ;AAC5D,aAAO,WAAW,SAAS;AAAA,IAC7B;AACA,WAAO;AAAA,EACT,OAAO;AACL,eAAW,UAAU,oBAAoB;AACvC,UAAI,QAAQ,SAAS,SAAS,MAAM,GAAG;AACrC,cAAM,YAAY,QAAQ,SAAS,QAAQ,QAAQ,EAAE;AACrD,eAAO,WAAW,SAAS,OAAO,MAAM;AAAA,MAC1C;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;;;;"}
@@ -1,38 +1,63 @@
1
- const r = [".dev-blimuauth.com", ".blimuauth.com"];
2
- function u(n) {
1
+ const developmentDomains = [".dev-blimuauth.com", ".blimuauth.com"];
2
+ function decodePublishableKey(publishableKey) {
3
3
  try {
4
- const i = n.match(/^pk_(test|live)_(.+)$/);
5
- if (!i)
4
+ const prefixMatch = publishableKey.match(/^pk_(test|live)_(.+)$/);
5
+ if (!prefixMatch) {
6
6
  return null;
7
- const t = i[1] === "live", o = i[2];
8
- if (!o)
7
+ }
8
+ const isProduction = prefixMatch[1] === "live";
9
+ const encoded = prefixMatch[2];
10
+ if (!encoded) {
9
11
  return null;
10
- const e = atob(o.replace(/-/g, "+").replace(/_/g, "/")).trim().split("$")[0];
11
- return e ? { uiDomain: e, isProduction: t } : null;
12
- } catch (i) {
13
- return console.error("Failed to decode publishable key:", n, i), null;
12
+ }
13
+ const decoded = atob(encoded.replace(/-/g, "+").replace(/_/g, "/"));
14
+ const uiDomain = decoded.trim().split("$")[0];
15
+ if (!uiDomain) {
16
+ return null;
17
+ }
18
+ return { uiDomain, isProduction };
19
+ } catch (error) {
20
+ console.error("Failed to decode publishable key:", publishableKey, error);
21
+ return null;
14
22
  }
15
23
  }
16
- function a(n) {
17
- const i = u(n);
18
- return i ? i.uiDomain === "localhost" || i.uiDomain.includes("localhost") ? `http://${i.uiDomain}` : `https://${i.uiDomain}` : null;
24
+ function getAuthDomainFromPublishableKey(publishableKey) {
25
+ const decoded = decodePublishableKey(publishableKey);
26
+ if (!decoded) {
27
+ return null;
28
+ }
29
+ if (decoded.uiDomain === "localhost" || decoded.uiDomain.includes("localhost")) {
30
+ return `http://${decoded.uiDomain}`;
31
+ }
32
+ return `https://${decoded.uiDomain}`;
19
33
  }
20
- function c(n) {
21
- const i = u(n);
22
- if (!i)
34
+ function getAuthApiUrl(publishableKey) {
35
+ const decoded = decodePublishableKey(publishableKey);
36
+ if (!decoded) {
23
37
  return null;
24
- if (i.uiDomain === "localhost" || i.uiDomain.includes("localhost"))
25
- return `http://${i.uiDomain}`;
26
- if (i.isProduction)
27
- return i.uiDomain.startsWith("id.") ? `https://${i.uiDomain.replace(/^id\./, "blimu.")}` : null;
28
- for (const t of r)
29
- if (i.uiDomain.endsWith(t))
30
- return `https://${i.uiDomain.replace(t, "")}.api${t}`;
31
- return null;
38
+ }
39
+ if (decoded.uiDomain === "localhost" || decoded.uiDomain.includes("localhost")) {
40
+ return `http://${decoded.uiDomain}`;
41
+ }
42
+ if (decoded.isProduction) {
43
+ if (decoded.uiDomain.startsWith("id.")) {
44
+ const apiDomain = decoded.uiDomain.replace(/^id\./, "blimu.");
45
+ return `https://${apiDomain}`;
46
+ }
47
+ return null;
48
+ } else {
49
+ for (const domain of developmentDomains) {
50
+ if (decoded.uiDomain.endsWith(domain)) {
51
+ const subdomain = decoded.uiDomain.replace(domain, "");
52
+ return `https://${subdomain}.api${domain}`;
53
+ }
54
+ }
55
+ return null;
56
+ }
32
57
  }
33
58
  export {
34
- u as decodePublishableKey,
35
- c as getAuthApiUrl,
36
- a as getAuthDomainFromPublishableKey
59
+ decodePublishableKey,
60
+ getAuthApiUrl,
61
+ getAuthDomainFromPublishableKey
37
62
  };
38
63
  //# sourceMappingURL=publishable-key.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"publishable-key.js","sources":["../../src/utils/publishable-key.ts"],"sourcesContent":["/**\n * Utility functions for working with publishable keys\n *\n * Publishable key format: pk_test_<base64(fullUIDomain)>\n * or pk_live_<base64(fullUIDomain)> for production\n *\n * Test: {subdomain}.blimuauth.com\n * Live: id.{rootDomain}\n */\n\nexport interface DecodedPublishableKey {\n uiDomain: string;\n isProduction: boolean;\n}\n\n// CAUTION: Order matters, dev-blimuauth.com must be first\nconst developmentDomains = ['.dev-blimuauth.com', '.blimuauth.com'];\n\n/**\n * Decode publishable key to extract full UI domain\n *\n * @param publishableKey - The publishable key (e.g., pk_test_... or pk_live_...)\n * @returns Decoded information or null if invalid\n */\nexport function decodePublishableKey(publishableKey: string): DecodedPublishableKey | null {\n try {\n // Remove prefix (pk_test_ or pk_live_)\n const prefixMatch = publishableKey.match(/^pk_(test|live)_(.+)$/);\n if (!prefixMatch) {\n return null;\n }\n\n const isProduction = prefixMatch[1] === 'live';\n const encoded = prefixMatch[2];\n\n if (!encoded) {\n return null;\n }\n\n // Decode base64url\n const decoded = atob(encoded.replace(/-/g, '+').replace(/_/g, '/'));\n const uiDomain = decoded.trim().split('$')[0];\n\n if (!uiDomain) {\n return null;\n }\n\n return { uiDomain, isProduction };\n } catch (error) {\n console.error('Failed to decode publishable key:', publishableKey, error);\n return null;\n }\n}\n\n/**\n * Get auth UI domain URL from publishable key\n *\n * @param publishableKey - The publishable key\n * @returns Auth UI domain URL (e.g., https://subdomain.blimuauth.com or https://id.scrunchai.com)\n */\nexport function getAuthDomainFromPublishableKey(publishableKey: string): string | null {\n const decoded = decodePublishableKey(publishableKey);\n if (!decoded) {\n return null;\n }\n\n // For localhost development, use http://\n if (decoded.uiDomain === 'localhost' || decoded.uiDomain.includes('localhost')) {\n return `http://${decoded.uiDomain}`;\n }\n\n return `https://${decoded.uiDomain}`;\n}\n\n/**\n * Get auth API domain URL from publishable key\n *\n * Test environment: {subdomain}.api.blimuauth.com\n * Live environment: blimu.{customDomain}\n *\n * @param publishableKey - The publishable key\n * @returns Auth API domain URL (e.g., https://subdomain.api.blimuauth.com or https://blimu.scrunchai.com)\n */\nexport function getAuthApiUrl(publishableKey: string): string | null {\n const decoded = decodePublishableKey(publishableKey);\n if (!decoded) {\n return null;\n }\n\n // For localhost development\n if (decoded.uiDomain === 'localhost' || decoded.uiDomain.includes('localhost')) {\n return `http://${decoded.uiDomain}`;\n }\n\n if (decoded.isProduction) {\n // Live: Replace \"id.\" with \"blimu.\" to get API domain\n // e.g., id.scrunchai.com -> blimu.scrunchai.com\n if (decoded.uiDomain.startsWith('id.')) {\n const apiDomain = decoded.uiDomain.replace(/^id\\./, 'blimu.');\n return `https://${apiDomain}`;\n }\n return null;\n } else {\n for (const domain of developmentDomains) {\n if (decoded.uiDomain.endsWith(domain)) {\n const subdomain = decoded.uiDomain.replace(domain, '');\n return `https://${subdomain}.api${domain}`;\n }\n }\n\n return null;\n }\n}\n"],"names":["developmentDomains","decodePublishableKey","publishableKey","prefixMatch","isProduction","encoded","uiDomain","error","getAuthDomainFromPublishableKey","decoded","getAuthApiUrl","domain"],"mappings":"AAgBA,MAAMA,IAAqB,CAAC,sBAAsB,gBAAgB;AAQ3D,SAASC,EAAqBC,GAAsD;AACzF,MAAI;AAEF,UAAMC,IAAcD,EAAe,MAAM,uBAAuB;AAChE,QAAI,CAACC;AACH,aAAO;AAGT,UAAMC,IAAeD,EAAY,CAAC,MAAM,QAClCE,IAAUF,EAAY,CAAC;AAE7B,QAAI,CAACE;AACH,aAAO;AAKT,UAAMC,IADU,KAAKD,EAAQ,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG,CAAC,EACzC,KAAA,EAAO,MAAM,GAAG,EAAE,CAAC;AAE5C,WAAKC,IAIE,EAAE,UAAAA,GAAU,cAAAF,EAAA,IAHV;AAAA,EAIX,SAASG,GAAO;AACd,mBAAQ,MAAM,qCAAqCL,GAAgBK,CAAK,GACjE;AAAA,EACT;AACF;AAQO,SAASC,EAAgCN,GAAuC;AACrF,QAAMO,IAAUR,EAAqBC,CAAc;AACnD,SAAKO,IAKDA,EAAQ,aAAa,eAAeA,EAAQ,SAAS,SAAS,WAAW,IACpE,UAAUA,EAAQ,QAAQ,KAG5B,WAAWA,EAAQ,QAAQ,KARzB;AASX;AAWO,SAASC,EAAcR,GAAuC;AACnE,QAAMO,IAAUR,EAAqBC,CAAc;AACnD,MAAI,CAACO;AACH,WAAO;AAIT,MAAIA,EAAQ,aAAa,eAAeA,EAAQ,SAAS,SAAS,WAAW;AAC3E,WAAO,UAAUA,EAAQ,QAAQ;AAGnC,MAAIA,EAAQ;AAGV,WAAIA,EAAQ,SAAS,WAAW,KAAK,IAE5B,WADWA,EAAQ,SAAS,QAAQ,SAAS,QAAQ,CACjC,KAEtB;AAEP,aAAWE,KAAUX;AACnB,QAAIS,EAAQ,SAAS,SAASE,CAAM;AAElC,aAAO,WADWF,EAAQ,SAAS,QAAQE,GAAQ,EAAE,CAC1B,OAAOA,CAAM;AAI5C,SAAO;AAEX;"}
1
+ {"version":3,"file":"publishable-key.js","sources":["../../src/utils/publishable-key.ts"],"sourcesContent":["/**\n * Utility functions for working with publishable keys\n *\n * Publishable key format: pk_test_<base64(fullUIDomain)>\n * or pk_live_<base64(fullUIDomain)> for production\n *\n * Test: {subdomain}.blimuauth.com\n * Live: id.{rootDomain}\n */\n\nexport interface DecodedPublishableKey {\n uiDomain: string;\n isProduction: boolean;\n}\n\n// CAUTION: Order matters, dev-blimuauth.com must be first\nconst developmentDomains = ['.dev-blimuauth.com', '.blimuauth.com'];\n\n/**\n * Decode publishable key to extract full UI domain\n *\n * @param publishableKey - The publishable key (e.g., pk_test_... or pk_live_...)\n * @returns Decoded information or null if invalid\n */\nexport function decodePublishableKey(publishableKey: string): DecodedPublishableKey | null {\n try {\n // Remove prefix (pk_test_ or pk_live_)\n const prefixMatch = publishableKey.match(/^pk_(test|live)_(.+)$/);\n if (!prefixMatch) {\n return null;\n }\n\n const isProduction = prefixMatch[1] === 'live';\n const encoded = prefixMatch[2];\n\n if (!encoded) {\n return null;\n }\n\n // Decode base64url\n const decoded = atob(encoded.replace(/-/g, '+').replace(/_/g, '/'));\n const uiDomain = decoded.trim().split('$')[0];\n\n if (!uiDomain) {\n return null;\n }\n\n return { uiDomain, isProduction };\n } catch (error) {\n console.error('Failed to decode publishable key:', publishableKey, error);\n return null;\n }\n}\n\n/**\n * Get auth UI domain URL from publishable key\n *\n * @param publishableKey - The publishable key\n * @returns Auth UI domain URL (e.g., https://subdomain.blimuauth.com or https://id.scrunchai.com)\n */\nexport function getAuthDomainFromPublishableKey(publishableKey: string): string | null {\n const decoded = decodePublishableKey(publishableKey);\n if (!decoded) {\n return null;\n }\n\n // For localhost development, use http://\n if (decoded.uiDomain === 'localhost' || decoded.uiDomain.includes('localhost')) {\n return `http://${decoded.uiDomain}`;\n }\n\n return `https://${decoded.uiDomain}`;\n}\n\n/**\n * Get auth API domain URL from publishable key\n *\n * Test environment: {subdomain}.api.blimuauth.com\n * Live environment: blimu.{customDomain}\n *\n * @param publishableKey - The publishable key\n * @returns Auth API domain URL (e.g., https://subdomain.api.blimuauth.com or https://blimu.scrunchai.com)\n */\nexport function getAuthApiUrl(publishableKey: string): string | null {\n const decoded = decodePublishableKey(publishableKey);\n if (!decoded) {\n return null;\n }\n\n // For localhost development\n if (decoded.uiDomain === 'localhost' || decoded.uiDomain.includes('localhost')) {\n return `http://${decoded.uiDomain}`;\n }\n\n if (decoded.isProduction) {\n // Live: Replace \"id.\" with \"blimu.\" to get API domain\n // e.g., id.scrunchai.com -> blimu.scrunchai.com\n if (decoded.uiDomain.startsWith('id.')) {\n const apiDomain = decoded.uiDomain.replace(/^id\\./, 'blimu.');\n return `https://${apiDomain}`;\n }\n return null;\n } else {\n for (const domain of developmentDomains) {\n if (decoded.uiDomain.endsWith(domain)) {\n const subdomain = decoded.uiDomain.replace(domain, '');\n return `https://${subdomain}.api${domain}`;\n }\n }\n\n return null;\n }\n}\n"],"names":[],"mappings":"AAgBA,MAAM,qBAAqB,CAAC,sBAAsB,gBAAgB;AAQ3D,SAAS,qBAAqB,gBAAsD;AACzF,MAAI;AAEF,UAAM,cAAc,eAAe,MAAM,uBAAuB;AAChE,QAAI,CAAC,aAAa;AAChB,aAAO;AAAA,IACT;AAEA,UAAM,eAAe,YAAY,CAAC,MAAM;AACxC,UAAM,UAAU,YAAY,CAAC;AAE7B,QAAI,CAAC,SAAS;AACZ,aAAO;AAAA,IACT;AAGA,UAAM,UAAU,KAAK,QAAQ,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG,CAAC;AAClE,UAAM,WAAW,QAAQ,KAAA,EAAO,MAAM,GAAG,EAAE,CAAC;AAE5C,QAAI,CAAC,UAAU;AACb,aAAO;AAAA,IACT;AAEA,WAAO,EAAE,UAAU,aAAA;AAAA,EACrB,SAAS,OAAO;AACd,YAAQ,MAAM,qCAAqC,gBAAgB,KAAK;AACxE,WAAO;AAAA,EACT;AACF;AAQO,SAAS,gCAAgC,gBAAuC;AACrF,QAAM,UAAU,qBAAqB,cAAc;AACnD,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAGA,MAAI,QAAQ,aAAa,eAAe,QAAQ,SAAS,SAAS,WAAW,GAAG;AAC9E,WAAO,UAAU,QAAQ,QAAQ;AAAA,EACnC;AAEA,SAAO,WAAW,QAAQ,QAAQ;AACpC;AAWO,SAAS,cAAc,gBAAuC;AACnE,QAAM,UAAU,qBAAqB,cAAc;AACnD,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAGA,MAAI,QAAQ,aAAa,eAAe,QAAQ,SAAS,SAAS,WAAW,GAAG;AAC9E,WAAO,UAAU,QAAQ,QAAQ;AAAA,EACnC;AAEA,MAAI,QAAQ,cAAc;AAGxB,QAAI,QAAQ,SAAS,WAAW,KAAK,GAAG;AACtC,YAAM,YAAY,QAAQ,SAAS,QAAQ,SAAS,QAAQ;AAC5D,aAAO,WAAW,SAAS;AAAA,IAC7B;AACA,WAAO;AAAA,EACT,OAAO;AACL,eAAW,UAAU,oBAAoB;AACvC,UAAI,QAAQ,SAAS,SAAS,MAAM,GAAG;AACrC,cAAM,YAAY,QAAQ,SAAS,QAAQ,QAAQ,EAAE;AACrD,eAAO,WAAW,SAAS,OAAO,MAAM;AAAA,MAC1C;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;"}
package/package.json CHANGED
@@ -1,8 +1,7 @@
1
1
  {
2
2
  "name": "@blimu/react",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "React components and hooks for Blimu authentication and authorization",
5
- "type": "module",
6
5
  "repository": {
7
6
  "type": "git",
8
7
  "url": "https://github.com/blimu-dev/blimu-ts"
@@ -10,8 +9,7 @@
10
9
  "publishConfig": {
11
10
  "access": "public"
12
11
  },
13
- "main": "./dist/index.cjs",
14
- "module": "./dist/index.js",
12
+ "main": "./dist/index.js",
15
13
  "types": "./dist/index.d.ts",
16
14
  "files": [
17
15
  "dist",
@@ -20,9 +18,45 @@
20
18
  "sideEffects": [
21
19
  "*.css"
22
20
  ],
21
+ "exports": {
22
+ ".": {
23
+ "types": "./dist/index.d.ts",
24
+ "import": "./dist/index.js",
25
+ "require": "./dist/index.cjs",
26
+ "default": "./dist/index.js"
27
+ },
28
+ "./hooks": {
29
+ "types": "./dist/hooks/index.d.ts",
30
+ "import": "./dist/hooks/index.js",
31
+ "require": "./dist/hooks/index.cjs",
32
+ "default": "./dist/hooks/index.js"
33
+ },
34
+ "./providers": {
35
+ "types": "./dist/providers/index.d.ts",
36
+ "import": "./dist/providers/index.js",
37
+ "require": "./dist/providers/index.cjs",
38
+ "default": "./dist/providers/index.js"
39
+ },
40
+ "./components": {
41
+ "types": "./dist/components/index.d.ts",
42
+ "import": "./dist/components/index.js",
43
+ "require": "./dist/components/index.cjs",
44
+ "default": "./dist/components/index.js"
45
+ },
46
+ "./types": {
47
+ "types": "./dist/types/index.d.ts",
48
+ "import": "./dist/types/index.js",
49
+ "require": "./dist/types/index.cjs",
50
+ "default": "./dist/types/index.js"
51
+ },
52
+ "./styles": "./dist/styles/styles.css",
53
+ "./tw-styles": "./dist/styles/tw-styles.css",
54
+ "./package.json": "./package.json"
55
+ },
23
56
  "scripts": {
24
- "build": "vite build && tsc --project tsconfig.build.json --emitDeclarationOnly || true && node build-css.js",
57
+ "build": "vite build && yarn typecheck && tsc --project tsconfig.build.json --emitDeclarationOnly && node build-css.js",
25
58
  "lint": "eslint . --max-warnings 0",
59
+ "typecheck": "tsc --noEmit",
26
60
  "dev": "vite build --watch",
27
61
  "test": "vitest run",
28
62
  "test:watch": "vitest",
@@ -44,7 +78,7 @@
44
78
  }
45
79
  },
46
80
  "dependencies": {
47
- "@blimu/client": "1.1.0",
81
+ "@blimu/client": "1.1.1",
48
82
  "@radix-ui/react-avatar": "^1.1.11",
49
83
  "@radix-ui/react-dropdown-menu": "^2.1.16",
50
84
  "@radix-ui/react-popover": "^1.1.15",
@@ -85,42 +119,7 @@
85
119
  "vite-tsconfig-paths": "^6.0.3",
86
120
  "vitest": "^4.0.16"
87
121
  },
88
- "exports": {
89
- ".": {
90
- "types": "./dist/index.d.ts",
91
- "import": "./dist/index.js",
92
- "require": "./dist/index.cjs",
93
- "default": "./dist/index.js"
94
- },
95
- "./hooks": {
96
- "types": "./dist/hooks/index.d.ts",
97
- "import": "./dist/hooks/index.js",
98
- "require": "./dist/hooks/index.cjs",
99
- "default": "./dist/hooks/index.js"
100
- },
101
- "./providers": {
102
- "types": "./dist/providers/index.d.ts",
103
- "import": "./dist/providers/index.js",
104
- "require": "./dist/providers/index.cjs",
105
- "default": "./dist/providers/index.js"
106
- },
107
- "./components": {
108
- "types": "./dist/components/index.d.ts",
109
- "import": "./dist/components/index.js",
110
- "require": "./dist/components/index.cjs",
111
- "default": "./dist/components/index.js"
112
- },
113
- "./types": {
114
- "types": "./dist/types/index.d.ts",
115
- "import": "./dist/types/index.js",
116
- "require": "./dist/types/index.cjs",
117
- "default": "./dist/types/index.js"
118
- },
119
- "./styles": "./dist/styles/styles.css",
120
- "./tw-styles": "./dist/styles/tw-styles.css",
121
- "./package.json": "./package.json"
122
- },
123
- "packageManager": "yarn@3.8.7",
122
+ "packageManager": "yarn@4.12.0",
124
123
  "volta": {
125
124
  "extends": "../../package.json"
126
125
  },
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./components/redirect-to-sign-in.cjs"),t=require("./components/user-button/user-button.cjs"),r=require("./components/user-avatar.cjs"),n=require("./components/sign-in-button.cjs"),i=require("./components/members-list.cjs");exports.RedirectToSignIn=e.RedirectToSignIn;exports.UserButton=t.UserButton;exports.UserAvatar=r.UserAvatar;exports.SignInButton=n.SignInButton;exports.MembersList=i.MembersList;
2
- //# sourceMappingURL=components.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"components.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,13 +0,0 @@
1
- import { RedirectToSignIn as t } from "./components/redirect-to-sign-in.js";
2
- import { UserButton as m } from "./components/user-button/user-button.js";
3
- import { UserAvatar as f } from "./components/user-avatar.js";
4
- import { SignInButton as x } from "./components/sign-in-button.js";
5
- import { MembersList as s } from "./components/members-list.js";
6
- export {
7
- s as MembersList,
8
- t as RedirectToSignIn,
9
- x as SignInButton,
10
- f as UserAvatar,
11
- m as UserButton
12
- };
13
- //# sourceMappingURL=components.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"components.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
package/dist/hooks.cjs DELETED
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./providers/blimu/blimu.hook.cjs"),e=require("./hooks/use-auth.cjs"),s=require("./hooks/use-client.cjs"),r=require("./hooks/use-store.cjs"),t=require("./hooks/use-members.cjs");exports.useBlimu=u.useBlimu;exports.useAuth=e.useAuth;exports.useUser=e.useUser;exports.useClient=s.useClient;exports.useStore=r.useStore;exports.useMembers=t.useMembers;
2
- //# sourceMappingURL=hooks.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/dist/hooks.js DELETED
@@ -1,14 +0,0 @@
1
- import { useBlimu as o } from "./providers/blimu/blimu.hook.js";
2
- import { useAuth as t, useUser as u } from "./hooks/use-auth.js";
3
- import { useClient as f } from "./hooks/use-client.js";
4
- import { useStore as x } from "./hooks/use-store.js";
5
- import { useMembers as l } from "./hooks/use-members.js";
6
- export {
7
- t as useAuth,
8
- o as useBlimu,
9
- f as useClient,
10
- l as useMembers,
11
- x as useStore,
12
- u as useUser
13
- };
14
- //# sourceMappingURL=hooks.js.map
package/dist/hooks.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./providers/blimu/blimu.hook.cjs"),r=require("./providers/blimu/blimu.provider.cjs"),i=require("./providers/auth/auth.provider.cjs"),o=require("./providers/theme/theme.provider.cjs"),u=require("./providers/theme/theme.hook.cjs");exports.useBlimu=e.useBlimu;exports.BlimuProvider=r.BlimuProvider;exports.AuthProvider=i.AuthProvider;exports.ThemeProvider=o.ThemeProvider;exports.useTheme=u.useTheme;
2
- //# sourceMappingURL=providers.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"providers.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/dist/providers.js DELETED
@@ -1,13 +0,0 @@
1
- import { useBlimu as o } from "./providers/blimu/blimu.hook.js";
2
- import { BlimuProvider as t } from "./providers/blimu/blimu.provider.js";
3
- import { AuthProvider as i } from "./providers/auth/auth.provider.js";
4
- import { ThemeProvider as u } from "./providers/theme/theme.provider.js";
5
- import { useTheme as d } from "./providers/theme/theme.hook.js";
6
- export {
7
- i as AuthProvider,
8
- t as BlimuProvider,
9
- u as ThemeProvider,
10
- o as useBlimu,
11
- d as useTheme
12
- };
13
- //# sourceMappingURL=providers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"providers.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./node_modules/tailwindcss/dist/plugin.cjs"),l=o(({addBase:r,theme:u})=>{r({":root":{"--blimu-background":"oklch(1 0 0)","--blimu-foreground":"oklch(0.145 0 0)","--blimu-card":"oklch(1 0 0)","--blimu-card-foreground":"oklch(0.145 0 0)","--blimu-popover":"oklch(1 0 0)","--blimu-popover-foreground":"oklch(0.145 0 0)","--blimu-primary":"oklch(0.5 0.2 270)","--blimu-primary-foreground":"oklch(0.985 0 0)","--blimu-secondary":"oklch(0.97 0 0)","--blimu-secondary-foreground":"oklch(0.205 0 0)","--blimu-muted":"oklch(0.97 0 0)","--blimu-muted-foreground":"oklch(0.556 0 0)","--blimu-accent":"oklch(0.97 0 0)","--blimu-accent-foreground":"oklch(0.205 0 0)","--blimu-destructive":"oklch(0.577 0.245 27.325)","--blimu-destructive-foreground":"oklch(0.577 0.245 27.325)","--blimu-border":"oklch(0.922 0 0)","--blimu-input":"oklch(0.922 0 0)","--blimu-ring":"oklch(0.4 0 0)","--blimu-chart-1":"oklch(0.646 0.222 41.116)","--blimu-chart-2":"oklch(0.6 0.118 184.704)","--blimu-chart-3":"oklch(0.398 0.07 227.392)","--blimu-chart-4":"oklch(0.828 0.189 84.429)","--blimu-chart-5":"oklch(0.769 0.188 70.08)","--blimu-radius":"0.625rem","--blimu-sidebar":"oklch(0.985 0 0)","--blimu-sidebar-foreground":"oklch(0.145 0 0)","--blimu-sidebar-primary":"oklch(0.205 0 0)","--blimu-sidebar-primary-foreground":"oklch(0.985 0 0)","--blimu-sidebar-accent":"oklch(0.97 0 0)","--blimu-sidebar-accent-foreground":"oklch(0.205 0 0)","--blimu-sidebar-border":"oklch(0.922 0 0)","--blimu-sidebar-ring":"oklch(0.708 0 0)"},".dark":{"--blimu-background":"oklch(0.145 0 0)","--blimu-foreground":"oklch(0.985 0 0)","--blimu-card":"oklch(0.145 0 0)","--blimu-card-foreground":"oklch(0.985 0 0)","--blimu-popover":"oklch(0.22 0 0)","--blimu-popover-foreground":"oklch(0.985 0 0)","--blimu-primary":"oklch(0.65 0.2 270)","--blimu-primary-foreground":"oklch(0.985 0 0)","--blimu-secondary":"oklch(0.269 0 0)","--blimu-secondary-foreground":"oklch(0.985 0 0)","--blimu-muted":"oklch(0.269 0 0)","--blimu-muted-foreground":"oklch(0.708 0 0)","--blimu-accent":"oklch(0.269 0 0)","--blimu-accent-foreground":"oklch(0.985 0 0)","--blimu-destructive":"oklch(0.396 0.141 25.723)","--blimu-destructive-foreground":"oklch(0.637 0.237 25.331)","--blimu-border":"oklch(0.269 0 0)","--blimu-input":"oklch(0.269 0 0)","--blimu-ring":"oklch(0.7 0 0)","--blimu-chart-1":"oklch(0.488 0.243 264.376)","--blimu-chart-2":"oklch(0.696 0.17 162.48)","--blimu-chart-3":"oklch(0.769 0.188 70.08)","--blimu-chart-4":"oklch(0.627 0.265 303.9)","--blimu-chart-5":"oklch(0.645 0.246 16.439)","--blimu-sidebar":"oklch(0.205 0 0)","--blimu-sidebar-foreground":"oklch(0.985 0 0)","--blimu-sidebar-primary":"oklch(0.488 0.243 264.376)","--blimu-sidebar-primary-foreground":"oklch(0.985 0 0)","--blimu-sidebar-accent":"oklch(0.269 0 0)","--blimu-sidebar-accent-foreground":"oklch(0.985 0 0)","--blimu-sidebar-border":"oklch(0.269 0 0)","--blimu-sidebar-ring":"oklch(0.439 0 0)"}})},{theme:{extend:{colors:{background:"oklch(var(--blimu-background))",foreground:"oklch(var(--blimu-foreground))",card:{DEFAULT:"oklch(var(--blimu-card))",foreground:"oklch(var(--blimu-card-foreground))"},popover:{DEFAULT:"oklch(var(--blimu-popover))",foreground:"oklch(var(--blimu-popover-foreground))"},primary:{DEFAULT:"oklch(var(--blimu-primary))",foreground:"oklch(var(--blimu-primary-foreground))"},secondary:{DEFAULT:"oklch(var(--blimu-secondary))",foreground:"oklch(var(--blimu-secondary-foreground))"},muted:{DEFAULT:"oklch(var(--blimu-muted))",foreground:"oklch(var(--blimu-muted-foreground))"},accent:{DEFAULT:"oklch(var(--blimu-accent))",foreground:"oklch(var(--blimu-accent-foreground))"},destructive:{DEFAULT:"oklch(var(--blimu-destructive))",foreground:"oklch(var(--blimu-destructive-foreground))"},border:"oklch(var(--blimu-border))",input:"oklch(var(--blimu-input))",ring:"oklch(var(--blimu-ring))",blimu:{background:"oklch(var(--blimu-background))",foreground:"oklch(var(--blimu-foreground))",card:{DEFAULT:"oklch(var(--blimu-card))",foreground:"oklch(var(--blimu-card-foreground))"},popover:{DEFAULT:"oklch(var(--blimu-popover))",foreground:"oklch(var(--blimu-popover-foreground))"},primary:{DEFAULT:"oklch(var(--blimu-primary))",foreground:"oklch(var(--blimu-primary-foreground))"},secondary:{DEFAULT:"oklch(var(--blimu-secondary))",foreground:"oklch(var(--blimu-secondary-foreground))"},muted:{DEFAULT:"oklch(var(--blimu-muted))",foreground:"oklch(var(--blimu-muted-foreground))"},accent:{DEFAULT:"oklch(var(--blimu-accent))",foreground:"oklch(var(--blimu-accent-foreground))"},destructive:{DEFAULT:"oklch(var(--blimu-destructive))",foreground:"oklch(var(--blimu-destructive-foreground))"},border:"oklch(var(--blimu-border))",input:"oklch(var(--blimu-input))",ring:"oklch(var(--blimu-ring))",chart:{1:"oklch(var(--blimu-chart-1))",2:"oklch(var(--blimu-chart-2))",3:"oklch(var(--blimu-chart-3))",4:"oklch(var(--blimu-chart-4))",5:"oklch(var(--blimu-chart-5))"},sidebar:{DEFAULT:"oklch(var(--blimu-sidebar))",foreground:"oklch(var(--blimu-sidebar-foreground))",primary:{DEFAULT:"oklch(var(--blimu-sidebar-primary))",foreground:"oklch(var(--blimu-sidebar-primary-foreground))"},accent:{DEFAULT:"oklch(var(--blimu-sidebar-accent))",foreground:"oklch(var(--blimu-sidebar-accent-foreground))"},border:"oklch(var(--blimu-sidebar-border))",ring:"oklch(var(--blimu-sidebar-ring))"}}},borderRadius:{blimu:"var(--blimu-radius)","blimu-sm":"calc(var(--blimu-radius) - 4px)","blimu-md":"calc(var(--blimu-radius) - 2px)","blimu-lg":"var(--blimu-radius)","blimu-xl":"calc(var(--blimu-radius) + 4px)"}}},content:["animate-in","animate-out","fade-in-0","fade-out-0","zoom-in-95","zoom-out-95","slide-in-from-top","slide-in-from-bottom","slide-in-from-left","slide-in-from-right"]});exports.blimuPlugin=l;
2
- //# sourceMappingURL=tailwind.plugin.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tailwind.plugin.cjs","sources":["../src/tailwind.plugin.ts"],"sourcesContent":["import plugin from 'tailwindcss/plugin';\n\n/**\n * Blimu Tailwind CSS Plugin\n *\n * This plugin extends Tailwind with Blimu-specific design tokens and utilities.\n * It injects CSS variables and extends the theme with the Blimu color palette.\n *\n * @example\n * ```javascript\n * // tailwind.config.js\n * import { blimuPlugin } from '@blimu/react/tailwind';\n *\n * export default {\n * plugins: [blimuPlugin],\n * };\n * ```\n */\nexport const blimuPlugin: ReturnType<typeof plugin> = plugin(\n ({ addBase, theme }) => {\n // Inject CSS variables as base styles\n addBase({\n ':root': {\n '--blimu-background': 'oklch(1 0 0)',\n '--blimu-foreground': 'oklch(0.145 0 0)',\n '--blimu-card': 'oklch(1 0 0)',\n '--blimu-card-foreground': 'oklch(0.145 0 0)',\n '--blimu-popover': 'oklch(1 0 0)',\n '--blimu-popover-foreground': 'oklch(0.145 0 0)',\n '--blimu-primary': 'oklch(0.5 0.2 270)',\n '--blimu-primary-foreground': 'oklch(0.985 0 0)',\n '--blimu-secondary': 'oklch(0.97 0 0)',\n '--blimu-secondary-foreground': 'oklch(0.205 0 0)',\n '--blimu-muted': 'oklch(0.97 0 0)',\n '--blimu-muted-foreground': 'oklch(0.556 0 0)',\n '--blimu-accent': 'oklch(0.97 0 0)',\n '--blimu-accent-foreground': 'oklch(0.205 0 0)',\n '--blimu-destructive': 'oklch(0.577 0.245 27.325)',\n '--blimu-destructive-foreground': 'oklch(0.577 0.245 27.325)',\n '--blimu-border': 'oklch(0.922 0 0)',\n '--blimu-input': 'oklch(0.922 0 0)',\n '--blimu-ring': 'oklch(0.4 0 0)',\n '--blimu-chart-1': 'oklch(0.646 0.222 41.116)',\n '--blimu-chart-2': 'oklch(0.6 0.118 184.704)',\n '--blimu-chart-3': 'oklch(0.398 0.07 227.392)',\n '--blimu-chart-4': 'oklch(0.828 0.189 84.429)',\n '--blimu-chart-5': 'oklch(0.769 0.188 70.08)',\n '--blimu-radius': '0.625rem',\n '--blimu-sidebar': 'oklch(0.985 0 0)',\n '--blimu-sidebar-foreground': 'oklch(0.145 0 0)',\n '--blimu-sidebar-primary': 'oklch(0.205 0 0)',\n '--blimu-sidebar-primary-foreground': 'oklch(0.985 0 0)',\n '--blimu-sidebar-accent': 'oklch(0.97 0 0)',\n '--blimu-sidebar-accent-foreground': 'oklch(0.205 0 0)',\n '--blimu-sidebar-border': 'oklch(0.922 0 0)',\n '--blimu-sidebar-ring': 'oklch(0.708 0 0)',\n },\n '.dark': {\n '--blimu-background': 'oklch(0.145 0 0)',\n '--blimu-foreground': 'oklch(0.985 0 0)',\n '--blimu-card': 'oklch(0.145 0 0)',\n '--blimu-card-foreground': 'oklch(0.985 0 0)',\n '--blimu-popover': 'oklch(0.22 0 0)',\n '--blimu-popover-foreground': 'oklch(0.985 0 0)',\n '--blimu-primary': 'oklch(0.65 0.2 270)',\n '--blimu-primary-foreground': 'oklch(0.985 0 0)',\n '--blimu-secondary': 'oklch(0.269 0 0)',\n '--blimu-secondary-foreground': 'oklch(0.985 0 0)',\n '--blimu-muted': 'oklch(0.269 0 0)',\n '--blimu-muted-foreground': 'oklch(0.708 0 0)',\n '--blimu-accent': 'oklch(0.269 0 0)',\n '--blimu-accent-foreground': 'oklch(0.985 0 0)',\n '--blimu-destructive': 'oklch(0.396 0.141 25.723)',\n '--blimu-destructive-foreground': 'oklch(0.637 0.237 25.331)',\n '--blimu-border': 'oklch(0.269 0 0)',\n '--blimu-input': 'oklch(0.269 0 0)',\n '--blimu-ring': 'oklch(0.7 0 0)',\n '--blimu-chart-1': 'oklch(0.488 0.243 264.376)',\n '--blimu-chart-2': 'oklch(0.696 0.17 162.48)',\n '--blimu-chart-3': 'oklch(0.769 0.188 70.08)',\n '--blimu-chart-4': 'oklch(0.627 0.265 303.9)',\n '--blimu-chart-5': 'oklch(0.645 0.246 16.439)',\n '--blimu-sidebar': 'oklch(0.205 0 0)',\n '--blimu-sidebar-foreground': 'oklch(0.985 0 0)',\n '--blimu-sidebar-primary': 'oklch(0.488 0.243 264.376)',\n '--blimu-sidebar-primary-foreground': 'oklch(0.985 0 0)',\n '--blimu-sidebar-accent': 'oklch(0.269 0 0)',\n '--blimu-sidebar-accent-foreground': 'oklch(0.985 0 0)',\n '--blimu-sidebar-border': 'oklch(0.269 0 0)',\n '--blimu-sidebar-ring': 'oklch(0.439 0 0)',\n },\n });\n },\n {\n // Extend Tailwind with Blimu-specific utilities\n theme: {\n extend: {\n colors: {\n // Top-level aliases matching Shadcn pattern (for compatibility)\n background: 'oklch(var(--blimu-background))',\n foreground: 'oklch(var(--blimu-foreground))',\n card: {\n DEFAULT: 'oklch(var(--blimu-card))',\n foreground: 'oklch(var(--blimu-card-foreground))',\n },\n popover: {\n DEFAULT: 'oklch(var(--blimu-popover))',\n foreground: 'oklch(var(--blimu-popover-foreground))',\n },\n primary: {\n DEFAULT: 'oklch(var(--blimu-primary))',\n foreground: 'oklch(var(--blimu-primary-foreground))',\n },\n secondary: {\n DEFAULT: 'oklch(var(--blimu-secondary))',\n foreground: 'oklch(var(--blimu-secondary-foreground))',\n },\n muted: {\n DEFAULT: 'oklch(var(--blimu-muted))',\n foreground: 'oklch(var(--blimu-muted-foreground))',\n },\n accent: {\n DEFAULT: 'oklch(var(--blimu-accent))',\n foreground: 'oklch(var(--blimu-accent-foreground))',\n },\n destructive: {\n DEFAULT: 'oklch(var(--blimu-destructive))',\n foreground: 'oklch(var(--blimu-destructive-foreground))',\n },\n border: 'oklch(var(--blimu-border))',\n input: 'oklch(var(--blimu-input))',\n ring: 'oklch(var(--blimu-ring))',\n // Scoped Blimu colors (preferred for explicit scoping)\n blimu: {\n background: 'oklch(var(--blimu-background))',\n foreground: 'oklch(var(--blimu-foreground))',\n card: {\n DEFAULT: 'oklch(var(--blimu-card))',\n foreground: 'oklch(var(--blimu-card-foreground))',\n },\n popover: {\n DEFAULT: 'oklch(var(--blimu-popover))',\n foreground: 'oklch(var(--blimu-popover-foreground))',\n },\n primary: {\n DEFAULT: 'oklch(var(--blimu-primary))',\n foreground: 'oklch(var(--blimu-primary-foreground))',\n },\n secondary: {\n DEFAULT: 'oklch(var(--blimu-secondary))',\n foreground: 'oklch(var(--blimu-secondary-foreground))',\n },\n muted: {\n DEFAULT: 'oklch(var(--blimu-muted))',\n foreground: 'oklch(var(--blimu-muted-foreground))',\n },\n accent: {\n DEFAULT: 'oklch(var(--blimu-accent))',\n foreground: 'oklch(var(--blimu-accent-foreground))',\n },\n destructive: {\n DEFAULT: 'oklch(var(--blimu-destructive))',\n foreground: 'oklch(var(--blimu-destructive-foreground))',\n },\n border: 'oklch(var(--blimu-border))',\n input: 'oklch(var(--blimu-input))',\n ring: 'oklch(var(--blimu-ring))',\n chart: {\n 1: 'oklch(var(--blimu-chart-1))',\n 2: 'oklch(var(--blimu-chart-2))',\n 3: 'oklch(var(--blimu-chart-3))',\n 4: 'oklch(var(--blimu-chart-4))',\n 5: 'oklch(var(--blimu-chart-5))',\n },\n sidebar: {\n DEFAULT: 'oklch(var(--blimu-sidebar))',\n foreground: 'oklch(var(--blimu-sidebar-foreground))',\n primary: {\n DEFAULT: 'oklch(var(--blimu-sidebar-primary))',\n foreground: 'oklch(var(--blimu-sidebar-primary-foreground))',\n },\n accent: {\n DEFAULT: 'oklch(var(--blimu-sidebar-accent))',\n foreground: 'oklch(var(--blimu-sidebar-accent-foreground))',\n },\n border: 'oklch(var(--blimu-sidebar-border))',\n ring: 'oklch(var(--blimu-sidebar-ring))',\n },\n },\n },\n borderRadius: {\n blimu: 'var(--blimu-radius)',\n 'blimu-sm': 'calc(var(--blimu-radius) - 4px)',\n 'blimu-md': 'calc(var(--blimu-radius) - 2px)',\n 'blimu-lg': 'var(--blimu-radius)',\n 'blimu-xl': 'calc(var(--blimu-radius) + 4px)',\n },\n },\n },\n // Safelist critical animation classes\n content: [\n 'animate-in',\n 'animate-out',\n 'fade-in-0',\n 'fade-out-0',\n 'zoom-in-95',\n 'zoom-out-95',\n 'slide-in-from-top',\n 'slide-in-from-bottom',\n 'slide-in-from-left',\n 'slide-in-from-right',\n ],\n },\n);\n"],"names":["blimuPlugin","plugin","addBase","theme"],"mappings":"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"}