@brokr/sdk 2.1.0 → 2.1.2

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 (77) hide show
  1. package/dist/feature.js +22 -2
  2. package/dist/feature.mjs +22 -2
  3. package/dist/index.js +22 -2
  4. package/dist/index.mjs +22 -2
  5. package/dist/next.js +22 -2
  6. package/dist/next.mjs +22 -2
  7. package/dist/react-styles.js +540 -95
  8. package/dist/react-styles.mjs +540 -95
  9. package/dist/react.js +665 -331
  10. package/dist/react.mjs +548 -217
  11. package/dist/runtime.js +22 -2
  12. package/dist/runtime.mjs +22 -2
  13. package/dist/src/chat/config.d.ts +2 -0
  14. package/dist/src/chat/config.d.ts.map +1 -1
  15. package/dist/src/gateway.d.ts.map +1 -1
  16. package/dist/src/models.d.ts +2 -0
  17. package/dist/src/models.d.ts.map +1 -1
  18. package/dist/src/react/chat/AIChat.d.ts.map +1 -1
  19. package/dist/src/react/chat/ChatContext.d.ts +3 -6
  20. package/dist/src/react/chat/ChatContext.d.ts.map +1 -1
  21. package/dist/src/react/chat/MarkdownRenderer.d.ts.map +1 -1
  22. package/dist/src/react/chat/ModelSelector.d.ts +1 -1
  23. package/dist/src/react/chat/ModelSelector.d.ts.map +1 -1
  24. package/dist/src/react/chat/ThreadSidebar.d.ts.map +1 -1
  25. package/dist/src/react/chat/memory.d.ts +12 -0
  26. package/dist/src/react/chat/memory.d.ts.map +1 -0
  27. package/dist/src/react/chat/types.d.ts +6 -0
  28. package/dist/src/react/chat/types.d.ts.map +1 -1
  29. package/dist/src/react/chat/useChat.d.ts +8 -6
  30. package/dist/src/react/chat/useChat.d.ts.map +1 -1
  31. package/dist/src/react/composites/FabAI.d.ts +6 -1
  32. package/dist/src/react/composites/FabAI.d.ts.map +1 -1
  33. package/dist/src/react/composites/fab-context.d.ts +26 -0
  34. package/dist/src/react/composites/fab-context.d.ts.map +1 -0
  35. package/dist/src/react/css/account.d.ts +1 -1
  36. package/dist/src/react/css/account.d.ts.map +1 -1
  37. package/dist/src/react/css/activity-feed.d.ts +2 -0
  38. package/dist/src/react/css/activity-feed.d.ts.map +1 -0
  39. package/dist/src/react/css/auth.d.ts +1 -1
  40. package/dist/src/react/css/auth.d.ts.map +1 -1
  41. package/dist/src/react/css/chat-extras.d.ts +1 -1
  42. package/dist/src/react/css/chat-extras.d.ts.map +1 -1
  43. package/dist/src/react/css/chat.d.ts +1 -1
  44. package/dist/src/react/css/chat.d.ts.map +1 -1
  45. package/dist/src/react/css/composites.d.ts +1 -1
  46. package/dist/src/react/css/composites.d.ts.map +1 -1
  47. package/dist/src/react/css/data-table.d.ts +2 -0
  48. package/dist/src/react/css/data-table.d.ts.map +1 -0
  49. package/dist/src/react/css/gates.d.ts +1 -1
  50. package/dist/src/react/css/gates.d.ts.map +1 -1
  51. package/dist/src/react/css/index.d.ts.map +1 -1
  52. package/dist/src/react/css/markdown.d.ts +1 -1
  53. package/dist/src/react/css/markdown.d.ts.map +1 -1
  54. package/dist/src/react/css/primitives.d.ts +1 -1
  55. package/dist/src/react/css/primitives.d.ts.map +1 -1
  56. package/dist/src/react/css/reset.d.ts +1 -1
  57. package/dist/src/react/css/reset.d.ts.map +1 -1
  58. package/dist/src/react/css/responsive.d.ts +1 -1
  59. package/dist/src/react/css/responsive.d.ts.map +1 -1
  60. package/dist/src/react/css/skeleton.d.ts +1 -1
  61. package/dist/src/react/css/skeleton.d.ts.map +1 -1
  62. package/dist/src/react/css/stats-grid.d.ts +2 -0
  63. package/dist/src/react/css/stats-grid.d.ts.map +1 -0
  64. package/dist/src/react/css/usage-grid.d.ts +2 -0
  65. package/dist/src/react/css/usage-grid.d.ts.map +1 -0
  66. package/dist/src/react/index.d.ts +4 -1
  67. package/dist/src/react/index.d.ts.map +1 -1
  68. package/dist/src/react/notifications/ActivityFeed.d.ts +14 -0
  69. package/dist/src/react/notifications/ActivityFeed.d.ts.map +1 -0
  70. package/dist/src/react/payments/UsageGrid.d.ts +11 -0
  71. package/dist/src/react/payments/UsageGrid.d.ts.map +1 -0
  72. package/dist/src/react/primitives/DataTable.d.ts +28 -0
  73. package/dist/src/react/primitives/DataTable.d.ts.map +1 -0
  74. package/dist/src/react/primitives/StatsGrid.d.ts +18 -0
  75. package/dist/src/react/primitives/StatsGrid.d.ts.map +1 -0
  76. package/dist/tsconfig.tsbuildinfo +1 -1
  77. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- export declare const GATES_CSS = "\n.brokr-plan-card {\n display: grid;\n gap: var(--brokr-space-5);\n min-height: 100%;\n padding: var(--brokr-space-6);\n position: relative;\n}\n\n.brokr-plan-card[data-highlight=\"true\"] {\n background: color-mix(in srgb, var(--brokr-surface) 86%, var(--brokr-bg));\n transform: translateY(-2px);\n}\n\n.brokr-plan-price {\n align-items: baseline;\n display: flex;\n gap: var(--brokr-space-2);\n}\n\n.brokr-plan-value {\n font-size: clamp(2rem, 4vw, 3rem);\n font-weight: 700;\n letter-spacing: -0.05em;\n line-height: 1;\n}\n\n.brokr-feature-list {\n display: grid;\n gap: var(--brokr-space-3);\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.brokr-feature-item {\n align-items: flex-start;\n color: var(--brokr-text-secondary);\n display: grid;\n gap: var(--brokr-space-3);\n grid-template-columns: 1rem 1fr;\n}\n\n.brokr-feature-bullet {\n background: var(--brokr-text-primary);\n border-radius: 999px;\n height: 6px;\n margin-top: 0.45rem;\n opacity: 0.75;\n width: 6px;\n}\n\n.brokr-gate-card {\n display: grid;\n gap: var(--brokr-space-4);\n padding: var(--brokr-space-5);\n}\n\n.brokr-meter {\n display: grid;\n gap: var(--brokr-space-3);\n}\n\n.brokr-meter-bar {\n background: var(--brokr-subtle-fill);\n border-radius: 999px;\n height: 8px;\n overflow: hidden;\n width: 100%;\n}\n\n.brokr-meter-fill {\n background: var(--brokr-primary);\n border-radius: inherit;\n height: 100%;\n transition: width 150ms ease;\n}\n";
