@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,25 +1,25 @@
1
1
  "use client";
2
- export { ActiveSessionsDialog, AvatarPicker, DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS, DEFAULT_AVATAR_PICKER_LABELS, DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS, DEFAULT_IDENTITY_VERIFICATION_LABELS, DEFAULT_LOGOUT_DIALOG_LABELS, DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS, DEFAULT_PROFILE_CARD_LABELS, DEFAULT_SETTINGS_DANGER_ZONE_LABELS, DeleteAccountDialog, EMAIL_NOTIFICATION_CATEGORIES, EMAIL_NOTIFICATION_KEYS, IdentityVerificationCard, IdentityVerificationDialog, LogoutDialog, NotificationCategoryList, PasswordChangeDialog, ProfileCard, RequireVerified, SettingsActionRow, SettingsCard, SettingsDangerZone, SettingsPanel, SettingsRow, SettingsSection, SettingsSwitchGroup, SettingsSwitchRow, formatSessionTtl, toActiveSessionViews, toDeleteBlockerViews, toLogoutSessionViews, toNotificationCategories } from '../chunk-GFYGYME3.js';
3
2
  export { ModalBreadcrumbHeader, ModalCrumbs } from '../chunk-RC6VTY2H.js';
4
- import { UsageMeter } from '../chunk-IBZJYCYM.js';
3
+ export { ActiveSessionsDialog, AvatarPicker, DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS, DEFAULT_AVATAR_PICKER_LABELS, DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS, DEFAULT_IDENTITY_VERIFICATION_LABELS, DEFAULT_LOGOUT_DIALOG_LABELS, DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS, DEFAULT_PROFILE_CARD_LABELS, DEFAULT_SETTINGS_DANGER_ZONE_LABELS, DeleteAccountDialog, EMAIL_NOTIFICATION_CATEGORIES, EMAIL_NOTIFICATION_KEYS, IdentityVerificationCard, IdentityVerificationDialog, LogoutDialog, NotificationCategoryList, PasswordChangeDialog, ProfileCard, RequireVerified, SettingsActionRow, SettingsCard, SettingsDangerZone, SettingsPanel, SettingsRow, SettingsSection, SettingsSwitchGroup, SettingsSwitchRow, formatSessionTtl, toActiveSessionViews, toDeleteBlockerViews, toLogoutSessionViews, toNotificationCategories } from '../chunk-OQ7RUNOC.js';
4
+ import { UsageMeter } from '../chunk-66TA5IBN.js';
5
5
  export { DEFAULT_DOCUMENT_PICKER_LABELS, DocumentPicker, MultiSelect } from '../chunk-4XJZ6AAY.js';
6
- export { DEFAULT_TRI_STATE_FILTER_MENU_LABELS, TriStateFilterMenu } from '../chunk-6S5FLMWG.js';
7
6
  import { ToneBadge } from '../chunk-5LXQPP2K.js';
7
+ export { DEFAULT_TRI_STATE_FILTER_MENU_LABELS, TriStateFilterMenu } from '../chunk-6S5FLMWG.js';
8
8
  import '../chunk-VILAPTCB.js';
9
- export { ConfirmDialog, DEFAULT_CONFIRM_DIALOG_LABELS } from '../chunk-ECERC6TI.js';
9
+ export { ConfirmDialog, DEFAULT_CONFIRM_DIALOG_LABELS } from '../chunk-VHJHY7TT.js';
10
10
  import { TabHeader } from '../chunk-4WWM3GQ5.js';
11
- import { ModalSection, ModalSectionTitle, ModalHeader, ModalScaffold } from '../chunk-TX2ZICS7.js';
12
- export { MODAL_SECTION_TITLE_CLASS, ModalHeader, ModalScaffold, ModalSection, ModalSectionTitle } from '../chunk-TX2ZICS7.js';
13
11
  import { TONE_BORDER, TONE_SURFACE } from '../chunk-AUS3KBHJ.js';
14
12
  import '../chunk-NPLYHR2E.js';
15
13
  import { testIdOr, prefixedTestId } from '../chunk-7F6CBP3Z.js';
14
+ import { ModalSection, ModalSectionTitle, ModalHeader, ModalScaffold } from '../chunk-TX2ZICS7.js';
15
+ export { MODAL_SECTION_TITLE_CLASS, ModalHeader, ModalScaffold, ModalSection, ModalSectionTitle } from '../chunk-TX2ZICS7.js';
16
16
  import { formatCount } from '../chunk-OXF2IFXG.js';
17
17
  import '../chunk-VUNV25KB.js';
18
18
  import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
19
- import { cn, DialogFooter, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, Input, Button, Tooltip, TooltipTrigger, TooltipContent, Switch, Dialog, DialogContent, DialogTitle, DialogDescription, Label, Textarea, Checkbox, ScrollArea, Popover, PopoverTrigger, PopoverContent, Badge, DialogHeader, Progress } from '@arbidocs/react/ui';
19
+ import { cn, DialogFooter, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, Input, Button, Tooltip, TooltipTrigger, TooltipContent, Switch, Dialog, DialogContent, DialogTitle, DialogDescription, Label, Textarea, Checkbox, ScrollArea, DialogHeader, Badge, Progress } from '@arbidocs/react/ui';
20
20
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
21
21
  import { useMemo, useState, useId, Fragment as Fragment$1 } from 'react';
