@blimu/react 1.1.0 → 1.1.4

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 (489) hide show
  1. package/README.md +1 -1
  2. package/dist/_virtual/index.cjs +5 -1
  3. package/dist/_virtual/index.cjs.map +1 -1
  4. package/dist/_virtual/index.js +3 -3
  5. package/dist/_virtual/index2.cjs +4 -1
  6. package/dist/_virtual/index2.cjs.map +1 -1
  7. package/dist/_virtual/index2.js +2 -2
  8. package/dist/_virtual/use-sync-external-store-shim.development.cjs +4 -1
  9. package/dist/_virtual/use-sync-external-store-shim.development.cjs.map +1 -1
  10. package/dist/_virtual/use-sync-external-store-shim.development.js +2 -2
  11. package/dist/_virtual/use-sync-external-store-shim.production.cjs +4 -1
  12. package/dist/_virtual/use-sync-external-store-shim.production.cjs.map +1 -1
  13. package/dist/_virtual/use-sync-external-store-shim.production.js +2 -2
  14. package/dist/client/auth.service.cjs +248 -1
  15. package/dist/client/auth.service.cjs.map +1 -1
  16. package/dist/client/auth.service.d.ts.map +1 -1
  17. package/dist/client/auth.service.js +193 -96
  18. package/dist/client/auth.service.js.map +1 -1
  19. package/dist/client/external-store.cjs +26 -1
  20. package/dist/client/external-store.cjs.map +1 -1
  21. package/dist/client/external-store.js +22 -8
  22. package/dist/client/external-store.js.map +1 -1
  23. package/dist/client/runtime-client.cjs +136 -1
  24. package/dist/client/runtime-client.cjs.map +1 -1
  25. package/dist/client/runtime-client.d.ts +1 -1
  26. package/dist/client/runtime-client.d.ts.map +1 -1
  27. package/dist/client/runtime-client.js +85 -51
  28. package/dist/client/runtime-client.js.map +1 -1
  29. package/dist/components/index.cjs +13 -0
  30. package/dist/components/index.cjs.map +1 -0
  31. package/dist/components/index.d.ts +6 -6
  32. package/dist/components/index.d.ts.map +1 -1
  33. package/dist/components/index.js +13 -0
  34. package/dist/components/index.js.map +1 -0
  35. package/dist/components/members-list.cjs +132 -1
  36. package/dist/components/members-list.cjs.map +1 -1
  37. package/dist/components/members-list.d.ts.map +1 -1
  38. package/dist/components/members-list.js +69 -64
  39. package/dist/components/members-list.js.map +1 -1
  40. package/dist/components/redirect-to-sign-in.cjs +34 -1
  41. package/dist/components/redirect-to-sign-in.cjs.map +1 -1
  42. package/dist/components/redirect-to-sign-in.js +28 -20
  43. package/dist/components/redirect-to-sign-in.js.map +1 -1
  44. package/dist/components/sign-in-button.cjs +36 -1
  45. package/dist/components/sign-in-button.cjs.map +1 -1
  46. package/dist/components/sign-in-button.d.ts.map +1 -1
  47. package/dist/components/sign-in-button.js +25 -21
  48. package/dist/components/sign-in-button.js.map +1 -1
  49. package/dist/components/ui/avatar.cjs +42 -1
  50. package/dist/components/ui/avatar.cjs.map +1 -1
  51. package/dist/components/ui/avatar.d.ts +2 -2
  52. package/dist/components/ui/avatar.d.ts.map +1 -1
  53. package/dist/components/ui/avatar.js +23 -23
  54. package/dist/components/ui/avatar.js.map +1 -1
  55. package/dist/components/ui/badge.d.ts +2 -2
  56. package/dist/components/ui/badge.d.ts.map +1 -1
  57. package/dist/components/ui/dropdown-menu.cjs +148 -1
  58. package/dist/components/ui/dropdown-menu.cjs.map +1 -1
  59. package/dist/components/ui/dropdown-menu.d.ts +2 -2
  60. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  61. package/dist/components/ui/dropdown-menu.js +83 -81
  62. package/dist/components/ui/dropdown-menu.js.map +1 -1
  63. package/dist/components/ui/popover.d.ts +2 -2
  64. package/dist/components/ui/popover.d.ts.map +1 -1
  65. package/dist/components/ui/separator.d.ts +1 -1
  66. package/dist/components/ui/separator.d.ts.map +1 -1
  67. package/dist/components/user-avatar.cjs +22 -1
  68. package/dist/components/user-avatar.cjs.map +1 -1
  69. package/dist/components/user-avatar.d.ts +5 -5
  70. package/dist/components/user-avatar.d.ts.map +1 -1
  71. package/dist/components/user-avatar.js +16 -16
  72. package/dist/components/user-avatar.js.map +1 -1
  73. package/dist/components/user-button/styles.cjs +39 -1
  74. package/dist/components/user-button/styles.cjs.map +1 -1
  75. package/dist/components/user-button/styles.js +6 -5
  76. package/dist/components/user-button/styles.js.map +1 -1
  77. package/dist/components/user-button/user-button.cjs +98 -1
  78. package/dist/components/user-button/user-button.cjs.map +1 -1
  79. package/dist/components/user-button/user-button.d.ts +1 -1
  80. package/dist/components/user-button/user-button.d.ts.map +1 -1
  81. package/dist/components/user-button/user-button.js +64 -58
  82. package/dist/components/user-button/user-button.js.map +1 -1
  83. package/dist/hooks/index.cjs +14 -0
  84. package/dist/hooks/index.cjs.map +1 -0
  85. package/dist/hooks/index.d.ts +3 -2
  86. package/dist/hooks/index.d.ts.map +1 -1
  87. package/dist/hooks/index.js +14 -0
  88. package/dist/hooks/index.js.map +1 -0
  89. package/dist/hooks/use-auth.cjs +44 -1
  90. package/dist/hooks/use-auth.cjs.map +1 -1
  91. package/dist/hooks/use-auth.d.ts +13 -15
  92. package/dist/hooks/use-auth.d.ts.map +1 -1
  93. package/dist/hooks/use-auth.js +30 -26
  94. package/dist/hooks/use-auth.js.map +1 -1
  95. package/dist/hooks/use-client.cjs +9 -1
  96. package/dist/hooks/use-client.cjs.map +1 -1
  97. package/dist/hooks/use-client.d.ts +1 -1
  98. package/dist/hooks/use-client.d.ts.map +1 -1
  99. package/dist/hooks/use-client.js +6 -5
  100. package/dist/hooks/use-client.js.map +1 -1
  101. package/dist/hooks/use-members.cjs +60 -1
  102. package/dist/hooks/use-members.cjs.map +1 -1
  103. package/dist/hooks/use-members.d.ts +5 -5
  104. package/dist/hooks/use-members.d.ts.map +1 -1
  105. package/dist/hooks/use-members.js +53 -41
  106. package/dist/hooks/use-members.js.map +1 -1
  107. package/dist/hooks/use-store.cjs +17 -1
  108. package/dist/hooks/use-store.cjs.map +1 -1
  109. package/dist/hooks/use-store.js +7 -7
  110. package/dist/hooks/use-store.js.map +1 -1
  111. package/dist/index.cjs +37 -1
  112. package/dist/index.cjs.map +1 -1
  113. package/dist/index.d.ts +5 -5
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +35 -35
  116. package/dist/lib/utils.cjs +8 -1
  117. package/dist/lib/utils.cjs.map +1 -1
  118. package/dist/lib/utils.js +5 -5
  119. package/dist/lib/utils.js.map +1 -1
  120. package/dist/lib/variants.cjs +46 -1
  121. package/dist/lib/variants.cjs.map +1 -1
  122. package/dist/lib/variants.d.ts +1 -1
  123. package/dist/lib/variants.js +6 -5
  124. package/dist/lib/variants.js.map +1 -1
  125. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.cjs +721 -1
  126. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.cjs.map +1 -1
  127. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +571 -377
  128. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -1
  129. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.cjs +625 -1
  130. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.cjs.map +1 -1
  131. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +539 -316
  132. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -1
  133. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.cjs +313 -1
  134. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.cjs.map +1 -1
  135. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +261 -172
  136. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js.map +1 -1
  137. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.cjs +154 -1
  138. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.cjs.map +1 -1
  139. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.cjs +173 -1
  140. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.cjs.map +1 -1
  141. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +144 -107
  142. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -1
  143. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +111 -87
  144. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +1 -1
  145. package/dist/node_modules/@radix-ui/primitive/dist/index.cjs +11 -1
  146. package/dist/node_modules/@radix-ui/primitive/dist/index.cjs.map +1 -1
  147. package/dist/node_modules/@radix-ui/primitive/dist/index.js +7 -5
  148. package/dist/node_modules/@radix-ui/primitive/dist/index.js.map +1 -1
  149. package/dist/node_modules/@radix-ui/react-arrow/dist/index.cjs +42 -1
  150. package/dist/node_modules/@radix-ui/react-arrow/dist/index.cjs.map +1 -1
  151. package/dist/node_modules/@radix-ui/react-arrow/dist/index.js +17 -16
  152. package/dist/node_modules/@radix-ui/react-arrow/dist/index.js.map +1 -1
  153. package/dist/node_modules/@radix-ui/react-avatar/dist/index.cjs +140 -1
  154. package/dist/node_modules/@radix-ui/react-avatar/dist/index.cjs.map +1 -1
  155. package/dist/node_modules/@radix-ui/react-avatar/dist/index.js +105 -57
  156. package/dist/node_modules/@radix-ui/react-avatar/dist/index.js.map +1 -1
  157. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-context/dist/index.cjs +80 -1
  158. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-context/dist/index.cjs.map +1 -1
  159. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-context/dist/index.js +49 -41
  160. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-context/dist/index.js.map +1 -1
  161. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.cjs +56 -1
  162. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.cjs.map +1 -1
  163. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.js +17 -10
  164. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -1
  165. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-slot/dist/index.cjs +119 -1
  166. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-slot/dist/index.cjs.map +1 -1
  167. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-slot/dist/index.js +86 -42
  168. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -1
  169. package/dist/node_modules/@radix-ui/react-collection/dist/index.cjs +70 -1
  170. package/dist/node_modules/@radix-ui/react-collection/dist/index.cjs.map +1 -1
  171. package/dist/node_modules/@radix-ui/react-collection/dist/index.js +57 -37
  172. package/dist/node_modules/@radix-ui/react-collection/dist/index.js.map +1 -1
  173. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.cjs +56 -1
  174. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.cjs.map +1 -1
  175. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js +29 -19
  176. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +1 -1
  177. package/dist/node_modules/@radix-ui/react-context/dist/index.cjs +79 -1
  178. package/dist/node_modules/@radix-ui/react-context/dist/index.cjs.map +1 -1
  179. package/dist/node_modules/@radix-ui/react-context/dist/index.js +48 -39
  180. package/dist/node_modules/@radix-ui/react-context/dist/index.js.map +1 -1
  181. package/dist/node_modules/@radix-ui/react-direction/dist/index.cjs +27 -1
  182. package/dist/node_modules/@radix-ui/react-direction/dist/index.cjs.map +1 -1
  183. package/dist/node_modules/@radix-ui/react-direction/dist/index.js +6 -6
  184. package/dist/node_modules/@radix-ui/react-direction/dist/index.js.map +1 -1
  185. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.cjs +229 -1
  186. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.cjs.map +1 -1
  187. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +182 -97
  188. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +1 -1
  189. package/dist/node_modules/@radix-ui/react-dropdown-menu/dist/index.cjs +296 -1
  190. package/dist/node_modules/@radix-ui/react-dropdown-menu/dist/index.cjs.map +1 -1
  191. package/dist/node_modules/@radix-ui/react-dropdown-menu/dist/index.js +232 -167
  192. package/dist/node_modules/@radix-ui/react-dropdown-menu/dist/index.js.map +1 -1
  193. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.cjs +46 -1
  194. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.cjs.map +1 -1
  195. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js +23 -11
  196. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +1 -1
  197. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.cjs +224 -1
  198. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.cjs.map +1 -1
  199. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js +169 -98
  200. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +1 -1
  201. package/dist/node_modules/@radix-ui/react-id/dist/index.cjs +31 -1
  202. package/dist/node_modules/@radix-ui/react-id/dist/index.cjs.map +1 -1
  203. package/dist/node_modules/@radix-ui/react-id/dist/index.js +11 -10
  204. package/dist/node_modules/@radix-ui/react-id/dist/index.js.map +1 -1
  205. package/dist/node_modules/@radix-ui/react-menu/dist/index.cjs +845 -1
  206. package/dist/node_modules/@radix-ui/react-menu/dist/index.cjs.map +1 -1
  207. package/dist/node_modules/@radix-ui/react-menu/dist/index.js +662 -442
  208. package/dist/node_modules/@radix-ui/react-menu/dist/index.js.map +1 -1
  209. package/dist/node_modules/@radix-ui/react-popper/dist/index.cjs +308 -1
  210. package/dist/node_modules/@radix-ui/react-popper/dist/index.cjs.map +1 -1
  211. package/dist/node_modules/@radix-ui/react-popper/dist/index.js +209 -137
  212. package/dist/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -1
  213. package/dist/node_modules/@radix-ui/react-portal/dist/index.cjs +34 -1
  214. package/dist/node_modules/@radix-ui/react-portal/dist/index.cjs.map +1 -1
  215. package/dist/node_modules/@radix-ui/react-portal/dist/index.js +14 -12
  216. package/dist/node_modules/@radix-ui/react-portal/dist/index.js.map +1 -1
  217. package/dist/node_modules/@radix-ui/react-presence/dist/index.cjs +145 -1
  218. package/dist/node_modules/@radix-ui/react-presence/dist/index.cjs.map +1 -1
  219. package/dist/node_modules/@radix-ui/react-presence/dist/index.js +103 -45
  220. package/dist/node_modules/@radix-ui/react-presence/dist/index.js.map +1 -1
  221. package/dist/node_modules/@radix-ui/react-primitive/dist/index.cjs +61 -1
  222. package/dist/node_modules/@radix-ui/react-primitive/dist/index.cjs.map +1 -1
  223. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js +21 -14
  224. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -1
  225. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.cjs +244 -1
  226. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.cjs.map +1 -1
  227. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js +179 -135
  228. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js.map +1 -1
  229. package/dist/node_modules/@radix-ui/react-slot/dist/index.cjs +105 -1
  230. package/dist/node_modules/@radix-ui/react-slot/dist/index.cjs.map +1 -1
  231. package/dist/node_modules/@radix-ui/react-slot/dist/index.js +74 -35
  232. package/dist/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -1
  233. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.cjs +28 -1
  234. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.cjs.map +1 -1
  235. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +8 -7
  236. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +1 -1
  237. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.cjs +86 -1
  238. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.cjs.map +1 -1
  239. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +57 -40
  240. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +1 -1
  241. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.cjs +34 -1
  242. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.cjs.map +1 -1
  243. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +13 -10
  244. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +1 -1
  245. package/dist/node_modules/@radix-ui/react-use-is-hydrated/dist/index.cjs +15 -1
  246. package/dist/node_modules/@radix-ui/react-use-is-hydrated/dist/index.cjs.map +1 -1
  247. package/dist/node_modules/@radix-ui/react-use-is-hydrated/dist/index.js +8 -8
  248. package/dist/node_modules/@radix-ui/react-use-is-hydrated/dist/index.js.map +1 -1
  249. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.cjs +23 -1
  250. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.cjs.map +1 -1
  251. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +3 -3
  252. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +1 -1
  253. package/dist/node_modules/@radix-ui/react-use-size/dist/index.cjs +56 -1
  254. package/dist/node_modules/@radix-ui/react-use-size/dist/index.cjs.map +1 -1
  255. package/dist/node_modules/@radix-ui/react-use-size/dist/index.js +34 -22
  256. package/dist/node_modules/@radix-ui/react-use-size/dist/index.js.map +1 -1
  257. package/dist/node_modules/aria-hidden/dist/es2015/index.cjs +122 -1
  258. package/dist/node_modules/aria-hidden/dist/es2015/index.cjs.map +1 -1
  259. package/dist/node_modules/aria-hidden/dist/es2015/index.js +111 -41
  260. package/dist/node_modules/aria-hidden/dist/es2015/index.js.map +1 -1
  261. package/dist/node_modules/class-variance-authority/dist/index.cjs +45 -1
  262. package/dist/node_modules/class-variance-authority/dist/index.cjs.map +1 -1
  263. package/dist/node_modules/class-variance-authority/dist/index.js +40 -30
  264. package/dist/node_modules/class-variance-authority/dist/index.js.map +1 -1
  265. package/dist/node_modules/clsx/dist/clsx.cjs +17 -1
  266. package/dist/node_modules/clsx/dist/clsx.cjs.map +1 -1
  267. package/dist/node_modules/clsx/dist/clsx.js +13 -13
  268. package/dist/node_modules/clsx/dist/clsx.js.map +1 -1
  269. package/dist/node_modules/get-nonce/dist/es2015/index.cjs +9 -1
  270. package/dist/node_modules/get-nonce/dist/es2015/index.cjs.map +1 -1
  271. package/dist/node_modules/get-nonce/dist/es2015/index.js +5 -3
  272. package/dist/node_modules/get-nonce/dist/es2015/index.js.map +1 -1
  273. package/dist/node_modules/js-cookie/dist/js.cookie.cjs +99 -1
  274. package/dist/node_modules/js-cookie/dist/js.cookie.cjs.map +1 -1
  275. package/dist/node_modules/js-cookie/dist/js.cookie.js +69 -43
  276. package/dist/node_modules/js-cookie/dist/js.cookie.js.map +1 -1
  277. package/dist/node_modules/jwt-decode/build/esm/index.cjs +58 -1
  278. package/dist/node_modules/jwt-decode/build/esm/index.cjs.map +1 -1
  279. package/dist/node_modules/jwt-decode/build/esm/index.js +36 -30
  280. package/dist/node_modules/jwt-decode/build/esm/index.js.map +1 -1
  281. package/dist/node_modules/lucide-react/dist/esm/Icon.cjs +35 -1
  282. package/dist/node_modules/lucide-react/dist/esm/Icon.cjs.map +1 -1
  283. package/dist/node_modules/lucide-react/dist/esm/Icon.js +25 -25
  284. package/dist/node_modules/lucide-react/dist/esm/Icon.js.map +1 -1
  285. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.cjs +22 -1
  286. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.cjs.map +1 -1
  287. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js +16 -15
  288. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js.map +1 -1
  289. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.cjs +14 -1
  290. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.cjs.map +1 -1
  291. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js +2 -2
  292. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js.map +1 -1
  293. package/dist/node_modules/lucide-react/dist/esm/icons/check.cjs +7 -1
  294. package/dist/node_modules/lucide-react/dist/esm/icons/check.cjs.map +1 -1
  295. package/dist/node_modules/lucide-react/dist/esm/icons/check.js +5 -4
  296. package/dist/node_modules/lucide-react/dist/esm/icons/check.js.map +1 -1
  297. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.cjs +7 -1
  298. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.cjs.map +1 -1
  299. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js +5 -4
  300. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js.map +1 -1
  301. package/dist/node_modules/lucide-react/dist/esm/icons/circle.cjs +7 -1
  302. package/dist/node_modules/lucide-react/dist/esm/icons/circle.cjs.map +1 -1
  303. package/dist/node_modules/lucide-react/dist/esm/icons/circle.js +5 -4
  304. package/dist/node_modules/lucide-react/dist/esm/icons/circle.js.map +1 -1
  305. package/dist/node_modules/lucide-react/dist/esm/icons/log-out.cjs +11 -1
  306. package/dist/node_modules/lucide-react/dist/esm/icons/log-out.cjs.map +1 -1
  307. package/dist/node_modules/lucide-react/dist/esm/icons/log-out.js +6 -5
  308. package/dist/node_modules/lucide-react/dist/esm/icons/log-out.js.map +1 -1
  309. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.cjs +26 -1
  310. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.cjs.map +1 -1
  311. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.js +22 -14
  312. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.js.map +1 -1
  313. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.cjs +28 -1
  314. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.cjs.map +1 -1
  315. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js +8 -8
  316. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js.map +1 -1
  317. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.cjs +197 -4
  318. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.cjs.map +1 -1
  319. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +163 -98
  320. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js.map +1 -1
  321. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.cjs +55 -1
  322. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.cjs.map +1 -1
  323. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js +31 -24
  324. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js.map +1 -1
  325. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.cjs +19 -1
  326. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.cjs.map +1 -1
  327. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js +12 -9
  328. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js.map +1 -1
  329. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.cjs +102 -1
  330. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.cjs.map +1 -1
  331. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +85 -51
  332. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js.map +1 -1
  333. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.cjs +5 -1
  334. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.cjs.map +1 -1
  335. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js +3 -3
  336. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js.map +1 -1
  337. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.cjs +7 -1
  338. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.cjs.map +1 -1
  339. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js +5 -5
  340. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js.map +1 -1
  341. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.cjs +62 -36
  342. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.cjs.map +1 -1
  343. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js +41 -65
  344. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js.map +1 -1
  345. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.cjs +10 -1
  346. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.cjs.map +1 -1
  347. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js +8 -5
  348. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js.map +1 -1
  349. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.cjs +37 -1
  350. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.cjs.map +1 -1
  351. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js +28 -16
  352. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js.map +1 -1
  353. package/dist/node_modules/react-style-singleton/dist/es2015/component.cjs +13 -1
  354. package/dist/node_modules/react-style-singleton/dist/es2015/component.cjs.map +1 -1
  355. package/dist/node_modules/react-style-singleton/dist/es2015/component.js +9 -7
  356. package/dist/node_modules/react-style-singleton/dist/es2015/component.js.map +1 -1
  357. package/dist/node_modules/react-style-singleton/dist/es2015/hook.cjs +33 -1
  358. package/dist/node_modules/react-style-singleton/dist/es2015/hook.cjs.map +1 -1
  359. package/dist/node_modules/react-style-singleton/dist/es2015/hook.js +11 -10
  360. package/dist/node_modules/react-style-singleton/dist/es2015/hook.js.map +1 -1
  361. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.cjs +48 -1
  362. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.cjs.map +1 -1
  363. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js +35 -17
  364. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js.map +1 -1
  365. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.cjs +3014 -1
  366. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.cjs.map +1 -1
  367. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +804 -555
  368. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -1
  369. package/dist/node_modules/tailwindcss/dist/plugin.cjs +13 -1
  370. package/dist/node_modules/tailwindcss/dist/plugin.cjs.map +1 -1
  371. package/dist/node_modules/tailwindcss/dist/plugin.js +8 -8
  372. package/dist/node_modules/tailwindcss/dist/plugin.js.map +1 -1
  373. package/dist/node_modules/tslib/tslib.es6.cjs +38 -1
  374. package/dist/node_modules/tslib/tslib.es6.cjs.map +1 -1
  375. package/dist/node_modules/tslib/tslib.es6.js +33 -21
  376. package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
  377. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.cjs +11 -1
  378. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.cjs.map +1 -1
  379. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js +8 -3
  380. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js.map +1 -1
  381. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.cjs +52 -1
  382. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.cjs.map +1 -1
  383. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js +28 -19
  384. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js.map +1 -1
  385. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.cjs +29 -1
  386. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.cjs.map +1 -1
  387. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js +15 -11
  388. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js.map +1 -1
  389. package/dist/node_modules/use-sidecar/dist/es2015/exports.cjs +38 -1
  390. package/dist/node_modules/use-sidecar/dist/es2015/exports.cjs.map +1 -1
  391. package/dist/node_modules/use-sidecar/dist/es2015/exports.js +15 -12
  392. package/dist/node_modules/use-sidecar/dist/es2015/exports.js.map +1 -1
  393. package/dist/node_modules/use-sidecar/dist/es2015/medium.cjs +88 -1
  394. package/dist/node_modules/use-sidecar/dist/es2015/medium.cjs.map +1 -1
  395. package/dist/node_modules/use-sidecar/dist/es2015/medium.js +64 -43
  396. package/dist/node_modules/use-sidecar/dist/es2015/medium.js.map +1 -1
  397. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.cjs +68 -1
  398. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.cjs.map +1 -1
  399. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +49 -39
  400. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  401. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.cjs +53 -1
  402. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.cjs.map +1 -1
  403. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +39 -32
  404. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js.map +1 -1
  405. package/dist/node_modules/use-sync-external-store/shim/index.cjs +17 -1
  406. package/dist/node_modules/use-sync-external-store/shim/index.cjs.map +1 -1
  407. package/dist/node_modules/use-sync-external-store/shim/index.js +14 -7
  408. package/dist/node_modules/use-sync-external-store/shim/index.js.map +1 -1
  409. package/dist/providers/auth/auth.context.cjs +5 -1
  410. package/dist/providers/auth/auth.context.cjs.map +1 -1
  411. package/dist/providers/auth/auth.context.js +3 -3
  412. package/dist/providers/auth/auth.context.js.map +1 -1
  413. package/dist/providers/auth/auth.hook.cjs +12 -1
  414. package/dist/providers/auth/auth.hook.cjs.map +1 -1
  415. package/dist/providers/auth/auth.hook.js +8 -7
  416. package/dist/providers/auth/auth.hook.js.map +1 -1
  417. package/dist/providers/auth/auth.provider.cjs +37 -1
  418. package/dist/providers/auth/auth.provider.cjs.map +1 -1
  419. package/dist/providers/auth/auth.provider.js +31 -22
  420. package/dist/providers/auth/auth.provider.js.map +1 -1
  421. package/dist/providers/blimu/blimu.context.cjs +5 -1
  422. package/dist/providers/blimu/blimu.context.cjs.map +1 -1
  423. package/dist/providers/blimu/blimu.context.d.ts +4 -4
  424. package/dist/providers/blimu/blimu.context.d.ts.map +1 -1
  425. package/dist/providers/blimu/blimu.context.js +3 -3
  426. package/dist/providers/blimu/blimu.context.js.map +1 -1
  427. package/dist/providers/blimu/blimu.hook.cjs +12 -1
  428. package/dist/providers/blimu/blimu.hook.cjs.map +1 -1
  429. package/dist/providers/blimu/blimu.hook.js +8 -7
  430. package/dist/providers/blimu/blimu.hook.js.map +1 -1
  431. package/dist/providers/blimu/blimu.provider.cjs +71 -1
  432. package/dist/providers/blimu/blimu.provider.cjs.map +1 -1
  433. package/dist/providers/blimu/blimu.provider.d.ts +1 -1
  434. package/dist/providers/blimu/blimu.provider.d.ts.map +1 -1
  435. package/dist/providers/blimu/blimu.provider.js +32 -27
  436. package/dist/providers/blimu/blimu.provider.js.map +1 -1
  437. package/dist/providers/index.cjs +13 -0
  438. package/dist/providers/index.cjs.map +1 -0
  439. package/dist/providers/index.d.ts +3 -3
  440. package/dist/providers/index.d.ts.map +1 -1
  441. package/dist/providers/index.js +13 -0
  442. package/dist/providers/index.js.map +1 -0
  443. package/dist/providers/theme/index.d.ts +2 -2
  444. package/dist/providers/theme/index.d.ts.map +1 -1
  445. package/dist/providers/theme/theme.context.cjs +5 -1
  446. package/dist/providers/theme/theme.context.cjs.map +1 -1
  447. package/dist/providers/theme/theme.context.js +3 -3
  448. package/dist/providers/theme/theme.context.js.map +1 -1
  449. package/dist/providers/theme/theme.hook.cjs +12 -1
  450. package/dist/providers/theme/theme.hook.cjs.map +1 -1
  451. package/dist/providers/theme/theme.hook.js +8 -7
  452. package/dist/providers/theme/theme.hook.js.map +1 -1
  453. package/dist/providers/theme/theme.provider.cjs +104 -1
  454. package/dist/providers/theme/theme.provider.cjs.map +1 -1
  455. package/dist/providers/theme/theme.provider.d.ts.map +1 -1
  456. package/dist/providers/theme/theme.provider.js +85 -48
  457. package/dist/providers/theme/theme.provider.js.map +1 -1
  458. package/dist/styles/styles.css +34 -40
  459. package/dist/styles/tw-styles.css +34 -40
  460. package/dist/tailwind.cjs +200 -0
  461. package/dist/tailwind.cjs.map +1 -0
  462. package/dist/{tailwind.plugin.js → tailwind.js} +43 -43
  463. package/dist/tailwind.js.map +1 -0
  464. package/dist/types/index.cjs +11 -1
  465. package/dist/types/index.cjs.map +1 -1
  466. package/dist/types/index.d.ts +22 -8
  467. package/dist/types/index.d.ts.map +1 -1
  468. package/dist/types/index.js +8 -8
  469. package/dist/types/index.js.map +1 -1
  470. package/dist/utils/publishable-key.cjs +62 -1
  471. package/dist/utils/publishable-key.cjs.map +1 -1
  472. package/dist/utils/publishable-key.js +52 -27
  473. package/dist/utils/publishable-key.js.map +1 -1
  474. package/package.json +68 -53
  475. package/dist/components.cjs +0 -2
  476. package/dist/components.cjs.map +0 -1
  477. package/dist/components.js +0 -13
  478. package/dist/components.js.map +0 -1
  479. package/dist/hooks.cjs +0 -2
  480. package/dist/hooks.cjs.map +0 -1
  481. package/dist/hooks.js +0 -14
  482. package/dist/hooks.js.map +0 -1
  483. package/dist/providers.cjs +0 -2
  484. package/dist/providers.cjs.map +0 -1
  485. package/dist/providers.js +0 -13
  486. package/dist/providers.js.map +0 -1
  487. package/dist/tailwind.plugin.cjs +0 -2
  488. package/dist/tailwind.plugin.cjs.map +0 -1
  489. package/dist/tailwind.plugin.js.map +0 -1