1
+ export declare const GATES_CSS = "\n.brokr-plan-card {\n display: flex;\n flex-direction: column;\n gap: var(--brokr-space-5);\n min-height: 100%;\n padding: var(--brokr-space-6);\n position: relative;\n}\n\n.brokr-plan-card > .brokr-feature-list {\n flex: 1;\n}\n\n.brokr-plan-card > .brokr-button,\n.brokr-plan-card > .brokr-button-secondary {\n flex-shrink: 0;\n}\n\n.brokr-plan-card[data-highlight=\"true\"] {\n background: color-mix(in srgb, var(--brokr-surface) 86%, var(--brokr-bg));\n transform: translateY(-2px);\n}\n\n.brokr-plan-price {\n align-items: baseline;\n display: flex;\n gap: var(--brokr-space-2);\n}\n\n.brokr-plan-value {\n font-size: clamp(2rem, 4vw, 3rem);\n font-weight: var(--brokr-font-weight-bold);\n letter-spacing: -0.05em;\n line-height: 1;\n}\n\n.brokr-feature-list {\n display: grid;\n gap: var(--brokr-space-3);\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.brokr-feature-item {\n align-items: flex-start;\n color: var(--brokr-text-secondary);\n display: grid;\n gap: var(--brokr-space-3);\n grid-template-columns: 1rem 1fr;\n}\n\n.brokr-feature-bullet {\n background: var(--brokr-text-primary);\n border-radius: var(--brokr-radius-pill);\n height: 6px;\n margin-top: 0.45rem;\n opacity: 0.75;\n width: 6px;\n}\n\n.brokr-gate-card {\n display: grid;\n gap: var(--brokr-space-4);\n padding: var(--brokr-space-5);\n}\n\n.brokr-meter {\n display: grid;\n gap: var(--brokr-space-3);\n}\n\n.brokr-meter-bar {\n background: var(--brokr-subtle-fill);\n border-radius: var(--brokr-radius-pill);\n height: 8px;\n overflow: hidden;\n width: 100%;\n}\n\n.brokr-meter-fill {\n background: var(--brokr-primary);\n border-radius: inherit;\n height: 100%;\n transition: width var(--brokr-duration-base) var(--brokr-ease);\n}\n";
2
2
  //# sourceMappingURL=gates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gates.d.ts","sourceRoot":"","sources":["../../../../src/react/css/gates.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,28CA6ErB,CAAC"}
