@arbidocs/blocks 0.4.128 → 0.4.130

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 (236) hide show
  1. package/README.md +25 -10
  2. package/dist/{StreamedArtifactEditor-EEYAXJ4H.cjs → StreamedArtifactEditor-TQAND4H5.cjs} +6 -5
  3. package/dist/StreamedArtifactEditor-TQAND4H5.cjs.map +1 -0
  4. package/dist/{StreamedArtifactEditor-TDATDYD2.js → StreamedArtifactEditor-XQNANTWM.js} +4 -3
  5. package/dist/StreamedArtifactEditor-XQNANTWM.js.map +1 -0
  6. package/dist/agents/index.cjs +304 -304
  7. package/dist/agents/index.js +12 -12
  8. package/dist/artifacts/ArtifactCodeView.d.ts +6 -0
  9. package/dist/artifacts/ArtifactPreview.d.ts +22 -0
  10. package/dist/artifacts/index.cjs +50 -21
  11. package/dist/artifacts/index.d.ts +3 -0
  12. package/dist/artifacts/index.js +2 -1
  13. package/dist/artifacts/sandbox-policy.d.ts +34 -0
  14. package/dist/artifacts/sandboxDocument.d.ts +7 -0
  15. package/dist/calendar/CalendarPrint.d.ts +25 -0
  16. package/dist/calendar/booking-slots.d.ts +21 -0
  17. package/dist/calendar/index.cjs +440 -243
  18. package/dist/calendar/index.cjs.map +1 -1
  19. package/dist/calendar/index.d.ts +4 -0
  20. package/dist/calendar/index.js +282 -151
  21. package/dist/calendar/index.js.map +1 -1
  22. package/dist/calendar/print-layout.d.ts +16 -0
  23. package/dist/calendar/printCalendar.d.ts +6 -0
  24. package/dist/calls/composite-canvas.d.ts +52 -0
  25. package/dist/calls/index.cjs +376 -3
  26. package/dist/calls/index.cjs.map +1 -1
  27. package/dist/calls/index.d.ts +3 -0
  28. package/dist/calls/index.js +360 -5
  29. package/dist/calls/index.js.map +1 -1
  30. package/dist/calls/ringtone.d.ts +16 -0
  31. package/dist/calls/voice-levels.d.ts +32 -0
  32. package/dist/chat/ThreadVisualizer.d.ts +28 -0
  33. package/dist/chat/index.cjs +156 -140
  34. package/dist/chat/index.d.ts +2 -0
  35. package/dist/chat/index.js +5 -5
  36. package/dist/chat/open-document.d.ts +5 -1
  37. package/dist/chat/thread-diagram.d.ts +26 -0
  38. package/dist/{chunk-7HAM7Y5U.js → chunk-2DFDFOM7.js} +3 -3
  39. package/dist/{chunk-7HAM7Y5U.js.map → chunk-2DFDFOM7.js.map} +1 -1
  40. package/dist/{chunk-54ANPPMV.js → chunk-2PNNCEPH.js} +4 -4
  41. package/dist/{chunk-54ANPPMV.js.map → chunk-2PNNCEPH.js.map} +1 -1
  42. package/dist/{chunk-DQCYCEDR.js → chunk-2Q7FDZAY.js} +3 -3
  43. package/dist/{chunk-DQCYCEDR.js.map → chunk-2Q7FDZAY.js.map} +1 -1
  44. package/dist/{chunk-INW76PEL.cjs → chunk-2YV7FBLO.cjs} +175 -2
  45. package/dist/chunk-2YV7FBLO.cjs.map +1 -0
  46. package/dist/{chunk-S7PSMMRG.js → chunk-444XKG46.js} +3 -3
  47. package/dist/{chunk-S7PSMMRG.js.map → chunk-444XKG46.js.map} +1 -1
  48. package/dist/{chunk-FSBY2S4V.cjs → chunk-4QIIDXLF.cjs} +10 -10
  49. package/dist/{chunk-FSBY2S4V.cjs.map → chunk-4QIIDXLF.cjs.map} +1 -1
  50. package/dist/{chunk-OYMWV45N.js → chunk-4RLCRFZS.js} +63 -13
  51. package/dist/chunk-4RLCRFZS.js.map +1 -0
  52. package/dist/{chunk-NZUQFF35.cjs → chunk-4S5IDT5F.cjs} +234 -5
  53. package/dist/chunk-4S5IDT5F.cjs.map +1 -0
  54. package/dist/{chunk-CJBN5HIS.js → chunk-4UMXQPNA.js} +20 -8
  55. package/dist/chunk-4UMXQPNA.js.map +1 -0
  56. package/dist/{chunk-KELGOCJA.js → chunk-65S53MZK.js} +174 -5
  57. package/dist/chunk-65S53MZK.js.map +1 -0
  58. package/dist/{chunk-IBZJYCYM.js → chunk-66TA5IBN.js} +17 -25
  59. package/dist/chunk-66TA5IBN.js.map +1 -0
  60. package/dist/{chunk-HM23LXUP.cjs → chunk-6AALMYPS.cjs} +3 -3
  61. package/dist/{chunk-HM23LXUP.cjs.map → chunk-6AALMYPS.cjs.map} +1 -1
  62. package/dist/{chunk-OR4CO743.cjs → chunk-AAFX64WD.cjs} +3 -3
  63. package/dist/{chunk-OR4CO743.cjs.map → chunk-AAFX64WD.cjs.map} +1 -1
  64. package/dist/{chunk-MUMH3Z6K.cjs → chunk-ARDHLU73.cjs} +61 -11
  65. package/dist/chunk-ARDHLU73.cjs.map +1 -0
  66. package/dist/chunk-BIXHB4LV.cjs +178 -0
  67. package/dist/chunk-BIXHB4LV.cjs.map +1 -0
  68. package/dist/chunk-C4WSHRR6.cjs +166 -0
  69. package/dist/chunk-C4WSHRR6.cjs.map +1 -0
  70. package/dist/{chunk-ZAVEMQ37.cjs → chunk-DWZXSPMB.cjs} +3 -3
  71. package/dist/{chunk-ZAVEMQ37.cjs.map → chunk-DWZXSPMB.cjs.map} +1 -1
  72. package/dist/{chunk-VW2C2AZL.js → chunk-ENDP7JER.js} +3 -3
  73. package/dist/{chunk-VW2C2AZL.js.map → chunk-ENDP7JER.js.map} +1 -1
  74. package/dist/{chunk-5HFPRI3W.js → chunk-FUTMU4FR.js} +3 -3
  75. package/dist/{chunk-5HFPRI3W.js.map → chunk-FUTMU4FR.js.map} +1 -1
  76. package/dist/{chunk-P5ST47VY.js → chunk-GDBDHOI4.js} +3 -3
  77. package/dist/{chunk-P5ST47VY.js.map → chunk-GDBDHOI4.js.map} +1 -1
  78. package/dist/chunk-GTCC2VAR.js +153 -0
  79. package/dist/chunk-GTCC2VAR.js.map +1 -0
  80. package/dist/{chunk-3BJLNKOB.cjs → chunk-GZPTWHP5.cjs} +22 -10
  81. package/dist/chunk-GZPTWHP5.cjs.map +1 -0
  82. package/dist/{chunk-OUW6G4O2.cjs → chunk-HFGXA5CL.cjs} +4 -4
  83. package/dist/{chunk-OUW6G4O2.cjs.map → chunk-HFGXA5CL.cjs.map} +1 -1
  84. package/dist/{chunk-SWQX6CTT.cjs → chunk-JKB7WT7L.cjs} +2 -2
  85. package/dist/chunk-JKB7WT7L.cjs.map +1 -0
  86. package/dist/{chunk-D4YR56FV.cjs → chunk-KYDRUFWT.cjs} +5 -5
  87. package/dist/{chunk-D4YR56FV.cjs.map → chunk-KYDRUFWT.cjs.map} +1 -1
  88. package/dist/chunk-NS4JD2VR.js +22 -0
  89. package/dist/chunk-NS4JD2VR.js.map +1 -0
  90. package/dist/{chunk-S6BOINC4.cjs → chunk-OGBXV326.cjs} +7 -7
  91. package/dist/{chunk-S6BOINC4.cjs.map → chunk-OGBXV326.cjs.map} +1 -1
  92. package/dist/{chunk-DJM7DLCT.cjs → chunk-OPTBQSCV.cjs} +3 -3
  93. package/dist/{chunk-DJM7DLCT.cjs.map → chunk-OPTBQSCV.cjs.map} +1 -1
  94. package/dist/{chunk-GFYGYME3.js → chunk-OQ7RUNOC.js} +3 -3
  95. package/dist/{chunk-GFYGYME3.js.map → chunk-OQ7RUNOC.js.map} +1 -1
  96. package/dist/{chunk-WV4IDVDQ.cjs → chunk-PJJY6CYL.cjs} +11 -11
  97. package/dist/{chunk-WV4IDVDQ.cjs.map → chunk-PJJY6CYL.cjs.map} +1 -1
  98. package/dist/{chunk-CXLVI3SB.js → chunk-PUCY3UXN.js} +3 -3
  99. package/dist/{chunk-CXLVI3SB.js.map → chunk-PUCY3UXN.js.map} +1 -1
  100. package/dist/{chunk-ZV3BKLFY.cjs → chunk-QDEODGXE.cjs} +5 -5
  101. package/dist/{chunk-ZV3BKLFY.cjs.map → chunk-QDEODGXE.cjs.map} +1 -1
  102. package/dist/{chunk-7BJRLP3U.js → chunk-QYTYW74G.js} +5 -5
  103. package/dist/{chunk-7BJRLP3U.js.map → chunk-QYTYW74G.js.map} +1 -1
  104. package/dist/{chunk-A7NCSZAP.cjs → chunk-QZTNTP75.cjs} +17 -25
  105. package/dist/chunk-QZTNTP75.cjs.map +1 -0
  106. package/dist/{chunk-OB5F4577.cjs → chunk-R26BK7YL.cjs} +4 -4
  107. package/dist/{chunk-OB5F4577.cjs.map → chunk-R26BK7YL.cjs.map} +1 -1
  108. package/dist/{chunk-A2YAC22G.js → chunk-RI6DZA5X.js} +3 -3
  109. package/dist/{chunk-A2YAC22G.js.map → chunk-RI6DZA5X.js.map} +1 -1
  110. package/dist/{chunk-LC2KJSUS.cjs → chunk-SARREDFP.cjs} +46 -46
  111. package/dist/{chunk-LC2KJSUS.cjs.map → chunk-SARREDFP.cjs.map} +1 -1
  112. package/dist/{chunk-ZCHSJUCI.js → chunk-SZX44LCT.js} +231 -6
  113. package/dist/chunk-SZX44LCT.js.map +1 -0
  114. package/dist/{chunk-7QDX2CO4.cjs → chunk-TP6PLDNM.cjs} +4 -4
  115. package/dist/{chunk-7QDX2CO4.cjs.map → chunk-TP6PLDNM.cjs.map} +1 -1
  116. package/dist/{chunk-W27VK32R.cjs → chunk-TT6XV6WM.cjs} +84 -84
  117. package/dist/{chunk-W27VK32R.cjs.map → chunk-TT6XV6WM.cjs.map} +1 -1
  118. package/dist/{chunk-KLOSOT26.js → chunk-UMIY4SQS.js} +11 -11
  119. package/dist/{chunk-KLOSOT26.js.map → chunk-UMIY4SQS.js.map} +1 -1
  120. package/dist/chunk-VG24E4JJ.cjs +26 -0
  121. package/dist/chunk-VG24E4JJ.cjs.map +1 -0
  122. package/dist/{chunk-ECERC6TI.js → chunk-VHJHY7TT.js} +3 -3
  123. package/dist/{chunk-ECERC6TI.js.map → chunk-VHJHY7TT.js.map} +1 -1
  124. package/dist/{chunk-D3N67Q4D.js → chunk-W3VYZXNS.js} +3 -3
  125. package/dist/{chunk-D3N67Q4D.js.map → chunk-W3VYZXNS.js.map} +1 -1
  126. package/dist/{chunk-JK45LSIH.cjs → chunk-WXYQ66KC.cjs} +5 -5
  127. package/dist/{chunk-JK45LSIH.cjs.map → chunk-WXYQ66KC.cjs.map} +1 -1
  128. package/dist/{chunk-ZCF2JJFA.js → chunk-Y3KA6X7B.js} +3 -3
  129. package/dist/{chunk-ZCF2JJFA.js.map → chunk-Y3KA6X7B.js.map} +1 -1
  130. package/dist/{chunk-GYCQ3FNL.js → chunk-YBLIKTJK.js} +2 -2
  131. package/dist/chunk-YBLIKTJK.js.map +1 -0
  132. package/dist/chunk-YNIBUKV5.js +163 -0
  133. package/dist/chunk-YNIBUKV5.js.map +1 -0
  134. package/dist/citations/index.cjs +12 -11
  135. package/dist/citations/index.js +3 -2
  136. package/dist/collaboration/index.cjs +51 -51
  137. package/dist/collaboration/index.js +3 -3
  138. package/dist/components/DroppableContainer.d.ts +6 -0
  139. package/dist/components/GridRowNavigator.d.ts +29 -0
  140. package/dist/components/LoadingIndicator.d.ts +21 -0
  141. package/dist/components/RowNavigatorControls.d.ts +29 -0
  142. package/dist/components/SharedCell.d.ts +27 -0
  143. package/dist/connect/docx.cjs +7 -5
  144. package/dist/connect/docx.cjs.map +1 -1
  145. package/dist/connect/docx.js +6 -4
  146. package/dist/connect/docx.js.map +1 -1
  147. package/dist/connect/index.cjs +270 -227
  148. package/dist/connect/index.cjs.map +1 -1
  149. package/dist/connect/index.d.ts +1 -1
  150. package/dist/connect/index.js +199 -156
  151. package/dist/connect/index.js.map +1 -1
  152. package/dist/connection/ConnectedSettings.d.ts +46 -20
  153. package/dist/connection/ConnectionProvider.d.ts +5 -0
  154. package/dist/connection/mail/ConnectedMailComposer.d.ts +2 -3
  155. package/dist/connection/mail/ConnectedMailbox.d.ts +2 -3
  156. package/dist/connection/mail/MailComposerForm.d.ts +2 -3
  157. package/dist/connection/mail/index.d.ts +2 -2
  158. package/dist/connection/mail/mailbox.d.ts +1 -4
  159. package/dist/connection/mail/types.d.ts +0 -8
  160. package/dist/document-tools/index.cjs +1 -1
  161. package/dist/document-tools/index.js +1 -1
  162. package/dist/facts/fact-citations.d.ts +56 -0
  163. package/dist/facts/fact-table-column-resize.d.ts +18 -0
  164. package/dist/facts/index.cjs +198 -29
  165. package/dist/facts/index.cjs.map +1 -1
  166. package/dist/facts/index.d.ts +2 -1
  167. package/dist/facts/index.js +187 -27
  168. package/dist/facts/index.js.map +1 -1
  169. package/dist/files/index.cjs +4 -4
  170. package/dist/files/index.js +3 -3
  171. package/dist/home/index.cjs +20 -19
  172. package/dist/home/index.cjs.map +1 -1
  173. package/dist/home/index.js +5 -4
  174. package/dist/home/index.js.map +1 -1
  175. package/dist/index.cjs +877 -679
  176. package/dist/index.cjs.map +1 -1
  177. package/dist/index.d.ts +7 -1
  178. package/dist/index.js +207 -30
  179. package/dist/index.js.map +1 -1
  180. package/dist/provider/BlocksProvider.d.ts +39 -4
  181. package/dist/provider/dialogs.d.ts +31 -0
  182. package/dist/retrieval/index.cjs +5 -4
  183. package/dist/retrieval/index.js +3 -2
  184. package/dist/sandboxDocument-JLEETIWW.js +71 -0
  185. package/dist/sandboxDocument-JLEETIWW.js.map +1 -0
  186. package/dist/sandboxDocument-WQUNODSC.cjs +76 -0
  187. package/dist/sandboxDocument-WQUNODSC.cjs.map +1 -0
  188. package/dist/settings/DraggableHeader.d.ts +10 -0
  189. package/dist/settings/FilterChip.d.ts +15 -0
  190. package/dist/settings/MessageJsonTree.d.ts +7 -0
  191. package/dist/settings/MoreInfo.d.ts +25 -0
  192. package/dist/settings/PlanCard.d.ts +1 -1
  193. package/dist/settings/index.cjs +363 -266
  194. package/dist/settings/index.cjs.map +1 -1
  195. package/dist/settings/index.d.ts +4 -1
  196. package/dist/settings/index.js +317 -222
  197. package/dist/settings/index.js.map +1 -1
  198. package/dist/settings/message-schema-hints.d.ts +19 -0
  199. package/dist/shell/index.cjs +48 -47
  200. package/dist/shell/index.js +4 -3
  201. package/dist/site/index.cjs +5 -5
  202. package/dist/site/index.js +1 -1
  203. package/dist/studio/index.cjs +19 -18
  204. package/dist/studio/index.cjs.map +1 -1
  205. package/dist/studio/index.js +11 -10
  206. package/dist/studio/index.js.map +1 -1
  207. package/dist/workflow-canvas/index.cjs +65 -65
  208. package/dist/workflow-canvas/index.js +13 -13
  209. package/dist/workspaces/index.cjs +42 -3
  210. package/dist/workspaces/index.cjs.map +1 -1
  211. package/dist/workspaces/index.d.ts +1 -0
  212. package/dist/workspaces/index.js +38 -3
  213. package/dist/workspaces/index.js.map +1 -1
  214. package/dist/workspaces/workspace-type.d.ts +29 -0
  215. package/node_modules/@arbidocs/coedit/package.json +1 -1
  216. package/package.json +10 -4
  217. package/dist/StreamedArtifactEditor-EEYAXJ4H.cjs.map +0 -1
  218. package/dist/StreamedArtifactEditor-TDATDYD2.js.map +0 -1
  219. package/dist/chunk-3BJLNKOB.cjs.map +0 -1
  220. package/dist/chunk-76JDDMSP.js +0 -31
  221. package/dist/chunk-76JDDMSP.js.map +0 -1
  222. package/dist/chunk-A7NCSZAP.cjs.map +0 -1
  223. package/dist/chunk-C54XEN5T.cjs +0 -34
  224. package/dist/chunk-C54XEN5T.cjs.map +0 -1
  225. package/dist/chunk-CJBN5HIS.js.map +0 -1
  226. package/dist/chunk-GYCQ3FNL.js.map +0 -1
  227. package/dist/chunk-IBZJYCYM.js.map +0 -1
  228. package/dist/chunk-INW76PEL.cjs.map +0 -1
  229. package/dist/chunk-KELGOCJA.js.map +0 -1
  230. package/dist/chunk-MUMH3Z6K.cjs.map +0 -1
  231. package/dist/chunk-NZUQFF35.cjs.map +0 -1
  232. package/dist/chunk-OYMWV45N.js.map +0 -1
  233. package/dist/chunk-SWQX6CTT.cjs.map +0 -1
  234. package/dist/chunk-ZCHSJUCI.js.map +0 -1
  235. package/dist/facts/timezone.d.ts +0 -4
  236. package/dist/settings/FirmPool.d.ts +0 -82
