@brokr/sdk 1.0.0 → 2.1.0

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 (298) hide show
  1. package/dist/account.js +34 -0
  2. package/dist/account.mjs +7 -0
  3. package/dist/auth.js +628 -114
  4. package/dist/auth.mjs +611 -111
  5. package/dist/chat.js +34 -0
  6. package/dist/chat.mjs +7 -0
  7. package/dist/events.js +64 -0
  8. package/dist/events.mjs +37 -0
  9. package/dist/feature.js +6304 -0
  10. package/dist/feature.mjs +6278 -0
  11. package/dist/files.js +428 -0
  12. package/dist/files.mjs +408 -0
  13. package/dist/index.d.ts +18 -2
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +4069 -454
  16. package/dist/index.mjs +4040 -448
  17. package/dist/logs.js +148 -0
  18. package/dist/logs.mjs +124 -0
  19. package/dist/management.js +14 -13
  20. package/dist/management.mjs +14 -13
  21. package/dist/next.js +2725 -0
  22. package/dist/next.mjs +2710 -0
  23. package/dist/notifications.js +140 -0
  24. package/dist/notifications.mjs +110 -0
  25. package/dist/payments.js +32 -0
  26. package/dist/payments.mjs +7 -0
  27. package/dist/react-notifications.js +299 -0
  28. package/dist/react-notifications.mjs +267 -0
  29. package/dist/react-styles.js +2756 -0
  30. package/dist/react-styles.mjs +2720 -0
  31. package/dist/react-theme.js +4196 -0
  32. package/dist/react-theme.mjs +4172 -0
  33. package/dist/react.js +8591 -209
  34. package/dist/react.mjs +8571 -183
  35. package/dist/runtime.js +2113 -385
  36. package/dist/runtime.mjs +2085 -397
  37. package/dist/src/account/config.d.ts +42 -0
  38. package/dist/src/account/config.d.ts.map +1 -0
  39. package/dist/src/account/index.d.ts +3 -0
  40. package/dist/src/account/index.d.ts.map +1 -0
  41. package/dist/src/ai/client.d.ts +58 -0
  42. package/dist/src/ai/client.d.ts.map +1 -0
  43. package/dist/src/ai/conversation-title.d.ts +13 -0
  44. package/dist/src/ai/conversation-title.d.ts.map +1 -0
  45. package/dist/src/ai/types.d.ts +81 -0
  46. package/dist/src/ai/types.d.ts.map +1 -0
  47. package/dist/src/auth.d.ts +133 -20
  48. package/dist/src/auth.d.ts.map +1 -1
  49. package/dist/src/chat/config.d.ts +61 -0
  50. package/dist/src/chat/config.d.ts.map +1 -0
  51. package/dist/src/chat/index.d.ts +3 -0
  52. package/dist/src/chat/index.d.ts.map +1 -0
  53. package/dist/src/chat/sse-parser.d.ts +44 -0
  54. package/dist/src/chat/sse-parser.d.ts.map +1 -0
  55. package/dist/src/dev-console.d.ts +18 -0
  56. package/dist/src/dev-console.d.ts.map +1 -0
  57. package/dist/src/email/client.d.ts +33 -0
  58. package/dist/src/email/client.d.ts.map +1 -0
  59. package/dist/src/email/templates.d.ts +15 -0
  60. package/dist/src/email/templates.d.ts.map +1 -0
  61. package/dist/src/email/types.d.ts +35 -0
  62. package/dist/src/email/types.d.ts.map +1 -0
  63. package/dist/src/env-detect.d.ts +25 -0
  64. package/dist/src/env-detect.d.ts.map +1 -0
  65. package/dist/src/errors.d.ts +53 -0
  66. package/dist/src/errors.d.ts.map +1 -0
  67. package/dist/src/events/client.d.ts +25 -0
  68. package/dist/src/events/client.d.ts.map +1 -0
  69. package/dist/src/events/index.d.ts +9 -0
  70. package/dist/src/events/index.d.ts.map +1 -0
  71. package/dist/src/events/types.d.ts +10 -0
  72. package/dist/src/events/types.d.ts.map +1 -0
  73. package/dist/src/feature/canonical.d.ts +33 -0
  74. package/dist/src/feature/canonical.d.ts.map +1 -0
  75. package/dist/src/feature/create-feature.d.ts +33 -0
  76. package/dist/src/feature/create-feature.d.ts.map +1 -0
  77. package/dist/src/feature/db.d.ts +16 -0
  78. package/dist/src/feature/db.d.ts.map +1 -0
  79. package/dist/src/feature/handlers.d.ts +28 -0
  80. package/dist/src/feature/handlers.d.ts.map +1 -0
  81. package/dist/src/feature/index.d.ts +21 -0
  82. package/dist/src/feature/index.d.ts.map +1 -0
  83. package/dist/src/feature/manifest.d.ts +173 -0
  84. package/dist/src/feature/manifest.d.ts.map +1 -0
  85. package/dist/src/feature/mapping.d.ts +18 -0
  86. package/dist/src/feature/mapping.d.ts.map +1 -0
  87. package/dist/src/feature/runtime.d.ts +45 -0
  88. package/dist/src/feature/runtime.d.ts.map +1 -0
  89. package/dist/src/feature/types.d.ts +65 -0
  90. package/dist/src/feature/types.d.ts.map +1 -0
  91. package/dist/src/files/client.d.ts +28 -0
  92. package/dist/src/files/client.d.ts.map +1 -0
  93. package/dist/src/files/types.d.ts +28 -0
  94. package/dist/src/files/types.d.ts.map +1 -0
  95. package/dist/src/fix-registry.d.ts +8 -0
  96. package/dist/src/fix-registry.d.ts.map +1 -0
  97. package/dist/src/gateway.d.ts +32 -0
  98. package/dist/src/gateway.d.ts.map +1 -0
  99. package/dist/src/logs/capture.d.ts +56 -0
  100. package/dist/src/logs/capture.d.ts.map +1 -0
  101. package/dist/src/logs/index.d.ts +2 -0
  102. package/dist/src/logs/index.d.ts.map +1 -0
  103. package/dist/src/management.d.ts +1 -1
  104. package/dist/src/management.d.ts.map +1 -1
  105. package/dist/src/models.d.ts +32 -0
  106. package/dist/src/models.d.ts.map +1 -0
  107. package/dist/src/next/auth.d.ts +54 -0
  108. package/dist/src/next/auth.d.ts.map +1 -0
  109. package/dist/src/next/chat.d.ts +31 -0
  110. package/dist/src/next/chat.d.ts.map +1 -0
  111. package/dist/src/next/index.d.ts +14 -0
  112. package/dist/src/next/index.d.ts.map +1 -0
  113. package/dist/src/next/notifications.d.ts +67 -0
  114. package/dist/src/next/notifications.d.ts.map +1 -0
  115. package/dist/src/notifications/built-ins.d.ts +9 -0
  116. package/dist/src/notifications/built-ins.d.ts.map +1 -0
  117. package/dist/src/notifications/client.d.ts +38 -0
  118. package/dist/src/notifications/client.d.ts.map +1 -0
  119. package/dist/src/notifications/config.d.ts +71 -0
  120. package/dist/src/notifications/config.d.ts.map +1 -0
  121. package/dist/src/notifications/index.d.ts +6 -0
  122. package/dist/src/notifications/index.d.ts.map +1 -0
  123. package/dist/src/notifications/registry.d.ts +67 -0
  124. package/dist/src/notifications/registry.d.ts.map +1 -0
  125. package/dist/src/notifications/types.d.ts +48 -0
  126. package/dist/src/notifications/types.d.ts.map +1 -0
  127. package/dist/src/payments/client.d.ts +64 -0
  128. package/dist/src/payments/client.d.ts.map +1 -0
  129. package/dist/src/payments/config.d.ts +46 -0
  130. package/dist/src/payments/config.d.ts.map +1 -0
  131. package/dist/src/payments/entitlements.d.ts +48 -0
  132. package/dist/src/payments/entitlements.d.ts.map +1 -0
  133. package/dist/src/payments/types.d.ts +135 -0
  134. package/dist/src/payments/types.d.ts.map +1 -0
  135. package/dist/src/react/BrokrErrorBoundary.d.ts +23 -0
  136. package/dist/src/react/BrokrErrorBoundary.d.ts.map +1 -0
  137. package/dist/src/react/account/AccountPanel.d.ts +12 -0
  138. package/dist/src/react/account/AccountPanel.d.ts.map +1 -0
  139. package/dist/src/react/account/Avatar.d.ts +11 -0
  140. package/dist/src/react/account/Avatar.d.ts.map +1 -0
  141. package/dist/src/react/account/ProfilePhotoButton.d.ts +7 -0
  142. package/dist/src/react/account/ProfilePhotoButton.d.ts.map +1 -0
  143. package/dist/src/react/account/UserButton.d.ts +7 -0
  144. package/dist/src/react/account/UserButton.d.ts.map +1 -0
  145. package/dist/src/react/auth-pages/AuthPageShell.d.ts +9 -0
  146. package/dist/src/react/auth-pages/AuthPageShell.d.ts.map +1 -0
  147. package/dist/src/react/auth-pages/SignInPage.d.ts +9 -0
  148. package/dist/src/react/auth-pages/SignInPage.d.ts.map +1 -0
  149. package/dist/src/react/auth-pages/SignUpPage.d.ts +8 -0
  150. package/dist/src/react/auth-pages/SignUpPage.d.ts.map +1 -0
  151. package/dist/src/react/auth.d.ts +1 -49
  152. package/dist/src/react/auth.d.ts.map +1 -1
  153. package/dist/src/react/chat/AIChat.d.ts +4 -0
  154. package/dist/src/react/chat/AIChat.d.ts.map +1 -0
  155. package/dist/src/react/chat/ChatContext.d.ts +76 -0
  156. package/dist/src/react/chat/ChatContext.d.ts.map +1 -0
  157. package/dist/src/react/chat/ChatInput.d.ts +3 -0
  158. package/dist/src/react/chat/ChatInput.d.ts.map +1 -0
  159. package/dist/src/react/chat/MarkdownRenderer.d.ts +5 -0
  160. package/dist/src/react/chat/MarkdownRenderer.d.ts.map +1 -0
  161. package/dist/src/react/chat/MessageBubble.d.ts +14 -0
  162. package/dist/src/react/chat/MessageBubble.d.ts.map +1 -0
  163. package/dist/src/react/chat/MessagePane.d.ts +10 -0
  164. package/dist/src/react/chat/MessagePane.d.ts.map +1 -0
  165. package/dist/src/react/chat/ModelSelector.d.ts +13 -0
  166. package/dist/src/react/chat/ModelSelector.d.ts.map +1 -0
  167. package/dist/src/react/chat/ThreadSidebar.d.ts +3 -0
  168. package/dist/src/react/chat/ThreadSidebar.d.ts.map +1 -0
  169. package/dist/src/react/chat/index.d.ts +5 -0
  170. package/dist/src/react/chat/index.d.ts.map +1 -0
  171. package/dist/src/react/chat/token-limit.d.ts +14 -0
  172. package/dist/src/react/chat/token-limit.d.ts.map +1 -0
  173. package/dist/src/react/chat/types.d.ts +65 -0
  174. package/dist/src/react/chat/types.d.ts.map +1 -0
  175. package/dist/src/react/chat/useChat.d.ts +57 -0
  176. package/dist/src/react/chat/useChat.d.ts.map +1 -0
  177. package/dist/src/react/composites/FabAI.d.ts +15 -0
  178. package/dist/src/react/composites/FabAI.d.ts.map +1 -0
  179. package/dist/src/react/composites/FeedbackWidget.d.ts +10 -0
  180. package/dist/src/react/composites/FeedbackWidget.d.ts.map +1 -0
  181. package/dist/src/react/composites/SmartUpload.d.ts +12 -0
  182. package/dist/src/react/composites/SmartUpload.d.ts.map +1 -0
  183. package/dist/src/react/config.d.ts +23 -0
  184. package/dist/src/react/config.d.ts.map +1 -0
  185. package/dist/src/react/context.d.ts +4 -0
  186. package/dist/src/react/context.d.ts.map +1 -0
  187. package/dist/src/react/css/account.d.ts +2 -0
  188. package/dist/src/react/css/account.d.ts.map +1 -0
  189. package/dist/src/react/css/animations.d.ts +2 -0
  190. package/dist/src/react/css/animations.d.ts.map +1 -0
  191. package/dist/src/react/css/auth.d.ts +2 -0
  192. package/dist/src/react/css/auth.d.ts.map +1 -0
  193. package/dist/src/react/css/chat-extras.d.ts +2 -0
  194. package/dist/src/react/css/chat-extras.d.ts.map +1 -0
  195. package/dist/src/react/css/chat.d.ts +2 -0
  196. package/dist/src/react/css/chat.d.ts.map +1 -0
  197. package/dist/src/react/css/composites.d.ts +2 -0
  198. package/dist/src/react/css/composites.d.ts.map +1 -0
  199. package/dist/src/react/css/gates.d.ts +2 -0
  200. package/dist/src/react/css/gates.d.ts.map +1 -0
  201. package/dist/src/react/css/index.d.ts +3 -0
  202. package/dist/src/react/css/index.d.ts.map +1 -0
  203. package/dist/src/react/css/markdown.d.ts +2 -0
  204. package/dist/src/react/css/markdown.d.ts.map +1 -0
  205. package/dist/src/react/css/notifications.d.ts +2 -0
  206. package/dist/src/react/css/notifications.d.ts.map +1 -0
  207. package/dist/src/react/css/primitives.d.ts +2 -0
  208. package/dist/src/react/css/primitives.d.ts.map +1 -0
  209. package/dist/src/react/css/reset.d.ts +2 -0
  210. package/dist/src/react/css/reset.d.ts.map +1 -0
  211. package/dist/src/react/css/responsive.d.ts +2 -0
  212. package/dist/src/react/css/responsive.d.ts.map +1 -0
  213. package/dist/src/react/css/skeleton.d.ts +2 -0
  214. package/dist/src/react/css/skeleton.d.ts.map +1 -0
  215. package/dist/src/react/css/tokens.d.ts +2 -0
  216. package/dist/src/react/css/tokens.d.ts.map +1 -0
  217. package/dist/src/react/gates/AuthWall.d.ts +7 -0
  218. package/dist/src/react/gates/AuthWall.d.ts.map +1 -0
  219. package/dist/src/react/gates/BillingBoundary.d.ts +4 -0
  220. package/dist/src/react/gates/BillingBoundary.d.ts.map +1 -0
  221. package/dist/src/react/gates/Gate.d.ts +9 -0
  222. package/dist/src/react/gates/Gate.d.ts.map +1 -0
  223. package/dist/src/react/gates/RequirePlan.d.ts +4 -0
  224. package/dist/src/react/gates/RequirePlan.d.ts.map +1 -0
  225. package/dist/src/react/gates/RequireUser.d.ts +4 -0
  226. package/dist/src/react/gates/RequireUser.d.ts.map +1 -0
  227. package/dist/src/react/gates/UsageGate.d.ts +4 -0
  228. package/dist/src/react/gates/UsageGate.d.ts.map +1 -0
  229. package/dist/src/react/helpers.d.ts +7 -0
  230. package/dist/src/react/helpers.d.ts.map +1 -0
  231. package/dist/src/react/hooks/use-theme.d.ts +15 -0
  232. package/dist/src/react/hooks/use-theme.d.ts.map +1 -0
  233. package/dist/src/react/hooks/use-user.d.ts +12 -0
  234. package/dist/src/react/hooks/use-user.d.ts.map +1 -0
  235. package/dist/src/react/icons.d.ts +26 -0
  236. package/dist/src/react/icons.d.ts.map +1 -0
  237. package/dist/src/react/index.d.ts +48 -0
  238. package/dist/src/react/index.d.ts.map +1 -0
  239. package/dist/src/react/notifications/NotificationBell.d.ts +7 -0
  240. package/dist/src/react/notifications/NotificationBell.d.ts.map +1 -0
  241. package/dist/src/react/notifications/NotificationList.d.ts +7 -0
  242. package/dist/src/react/notifications/NotificationList.d.ts.map +1 -0
  243. package/dist/src/react/notifications/Toast.d.ts +13 -0
  244. package/dist/src/react/notifications/Toast.d.ts.map +1 -0
  245. package/dist/src/react/notifications/index.d.ts +8 -0
  246. package/dist/src/react/notifications/index.d.ts.map +1 -0
  247. package/dist/src/react/notifications/provider.d.ts +14 -0
  248. package/dist/src/react/notifications/provider.d.ts.map +1 -0
  249. package/dist/src/react/notifications/use-notifications.d.ts +24 -0
  250. package/dist/src/react/notifications/use-notifications.d.ts.map +1 -0
  251. package/dist/src/react/payments/AutoReloadToggle.d.ts +6 -0
  252. package/dist/src/react/payments/AutoReloadToggle.d.ts.map +1 -0
  253. package/dist/src/react/payments/Balance.d.ts +8 -0
  254. package/dist/src/react/payments/Balance.d.ts.map +1 -0
  255. package/dist/src/react/payments/CancelSubscription.d.ts +6 -0
  256. package/dist/src/react/payments/CancelSubscription.d.ts.map +1 -0
  257. package/dist/src/react/payments/CheckoutButton.d.ts +7 -0
  258. package/dist/src/react/payments/CheckoutButton.d.ts.map +1 -0
  259. package/dist/src/react/payments/CustomerPortalButton.d.ts +6 -0
  260. package/dist/src/react/payments/CustomerPortalButton.d.ts.map +1 -0
  261. package/dist/src/react/payments/FeatureMeter.d.ts +6 -0
  262. package/dist/src/react/payments/FeatureMeter.d.ts.map +1 -0
  263. package/dist/src/react/payments/Plans.d.ts +8 -0
  264. package/dist/src/react/payments/Plans.d.ts.map +1 -0
  265. package/dist/src/react/payments/TopUpButton.d.ts +8 -0
  266. package/dist/src/react/payments/TopUpButton.d.ts.map +1 -0
  267. package/dist/src/react/payments/UpdateBilling.d.ts +3 -0
  268. package/dist/src/react/payments/UpdateBilling.d.ts.map +1 -0
  269. package/dist/src/react/payments/UpgradePrompt.d.ts +8 -0
  270. package/dist/src/react/payments/UpgradePrompt.d.ts.map +1 -0
  271. package/dist/src/react/primitives/Skeleton.d.ts +15 -0
  272. package/dist/src/react/primitives/Skeleton.d.ts.map +1 -0
  273. package/dist/src/react/provider.d.ts +21 -0
  274. package/dist/src/react/provider.d.ts.map +1 -0
  275. package/dist/src/react/request.d.ts +2 -0
  276. package/dist/src/react/request.d.ts.map +1 -0
  277. package/dist/src/react/styles-entry.d.ts +4 -0
  278. package/dist/src/react/styles-entry.d.ts.map +1 -0
  279. package/dist/src/react/styles.d.ts +2 -0
  280. package/dist/src/react/styles.d.ts.map +1 -0
  281. package/dist/src/react/theme-entry.d.ts +3 -0
  282. package/dist/src/react/theme-entry.d.ts.map +1 -0
  283. package/dist/src/react/theme.d.ts +6 -0
  284. package/dist/src/react/theme.d.ts.map +1 -0
  285. package/dist/src/react/types.d.ts +191 -0
  286. package/dist/src/react/types.d.ts.map +1 -0
  287. package/dist/src/react/use-brokr-theme.d.ts +6 -0
  288. package/dist/src/react/use-brokr-theme.d.ts.map +1 -0
  289. package/dist/src/runtime.d.ts +69 -180
  290. package/dist/src/runtime.d.ts.map +1 -1
  291. package/dist/src/storage/client.d.ts +113 -0
  292. package/dist/src/storage/client.d.ts.map +1 -0
  293. package/dist/src/storage/types.d.ts +60 -0
  294. package/dist/src/storage/types.d.ts.map +1 -0
  295. package/dist/tsconfig.tsbuildinfo +1 -1
  296. package/dist/types.d.ts +2 -2
  297. package/dist/types.d.ts.map +1 -1
  298. package/package.json +70 -9