@@ -1,2 +1,99 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime");require("react");const i=require("../ui/avatar.cjs"),r=require("../ui/dropdown-menu.cjs"),n=require("../../lib/utils.cjs"),d=require("../../hooks/use-auth.cjs"),x=require("./styles.cjs"),v=require("../../node_modules/lucide-react/dist/esm/icons/log-out.cjs");function y({className:p,classes:s,onManageAccount:w,variant:f,size:j,showNameInTrigger:l=!1,showEmailInTrigger:c=!1,avatarPos:h="start"}={}){const{logout:g}=d.useAuth(),{user:t}=d.useUser(),a=t?.firstName&&t?.lastName?`${t.firstName} ${t.lastName}`:t?.firstName||t?.email?.split("@")[0]||"User",o=a?.split(" ").map(b=>b[0]).join("").toUpperCase().slice(0,2)||"U";if(!t)return null;const N=l||c,u=e.jsx(i.Avatar,{className:n.cn("w-8 h-8",s?.avatar),children:e.jsx(i.AvatarFallback,{className:n.cn("bg-blimu-muted text-blimu-muted-foreground text-sm font-medium",s?.avatarFallback),children:o})}),m=N&&e.jsxs("div",{className:n.cn("flex flex-col items-start",s?.userInfo),children:[l&&e.jsx("span",{className:n.cn("text-sm leading-tight font-medium",s?.userName),children:a}),c&&e.jsx("span",{className:n.cn("text-xs leading-tight opacity-70",s?.userEmail),children:t.email})]});return e.jsxs(r.DropdownMenu,{children:[e.jsx(r.DropdownMenuTrigger,{asChild:!0,children:e.jsx("button",{className:n.cn(x.userButtonTriggerVariants({variant:f,size:j}),"flex items-center gap-2",p,s?.trigger),children:h==="start"?e.jsxs(e.Fragment,{children:[u,m]}):e.jsxs(e.Fragment,{children:[m,u]})})}),e.jsxs(r.DropdownMenuContent,{className:n.cn(x.userButtonContentVariants(),"w-64 p-0",s?.popover),align:"end",sideOffset:8,children:[e.jsx(r.DropdownMenuLabel,{className:"p-0 ",children:e.jsxs("div",{className:"flex items-center gap-3 p-4",children:[e.jsx(i.Avatar,{className:"size-10",children:e.jsx(i.AvatarFallback,{className:"bg-blimu-primary text-blimu-primary-foreground text-base font-medium",children:o})}),a&&e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-sm font-medium text-blimu-foreground",children:a}),e.jsx("span",{className:"text-xs text-blimu-muted-foreground",children:t.email})]})]})}),e.jsx(r.DropdownMenuSeparator,{className:"m-0"}),e.jsx("div",{className:"py-1.5 space-y-2",children:e.jsxs(r.DropdownMenuItem,{onClick:g,className:n.cn("flex items-center gap-3 text-sm cursor-pointer",s?.signOutButton),children:[e.jsx(v.default,{className:"w-4 h-4 text-blimu-muted-foreground"}),e.jsx("span",{children:"Sign out"})]})}),e.jsx(r.DropdownMenuSeparator,{className:"m-0"}),e.jsx("div",{className:"p-4 bg-blimu-muted/50",children:e.jsxs("div",{className:"flex justify-center items-center gap-2 text-xs text-blimu-muted-foreground",children:[e.jsx("span",{children:"Secured by"}),e.jsx("span",{className:"font-semibold text-blimu-foreground",children:"Blimu"})]})})]})]})}exports.UserButton=y;
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ require("react");
5
+ const avatar = require("../ui/avatar.cjs");
6
+ const dropdownMenu = require("../ui/dropdown-menu.cjs");
7
+ const utils = require("../../lib/utils.cjs");
8
+ const useAuth = require("../../hooks/use-auth.cjs");
9
+ const styles = require("./styles.cjs");
10
+ const logOut = require("../../node_modules/lucide-react/dist/esm/icons/log-out.cjs");
11
+ function UserButton({
12
+ className,
13
+ classes,
14
+ onManageAccount: _onManageAccount,
15
+ variant,
16
+ size,
17
+ showNameInTrigger = false,
18
+ showEmailInTrigger = false,
19
+ avatarPos = "start"
20
+ } = {}) {
21
+ const { logout } = useAuth.useAuth();
22
+ const { user } = useAuth.useUser();
23
+ const displayName = user?.firstName && user?.lastName ? `${user.firstName} ${user.lastName}` : user?.firstName || user?.email?.split("@")[0] || "User";
24
+ const initials = displayName?.split(" ").map((n) => n[0]).join("").toUpperCase().slice(0, 2) || "U";
25
+ if (!user) {
26
+ return null;
27
+ }
28
+ const showText = showNameInTrigger || showEmailInTrigger;
29
+ const avatarElement = /* @__PURE__ */ jsxRuntime.jsx(avatar.Avatar, { className: utils.cn("w-8 h-8", classes?.avatar), children: /* @__PURE__ */ jsxRuntime.jsx(
30
+ avatar.AvatarFallback,
31
+ {
32
+ className: utils.cn(
33
+ "bg-blimu-muted text-blimu-muted-foreground text-sm font-medium",
34
+ classes?.avatarFallback
35
+ ),
36
+ children: initials
37
+ }
38
+ ) });
39
+ const textElement = showText && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils.cn("flex flex-col items-start", classes?.userInfo), children: [
40
+ showNameInTrigger && /* @__PURE__ */ jsxRuntime.jsx("span", { className: utils.cn("text-sm leading-tight font-medium", classes?.userName), children: displayName }),
41
+ showEmailInTrigger && /* @__PURE__ */ jsxRuntime.jsx("span", { className: utils.cn("text-xs leading-tight opacity-70", classes?.userEmail), children: user.email })
42
+ ] });
43
+ return /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu, { children: [
44
+ /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
45
+ "button",
46
+ {
47
+ className: utils.cn(
48
+ styles.userButtonTriggerVariants({ variant, size }),
49
+ "flex items-center gap-2",
50
+ className,
51
+ classes?.trigger
52
+ ),
53
+ children: avatarPos === "start" ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
54
+ avatarElement,
55
+ textElement
56
+ ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
57
+ textElement,
58
+ avatarElement
59
+ ] })
60
+ }
61
+ ) }),
62
+ /* @__PURE__ */ jsxRuntime.jsxs(
63
+ dropdownMenu.DropdownMenuContent,
64
+ {
65
+ className: utils.cn(styles.userButtonContentVariants(), "w-64 p-0", classes?.popover),
66
+ align: "end",
67
+ sideOffset: 8,
68
+ children: [
69
+ /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenuLabel, { className: "p-0 ", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 p-4", children: [
70
+ /* @__PURE__ */ jsxRuntime.jsx(avatar.Avatar, { className: "size-10", children: /* @__PURE__ */ jsxRuntime.jsx(avatar.AvatarFallback, { className: "bg-blimu-primary text-blimu-primary-foreground text-base font-medium", children: initials }) }),
71
+ displayName && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
72
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-blimu-foreground", children: displayName }),
73
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-blimu-muted-foreground", children: user.email })
74
+ ] })
75
+ ] }) }),
76
+ /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenuSeparator, { className: "m-0" }),
77
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "py-1.5 space-y-2", children: /* @__PURE__ */ jsxRuntime.jsxs(
78
+ dropdownMenu.DropdownMenuItem,
79
+ {
80
+ onClick: logout,
81
+ className: utils.cn("flex items-center gap-3 text-sm cursor-pointer", classes?.signOutButton),
82
+ children: [
83
+ /* @__PURE__ */ jsxRuntime.jsx(logOut.default, { className: "w-4 h-4 text-blimu-muted-foreground" }),
84
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Sign out" })
85
+ ]
86
+ }
87
+ ) }),
88
+ /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenuSeparator, { className: "m-0" }),
89
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-4 bg-blimu-muted/50", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-center items-center gap-2 text-xs text-blimu-muted-foreground", children: [
90
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Secured by" }),
91
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold text-blimu-foreground", children: "Blimu" })
92
+ ] }) })
93
+ ]
94
+ }
95
+ )
96
+ ] });
97
+ }
98
+ exports.UserButton = UserButton;
2
99
  //# sourceMappingURL=user-button.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-button.cjs","sources":["../../../src/components/user-button/user-button.tsx"],"sourcesContent":["import React from 'react';\nimport { Avatar, AvatarFallback } from '@/components/ui/avatar';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport { cn } from '@/lib/utils';\nimport { LogOut, Settings } from 'lucide-react';\n\nimport { useAuth, useUser } from '../../hooks/use-auth';\nimport type { BlimuComponentProps } from '../../types';\nimport {\n userButtonTriggerVariants,\n userButtonContentVariants,\n type UserButtonTriggerVariants,\n} from './styles';\n\nexport interface UserButtonProps extends BlimuComponentProps, UserButtonTriggerVariants {\n /** Callback when user clicks \"Manage account\" */\n onManageAccount?: () => void;\n /** Show user name in trigger button */\n showNameInTrigger?: boolean;\n /** Show user email in trigger button */\n showEmailInTrigger?: boolean;\n /** Avatar position when text is shown in trigger */\n avatarPos?: 'start' | 'end';\n}\n\nexport function UserButton({\n className,\n classes,\n onManageAccount,\n variant,\n size,\n showNameInTrigger = false,\n showEmailInTrigger = false,\n avatarPos = 'start',\n}: UserButtonProps = {}) {\n const { logout } = useAuth();\n const { user } = useUser();\n\n const displayName =\n user?.firstName && user?.lastName\n ? `${user.firstName} ${user.lastName}`\n : user?.firstName || user?.email?.split('@')[0] || 'User';\n\n const initials =\n displayName\n ?.split(' ')\n .map((n) => n[0])\n .join('')\n .toUpperCase()\n .slice(0, 2) || 'U';\n\n if (!user) {\n return null;\n }\n\n const showText = showNameInTrigger || showEmailInTrigger;\n\n const avatarElement = (\n <Avatar className={cn('w-8 h-8', classes?.avatar)}>\n <AvatarFallback\n className={cn(\n 'bg-blimu-muted text-blimu-muted-foreground text-sm font-medium',\n classes?.avatarFallback,\n )}\n >\n {initials}\n </AvatarFallback>\n </Avatar>\n );\n\n const textElement = showText && (\n <div className={cn('flex flex-col items-start', classes?.userInfo)}>\n {showNameInTrigger && (\n <span className={cn('text-sm leading-tight font-medium', classes?.userName)}>\n {displayName}\n </span>\n )}\n {showEmailInTrigger && (\n <span className={cn('text-xs leading-tight opacity-70', classes?.userEmail)}>\n {user.email}\n </span>\n )}\n </div>\n );\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button\n className={cn(\n userButtonTriggerVariants({ variant, size }),\n 'flex items-center gap-2',\n className,\n classes?.trigger,\n )}\n >\n {avatarPos === 'start' ? (\n <>\n {avatarElement}\n {textElement}\n </>\n ) : (\n <>\n {textElement}\n {avatarElement}\n </>\n )}\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n className={cn(userButtonContentVariants(), 'w-64 p-0', classes?.popover)}\n align=\"end\"\n sideOffset={8}\n >\n <DropdownMenuLabel className=\"p-0 \">\n <div className=\"flex items-center gap-3 p-4\">\n <Avatar className=\"size-10\">\n <AvatarFallback className=\"bg-blimu-primary text-blimu-primary-foreground text-base font-medium\">\n {initials}\n </AvatarFallback>\n </Avatar>\n {displayName && (\n <div className=\"flex flex-col\">\n <span className=\"text-sm font-medium text-blimu-foreground\">{displayName}</span>\n <span className=\"text-xs text-blimu-muted-foreground\">{user.email}</span>\n </div>\n )}\n </div>\n </DropdownMenuLabel>\n\n <DropdownMenuSeparator className=\"m-0\" />\n <div className=\"py-1.5 space-y-2\">\n {/* <DropdownMenuItem\n onClick={onManageAccount}\n className={cn(\n 'flex items-center gap-3 text-sm cursor-pointer',\n classes?.manageAccountButton,\n )}\n >\n <Settings className=\"size-4 text-blimu-muted-foreground\" />\n <span>Manage account</span>\n </DropdownMenuItem> */}\n\n <DropdownMenuItem\n onClick={logout}\n className={cn('flex items-center gap-3 text-sm cursor-pointer', classes?.signOutButton)}\n >\n <LogOut className=\"w-4 h-4 text-blimu-muted-foreground\" />\n <span>Sign out</span>\n </DropdownMenuItem>\n </div>\n\n <DropdownMenuSeparator className=\"m-0\" />\n\n <div className=\"p-4 bg-blimu-muted/50\">\n <div className=\"flex justify-center items-center gap-2 text-xs text-blimu-muted-foreground\">\n <span>Secured by</span>\n <span className=\"font-semibold text-blimu-foreground\">Blimu</span>\n </div>\n </div>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n"],"names":["UserButton","className","classes","onManageAccount","variant","size","showNameInTrigger","showEmailInTrigger","avatarPos","logout","useAuth","user","useUser","displayName","initials","n","showText","avatarElement","Avatar","cn","jsx","AvatarFallback","textElement","jsxs","DropdownMenu","DropdownMenuTrigger","userButtonTriggerVariants","Fragment","DropdownMenuContent","userButtonContentVariants","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuItem","LogOut"],"mappings":"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"}