@@ -1,19 +1,19 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkOR4CO743_cjs = require('../chunk-OR4CO743.cjs');
5
4
  var chunk223D4727_cjs = require('../chunk-223D4727.cjs');
6
- var chunkA7NCSZAP_cjs = require('../chunk-A7NCSZAP.cjs');
5
+ var chunkAAFX64WD_cjs = require('../chunk-AAFX64WD.cjs');
6
+ var chunkQZTNTP75_cjs = require('../chunk-QZTNTP75.cjs');
7
7
  var chunkS5HZBXZA_cjs = require('../chunk-S5HZBXZA.cjs');
8
- var chunkN26CXGXC_cjs = require('../chunk-N26CXGXC.cjs');
9
8
  var chunkDVUZTGVL_cjs = require('../chunk-DVUZTGVL.cjs');
9
+ var chunkN26CXGXC_cjs = require('../chunk-N26CXGXC.cjs');
10
10
  require('../chunk-ADOKTJHV.cjs');
11
- var chunkZAVEMQ37_cjs = require('../chunk-ZAVEMQ37.cjs');
11
+ var chunkDWZXSPMB_cjs = require('../chunk-DWZXSPMB.cjs');
12
12
  var chunk7RGLTF76_cjs = require('../chunk-7RGLTF76.cjs');