22
- import { History, Undo2, Star, Trash2, Users, Sparkles, Brain, RefreshCw, Wifi, WifiOff, Crown, ChevronDown, ChevronRight, Pencil, Plus, Loader2, Check, Tag, Info, Gift, PlugIcon, CheckCircle2, ExternalLink, ShieldCheck, Plug, AlertCircle, MessageCircleQuestionMark, BookOpen, UserPlus, ChartNoAxesColumn, FileText, X, Mail, Send, Clock, Infinity, ArrowRight, Copy, LogOut } from 'lucide-react';
22
+ import { History, Undo2, Star, Trash2, Users, Sparkles, Brain, RefreshCw, Wifi, WifiOff, Crown, ChevronDown, ChevronRight, Pencil, Plus, Loader2, Check, X, Info, Tag, Gift, PlugIcon, CheckCircle2, ExternalLink, ShieldCheck, Plug, AlertCircle, MessageCircleQuestionMark, BookOpen, UserPlus, ChartNoAxesColumn, FileText, Mail, Send, Clock, Infinity, ArrowRight, Copy, LogOut } from 'lucide-react';
23
23
  import { cva } from 'class-variance-authority';
24
24
 
25
25
  function SegmentedControl({
@@ -124,6 +124,22 @@ function FloatingPanel({
124
124
  }
125
125
  );
126
126
  }
127
+ var INTERACTIVE_SELECTOR = 'button, input, select, a, [role="tab"], [role="radio"]';
128
+ function DraggableHeader({ onDragStart, children }) {
129
+ return /* @__PURE__ */ jsx(
130
+ "div",
131
+ {
132
+ className: "flex-shrink-0",
133
+ onMouseDown: onDragStart ? (e) => {
134
+ const target = e.target;
135
+ if (target.closest(INTERACTIVE_SELECTOR)) return;
136
+ onDragStart(e);
137
+ } : void 0,
138
+ style: onDragStart ? { cursor: "move" } : void 0,
139
+ children
140
+ }
141
+ );
142
+ }
127
143
  function PanelFrame({ testId, className, children }) {
128
144
  return /* @__PURE__ */ jsx(
129
145
  "div",
@@ -654,7 +670,7 @@ function JsonTree({
654
670
  level = 0,
655
671
  path = [],
656
672
  resolveHint,
657
- formatValue
673
+ formatValue: formatValue2
658
674
  }) {
659
675
  const [isExpanded, setIsExpanded] = useState(defaultExpanded || level < 2);
660
676
  const [copied, setCopied] = useState(false);
@@ -682,7 +698,7 @@ function JsonTree({
682
698
  const isArray = Array.isArray(data);
683
699
  const isObject = typeof data === "object" && data !== null && !isArray;
684
700
  if (!isObject && !isArray) {
685
- const displayValue = hint && formatValue ? formatValue(data, hint) : plainValue(data);
701
+ const displayValue = hint && formatValue2 ? formatValue2(data, hint) : plainValue(data);
686
702
  return /* @__PURE__ */ jsxs(
687
703
  "div",
688
704
  {
@@ -762,13 +778,179 @@ function JsonTree({
762
778
  level: level + 1,
763
779
  path: currentPath,
764
780
  resolveHint,
765
- formatValue
781
+ formatValue: formatValue2
766
782
  },
767
783
  key
768
784
  );
769
785
  }) })
770
786
  ] });
771
787
  }
788
+
789
+ // src/settings/message-schema-hints.ts
790
+ var messageFieldHints = {
791
+ role: {
792
+ displayName: "Role",
793
+ formatType: "enum",
794
+ description: "Message role (user, assistant, or system)"
795
+ },
796
+ content: {
797
+ displayName: "Content",
798
+ formatType: "long-string",
799
+ description: "Message content text"
800
+ },
801
+ created_at: {
802
+ displayName: "Created At",
803
+ formatType: "timestamp",
804
+ description: "Message creation timestamp"
805
+ },
806
+ external_id: {
807
+ displayName: "Message ID",
808
+ formatType: "id",
809
+ description: "External message identifier"
810
+ },
811
+ conversation_ext_id: {
812
+ displayName: "Conversation ID",
813
+ formatType: "id",
814
+ description: "Parent conversation identifier"
815
+ },
816
+ parent_message_ext_id: {
817
+ displayName: "Parent Message ID",
818
+ formatType: "id",
819
+ description: "Parent message identifier (null for first message)"
820
+ },
821
+ created_by_ext_id: {
822
+ displayName: "Created By",
823
+ formatType: "id",
824
+ description: "User who created this message"
825
+ },
826
+ config_ext_id: {
827
+ displayName: "Config ID",
828
+ formatType: "id",
829
+ description: "Configuration used for this message"
830
+ },
831
+ shared: {
832
+ displayName: "Shared",
833
+ formatType: "boolean",
834
+ description: "Whether message is shared"
835
+ },
836
+ tools: {
837
+ displayName: "Tools",
838
+ formatType: "json",
839
+ description: "Tool outputs (citations, retrieval, trace)"
840
+ },
841
+ meta: {
842
+ displayName: "Metadata",
843
+ formatType: "json",
844
+ description: "Additional metadata"
845
+ }
846
+ };
847
+ var traceToolFieldHints = {
848
+ name: {
849
+ displayName: "Tool Name",
850
+ formatType: "enum",
851
+ description: "Execution trace tool"
852
+ },
853
+ description: {
854
+ displayName: "Description",
855
+ formatType: "string",
856
+ description: "Tool description"
857
+ },
858
+ trace_id: {
859
+ displayName: "Trace ID",
860
+ formatType: "id",
861
+ description: "Unique trace identifier"
862
+ },
863
+ start_time: {
864
+ displayName: "Start Time",
865
+ formatType: "timestamp",
866
+ description: "When execution started"
867
+ },
868
+ duration_seconds: {
869
+ displayName: "Duration (seconds)",
870
+ formatType: "number",
871
+ description: "Total execution time"
872
+ },
873
+ steps: {
874
+ displayName: "Execution Steps",
875
+ formatType: "json",
876
+ description: "Full execution trace with all steps"
877
+ }
878
+ };
879
+ var citationToolFieldHints = {
880
+ name: {
881
+ displayName: "Tool Name",
882
+ formatType: "enum",
883
+ description: "Model citation tool"
884
+ },
885
+ tool_responses: {
886
+ displayName: "Citations",
887
+ formatType: "json",
888
+ description: "Citation data mapped by citation number"
889
+ }
890
+ };
891
+ function getFieldHint(path, fieldName) {
892
+ if (path.length === 1 && path[0] === "message") {
893
+ return messageFieldHints[fieldName] || null;
894
+ }
895
+ if (path.length >= 3 && path[0] === "message" && path[1] === "tools" && path[2] === "trace") {
896
+ return traceToolFieldHints[fieldName] || null;
897
+ }
898
+ if (path.length >= 3 && path[0] === "message" && path[1] === "tools" && path[2] === "model_citations") {
899
+ return citationToolFieldHints[fieldName] || null;
900
+ }
901
+ if (fieldName === "external_id" || fieldName.endsWith("_ext_id")) {
902
+ return { formatType: "id", displayName: fieldName.replace(/_/g, " ") };
903
+ }
904
+ if (fieldName === "created_at" || fieldName === "updated_at" || fieldName.endsWith("_at")) {
905
+ return { formatType: "timestamp", displayName: fieldName.replace(/_/g, " ") };
906
+ }
907
+ if (fieldName.includes("time") && !fieldName.includes("duration")) {
908
+ return { formatType: "timestamp" };
909
+ }
910
+ if (fieldName.includes("duration")) {
911
+ return { formatType: "number", description: "Duration in seconds" };
912
+ }
913
+ if (path.length >= 2 && path[path.length - 2] === "tools" && fieldName === "trace") {
914
+ return {
915
+ displayName: "\u{1F50D} Execution Trace",
916
+ formatType: "json",
917
+ description: "Complete execution trace with all steps and timing"
918
+ };
919
+ }
920
+ return null;
921
+ }
922
+ function formatValue(value, hint) {
923
+ if (value === null) return "null";
924
+ if (value === void 0) return "undefined";
925
+ if (hint?.formatType === "timestamp" && typeof value === "string") {
926
+ try {
927
+ const date = new Date(value);
928
+ if (!isNaN(date.getTime())) {
929
+ return `${date.toLocaleString()} (${value})`;
930
+ }
931
+ } catch {
932
+ }
933
+ }
934
+ if (hint?.formatType === "timestamp" && typeof value === "number") {
935
+ const date = new Date(value * 1e3);
936
+ return `${date.toLocaleString()} (${value})`;
937
+ }
938
+ if (hint?.formatType === "id" && typeof value === "string") {
939
+ if (value.length > 20) {
940
+ return `${value.substring(0, 16)}...${value.substring(value.length - 4)}`;
941
+ }
942
+ }
943
+ if (typeof value === "string") {
944
+ if (value.length > 100) {
945
+ return `"${value.substring(0, 97)}..." (${value.length} chars)`;
946
+ }
947
+ return `"${value}"`;
948
+ }
949
+ return String(value);
950
+ }
951
+ function MessageJsonTree(props) {
952
+ return /* @__PURE__ */ jsx(JsonTree, { ...props, resolveHint: getFieldHint, formatValue });
953
+ }
772
954
  var DEFAULT_TIPS_EDITOR_LABELS = {
773
955
  titleList: "Edit tips",
774
956
  titleNew: "New tip",
@@ -1289,6 +1471,64 @@ function SyncFolderStatus({
1289
1471
  }
1290
1472
  );
1291
1473
  }
1474
+ function FilterChip({
1475
+ label,
1476
+ state,
1477
+ icon,
1478
+ color,
1479
+ onDismiss,
1480
+ dismissLabel,
1481
+ className,
1482
+ testId
1483
+ }) {
1484
+ const isExclude = state === "exclude";
1485
+ return /* @__PURE__ */ jsxs(
1486
+ "span",
1487
+ {
1488
+ className: cn(
1489
+ "inline-flex items-center gap-1 text-xs font-medium rounded px-1.5 py-0.5 flex-shrink-0 border",
1490
+ isExclude ? "bg-background text-red-text border-red-text" : "bg-primary text-white border-primary",
1491
+ className
1492
+ ),
1493
+ "data-state": state,
1494
+ "data-testid": testId,
1495
+ children: [
1496
+ color ? (
1497
+ /* Filled square for include; empty square for exclude */
1498
+ isExclude ? /* @__PURE__ */ jsx(
1499
+ "span",
1500
+ {
1501
+ className: "w-3.5 h-3.5 rounded flex-shrink-0 border-2",
1502
+ style: { borderColor: color }
1503
+ }
1504
+ ) : /* @__PURE__ */ jsx(
1505
+ "span",
1506
+ {
1507
+ className: "w-3.5 h-3.5 rounded flex items-center justify-center flex-shrink-0",
1508
+ style: { backgroundColor: color },
1509
+ children: /* @__PURE__ */ jsx(Check, { className: "w-2.5 h-2.5 text-white", strokeWidth: 3 })
1510
+ }
1511
+ )
1512
+ ) : icon && /* @__PURE__ */ jsx("span", { className: "flex-none", children: icon }),
1513
+ /* @__PURE__ */ jsxs("span", { className: "truncate max-w-[80px]", title: label, children: [
1514
+ isExclude && /* @__PURE__ */ jsx("span", { className: "opacity-70 mr-0.5", children: "Not" }),
1515
+ label
1516
+ ] }),
1517
+ onDismiss && /* @__PURE__ */ jsx(
1518
+ "button",
1519
+ {
1520
+ type: "button",
1521
+ onClick: onDismiss,
1522
+ "aria-label": dismissLabel ?? `Remove ${label}`,
1523
+ className: "flex-none ml-0.5 opacity-70 hover:opacity-100",
1524
+ "data-testid": testId ? `${testId}-remove` : void 0,
1525
+ children: /* @__PURE__ */ jsx(X, { className: "h-3 w-3", strokeWidth: 2.5 })
1526
+ }
1527
+ )
1528
+ ]
1529
+ }
1530
+ );
1531
+ }
1292
1532
  var planBadgeVariants = cva(
1293
1533
  "inline-flex flex-shrink-0 items-center rounded-full border font-semibold leading-none",
1294
1534
  {
@@ -1326,6 +1566,50 @@ function PlanBadge({
1326
1566
  }
1327
1567
  );
1328
1568
  }
1569
+ function MoreInfo({
1570
+ title,
1571
+ children,
1572
+ label = "More info",
1573
+ testId = "more-info",
1574
+ className
1575
+ }) {
1576
+ const [open, setOpen] = useState(false);
1577
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
1578
+ /* @__PURE__ */ jsxs(
1579
+ "button",
1580
+ {
1581
+ type: "button",
1582
+ onClick: () => setOpen(true),
1583
+ className: cn(
1584
+ "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",
1585
+ className
1586
+ ),
1587
+ "data-slot": "more-info",
1588
+ "data-testid": testId,
1589
+ children: [
1590
+ /* @__PURE__ */ jsx(Info, { className: "size-3.5", "aria-hidden": true }),
1591
+ label
1592
+ ]
1593
+ }
1594
+ ),
1595
+ /* @__PURE__ */ jsx(Dialog, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsxs(DialogContent, { className: "sm:max-w-md", "data-testid": `${testId}-dialog`, children: [
1596
+ /* @__PURE__ */ jsxs(DialogHeader, { children: [
1597
+ /* @__PURE__ */ jsx(DialogTitle, { children: title }),
1598
+ /* @__PURE__ */ jsx(DialogDescription, { className: "sr-only", children: title })
1599
+ ] }),
1600
+ /* @__PURE__ */ jsx("div", { className: "space-y-3 text-sm leading-relaxed text-muted-foreground", children })
1601
+ ] }) })
1602
+ ] });
1603
+ }
1604
+ function MoreInfoList({ items }) {
1605
+ return /* @__PURE__ */ jsx("ul", { className: "space-y-2", "data-slot": "more-info-list", children: items.map((item, i) => /* @__PURE__ */ jsxs("li", { children: [
1606
+ item.term && /* @__PURE__ */ jsxs("span", { className: "font-medium text-foreground", children: [
1607
+ item.term,
1608
+ ". "
1609
+ ] }),
1610
+ item.text
1611
+ ] }, item.term ?? i)) });
1612
+ }
1329
1613
  var barColor = (pct) => pct >= 100 ? "bg-red-500" : pct >= 50 ? "bg-yellow-500" : "bg-primary";