1
+ {"version":3,"file":"user-button.cjs","sources":["../../../src/components/user-button/user-button.tsx"],"sourcesContent":["import { LogOut } from 'lucide-react';\nimport React from 'react';\n\nimport { Avatar, AvatarFallback } from '@/components/ui/avatar';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport { cn } from '@/lib/utils';\n\nimport { useAuth, useUser } from '../../hooks/use-auth';\nimport type { BlimuComponentProps } from '../../types';\nimport {\n userButtonContentVariants,\n type UserButtonTriggerVariants,\n userButtonTriggerVariants,\n} from './styles';\n\nexport interface UserButtonProps extends BlimuComponentProps, UserButtonTriggerVariants {\n /** Callback when user clicks \"Manage account\" */\n onManageAccount?: () => void;\n /** Show user name in trigger button */\n showNameInTrigger?: boolean;\n /** Show user email in trigger button */\n showEmailInTrigger?: boolean;\n /** Avatar position when text is shown in trigger */\n avatarPos?: 'start' | 'end';\n}\n\nexport function UserButton({\n className,\n classes,\n onManageAccount: _onManageAccount,\n variant,\n size,\n showNameInTrigger = false,\n showEmailInTrigger = false,\n avatarPos = 'start',\n}: UserButtonProps = {}) {\n const { logout } = useAuth();\n const { user } = useUser();\n\n const displayName =\n user?.firstName && user?.lastName\n ? `${user.firstName} ${user.lastName}`\n : user?.firstName || user?.email?.split('@')[0] || 'User';\n\n const initials =\n displayName\n ?.split(' ')\n .map((n) => n[0])\n .join('')\n .toUpperCase()\n .slice(0, 2) || 'U';\n\n if (!user) {\n return null;\n }\n\n const showText = showNameInTrigger || showEmailInTrigger;\n\n const avatarElement = (\n <Avatar className={cn('w-8 h-8', classes?.avatar)}>\n <AvatarFallback\n className={cn(\n 'bg-blimu-muted text-blimu-muted-foreground text-sm font-medium',\n classes?.avatarFallback,\n )}\n >\n {initials}\n </AvatarFallback>\n </Avatar>\n );\n\n const textElement = showText && (\n <div className={cn('flex flex-col items-start', classes?.userInfo)}>\n {showNameInTrigger && (\n <span className={cn('text-sm leading-tight font-medium', classes?.userName)}>\n {displayName}\n </span>\n )}\n {showEmailInTrigger && (\n <span className={cn('text-xs leading-tight opacity-70', classes?.userEmail)}>\n {user.email}\n </span>\n )}\n </div>\n );\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button\n className={cn(\n userButtonTriggerVariants({ variant, size }),\n 'flex items-center gap-2',\n className,\n classes?.trigger,\n )}\n >\n {avatarPos === 'start' ? (\n <>\n {avatarElement}\n {textElement}\n </>\n ) : (\n <>\n {textElement}\n {avatarElement}\n </>\n )}\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n className={cn(userButtonContentVariants(), 'w-64 p-0', classes?.popover)}\n align=\"end\"\n sideOffset={8}\n >\n <DropdownMenuLabel className=\"p-0 \">\n <div className=\"flex items-center gap-3 p-4\">\n <Avatar className=\"size-10\">\n <AvatarFallback className=\"bg-blimu-primary text-blimu-primary-foreground text-base font-medium\">\n {initials}\n </AvatarFallback>\n </Avatar>\n {displayName && (\n <div className=\"flex flex-col\">\n <span className=\"text-sm font-medium text-blimu-foreground\">{displayName}</span>\n <span className=\"text-xs text-blimu-muted-foreground\">{user.email}</span>\n </div>\n )}\n </div>\n </DropdownMenuLabel>\n\n <DropdownMenuSeparator className=\"m-0\" />\n <div className=\"py-1.5 space-y-2\">\n {/* <DropdownMenuItem\n onClick={onManageAccount}\n className={cn(\n 'flex items-center gap-3 text-sm cursor-pointer',\n classes?.manageAccountButton,\n )}\n >\n <Settings className=\"size-4 text-blimu-muted-foreground\" />\n <span>Manage account</span>\n </DropdownMenuItem> */}\n\n <DropdownMenuItem\n onClick={logout}\n className={cn('flex items-center gap-3 text-sm cursor-pointer', classes?.signOutButton)}\n >\n <LogOut className=\"w-4 h-4 text-blimu-muted-foreground\" />\n <span>Sign out</span>\n </DropdownMenuItem>\n </div>\n\n <DropdownMenuSeparator className=\"m-0\" />\n\n <div className=\"p-4 bg-blimu-muted/50\">\n <div className=\"flex justify-center items-center gap-2 text-xs text-blimu-muted-foreground\">\n <span>Secured by</span>\n <span className=\"font-semibold text-blimu-foreground\">Blimu</span>\n </div>\n </div>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n"],"names":["useAuth","useUser","Avatar","cn","jsx","AvatarFallback","jsxs","DropdownMenu","DropdownMenuTrigger","userButtonTriggerVariants","Fragment","DropdownMenuContent","userButtonContentVariants","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuItem","LogOut"],"mappings":"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"}
@@ -11,5 +11,5 @@ export interface UserButtonProps extends BlimuComponentProps, UserButtonTriggerV
11
11
  /** Avatar position when text is shown in trigger */
