@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.
- package/README.md +25 -10
- package/dist/{StreamedArtifactEditor-EEYAXJ4H.cjs → StreamedArtifactEditor-TQAND4H5.cjs} +6 -5
- package/dist/StreamedArtifactEditor-TQAND4H5.cjs.map +1 -0
- package/dist/{StreamedArtifactEditor-TDATDYD2.js → StreamedArtifactEditor-XQNANTWM.js} +4 -3
- package/dist/StreamedArtifactEditor-XQNANTWM.js.map +1 -0
- package/dist/agents/index.cjs +304 -304
- package/dist/agents/index.js +12 -12
- package/dist/artifacts/ArtifactCodeView.d.ts +6 -0
- package/dist/artifacts/ArtifactPreview.d.ts +22 -0
- package/dist/artifacts/index.cjs +50 -21
- package/dist/artifacts/index.d.ts +3 -0
- package/dist/artifacts/index.js +2 -1
- package/dist/artifacts/sandbox-policy.d.ts +34 -0
- package/dist/artifacts/sandboxDocument.d.ts +7 -0
- package/dist/calendar/CalendarPrint.d.ts +25 -0
- package/dist/calendar/booking-slots.d.ts +21 -0
- package/dist/calendar/index.cjs +440 -243
- package/dist/calendar/index.cjs.map +1 -1
- package/dist/calendar/index.d.ts +4 -0
- package/dist/calendar/index.js +282 -151
- package/dist/calendar/index.js.map +1 -1
- package/dist/calendar/print-layout.d.ts +16 -0
- package/dist/calendar/printCalendar.d.ts +6 -0
- package/dist/calls/composite-canvas.d.ts +52 -0
- package/dist/calls/index.cjs +376 -3
- package/dist/calls/index.cjs.map +1 -1
- package/dist/calls/index.d.ts +3 -0
- package/dist/calls/index.js +360 -5
- package/dist/calls/index.js.map +1 -1
- package/dist/calls/ringtone.d.ts +16 -0
- package/dist/calls/voice-levels.d.ts +32 -0
- package/dist/chat/ThreadVisualizer.d.ts +28 -0
- package/dist/chat/index.cjs +156 -140
- package/dist/chat/index.d.ts +2 -0
- package/dist/chat/index.js +5 -5
- package/dist/chat/open-document.d.ts +5 -1
- package/dist/chat/thread-diagram.d.ts +26 -0
- package/dist/{chunk-7HAM7Y5U.js → chunk-2DFDFOM7.js} +3 -3
- package/dist/{chunk-7HAM7Y5U.js.map → chunk-2DFDFOM7.js.map} +1 -1
- package/dist/{chunk-54ANPPMV.js → chunk-2PNNCEPH.js} +4 -4
- package/dist/{chunk-54ANPPMV.js.map → chunk-2PNNCEPH.js.map} +1 -1
- package/dist/{chunk-DQCYCEDR.js → chunk-2Q7FDZAY.js} +3 -3
- package/dist/{chunk-DQCYCEDR.js.map → chunk-2Q7FDZAY.js.map} +1 -1
- package/dist/{chunk-INW76PEL.cjs → chunk-2YV7FBLO.cjs} +175 -2
- package/dist/chunk-2YV7FBLO.cjs.map +1 -0
- package/dist/{chunk-S7PSMMRG.js → chunk-444XKG46.js} +3 -3
- package/dist/{chunk-S7PSMMRG.js.map → chunk-444XKG46.js.map} +1 -1
- package/dist/{chunk-FSBY2S4V.cjs → chunk-4QIIDXLF.cjs} +10 -10
- package/dist/{chunk-FSBY2S4V.cjs.map → chunk-4QIIDXLF.cjs.map} +1 -1
- package/dist/{chunk-OYMWV45N.js → chunk-4RLCRFZS.js} +63 -13
- package/dist/chunk-4RLCRFZS.js.map +1 -0
- package/dist/{chunk-NZUQFF35.cjs → chunk-4S5IDT5F.cjs} +234 -5
- package/dist/chunk-4S5IDT5F.cjs.map +1 -0
- package/dist/{chunk-CJBN5HIS.js → chunk-4UMXQPNA.js} +20 -8
- package/dist/chunk-4UMXQPNA.js.map +1 -0
- package/dist/{chunk-KELGOCJA.js → chunk-65S53MZK.js} +174 -5
- package/dist/chunk-65S53MZK.js.map +1 -0
- package/dist/{chunk-IBZJYCYM.js → chunk-66TA5IBN.js} +17 -25
- package/dist/chunk-66TA5IBN.js.map +1 -0
- package/dist/{chunk-HM23LXUP.cjs → chunk-6AALMYPS.cjs} +3 -3
- package/dist/{chunk-HM23LXUP.cjs.map → chunk-6AALMYPS.cjs.map} +1 -1
- package/dist/{chunk-OR4CO743.cjs → chunk-AAFX64WD.cjs} +3 -3
- package/dist/{chunk-OR4CO743.cjs.map → chunk-AAFX64WD.cjs.map} +1 -1
- package/dist/{chunk-MUMH3Z6K.cjs → chunk-ARDHLU73.cjs} +61 -11
- package/dist/chunk-ARDHLU73.cjs.map +1 -0
- package/dist/chunk-BIXHB4LV.cjs +178 -0
- package/dist/chunk-BIXHB4LV.cjs.map +1 -0
- package/dist/chunk-C4WSHRR6.cjs +166 -0
- package/dist/chunk-C4WSHRR6.cjs.map +1 -0
- package/dist/{chunk-ZAVEMQ37.cjs → chunk-DWZXSPMB.cjs} +3 -3
- package/dist/{chunk-ZAVEMQ37.cjs.map → chunk-DWZXSPMB.cjs.map} +1 -1
- package/dist/{chunk-VW2C2AZL.js → chunk-ENDP7JER.js} +3 -3
- package/dist/{chunk-VW2C2AZL.js.map → chunk-ENDP7JER.js.map} +1 -1
- package/dist/{chunk-5HFPRI3W.js → chunk-FUTMU4FR.js} +3 -3
- package/dist/{chunk-5HFPRI3W.js.map → chunk-FUTMU4FR.js.map} +1 -1
- package/dist/{chunk-P5ST47VY.js → chunk-GDBDHOI4.js} +3 -3
- package/dist/{chunk-P5ST47VY.js.map → chunk-GDBDHOI4.js.map} +1 -1
- package/dist/chunk-GTCC2VAR.js +153 -0
- package/dist/chunk-GTCC2VAR.js.map +1 -0
- package/dist/{chunk-3BJLNKOB.cjs → chunk-GZPTWHP5.cjs} +22 -10
- package/dist/chunk-GZPTWHP5.cjs.map +1 -0
- package/dist/{chunk-OUW6G4O2.cjs → chunk-HFGXA5CL.cjs} +4 -4
- package/dist/{chunk-OUW6G4O2.cjs.map → chunk-HFGXA5CL.cjs.map} +1 -1
- package/dist/{chunk-SWQX6CTT.cjs → chunk-JKB7WT7L.cjs} +2 -2
- package/dist/chunk-JKB7WT7L.cjs.map +1 -0
- package/dist/{chunk-D4YR56FV.cjs → chunk-KYDRUFWT.cjs} +5 -5
- package/dist/{chunk-D4YR56FV.cjs.map → chunk-KYDRUFWT.cjs.map} +1 -1
- package/dist/chunk-NS4JD2VR.js +22 -0
- package/dist/chunk-NS4JD2VR.js.map +1 -0
- package/dist/{chunk-S6BOINC4.cjs → chunk-OGBXV326.cjs} +7 -7
- package/dist/{chunk-S6BOINC4.cjs.map → chunk-OGBXV326.cjs.map} +1 -1
- package/dist/{chunk-DJM7DLCT.cjs → chunk-OPTBQSCV.cjs} +3 -3
- package/dist/{chunk-DJM7DLCT.cjs.map → chunk-OPTBQSCV.cjs.map} +1 -1
- package/dist/{chunk-GFYGYME3.js → chunk-OQ7RUNOC.js} +3 -3
- package/dist/{chunk-GFYGYME3.js.map → chunk-OQ7RUNOC.js.map} +1 -1
- package/dist/{chunk-WV4IDVDQ.cjs → chunk-PJJY6CYL.cjs} +11 -11
- package/dist/{chunk-WV4IDVDQ.cjs.map → chunk-PJJY6CYL.cjs.map} +1 -1
- package/dist/{chunk-CXLVI3SB.js → chunk-PUCY3UXN.js} +3 -3
- package/dist/{chunk-CXLVI3SB.js.map → chunk-PUCY3UXN.js.map} +1 -1
- package/dist/{chunk-ZV3BKLFY.cjs → chunk-QDEODGXE.cjs} +5 -5
- package/dist/{chunk-ZV3BKLFY.cjs.map → chunk-QDEODGXE.cjs.map} +1 -1
- package/dist/{chunk-7BJRLP3U.js → chunk-QYTYW74G.js} +5 -5
- package/dist/{chunk-7BJRLP3U.js.map → chunk-QYTYW74G.js.map} +1 -1
- package/dist/{chunk-A7NCSZAP.cjs → chunk-QZTNTP75.cjs} +17 -25
- package/dist/chunk-QZTNTP75.cjs.map +1 -0
- package/dist/{chunk-OB5F4577.cjs → chunk-R26BK7YL.cjs} +4 -4
- package/dist/{chunk-OB5F4577.cjs.map → chunk-R26BK7YL.cjs.map} +1 -1
- package/dist/{chunk-A2YAC22G.js → chunk-RI6DZA5X.js} +3 -3
- package/dist/{chunk-A2YAC22G.js.map → chunk-RI6DZA5X.js.map} +1 -1
- package/dist/{chunk-LC2KJSUS.cjs → chunk-SARREDFP.cjs} +46 -46
- package/dist/{chunk-LC2KJSUS.cjs.map → chunk-SARREDFP.cjs.map} +1 -1
- package/dist/{chunk-ZCHSJUCI.js → chunk-SZX44LCT.js} +231 -6
- package/dist/chunk-SZX44LCT.js.map +1 -0
- package/dist/{chunk-7QDX2CO4.cjs → chunk-TP6PLDNM.cjs} +4 -4
- package/dist/{chunk-7QDX2CO4.cjs.map → chunk-TP6PLDNM.cjs.map} +1 -1
- package/dist/{chunk-W27VK32R.cjs → chunk-TT6XV6WM.cjs} +84 -84
- package/dist/{chunk-W27VK32R.cjs.map → chunk-TT6XV6WM.cjs.map} +1 -1
- package/dist/{chunk-KLOSOT26.js → chunk-UMIY4SQS.js} +11 -11
- package/dist/{chunk-KLOSOT26.js.map → chunk-UMIY4SQS.js.map} +1 -1
- package/dist/chunk-VG24E4JJ.cjs +26 -0
- package/dist/chunk-VG24E4JJ.cjs.map +1 -0
- package/dist/{chunk-ECERC6TI.js → chunk-VHJHY7TT.js} +3 -3
- package/dist/{chunk-ECERC6TI.js.map → chunk-VHJHY7TT.js.map} +1 -1
- package/dist/{chunk-D3N67Q4D.js → chunk-W3VYZXNS.js} +3 -3
- package/dist/{chunk-D3N67Q4D.js.map → chunk-W3VYZXNS.js.map} +1 -1
- package/dist/{chunk-JK45LSIH.cjs → chunk-WXYQ66KC.cjs} +5 -5
- package/dist/{chunk-JK45LSIH.cjs.map → chunk-WXYQ66KC.cjs.map} +1 -1
- package/dist/{chunk-ZCF2JJFA.js → chunk-Y3KA6X7B.js} +3 -3
- package/dist/{chunk-ZCF2JJFA.js.map → chunk-Y3KA6X7B.js.map} +1 -1
- package/dist/{chunk-GYCQ3FNL.js → chunk-YBLIKTJK.js} +2 -2
- package/dist/chunk-YBLIKTJK.js.map +1 -0
- package/dist/chunk-YNIBUKV5.js +163 -0
- package/dist/chunk-YNIBUKV5.js.map +1 -0
- package/dist/citations/index.cjs +12 -11
- package/dist/citations/index.js +3 -2
- package/dist/collaboration/index.cjs +51 -51
- package/dist/collaboration/index.js +3 -3
- package/dist/components/DroppableContainer.d.ts +6 -0
- package/dist/components/GridRowNavigator.d.ts +29 -0
- package/dist/components/LoadingIndicator.d.ts +21 -0
- package/dist/components/RowNavigatorControls.d.ts +29 -0
- package/dist/components/SharedCell.d.ts +27 -0
- package/dist/connect/docx.cjs +7 -5
- package/dist/connect/docx.cjs.map +1 -1
- package/dist/connect/docx.js +6 -4
- package/dist/connect/docx.js.map +1 -1
- package/dist/connect/index.cjs +270 -227
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.d.ts +1 -1
- package/dist/connect/index.js +199 -156
- package/dist/connect/index.js.map +1 -1
- package/dist/connection/ConnectedSettings.d.ts +46 -20
- package/dist/connection/ConnectionProvider.d.ts +5 -0
- package/dist/connection/mail/ConnectedMailComposer.d.ts +2 -3
- package/dist/connection/mail/ConnectedMailbox.d.ts +2 -3
- package/dist/connection/mail/MailComposerForm.d.ts +2 -3
- package/dist/connection/mail/index.d.ts +2 -2
- package/dist/connection/mail/mailbox.d.ts +1 -4
- package/dist/connection/mail/types.d.ts +0 -8
- package/dist/document-tools/index.cjs +1 -1
- package/dist/document-tools/index.js +1 -1
- package/dist/facts/fact-citations.d.ts +56 -0
- package/dist/facts/fact-table-column-resize.d.ts +18 -0
- package/dist/facts/index.cjs +198 -29
- package/dist/facts/index.cjs.map +1 -1
- package/dist/facts/index.d.ts +2 -1
- package/dist/facts/index.js +187 -27
- package/dist/facts/index.js.map +1 -1
- package/dist/files/index.cjs +4 -4
- package/dist/files/index.js +3 -3
- package/dist/home/index.cjs +20 -19
- package/dist/home/index.cjs.map +1 -1
- package/dist/home/index.js +5 -4
- package/dist/home/index.js.map +1 -1
- package/dist/index.cjs +877 -679
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.js +207 -30
- package/dist/index.js.map +1 -1
- package/dist/provider/BlocksProvider.d.ts +39 -4
- package/dist/provider/dialogs.d.ts +31 -0
- package/dist/retrieval/index.cjs +5 -4
- package/dist/retrieval/index.js +3 -2
- package/dist/sandboxDocument-JLEETIWW.js +71 -0
- package/dist/sandboxDocument-JLEETIWW.js.map +1 -0
- package/dist/sandboxDocument-WQUNODSC.cjs +76 -0
- package/dist/sandboxDocument-WQUNODSC.cjs.map +1 -0
- package/dist/settings/DraggableHeader.d.ts +10 -0
- package/dist/settings/FilterChip.d.ts +15 -0
- package/dist/settings/MessageJsonTree.d.ts +7 -0
- package/dist/settings/MoreInfo.d.ts +25 -0
- package/dist/settings/PlanCard.d.ts +1 -1
- package/dist/settings/index.cjs +363 -266
- package/dist/settings/index.cjs.map +1 -1
- package/dist/settings/index.d.ts +4 -1
- package/dist/settings/index.js +317 -222
- package/dist/settings/index.js.map +1 -1
- package/dist/settings/message-schema-hints.d.ts +19 -0
- package/dist/shell/index.cjs +48 -47
- package/dist/shell/index.js +4 -3
- package/dist/site/index.cjs +5 -5
- package/dist/site/index.js +1 -1
- package/dist/studio/index.cjs +19 -18
- package/dist/studio/index.cjs.map +1 -1
- package/dist/studio/index.js +11 -10
- package/dist/studio/index.js.map +1 -1
- package/dist/workflow-canvas/index.cjs +65 -65
- package/dist/workflow-canvas/index.js +13 -13
- package/dist/workspaces/index.cjs +42 -3
- package/dist/workspaces/index.cjs.map +1 -1
- package/dist/workspaces/index.d.ts +1 -0
- package/dist/workspaces/index.js +38 -3
- package/dist/workspaces/index.js.map +1 -1
- package/dist/workspaces/workspace-type.d.ts +29 -0
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +10 -4
- package/dist/StreamedArtifactEditor-EEYAXJ4H.cjs.map +0 -1
- package/dist/StreamedArtifactEditor-TDATDYD2.js.map +0 -1
- package/dist/chunk-3BJLNKOB.cjs.map +0 -1
- package/dist/chunk-76JDDMSP.js +0 -31
- package/dist/chunk-76JDDMSP.js.map +0 -1
- package/dist/chunk-A7NCSZAP.cjs.map +0 -1
- package/dist/chunk-C54XEN5T.cjs +0 -34
- package/dist/chunk-C54XEN5T.cjs.map +0 -1
- package/dist/chunk-CJBN5HIS.js.map +0 -1
- package/dist/chunk-GYCQ3FNL.js.map +0 -1
- package/dist/chunk-IBZJYCYM.js.map +0 -1
- package/dist/chunk-INW76PEL.cjs.map +0 -1
- package/dist/chunk-KELGOCJA.js.map +0 -1
- package/dist/chunk-MUMH3Z6K.cjs.map +0 -1
- package/dist/chunk-NZUQFF35.cjs.map +0 -1
- package/dist/chunk-OYMWV45N.js.map +0 -1
- package/dist/chunk-SWQX6CTT.cjs.map +0 -1
- package/dist/chunk-ZCHSJUCI.js.map +0 -1
- package/dist/facts/timezone.d.ts +0 -4
- package/dist/settings/FirmPool.d.ts +0 -82
package/dist/settings/index.js
CHANGED
|
@@ -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
|
-
|
|
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-
|
|
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,
|
|
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,
|
|
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 &&
|
|
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
|
|
1422
|
-
"Add-ons start now. Downgrades, billing switches and
|
|
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(
|
|
1614
|
-
/* @__PURE__ */ jsx(
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
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:
|
|
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,
|
|
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
|