13
- var chunkULWRNGGE_cjs = require('../chunk-ULWRNGGE.cjs');
14
13
  var chunk32HW2Q33_cjs = require('../chunk-32HW2Q33.cjs');
15
14
  require('../chunk-PPCATBOY.cjs');
16
15
  var chunkMHVNT4J3_cjs = require('../chunk-MHVNT4J3.cjs');
16
+ var chunkULWRNGGE_cjs = require('../chunk-ULWRNGGE.cjs');
17
17
  var chunkKDG6FER6_cjs = require('../chunk-KDG6FER6.cjs');
18
18
  require('../chunk-DES3K4SD.cjs');
19
19
  var RadioGroupPrimitive = require('@radix-ui/react-radio-group');
@@ -145,6 +145,22 @@ function FloatingPanel({
145
145
  }
146
146
  );
147
147
  }
148
+ var INTERACTIVE_SELECTOR = 'button, input, select, a, [role="tab"], [role="radio"]';
149
+ function DraggableHeader({ onDragStart, children }) {
150
+ return /* @__PURE__ */ jsxRuntime.jsx(
151
+ "div",
152
+ {
153
+ className: "flex-shrink-0",
154
+ onMouseDown: onDragStart ? (e) => {
155
+ const target = e.target;
156
+ if (target.closest(INTERACTIVE_SELECTOR)) return;
157
+ onDragStart(e);
158
+ } : void 0,
159
+ style: onDragStart ? { cursor: "move" } : void 0,
160
+ children
161
+ }
162
+ );
163
+ }
148
164
  function PanelFrame({ testId, className, children }) {
149
165
  return /* @__PURE__ */ jsxRuntime.jsx(
150
166
  "div",
@@ -675,7 +691,7 @@ function JsonTree({
675
691
  level = 0,
676
692
  path = [],
677
693
  resolveHint,
678
- formatValue
694
+ formatValue: formatValue2
679
695
  }) {
680
696
  const [isExpanded, setIsExpanded] = react.useState(defaultExpanded || level < 2);
681
697
  const [copied, setCopied] = react.useState(false);
@@ -703,7 +719,7 @@ function JsonTree({
703
719
  const isArray = Array.isArray(data);
704
720
  const isObject = typeof data === "object" && data !== null && !isArray;
705
721
  if (!isObject && !isArray) {
706
- const displayValue = hint && formatValue ? formatValue(data, hint) : plainValue(data);
722
+ const displayValue = hint && formatValue2 ? formatValue2(data, hint) : plainValue(data);
707
723
  return /* @__PURE__ */ jsxRuntime.jsxs(
708
724
  "div",
709
725
  {
@@ -783,13 +799,179 @@ function JsonTree({
783
799
  level: level + 1,
784
800
  path: currentPath,
785
801
  resolveHint,
786
- formatValue
802
+ formatValue: formatValue2
787
803
  },
788
804
  key
789
805
  );
790
806
  }) })
791
807
  ] });
792
808
  }