1330
1614
  var valueColor2 = (pct) => pct >= 100 ? "text-red-text" : pct >= 80 ? "text-yellow-text" : "text-muted-foreground";
1331
1615
  function QuotaMeter({
@@ -1417,9 +1701,10 @@ var DEFAULT_PLAN_CARD_LABELS = {
1417
1701
  pricingExplainer: "How pricing works",
1418
1702
  explainerTiers: [
1419
1703
  "AI usage and storage are shared by everyone in the project. AI usage resets monthly.",
1420
- "Need more? Add \xA325 of AI usage or 25 GB at a time. Add-ons renew until you reduce them.",
1421
- "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.",
1422
- "Add-ons start now. Downgrades, billing switches and add-on reductions start at the end of the period. No refunds.",
1704
+ "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.",
1705
+ "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.",
1706
+ "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.",
1707
+ "Annual plans are 25% off, add-ons included.",
1423
1708
  "Prices are shown + VAT; the total for your country is shown before you pay."
1424
1709
  ],
1425
1710
  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.",
@@ -1610,45 +1895,21 @@ function PlanInfoPopover({
1610
1895
  labels
1611
1896
  }) {
1612
1897
  const l = useMemo(() => ({ ...DEFAULT_PLAN_CARD_LABELS, ...labels }), [labels]);
1613
- return /* @__PURE__ */ jsxs(Popover, { children: [
1614
- /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
1615
- Button,
1616
- {
1617
- type: "button",
1618
- variant: "ghost",
1619
- size: "sm",
1620
- className: "gap-1.5 text-sm text-muted-foreground",
1621
- children: [
1622
- /* @__PURE__ */ jsx(Info, { className: "h-4 w-4" }),
1623
- l.pricingExplainer
1624
- ]
1625
- }
1626
- ) }),
1627
- /* @__PURE__ */ jsxs(
1628
- PopoverContent,
1629
- {
1630
- side: "top",
1631
- align: "start",
1632
- className: "max-w-screen-safe w-[380px] space-y-3 text-sm leading-relaxed",
1633
- children: [
1634
- /* @__PURE__ */ jsx("div", { className: "text-base font-semibold", children: l.pricingExplainer }),
1635
- /* @__PURE__ */ jsx("ul", { className: "list-disc space-y-1 pl-4", children: l.explainerTiers.map((line) => /* @__PURE__ */ jsx("li", { children: line }, line)) }),
1636
- /* @__PURE__ */ jsxs("p", { children: [
1637
- l.explainerAiUsage,
1638
- " ",
1639
- /* @__PURE__ */ jsx(
1640
- "button",
1641
- {
1642
- type: "button",
1643
- onClick: onOpenModelList,
1644
- className: "font-medium text-foreground underline underline-offset-2 hover:text-primary/80",
1645
- children: l.seeModelList
1646
- }
1647
- )
1648
- ] })
1649
- ]
1650
- }
1651
- )
1898
+ return /* @__PURE__ */ jsxs(MoreInfo, { title: l.pricingExplainer, label: l.pricingExplainer, testId: "pricing-explainer", children: [
1899
+ /* @__PURE__ */ jsx(MoreInfoList, { items: l.explainerTiers.map((text) => ({ text })) }),
1900
+ /* @__PURE__ */ jsxs("p", { children: [
1901
+ l.explainerAiUsage,
1902
+ " ",
1903
+ /* @__PURE__ */ jsx(
1904
+ "button",
1905
+ {
1906
+ type: "button",
1907
+ onClick: onOpenModelList,
1908
+ className: "font-medium text-foreground underline underline-offset-2 hover:text-primary/80",
1909
+ children: l.seeModelList
1910
+ }
1911
+ )
1912
+ ] })
1652
1913
  ] });
1653
1914
  }
1654
1915
  var DEFAULT_REFERRAL_REWARD_LABELS = {
@@ -2029,172 +2290,6 @@ function RenameDialog({
2029
2290
  ] })
2030
2291
  ] }) });