1
+ {"version":3,"file":"gates.d.ts","sourceRoot":"","sources":["../../../../src/react/css/gates.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,4uDAuFrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/react/css/index.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,gBAAgB,QAcV,CAAC;AAEpB,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAEzD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/react/css/index.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,gBAAgB,QAkBb,CAAC;AAEjB,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAEzD"}
@@ -1,2 +1,2 @@
1
- export declare const MARKDOWN_CSS = "\n/* ============================================================\n Markdown rendering \u2014 assistant messages\n ============================================================ */\n\n.brokr-md p,\n.brokr-md-paragraph {\n margin: 0 0 0.6em;\n line-height: 1.7;\n}\n\n.brokr-md p:last-child,\n.brokr-md-paragraph:last-child {\n margin-bottom: 0;\n}\n\n.brokr-md strong {\n color: var(--brokr-text-primary);\n font-weight: 600;\n}\n\n.brokr-md em {\n font-style: italic;\n}\n\n.brokr-md-inline-code {\n background: var(--brokr-subtle-fill-strong);\n border-radius: 4px;\n color: var(--brokr-primary);\n font-family: var(--brokr-font-mono);\n font-size: 0.85em;\n padding: 0.15em 0.4em;\n}\n\n.brokr-md-link {\n color: var(--brokr-primary);\n text-decoration: underline;\n text-underline-offset: 2px;\n}\n\n.brokr-md-link:hover {\n opacity: 0.8;\n}\n\n.brokr-md-heading {\n color: var(--brokr-text-primary);\n font-weight: 600;\n line-height: 1.3;\n margin: 1.2em 0 0.5em;\n}\n\n.brokr-md-heading:first-child {\n margin-top: 0;\n}\n\n.brokr-md-h1 { font-size: 1.25em; }\n.brokr-md-h2 { font-size: 1.15em; }\n.brokr-md-h3 { font-size: 1.05em; }\n.brokr-md-h4,\n.brokr-md-h5,\n.brokr-md-h6 { font-size: 0.95em; text-transform: uppercase; letter-spacing: 0.03em; opacity: 0.8; }\n\n.brokr-md-divider {\n border: none;\n border-top: 1px solid var(--brokr-muted-border);\n margin: 1em 0;\n}\n\n.brokr-md-list {\n list-style: none;\n margin: 0.5em 0;\n padding: 0 0 0 1.2em;\n}\n\n.brokr-md-list li {\n line-height: 1.7;\n margin-bottom: 0.25em;\n position: relative;\n}\n\n.brokr-md-list li::before {\n content: '\u2022';\n color: var(--brokr-text-secondary);\n left: -1em;\n position: absolute;\n}\n\n/* \u2500\u2500\u2500 Code blocks \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.brokr-md-codeblock {\n border: 1px solid var(--brokr-muted-border);\n border-radius: var(--brokr-radius-card);\n margin: 0.8em 0;\n overflow: hidden;\n}\n\n.brokr-md-codeblock-header {\n align-items: center;\n background: var(--brokr-subtle-fill);\n border-bottom: 1px solid var(--brokr-muted-border);\n display: flex;\n font-size: var(--brokr-font-size-xs);\n justify-content: space-between;\n padding: 0.4em 0.75em;\n}\n\n.brokr-md-codeblock-lang {\n color: var(--brokr-text-secondary);\n font-family: var(--brokr-font-mono);\n font-weight: 500;\n text-transform: lowercase;\n}\n\n.brokr-md-codeblock-copy {\n align-items: center;\n background: transparent;\n border: none;\n color: var(--brokr-text-secondary);\n cursor: pointer;\n display: inline-flex;\n font: inherit;\n font-size: var(--brokr-font-size-xs);\n gap: 0.35em;\n padding: 0.15em 0.4em;\n border-radius: var(--brokr-radius-button);\n transition: color 120ms ease, background 120ms ease;\n}\n\n.brokr-md-codeblock-copy:hover {\n background: var(--brokr-subtle-fill-strong);\n color: var(--brokr-text-primary);\n}\n\n.brokr-md-codeblock-pre {\n color: var(--brokr-text-primary);\n font-family: var(--brokr-font-mono);\n font-size: 0.825em;\n line-height: 1.6;\n margin: 0;\n overflow-x: auto;\n padding: 0.75em 1em;\n}\n\n.brokr-md-codeblock-pre code {\n background: none;\n border: none;\n padding: 0;\n}\n";
1
+ export declare const MARKDOWN_CSS = "\n/* ============================================================\n Markdown rendering \u2014 assistant messages\n ============================================================ */\n\n.brokr-md p,\n.brokr-md-paragraph {\n margin: 0 0 0.6em;\n line-height: 1.7;\n}\n\n.brokr-md p:last-child,\n.brokr-md-paragraph:last-child {\n margin-bottom: 0;\n}\n\n.brokr-md strong {\n color: var(--brokr-text-primary);\n font-weight: var(--brokr-font-weight-semibold);\n}\n\n.brokr-md em {\n font-style: italic;\n}\n\n.brokr-md del {\n opacity: 0.85;\n}\n\n.brokr-md-inline-code {\n background: var(--brokr-subtle-fill-strong);\n border-radius: var(--brokr-radius-sm);\n color: var(--brokr-primary);\n font-family: var(--brokr-font-mono);\n font-size: 0.85em;\n padding: 0.15em 0.4em;\n}\n\n.brokr-md-link {\n color: var(--brokr-primary);\n text-decoration: underline;\n text-underline-offset: 2px;\n}\n\n.brokr-md-link:hover {\n opacity: 0.8;\n}\n\n.brokr-md-heading {\n color: var(--brokr-text-primary);\n font-weight: var(--brokr-font-weight-semibold);\n line-height: 1.3;\n margin: 1.2em 0 0.5em;\n}\n\n.brokr-md-heading:first-child {\n margin-top: 0;\n}\n\n.brokr-md-h1 { font-size: 1.25em; }\n.brokr-md-h2 { font-size: 1.15em; }\n.brokr-md-h3 { font-size: 1.05em; }\n.brokr-md-h4,\n.brokr-md-h5,\n.brokr-md-h6 { font-size: 0.95em; text-transform: uppercase; letter-spacing: 0.03em; opacity: 0.8; }\n\n.brokr-md-divider {\n border: none;\n border-top: 1px solid var(--brokr-muted-border);\n margin: 1em 0;\n}\n\n.brokr-md-list {\n margin: 0.5em 0;\n padding: 0 0 0 1.2em;\n}\n\n.brokr-md-list li {\n line-height: 1.7;\n margin-bottom: 0.25em;\n}\n\n.brokr-md-list-unordered {\n list-style: none;\n}\n\n.brokr-md-list-unordered li {\n position: relative;\n}\n\n.brokr-md-list-unordered li::before {\n content: '\u2022';\n color: var(--brokr-text-secondary);\n left: -1em;\n position: absolute;\n}\n\n.brokr-md-list-ordered {\n list-style: decimal;\n padding-left: 1.35em;\n}\n\n.brokr-md-list-ordered li::marker {\n color: var(--brokr-text-secondary);\n}\n\n.brokr-md-quote {\n border-left: 1px solid var(--brokr-muted-border);\n color: var(--brokr-text-secondary);\n margin: 0.8em 0;\n padding: 0 0 0 0.9em;\n}\n\n.brokr-md-quote-line {\n line-height: 1.7;\n margin: 0 0 0.4em;\n}\n\n.brokr-md-quote-line:last-child {\n margin-bottom: 0;\n}\n\n.brokr-md-table-wrap {\n margin: 0.9em 0;\n overflow-x: auto;\n}\n\n.brokr-md-table {\n border-collapse: collapse;\n border: 1px solid var(--brokr-muted-border);\n border-radius: var(--brokr-radius-card);\n min-width: 100%;\n width: max-content;\n}\n\n.brokr-md-table th,\n.brokr-md-table td {\n border-bottom: 1px solid var(--brokr-muted-border);\n font-size: var(--brokr-font-size-sm);\n line-height: var(--brokr-leading-snug);\n padding: var(--brokr-space-2) var(--brokr-space-3);\n text-align: left;\n vertical-align: top;\n}\n\n.brokr-md-table th {\n background: var(--brokr-subtle-fill);\n color: var(--brokr-text-primary);\n font-weight: var(--brokr-font-weight-semibold);\n}\n\n.brokr-md-table td {\n color: var(--brokr-text-secondary);\n}\n\n.brokr-md-table tr:last-child td {\n border-bottom: none;\n}\n\n/* \u2500\u2500\u2500 Code blocks \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.brokr-md-codeblock {\n border: 1px solid var(--brokr-muted-border);\n border-radius: var(--brokr-radius-card);\n margin: 0.8em 0;\n overflow: hidden;\n}\n\n.brokr-md-codeblock-header {\n align-items: center;\n background: var(--brokr-subtle-fill);\n border-bottom: 1px solid var(--brokr-muted-border);\n display: flex;\n font-size: var(--brokr-font-size-xs);\n justify-content: space-between;\n padding: 0.4em 0.75em;\n}\n\n.brokr-md-codeblock-lang {\n color: var(--brokr-text-secondary);\n font-family: var(--brokr-font-mono);\n font-weight: var(--brokr-font-weight-medium);\n text-transform: lowercase;\n}\n\n.brokr-md-codeblock-copy {\n align-items: center;\n background: transparent;\n border: none;\n color: var(--brokr-text-secondary);\n cursor: pointer;\n display: inline-flex;\n font: inherit;\n font-size: var(--brokr-font-size-xs);\n gap: 0.35em;\n padding: 0.15em 0.4em;\n border-radius: var(--brokr-radius-button);\n transition: color var(--brokr-duration-base) var(--brokr-ease), background var(--brokr-duration-base) var(--brokr-ease);\n}\n\n.brokr-md-codeblock-copy:hover {\n background: var(--brokr-subtle-fill-strong);\n color: var(--brokr-text-primary);\n}\n\n.brokr-md-codeblock-pre {\n color: var(--brokr-text-primary);\n font-family: var(--brokr-font-mono);\n font-size: 0.825em;\n line-height: 1.6;\n margin: 0;\n overflow-x: auto;\n padding: 0.75em 1em;\n}\n\n.brokr-md-codeblock-pre code {\n background: none;\n border: none;\n padding: 0;\n}\n";
2
2
  //# sourceMappingURL=markdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../../src/react/css/markdown.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,s3GAoJxB,CAAC"}
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../../src/react/css/markdown.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,o6JA4NxB,CAAC"}
@@ -1,2 +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";
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: var(--brokr-font-weight-semibold);\n min-height: 44px;\n padding: 0 var(--brokr-space-4);\n text-decoration: none;\n transition: background-color var(--brokr-duration-base) var(--brokr-ease), border-color var(--brokr-duration-base) var(--brokr-ease), transform var(--brokr-duration-base) var(--brokr-ease), opacity var(--brokr-duration-base) var(--brokr-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 var(--brokr-duration-base) var(--brokr-ease), background-color var(--brokr-duration-base) var(--brokr-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: var(--brokr-font-weight-semibold);\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: var(--brokr-font-weight-bold);\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: var(--brokr-font-weight-bold);\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: var(--brokr-radius-pill);\n color: var(--brokr-text-secondary);\n display: inline-flex;\n font-size: var(--brokr-font-size-xs);\n font-weight: var(--brokr-font-weight-bold);\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
2
  //# sourceMappingURL=primitives.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../../src/react/css/primitives.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,slJA2L1B,CAAC"}
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../../src/react/css/primitives.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,+7JA2L1B,CAAC"}
@@ -1,2 +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";
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: var(--brokr-radius-pill);\n background-clip: padding-box;\n}\n\n.brokr-root *::-webkit-scrollbar-track {\n background: transparent;\n}\n";
2
2
  //# sourceMappingURL=reset.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../../src/react/css/reset.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,+iBAuBrB,CAAC"}
1
+ {"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../../src/react/css/reset.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,kkBAuBrB,CAAC"}
@@ -1,2 +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";
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 .brokr-ai-chat-sidebar-new-chat {\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
2
  //# sourceMappingURL=responsive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"responsive.d.ts","sourceRoot":"","sources":["../../../../src/react/css/responsive.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,gtFA0I1B,CAAC"}
1
+ {"version":3,"file":"responsive.d.ts","sourceRoot":"","sources":["../../../../src/react/css/responsive.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,ovFA2I1B,CAAC"}
@@ -1,2 +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";
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: var(--brokr-radius-pill);\n min-height: 16px;\n}\n";
2
2
  //# sourceMappingURL=skeleton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../../src/react/css/skeleton.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,waAaxB,CAAC"}
1
+ {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../../src/react/css/skeleton.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,2bAaxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const STATS_GRID_CSS = "\n.brokr-stats-grid {\n display: grid;\n gap: var(--brokr-space-4);\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n}\n\n.brokr-metric-card {\n display: flex;\n flex-direction: column;\n gap: var(--brokr-space-2);\n padding: var(--brokr-space-5);\n}\n\n.brokr-metric-label {\n color: var(--brokr-text-secondary);\n font-size: var(--brokr-font-size-xs);\n font-weight: var(--brokr-font-weight-medium);\n letter-spacing: 0.02em;\n text-transform: uppercase;\n}\n\n.brokr-metric-row {\n align-items: baseline;\n display: flex;\n gap: var(--brokr-space-2);\n}\n\n.brokr-metric-value {\n color: var(--brokr-text-primary);\n font-size: var(--brokr-font-size-xl);\n font-weight: var(--brokr-font-weight-bold);\n letter-spacing: -0.03em;\n line-height: 1;\n}\n\n.brokr-metric-trend {\n font-size: var(--brokr-font-size-xs);\n font-weight: var(--brokr-font-weight-semibold);\n line-height: 1;\n}\n\n.brokr-metric-trend--up {\n color: var(--brokr-success, #22c55e);\n}\n\n.brokr-metric-trend--down {\n color: var(--brokr-error, #ef4444);\n}\n\n.brokr-metric-sparkline {\n height: 24px;\n margin-top: var(--brokr-space-1);\n width: 100%;\n}\n";
2
+ //# sourceMappingURL=stats-grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats-grid.d.ts","sourceRoot":"","sources":["../../../../src/react/css/stats-grid.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,4pCAuD1B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const USAGE_GRID_CSS = "\n.brokr-usage-grid {\n display: grid;\n gap: var(--brokr-space-4);\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n}\n";
2
+ //# sourceMappingURL=usage-grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-grid.d.ts","sourceRoot":"","sources":["../../../../src/react/css/usage-grid.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,+IAM1B,CAAC"}
@@ -24,6 +24,7 @@ export { TopUpButton } from './payments/TopUpButton';
24
24
  export { AutoReloadToggle } from './payments/AutoReloadToggle';
25
25
  export { UpdateBilling } from './payments/UpdateBilling';
26
26
  export { CancelSubscription } from './payments/CancelSubscription';
27
+ export { UsageGrid } from './payments/UsageGrid';
27
28
  export { AIChat } from './chat/AIChat';
28
29
  export type { AIChatProps, Thread, AIChatMessage, AIChatCommand, AIChatContext } from './chat/types';
29
30
  export { useChat } from './chat/useChat';
@@ -33,6 +34,8 @@ export { SmartUpload } from './composites/SmartUpload';
33
34
  export { FeedbackWidget } from './composites/FeedbackWidget';
34
35
  export { Skeleton } from './primitives/Skeleton';
35
36
  export { BrokrErrorBoundary } from './BrokrErrorBoundary';
37
+ export { ActivityFeed } from './notifications/ActivityFeed';
38
+ export type { ActivityFeedProps } from './notifications/ActivityFeed';
36
39
  export { NotificationBell } from './notifications/NotificationBell';
37
40
  export { NotificationList } from './notifications/NotificationList';
38
41
  export { useNotifications } from './notifications/use-notifications';
@@ -43,6 +46,6 @@ export type { ChatConfig } from '../chat/config';
43
46
  export { defineAccount } from '../account/config';
44
47
  export type { AccountConfig } from '../account/config';
45
48
  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';
49
+ export { defineBrokrTheme, type BrokrContextValue, type BrokrSession, type BrokrThemeColors, type BrokrThemeDef, type BrokrThemeMode, type BrokrThemeRadii, type BrokrThemeResolved, type BrokrUser, type GateFallback, type GateProps, type RequirePlanProps, type SignInParams, type SignUpParams, type UsageGateProps, } from './types';
47
50
  export type { BillingSummary, EntitlementMap, PlanCatalogEntry, UserPlan, } from '../payments/types';
48
51
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import type { Notification } from '../../notifications/types';
3
+ export interface ActivityFeedProps {
4
+ /** Filter notifications by variant or custom type. */
5
+ filter?: string[];
6
+ /** Max items to display. Default: 20. */
7
+ maxItems?: number;
8
+ /** Custom renderer per notification type. */
9
+ formatters?: Record<string, (item: Notification) => React.ReactNode>;
10
+ /** Custom empty state. */
11
+ emptyState?: React.ReactNode;
12
+ }
13
+ export declare function ActivityFeed({ filter, maxItems, formatters, emptyState, }: ActivityFeedProps): React.JSX.Element;
14
+ //# sourceMappingURL=ActivityFeed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActivityFeed.d.ts","sourceRoot":"","sources":["../../../../src/react/notifications/ActivityFeed.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAM9D,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IACrE,0BAA0B;IAC1B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AA4CD,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,QAAa,EACb,UAAU,EACV,UAAU,GACX,EAAE,iBAAiB,qBAgEnB"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ /**
3
+ * UsageGrid — Zero-config dashboard widget.
4
+ *
5
+ * Auto-reads all metered features from entitlements context and
6
+ * renders a responsive grid of <FeatureMeter /> cards.
7
+ *
8
+ * Tier 1 Feature: Zero props, auto-wired.
9
+ */
10
+ export declare function UsageGrid(): React.JSX.Element | null;
11
+ //# sourceMappingURL=UsageGrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UsageGrid.d.ts","sourceRoot":"","sources":["../../../../src/react/payments/UsageGrid.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAKvC;;;;;;;GAOG;AACH,wBAAgB,SAAS,6BA+BxB"}
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ export interface DataTableColumn<T = Record<string, unknown>> {
3
+ key: string;
4
+ header: string;
5
+ render?: (row: T) => React.ReactNode;
6
+ sortable?: boolean;
7
+ width?: string;
8
+ }
9
+ export interface DataTablePagination {
10
+ page: number;
11
+ pageSize: number;
12
+ total: number;
13
+ onPageChange: (page: number) => void;
14
+ }
15
+ export interface DataTableProps<T = Record<string, unknown>> {
16
+ columns: DataTableColumn<T>[];
17
+ data: T[];
18
+ pagination?: DataTablePagination;
19
+ sortKey?: string;
20
+ sortDir?: 'asc' | 'desc';
21
+ onSort?: (key: string, dir: 'asc' | 'desc') => void;
22
+ loading?: boolean;
23
+ emptyState?: React.ReactNode;
24
+ rowKey?: (row: T) => string;
25
+ onRowClick?: (row: T) => void;
26
+ }
27
+ export declare function DataTable<T = Record<string, unknown>>({ columns, data, pagination, sortKey, sortDir, onSort, loading, emptyState, rowKey, onRowClick, }: DataTableProps<T>): React.JSX.Element;
28
+ //# sourceMappingURL=DataTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../../src/react/primitives/DataTable.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAM9D,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACzD,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;IACpD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;CAC/B;AA2ID,wBAAgB,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACrD,OAAO,EACP,IAAI,EACJ,UAAU,EACV,OAAO,EACP,OAAO,EACP,MAAM,EACN,OAAe,EACf,UAAU,EACV,MAAM,EACN,UAAU,GACX,EAAE,cAAc,CAAC,CAAC,CAAC,qBAkDnB"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ export interface MetricCardProps {
3
+ label: string;
4
+ value: string | number;
5
+ format?: 'number' | 'currency' | 'percent';
6
+ trend?: {
7
+ value: number;
8
+ direction: 'up' | 'down';
9
+ };
10
+ sparkline?: number[];
11
+ }
12
+ export interface StatsGridProps {
13
+ stats: MetricCardProps[];
14
+ columns?: 2 | 3 | 4;
15
+ }
16
+ export declare function MetricCard({ label, value, format, trend, sparkline }: MetricCardProps): React.JSX.Element;
17
+ export declare function StatsGrid({ stats, columns }: StatsGridProps): React.JSX.Element;
18
+ //# sourceMappingURL=StatsGrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatsGrid.d.ts","sourceRoot":"","sources":["../../../../src/react/primitives/StatsGrid.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAMjF,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAA;KAAE,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACrB;AA0DD,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,eAAe,qBAiBrF;AAMD,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,cAAc,qBAgB3D"}