809
+
810
+ // src/settings/message-schema-hints.ts
811
+ var messageFieldHints = {
812
+ role: {
813
+ displayName: "Role",
814
+ formatType: "enum",
815
+ description: "Message role (user, assistant, or system)"
816
+ },
817
+ content: {
818
+ displayName: "Content",
819
+ formatType: "long-string",
820
+ description: "Message content text"
821
+ },
822
+ created_at: {
823
+ displayName: "Created At",
824
+ formatType: "timestamp",
825
+ description: "Message creation timestamp"
826
+ },
827
+ external_id: {
828
+ displayName: "Message ID",
829
+ formatType: "id",
830
+ description: "External message identifier"
831
+ },
832
+ conversation_ext_id: {
833
+ displayName: "Conversation ID",
834
+ formatType: "id",
835
+ description: "Parent conversation identifier"
836
+ },
837
+ parent_message_ext_id: {
838
+ displayName: "Parent Message ID",
839
+ formatType: "id",
840
+ description: "Parent message identifier (null for first message)"
841
+ },
842
+ created_by_ext_id: {
843
+ displayName: "Created By",
844
+ formatType: "id",
845
+ description: "User who created this message"
846
+ },
847
+ config_ext_id: {
848
+ displayName: "Config ID",
849
+ formatType: "id",
850
+ description: "Configuration used for this message"
851
+ },
852
+ shared: {
853
+ displayName: "Shared",
854
+ formatType: "boolean",
855
+ description: "Whether message is shared"
856
+ },
857
+ tools: {
858
+ displayName: "Tools",
859
+ formatType: "json",
860
+ description: "Tool outputs (citations, retrieval, trace)"
861
+ },
862
+ meta: {
863
+ displayName: "Metadata",
864
+ formatType: "json",
865
+ description: "Additional metadata"
866
+ }
867
+ };
868
+ var traceToolFieldHints = {
869
+ name: {
870
+ displayName: "Tool Name",
871
+ formatType: "enum",
872
+ description: "Execution trace tool"
873
+ },
874
+ description: {
875
+ displayName: "Description",
876
+ formatType: "string",
877
+ description: "Tool description"
878
+ },
879
+ trace_id: {
880
+ displayName: "Trace ID",
881
+ formatType: "id",
882
+ description: "Unique trace identifier"
883
+ },
884
+ start_time: {
885
+ displayName: "Start Time",
886
+ formatType: "timestamp",
887
+ description: "When execution started"
888
+ },
889
+ duration_seconds: {
890
+ displayName: "Duration (seconds)",
891
+ formatType: "number",
892
+ description: "Total execution time"
893
+ },
894
+ steps: {
895
+ displayName: "Execution Steps",
896
+ formatType: "json",
897
+ description: "Full execution trace with all steps"
898
+ }
899
+ };
900
+ var citationToolFieldHints = {
901
+ name: {
902
+ displayName: "Tool Name",
903
+ formatType: "enum",
904
+ description: "Model citation tool"
905
+ },
906
+ tool_responses: {
907
+ displayName: "Citations",
908
+ formatType: "json",
909
+ description: "Citation data mapped by citation number"
910
+ }
911
+ };
912
+ function getFieldHint(path, fieldName) {
913
+ if (path.length === 1 && path[0] === "message") {
914
+ return messageFieldHints[fieldName] || null;
915
+ }
916
+ if (path.length >= 3 && path[0] === "message" && path[1] === "tools" && path[2] === "trace") {
917
+ return traceToolFieldHints[fieldName] || null;
918
+ }
919
+ if (path.length >= 3 && path[0] === "message" && path[1] === "tools" && path[2] === "model_citations") {
920
+ return citationToolFieldHints[fieldName] || null;
921
+ }
922
+ if (fieldName === "external_id" || fieldName.endsWith("_ext_id")) {
923
+ return { formatType: "id", displayName: fieldName.replace(/_/g, " ") };
924
+ }
925
+ if (fieldName === "created_at" || fieldName === "updated_at" || fieldName.endsWith("_at")) {
926
+ return { formatType: "timestamp", displayName: fieldName.replace(/_/g, " ") };
927
+ }
928
+ if (fieldName.includes("time") && !fieldName.includes("duration")) {
929
+ return { formatType: "timestamp" };
930
+ }
931
+ if (fieldName.includes("duration")) {
932
+ return { formatType: "number", description: "Duration in seconds" };
933
+ }
934
+ if (path.length >= 2 && path[path.length - 2] === "tools" && fieldName === "trace") {
935
+ return {
936
+ displayName: "\u{1F50D} Execution Trace",
937
+ formatType: "json",
938
+ description: "Complete execution trace with all steps and timing"
939
+ };
940
+ }
941
+ return null;
942
+ }
943
+ function formatValue(value, hint) {
944
+ if (value === null) return "null";
945
+ if (value === void 0) return "undefined";
946
+ if (hint?.formatType === "timestamp" && typeof value === "string") {
947
+ try {
948
+ const date = new Date(value);
949
+ if (!isNaN(date.getTime())) {
950
+ return `${date.toLocaleString()} (${value})`;
951
+ }
952
+ } catch {
953
+ }
954
+ }
955
+ if (hint?.formatType === "timestamp" && typeof value === "number") {
956
+ const date = new Date(value * 1e3);
957
+ return `${date.toLocaleString()} (${value})`;
958
+ }
959
+ if (hint?.formatType === "id" && typeof value === "string") {
960
+ if (value.length > 20) {
961
+ return `${value.substring(0, 16)}...${value.substring(value.length - 4)}`;
962
+ }
963
+ }
964
+ if (typeof value === "string") {
965
+ if (value.length > 100) {
966
+ return `"${value.substring(0, 97)}..." (${value.length} chars)`;
967
+ }
968
+ return `"${value}"`;
969
+ }
970
+ return String(value);
971
+ }
972
+ function MessageJsonTree(props) {
973
+ return /* @__PURE__ */ jsxRuntime.jsx(JsonTree, { ...props, resolveHint: getFieldHint, formatValue });
974
+ }
793
975
  var DEFAULT_TIPS_EDITOR_LABELS = {
794
976
  titleList: "Edit tips",
795
977
  titleNew: "New tip",
@@ -1310,6 +1492,64 @@ function SyncFolderStatus({
1310
1492
  }
1311
1493
  );
1312
1494
  }
1495
+ function FilterChip({
1496
+ label,
1497
+ state,
1498
+ icon,
1499
+ color,
1500
+ onDismiss,
1501
+ dismissLabel,
1502
+ className,
1503
+ testId
1504
+ }) {
1505
+ const isExclude = state === "exclude";
1506
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1507
+ "span",
1508
+ {
1509
+ className: ui.cn(
1510
+ "inline-flex items-center gap-1 text-xs font-medium rounded px-1.5 py-0.5 flex-shrink-0 border",
1511
+ isExclude ? "bg-background text-red-text border-red-text" : "bg-primary text-white border-primary",
1512
+ className
1513
+ ),
1514
+ "data-state": state,
1515
+ "data-testid": testId,
1516
+ children: [
1517
+ color ? (
1518
+ /* Filled square for include; empty square for exclude */
1519
+ isExclude ? /* @__PURE__ */ jsxRuntime.jsx(
1520
+ "span",
1521
+ {
1522
+ className: "w-3.5 h-3.5 rounded flex-shrink-0 border-2",
1523
+ style: { borderColor: color }
1524
+ }
1525
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
1526
+ "span",
1527
+ {
1528
+ className: "w-3.5 h-3.5 rounded flex items-center justify-center flex-shrink-0",
1529
+ style: { backgroundColor: color },
1530
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "w-2.5 h-2.5 text-white", strokeWidth: 3 })
1531
+ }
1532
+ )
1533
+ ) : icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-none", children: icon }),
1534
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "truncate max-w-[80px]", title: label, children: [
1535
+ isExclude && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "opacity-70 mr-0.5", children: "Not" }),
1536
+ label
1537
+ ] }),
1538
+ onDismiss && /* @__PURE__ */ jsxRuntime.jsx(
1539
+ "button",
1540
+ {
1541
+ type: "button",
1542
+ onClick: onDismiss,
1543
+ "aria-label": dismissLabel ?? `Remove ${label}`,
1544
+ className: "flex-none ml-0.5 opacity-70 hover:opacity-100",
1545
+ "data-testid": testId ? `${testId}-remove` : void 0,
1546
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-3 w-3", strokeWidth: 2.5 })
1547
+ }
1548
+ )
1549
+ ]
1550
+ }
1551
+ );
1552
+ }
1313
1553
  var planBadgeVariants = classVarianceAuthority.cva(
1314
1554
  "inline-flex flex-shrink-0 items-center rounded-full border font-semibold leading-none",
1315
1555
  {
@@ -1347,6 +1587,50 @@ function PlanBadge({
1347
1587
  }
1348
1588
  );
1349
1589
  }
1590
+ function MoreInfo({
1591
+ title,
1592
+ children,
1593
+ label = "More info",
1594
+ testId = "more-info",
1595
+ className
1596
+ }) {
1597
+ const [open, setOpen] = react.useState(false);
1598
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1599
+ /* @__PURE__ */ jsxRuntime.jsxs(
1600
+ "button",
1601
+ {
1602
+ type: "button",
1603
+ onClick: () => setOpen(true),
1604
+ className: ui.cn(
1605
+ "inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded-sm text-xs font-medium text-muted-foreground underline-offset-2 hover:text-foreground hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:min-h-11",
1606
+ className
1607
+ ),
1608
+ "data-slot": "more-info",
1609
+ "data-testid": testId,
1610
+ children: [
1611
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Info, { className: "size-3.5", "aria-hidden": true }),
1612
+ label
1613
+ ]
1614
+ }
1615
+ ),
1616
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Dialog, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogContent, { className: "sm:max-w-md", "data-testid": `${testId}-dialog`, children: [
1617
+ /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogHeader, { children: [
1618
+ /* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: title }),
1619
+ /* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { className: "sr-only", children: title })
1620
+ ] }),
1621
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3 text-sm leading-relaxed text-muted-foreground", children })
1622
+ ] }) })
1623
+ ] });
1624
+ }
1625
+ function MoreInfoList({ items }) {
1626
+ return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "space-y-2", "data-slot": "more-info-list", children: items.map((item, i) => /* @__PURE__ */ jsxRuntime.jsxs("li", { children: [
1627
+ item.term && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-medium text-foreground", children: [
1628
+ item.term,
1629
+ ". "
1630
+ ] }),
1631
+ item.text
1632
+ ] }, item.term ?? i)) });
1633
+ }
1350
1634
  var barColor = (pct) => pct >= 100 ? "bg-red-500" : pct >= 50 ? "bg-yellow-500" : "bg-primary";