2031
2292
  }
2032
- var DEFAULT_FIRM_POOL_SECTION_LABELS = {
2033
- title: "Firm usage",
2034
- licence: "Licence",
2035
- used: "AI usage this month",
2036
- storage: "Storage",
2037
- users: "Internal users",
2038
- premiumOnly: "Standard AI is unlimited; the allowance applies to Premium AI.",
2039
- resets: (date) => `resets ${date}`,
2040
- usageUnknown: "Usage is being calculated.",
2041
- legendLicence: (amount) => `Licence ${amount}`,
2042
- legendTopUps: (amount) => `Top-ups ${amount}`,
2043
- legendAutoRoom: (amount) => `Automatic top-ups may add ${amount}`,
2044
- autoRoomNoLimit: "Automatic top-ups: no limit",
2045
- budget: "Usage budget \u2014 limits automatic top-ups only",
2046
- budgetValue: (left, limit) => `${left} left of ${limit}`,
2047
- autoAddons: (count) => `Automatic top-ups this month: ${count}`,
2048
- autoAddonsOff: "Automatic top-ups are off (\xA30 usage budget).",
2049
- topUpLabel: "Steps to add",
2050
- topUp: "Add AI usage",
2051
- toppingUp: "Adding\u2026",
2052
- topUpHelp: (perStep) => `Each step adds ${perStep} of AI usage a month, pooled across the firm, and renews until reduced.`,
2053
- topUpTotal: (total) => `+${total} of AI usage a month`
2054
- };
2055
- var FIRM_POOL_MAX_TOP_UP = 100;
2056
- var defaultFormat = (gbp) => `\xA3${gbp.toLocaleString("en-GB", { maximumFractionDigits: 2 })}`;
2057
- function FirmPoolSection({
2058
- view,
2059
- formatAmount = defaultFormat,
2060
- onTopUp,
2061
- isToppingUp = false,
2062
- labels,
2063
- testId = "firm-pool"
2064
- }) {
2065
- const l = useMemo(() => ({ ...DEFAULT_FIRM_POOL_SECTION_LABELS, ...labels }), [labels]);
2066
- const [count, setCount] = useState(1);
2067
- const valid = Number.isInteger(count) && count >= 1 && count <= FIRM_POOL_MAX_TOP_UP;
2068
- const used = view.usedGbp;
2069
- const step = view.addonGbp ?? 25;
2070
- const base = Math.min(view.baseGbp ?? view.totalGbp, view.totalGbp);
2071
- const topUps = Math.max(0, view.totalGbp - base);
2072
- const gb = (n) => `${Math.round(n * 10) / 10} GB`;
2073
- const storage = view.storage;
2074
- const users = view.users;
2075
- return /* @__PURE__ */ jsxs("section", { className: "space-y-3", "data-testid": testId, children: [
2076
- /* @__PURE__ */ jsx("h3", { className: "px-1 text-sm font-semibold text-foreground", children: l.title }),
2077
- /* @__PURE__ */ jsxs("div", { className: "space-y-4 px-1", children: [
2078
- view.licence && /* @__PURE__ */ jsxs("div", { className: "space-y-0.5 text-sm", "data-testid": `${testId}-licence`, children: [
2079
- /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-baseline justify-between gap-x-4", children: [
2080
- /* @__PURE__ */ jsx("span", { className: "font-medium text-foreground", children: l.licence }),
2081
- /* @__PURE__ */ jsx("span", { className: "tabular-nums text-muted-foreground", children: view.licence })
2082
- ] }),
2083
- view.renews && /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", "data-testid": `${testId}-renews`, children: view.renews })
2084
- ] }),
2085
- /* @__PURE__ */ jsx(
2086
- UsageMeter,
2087
- {
2088
- label: l.used,
2089
- hint: view.resetsAt ? l.resets(view.resetsAt) : void 0,
2090
- value: `${used != null ? formatAmount(used) : "\u2014"} / ${formatAmount(view.totalGbp)}`,
2091
- allowance: {
2092
- used: used ?? 0,
2093
- plan: base,
2094
- topUps,
2095
- autoRoom: view.autoAddonsOff ? 0 : view.autoRoomGbp
2096
- },
2097
- legend: {
2098
- plan: topUps > 0 || (view.autoRoomGbp ?? 0) > 0 ? l.legendLicence(formatAmount(base)) : void 0,
2099
- topUps: topUps > 0 ? l.legendTopUps(formatAmount(topUps)) : void 0,
2100
- autoRoom: view.autoRoomGbp === null ? l.autoRoomNoLimit : view.autoRoomGbp ? l.legendAutoRoom(formatAmount(view.autoRoomGbp)) : void 0
2101
- },
2102
- details: used == null ? /* @__PURE__ */ jsx("p", { children: l.usageUnknown }) : void 0,
2103
- testId: `${testId}-usage`
2104
- }
2105
- ),
2106
- storage && /* @__PURE__ */ jsx(
2107
- UsageMeter,
2108
- {
2109
- label: l.storage,
2110
- value: `${storage.usedGb != null ? gb(storage.usedGb) : "\u2014"} / ${gb(storage.totalGb)}`,
2111
- allowance: {
2112
- used: storage.usedGb ?? 0,
2113
- plan: storage.totalGb - (storage.autoAddedGb ?? 0),
2114
- topUps: storage.autoAddedGb ?? 0
2115
- },
2116
- legend: {
2117
- plan: storage.autoAddedGb ? l.legendLicence(gb(storage.totalGb - storage.autoAddedGb)) : void 0,
2118
- topUps: storage.autoAddedGb ? l.legendTopUps(gb(storage.autoAddedGb)) : void 0
2119
- },
2120
- testId: `${testId}-storage`
2121
- }
2122
- ),
2123
- users && /* @__PURE__ */ jsx(
2124
- UsageMeter,
2125
- {
2126
- label: l.users,
2127
- value: `${users.used ?? "\u2014"} / ${users.total}`,
2128
- allowance: { used: users.used ?? 0, plan: users.total },
2129
- testId: `${testId}-users`
2130
- }
2131
- ),
2132
- view.autoAddons && /* @__PURE__ */ jsx(
2133
- UsageMeter,
2134
- {
2135
- label: l.budget,
2136
- value: view.autoAddons.left ? l.budgetValue(view.autoAddons.left, view.autoAddons.limit) : `${view.autoAddons.spent} / ${view.autoAddons.limit}`,
2137
- pct: view.autoAddons.pct,
2138
- details: /* @__PURE__ */ jsxs("p", { "data-testid": `${testId}-auto-addons-count`, children: [
2139
- l.autoAddons(view.autoAddons.count),
2140
- view.autoAddons.added ? ` (${view.autoAddons.added})` : ""
2141
- ] }),
2142
- testId: `${testId}-auto-addons`
2143
- }
2144
- ),
2145
- view.autoAddonsOff && /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", "data-testid": `${testId}-auto-addons-off`, children: l.autoAddonsOff }),
2146
- view.premiumOnly && /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", "data-testid": `${testId}-premium-only`, children: l.premiumOnly }),
2147
- onTopUp && /* @__PURE__ */ jsxs(
2148
- "form",
2149
- {
2150
- className: "flex flex-wrap items-end gap-2",
2151
- "data-testid": `${testId}-top-up`,
2152
- onSubmit: (event) => {
2153
- event.preventDefault();
2154
- if (valid && !isToppingUp) onTopUp(count);
2155
- },
2156
- children: [
2157
- /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1 text-xs text-muted-foreground", children: [
2158
- l.topUpLabel,
2159
- /* @__PURE__ */ jsx(
2160
- Input,
2161
- {
2162
- type: "number",
2163
- min: 1,
2164
- max: FIRM_POOL_MAX_TOP_UP,
2165
- step: 1,
2166
- value: Number.isNaN(count) ? "" : count,
2167
- onChange: (event) => setCount(event.target.valueAsNumber),
2168
- className: "h-8 w-24",
2169
- "data-testid": `${testId}-top-up-count`
2170
- }
2171
- )
2172
- ] }),
2173
- /* @__PURE__ */ jsx(
2174
- Button,
2175
- {
2176
- type: "submit",
2177
- size: "sm",
2178
- disabled: !valid || isToppingUp,
2179
- "data-testid": `${testId}-top-up-button`,
2180
- children: isToppingUp ? l.toppingUp : l.topUp
2181
- }
2182
- ),
2183
- valid && /* @__PURE__ */ jsx(
2184
- "span",
2185
- {
2186
- className: "self-center text-sm tabular-nums text-foreground",
2187
- "data-testid": `${testId}-top-up-total`,
2188
- children: l.topUpTotal(formatAmount(count * step))
2189
- }
2190
- ),
2191
- /* @__PURE__ */ jsx("p", { className: "w-full text-xs text-muted-foreground", children: l.topUpHelp(formatAmount(step)) })
2192
- ]
2193
- }
2194
- )
2195
- ] })
2196
- ] });
2197
- }
2198
2293
  var DEFAULT_SUPPORT_PANEL_LABELS = {
2199
2294
  support: "Support",
2200
2295
  userGuide: "User Guide"
@@ -2447,7 +2542,7 @@ function UsageLineChart({
2447
2542
  dates,
2448
2543
  series,
2449
2544
  formatDate,
2450
- formatValue,
2545
+ formatValue: formatValue2,
2451
2546
  emptyLabel,
2452
2547
  labels
2453
2548
  }) {
@@ -2561,7 +2656,7 @@ function UsageLineChart({
2561
2656
  s.key,
2562
2657
  ":"
2563
2658
  ] }),
2564
- /* @__PURE__ */ jsx("span", { className: "font-medium tabular-nums", children: formatValue(s.values[hoverIdx]) })
2659
+ /* @__PURE__ */ jsx("span", { className: "font-medium tabular-nums", children: formatValue2(s.values[hoverIdx]) })
2565
2660
  ] }, s.key))