12
12
  avatarPos?: 'start' | 'end';
13
13
  }
14
- export declare function UserButton({ className, classes, onManageAccount, variant, size, showNameInTrigger, showEmailInTrigger, avatarPos, }?: UserButtonProps): React.JSX.Element | null;
14
+ export declare function UserButton({ className, classes, onManageAccount: _onManageAccount, variant, size, showNameInTrigger, showEmailInTrigger, avatarPos, }?: UserButtonProps): React.JSX.Element | null;
15
15
  //# sourceMappingURL=user-button.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-button.d.ts","sourceRoot":"","sources":["../../../src/components/user-button/user-button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAGL,KAAK,yBAAyB,EAC/B,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,eAAgB,SAAQ,mBAAmB,EAAE,yBAAyB;IACrF,iDAAiD;IACjD,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,wCAAwC;IACxC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;CAC7B;AAED,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,OAAO,EACP,eAAe,EACf,OAAO,EACP,IAAI,EACJ,iBAAyB,EACzB,kBAA0B,EAC1B,SAAmB,GACpB,GAAE,eAAoB,4BAiItB"}
1
+ {"version":3,"file":"user-button.d.ts","sourceRoot":"","sources":["../../../src/components/user-button/user-button.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAEL,KAAK,yBAAyB,EAE/B,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,eAAgB,SAAQ,mBAAmB,EAAE,yBAAyB;IACrF,iDAAiD;IACjD,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,wCAAwC;IACxC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;CAC7B;AAED,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,OAAO,EACP,eAAe,EAAE,gBAAgB,EACjC,OAAO,EACP,IAAI,EACJ,iBAAyB,EACzB,kBAA0B,EAC1B,SAAmB,GACpB,GAAE,eAAoB,4BAiItB"}
@@ -1,86 +1,92 @@
1
- import { jsx as e, jsxs as r, Fragment as d } from "react/jsx-runtime";
1
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
2
  import "react";
3
- import { Avatar as u, AvatarFallback as p } from "../ui/avatar.js";
4
- import { DropdownMenu as y, DropdownMenuTrigger as M, DropdownMenuContent as D, DropdownMenuLabel as B, DropdownMenuSeparator as f, DropdownMenuItem as C } from "../ui/dropdown-menu.js";
5
- import { cn as n } from "../../lib/utils.js";
6
- import { useAuth as U, useUser as j } from "../../hooks/use-auth.js";
7
- import { userButtonTriggerVariants as A, userButtonContentVariants as k } from "./styles.js";
8
- import F from "../../node_modules/lucide-react/dist/esm/icons/log-out.js";
9
- function G({
10
- className: x,
11
- classes: a,
12
- onManageAccount: O,
13
- variant: h,
14
- size: N,
15
- showNameInTrigger: m = !1,
16
- showEmailInTrigger: s = !1,
17
- avatarPos: g = "start"
3
+ import { Avatar, AvatarFallback } from "../ui/avatar.js";
4
+ import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuItem } from "../ui/dropdown-menu.js";
5
+ import { cn } from "../../lib/utils.js";
6
+ import { useAuth, useUser } from "../../hooks/use-auth.js";
7
+ import { userButtonTriggerVariants, userButtonContentVariants } from "./styles.js";
8
+ import LogOut from "../../node_modules/lucide-react/dist/esm/icons/log-out.js";
9
+ function UserButton({
10
+ className,
11
+ classes,
12
+ onManageAccount: _onManageAccount,
13
+ variant,
14
+ size,
15
+ showNameInTrigger = false,
16
+ showEmailInTrigger = false,
17
+ avatarPos = "start"
18
18
  } = {}) {
19
- const { logout: b } = U(), { user: t } = j(), i = t?.firstName && t?.lastName ? `${t.firstName} ${t.lastName}` : t?.firstName || t?.email?.split("@")[0] || "User", l = i?.split(" ").map((w) => w[0]).join("").toUpperCase().slice(0, 2) || "U";
20
- if (!t)
19
+ const { logout } = useAuth();
20
+ const { user } = useUser();
21
+ const displayName = user?.firstName && user?.lastName ? `${user.firstName} ${user.lastName}` : user?.firstName || user?.email?.split("@")[0] || "User";
22
+ const initials = displayName?.split(" ").map((n) => n[0]).join("").toUpperCase().slice(0, 2) || "U";
23
+ if (!user) {
21
24
  return null;
22
- const v = m || s, o = /* @__PURE__ */ e(u, { className: n("w-8 h-8", a?.avatar), children: /* @__PURE__ */ e(
23
- p,
25
+ }
26
+ const showText = showNameInTrigger || showEmailInTrigger;
27
+ const avatarElement = /* @__PURE__ */ jsx(Avatar, { className: cn("w-8 h-8", classes?.avatar), children: /* @__PURE__ */ jsx(
28
+ AvatarFallback,
24
29
  {
25
- className: n(
30
+ className: cn(
26
31
  "bg-blimu-muted text-blimu-muted-foreground text-sm font-medium",
27
- a?.avatarFallback
32
+ classes?.avatarFallback
28
33
  ),
29
- children: l
34
+ children: initials
30
35
  }
31
- ) }), c = v && /* @__PURE__ */ r("div", { className: n("flex flex-col items-start", a?.userInfo), children: [
32
- m && /* @__PURE__ */ e("span", { className: n("text-sm leading-tight font-medium", a?.userName), children: i }),
33
- s && /* @__PURE__ */ e("span", { className: n("text-xs leading-tight opacity-70", a?.userEmail), children: t.email })
36
+ ) });
37
+ const textElement = showText && /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-start", classes?.userInfo), children: [
38
+ showNameInTrigger && /* @__PURE__ */ jsx("span", { className: cn("text-sm leading-tight font-medium", classes?.userName), children: displayName }),
39
+ showEmailInTrigger && /* @__PURE__ */ jsx("span", { className: cn("text-xs leading-tight opacity-70", classes?.userEmail), children: user.email })
34
40
  ] });
35
- return /* @__PURE__ */ r(y, { children: [
36
- /* @__PURE__ */ e(M, { asChild: !0, children: /* @__PURE__ */ e(
41
+ return /* @__PURE__ */ jsxs(DropdownMenu, { children: [
42
+ /* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
37
43
  "button",
38
44
  {
39
- className: n(
40
- A({ variant: h, size: N }),
45
+ className: cn(
46
+ userButtonTriggerVariants({ variant, size }),
41
47
  "flex items-center gap-2",
42
- x,
43
- a?.trigger
48
+ className,
49
+ classes?.trigger
44
50
  ),
45
- children: g === "start" ? /* @__PURE__ */ r(d, { children: [
46
- o,
47
- c
48
- ] }) : /* @__PURE__ */ r(d, { children: [
49
- c,
50
- o
51
+ children: avatarPos === "start" ? /* @__PURE__ */ jsxs(Fragment, { children: [
52
+ avatarElement,
53
+ textElement
54
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
55
+ textElement,
56
+ avatarElement
51
57
  ] })
52
58
  }
53
59
  ) }),
54
- /* @__PURE__ */ r(
55
- D,
60
+ /* @__PURE__ */ jsxs(
61
+ DropdownMenuContent,
56
62
  {
57
- className: n(k(), "w-64 p-0", a?.popover),
63
+ className: cn(userButtonContentVariants(), "w-64 p-0", classes?.popover),
58
64
  align: "end",
59
65
  sideOffset: 8,
60
66
  children: [
61
- /* @__PURE__ */ e(B, { className: "p-0 ", children: /* @__PURE__ */ r("div", { className: "flex items-center gap-3 p-4", children: [
62
- /* @__PURE__ */ e(u, { className: "size-10", children: /* @__PURE__ */ e(p, { className: "bg-blimu-primary text-blimu-primary-foreground text-base font-medium", children: l }) }),
63
- i && /* @__PURE__ */ r("div", { className: "flex flex-col", children: [
64
- /* @__PURE__ */ e("span", { className: "text-sm font-medium text-blimu-foreground", children: i }),
65
- /* @__PURE__ */ e("span", { className: "text-xs text-blimu-muted-foreground", children: t.email })
67
+ /* @__PURE__ */ jsx(DropdownMenuLabel, { className: "p-0 ", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 p-4", children: [
68
+ /* @__PURE__ */ jsx(Avatar, { className: "size-10", children: /* @__PURE__ */ jsx(AvatarFallback, { className: "bg-blimu-primary text-blimu-primary-foreground text-base font-medium", children: initials }) }),
69
+ displayName && /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
70
+ /* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-blimu-foreground", children: displayName }),
71
+ /* @__PURE__ */ jsx("span", { className: "text-xs text-blimu-muted-foreground", children: user.email })
66
72
  ] })
67
73
  ] }) }),
68
- /* @__PURE__ */ e(f, { className: "m-0" }),
69
- /* @__PURE__ */ e("div", { className: "py-1.5 space-y-2", children: /* @__PURE__ */ r(
70
- C,
74
+ /* @__PURE__ */ jsx(DropdownMenuSeparator, { className: "m-0" }),
75
+ /* @__PURE__ */ jsx("div", { className: "py-1.5 space-y-2", children: /* @__PURE__ */ jsxs(
76
+ DropdownMenuItem,
71
77
  {
72
- onClick: b,
73
- className: n("flex items-center gap-3 text-sm cursor-pointer", a?.signOutButton),
78
+ onClick: logout,
79
+ className: cn("flex items-center gap-3 text-sm cursor-pointer", classes?.signOutButton),
74
80
  children: [
75
- /* @__PURE__ */ e(F, { className: "w-4 h-4 text-blimu-muted-foreground" }),
76
- /* @__PURE__ */ e("span", { children: "Sign out" })
81
+ /* @__PURE__ */ jsx(LogOut, { className: "w-4 h-4 text-blimu-muted-foreground" }),
82
+ /* @__PURE__ */ jsx("span", { children: "Sign out" })
77
83
  ]
78
84
  }
79
85
  ) }),
80
- /* @__PURE__ */ e(f, { className: "m-0" }),
81
- /* @__PURE__ */ e("div", { className: "p-4 bg-blimu-muted/50", children: /* @__PURE__ */ r("div", { className: "flex justify-center items-center gap-2 text-xs text-blimu-muted-foreground", children: [
82
- /* @__PURE__ */ e("span", { children: "Secured by" }),
83
- /* @__PURE__ */ e("span", { className: "font-semibold text-blimu-foreground", children: "Blimu" })
86
+ /* @__PURE__ */ jsx(DropdownMenuSeparator, { className: "m-0" }),
87
+ /* @__PURE__ */ jsx("div", { className: "p-4 bg-blimu-muted/50", children: /* @__PURE__ */ jsxs("div", { className: "flex justify-center items-center gap-2 text-xs text-blimu-muted-foreground", children: [
88
+ /* @__PURE__ */ jsx("span", { children: "Secured by" }),
89
+ /* @__PURE__ */ jsx("span", { className: "font-semibold text-blimu-foreground", children: "Blimu" })
84
90
  ] }) })
85
91
  ]
86
92
  }
@@ -88,6 +94,6 @@ function G({
88
94
  ] });
89
95
  }
90
96
  export {
91
- G as UserButton
97
+ UserButton
92
98
  };
93
99
  //# sourceMappingURL=user-button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-button.js","sources":["../../../src/components/user-button/user-button.tsx"],"sourcesContent":["import React from 'react';\nimport { Avatar, AvatarFallback } from '@/components/ui/avatar';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport { cn } from '@/lib/utils';\nimport { LogOut, Settings } from 'lucide-react';\n\nimport { useAuth, useUser } from '../../hooks/use-auth';\nimport type { BlimuComponentProps } from '../../types';\nimport {\n userButtonTriggerVariants,\n userButtonContentVariants,\n type UserButtonTriggerVariants,\n} from './styles';\n\nexport interface UserButtonProps extends BlimuComponentProps, UserButtonTriggerVariants {\n /** Callback when user clicks \"Manage account\" */\n onManageAccount?: () => void;\n /** Show user name in trigger button */\n showNameInTrigger?: boolean;\n /** Show user email in trigger button */\n showEmailInTrigger?: boolean;\n /** Avatar position when text is shown in trigger */\n avatarPos?: 'start' | 'end';\n}\n\nexport function UserButton({\n className,\n classes,\n onManageAccount,\n variant,\n size,\n showNameInTrigger = false,\n showEmailInTrigger = false,\n avatarPos = 'start',\n}: UserButtonProps = {}) {\n const { logout } = useAuth();\n const { user } = useUser();\n\n const displayName =\n user?.firstName && user?.lastName\n ? `${user.firstName} ${user.lastName}`\n : user?.firstName || user?.email?.split('@')[0] || 'User';\n\n const initials =\n displayName\n ?.split(' ')\n .map((n) => n[0])\n .join('')\n .toUpperCase()\n .slice(0, 2) || 'U';\n\n if (!user) {\n return null;\n }\n\n const showText = showNameInTrigger || showEmailInTrigger;\n\n const avatarElement = (\n <Avatar className={cn('w-8 h-8', classes?.avatar)}>\n <AvatarFallback\n className={cn(\n 'bg-blimu-muted text-blimu-muted-foreground text-sm font-medium',\n classes?.avatarFallback,\n )}\n >\n {initials}\n </AvatarFallback>\n </Avatar>\n );\n\n const textElement = showText && (\n <div className={cn('flex flex-col items-start', classes?.userInfo)}>\n {showNameInTrigger && (\n <span className={cn('text-sm leading-tight font-medium', classes?.userName)}>\n {displayName}\n </span>\n )}\n {showEmailInTrigger && (\n <span className={cn('text-xs leading-tight opacity-70', classes?.userEmail)}>\n {user.email}\n </span>\n )}\n </div>\n );\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button\n className={cn(\n userButtonTriggerVariants({ variant, size }),\n 'flex items-center gap-2',\n className,\n classes?.trigger,\n )}\n >\n {avatarPos === 'start' ? (\n <>\n {avatarElement}\n {textElement}\n </>\n ) : (\n <>\n {textElement}\n {avatarElement}\n </>\n )}\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n className={cn(userButtonContentVariants(), 'w-64 p-0', classes?.popover)}\n align=\"end\"\n sideOffset={8}\n >\n <DropdownMenuLabel className=\"p-0 \">\n <div className=\"flex items-center gap-3 p-4\">\n <Avatar className=\"size-10\">\n <AvatarFallback className=\"bg-blimu-primary text-blimu-primary-foreground text-base font-medium\">\n {initials}\n </AvatarFallback>\n </Avatar>\n {displayName && (\n <div className=\"flex flex-col\">\n <span className=\"text-sm font-medium text-blimu-foreground\">{displayName}</span>\n <span className=\"text-xs text-blimu-muted-foreground\">{user.email}</span>\n </div>\n )}\n </div>\n </DropdownMenuLabel>\n\n <DropdownMenuSeparator className=\"m-0\" />\n <div className=\"py-1.5 space-y-2\">\n {/* <DropdownMenuItem\n onClick={onManageAccount}\n className={cn(\n 'flex items-center gap-3 text-sm cursor-pointer',\n classes?.manageAccountButton,\n )}\n >\n <Settings className=\"size-4 text-blimu-muted-foreground\" />\n <span>Manage account</span>\n </DropdownMenuItem> */}\n\n <DropdownMenuItem\n onClick={logout}\n className={cn('flex items-center gap-3 text-sm cursor-pointer', classes?.signOutButton)}\n >\n <LogOut className=\"w-4 h-4 text-blimu-muted-foreground\" />\n <span>Sign out</span>\n </DropdownMenuItem>\n </div>\n\n <DropdownMenuSeparator className=\"m-0\" />\n\n <div className=\"p-4 bg-blimu-muted/50\">\n <div className=\"flex justify-center items-center gap-2 text-xs text-blimu-muted-foreground\">\n <span>Secured by</span>\n <span className=\"font-semibold text-blimu-foreground\">Blimu</span>\n </div>\n </div>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n"],"names":["UserButton","className","classes","onManageAccount","variant","size","showNameInTrigger","showEmailInTrigger","avatarPos","logout","useAuth","user","useUser","displayName","initials","n","showText","avatarElement","Avatar","cn","jsx","AvatarFallback","textElement","jsxs","DropdownMenu","DropdownMenuTrigger","userButtonTriggerVariants","Fragment","DropdownMenuContent","userButtonContentVariants","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuItem","LogOut"],"mappings":"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"}
1
+ {"version":3,"file":"user-button.js","sources":["../../../src/components/user-button/user-button.tsx"],"sourcesContent":["import { LogOut } from 'lucide-react';\nimport React from 'react';\n\nimport { Avatar, AvatarFallback } from '@/components/ui/avatar';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport { cn } from '@/lib/utils';\n\nimport { useAuth, useUser } from '../../hooks/use-auth';\nimport type { BlimuComponentProps } from '../../types';\nimport {\n userButtonContentVariants,\n type UserButtonTriggerVariants,\n userButtonTriggerVariants,\n} from './styles';\n\nexport interface UserButtonProps extends BlimuComponentProps, UserButtonTriggerVariants {\n /** Callback when user clicks \"Manage account\" */\n onManageAccount?: () => void;\n /** Show user name in trigger button */\n showNameInTrigger?: boolean;\n /** Show user email in trigger button */\n showEmailInTrigger?: boolean;\n /** Avatar position when text is shown in trigger */\n avatarPos?: 'start' | 'end';\n}\n\nexport function UserButton({\n className,\n classes,\n onManageAccount: _onManageAccount,\n variant,\n size,\n showNameInTrigger = false,\n showEmailInTrigger = false,\n avatarPos = 'start',\n}: UserButtonProps = {}) {\n const { logout } = useAuth();\n const { user } = useUser();\n\n const displayName =\n user?.firstName && user?.lastName\n ? `${user.firstName} ${user.lastName}`\n : user?.firstName || user?.email?.split('@')[0] || 'User';\n\n const initials =\n displayName\n ?.split(' ')\n .map((n) => n[0])\n .join('')\n .toUpperCase()\n .slice(0, 2) || 'U';\n\n if (!user) {\n return null;\n }\n\n const showText = showNameInTrigger || showEmailInTrigger;\n\n const avatarElement = (\n <Avatar className={cn('w-8 h-8', classes?.avatar)}>\n <AvatarFallback\n className={cn(\n 'bg-blimu-muted text-blimu-muted-foreground text-sm font-medium',\n classes?.avatarFallback,\n )}\n >\n {initials}\n </AvatarFallback>\n </Avatar>\n );\n\n const textElement = showText && (\n <div className={cn('flex flex-col items-start', classes?.userInfo)}>\n {showNameInTrigger && (\n <span className={cn('text-sm leading-tight font-medium', classes?.userName)}>\n {displayName}\n </span>\n )}\n {showEmailInTrigger && (\n <span className={cn('text-xs leading-tight opacity-70', classes?.userEmail)}>\n {user.email}\n </span>\n )}\n </div>\n );\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button\n className={cn(\n userButtonTriggerVariants({ variant, size }),\n 'flex items-center gap-2',\n className,\n classes?.trigger,\n )}\n >\n {avatarPos === 'start' ? (\n <>\n {avatarElement}\n {textElement}\n </>\n ) : (\n <>\n {textElement}\n {avatarElement}\n </>\n )}\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n className={cn(userButtonContentVariants(), 'w-64 p-0', classes?.popover)}\n align=\"end\"\n sideOffset={8}\n >\n <DropdownMenuLabel className=\"p-0 \">\n <div className=\"flex items-center gap-3 p-4\">\n <Avatar className=\"size-10\">\n <AvatarFallback className=\"bg-blimu-primary text-blimu-primary-foreground text-base font-medium\">\n {initials}\n </AvatarFallback>\n </Avatar>\n {displayName && (\n <div className=\"flex flex-col\">\n <span className=\"text-sm font-medium text-blimu-foreground\">{displayName}</span>\n <span className=\"text-xs text-blimu-muted-foreground\">{user.email}</span>\n </div>\n )}\n </div>\n </DropdownMenuLabel>\n\n <DropdownMenuSeparator className=\"m-0\" />\n <div className=\"py-1.5 space-y-2\">\n {/* <DropdownMenuItem\n onClick={onManageAccount}\n className={cn(\n 'flex items-center gap-3 text-sm cursor-pointer',\n classes?.manageAccountButton,\n )}\n >\n <Settings className=\"size-4 text-blimu-muted-foreground\" />\n <span>Manage account</span>\n </DropdownMenuItem> */}\n\n <DropdownMenuItem\n onClick={logout}\n className={cn('flex items-center gap-3 text-sm cursor-pointer', classes?.signOutButton)}\n >\n <LogOut className=\"w-4 h-4 text-blimu-muted-foreground\" />\n <span>Sign out</span>\n </DropdownMenuItem>\n </div>\n\n <DropdownMenuSeparator className=\"m-0\" />\n\n <div className=\"p-4 bg-blimu-muted/50\">\n <div className=\"flex justify-center items-center gap-2 text-xs text-blimu-muted-foreground\">\n <span>Secured by</span>\n <span className=\"font-semibold text-blimu-foreground\">Blimu</span>\n </div>\n </div>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const blimu_hook = require("../providers/blimu/blimu.hook.cjs");
4
+ const useAuth = require("./use-auth.cjs");
5
+ const useClient = require("./use-client.cjs");
6
+ const useMembers = require("./use-members.cjs");
7
+ const useStore = require("./use-store.cjs");
8
+ exports.useBlimu = blimu_hook.useBlimu;
9
+ exports.useAuth = useAuth.useAuth;
10
+ exports.useUser = useAuth.useUser;
11
+ exports.useClient = useClient.useClient;
12
+ exports.useMembers = useMembers.useMembers;
13
+ exports.useStore = useStore.useStore;
14
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -1,7 +1,8 @@
1
1
  export { useBlimu } from '../providers/blimu/blimu.hook';
2
+ export type { UseAuthReturn } from './use-auth';
2
3
  export { useAuth, useUser } from './use-auth';
3
4
  export { useClient } from './use-client';
4
- export { useStore } from './use-store';
5
- export { useMembers } from './use-members';
6
5
  export type { ResourceMember, UseMembersOptions, UseMembersResult } from './use-members';
6
+ export { useMembers } from './use-members';
7
+ export { useStore } from './use-store';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { useBlimu } from "../providers/blimu/blimu.hook.js";
2
+ import { useAuth, useUser } from "./use-auth.js";
3
+ import { useClient } from "./use-client.js";
4
+ import { useMembers } from "./use-members.js";
5
+ import { useStore } from "./use-store.js";
6
+ export {
7
+ useAuth,
8
+ useBlimu,
9
+ useClient,
10
+ useMembers,
11
+ useStore,
12
+ useUser
13
+ };
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -1,2 +1,45 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),i=require("../providers/auth/auth.hook.cjs"),t=require("../types/index.cjs");function r(){const e=i.useAuthContext(),{state:s}=e,u=a.useMemo(()=>({isIdle:t.AuthStateGuards.isIdle(s),isLoading:t.AuthStateGuards.isLoading(s),isAuthenticated:t.AuthStateGuards.isAuthenticated(s),isUnauthenticated:t.AuthStateGuards.isUnauthenticated(s),isReady:t.AuthStateGuards.isReady(s),isError:t.AuthStateGuards.isError(s)}),[s]);return{...e,...u}}function n(){const{state:e}=i.useAuthContext(),s=t.AuthStateGuards.isAuthenticated(e)?e.user:null,u=a.useMemo(()=>({isIdle:t.AuthStateGuards.isIdle(e),isLoading:t.AuthStateGuards.isLoading(e),isAuthenticated:t.AuthStateGuards.isAuthenticated(e),isUnauthenticated:t.AuthStateGuards.isUnauthenticated(e),isError:t.AuthStateGuards.isError(e)}),[e]);return{user:s,...u}}exports.useAuth=r;exports.useUser=n;
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const React = require("react");
4
+ const auth_hook = require("../providers/auth/auth.hook.cjs");
5
+ const types_index = require("../types/index.cjs");
6
+ function useAuth() {
7
+ const context = auth_hook.useAuthContext();
8
+ const { state } = context;
9
+ const booleanState = React.useMemo(
10
+ () => ({
11
+ isIdle: types_index.AuthStateGuards.isIdle(state),
12
+ isLoading: types_index.AuthStateGuards.isLoading(state),
13
+ isAuthenticated: types_index.AuthStateGuards.isAuthenticated(state),
14
+ isUnauthenticated: types_index.AuthStateGuards.isUnauthenticated(state),
15
+ isReady: types_index.AuthStateGuards.isReady(state),
16
+ isError: types_index.AuthStateGuards.isError(state)
17
+ }),
18
+ [state]
19
+ );
20
+ return {
21
+ ...context,
22
+ ...booleanState
23
+ };
24
+ }
25
+ function useUser() {
26
+ const { state } = auth_hook.useAuthContext();
27
+ const user = types_index.AuthStateGuards.isAuthenticated(state) ? state.user : null;
28
+ const booleanState = React.useMemo(
29
+ () => ({
30
+ isIdle: types_index.AuthStateGuards.isIdle(state),
31
+ isLoading: types_index.AuthStateGuards.isLoading(state),
32
+ isAuthenticated: types_index.AuthStateGuards.isAuthenticated(state),
33
+ isUnauthenticated: types_index.AuthStateGuards.isUnauthenticated(state),
34
+ isError: types_index.AuthStateGuards.isError(state)
35
+ }),
36
+ [state]
37
+ );
38
+ return {
39
+ user,
40
+ ...booleanState
41
+ };
42
+ }
43
+ exports.useAuth = useAuth;
44
+ exports.useUser = useUser;
2
45
  //# sourceMappingURL=use-auth.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-auth.cjs","sources":["../../src/hooks/use-auth.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport { useAuthContext } from '../providers/auth/auth.hook';\nimport { AuthStateGuards } from '../types';\n\n/**\n * Hook for accessing authentication state and actions\n *\n * Provides a type-safe interface to authentication state with discriminated union states\n * and convenient boolean properties for common checks.\n *\n * @example Using boolean properties\n * ```tsx\n * function MyComponent() {\n * const { isAuthenticated, isLoading, login, logout } = useAuth();\n *\n * if (isLoading) {\n * return <Spinner />;\n * }\n *\n * if (isAuthenticated) {\n * return (\n * <div>\n * <p>Welcome!</p>\n * <button onClick={logout}>Logout</button>\n * </div>\n * );\n * }\n *\n * return <LoginForm onLogin={login} />;\n * }\n * ```\n *\n * @example Using discriminated union state for advanced cases\n * ```tsx\n * function AuthStatus() {\n * const { state, isError } = useAuth();\n *\n * if (isError && state.status === 'error') {\n * return <div>Error: {state.error}</div>;\n * }\n *\n * return <div>Status: {state.status}</div>;\n * }\n * ```\n */\nexport function useAuth() {\n const context = useAuthContext();\n const { state } = context;\n\n const booleanState = useMemo(\n () => ({\n isIdle: AuthStateGuards.isIdle(state),\n isLoading: AuthStateGuards.isLoading(state),\n isAuthenticated: AuthStateGuards.isAuthenticated(state),\n isUnauthenticated: AuthStateGuards.isUnauthenticated(state),\n isReady: AuthStateGuards.isReady(state),\n isError: AuthStateGuards.isError(state),\n }),\n [state],\n );\n\n return {\n ...context,\n ...booleanState,\n };\n}\n\n/**\n * Hook for getting current user information with auth state\n *\n * Returns the user object if authenticated (null otherwise) along with boolean state properties.\n *\n * @example\n * ```tsx\n * function UserProfile() {\n * const { user, isAuthenticated, isLoading } = useUser();\n *\n * if (isLoading) {\n * return <Spinner />;\n * }\n *\n * if (!isAuthenticated || !user) {\n * return <div>Not authenticated</div>;\n * }\n *\n * return (\n * <div>\n * <h1>{user.firstName} {user.lastName}</h1>\n * <p>{user.email}</p>\n * </div>\n * );\n * }\n * ```\n */\nexport function useUser() {\n const { state } = useAuthContext();\n\n const user = AuthStateGuards.isAuthenticated(state) ? state.user : null;\n\n const booleanState = useMemo(\n () => ({\n isIdle: AuthStateGuards.isIdle(state),\n isLoading: AuthStateGuards.isLoading(state),\n isAuthenticated: AuthStateGuards.isAuthenticated(state),\n isUnauthenticated: AuthStateGuards.isUnauthenticated(state),\n isError: AuthStateGuards.isError(state),\n }),\n [state],\n );\n\n return {\n user,\n ...booleanState,\n };\n}\n"],"names":["useAuth","context","useAuthContext","state","booleanState","useMemo","AuthStateGuards","useUser","user"],"mappings":"sLA8CO,SAASA,GAAU,CACxB,MAAMC,EAAUC,EAAAA,eAAA,EACV,CAAE,MAAAC,GAAUF,EAEZG,EAAeC,EAAAA,QACnB,KAAO,CACL,OAAQC,EAAAA,gBAAgB,OAAOH,CAAK,EACpC,UAAWG,EAAAA,gBAAgB,UAAUH,CAAK,EAC1C,gBAAiBG,EAAAA,gBAAgB,gBAAgBH,CAAK,EACtD,kBAAmBG,EAAAA,gBAAgB,kBAAkBH,CAAK,EAC1D,QAASG,EAAAA,gBAAgB,QAAQH,CAAK,EACtC,QAASG,EAAAA,gBAAgB,QAAQH,CAAK,CAAA,GAExC,CAACA,CAAK,CAAA,EAGR,MAAO,CACL,GAAGF,EACH,GAAGG,CAAA,CAEP,CA6BO,SAASG,GAAU,CACxB,KAAM,CAAE,MAAAJ,CAAA,EAAUD,iBAAA,EAEZM,EAAOF,EAAAA,gBAAgB,gBAAgBH,CAAK,EAAIA,EAAM,KAAO,KAE7DC,EAAeC,EAAAA,QACnB,KAAO,CACL,OAAQC,EAAAA,gBAAgB,OAAOH,CAAK,EACpC,UAAWG,EAAAA,gBAAgB,UAAUH,CAAK,EAC1C,gBAAiBG,EAAAA,gBAAgB,gBAAgBH,CAAK,EACtD,kBAAmBG,EAAAA,gBAAgB,kBAAkBH,CAAK,EAC1D,QAASG,EAAAA,gBAAgB,QAAQH,CAAK,CAAA,GAExC,CAACA,CAAK,CAAA,EAGR,MAAO,CACL,KAAAK,EACA,GAAGJ,CAAA,CAEP"}
1
+ {"version":3,"file":"use-auth.cjs","sources":["../../src/hooks/use-auth.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport { useAuthContext } from '../providers/auth/auth.hook';\nimport { type AuthContextValue, AuthStateGuards } from '../types';\n\n/**\n * Return type for useAuth hook\n */\nexport type UseAuthReturn = AuthContextValue & {\n isIdle: boolean;\n isLoading: boolean;\n isAuthenticated: boolean;\n isUnauthenticated: boolean;\n isReady: boolean;\n isError: boolean;\n};\n\n/**\n * Hook for accessing authentication state and actions\n *\n * Provides a type-safe interface to authentication state with discriminated union states\n * and convenient boolean properties for common checks.\n *\n * @example Using boolean properties\n * ```tsx\n * function MyComponent() {\n * const { isAuthenticated, isLoading, login, logout } = useAuth();\n *\n * if (isLoading) {\n * return <Spinner />;\n * }\n *\n * if (isAuthenticated) {\n * return (\n * <div>\n * <p>Welcome!</p>\n * <button onClick={logout}>Logout</button>\n * </div>\n * );\n * }\n *\n * return <LoginForm onLogin={login} />;\n * }\n * ```\n *\n * @example Using discriminated union state for advanced cases\n * ```tsx\n * function AuthStatus() {\n * const { state, isError } = useAuth();\n *\n * if (isError && state.status === 'error') {\n * return <div>Error: {state.error}</div>;\n * }\n *\n * return <div>Status: {state.status}</div>;\n * }\n * ```\n */\nexport function useAuth(): UseAuthReturn {\n const context = useAuthContext();\n const { state } = context;\n\n const booleanState = useMemo(\n () => ({\n isIdle: AuthStateGuards.isIdle(state),\n isLoading: AuthStateGuards.isLoading(state),\n isAuthenticated: AuthStateGuards.isAuthenticated(state),\n isUnauthenticated: AuthStateGuards.isUnauthenticated(state),\n isReady: AuthStateGuards.isReady(state),\n isError: AuthStateGuards.isError(state),\n }),\n [state],\n );\n\n return {\n ...context,\n ...booleanState,\n };\n}\n\n/**\n * Hook for getting current user information with auth state\n *\n * Returns the user object if authenticated (null otherwise) along with boolean state properties.\n *\n * @example\n * ```tsx\n * function UserProfile() {\n * const { user, isAuthenticated, isLoading } = useUser();\n *\n * if (isLoading) {\n * return <Spinner />;\n * }\n *\n * if (!isAuthenticated || !user) {\n * return <div>Not authenticated</div>;\n * }\n *\n * return (\n * <div>\n * <h1>{user.firstName} {user.lastName}</h1>\n * <p>{user.email}</p>\n * </div>\n * );\n * }\n * ```\n */\nexport function useUser() {\n const { state } = useAuthContext();\n\n const user = AuthStateGuards.isAuthenticated(state) ? state.user : null;\n\n const booleanState = useMemo(\n () => ({\n isIdle: AuthStateGuards.isIdle(state),\n isLoading: AuthStateGuards.isLoading(state),\n isAuthenticated: AuthStateGuards.isAuthenticated(state),\n isUnauthenticated: AuthStateGuards.isUnauthenticated(state),\n isError: AuthStateGuards.isError(state),\n }),\n [state],\n );\n\n return {\n user,\n ...booleanState,\n };\n}\n"],"names":["useAuthContext","useMemo","AuthStateGuards"],"mappings":";;;;;AA0DO,SAAS,UAAyB;AACvC,QAAM,UAAUA,UAAAA,eAAA;AAChB,QAAM,EAAE,UAAU;AAElB,QAAM,eAAeC,MAAAA;AAAAA,IACnB,OAAO;AAAA,MACL,QAAQC,YAAAA,gBAAgB,OAAO,KAAK;AAAA,MACpC,WAAWA,YAAAA,gBAAgB,UAAU,KAAK;AAAA,MAC1C,iBAAiBA,YAAAA,gBAAgB,gBAAgB,KAAK;AAAA,MACtD,mBAAmBA,YAAAA,gBAAgB,kBAAkB,KAAK;AAAA,MAC1D,SAASA,YAAAA,gBAAgB,QAAQ,KAAK;AAAA,MACtC,SAASA,YAAAA,gBAAgB,QAAQ,KAAK;AAAA,IAAA;AAAA,IAExC,CAAC,KAAK;AAAA,EAAA;AAGR,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,EAAA;AAEP;AA6BO,SAAS,UAAU;AACxB,QAAM,EAAE,MAAA,IAAUF,yBAAA;AAElB,QAAM,OAAOE,YAAAA,gBAAgB,gBAAgB,KAAK,IAAI,MAAM,OAAO;AAEnE,QAAM,eAAeD,MAAAA;AAAAA,IACnB,OAAO;AAAA,MACL,QAAQC,YAAAA,gBAAgB,OAAO,KAAK;AAAA,MACpC,WAAWA,YAAAA,gBAAgB,UAAU,KAAK;AAAA,MAC1C,iBAAiBA,YAAAA,gBAAgB,gBAAgB,KAAK;AAAA,MACtD,mBAAmBA,YAAAA,gBAAgB,kBAAkB,KAAK;AAAA,MAC1D,SAASA,YAAAA,gBAAgB,QAAQ,KAAK;AAAA,IAAA;AAAA,IAExC,CAAC,KAAK;AAAA,EAAA;AAGR,SAAO;AAAA,IACL;AAAA,IACA,GAAG;AAAA,EAAA;AAEP;;;"}
@@ -1,3 +1,15 @@
1
+ import { type AuthContextValue } from '../types';
2
+ /**
3
+ * Return type for useAuth hook
4
+ */
5
+ export type UseAuthReturn = AuthContextValue & {
6
+ isIdle: boolean;
7
+ isLoading: boolean;
8
+ isAuthenticated: boolean;
9
+ isUnauthenticated: boolean;
10
+ isReady: boolean;
11
+ isError: boolean;
12
+ };
1
13
  /**
2
14
  * Hook for accessing authentication state and actions
3
15
  *
@@ -39,21 +51,7 @@
39
51
  * }
40
52
  * ```
41
53
  */
42
- export declare function useAuth(): {
43
- isIdle: boolean;
44
- isLoading: boolean;
45
- isAuthenticated: boolean;
46
- isUnauthenticated: boolean;
47
- isReady: boolean;
48
- isError: boolean;
49
- state: import("..").AuthState;
50
- login: (returnUrl?: string) => void;
51
- logout: () => Promise<void>;
52
- getToken: (options: {
53
- template: "web";
54
- }) => Promise<string | null>;
55
- getAuthState: () => import("..").AuthState;
56
- };
54
+ export declare function useAuth(): UseAuthReturn;
57
55
  /**
58
56
  * Hook for getting current user information with auth state
59
57
  *
@@ -1 +1 @@
1
- {"version":3,"file":"use-auth.d.ts","sourceRoot":"","sources":["../../src/hooks/use-auth.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,OAAO;;;;;;;;qBAsEuQ,CAAC;;;;;;EAlD9R;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,OAAO;;;;;;;EAoBtB"}
1
+ {"version":3,"file":"use-auth.d.ts","sourceRoot":"","sources":["../../src/hooks/use-auth.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,gBAAgB,EAAmB,MAAM,UAAU,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG;IAC7C,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,OAAO,IAAI,aAAa,CAoBvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,OAAO;;;;;;;EAoBtB"}