1351
1635
  var valueColor2 = (pct) => pct >= 100 ? "text-red-text" : pct >= 80 ? "text-yellow-text" : "text-muted-foreground";
1352
1636
  function QuotaMeter({
@@ -1438,9 +1722,10 @@ var DEFAULT_PLAN_CARD_LABELS = {
1438
1722
  pricingExplainer: "How pricing works",
1439
1723
  explainerTiers: [
1440
1724
  "AI usage and storage are shared by everyone in the project. AI usage resets monthly.",
1441
- "Need more? Add \xA325 of AI usage or 25 GB at a time. Add-ons renew until you reduce them.",
1442
- "Automatic top-ups stay within your monthly usage cap (\xA3100 by default; \xA30 = no automatic top-ups, or no limit). Adding by hand is never capped.",
1443
- "Add-ons start now. Downgrades, billing switches and add-on reductions start at the end of the period. No refunds.",
1725
+ "Need more? Add \xA325 of AI usage or 25 GB at a time, at checkout or later. Add-ons renew with the plan until you reduce them.",
1726
+ "Automatic top-ups add one more step when you run low, up to your monthly usage cap (\xA3100 by default; \xA30 = none; or no limit). Adding by hand is never capped.",
1727
+ "Add-ons start now: AI usage is charged in full, storage only for the rest of the period. Downgrades, billing switches and reductions start at the end of the period. No refunds.",
1728
+ "Annual plans are 25% off, add-ons included.",
1444
1729
  "Prices are shown + VAT; the total for your country is shown before you pay."
1445
1730
  ],
1446
1731
  explainerAiUsage: "About 1p of AI usage buys one moderately complex request, or reading ~25 documents, on a Standard model. Premium models can cost 10\u2013100\xD7 more.",
@@ -1631,45 +1916,21 @@ function PlanInfoPopover({
1631
1916
  labels
1632
1917
  }) {
1633
1918
  const l = react.useMemo(() => ({ ...DEFAULT_PLAN_CARD_LABELS, ...labels }), [labels]);
1634
- return /* @__PURE__ */ jsxRuntime.jsxs(ui.Popover, { children: [
1635
- /* @__PURE__ */ jsxRuntime.jsx(ui.PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
1636
- ui.Button,
1637
- {
1638
- type: "button",
1639
- variant: "ghost",
1640
- size: "sm",
1641
- className: "gap-1.5 text-sm text-muted-foreground",
1642
- children: [
1643
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Info, { className: "h-4 w-4" }),
1644
- l.pricingExplainer
1645
- ]
1646
- }
1647
- ) }),
1648
- /* @__PURE__ */ jsxRuntime.jsxs(
1649
- ui.PopoverContent,
1650
- {
1651
- side: "top",
1652
- align: "start",
1653
- className: "max-w-screen-safe w-[380px] space-y-3 text-sm leading-relaxed",
1654
- children: [
1655
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-base font-semibold", children: l.pricingExplainer }),
1656
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "list-disc space-y-1 pl-4", children: l.explainerTiers.map((line) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: line }, line)) }),
1657
- /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
1658
- l.explainerAiUsage,
1659
- " ",
1660
- /* @__PURE__ */ jsxRuntime.jsx(
1661
- "button",
1662
- {
1663
- type: "button",
1664
- onClick: onOpenModelList,
1665
- className: "font-medium text-foreground underline underline-offset-2 hover:text-primary/80",
1666
- children: l.seeModelList
1667
- }
1668
- )
1669
- ] })
1670
- ]
1671
- }
1672
- )
1919
+ return /* @__PURE__ */ jsxRuntime.jsxs(MoreInfo, { title: l.pricingExplainer, label: l.pricingExplainer, testId: "pricing-explainer", children: [
1920
+ /* @__PURE__ */ jsxRuntime.jsx(MoreInfoList, { items: l.explainerTiers.map((text) => ({ text })) }),
1921
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
1922
+ l.explainerAiUsage,
1923
+ " ",
1924
+ /* @__PURE__ */ jsxRuntime.jsx(
1925
+ "button",
1926
+ {
1927
+ type: "button",
1928
+ onClick: onOpenModelList,
1929
+ className: "font-medium text-foreground underline underline-offset-2 hover:text-primary/80",
1930
+ children: l.seeModelList
1931
+ }
1932
+ )
1933
+ ] })
1673
1934
  ] });
1674
1935
  }
1675
1936
  var DEFAULT_REFERRAL_REWARD_LABELS = {
@@ -2050,172 +2311,6 @@ function RenameDialog({
2050
2311
  ] })
2051
2312
  ] }) });
2052
2313
  }