2566
2661
  ] })
2567
2662
  ] });
@@ -3564,6 +3659,6 @@ function ErrorDialogView({
3564
3659
  ) });
3565
3660
  }
3566
3661
 
3567
- export { CONVERSATION_TITLE_MAX, CheckoutDialogFrame, ConfigSwitcherBar, ConnectionCard, ConnectionsEmpty, ConnectionsError, ConnectionsLoading, ConversationTitleSection, DEFAULT_CHECKOUT_DIALOG_LABELS, DEFAULT_CONFIG_SWITCHER_BAR_LABELS, DEFAULT_CONNECTION_CARD_LABELS, DEFAULT_CONVERSATION_TITLE_SECTION_LABELS, DEFAULT_DAILY_CAP_FIELD_LABELS, DEFAULT_EMAIL_WORKSPACE_DIALOG_LABELS, DEFAULT_ERROR_DIALOG_LABELS, DEFAULT_FIRM_POOL_SECTION_LABELS, DEFAULT_INLINE_NAME_EDITOR_LABELS, DEFAULT_INVITE_CONTACTS_DIALOG_LABELS, DEFAULT_INVOICES_DIALOG_LABELS, DEFAULT_MEMBER_PROJECT_ROW_LABELS, DEFAULT_MODEL_SELECTION_SECTION_LABELS, DEFAULT_PLAN_CARD_LABELS, DEFAULT_PROJECT_CARD_VIEW_LABELS, DEFAULT_PROJECT_DETAIL_HEADER_LABELS, DEFAULT_PROJECT_LIST_LABELS, DEFAULT_QUOTA_EXCEEDED_DIALOG_LABELS, DEFAULT_REFERRAL_REWARD_LABELS, DEFAULT_RENAME_DIALOG_LABELS, DEFAULT_SHARED_PROJECTS_SECTION_LABELS, DEFAULT_SUBSCRIPTION_SECTION_LABELS, DEFAULT_SUBSCRIPTION_STATUS_LABELS, DEFAULT_SUPPORT_PANEL_LABELS, DEFAULT_SYNC_DIALOG_FOOTER_LABELS, DEFAULT_SYNC_FOLDER_ROW_LABELS, DEFAULT_TIPS_EDITOR_LABELS, DEFAULT_USAGE_LINE_CHART_LABELS, DEFAULT_USAGE_PANEL_LABELS, DEFAULT_USAGE_PROPORTION_BAR_LABELS, DEFAULT_WELCOME_DIALOG_LABELS, DEFAULT_WORK_OFFLINE_LABELS, DailyCapField, EmailWorkspaceDialogView, ErrorDialogView, FIRM_POOL_MAX_TOP_UP, FirmPoolSection, FloatingPanel, InlineNameEditor, InviteContactsDialog, InvoicesDialog, JsonTree, MemberProjectRow, ModelProviderLabel, ModelSelectionSection, PanelActionsRow, PanelAddButton, PanelFrame, PanelFrameBody, PanelNote, PanelScroll, PanelTitleBar, PlanActionButton, PlanActionRow, PlanBadge, PlanCard, PlanCardGrid, PlanDialogFrame, PlanInfoPopover, PlanNotice, PlanPickerCard, PlanPickerHeader, PlanStack, PlanTierOption, PlanTransition, PremiumModelsFrame, PricingToggle, ProjectCardView, ProjectDetailHeader, ProjectDetailSection, ProjectGroup, ProjectList, ProjectNameLabel, ProjectPlanPicker, ProjectRow, ProjectRowActions, PromoCodeInput, QuotaExceededDialogView, QuotaMeter, ReferralRewardBadge, ReferralRewardNote, ReferralRewardSummary, RenameDialog, RowButton, RowIconAction, SegmentedControl, ServerConnectionButton, SharedProjectRow, SharedProjectsSection, SubscriptionSectionView, SubscriptionStatusView, SupportPanel, SupportUnavailable, SyncCheckList, SyncDialogBody, SyncDialogFooter, SyncField, SyncFolderRow, SyncFolderStatus, SyncLinkButton, SyncLinkRow, SyncLoading, SyncNote, SyncOptionToggle, SyncOptions, SyncReconnectNotice, SyncSelect, SyncSmallNote, SyncTreeFrame, ThreadPreviewDialog, TipsEditorDialog, UsageActionButton, UsageLegend, UsageLineChart, UsagePanel, UsageProportionBar, UsageQuotaHint, UsageSection, UsageSummary, UsageToggle, WelcomeDialog, WelcomeProjectPicker, WorkOfflineToggle };
3662
+ export { CONVERSATION_TITLE_MAX, CheckoutDialogFrame, ConfigSwitcherBar, ConnectionCard, ConnectionsEmpty, ConnectionsError, ConnectionsLoading, ConversationTitleSection, DEFAULT_CHECKOUT_DIALOG_LABELS, DEFAULT_CONFIG_SWITCHER_BAR_LABELS, DEFAULT_CONNECTION_CARD_LABELS, DEFAULT_CONVERSATION_TITLE_SECTION_LABELS, DEFAULT_DAILY_CAP_FIELD_LABELS, DEFAULT_EMAIL_WORKSPACE_DIALOG_LABELS, DEFAULT_ERROR_DIALOG_LABELS, DEFAULT_INLINE_NAME_EDITOR_LABELS, DEFAULT_INVITE_CONTACTS_DIALOG_LABELS, DEFAULT_INVOICES_DIALOG_LABELS, DEFAULT_MEMBER_PROJECT_ROW_LABELS, DEFAULT_MODEL_SELECTION_SECTION_LABELS, DEFAULT_PLAN_CARD_LABELS, DEFAULT_PROJECT_CARD_VIEW_LABELS, DEFAULT_PROJECT_DETAIL_HEADER_LABELS, DEFAULT_PROJECT_LIST_LABELS, DEFAULT_QUOTA_EXCEEDED_DIALOG_LABELS, DEFAULT_REFERRAL_REWARD_LABELS, DEFAULT_RENAME_DIALOG_LABELS, DEFAULT_SHARED_PROJECTS_SECTION_LABELS, DEFAULT_SUBSCRIPTION_SECTION_LABELS, DEFAULT_SUBSCRIPTION_STATUS_LABELS, DEFAULT_SUPPORT_PANEL_LABELS, DEFAULT_SYNC_DIALOG_FOOTER_LABELS, DEFAULT_SYNC_FOLDER_ROW_LABELS, DEFAULT_TIPS_EDITOR_LABELS, DEFAULT_USAGE_LINE_CHART_LABELS, DEFAULT_USAGE_PANEL_LABELS, DEFAULT_USAGE_PROPORTION_BAR_LABELS, DEFAULT_WELCOME_DIALOG_LABELS, DEFAULT_WORK_OFFLINE_LABELS, DailyCapField, DraggableHeader, EmailWorkspaceDialogView, ErrorDialogView, FilterChip, FloatingPanel, InlineNameEditor, InviteContactsDialog, InvoicesDialog, JsonTree, MemberProjectRow, MessageJsonTree, ModelProviderLabel, ModelSelectionSection, MoreInfo, MoreInfoList, PanelActionsRow, PanelAddButton, PanelFrame, PanelFrameBody, PanelNote, PanelScroll, PanelTitleBar, PlanActionButton, PlanActionRow, PlanBadge, PlanCard, PlanCardGrid, PlanDialogFrame, PlanInfoPopover, PlanNotice, PlanPickerCard, PlanPickerHeader, PlanStack, PlanTierOption, PlanTransition, PremiumModelsFrame, PricingToggle, ProjectCardView, ProjectDetailHeader, ProjectDetailSection, ProjectGroup, ProjectList, ProjectNameLabel, ProjectPlanPicker, ProjectRow, ProjectRowActions, PromoCodeInput, QuotaExceededDialogView, QuotaMeter, ReferralRewardBadge, ReferralRewardNote, ReferralRewardSummary, RenameDialog, RowButton, RowIconAction, SegmentedControl, ServerConnectionButton, SharedProjectRow, SharedProjectsSection, SubscriptionSectionView, SubscriptionStatusView, SupportPanel, SupportUnavailable, SyncCheckList, SyncDialogBody, SyncDialogFooter, SyncField, SyncFolderRow, SyncFolderStatus, SyncLinkButton, SyncLinkRow, SyncLoading, SyncNote, SyncOptionToggle, SyncOptions, SyncReconnectNotice, SyncSelect, SyncSmallNote, SyncTreeFrame, ThreadPreviewDialog, TipsEditorDialog, UsageActionButton, UsageLegend, UsageLineChart, UsagePanel, UsageProportionBar, UsageQuotaHint, UsageSection, UsageSummary, UsageToggle, WelcomeDialog, WelcomeProjectPicker, WorkOfflineToggle };
3568
3663
  //# sourceMappingURL=index.js.map
3569
3664
  //# sourceMappingURL=index.js.map