@@ -0,0 +1,2 @@
1
+ export declare const NOTIFICATIONS_CSS = "\n/* -------------------------------------------------------------------------\n * Toast Layer \u2014 fixed-position container for auto-fired toasts\n * ------------------------------------------------------------------------- */\n\n.brokr-toast-layer {\n box-sizing: border-box;\n position: fixed;\n z-index: var(--brokr-z-toast);\n display: flex;\n flex-direction: column;\n gap: var(--brokr-space-2);\n padding: var(--brokr-space-4);\n pointer-events: none;\n max-width: 400px;\n width: 100%;\n}\n\n.brokr-toast-layer--bottom-right { bottom: 0; right: 0; align-items: flex-end; }\n.brokr-toast-layer--bottom-left { bottom: 0; left: 0; align-items: flex-start; }\n.brokr-toast-layer--top-right { top: 0; right: 0; align-items: flex-end; }\n.brokr-toast-layer--top-left { top: 0; left: 0; align-items: flex-start; }\n.brokr-toast-layer--top-center { top: 0; left: 50%; transform: translateX(-50%); align-items: center; }\n.brokr-toast-layer--bottom-center { bottom: 0; left: 50%; transform: translateX(-50%); align-items: center; }\n\n/* -------------------------------------------------------------------------\n * Individual Toast\n * ------------------------------------------------------------------------- */\n\n.brokr-toast {\n box-sizing: border-box;\n pointer-events: auto;\n display: flex;\n align-items: flex-start;\n gap: var(--brokr-space-3);\n padding: var(--brokr-space-3) var(--brokr-space-4);\n border-radius: calc(var(--brokr-radius-card) + 2px);\n background: var(--brokr-toast-bg);\n border: 1px solid var(--brokr-toast-border);\n box-shadow: var(--brokr-shadow-md);\n width: 100%;\n max-width: 380px;\n animation: brokr-toast-enter-bottom var(--brokr-duration-slow) ease-out;\n transition: opacity var(--brokr-duration-slow) var(--brokr-ease), transform var(--brokr-duration-slow) var(--brokr-ease);\n}\n\n/* Top positions: slide down from top */\n.brokr-toast-layer--top-right .brokr-toast,\n.brokr-toast-layer--top-left .brokr-toast,\n.brokr-toast-layer--top-center .brokr-toast {\n animation-name: brokr-toast-enter-top;\n}\n\n.brokr-toast-layer--top-right .brokr-toast--exit,\n.brokr-toast-layer--top-left .brokr-toast--exit,\n.brokr-toast-layer--top-center .brokr-toast--exit {\n transform: translateY(-8px);\n}\n\n.brokr-toast--exit {\n opacity: 0;\n transform: translateY(8px);\n pointer-events: none;\n}\n\n@keyframes brokr-toast-enter-bottom {\n from { opacity: 0; transform: translateY(12px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes brokr-toast-enter-top {\n from { opacity: 0; transform: translateY(-12px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n/* Variant dot */\n.brokr-toast-icon {\n flex-shrink: 0;\n width: 8px;\n height: 8px;\n border-radius: var(--brokr-radius-pill);\n margin-top: 5px;\n background: var(--brokr-text-secondary);\n}\n\n.brokr-toast-icon--success { background: var(--brokr-success, #22c55e); }\n.brokr-toast-icon--error { background: var(--brokr-error, #ef4444); }\n.brokr-toast-icon--warning { background: var(--brokr-warning, #f59e0b); }\n.brokr-toast-icon--default { background: var(--brokr-primary); }\n\n.brokr-toast-provider-logo {\n flex-shrink: 0;\n width: 22px;\n height: 22px;\n border-radius: 5px;\n object-fit: contain;\n}\n\n.brokr-toast-content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.brokr-toast-title {\n font-size: var(--brokr-font-size-xs);\n font-weight: var(--brokr-font-weight-semibold);\n color: var(--brokr-toast-text);\n line-height: var(--brokr-leading-snug);\n}\n\n.brokr-toast-message {\n font-size: var(--brokr-font-size-xs);\n color: var(--brokr-toast-text-secondary);\n line-height: var(--brokr-leading-snug);\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.brokr-toast-dismiss {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n border: none;\n background: transparent;\n color: var(--brokr-toast-text-secondary);\n cursor: pointer;\n border-radius: var(--brokr-radius-button);\n padding: 0;\n opacity: 0.5;\n transition: opacity var(--brokr-duration-base) var(--brokr-ease), background var(--brokr-duration-base) var(--brokr-ease);\n}\n\n.brokr-toast-dismiss:hover {\n opacity: 1;\n background: color-mix(in srgb, var(--brokr-toast-text) 8%, transparent);\n}\n\n/* -------------------------------------------------------------------------\n * Notification Bell\n * ------------------------------------------------------------------------- */\n\n.brokr-notif-bell-wrap {\n box-sizing: border-box;\n position: relative;\n display: inline-flex;\n}\n\n.brokr-notif-bell {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n border: none;\n background: transparent;\n color: var(--brokr-text-secondary);\n cursor: pointer;\n border-radius: var(--brokr-radius-button);\n padding: 0;\n position: relative;\n transition: color var(--brokr-duration-base) var(--brokr-ease), background var(--brokr-duration-base) var(--brokr-ease);\n}\n\n.brokr-notif-bell:hover {\n color: var(--brokr-text-primary);\n background: var(--brokr-subtle-fill);\n}\n\n.brokr-notif-badge {\n position: absolute;\n top: 2px;\n right: 2px;\n min-width: 16px;\n height: 16px;\n padding: 0 var(--brokr-space-1);\n border-radius: var(--brokr-radius-pill);\n background: var(--brokr-error, #ef4444);\n color: var(--brokr-primary-contrast);\n font-size: 10px;\n font-weight: var(--brokr-font-weight-bold);\n line-height: 16px;\n text-align: center;\n pointer-events: none;\n}\n\n/* -------------------------------------------------------------------------\n * Notification Dropdown (from bell)\n * ------------------------------------------------------------------------- */\n\n.brokr-notif-dropdown {\n box-sizing: border-box;\n position: absolute;\n top: calc(100% + 6px);\n right: 0;\n width: 360px;\n max-height: 420px;\n background: var(--brokr-surface);\n border: 1px solid var(--brokr-muted-border);\n border-radius: calc(var(--brokr-radius-card) + 4px);\n box-shadow: var(--brokr-shadow-lg);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n z-index: var(--brokr-z-notification);\n animation: brokr-dropdown-enter var(--brokr-duration-base) ease-out;\n}\n\n@keyframes brokr-dropdown-enter {\n from { opacity: 0; transform: translateY(-4px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n.brokr-notif-dropdown-header {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--brokr-space-3) var(--brokr-space-4);\n border-bottom: 1px solid var(--brokr-muted-border);\n}\n\n.brokr-notif-dropdown-title {\n font-size: var(--brokr-font-size-xs);\n font-weight: var(--brokr-font-weight-semibold);\n color: var(--brokr-text-primary);\n}\n\n.brokr-notif-mark-all {\n box-sizing: border-box;\n border: none;\n background: transparent;\n color: var(--brokr-primary);\n font-size: var(--brokr-font-size-xs);\n font-weight: var(--brokr-font-weight-medium);\n cursor: pointer;\n padding: 2px 6px;\n border-radius: var(--brokr-radius-sm);\n transition: background var(--brokr-duration-base) var(--brokr-ease);\n}\n\n.brokr-notif-mark-all:hover {\n background: color-mix(in srgb, var(--brokr-primary) 10%, transparent);\n}\n\n.brokr-notif-dropdown-list {\n box-sizing: border-box;\n flex: 1;\n overflow-y: auto;\n scrollbar-width: thin;\n scrollbar-color: color-mix(in srgb, var(--brokr-text-primary) 12%, transparent) transparent;\n}\n\n/* -------------------------------------------------------------------------\n * Notification Item (shared between dropdown and full list)\n * ------------------------------------------------------------------------- */\n\n.brokr-notif-item,\n.brokr-notif-list-row {\n box-sizing: border-box;\n display: flex;\n align-items: flex-start;\n gap: var(--brokr-space-3);\n padding: var(--brokr-space-3) var(--brokr-space-4);\n border: none;\n background: transparent;\n cursor: pointer;\n text-align: left;\n width: 100%;\n transition: background var(--brokr-duration-base) var(--brokr-ease);\n border-bottom: 1px solid color-mix(in srgb, var(--brokr-border) 50%, transparent);\n}\n\n.brokr-notif-item:hover,\n.brokr-notif-list-row:hover {\n background: color-mix(in srgb, var(--brokr-text-primary) 4%, transparent);\n}\n\n.brokr-notif-item--unread,\n.brokr-notif-list-row--unread {\n background: color-mix(in srgb, var(--brokr-primary) 4%, transparent);\n}\n\n.brokr-notif-item-dot {\n flex-shrink: 0;\n width: 8px;\n height: 8px;\n border-radius: var(--brokr-radius-pill);\n margin-top: 4px;\n background: var(--brokr-text-secondary);\n}\n\n.brokr-notif-item-dot--success { background: var(--brokr-success, #22c55e); }\n.brokr-notif-item-dot--error { background: var(--brokr-error, #ef4444); }\n.brokr-notif-item-dot--warning { background: var(--brokr-warning, #f59e0b); }\n.brokr-notif-item-dot--default { background: var(--brokr-primary); }\n\n.brokr-notif-item-logo {\n flex-shrink: 0;\n width: 22px;\n height: 22px;\n border-radius: 5px;\n object-fit: contain;\n margin-top: 1px;\n}\n\n.brokr-notif-item-body {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.brokr-notif-item-title {\n font-size: var(--brokr-font-size-xs);\n font-weight: var(--brokr-font-weight-semibold);\n color: var(--brokr-text-primary);\n line-height: var(--brokr-leading-snug);\n}\n\n.brokr-notif-item-message {\n font-size: var(--brokr-font-size-xs);\n color: var(--brokr-text-secondary);\n line-height: var(--brokr-leading-snug);\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.brokr-notif-item-time {\n flex-shrink: 0;\n font-size: 11px;\n color: var(--brokr-text-secondary);\n opacity: 0.6;\n margin-top: 2px;\n white-space: nowrap;\n}\n\n/* -------------------------------------------------------------------------\n * Empty State\n * ------------------------------------------------------------------------- */\n\n.brokr-notif-empty {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--brokr-space-2);\n padding: var(--brokr-space-10) var(--brokr-space-4);\n}\n\n.brokr-notif-empty-text {\n font-size: var(--brokr-font-size-xs);\n color: var(--brokr-text-secondary);\n opacity: 0.6;\n}\n\n/* -------------------------------------------------------------------------\n * Full-page Notification List\n * ------------------------------------------------------------------------- */\n\n.brokr-notif-list {\n box-sizing: border-box;\n width: 100%;\n max-width: 640px;\n display: flex;\n flex-direction: column;\n border: 1px solid var(--brokr-muted-border);\n border-radius: calc(var(--brokr-radius-card) + 4px);\n background: var(--brokr-surface);\n overflow: hidden;\n}\n\n.brokr-notif-list-header {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--brokr-space-4) var(--brokr-space-5);\n border-bottom: 1px solid var(--brokr-muted-border);\n}\n\n.brokr-notif-list-title {\n font-size: var(--brokr-font-size-md);\n font-weight: var(--brokr-font-weight-semibold);\n color: var(--brokr-text-primary);\n}\n\n.brokr-notif-list-items {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n}\n";
2
+ //# sourceMappingURL=notifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../../../src/react/css/notifications.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,w2WAoZ7B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const PRIMITIVES_CSS = "\n.brokr-card {\n background: var(--brokr-surface);\n border: 1px solid var(--brokr-muted-border);\n border-radius: var(--brokr-radius-card);\n box-shadow: var(--brokr-shadow-sm);\n}\n\n.brokr-panel {\n background: color-mix(in srgb, var(--brokr-surface) 96%, var(--brokr-bg));\n border: 1px solid var(--brokr-muted-border);\n border-radius: calc(var(--brokr-radius-card) + 2px);\n box-shadow: var(--brokr-shadow-md);\n}\n\n.brokr-button,\n.brokr-button-secondary,\n.brokr-button-ghost {\n appearance: none;\n border: 1px solid transparent;\n border-radius: var(--brokr-radius-button);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--brokr-space-2);\n font: inherit;\n font-size: var(--brokr-font-size-sm);\n font-weight: 600;\n min-height: 44px;\n padding: 0 var(--brokr-space-4);\n text-decoration: none;\n transition: background-color 150ms ease, border-color 150ms ease, transform 150ms ease, opacity 150ms ease;\n}\n\n.brokr-button:hover,\n.brokr-button-secondary:hover,\n.brokr-button-ghost:hover {\n transform: translateY(-1px);\n}\n\n.brokr-button:disabled,\n.brokr-button-secondary:disabled,\n.brokr-button-ghost:disabled {\n cursor: wait;\n opacity: 0.65;\n transform: none;\n}\n\n.brokr-button {\n background: var(--brokr-primary);\n color: var(--brokr-primary-contrast);\n}\n\n.brokr-button-secondary {\n background: var(--brokr-subtle-fill);\n border-color: var(--brokr-muted-border);\n color: var(--brokr-text-primary);\n}\n\n.brokr-button-ghost {\n background: transparent;\n border-color: var(--brokr-muted-border);\n color: var(--brokr-text-secondary);\n}\n\n.brokr-input,\n.brokr-textarea,\n.brokr-select {\n appearance: none;\n width: 100%;\n border: 1px solid var(--brokr-muted-border);\n background: color-mix(in srgb, var(--brokr-surfaceMuted, var(--brokr-surface)) 75%, var(--brokr-bg));\n color: var(--brokr-text-primary);\n border-radius: var(--brokr-radius-input);\n font: inherit;\n font-size: var(--brokr-font-size-sm);\n min-height: 44px;\n padding: 0.825rem 0.95rem;\n transition: border-color 150ms ease, background-color 150ms ease;\n}\n\n.brokr-input::placeholder,\n.brokr-textarea::placeholder {\n color: var(--brokr-text-secondary);\n}\n\n.brokr-input:focus,\n.brokr-textarea:focus,\n.brokr-select:focus,\n.brokr-button:focus-visible,\n.brokr-button-secondary:focus-visible,\n.brokr-button-ghost:focus-visible,\n.brokr-action:focus-visible {\n outline: 2px solid color-mix(in srgb, var(--brokr-primary) 60%, transparent);\n outline-offset: 2px;\n}\n\n.brokr-textarea {\n min-height: 120px;\n padding-top: 0.95rem;\n resize: vertical;\n}\n\n.brokr-label {\n color: var(--brokr-text-secondary);\n display: block;\n font-size: var(--brokr-font-size-xs);\n font-weight: 600;\n letter-spacing: 0.02em;\n margin-bottom: var(--brokr-space-2);\n text-transform: uppercase;\n}\n\n.brokr-title {\n color: var(--brokr-text-primary);\n font-size: var(--brokr-font-size-xl);\n font-weight: 700;\n letter-spacing: -0.03em;\n margin: 0;\n}\n\n.brokr-heading {\n color: var(--brokr-text-primary);\n font-size: var(--brokr-font-size-2xl);\n font-weight: 700;\n letter-spacing: -0.04em;\n line-height: 1;\n margin: 0;\n}\n\n.brokr-copy,\n.brokr-muted {\n color: var(--brokr-text-secondary);\n font-size: var(--brokr-font-size-sm);\n line-height: 1.6;\n}\n\n.brokr-section {\n display: grid;\n gap: var(--brokr-space-6);\n}\n\n.brokr-divider {\n border: 0;\n border-top: 1px solid var(--brokr-muted-border);\n margin: 0;\n}\n\n.brokr-badge {\n align-items: center;\n border: 1px solid var(--brokr-muted-border);\n border-radius: 999px;\n color: var(--brokr-text-secondary);\n display: inline-flex;\n font-size: var(--brokr-font-size-xs);\n font-weight: 700;\n gap: var(--brokr-space-1);\n letter-spacing: 0.06em;\n min-height: 28px;\n padding: 0 0.7rem;\n text-transform: uppercase;\n}\n\n.brokr-badge-sandbox {\n background: color-mix(in srgb, var(--brokr-primary) 10%, transparent);\n color: var(--brokr-text-primary);\n}\n\n.brokr-inline-message {\n border: 1px solid var(--brokr-muted-border);\n border-radius: calc(var(--brokr-radius-card) - 2px);\n color: var(--brokr-text-secondary);\n font-size: var(--brokr-font-size-sm);\n padding: var(--brokr-space-3) var(--brokr-space-4);\n}\n\n.brokr-inline-message[data-tone=\"error\"] {\n border-color: color-mix(in srgb, var(--brokr-error, var(--brokr-primary)) 30%, var(--brokr-border));\n color: var(--brokr-text-primary);\n}\n\n.brokr-grid-auto {\n display: grid;\n gap: var(--brokr-space-4);\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n}\n";
2
+ //# sourceMappingURL=primitives.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../../src/react/css/primitives.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,slJA2L1B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const RESET_CSS = "\n.brokr-root,\n.brokr-root > * {\n box-sizing: border-box;\n scrollbar-color: color-mix(in srgb, var(--brokr-text-primary) 18%, transparent) transparent;\n scrollbar-width: thin;\n}\n\n.brokr-root *::-webkit-scrollbar {\n height: 10px;\n width: 10px;\n}\n\n.brokr-root *::-webkit-scrollbar-thumb {\n background: color-mix(in srgb, var(--brokr-text-primary) 16%, transparent);\n border: 3px solid transparent;\n border-radius: 999px;\n background-clip: padding-box;\n}\n\n.brokr-root *::-webkit-scrollbar-track {\n background: transparent;\n}\n";
2
+ //# sourceMappingURL=reset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../../src/react/css/reset.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,+iBAuBrB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const RESPONSIVE_CSS = "\n@media (min-width: 768px) {\n .brokr-account-panel {\n grid-template-columns: 214px minmax(0, 1fr);\n }\n}\n\n@media (max-width: 767px) {\n .brokr-account-panel {\n grid-template-columns: 1fr;\n }\n\n .brokr-account-sidebar {\n border-bottom: 1px solid var(--brokr-muted-border);\n border-right: none;\n gap: var(--brokr-space-3);\n }\n\n .brokr-account-tab-list {\n display: flex;\n flex-wrap: wrap;\n }\n\n .brokr-account-photo-row,\n .brokr-account-field-row {\n grid-template-columns: 1fr;\n }\n\n .brokr-account-field-body,\n .brokr-account-actions-row {\n justify-items: stretch;\n justify-content: stretch;\n width: 100%;\n }\n\n .brokr-account-static-value,\n .brokr-account-summary-row {\n align-items: flex-start;\n flex-direction: column;\n }\n}\n\n@media (max-width: 980px) {\n .brokr-auth-shell[data-variant=\"1\"] {\n grid-template-columns: 1fr;\n }\n\n .brokr-auth-shell[data-variant=\"1\"] .brokr-auth-hero {\n display: none;\n }\n\n .brokr-auth-form-pane {\n min-height: 100vh;\n padding: var(--brokr-space-4) var(--brokr-space-4) var(--brokr-space-8);\n }\n}\n\n@media (max-width: 640px) {\n .brokr-auth-card,\n .brokr-panel,\n .brokr-card {\n box-shadow: var(--brokr-shadow-sm);\n }\n\n .brokr-auth-card {\n padding: var(--brokr-space-5);\n }\n\n .brokr-chat-fab {\n bottom: var(--brokr-space-4);\n right: var(--brokr-space-4);\n }\n\n .brokr-ai-chat-shell {\n grid-template-columns: minmax(0, 1fr);\n }\n\n .brokr-ai-chat-sidebar {\n display: none;\n }\n\n .brokr-ai-chat-model-select,\n .brokr-ai-chat-sidebar-button {\n width: 100%;\n }\n\n .brokr-ai-chat-starters {\n grid-template-columns: 1fr;\n }\n\n .brokr-ai-chat-message-bubble,\n .brokr-ai-chat-message-content {\n max-width: 100%;\n width: min(100%, 100%);\n }\n\n .brokr-chat-panel {\n bottom: 0;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n left: 0;\n max-height: 100dvh;\n min-height: 100dvh;\n min-width: 100vw;\n right: 0;\n top: auto;\n width: 100vw;\n }\n\n .brokr-popover {\n left: 50%;\n right: auto;\n transform: translateX(-50%);\n width: min(94vw, 380px);\n }\n\n .brokr-feedback-rating {\n grid-template-columns: 1fr;\n }\n}\n\n/* ============================================================\n Responsive \u2014 Mobile overrides for drawer\n ============================================================ */\n\n@media (max-width: 640px) {\n .brokr-ai-chat-sidebar-desktop {\n display: none;\n }\n\n .brokr-ai-chat-shell[data-sidebar=\"true\"] {\n grid-template-columns: minmax(0, 1fr);\n }\n\n .brokr-ai-chat-hamburger {\n display: inline-flex;\n }\n}\n";
2
+ //# sourceMappingURL=responsive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responsive.d.ts","sourceRoot":"","sources":["../../../../src/react/css/responsive.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,gtFA0I1B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const SKELETON_CSS = "\n.brokr-skeleton {\n animation: brokrPulse 1.4s ease-in-out infinite;\n background: linear-gradient(\n 90deg,\n color-mix(in srgb, var(--brokr-text-primary) 5%, transparent) 0%,\n color-mix(in srgb, var(--brokr-text-primary) 10%, transparent) 50%,\n color-mix(in srgb, var(--brokr-text-primary) 5%, transparent) 100%\n );\n background-size: 200% 100%;\n border-radius: 999px;\n min-height: 16px;\n}\n";
2
+ //# sourceMappingURL=skeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../../src/react/css/skeleton.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,waAaxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const TOKENS_CSS = "\n.brokr-root {\n --brokr-space-1: 0.25rem;\n --brokr-space-2: 0.5rem;\n --brokr-space-3: 0.75rem;\n --brokr-space-4: 1rem;\n --brokr-space-5: 1.25rem;\n --brokr-space-6: 1.5rem;\n --brokr-space-8: 2rem;\n --brokr-space-10: 2.5rem;\n --brokr-space-12: 3rem;\n --brokr-shadow-sm: 0 1px 2px color-mix(in srgb, var(--brokr-text-primary) 1.5%, transparent);\n --brokr-shadow-md: 0 4px 12px color-mix(in srgb, var(--brokr-text-primary) 2.5%, transparent);\n --brokr-shadow-lg: 0 8px 20px color-mix(in srgb, var(--brokr-text-primary) 3%, transparent);\n --brokr-muted-border: color-mix(in srgb, var(--brokr-border) 65%, transparent);\n --brokr-soft-surface: color-mix(in srgb, var(--brokr-surface) 92%, var(--brokr-bg));\n --brokr-subtle-fill: color-mix(in srgb, var(--brokr-text-primary) 6%, transparent);\n --brokr-subtle-fill-strong: color-mix(in srgb, var(--brokr-text-primary) 10%, transparent);\n --brokr-font-size-xs: 0.75rem;\n --brokr-font-size-sm: 0.875rem;\n --brokr-font-size-md: 1rem;\n --brokr-font-size-lg: 1.125rem;\n --brokr-font-size-xl: 1.5rem;\n --brokr-font-size-2xl: clamp(2rem, 4vw, 3.5rem);\n\n /* Z-index stacking order */\n --brokr-z-chat-float: 4;\n --brokr-z-drawer-backdrop: 49;\n --brokr-z-drawer: 50;\n --brokr-z-popover: 60;\n --brokr-z-fab: 70;\n --brokr-z-panel: 80;\n --brokr-z-modal-backdrop: 90;\n --brokr-z-dropdown: 95;\n --brokr-z-notification: 9999;\n --brokr-z-toast: 99999;\n\n /* Transition durations */\n --brokr-duration-fast: 100ms;\n --brokr-duration-base: 150ms;\n --brokr-duration-slow: 300ms;\n --brokr-ease: ease;\n\n /* Font weights */\n --brokr-font-weight-normal: 400;\n --brokr-font-weight-medium: 500;\n --brokr-font-weight-semibold: 600;\n --brokr-font-weight-bold: 700;\n\n /* Line heights */\n --brokr-leading-tight: 1.25;\n --brokr-leading-snug: 1.4;\n --brokr-leading-normal: 1.6;\n --brokr-leading-relaxed: 1.7;\n\n /* Font families */\n --brokr-font-mono: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, monospace;\n\n /* Additional radii */\n --brokr-radius-pill: 999px;\n --brokr-radius-sm: 4px;\n\n color: var(--brokr-text-primary);\n}\n";
2
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../src/react/css/tokens.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,goEAgEtB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ interface AuthWallProps {
3
+ children: React.ReactNode;
4
+ }
5
+ export declare function AuthWall({ children }: AuthWallProps): React.JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=AuthWall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthWall.d.ts","sourceRoot":"","sources":["../../../../src/react/gates/AuthWall.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,aAAa;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,aAAa,qBAmBnD"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { GateProps } from '../types';
3
+ export declare function BillingBoundary({ children, fallback, message, redirectTo, }: GateProps): React.JSX.Element;
4
+ //# sourceMappingURL=BillingBoundary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BillingBoundary.d.ts","sourceRoot":"","sources":["../../../../src/react/gates/BillingBoundary.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAI1C,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,QAAmB,EACnB,OAAO,EACP,UAAU,GACX,EAAE,SAAS,qBAsBX"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { GateProps } from '../types';
3
+ interface GateComponentProps extends GateProps {
4
+ allowed: boolean;
5
+ fallbackContent?: React.ReactNode;
6
+ }
7
+ export declare function Gate({ allowed, children, fallback, fallbackContent, message, redirectTo, }: GateComponentProps): React.JSX.Element | null;
8
+ export {};
9
+ //# sourceMappingURL=Gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Gate.d.ts","sourceRoot":"","sources":["../../../../src/react/gates/Gate.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,UAAU,CAAC;AAExD,UAAU,kBAAmB,SAAQ,SAAS;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACnC;AAMD,wBAAgB,IAAI,CAAC,EACnB,OAAO,EACP,QAAQ,EACR,QAAmB,EACnB,eAAe,EACf,OAAO,EACP,UAAU,GACX,EAAE,kBAAkB,4BA6BpB"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { RequirePlanProps } from '../types';
3
+ export declare function RequirePlan({ children, fallback, message, plans, redirectTo, }: RequirePlanProps): React.JSX.Element;
4
+ //# sourceMappingURL=RequirePlan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequirePlan.d.ts","sourceRoot":"","sources":["../../../../src/react/gates/RequirePlan.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAIjD,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,QAAmB,EACnB,OAAO,EACP,KAAK,EACL,UAAU,GACX,EAAE,gBAAgB,qBAgClB"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { GateProps } from '../types';
3
+ export declare function RequireUser(props: GateProps): React.JSX.Element;
4
+ //# sourceMappingURL=RequireUser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequireUser.d.ts","sourceRoot":"","sources":["../../../../src/react/gates/RequireUser.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,qBAG3C"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { UsageGateProps } from '../types';
3
+ export declare function UsageGate({ children, fallback, feature, message, min, redirectTo, }: UsageGateProps): React.JSX.Element;
4
+ //# sourceMappingURL=UsageGate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UsageGate.d.ts","sourceRoot":"","sources":["../../../../src/react/gates/UsageGate.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,QAAmB,EACnB,OAAO,EACP,OAAO,EACP,GAAO,EACP,UAAU,GACX,EAAE,cAAc,qBAgChB"}
@@ -0,0 +1,7 @@
1
+ export declare function getInitials(name?: string, email?: string): string;
2
+ export declare function formatCurrency(amountCents: number | null, currency?: string): string;
3
+ export declare function formatDate(value: Date): string;
4
+ export declare function featureLabel(key: string): string;
5
+ export declare function featureValueLabel(value: boolean | number | 'unlimited'): string;
6
+ export declare function redirectTo(url: string): void;
7
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/react/helpers.ts"],"names":[],"mappings":"AAGA,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CASjE;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,SAAQ,GAAG,MAAM,CAMnF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,CAM9C;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAWhD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAK/E;AAOD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAmB5C"}
@@ -0,0 +1,15 @@
1
+ import type { BrokrThemeColors, BrokrThemeRadii } from '../types';
2
+ export interface UseThemeReturn {
3
+ brand: {
4
+ name: string;
5
+ logo?: string;
6
+ };
7
+ colors: BrokrThemeColors;
8
+ radii: BrokrThemeRadii;
9
+ mode: 'light' | 'dark';
10
+ }
11
+ /**
12
+ * Convenience hook — returns a flat theme shape from BrokrProvider context.
13
+ */
14
+ export declare function useTheme(): UseThemeReturn;
15
+ //# sourceMappingURL=use-theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-theme.d.ts","sourceRoot":"","sources":["../../../../src/react/hooks/use-theme.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,cAAc,CAQzC"}
@@ -0,0 +1,12 @@
1
+ import type { BrokrUser } from '../types';
2
+ /**
3
+ * Convenience hook — returns user state from BrokrProvider context.
4
+ *
5
+ * `isLoaded` is false during the initial session fetch.
6
+ * Once loaded, `user` is either the authenticated user or null (signed out).
7
+ */
8
+ export declare function useUser(): {
9
+ user: BrokrUser | null;
10
+ isLoaded: boolean;
11
+ };
12
+ //# sourceMappingURL=use-user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-user.d.ts","sourceRoot":"","sources":["../../../../src/react/hooks/use-user.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C;;;;;GAKG;AACH,wBAAgB,OAAO,IAAI;IAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAGvE"}
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ interface IconProps {
3
+ size?: number;
4
+ }
5
+ export declare function CheckIcon({ size }: IconProps): React.JSX.Element;
6
+ export declare function UserIcon({ size }: IconProps): React.JSX.Element;
7
+ export declare function ChevronDownIcon({ size }: IconProps): React.JSX.Element;
8
+ export declare function UploadIcon({ size }: IconProps): React.JSX.Element;
9
+ export declare function CreditCardIcon({ size }: IconProps): React.JSX.Element;
10
+ export declare function BadgeIcon({ size }: IconProps): React.JSX.Element;
11
+ export declare function MessageIcon({ size }: IconProps): React.JSX.Element;
12
+ export declare function CloseIcon({ size }: IconProps): React.JSX.Element;
13
+ export declare function ArrowRightIcon({ size }: IconProps): React.JSX.Element;
14
+ export declare function SparkIcon({ size }: IconProps): React.JSX.Element;
15
+ export declare function GoogleIcon({ size }: IconProps): React.JSX.Element;
16
+ export declare function CopyIcon({ size }: IconProps): React.JSX.Element;
17
+ export declare function TrashIcon({ size }: IconProps): React.JSX.Element;
18
+ export declare function MoreHorizontalIcon({ size }: IconProps): React.JSX.Element;
19
+ export declare function LockIcon({ size }: IconProps): React.JSX.Element;
20
+ export declare function SettingsIcon({ size }: IconProps): React.JSX.Element;
21
+ export declare function LogoutIcon({ size }: IconProps): React.JSX.Element;
22
+ export declare function MenuIcon({ size }: IconProps): React.JSX.Element;
23
+ export declare function PencilIcon({ size }: IconProps): React.JSX.Element;
24
+ export declare function GitHubIcon({ size }: IconProps): React.JSX.Element;
25
+ export {};
26
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/react/icons.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAoBD,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,qBAE5C;AAED,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,qBAQ3C;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,qBAElD;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,qBAS7C;AAED,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,qBAQjD;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,qBAQ5C;AAED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,qBAO9C;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,qBAQ5C;AAED,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,qBAQjD;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,qBAQ5C;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,qBAU7C;AAED,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,qBAQ3C;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,qBAW5C;AAED,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,qBASrD;AAED,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,qBAQ3C;AAED,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,qBAQ/C;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,qBAS7C;AAED,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,qBAS3C;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,qBAO7C;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,qBAO7C"}
@@ -0,0 +1,48 @@
1
+ export { BrokrProvider } from './provider';
2
+ export { useBrokr } from './context';
3
+ export { useBrokrTheme } from './use-brokr-theme';
4
+ export { AuthPageShell } from './auth-pages/AuthPageShell';
5
+ export { SignInPage } from './auth-pages/SignInPage';
6
+ export { SignUpPage } from './auth-pages/SignUpPage';
7
+ export { Avatar } from './account/Avatar';
8
+ export { ProfilePhotoButton } from './account/ProfilePhotoButton';
9
+ export { AccountPanel } from './account/AccountPanel';
10
+ export { UserButton } from './account/UserButton';
11
+ export { Gate } from './gates/Gate';
12
+ export { RequireUser } from './gates/RequireUser';
13
+ export { RequirePlan } from './gates/RequirePlan';
14
+ export { UsageGate } from './gates/UsageGate';
15
+ export { BillingBoundary } from './gates/BillingBoundary';
16
+ export { AuthWall } from './gates/AuthWall';
17
+ export { Plans } from './payments/Plans';
18
+ export { CheckoutButton } from './payments/CheckoutButton';
19
+ export { CustomerPortalButton } from './payments/CustomerPortalButton';
20
+ export { FeatureMeter } from './payments/FeatureMeter';
21
+ export { UpgradePrompt } from './payments/UpgradePrompt';
22
+ export { Balance } from './payments/Balance';
23
+ export { TopUpButton } from './payments/TopUpButton';
24
+ export { AutoReloadToggle } from './payments/AutoReloadToggle';
25
+ export { UpdateBilling } from './payments/UpdateBilling';
26
+ export { CancelSubscription } from './payments/CancelSubscription';
27
+ export { AIChat } from './chat/AIChat';
28
+ export type { AIChatProps, Thread, AIChatMessage, AIChatCommand, AIChatContext } from './chat/types';
29
+ export { useChat } from './chat/useChat';
30
+ export type { UseChatConfig, UseChatReturn } from './chat/useChat';
31
+ export { FabAI } from './composites/FabAI';
32
+ export { SmartUpload } from './composites/SmartUpload';
33
+ export { FeedbackWidget } from './composites/FeedbackWidget';
34
+ export { Skeleton } from './primitives/Skeleton';
35
+ export { BrokrErrorBoundary } from './BrokrErrorBoundary';
36
+ export { NotificationBell } from './notifications/NotificationBell';
37
+ export { NotificationList } from './notifications/NotificationList';
38
+ export { useNotifications } from './notifications/use-notifications';
39
+ export { useUser } from './hooks/use-user';
40
+ export { useTheme } from './hooks/use-theme';
41
+ export { defineChat } from '../chat/config';
42
+ export type { ChatConfig } from '../chat/config';
43
+ export { defineAccount } from '../account/config';
44
+ export type { AccountConfig } from '../account/config';
45
+ export type { UseThemeReturn } from './hooks/use-theme';
46
+ export type { BrokrContextValue, BrokrSession, BrokrThemeColors, BrokrThemeDef, BrokrThemeMode, BrokrThemeRadii, BrokrThemeResolved, BrokrUser, GateFallback, GateProps, RequirePlanProps, SignInParams, SignUpParams, UsageGateProps, } from './types';
47
+ export type { BillingSummary, EntitlementMap, PlanCatalogEntry, UserPlan, } from '../payments/types';
48
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACrG,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EACV,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,cAAc,GACf,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,QAAQ,GACT,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ /**
3
+ * Bell icon with unread badge. Opens a dropdown with notification history.
4
+ * Place in your app's nav. Reads from `useNotifications()` context.
5
+ */
6
+ export declare function NotificationBell(): React.JSX.Element;
7
+ //# sourceMappingURL=NotificationBell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotificationBell.d.ts","sourceRoot":"","sources":["../../../../src/react/notifications/NotificationBell.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAmDjF;;;GAGG;AACH,wBAAgB,gBAAgB,sBAiI/B"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ /**
3
+ * Full-page notification list. Use for a dedicated notification center page
4
+ * or settings panel. Same data source as NotificationBell.
5
+ */
6
+ export declare function NotificationList(): React.JSX.Element;
7
+ //# sourceMappingURL=NotificationList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotificationList.d.ts","sourceRoot":"","sources":["../../../../src/react/notifications/NotificationList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAqEpD;;;GAGG;AACH,wBAAgB,gBAAgB,sBA4D/B"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import type { Notification } from '../../notifications/types';
3
+ import type { NotificationsConfig } from '../../notifications/config';
4
+ import type { NotificationTypeRegistry } from '../../notifications/registry';
5
+ interface ToastLayerProps {
6
+ toasts: Notification[];
7
+ config: NotificationsConfig;
8
+ registry: NotificationTypeRegistry;
9
+ onDismiss: (id: string) => void;
10
+ }
11
+ export declare function ToastLayer({ toasts, config, registry, onDismiss }: ToastLayerProps): React.JSX.Element | null;
12
+ export {};
13
+ //# sourceMappingURL=Toast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../../src/react/notifications/Toast.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAG7E,UAAU,eAAe;IACvB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,wBAAwB,CAAC;IACnC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAwDD,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,eAAe,4BAqGlF"}
@@ -0,0 +1,8 @@
1
+ export { NotificationBell } from './NotificationBell';
2
+ export { NotificationList } from './NotificationList';
3
+ export { useNotifications } from './use-notifications';
4
+ export type { UseNotificationsReturn } from './use-notifications';
5
+ export type { Notification } from '../../notifications/types';
6
+ export { defineNotifications } from '../../notifications/config';
7
+ export type { NotificationsConfig } from '../../notifications/config';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/react/notifications/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import type { NotificationsConfig } from '../../notifications/config';
3
+ import type { UseNotificationsReturn } from './use-notifications';
4
+ export declare const NotificationsContext: React.Context<UseNotificationsReturn | null>;
5
+ interface NotificationsProviderProps {
6
+ children: React.ReactNode;
7
+ config: NotificationsConfig | true;
8
+ token: string | null;
9
+ userId: string | null;
10
+ gatewayUrl?: string;
11
+ }
12
+ export declare function NotificationsProvider({ children, config, token, userId, gatewayUrl, }: NotificationsProviderProps): React.JSX.Element;
13
+ export {};
14
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/react/notifications/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAON,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAItE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAGlE,eAAO,MAAM,oBAAoB,8CAAqD,CAAC;AAevF,UAAU,0BAA0B;IAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACnC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,MAAM,EACN,KAAK,EACL,MAAM,EACN,UAAmC,GACpC,EAAE,0BAA0B,qBA6V5B"}
@@ -0,0 +1,24 @@
1
+ import type { Notification } from '../../notifications/types';
2
+ import type { NotificationTypeRegistry } from '../../notifications/registry';
3
+ export interface UseNotificationsReturn {
4
+ notifications: Notification[];
5
+ unreadCount: number;
6
+ markRead: (id: string) => void;
7
+ markAllRead: () => void;
8
+ connected: boolean;
9
+ /** True while the initial DB fetch is in-flight. */
10
+ isLoading: boolean;
11
+ /** Resolved notification type registry — built-ins merged with consumer types. */
12
+ registry: NotificationTypeRegistry;
13
+ /** Register a thread ID as currently being viewed — suppresses toasts for that thread. */
14
+ registerViewingThread: (threadId: string) => void;
15
+ /** Unregister a thread ID when the user navigates away. */
16
+ unregisterViewingThread: (threadId: string) => void;
17
+ }
18
+ /**
19
+ * Access the notification state managed by BrokrProvider.
20
+ *
21
+ * Throws if `notifications` was not enabled on `<BrokrProvider>`.
22
+ */
23
+ export declare function useNotifications(): UseNotificationsReturn;
24
+ //# sourceMappingURL=use-notifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-notifications.d.ts","sourceRoot":"","sources":["../../../../src/react/notifications/use-notifications.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAE7E,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,QAAQ,EAAE,wBAAwB,CAAC;IACnC,0FAA0F;IAC1F,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,2DAA2D;IAC3D,uBAAuB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,sBAAsB,CASzD"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export interface AutoReloadToggleProps {
3
+ onChange?: (enabled: boolean) => Promise<void> | void;
4
+ }
5
+ export declare function AutoReloadToggle({ onChange }: AutoReloadToggleProps): React.JSX.Element;
6
+ //# sourceMappingURL=AutoReloadToggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutoReloadToggle.d.ts","sourceRoot":"","sources":["../../../../src/react/payments/AutoReloadToggle.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAG9D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACvD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE,qBAAqB,qBAqCnE"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ export interface BalanceProps {
3
+ onTopUp?: (amountCents: number) => Promise<void> | void;
4
+ showTopUp?: boolean;
5
+ topUpAmountCents?: number;
6
+ }
7
+ export declare function Balance({ onTopUp, showTopUp, topUpAmountCents, }: BalanceProps): React.JSX.Element;
8
+ //# sourceMappingURL=Balance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Balance.d.ts","sourceRoot":"","sources":["../../../../src/react/payments/Balance.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAKvC,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,OAAO,CAAC,EACtB,OAAO,EACP,SAAgB,EAChB,gBAAuB,GACxB,EAAE,YAAY,qBAgBd"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export interface CancelSubscriptionProps {
3
+ onCancel?: () => Promise<void> | void;
4
+ }
5
+ export declare function CancelSubscription({ onCancel }: CancelSubscriptionProps): React.JSX.Element;
6
+ //# sourceMappingURL=CancelSubscription.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CancelSubscription.d.ts","sourceRoot":"","sources":["../../../../src/react/payments/CancelSubscription.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAIrD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACvC;AAED,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE,uBAAuB,qBAiDvE"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ export interface CheckoutButtonProps {
3
+ children?: React.ReactNode;
4
+ plan: string;
5
+ }
6
+ export declare function CheckoutButton({ children, plan, }: CheckoutButtonProps): React.JSX.Element;
7
+ //# sourceMappingURL=CheckoutButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckoutButton.d.ts","sourceRoot":"","sources":["../../../../src/react/payments/CheckoutButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAIrD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,IAAI,GACL,EAAE,mBAAmB,qBA6BrB"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export interface CustomerPortalButtonProps {
3
+ children?: React.ReactNode;
4
+ }
5
+ export declare function CustomerPortalButton({ children, }: CustomerPortalButtonProps): React.JSX.Element;
6
+ //# sourceMappingURL=CustomerPortalButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomerPortalButton.d.ts","sourceRoot":"","sources":["../../../../src/react/payments/CustomerPortalButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAIrD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,GACT,EAAE,yBAAyB,qBA0B3B"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export interface FeatureMeterProps {
3
+ feature: string;
4
+ }
5
+ export declare function FeatureMeter({ feature }: FeatureMeterProps): React.JSX.Element;
6
+ //# sourceMappingURL=FeatureMeter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeatureMeter.d.ts","sourceRoot":"","sources":["../../../../src/react/payments/FeatureMeter.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAIvC,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,iBAAiB,qBA6B1D"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ export interface PlansProps {
3
+ columns?: number;
4
+ highlight?: string;
5
+ onSelect?: (planSlug: string) => void | Promise<void>;
6
+ }
7
+ export declare function Plans({ columns, highlight, onSelect, }: PlansProps): React.JSX.Element;
8
+ //# sourceMappingURL=Plans.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plans.d.ts","sourceRoot":"","sources":["../../../../src/react/payments/Plans.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAwE9D,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAED,wBAAgB,KAAK,CAAC,EACpB,OAAO,EACP,SAAS,EACT,QAAQ,GACT,EAAE,UAAU,qBAiDZ"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ export interface TopUpButtonProps {
3
+ amountCents?: number;
4
+ children?: React.ReactNode;
5
+ onTopUp?: (amountCents: number) => Promise<void> | void;
6
+ }
7
+ export declare function TopUpButton({ amountCents, children, onTopUp, }: TopUpButtonProps): React.JSX.Element;
8
+ //# sourceMappingURL=TopUpButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TopUpButton.d.ts","sourceRoot":"","sources":["../../../../src/react/payments/TopUpButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAUrD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACzD;AAED,wBAAgB,WAAW,CAAC,EAC1B,WAAkB,EAClB,QAAQ,EACR,OAAO,GACR,EAAE,gBAAgB,qBAiDlB"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare function UpdateBilling(): React.JSX.Element;
3
+ //# sourceMappingURL=UpdateBilling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateBilling.d.ts","sourceRoot":"","sources":["../../../../src/react/payments/UpdateBilling.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,wBAAgB,aAAa,sBAE5B"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ export interface UpgradePromptProps {
3
+ children?: React.ReactNode;
4
+ feature: string;
5
+ threshold?: number;
6
+ }
7
+ export declare function UpgradePrompt({ children, feature, threshold, }: UpgradePromptProps): React.JSX.Element | null;
8
+ //# sourceMappingURL=UpgradePrompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpgradePrompt.d.ts","sourceRoot":"","sources":["../../../../src/react/payments/UpgradePrompt.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAIvC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,OAAO,EACP,SAAe,GAChB,EAAE,kBAAkB,4BAmBpB"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ export interface SkeletonProps {
3
+ /** Width in CSS units. Default: '100%'. */
4
+ width?: string | number;
5
+ /** Height in CSS units. Default: '16px'. */
6
+ height?: string | number;
7
+ /** Border radius in CSS units. Default: '999px' (pill). */
8
+ radius?: string | number;
9
+ }
10
+ /**
11
+ * Animated placeholder skeleton for loading states.
12
+ * Uses the `.brokr-skeleton` CSS class for pulse animation.
13
+ */
14
+ export declare function Skeleton({ width, height, radius, }: SkeletonProps): React.JSX.Element;
15
+ //# sourceMappingURL=Skeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skeleton.d.ts","sourceRoot":"","sources":["../../../../src/react/primitives/Skeleton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAc,EACd,MAAe,EACf,MAAgB,GACjB,EAAE,aAAa,qBAYf"}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import type { BrokrThemeDef } from './types';
3
+ import type { ChatConfig } from '../chat/config';
4
+ import type { AccountConfig } from '../account/config';
5
+ import type { NotificationsConfig } from '../notifications/config';
6
+ interface BrokrProviderProps {
7
+ children: React.ReactNode;
8
+ theme: BrokrThemeDef;
9
+ mode?: 'light' | 'dark' | 'system';
10
+ /** Per-feature chat defaults from `defineChat()`. */
11
+ chat?: ChatConfig;
12
+ /** Per-feature account defaults from `defineAccount()`. */
13
+ account?: AccountConfig;
14
+ /** Customize notification settings (toast position, duration, etc.). Notifications are always enabled. */
15
+ notifications?: true | NotificationsConfig;
16
+ /** bro_ API token for the WebSocket connection. Only needed when notifications are enabled. */
17
+ apiToken?: string | null;
18
+ }
19
+ export declare function BrokrProvider({ children, mode, theme, chat, account, notifications, apiToken, }: BrokrProviderProps): React.JSX.Element;
20
+ export {};
21
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/react/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAKN,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAGV,aAAa,EAId,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAUnE,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IACnC,qDAAqD;IACrD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,0GAA0G;IAC1G,aAAa,CAAC,EAAE,IAAI,GAAG,mBAAmB,CAAC;IAC3C,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAmGD,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,IAAe,EACf,KAAK,EACL,IAAI,EACJ,OAAO,EACP,aAAa,EACb,QAAe,GAChB,EAAE,kBAAkB,qBAoSpB"}
@@ -0,0 +1,2 @@
1
+ export declare function postJson<TResponse, TBody>(input: string, body: TBody): Promise<TResponse>;
2
+ //# sourceMappingURL=request.d.ts.map