2053
- var DEFAULT_FIRM_POOL_SECTION_LABELS = {
2054
- title: "Firm usage",
2055
- licence: "Licence",
2056
- used: "AI usage this month",
2057
- storage: "Storage",
2058
- users: "Internal users",
2059
- premiumOnly: "Standard AI is unlimited; the allowance applies to Premium AI.",
2060
- resets: (date) => `resets ${date}`,
2061
- usageUnknown: "Usage is being calculated.",
2062
- legendLicence: (amount) => `Licence ${amount}`,
2063
- legendTopUps: (amount) => `Top-ups ${amount}`,
2064
- legendAutoRoom: (amount) => `Automatic top-ups may add ${amount}`,
2065
- autoRoomNoLimit: "Automatic top-ups: no limit",
2066
- budget: "Usage budget \u2014 limits automatic top-ups only",
2067
- budgetValue: (left, limit) => `${left} left of ${limit}`,
2068
- autoAddons: (count) => `Automatic top-ups this month: ${count}`,
2069
- autoAddonsOff: "Automatic top-ups are off (\xA30 usage budget).",
2070
- topUpLabel: "Steps to add",
2071
- topUp: "Add AI usage",
2072
- toppingUp: "Adding\u2026",
2073
- topUpHelp: (perStep) => `Each step adds ${perStep} of AI usage a month, pooled across the firm, and renews until reduced.`,
2074
- topUpTotal: (total) => `+${total} of AI usage a month`
2075
- };
2076
- var FIRM_POOL_MAX_TOP_UP = 100;
2077
- var defaultFormat = (gbp) => `\xA3${gbp.toLocaleString("en-GB", { maximumFractionDigits: 2 })}`;
2078
- function FirmPoolSection({
2079
- view,
2080
- formatAmount = defaultFormat,
2081
- onTopUp,
2082
- isToppingUp = false,
2083
- labels,
2084
- testId = "firm-pool"
2085
- }) {
2086
- const l = react.useMemo(() => ({ ...DEFAULT_FIRM_POOL_SECTION_LABELS, ...labels }), [labels]);
2087
- const [count, setCount] = react.useState(1);
2088
- const valid = Number.isInteger(count) && count >= 1 && count <= FIRM_POOL_MAX_TOP_UP;
2089
- const used = view.usedGbp;
2090
- const step = view.addonGbp ?? 25;
2091
- const base = Math.min(view.baseGbp ?? view.totalGbp, view.totalGbp);
2092
- const topUps = Math.max(0, view.totalGbp - base);
2093
- const gb = (n) => `${Math.round(n * 10) / 10} GB`;
2094
- const storage = view.storage;
2095
- const users = view.users;
2096
- return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "space-y-3", "data-testid": testId, children: [
2097
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "px-1 text-sm font-semibold text-foreground", children: l.title }),
2098
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4 px-1", children: [
2099
- view.licence && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-0.5 text-sm", "data-testid": `${testId}-licence`, children: [
2100
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-baseline justify-between gap-x-4", children: [
2101
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium text-foreground", children: l.licence }),
2102
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tabular-nums text-muted-foreground", children: view.licence })
2103
- ] }),
2104
- view.renews && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", "data-testid": `${testId}-renews`, children: view.renews })
2105
- ] }),
2106
- /* @__PURE__ */ jsxRuntime.jsx(
2107
- chunkA7NCSZAP_cjs.UsageMeter,
2108
- {
2109
- label: l.used,
2110
- hint: view.resetsAt ? l.resets(view.resetsAt) : void 0,
2111
- value: `${used != null ? formatAmount(used) : "\u2014"} / ${formatAmount(view.totalGbp)}`,
2112
- allowance: {
2113
- used: used ?? 0,
2114
- plan: base,
2115
- topUps,
2116
- autoRoom: view.autoAddonsOff ? 0 : view.autoRoomGbp
2117
- },
2118
- legend: {
2119
- plan: topUps > 0 || (view.autoRoomGbp ?? 0) > 0 ? l.legendLicence(formatAmount(base)) : void 0,
2120
- topUps: topUps > 0 ? l.legendTopUps(formatAmount(topUps)) : void 0,
2121
- autoRoom: view.autoRoomGbp === null ? l.autoRoomNoLimit : view.autoRoomGbp ? l.legendAutoRoom(formatAmount(view.autoRoomGbp)) : void 0
2122
- },
2123
- details: used == null ? /* @__PURE__ */ jsxRuntime.jsx("p", { children: l.usageUnknown }) : void 0,
2124
- testId: `${testId}-usage`
2125
- }
2126
- ),
2127
- storage && /* @__PURE__ */ jsxRuntime.jsx(
2128
- chunkA7NCSZAP_cjs.UsageMeter,
2129
- {
2130
- label: l.storage,
2131
- value: `${storage.usedGb != null ? gb(storage.usedGb) : "\u2014"} / ${gb(storage.totalGb)}`,
2132
- allowance: {
2133
- used: storage.usedGb ?? 0,
2134
- plan: storage.totalGb - (storage.autoAddedGb ?? 0),
2135
- topUps: storage.autoAddedGb ?? 0
2136
- },
2137
- legend: {
2138
- plan: storage.autoAddedGb ? l.legendLicence(gb(storage.totalGb - storage.autoAddedGb)) : void 0,
2139
- topUps: storage.autoAddedGb ? l.legendTopUps(gb(storage.autoAddedGb)) : void 0
2140
- },
2141
- testId: `${testId}-storage`
2142
- }
2143
- ),
2144
- users && /* @__PURE__ */ jsxRuntime.jsx(
2145
- chunkA7NCSZAP_cjs.UsageMeter,
2146
- {
2147
- label: l.users,
2148
- value: `${users.used ?? "\u2014"} / ${users.total}`,
2149
- allowance: { used: users.used ?? 0, plan: users.total },
2150
- testId: `${testId}-users`
2151
- }
2152
- ),
2153
- view.autoAddons && /* @__PURE__ */ jsxRuntime.jsx(
2154
- chunkA7NCSZAP_cjs.UsageMeter,
2155
- {
2156
- label: l.budget,
2157
- value: view.autoAddons.left ? l.budgetValue(view.autoAddons.left, view.autoAddons.limit) : `${view.autoAddons.spent} / ${view.autoAddons.limit}`,
2158
- pct: view.autoAddons.pct,
2159
- details: /* @__PURE__ */ jsxRuntime.jsxs("p", { "data-testid": `${testId}-auto-addons-count`, children: [
2160
- l.autoAddons(view.autoAddons.count),
2161
- view.autoAddons.added ? ` (${view.autoAddons.added})` : ""
2162
- ] }),
2163
- testId: `${testId}-auto-addons`
2164
- }
2165
- ),
2166
- view.autoAddonsOff && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", "data-testid": `${testId}-auto-addons-off`, children: l.autoAddonsOff }),
2167
- view.premiumOnly && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", "data-testid": `${testId}-premium-only`, children: l.premiumOnly }),
2168
- onTopUp && /* @__PURE__ */ jsxRuntime.jsxs(
2169
- "form",
2170
- {
2171
- className: "flex flex-wrap items-end gap-2",
2172
- "data-testid": `${testId}-top-up`,
2173
- onSubmit: (event) => {
2174
- event.preventDefault();
2175
- if (valid && !isToppingUp) onTopUp(count);
2176
- },
2177
- children: [
2178
- /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex flex-col gap-1 text-xs text-muted-foreground", children: [
2179
- l.topUpLabel,
2180
- /* @__PURE__ */ jsxRuntime.jsx(
2181
- ui.Input,
2182
- {
2183
- type: "number",
2184
- min: 1,
2185
- max: FIRM_POOL_MAX_TOP_UP,
2186
- step: 1,
2187
- value: Number.isNaN(count) ? "" : count,
2188
- onChange: (event) => setCount(event.target.valueAsNumber),
2189
- className: "h-8 w-24",
2190
- "data-testid": `${testId}-top-up-count`
2191
- }
2192
- )
2193
- ] }),
2194
- /* @__PURE__ */ jsxRuntime.jsx(
2195
- ui.Button,
2196
- {
2197
- type: "submit",
2198
- size: "sm",
2199
- disabled: !valid || isToppingUp,
2200
- "data-testid": `${testId}-top-up-button`,
2201
- children: isToppingUp ? l.toppingUp : l.topUp
2202
- }
2203
- ),
2204
- valid && /* @__PURE__ */ jsxRuntime.jsx(
2205
- "span",
2206
- {
2207
- className: "self-center text-sm tabular-nums text-foreground",
2208
- "data-testid": `${testId}-top-up-total`,
2209
- children: l.topUpTotal(formatAmount(count * step))
2210
- }
2211
- ),
2212
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "w-full text-xs text-muted-foreground", children: l.topUpHelp(formatAmount(step)) })
2213
- ]
2214
- }
2215
- )
2216
- ] })
2217
- ] });
2218
- }
2219
2314
  var DEFAULT_SUPPORT_PANEL_LABELS = {
2220
2315
  support: "Support",
2221
2316
  userGuide: "User Guide"
@@ -2345,7 +2440,7 @@ function WelcomeDialog({
2345
2440
  planBadge
2346
2441
  ] }),
2347
2442
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: quotas.map((quota) => /* @__PURE__ */ jsxRuntime.jsx(
2348
- chunkA7NCSZAP_cjs.UsageMeter,
2443
+ chunkQZTNTP75_cjs.UsageMeter,
2349
2444
  {
2350
2445
  icon: quota.icon,
2351
2446
  label: quota.label,
@@ -2468,7 +2563,7 @@ function UsageLineChart({
2468
2563
  dates,
2469
2564
  series,
2470
2565
  formatDate,
2471
- formatValue,
2566
+ formatValue: formatValue2,
2472
2567
  emptyLabel,
2473
2568
  labels
2474
2569
  }) {
@@ -2582,7 +2677,7 @@ function UsageLineChart({
2582
2677
  s.key,
2583
2678
  ":"
2584
2679
  ] }),
2585
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium tabular-nums", children: formatValue(s.values[hoverIdx]) })
2680
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium tabular-nums", children: formatValue2(s.values[hoverIdx]) })
2586
2681
  ] }, s.key))
2587
2682
  ] })
2588
2683
  ] });
@@ -3217,7 +3312,7 @@ function SubscriptionStatusView({
3217
3312
  ] }),
3218
3313
  !resetDate && isCanceling && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-yellow-text", children: l.cancelsAtEndOfBillingPeriod }),
3219
3314
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: meters.map((m) => /* @__PURE__ */ jsxRuntime.jsx(
3220
- chunkA7NCSZAP_cjs.UsageMeter,
3315
+ chunkQZTNTP75_cjs.UsageMeter,
3221
3316
  {
3222
3317
  icon: m.icon,
3223
3318
  label: m.label,
@@ -3585,145 +3680,145 @@ function ErrorDialogView({
3585
3680
  ) });
3586
3681
  }
3587
3682
 
3683
+ Object.defineProperty(exports, "ModalBreadcrumbHeader", {
3684
+ enumerable: true,
3685
+ get: function () { return chunk223D4727_cjs.ModalBreadcrumbHeader; }
3686
+ });
3687
+ Object.defineProperty(exports, "ModalCrumbs", {
3688
+ enumerable: true,
3689
+ get: function () { return chunk223D4727_cjs.ModalCrumbs; }
3690
+ });
3588
3691
  Object.defineProperty(exports, "ActiveSessionsDialog", {
3589
3692
  enumerable: true,
3590
- get: function () { return chunkOR4CO743_cjs.ActiveSessionsDialog; }
3693
+ get: function () { return chunkAAFX64WD_cjs.ActiveSessionsDialog; }
3591
3694
  });
3592
3695
  Object.defineProperty(exports, "AvatarPicker", {
3593
3696
  enumerable: true,
3594
- get: function () { return chunkOR4CO743_cjs.AvatarPicker; }
3697
+ get: function () { return chunkAAFX64WD_cjs.AvatarPicker; }
3595
3698
  });
3596
3699
  Object.defineProperty(exports, "DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS", {
3597
3700
  enumerable: true,
3598
- get: function () { return chunkOR4CO743_cjs.DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS; }
3701
+ get: function () { return chunkAAFX64WD_cjs.DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS; }
3599
3702
  });
3600
3703
  Object.defineProperty(exports, "DEFAULT_AVATAR_PICKER_LABELS", {
3601
3704
  enumerable: true,
3602
- get: function () { return chunkOR4CO743_cjs.DEFAULT_AVATAR_PICKER_LABELS; }
3705
+ get: function () { return chunkAAFX64WD_cjs.DEFAULT_AVATAR_PICKER_LABELS; }
3603
3706
  });
3604
3707
  Object.defineProperty(exports, "DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS", {
3605
3708
  enumerable: true,
3606
- get: function () { return chunkOR4CO743_cjs.DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS; }
3709
+ get: function () { return chunkAAFX64WD_cjs.DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS; }
3607
3710
  });
3608
3711
  Object.defineProperty(exports, "DEFAULT_IDENTITY_VERIFICATION_LABELS", {
3609
3712
  enumerable: true,
3610
- get: function () { return chunkOR4CO743_cjs.DEFAULT_IDENTITY_VERIFICATION_LABELS; }
3713
+ get: function () { return chunkAAFX64WD_cjs.DEFAULT_IDENTITY_VERIFICATION_LABELS; }
3611
3714
  });
3612
3715
  Object.defineProperty(exports, "DEFAULT_LOGOUT_DIALOG_LABELS", {
3613
3716
  enumerable: true,
3614
- get: function () { return chunkOR4CO743_cjs.DEFAULT_LOGOUT_DIALOG_LABELS; }
3717
+ get: function () { return chunkAAFX64WD_cjs.DEFAULT_LOGOUT_DIALOG_LABELS; }
3615
3718
  });
3616
3719
  Object.defineProperty(exports, "DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS", {
3617
3720
  enumerable: true,
3618
- get: function () { return chunkOR4CO743_cjs.DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS; }
3721
+ get: function () { return chunkAAFX64WD_cjs.DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS; }
3619
3722
  });
3620
3723
  Object.defineProperty(exports, "DEFAULT_PROFILE_CARD_LABELS", {
3621
3724
  enumerable: true,
3622
- get: function () { return chunkOR4CO743_cjs.DEFAULT_PROFILE_CARD_LABELS; }
3725
+ get: function () { return chunkAAFX64WD_cjs.DEFAULT_PROFILE_CARD_LABELS; }
3623
3726
  });
3624
3727
  Object.defineProperty(exports, "DEFAULT_SETTINGS_DANGER_ZONE_LABELS", {
3625
3728
  enumerable: true,
3626
- get: function () { return chunkOR4CO743_cjs.DEFAULT_SETTINGS_DANGER_ZONE_LABELS; }
3729
+ get: function () { return chunkAAFX64WD_cjs.DEFAULT_SETTINGS_DANGER_ZONE_LABELS; }
3627
3730
  });
3628
3731
  Object.defineProperty(exports, "DeleteAccountDialog", {
3629
3732
  enumerable: true,
3630
- get: function () { return chunkOR4CO743_cjs.DeleteAccountDialog; }
3733
+ get: function () { return chunkAAFX64WD_cjs.DeleteAccountDialog; }
3631
3734
  });
3632
3735
  Object.defineProperty(exports, "EMAIL_NOTIFICATION_CATEGORIES", {
3633
3736
  enumerable: true,
3634
- get: function () { return chunkOR4CO743_cjs.EMAIL_NOTIFICATION_CATEGORIES; }
3737
+ get: function () { return chunkAAFX64WD_cjs.EMAIL_NOTIFICATION_CATEGORIES; }
3635
3738
  });
3636
3739
  Object.defineProperty(exports, "EMAIL_NOTIFICATION_KEYS", {
3637
3740
  enumerable: true,
3638
- get: function () { return chunkOR4CO743_cjs.EMAIL_NOTIFICATION_KEYS; }
3741
+ get: function () { return chunkAAFX64WD_cjs.EMAIL_NOTIFICATION_KEYS; }
3639
3742
  });
3640
3743
  Object.defineProperty(exports, "IdentityVerificationCard", {
3641
3744
  enumerable: true,
3642
- get: function () { return chunkOR4CO743_cjs.IdentityVerificationCard; }
3745
+ get: function () { return chunkAAFX64WD_cjs.IdentityVerificationCard; }
3643
3746
  });
3644
3747
  Object.defineProperty(exports, "IdentityVerificationDialog", {
3645
3748
  enumerable: true,
3646
- get: function () { return chunkOR4CO743_cjs.IdentityVerificationDialog; }
3749
+ get: function () { return chunkAAFX64WD_cjs.IdentityVerificationDialog; }
3647
3750
  });
3648
3751
  Object.defineProperty(exports, "LogoutDialog", {
3649
3752
  enumerable: true,
3650
- get: function () { return chunkOR4CO743_cjs.LogoutDialog; }
3753
+ get: function () { return chunkAAFX64WD_cjs.LogoutDialog; }
3651
3754
  });
3652
3755
  Object.defineProperty(exports, "NotificationCategoryList", {
3653
3756
  enumerable: true,
3654
- get: function () { return chunkOR4CO743_cjs.NotificationCategoryList; }
3757
+ get: function () { return chunkAAFX64WD_cjs.NotificationCategoryList; }
3655
3758
  });
3656
3759
  Object.defineProperty(exports, "PasswordChangeDialog", {
3657
3760
  enumerable: true,
3658
- get: function () { return chunkOR4CO743_cjs.PasswordChangeDialog; }
3761
+ get: function () { return chunkAAFX64WD_cjs.PasswordChangeDialog; }
3659
3762
  });
3660
3763
  Object.defineProperty(exports, "ProfileCard", {
3661
3764
  enumerable: true,
3662
- get: function () { return chunkOR4CO743_cjs.ProfileCard; }
3765
+ get: function () { return chunkAAFX64WD_cjs.ProfileCard; }
3663
3766
  });
3664
3767
  Object.defineProperty(exports, "RequireVerified", {
3665
3768
  enumerable: true,
3666
- get: function () { return chunkOR4CO743_cjs.RequireVerified; }
3769
+ get: function () { return chunkAAFX64WD_cjs.RequireVerified; }
3667
3770
  });
3668
3771
  Object.defineProperty(exports, "SettingsActionRow", {
3669
3772
  enumerable: true,
3670
- get: function () { return chunkOR4CO743_cjs.SettingsActionRow; }
3773
+ get: function () { return chunkAAFX64WD_cjs.SettingsActionRow; }
3671
3774
  });
3672
3775
  Object.defineProperty(exports, "SettingsCard", {
3673
3776
  enumerable: true,
3674
- get: function () { return chunkOR4CO743_cjs.SettingsCard; }
3777
+ get: function () { return chunkAAFX64WD_cjs.SettingsCard; }
3675
3778
  });
3676
3779
  Object.defineProperty(exports, "SettingsDangerZone", {
3677
3780
  enumerable: true,
3678
- get: function () { return chunkOR4CO743_cjs.SettingsDangerZone; }
3781
+ get: function () { return chunkAAFX64WD_cjs.SettingsDangerZone; }
3679
3782
  });
3680
3783
  Object.defineProperty(exports, "SettingsPanel", {
3681
3784
  enumerable: true,
3682
- get: function () { return chunkOR4CO743_cjs.SettingsPanel; }
3785
+ get: function () { return chunkAAFX64WD_cjs.SettingsPanel; }
3683
3786
  });
3684
3787
  Object.defineProperty(exports, "SettingsRow", {
3685
3788
  enumerable: true,
3686
- get: function () { return chunkOR4CO743_cjs.SettingsRow; }
3789
+ get: function () { return chunkAAFX64WD_cjs.SettingsRow; }
3687
3790
  });
3688
3791
  Object.defineProperty(exports, "SettingsSection", {
3689
3792
  enumerable: true,
3690
- get: function () { return chunkOR4CO743_cjs.SettingsSection; }
3793
+ get: function () { return chunkAAFX64WD_cjs.SettingsSection; }
3691
3794
  });
3692
3795
  Object.defineProperty(exports, "SettingsSwitchGroup", {
3693
3796
  enumerable: true,
3694
- get: function () { return chunkOR4CO743_cjs.SettingsSwitchGroup; }
3797
+ get: function () { return chunkAAFX64WD_cjs.SettingsSwitchGroup; }
3695
3798
  });
3696
3799
  Object.defineProperty(exports, "SettingsSwitchRow", {
3697
3800
  enumerable: true,
3698
- get: function () { return chunkOR4CO743_cjs.SettingsSwitchRow; }
3801
+ get: function () { return chunkAAFX64WD_cjs.SettingsSwitchRow; }
3699
3802
  });
3700
3803
  Object.defineProperty(exports, "formatSessionTtl", {
3701
3804
  enumerable: true,
3702
- get: function () { return chunkOR4CO743_cjs.formatSessionTtl; }
3805
+ get: function () { return chunkAAFX64WD_cjs.formatSessionTtl; }
3703
3806
  });
3704
3807
  Object.defineProperty(exports, "toActiveSessionViews", {
3705
3808
  enumerable: true,
3706
- get: function () { return chunkOR4CO743_cjs.toActiveSessionViews; }
3809
+ get: function () { return chunkAAFX64WD_cjs.toActiveSessionViews; }
3707
3810
  });
3708
3811
  Object.defineProperty(exports, "toDeleteBlockerViews", {
3709
3812
  enumerable: true,
3710
- get: function () { return chunkOR4CO743_cjs.toDeleteBlockerViews; }
3813
+ get: function () { return chunkAAFX64WD_cjs.toDeleteBlockerViews; }
3711
3814
  });
3712
3815
  Object.defineProperty(exports, "toLogoutSessionViews", {
3713
3816
  enumerable: true,
3714
- get: function () { return chunkOR4CO743_cjs.toLogoutSessionViews; }
3817
+ get: function () { return chunkAAFX64WD_cjs.toLogoutSessionViews; }
3715
3818
  });
3716
3819
  Object.defineProperty(exports, "toNotificationCategories", {
3717
3820
  enumerable: true,
3718
- get: function () { return chunkOR4CO743_cjs.toNotificationCategories; }
3719
- });
3720
- Object.defineProperty(exports, "ModalBreadcrumbHeader", {
3721
- enumerable: true,
3722
- get: function () { return chunk223D4727_cjs.ModalBreadcrumbHeader; }
3723
- });
3724
- Object.defineProperty(exports, "ModalCrumbs", {
3725
- enumerable: true,
3726
- get: function () { return chunk223D4727_cjs.ModalCrumbs; }
3821
+ get: function () { return chunkAAFX64WD_cjs.toNotificationCategories; }
3727
3822
  });
3728
3823
  Object.defineProperty(exports, "DEFAULT_DOCUMENT_PICKER_LABELS", {
3729
3824
  enumerable: true,
@@ -3747,11 +3842,11 @@ Object.defineProperty(exports, "TriStateFilterMenu", {
3747
3842
  });
3748
3843
  Object.defineProperty(exports, "ConfirmDialog", {
3749
3844
  enumerable: true,
3750
- get: function () { return chunkZAVEMQ37_cjs.ConfirmDialog; }
3845
+ get: function () { return chunkDWZXSPMB_cjs.ConfirmDialog; }
3751
3846
  });
3752
3847
  Object.defineProperty(exports, "DEFAULT_CONFIRM_DIALOG_LABELS", {
3753
3848
  enumerable: true,
3754
- get: function () { return chunkZAVEMQ37_cjs.DEFAULT_CONFIRM_DIALOG_LABELS; }
3849
+ get: function () { return chunkDWZXSPMB_cjs.DEFAULT_CONFIRM_DIALOG_LABELS; }
3755
3850
  });
3756
3851
  Object.defineProperty(exports, "MODAL_SECTION_TITLE_CLASS", {
3757
3852
  enumerable: true,
@@ -3788,7 +3883,6 @@ exports.DEFAULT_CONVERSATION_TITLE_SECTION_LABELS = DEFAULT_CONVERSATION_TITLE_S
3788
3883
  exports.DEFAULT_DAILY_CAP_FIELD_LABELS = DEFAULT_DAILY_CAP_FIELD_LABELS;
3789
3884
  exports.DEFAULT_EMAIL_WORKSPACE_DIALOG_LABELS = DEFAULT_EMAIL_WORKSPACE_DIALOG_LABELS;
3790
3885
  exports.DEFAULT_ERROR_DIALOG_LABELS = DEFAULT_ERROR_DIALOG_LABELS;
3791
- exports.DEFAULT_FIRM_POOL_SECTION_LABELS = DEFAULT_FIRM_POOL_SECTION_LABELS;
3792
3886
  exports.DEFAULT_INLINE_NAME_EDITOR_LABELS = DEFAULT_INLINE_NAME_EDITOR_LABELS;
3793
3887
  exports.DEFAULT_INVITE_CONTACTS_DIALOG_LABELS = DEFAULT_INVITE_CONTACTS_DIALOG_LABELS;
3794
3888
  exports.DEFAULT_INVOICES_DIALOG_LABELS = DEFAULT_INVOICES_DIALOG_LABELS;
@@ -3814,18 +3908,21 @@ exports.DEFAULT_USAGE_PROPORTION_BAR_LABELS = DEFAULT_USAGE_PROPORTION_BAR_LABEL
3814
3908
  exports.DEFAULT_WELCOME_DIALOG_LABELS = DEFAULT_WELCOME_DIALOG_LABELS;
3815
3909
  exports.DEFAULT_WORK_OFFLINE_LABELS = DEFAULT_WORK_OFFLINE_LABELS;
3816
3910
  exports.DailyCapField = DailyCapField;
3911
+ exports.DraggableHeader = DraggableHeader;
3817
3912
  exports.EmailWorkspaceDialogView = EmailWorkspaceDialogView;
3818
3913
  exports.ErrorDialogView = ErrorDialogView;
3819
- exports.FIRM_POOL_MAX_TOP_UP = FIRM_POOL_MAX_TOP_UP;
3820
- exports.FirmPoolSection = FirmPoolSection;
3914
+ exports.FilterChip = FilterChip;
3821
3915
  exports.FloatingPanel = FloatingPanel;
3822
3916
  exports.InlineNameEditor = InlineNameEditor;
3823
3917
  exports.InviteContactsDialog = InviteContactsDialog;
3824
3918
  exports.InvoicesDialog = InvoicesDialog;
3825
3919
  exports.JsonTree = JsonTree;
3826
3920
  exports.MemberProjectRow = MemberProjectRow;
3921
+ exports.MessageJsonTree = MessageJsonTree;
3827
3922
  exports.ModelProviderLabel = ModelProviderLabel;
3828
3923
  exports.ModelSelectionSection = ModelSelectionSection;
3924
+ exports.MoreInfo = MoreInfo;
3925
+ exports.MoreInfoList = MoreInfoList;
3829
3926
  exports.PanelActionsRow = PanelActionsRow;
3830
3927
  exports.PanelAddButton = PanelAddButton;
3831
3928
  exports.PanelFrame = PanelFrame;