@arbidocs/blocks 0.4.5 → 0.4.6

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 (131) hide show
  1. package/README.md +46 -6
  2. package/dist/agents/index.cjs +163 -162
  3. package/dist/agents/index.js +6 -5
  4. package/dist/chat/ChatMessageContent.d.ts +16 -0
  5. package/dist/chat/ChatPage.d.ts +11 -8
  6. package/dist/chat/ChatThreads.d.ts +3 -1
  7. package/dist/chat/CitationMark.d.ts +18 -0
  8. package/dist/chat/chat-page-types.d.ts +75 -1
  9. package/dist/chat/index.cjs +126 -117
  10. package/dist/chat/index.d.ts +3 -1
  11. package/dist/chat/index.js +5 -4
  12. package/dist/{chunk-3MIQASHO.cjs → chunk-23XL6SVZ.cjs} +39 -19
  13. package/dist/chunk-23XL6SVZ.cjs.map +1 -0
  14. package/dist/{chunk-ULWRNGGE.cjs → chunk-2ZTONLT5.cjs} +4 -25
  15. package/dist/chunk-2ZTONLT5.cjs.map +1 -0
  16. package/dist/{chunk-O637DUKS.cjs → chunk-56BUD74K.cjs} +28 -28
  17. package/dist/{chunk-O637DUKS.cjs.map → chunk-56BUD74K.cjs.map} +1 -1
  18. package/dist/{chunk-YLOKCIQJ.cjs → chunk-5SLLMK5K.cjs} +421 -115
  19. package/dist/chunk-5SLLMK5K.cjs.map +1 -0
  20. package/dist/{chunk-SS23F63U.cjs → chunk-5ZBP7TCD.cjs} +55 -3
  21. package/dist/chunk-5ZBP7TCD.cjs.map +1 -0
  22. package/dist/{chunk-3PZPRAAR.cjs → chunk-67HGXV4I.cjs} +14 -14
  23. package/dist/{chunk-3PZPRAAR.cjs.map → chunk-67HGXV4I.cjs.map} +1 -1
  24. package/dist/{chunk-RCP6THBS.js → chunk-7OCFHEE6.js} +3 -3
  25. package/dist/{chunk-RCP6THBS.js.map → chunk-7OCFHEE6.js.map} +1 -1
  26. package/dist/{chunk-TX2ZICS7.js → chunk-CPMNAJLF.js} +4 -24
  27. package/dist/chunk-CPMNAJLF.js.map +1 -0
  28. package/dist/{chunk-5XTZFH65.js → chunk-CVFBSUXL.js} +5 -5
  29. package/dist/{chunk-5XTZFH65.js.map → chunk-CVFBSUXL.js.map} +1 -1
  30. package/dist/chunk-DCDVWPMB.cjs +29 -0
  31. package/dist/chunk-DCDVWPMB.cjs.map +1 -0
  32. package/dist/{chunk-TI4UTYRL.js → chunk-EY2RJW27.js} +258 -10
  33. package/dist/chunk-EY2RJW27.js.map +1 -0
  34. package/dist/{chunk-7YADKWZT.js → chunk-G2E3O3HI.js} +3 -3
  35. package/dist/{chunk-7YADKWZT.js.map → chunk-G2E3O3HI.js.map} +1 -1
  36. package/dist/{chunk-6YHWXMPQ.js → chunk-G2T3KTZ3.js} +419 -115
  37. package/dist/chunk-G2T3KTZ3.js.map +1 -0
  38. package/dist/{chunk-2NNTQLBY.js → chunk-IAKUTBPX.js} +4 -4
  39. package/dist/{chunk-2NNTQLBY.js.map → chunk-IAKUTBPX.js.map} +1 -1
  40. package/dist/{chunk-IZHWP6WQ.cjs → chunk-JG4TFS3Z.cjs} +6 -6
  41. package/dist/{chunk-IZHWP6WQ.cjs.map → chunk-JG4TFS3Z.cjs.map} +1 -1
  42. package/dist/chunk-JLOYWXRB.js +1156 -0
  43. package/dist/chunk-JLOYWXRB.js.map +1 -0
  44. package/dist/{chunk-WJZBJUPX.js → chunk-KXMDOTGW.js} +56 -4
  45. package/dist/chunk-KXMDOTGW.js.map +1 -0
  46. package/dist/{chunk-2VBJ763Y.js → chunk-KZJAG7T3.js} +37 -7
  47. package/dist/chunk-KZJAG7T3.js.map +1 -0
  48. package/dist/{chunk-RIL7G7AS.cjs → chunk-MGUHR3JI.cjs} +4 -4
  49. package/dist/{chunk-RIL7G7AS.cjs.map → chunk-MGUHR3JI.cjs.map} +1 -1
  50. package/dist/{chunk-NPKGUQU5.js → chunk-NJL4LIXX.js} +4 -4
  51. package/dist/{chunk-NPKGUQU5.js.map → chunk-NJL4LIXX.js.map} +1 -1
  52. package/dist/{chunk-DN3NFNIA.cjs → chunk-QMDLPO3M.cjs} +266 -10
  53. package/dist/chunk-QMDLPO3M.cjs.map +1 -0
  54. package/dist/chunk-TJMKFY5P.js +27 -0
  55. package/dist/chunk-TJMKFY5P.js.map +1 -0
  56. package/dist/{chunk-3PJCET7H.js → chunk-UHVNYKV2.js} +38 -18
  57. package/dist/chunk-UHVNYKV2.js.map +1 -0
  58. package/dist/{chunk-6CHMNKXC.cjs → chunk-UTYQPVIW.cjs} +11 -11
  59. package/dist/chunk-UTYQPVIW.cjs.map +1 -0
  60. package/dist/{chunk-KHX2BX3S.cjs → chunk-VGOFFCMT.cjs} +37 -5
  61. package/dist/chunk-VGOFFCMT.cjs.map +1 -0
  62. package/dist/{chunk-67MKU5U7.js → chunk-YMHGF6R5.js} +8 -8
  63. package/dist/chunk-YMHGF6R5.js.map +1 -0
  64. package/dist/chunk-YVIOCITQ.cjs +1186 -0
  65. package/dist/chunk-YVIOCITQ.cjs.map +1 -0
  66. package/dist/{chunk-MVNCQDDE.cjs → chunk-ZVPTFTGV.cjs} +4 -4
  67. package/dist/{chunk-MVNCQDDE.cjs.map → chunk-ZVPTFTGV.cjs.map} +1 -1
  68. package/dist/collaboration/index.cjs +38 -37
  69. package/dist/collaboration/index.js +3 -2
  70. package/dist/connect/index.cjs +358 -19
  71. package/dist/connect/index.cjs.map +1 -1
  72. package/dist/connect/index.d.ts +1 -0
  73. package/dist/connect/index.js +341 -9
  74. package/dist/connect/index.js.map +1 -1
  75. package/dist/connection/ConnectedSettings.d.ts +64 -0
  76. package/dist/facts/index.cjs +2 -2
  77. package/dist/facts/index.js +2 -2
  78. package/dist/files/index.cjs +15 -14
  79. package/dist/files/index.cjs.map +1 -1
  80. package/dist/files/index.js +5 -4
  81. package/dist/files/index.js.map +1 -1
  82. package/dist/home/index.cjs +19 -19
  83. package/dist/home/index.js +4 -4
  84. package/dist/index.cjs +526 -477
  85. package/dist/index.cjs.map +1 -1
  86. package/dist/index.js +17 -16
  87. package/dist/index.js.map +1 -1
  88. package/dist/lib/bottom-inset.d.ts +16 -0
  89. package/dist/lib/useElementSize.d.ts +13 -0
  90. package/dist/lib/useFillHeight.d.ts +10 -0
  91. package/dist/settings/account-views.d.ts +55 -0
  92. package/dist/settings/index.cjs +179 -1148
  93. package/dist/settings/index.cjs.map +1 -1
  94. package/dist/settings/index.d.ts +1 -0
  95. package/dist/settings/index.js +10 -1073
  96. package/dist/settings/index.js.map +1 -1
  97. package/dist/shell/InstallPrompt.d.ts +28 -0
  98. package/dist/shell/MobileBars.d.ts +1 -1
  99. package/dist/shell/index.cjs +85 -45
  100. package/dist/shell/index.d.ts +4 -0
  101. package/dist/shell/index.js +3 -3
  102. package/dist/shell/install-instructions.d.ts +19 -0
  103. package/dist/shell/types.d.ts +6 -0
  104. package/dist/shell/use-install-prompt.d.ts +49 -0
  105. package/dist/site/index.cjs +62 -62
  106. package/dist/site/index.js +2 -2
  107. package/dist/studio/index.cjs +78 -77
  108. package/dist/studio/index.cjs.map +1 -1
  109. package/dist/studio/index.js +8 -7
  110. package/dist/studio/index.js.map +1 -1
  111. package/dist/theme/ThemeEditor.d.ts +4 -2
  112. package/dist/workspaces/index.cjs +4 -3
  113. package/dist/workspaces/index.cjs.map +1 -1
  114. package/dist/workspaces/index.js +3 -2
  115. package/dist/workspaces/index.js.map +1 -1
  116. package/package.json +8 -4
  117. package/src/blocks.css +30 -0
  118. package/dist/chunk-2VBJ763Y.js.map +0 -1
  119. package/dist/chunk-3MIQASHO.cjs.map +0 -1
  120. package/dist/chunk-3PJCET7H.js.map +0 -1
  121. package/dist/chunk-67MKU5U7.js.map +0 -1
  122. package/dist/chunk-6CHMNKXC.cjs.map +0 -1
  123. package/dist/chunk-6YHWXMPQ.js.map +0 -1
  124. package/dist/chunk-DN3NFNIA.cjs.map +0 -1
  125. package/dist/chunk-KHX2BX3S.cjs.map +0 -1
  126. package/dist/chunk-SS23F63U.cjs.map +0 -1
  127. package/dist/chunk-TI4UTYRL.js.map +0 -1
  128. package/dist/chunk-TX2ZICS7.js.map +0 -1
  129. package/dist/chunk-ULWRNGGE.cjs.map +0 -1
  130. package/dist/chunk-WJZBJUPX.js.map +0 -1
  131. package/dist/chunk-YLOKCIQJ.cjs.map +0 -1
@@ -6,11 +6,13 @@ var chunkCRIKTUEU_cjs = require('../chunk-CRIKTUEU.cjs');
6
6
  var chunkVFUWWH52_cjs = require('../chunk-VFUWWH52.cjs');
7
7
  var chunkRFIBUWLF_cjs = require('../chunk-RFIBUWLF.cjs');
8
8
  var chunk5B4PXAKI_cjs = require('../chunk-5B4PXAKI.cjs');
9
+ var chunk2ZTONLT5_cjs = require('../chunk-2ZTONLT5.cjs');
10
+ var chunkYVIOCITQ_cjs = require('../chunk-YVIOCITQ.cjs');
11
+ require('../chunk-ADOKTJHV.cjs');
9
12
  require('../chunk-PPCATBOY.cjs');
10
- var chunkADOKTJHV_cjs = require('../chunk-ADOKTJHV.cjs');
11
- var chunkULWRNGGE_cjs = require('../chunk-ULWRNGGE.cjs');
12
- var chunkMHVNT4J3_cjs = require('../chunk-MHVNT4J3.cjs');
13
13
  var chunkKDG6FER6_cjs = require('../chunk-KDG6FER6.cjs');
14
+ require('../chunk-DCDVWPMB.cjs');
15
+ var chunkMHVNT4J3_cjs = require('../chunk-MHVNT4J3.cjs');
14
16
  var react = require('react');
15
17
  var lucideReact = require('lucide-react');
16
18
  var ui = require('@arbidocs/react/ui');
@@ -61,7 +63,7 @@ function ConfirmDialog({
61
63
  const l = react.useMemo(() => ({ ...DEFAULT_CONFIRM_DIALOG_LABELS, ...labels }), [labels]);
62
64
  const cancelRef = react.useRef(null);
63
65
  return /* @__PURE__ */ jsxRuntime.jsx(
64
- chunkULWRNGGE_cjs.ModalScaffold,
66
+ chunk2ZTONLT5_cjs.ModalScaffold,
65
67
  {
66
68
  open: isOpen,
67
69
  onOpenChange: (next) => {
@@ -74,7 +76,7 @@ function ConfirmDialog({
74
76
  showDescription: true,
75
77
  icon: variant === "destructive" ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "h-5 w-5 text-red-text", "aria-hidden": "true" }) : null,
76
78
  testId: chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "confirmation-modal" }),
77
- children: /* @__PURE__ */ jsxRuntime.jsxs(chunkULWRNGGE_cjs.ModalScaffold.Footer, { children: [
79
+ children: /* @__PURE__ */ jsxRuntime.jsxs(chunk2ZTONLT5_cjs.ModalScaffold.Footer, { children: [
78
80
  /* @__PURE__ */ jsxRuntime.jsx(
79
81
  ui.Button,
80
82
  {
@@ -100,454 +102,6 @@ function ConfirmDialog({
100
102
  }
101
103
  );
102
104
  }
103
- var DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS = {
104
- setNewPasswordTitle: "Set New Password",
105
- changeMasterPasswordTitle: "Change Master Password",
106
- recoveryDescription: "Set a new password for your recovered account",
107
- changeDescription: "Change your master password dialog",
108
- passwordChanged: "Password changed",
109
- done: "Done",
110
- recoverySuccessful: "Recovery successful. Set a new master password to continue.",
111
- currentPassword: "Current Password",
112
- currentPasswordPlaceholder: "Enter current password",
113
- masterPassword: "Master Password",
114
- newPassword: "New Password",
115
- confirmPassword: "Confirm Password",
116
- confirmNewPassword: "Confirm New Password",
117
- workspacesRekeyed: (count) => `${chunkKDG6FER6_cjs.formatCount(count, { one: "workspace", other: "workspaces" })} will be re-keyed with your new password.`,
118
- cancel: "Cancel",
119
- settingPassword: "Setting Password...",
120
- changingPassword: "Changing Password...",
121
- continue: "Continue",
122
- changePassword: "Change Password"
123
- };
124
- function PasswordChangeDialog({
125
- open,
126
- onClose,
127
- recoveryMode,
128
- currentPassword,
129
- onCurrentPasswordChange,
130
- newPassword,
131
- onNewPasswordChange,
132
- confirmPassword,
133
- onConfirmPasswordChange,
134
- getUnmetRequirement,
135
- workspaceCount,
136
- error,
137
- isProcessing,
138
- isSubmitDisabled,
139
- onSubmit,
140
- success,
141
- onDone,
142
- labels,
143
- passwordInputLabels,
144
- testId,
145
- testIds,
146
- passwordInputTestIds
147
- }) {
148
- const currentPasswordId = react.useId();
149
- const l = react.useMemo(() => ({ ...DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS, ...labels }), [labels]);
150
- const handleSubmit = (e) => {
151
- e.preventDefault();
152
- onSubmit();
153
- };
154
- return /* @__PURE__ */ jsxRuntime.jsx(ui.Dialog, { open, onOpenChange: (next) => !next && onClose(), children: /* @__PURE__ */ jsxRuntime.jsxs(
155
- ui.DialogContent,
156
- {
157
- presentation: "sheet",
158
- className: "sm:max-w-md",
159
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "change-password-dialog" }),
160
- children: [
161
- /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogHeader, { children: [
162
- /* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: recoveryMode ? l.setNewPasswordTitle : l.changeMasterPasswordTitle }),
163
- /* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { className: "sr-only", children: recoveryMode ? l.recoveryDescription : l.changeDescription })
164
- ] }),
165
- success ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
166
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-green-text", children: [
167
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-5 w-5" }),
168
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium", children: l.passwordChanged })
169
- ] }),
170
- success,
171
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsx(
172
- ui.Button,
173
- {
174
- onClick: onDone,
175
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.done, { testId: "change-password-done-button" }),
176
- children: l.done
177
- }
178
- ) })
179
- ] }) : /* @__PURE__ */ jsxRuntime.jsxs("form", { onSubmit: handleSubmit, className: "space-y-3", children: [
180
- recoveryMode && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium text-green-text", children: l.recoverySuccessful }),
181
- !recoveryMode && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
182
- /* @__PURE__ */ jsxRuntime.jsxs("label", { htmlFor: currentPasswordId, className: "text-sm font-medium text-foreground", children: [
183
- l.currentPassword,
184
- " ",
185
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-text", children: "*" })
186
- ] }),
187
- /* @__PURE__ */ jsxRuntime.jsx(
188
- ui.Input,
189
- {
190
- id: currentPasswordId,
191
- type: "password",
192
- value: currentPassword,
193
- onChange: (e) => onCurrentPasswordChange(e.target.value),
194
- disabled: isProcessing,
195
- placeholder: l.currentPasswordPlaceholder,
196
- autoComplete: "current-password",
197
- className: "placeholder:text-muted-foreground",
198
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.currentInput, {
199
- testId: "change-password-current-input"
200
- })
201
- }
202
- )
203
- ] }),
204
- /* @__PURE__ */ jsxRuntime.jsx(
205
- chunkADOKTJHV_cjs.PasswordStrengthInput,
206
- {
207
- password: newPassword,
208
- confirmPassword,
209
- onPasswordChange: onNewPasswordChange,
210
- onConfirmPasswordChange,
211
- showConfirmation: true,
212
- disabled: isProcessing,
213
- passwordLabel: recoveryMode ? l.masterPassword : l.newPassword,
214
- confirmLabel: recoveryMode ? l.confirmPassword : l.confirmNewPassword,
215
- labels: passwordInputLabels,
216
- testIds: passwordInputTestIds,
217
- layout: recoveryMode ? "side-by-side" : "stacked",
218
- showStrengthIndicator: true,
219
- getUnmetRequirement
220
- }
221
- ),
222
- workspaceCount > 0 && /* @__PURE__ */ jsxRuntime.jsx(
223
- "div",
224
- {
225
- className: "rounded-md bg-green-bg p-3",
226
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.workspaceCount, {
227
- testId: "change-password-workspace-count"
228
- }),
229
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
230
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-5 w-5 flex-shrink-0 text-green-text" }),
231
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-green-text", children: l.workspacesRekeyed(workspaceCount) })
232
- ] })
233
- }
234
- ),
235
- error && /* @__PURE__ */ jsxRuntime.jsx(
236
- "div",
237
- {
238
- className: "rounded-md bg-red-bg p-3",
239
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.error, { testId: "change-password-error" }),
240
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
241
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "h-5 w-5 flex-shrink-0 text-red-text" }),
242
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-red-text", children: error })
243
- ] })
244
- }
245
- ),
246
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col-reverse sm:flex-row sm:justify-end gap-3 pt-4", children: [
247
- !recoveryMode && /* @__PURE__ */ jsxRuntime.jsx(
248
- ui.Button,
249
- {
250
- type: "button",
251
- variant: "outline",
252
- onClick: onClose,
253
- disabled: isProcessing,
254
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.cancel, {
255
- testId: "change-password-cancel-button"
256
- }),
257
- children: l.cancel
258
- }
259
- ),
260
- /* @__PURE__ */ jsxRuntime.jsx(
261
- ui.Button,
262
- {
263
- type: "submit",
264
- disabled: isSubmitDisabled,
265
- className: recoveryMode ? "w-full" : "",
266
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.submit, { testId: "change-password-submit-button" }),
267
- children: isProcessing ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
268
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "mr-2 h-4 w-4 animate-spin" }),
269
- recoveryMode ? l.settingPassword : l.changingPassword
270
- ] }) : recoveryMode ? l.continue : l.changePassword
271
- }
272
- )
273
- ] })
274
- ] })
275
- ]
276
- }
277
- ) });
278
- }
279
- var DEFAULT_LOGOUT_DIALOG_LABELS = {
280
- title: "Logout",
281
- descriptionAll: "End this session or all active sessions?",
282
- descriptionThis: "End this session and return to the login page.",
283
- cancel: "Cancel",
284
- allSessions: "All sessions",
285
- offlineTooltip: "Ending all sessions needs a connection \u2014 you can still log out of this device.",
286
- thisSession: "This session",
287
- offlineNote: "You\u2019re offline \u2014 ending all sessions needs a connection. You can still log out of this device.",
288
- activeSessions: (count) => chunkKDG6FER6_cjs.formatCount(count, { one: "active session", other: "active sessions" }),
289
- workspaces: (count) => chunkKDG6FER6_cjs.formatCount(count, { one: "workspace", other: "workspaces" }),
290
- ttl: (ttlLabel) => `TTL ${ttlLabel}`
291
- };
292
- function SessionRow({
293
- session,
294
- icon,
295
- labels
296
- }) {
297
- const { status } = session;
298
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 rounded-md bg-muted/50 px-3 py-2", children: [
299
- icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0", children: icon }),
300
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
301
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
302
- /* @__PURE__ */ jsxRuntime.jsx("code", { className: "truncate font-mono text-sm", children: session.id.slice(0, 12) }),
303
- /* @__PURE__ */ jsxRuntime.jsx(
304
- ui.Badge,
305
- {
306
- variant: status === "agent" ? "default" : "secondary",
307
- className: "px-1 py-0 text-sm",
308
- children: status
309
- }
310
- )
311
- ] }),
312
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
313
- session.ipAddress && /* @__PURE__ */ jsxRuntime.jsx("span", { children: session.ipAddress }),
314
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: labels.ttl(session.ttlLabel) }),
315
- session.workspaceCount > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { children: labels.workspaces(session.workspaceCount) })
316
- ] })
317
- ] })
318
- ] });
319
- }
320
- function LogoutDialog({
321
- open,
322
- onClose,
323
- onLogoutThis,
324
- onLogoutAll,
325
- canLogoutAll,
326
- isOnline,
327
- sessions,
328
- renderSessionIcon,
329
- labels,
330
- testId,
331
- testIds
332
- }) {
333
- const l = react.useMemo(() => ({ ...DEFAULT_LOGOUT_DIALOG_LABELS, ...labels }), [labels]);
334
- const [sessionsOpen, setSessionsOpen] = react.useState(false);
335
- const restoreFocus = chunkULWRNGGE_cjs.useRestoreFocus();
336
- return /* @__PURE__ */ jsxRuntime.jsx(ui.Dialog, { open, onOpenChange: (next) => !next && onClose(), children: /* @__PURE__ */ jsxRuntime.jsxs(
337
- ui.DialogContent,
338
- {
339
- ...restoreFocus,
340
- className: "sm:max-w-md",
341
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "logout-modal" }),
342
- children: [
343
- /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogHeader, { children: [
344
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
345
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.LogOut, { className: "h-6 w-6" }),
346
- /* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: l.title })
347
- ] }),
348
- /* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { className: "text-base", children: canLogoutAll ? l.descriptionAll : l.descriptionThis })
349
- ] }),
350
- /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogFooter, { className: "gap-2", children: [
351
- /* @__PURE__ */ jsxRuntime.jsx(
352
- ui.Button,
353
- {
354
- variant: "outline",
355
- onClick: onClose,
356
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.cancel, { testId: "logout-modal-cancel-button" }),
357
- children: l.cancel
358
- }
359
- ),
360
- canLogoutAll && /* @__PURE__ */ jsxRuntime.jsx(
361
- ui.Button,
362
- {
363
- variant: "secondary",
364
- onClick: onLogoutAll,
365
- disabled: !isOnline,
366
- title: isOnline ? void 0 : l.offlineTooltip,
367
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.all, { testId: "logout-modal-all-button" }),
368
- children: l.allSessions
369
- }
370
- ),
371
- /* @__PURE__ */ jsxRuntime.jsx(
372
- ui.Button,
373
- {
374
- variant: "default",
375
- onClick: onLogoutThis,
376
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.this, { testId: "logout-modal-this-button" }),
377
- children: l.thisSession
378
- }
379
- )
380
- ] }),
381
- canLogoutAll && !isOnline && /* @__PURE__ */ jsxRuntime.jsx(
382
- "p",
383
- {
384
- className: "text-sm text-muted-foreground",
385
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.offlineNote, { testId: "logout-offline-note" }),
386
- children: l.offlineNote
387
- }
388
- ),
389
- sessions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(ui.Collapsible, { open: sessionsOpen, onOpenChange: setSessionsOpen, children: [
390
- /* @__PURE__ */ jsxRuntime.jsxs(ui.CollapsibleTrigger, { className: "flex w-full items-center gap-2 py-1 text-left transition-opacity hover:opacity-80 pointer-coarse:py-3", children: [
391
- sessionsOpen ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-4 w-4 flex-shrink-0" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "h-4 w-4 flex-shrink-0" }),
392
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-sm font-medium text-muted-foreground", children: [
393
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Radio, { className: "h-3 w-3" }),
394
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: l.activeSessions(sessions.length) })
395
- ] })
396
- ] }),
397
- /* @__PURE__ */ jsxRuntime.jsx(ui.CollapsibleContent, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-48 space-y-1.5 overflow-auto pt-2", children: sessions.map((session) => /* @__PURE__ */ jsxRuntime.jsx(
398
- SessionRow,
399
- {
400
- session,
401
- icon: renderSessionIcon?.(session.status),
402
- labels: l
403
- },
404
- session.id
405
- )) }) })
406
- ] })
407
- ]
408
- }
409
- ) });
410
- }
411
- var DEFAULT_SETTINGS_DANGER_ZONE_LABELS = {
412
- dangerZone: "Danger Zone"
413
- };
414
- function SettingsPanel({ className, testId, ...props }) {
415
- return /* @__PURE__ */ jsxRuntime.jsx(
416
- "div",
417
- {
418
- "data-slot": "settings-panel",
419
- "data-testid": testId,
420
- className: ui.cn("mx-auto w-full max-w-xl space-y-6", className),
421
- ...props
422
- }
423
- );
424
- }
425
- function SettingsSection({
426
- icon,
427
- title,
428
- description,
429
- action,
430
- testId,
431
- className,
432
- children,
433
- ...props
434
- }) {
435
- return /* @__PURE__ */ jsxRuntime.jsxs(
436
- "section",
437
- {
438
- "data-slot": "settings-section",
439
- "data-testid": testId,
440
- className: ui.cn("space-y-3", className),
441
- ...props,
442
- children: [
443
- (title || action) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-3", children: [
444
- title && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
445
- icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground [&_svg]:h-4 [&_svg]:w-4", children: icon }),
446
- /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-base font-semibold text-foreground", children: title })
447
- ] }),
448
- action
449
- ] }),
450
- description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: description }),
451
- children
452
- ]
453
- }
454
- );
455
- }
456
- function SettingsRow({
457
- label,
458
- labelFor,
459
- description,
460
- children,
461
- testId,
462
- className,
463
- ...props
464
- }) {
465
- return /* @__PURE__ */ jsxRuntime.jsxs(
466
- "div",
467
- {
468
- "data-slot": "settings-row",
469
- "data-testid": testId,
470
- className: ui.cn(
471
- "flex flex-col gap-2 py-2 @xl:flex-row @xl:items-center @xl:justify-between @xl:gap-6",
472
- className
473
- ),
474
- ...props,
475
- children: [
476
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
477
- labelFor ? /* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: labelFor, className: "text-sm font-medium text-foreground", children: label }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium text-foreground", children: label }),
478
- description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm text-muted-foreground", children: description })
479
- ] }),
480
- children && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 items-center gap-2", children })
481
- ]
482
- }
483
- );
484
- }
485
- function SettingsCard({ padding = "md", className, ...props }) {
486
- return /* @__PURE__ */ jsxRuntime.jsx(
487
- "div",
488
- {
489
- "data-slot": "settings-card",
490
- className: ui.cn(
491
- "rounded-lg bg-muted",
492
- padding === "md" ? "space-y-5 p-5" : "divide-y divide-border p-2",
493
- className
494
- ),
495
- ...props
496
- }
497
- );
498
- }
499
- function SettingsActionRow({ title, description, onClick, testId }) {
500
- return /* @__PURE__ */ jsxRuntime.jsxs(
501
- "button",
502
- {
503
- type: "button",
504
- onClick,
505
- "data-slot": "settings-action-row",
506
- "data-testid": testId,
507
- className: "flex w-full items-center gap-3 rounded-md px-3 py-3 text-left transition-colors hover:bg-background/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:min-h-11",
508
- children: [
509
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
510
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-semibold text-foreground", children: title }),
511
- description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-0.5 text-xs leading-relaxed text-muted-foreground", children: description })
512
- ] }),
513
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "h-4 w-4 shrink-0 text-muted-foreground" })
514
- ]
515
- }
516
- );
517
- }
518
- function SettingsDangerZone({
519
- isOpen,
520
- onToggle,
521
- label,
522
- title,
523
- description,
524
- action,
525
- labels
526
- }) {
527
- const l = react.useMemo(() => ({ ...DEFAULT_SETTINGS_DANGER_ZONE_LABELS, ...labels }), [labels]);
528
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-slot": "settings-danger-zone", className: "mt-8 pt-2", children: [
529
- /* @__PURE__ */ jsxRuntime.jsxs(
530
- "button",
531
- {
532
- type: "button",
533
- onClick: onToggle,
534
- "aria-expanded": isOpen,
535
- className: "flex w-full items-center gap-1.5 text-left pointer-coarse:min-h-11",
536
- children: [
537
- isOpen ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-3.5 w-3.5 text-muted-foreground" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "h-3.5 w-3.5 text-muted-foreground" }),
538
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium text-muted-foreground", children: label ?? l.dangerZone })
539
- ]
540
- }
541
- ),
542
- isOpen && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-3 flex items-center justify-between gap-4 rounded-lg bg-destructive/5 p-4", children: [
543
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
544
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium", children: title }),
545
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: description })
546
- ] }),
547
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: action })
548
- ] })
549
- ] });
550
- }
551
105
  function SegmentedControl({
552
106
  value,
553
107
  onChange,
@@ -848,8 +402,8 @@ function ConversationTitleSection({
848
402
  }) {
849
403
  const l = react.useMemo(() => ({ ...DEFAULT_CONVERSATION_TITLE_SECTION_LABELS, ...labels }), [labels]);
850
404
  const trimmed = title.trim();
851
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkULWRNGGE_cjs.ModalSection, { className: SECTION_CLASS, children: [
852
- /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalSectionTitle, { children: l.title }),
405
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunk2ZTONLT5_cjs.ModalSection, { className: SECTION_CLASS, children: [
406
+ /* @__PURE__ */ jsxRuntime.jsx(chunk2ZTONLT5_cjs.ModalSectionTitle, { children: l.title }),
853
407
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-3", children: [
854
408
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
855
409
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -929,8 +483,8 @@ function ModelSelectionSection({
929
483
  { icon: lucideReact.History, label: l.lastUsed },
930
484
  { icon: lucideReact.Brain, label: l.deepThinking }
931
485
  ];
932
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkULWRNGGE_cjs.ModalSection, { className: SECTION_CLASS, children: [
933
- /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalSectionTitle, { children: l.title }),
486
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunk2ZTONLT5_cjs.ModalSection, { className: SECTION_CLASS, children: [
487
+ /* @__PURE__ */ jsxRuntime.jsx(chunk2ZTONLT5_cjs.ModalSectionTitle, { children: l.title }),
934
488
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", children: [
935
489
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: l.description }),
936
490
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
@@ -1018,111 +572,6 @@ function WorkOfflineToggle({
1018
572
  /* @__PURE__ */ jsxRuntime.jsx(ui.TooltipContent, { children: /* @__PURE__ */ jsxRuntime.jsx("p", { children: isOffline ? l.goOnlineHint : l.workOfflineHint }) })
1019
573
  ] });
1020
574
  }
1021
- function SettingsSwitchRow({
1022
- id,
1023
- title,
1024
- icon,
1025
- description,
1026
- checked,
1027
- onCheckedChange,
1028
- testId,
1029
- disabled,
1030
- className
1031
- }) {
1032
- return /* @__PURE__ */ jsxRuntime.jsxs(
1033
- "div",
1034
- {
1035
- "data-slot": "settings-switch-row",
1036
- className: ui.cn("flex items-center justify-between gap-4", className),
1037
- children: [
1038
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
1039
- /* @__PURE__ */ jsxRuntime.jsxs("label", { htmlFor: id, className: "flex items-center gap-2 text-sm font-medium text-foreground", children: [
1040
- icon,
1041
- title
1042
- ] }),
1043
- description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: description })
1044
- ] }),
1045
- /* @__PURE__ */ jsxRuntime.jsx(
1046
- ui.Switch,
1047
- {
1048
- id,
1049
- checked,
1050
- onCheckedChange,
1051
- disabled,
1052
- "data-testid": testId
1053
- }
1054
- )
1055
- ]
1056
- }
1057
- );
1058
- }
1059
- function SettingsSwitchGroup({
1060
- className,
1061
- children
1062
- }) {
1063
- return /* @__PURE__ */ jsxRuntime.jsx(
1064
- "div",
1065
- {
1066
- "data-slot": "settings-switch-group",
1067
- className: ui.cn("ml-6 space-y-4 border-l border-border pl-4", className),
1068
- children
1069
- }
1070
- );
1071
- }
1072
- function NotificationCategoryList({
1073
- masterId,
1074
- masterTitle,
1075
- masterDescription,
1076
- masterChecked,
1077
- onMasterChange,
1078
- masterTestId,
1079
- categories,
1080
- onCategoryChange,
1081
- idPrefix = masterId,
1082
- testIdPrefix
1083
- }) {
1084
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-slot": "notification-category-list", children: [
1085
- /* @__PURE__ */ jsxRuntime.jsx(
1086
- SettingsSwitchRow,
1087
- {
1088
- id: masterId,
1089
- title: masterTitle,
1090
- description: masterDescription,
1091
- checked: masterChecked,
1092
- onCheckedChange: onMasterChange,
1093
- testId: chunkMHVNT4J3_cjs.testIdOr(masterTestId, { testId: "toggle-email-notifications" })
1094
- }
1095
- ),
1096
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-1 mt-3 space-y-3 border-l border-border pl-4 pointer-coarse:mt-5 pointer-coarse:space-y-5", children: categories.map((c) => /* @__PURE__ */ jsxRuntime.jsxs(
1097
- "label",
1098
- {
1099
- htmlFor: `${idPrefix}-${c.key}`,
1100
- className: ui.cn(
1101
- "flex items-start gap-3 pointer-coarse:min-h-11",
1102
- masterChecked ? "cursor-pointer" : "cursor-not-allowed opacity-50"
1103
- ),
1104
- children: [
1105
- /* @__PURE__ */ jsxRuntime.jsx(
1106
- ui.Checkbox,
1107
- {
1108
- id: `${idPrefix}-${c.key}`,
1109
- checked: c.checked,
1110
- disabled: !masterChecked,
1111
- onCheckedChange: (value) => onCategoryChange(c.key, value === true),
1112
- "data-testid": chunkMHVNT4J3_cjs.prefixedTestId(testIdPrefix, c.key, { testId: `toggle-email-${c.key}` }),
1113
- className: "mt-0.5 size-5 shrink-0"
1114
- }
1115
- ),
1116
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
1117
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm", children: c.label }),
1118
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: c.description })
1119
- ] })
1120
- ]
1121
- },
1122
- c.key
1123
- )) })
1124
- ] });
1125
- }
1126
575
  var GRID_ACCENT_CLASSES = [
1127
576
  "[&_.ag-checkbox-input-wrapper.ag-checked]:!bg-primary",
1128
577
  "[&_.ag-checkbox-input-wrapper.ag-checked]:!border-primary",
@@ -1202,7 +651,7 @@ function ThreadPreviewDialog({
1202
651
  style: { width: `${width}px`, maxWidth: "95vw", height: "80vh", maxHeight: "90vh" },
1203
652
  "data-testid": testId,
1204
653
  children: [
1205
- /* @__PURE__ */ jsxRuntime.jsxs(chunkULWRNGGE_cjs.ModalHeader, { children: [
654
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk2ZTONLT5_cjs.ModalHeader, { children: [
1206
655
  /* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-3", children: crumbs.map((c, i) => /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-3", children: [
1207
656
  i > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "/" }),
1208
657
  c.icon,
@@ -1473,7 +922,7 @@ function TipsEditorDialog({
1473
922
  { value: "url", label: l.externalLink }
1474
923
  ];
1475
924
  return /* @__PURE__ */ jsxRuntime.jsxs(
1476
- chunkULWRNGGE_cjs.ModalScaffold,
925
+ chunk2ZTONLT5_cjs.ModalScaffold,
1477
926
  {
1478
927
  open,
1479
928
  onOpenChange,
@@ -2723,281 +2172,49 @@ function ReferralCreditSummary({
2723
2172
  className: "rounded-lg bg-green-bg/60 p-3 text-sm",
2724
2173
  "data-testid": chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "referral-credit-summary" }),
2725
2174
  children: breakdown ? /* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "space-y-1 tabular-nums", children: [
2726
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-muted-foreground", children: [
2727
- /* @__PURE__ */ jsxRuntime.jsx("dt", { children: l.subtotal }),
2728
- /* @__PURE__ */ jsxRuntime.jsx("dd", { children: breakdown.subtotal })
2729
- ] }),
2730
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-green-text", children: [
2731
- /* @__PURE__ */ jsxRuntime.jsxs("dt", { className: "flex items-center gap-1.5", children: [
2732
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Gift, { className: "h-3.5 w-3.5" }),
2733
- l.reward
2734
- ] }),
2735
- /* @__PURE__ */ jsxRuntime.jsxs("dd", { "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.applied, { testId: "referral-credit-applied" }), children: [
2736
- "\u2212",
2737
- breakdown.reward
2738
- ] })
2739
- ] }),
2740
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between border-t border-green-border pt-1 font-semibold text-foreground", children: [
2741
- /* @__PURE__ */ jsxRuntime.jsx("dt", { children: l.youPayNow }),
2742
- /* @__PURE__ */ jsxRuntime.jsx("dd", { "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.youPay, { testId: "referral-credit-you-pay" }), children: breakdown.youPay })
2743
- ] }),
2744
- breakdown.rollover && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "pt-0.5 text-xs font-normal text-muted-foreground", children: l.rollover(breakdown.rollover) })
2745
- ] }) : /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "flex items-center gap-1.5 font-medium text-green-text", children: [
2746
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Gift, { className: "h-3.5 w-3.5 shrink-0" }),
2747
- l.applied(amountLabel)
2748
- ] })
2749
- }
2750
- );
2751
- }
2752
- function ReferralCreditNote({
2753
- amountLabel,
2754
- labels,
2755
- testId
2756
- }) {
2757
- const l = react.useMemo(() => ({ ...DEFAULT_REFERRAL_CREDIT_LABELS, ...labels }), [labels]);
2758
- return /* @__PURE__ */ jsxRuntime.jsxs(
2759
- "p",
2760
- {
2761
- className: "flex items-center gap-1.5 text-sm text-green-text",
2762
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "referral-credit-note" }),
2763
- children: [
2764
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Gift, { className: "h-3.5 w-3.5 shrink-0" }),
2765
- l.note(amountLabel)
2766
- ]
2767
- }
2768
- );
2769
- }
2770
- var DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS = {
2771
- title: "Active sessions",
2772
- description: "Devices and agents currently signed in to your account. Ending a session signs it out immediately.",
2773
- noSessions: "No active sessions.",
2774
- thisDevice: "This device",
2775
- agent: "Agent",
2776
- endSession: "End this session"
2777
- };
2778
- var DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS = {
2779
- warningTitle: "Delete your account?",
2780
- warningBefore: "Once deleted, your account will be ",
2781
- warningEmphasis: "immediately closed and you will be logged out",
2782
- warningAfter: ". This action cannot be undone.",
2783
- blockersHeading: "You must resolve these first:",
2784
- cancel: "Cancel",
2785
- continue: "Continue",
2786
- confirmTitle: "Confirm account deletion",
2787
- confirmDescription: "Type your email address to confirm. Your account will be closed immediately and you will be logged out.",
2788
- yourEmail: "Your email",
2789
- back: "Back",
2790
- deleting: "Deleting...",
2791
- deleteAccount: "Delete Account"
2792
- };
2793
- function SessionListRow({
2794
- session,
2795
- onTerminate,
2796
- labels,
2797
- testIds
2798
- }) {
2799
- return /* @__PURE__ */ jsxRuntime.jsxs(
2800
- "div",
2801
- {
2802
- className: "flex w-full items-center gap-3 border-b border-border/60 px-4 py-3 last:border-b-0",
2803
- "data-testid": chunkMHVNT4J3_cjs.prefixedTestId(testIds?.sessionItem, session.id, {
2804
- testId: `session-item-${session.id}`
2805
- }),
2806
- children: [
2807
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex size-9 shrink-0 items-center justify-center rounded-full bg-muted", children: session.icon }),
2808
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
2809
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
2810
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-sm font-semibold text-foreground", children: session.name }),
2811
- session.isCurrent && /* @__PURE__ */ jsxRuntime.jsx(ui.Badge, { className: "border-transparent bg-accent px-1.5 py-0 text-xs text-accent-foreground shadow-none hover:bg-accent", children: labels.thisDevice }),
2812
- session.isAgent && /* @__PURE__ */ jsxRuntime.jsx(ui.Badge, { variant: "default", className: "px-1 py-0 text-xs", children: labels.agent })
2813
- ] }),
2814
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-0.5 truncate text-xs text-muted-foreground", children: session.detail })
2815
- ] }),
2816
- !session.isCurrent && /* @__PURE__ */ jsxRuntime.jsxs(ui.Tooltip, { children: [
2817
- /* @__PURE__ */ jsxRuntime.jsx(ui.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
2818
- ui.Button,
2819
- {
2820
- type: "button",
2821
- variant: "ghost",
2822
- size: "icon",
2823
- className: "h-8 w-8 shrink-0 text-muted-foreground hover:text-destructive",
2824
- "aria-label": labels.endSession,
2825
- onClick: () => onTerminate(session.id),
2826
- disabled: session.isTerminating,
2827
- "data-testid": chunkMHVNT4J3_cjs.prefixedTestId(
2828
- testIds?.terminateSession,
2829
- session.id,
2830
- { testId: `terminate-session-${session.id}-button` },
2831
- "-button"
2832
- ),
2833
- children: session.isTerminating ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.LogOut, { className: "h-4 w-4" })
2834
- }
2835
- ) }),
2836
- /* @__PURE__ */ jsxRuntime.jsx(ui.TooltipContent, { children: labels.endSession })
2837
- ] })
2838
- ]
2839
- }
2840
- );
2841
- }
2842
- function ActiveSessionsDialog({
2843
- open,
2844
- onOpenChange,
2845
- isLoading,
2846
- sessions,
2847
- onTerminate,
2848
- labels,
2849
- testId,
2850
- testIds
2851
- }) {
2852
- const l = react.useMemo(() => ({ ...DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS, ...labels }), [labels]);
2853
- return /* @__PURE__ */ jsxRuntime.jsx(ui.Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(
2854
- ui.DialogContent,
2855
- {
2856
- presentation: "sheet",
2857
- className: "sm:max-w-lg",
2858
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "active-sessions-dialog" }),
2859
- children: [
2860
- /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogHeader, { children: [
2861
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
2862
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Radio, { className: "h-6 w-6" }),
2863
- /* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: l.title })
2864
- ] }),
2865
- /* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { children: l.description })
2866
- ] }),
2867
- isLoading ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "h-5 w-5 animate-spin text-muted-foreground" }) }) : sessions.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "py-4 text-center text-sm text-muted-foreground", children: l.noSessions }) : /* @__PURE__ */ jsxRuntime.jsx(
2868
- "div",
2869
- {
2870
- className: "-mx-2 max-h-96 overflow-auto rounded-lg bg-muted",
2871
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.list, { testId: "session-list" }),
2872
- children: sessions.map((session) => /* @__PURE__ */ jsxRuntime.jsx(
2873
- SessionListRow,
2874
- {
2875
- session,
2876
- onTerminate,
2877
- labels: l,
2878
- testIds
2879
- },
2880
- session.id
2881
- ))
2882
- }
2883
- )
2884
- ]
2885
- }
2886
- ) });
2887
- }
2888
- function DeleteAccountDialog({
2889
- open,
2890
- onClose,
2891
- step,
2892
- blockers,
2893
- onContinue,
2894
- onBack,
2895
- userEmail,
2896
- confirmEmail,
2897
- onConfirmEmailChange,
2898
- isDeleting,
2899
- onSubmit,
2900
- labels,
2901
- testId,
2902
- testIds
2903
- }) {
2904
- const confirmEmailId = react.useId();
2905
- const l = react.useMemo(() => ({ ...DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS, ...labels }), [labels]);
2906
- const emailMatches = confirmEmail.toLowerCase() === userEmail.toLowerCase();
2907
- return /* @__PURE__ */ jsxRuntime.jsx(ui.Dialog, { open, onOpenChange: onClose, children: /* @__PURE__ */ jsxRuntime.jsx(
2908
- ui.DialogContent,
2909
- {
2910
- presentation: "sheet",
2911
- className: "sm:max-w-md",
2912
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "delete-account-dialog" }),
2913
- children: step === "warning" ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2914
- /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogHeader, { children: [
2915
- /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogTitle, { className: "flex items-center gap-2", children: [
2916
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "h-5 w-5 text-destructive" }),
2917
- l.warningTitle
2175
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-muted-foreground", children: [
2176
+ /* @__PURE__ */ jsxRuntime.jsx("dt", { children: l.subtotal }),
2177
+ /* @__PURE__ */ jsxRuntime.jsx("dd", { children: breakdown.subtotal })
2178
+ ] }),
2179
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-green-text", children: [
2180
+ /* @__PURE__ */ jsxRuntime.jsxs("dt", { className: "flex items-center gap-1.5", children: [
2181
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Gift, { className: "h-3.5 w-3.5" }),
2182
+ l.reward
2918
2183
  ] }),
2919
- /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogDescription, { children: [
2920
- l.warningBefore,
2921
- /* @__PURE__ */ jsxRuntime.jsx("strong", { children: l.warningEmphasis }),
2922
- l.warningAfter
2184
+ /* @__PURE__ */ jsxRuntime.jsxs("dd", { "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.applied, { testId: "referral-credit-applied" }), children: [
2185
+ "\u2212",
2186
+ breakdown.reward
2923
2187
  ] })
2924
2188
  ] }),
2925
- blockers.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-md bg-yellow-bg p-3 text-sm text-yellow-text", children: [
2926
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-1 font-semibold", children: l.blockersHeading }),
2927
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "list-inside list-disc space-y-1", children: blockers.map((blocker) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: blocker.content }, blocker.key)) })
2928
- ] }),
2929
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col-reverse sm:flex-row sm:justify-end gap-2 pt-2", children: [
2930
- /* @__PURE__ */ jsxRuntime.jsx(
2931
- ui.Button,
2932
- {
2933
- variant: "outline",
2934
- onClick: onClose,
2935
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.cancel, { testId: "delete-account-cancel-button" }),
2936
- children: l.cancel
2937
- }
2938
- ),
2939
- /* @__PURE__ */ jsxRuntime.jsx(
2940
- ui.Button,
2941
- {
2942
- variant: "destructive",
2943
- disabled: blockers.length > 0,
2944
- onClick: onContinue,
2945
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.continue, {
2946
- testId: "delete-account-continue-button"
2947
- }),
2948
- children: l.continue
2949
- }
2950
- )
2951
- ] })
2952
- ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2953
- /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogHeader, { children: [
2954
- /* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: l.confirmTitle }),
2955
- /* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { children: l.confirmDescription })
2956
- ] }),
2957
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2958
- /* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: confirmEmailId, className: "mb-1 block text-sm font-medium", children: l.yourEmail }),
2959
- /* @__PURE__ */ jsxRuntime.jsx(
2960
- ui.Input,
2961
- {
2962
- id: confirmEmailId,
2963
- type: "email",
2964
- placeholder: userEmail,
2965
- value: confirmEmail,
2966
- onChange: (e) => onConfirmEmailChange(e.target.value),
2967
- autoFocus: true,
2968
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.emailInput, {
2969
- testId: "delete-account-email-input"
2970
- })
2971
- }
2972
- )
2189
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between border-t border-green-border pt-1 font-semibold text-foreground", children: [
2190
+ /* @__PURE__ */ jsxRuntime.jsx("dt", { children: l.youPayNow }),
2191
+ /* @__PURE__ */ jsxRuntime.jsx("dd", { "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.youPay, { testId: "referral-credit-you-pay" }), children: breakdown.youPay })
2973
2192
  ] }),
2974
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col-reverse sm:flex-row sm:justify-end gap-2 pt-2", children: [
2975
- /* @__PURE__ */ jsxRuntime.jsx(
2976
- ui.Button,
2977
- {
2978
- variant: "outline",
2979
- onClick: onBack,
2980
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.back, { testId: "delete-account-back-button" }),
2981
- children: l.back
2982
- }
2983
- ),
2984
- /* @__PURE__ */ jsxRuntime.jsx(
2985
- ui.Button,
2986
- {
2987
- variant: "destructive",
2988
- disabled: !emailMatches || isDeleting,
2989
- onClick: onSubmit,
2990
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.submit, { testId: "delete-account-submit-button" }),
2991
- children: isDeleting ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2992
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "mr-2 h-4 w-4 animate-spin" }),
2993
- l.deleting
2994
- ] }) : l.deleteAccount
2995
- }
2996
- )
2997
- ] })
2193
+ breakdown.rollover && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "pt-0.5 text-xs font-normal text-muted-foreground", children: l.rollover(breakdown.rollover) })
2194
+ ] }) : /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "flex items-center gap-1.5 font-medium text-green-text", children: [
2195
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Gift, { className: "h-3.5 w-3.5 shrink-0" }),
2196
+ l.applied(amountLabel)
2998
2197
  ] })
2999
2198
  }
3000
- ) });
2199
+ );
2200
+ }
2201
+ function ReferralCreditNote({
2202
+ amountLabel,
2203
+ labels,
2204
+ testId
2205
+ }) {
2206
+ const l = react.useMemo(() => ({ ...DEFAULT_REFERRAL_CREDIT_LABELS, ...labels }), [labels]);
2207
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2208
+ "p",
2209
+ {
2210
+ className: "flex items-center gap-1.5 text-sm text-green-text",
2211
+ "data-testid": chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "referral-credit-note" }),
2212
+ children: [
2213
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Gift, { className: "h-3.5 w-3.5 shrink-0" }),
2214
+ l.note(amountLabel)
2215
+ ]
2216
+ }
2217
+ );
3001
2218
  }
3002
2219
  var DEFAULT_CONNECTION_CARD_LABELS = {
3003
2220
  connectedAs: (identity) => `Connected as ${identity}`,
@@ -3116,82 +2333,6 @@ function ConnectionsError({ message }) {
3116
2333
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: message })
3117
2334
  ] });
3118
2335
  }
3119
- var DEFAULT_AVATAR_PICKER_LABELS = {
3120
- uploadingPicture: "Uploading picture",
3121
- changeProfilePicture: "Change profile picture",
3122
- change: "Change"
3123
- };
3124
- function AvatarPicker({
3125
- pictureUrl,
3126
- initials,
3127
- fallbackClassName,
3128
- isUploading,
3129
- disabled,
3130
- onFileChosen,
3131
- testId = "avatar-uploader-input",
3132
- labels
3133
- }) {
3134
- const l = react.useMemo(() => ({ ...DEFAULT_AVATAR_PICKER_LABELS, ...labels }), [labels]);
3135
- const fileInputRef = react.useRef(null);
3136
- const handleChange = (e) => {
3137
- const file = e.target.files?.[0];
3138
- e.target.value = "";
3139
- if (file) onFileChosen(file);
3140
- };
3141
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-slot": "avatar-picker", className: "group/avatar relative shrink-0", children: [
3142
- /* @__PURE__ */ jsxRuntime.jsxs(ui.Avatar, { className: "h-20 w-20 ring-1 ring-border", children: [
3143
- pictureUrl && /* @__PURE__ */ jsxRuntime.jsx(ui.AvatarImage, { src: pictureUrl, alt: initials }),
3144
- /* @__PURE__ */ jsxRuntime.jsx(
3145
- ui.AvatarFallback,
3146
- {
3147
- className: ui.cn("text-2xl font-semibold leading-none text-white", fallbackClassName),
3148
- children: initials
3149
- }
3150
- )
3151
- ] }),
3152
- /* @__PURE__ */ jsxRuntime.jsx(
3153
- "button",
3154
- {
3155
- type: "button",
3156
- onClick: () => fileInputRef.current?.click(),
3157
- disabled: disabled || isUploading,
3158
- className: ui.cn(
3159
- "absolute inset-0 flex items-center justify-center rounded-full",
3160
- "bg-foreground/70 text-background",
3161
- "opacity-0 focus-visible:opacity-100 group-hover/avatar:opacity-100",
3162
- // Touch has no hover: keep the change affordance visible (lighter scrim over the photo).
3163
- "pointer-coarse:opacity-100",
3164
- "transition-opacity duration-200",
3165
- "disabled:cursor-not-allowed disabled:opacity-100"
3166
- ),
3167
- "aria-label": isUploading ? l.uploadingPicture : l.changeProfilePicture,
3168
- children: isUploading ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "h-6 w-6 animate-spin" }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-0.5", children: [
3169
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Camera, { className: "h-5 w-5" }),
3170
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium", children: l.change })
3171
- ] })
3172
- }
3173
- ),
3174
- /* @__PURE__ */ jsxRuntime.jsx(
3175
- "span",
3176
- {
3177
- "aria-hidden": "true",
3178
- className: "pointer-events-none absolute -bottom-1 -right-1 flex h-7 w-7 items-center justify-center rounded-full bg-background text-muted-foreground ring-1 ring-border",
3179
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Camera, { className: "h-3.5 w-3.5" })
3180
- }
3181
- ),
3182
- /* @__PURE__ */ jsxRuntime.jsx(
3183
- "input",
3184
- {
3185
- ref: fileInputRef,
3186
- type: "file",
3187
- accept: "image/png,image/jpeg,image/webp,image/gif",
3188
- onChange: handleChange,
3189
- className: "hidden",
3190
- "data-testid": testId
3191
- }
3192
- )
3193
- ] });
3194
- }
3195
2336
  var DEFAULT_PROJECT_LIST_LABELS = {
3196
2337
  loading: "Loading projects...",
3197
2338
  empty: "No projects yet. Create one to get started.",
@@ -3485,7 +2626,7 @@ function WelcomeDialog({
3485
2626
  /* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { className: "sr-only", children: l.description })
3486
2627
  ] }),
3487
2628
  /* @__PURE__ */ jsxRuntime.jsxs(
3488
- chunkULWRNGGE_cjs.ModalSection,
2629
+ chunk2ZTONLT5_cjs.ModalSection,
3489
2630
  {
3490
2631
  className: "space-y-4",
3491
2632
  "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.copy, { testId: "welcome-modal-copy" }),
@@ -3521,7 +2662,7 @@ function WelcomeDialog({
3521
2662
  ]
3522
2663
  }
3523
2664
  ),
3524
- /* @__PURE__ */ jsxRuntime.jsxs(chunkULWRNGGE_cjs.ModalSection, { className: "space-y-2.5", children: [
2665
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk2ZTONLT5_cjs.ModalSection, { className: "space-y-2.5", children: [
3525
2666
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-3", children: [
3526
2667
  /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-muted-foreground", children: [
3527
2668
  l.referralBefore,
@@ -3574,7 +2715,7 @@ function InviteContactsDialog({
3574
2715
  }) {
3575
2716
  const l = react.useMemo(() => ({ ...DEFAULT_INVITE_CONTACTS_DIALOG_LABELS, ...labels }), [labels]);
3576
2717
  return /* @__PURE__ */ jsxRuntime.jsx(
3577
- chunkULWRNGGE_cjs.ModalScaffold,
2718
+ chunk2ZTONLT5_cjs.ModalScaffold,
3578
2719
  {
3579
2720
  open,
3580
2721
  onOpenChange: (next) => !next && onClose(),
@@ -3584,7 +2725,7 @@ function InviteContactsDialog({
3584
2725
  size: "lg",
3585
2726
  className: "sm:max-w-lg",
3586
2727
  testId,
3587
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalSection, { children })
2728
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunk2ZTONLT5_cjs.ModalSection, { children })
3588
2729
  }
3589
2730
  );
3590
2731
  }
@@ -4105,210 +3246,6 @@ function ProjectCardView({
4105
3246
  }
4106
3247
  );
4107
3248
  }
4108
- var DEFAULT_PROFILE_CARD_LABELS = {
4109
- firstName: "First name",
4110
- lastName: "Last name",
4111
- save: "Save",
4112
- cancel: "Cancel",
4113
- sso: "SSO",
4114
- ssoTooltip: "Your email is managed by your sign-in provider. Change it there and it will sync here automatically on your next sign-in.",
4115
- change: "Change",
4116
- newEmailAddress: "New email address",
4117
- emailPlaceholder: "you@example.com",
4118
- codeWillBeSent: "We\u2019ll send a 3-word verification code to this address.",
4119
- sendCode: "Send code",
4120
- verify: (email) => `Verify ${email}`,
4121
- codePlaceholder: "WORD-WORD-WORD",
4122
- enterCodeHint: "Enter the 3-word code from the email we just sent.",
4123
- confirm: "Confirm",
4124
- resendIn: (seconds) => `Resend in ${seconds}s`,
4125
- resendCode: "Resend code"
4126
- };
4127
- function ProfileCard({
4128
- avatar,
4129
- name,
4130
- email,
4131
- isSso,
4132
- onStartEmailChange,
4133
- emailChange,
4134
- ssoTooltip,
4135
- labels
4136
- }) {
4137
- const l = react.useMemo(() => ({ ...DEFAULT_PROFILE_CARD_LABELS, ...labels }), [labels]);
4138
- return /* @__PURE__ */ jsxRuntime.jsxs(SettingsCard, { children: [
4139
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-5", children: [
4140
- avatar,
4141
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1 space-y-3", children: [
4142
- name.isEditing ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
4143
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2 @xl:flex-row", children: [
4144
- /* @__PURE__ */ jsxRuntime.jsx(
4145
- ui.Input,
4146
- {
4147
- value: name.givenName,
4148
- onChange: (e) => name.onGivenNameChange(e.target.value),
4149
- placeholder: l.firstName,
4150
- className: "flex-1",
4151
- autoFocus: true
4152
- }
4153
- ),
4154
- /* @__PURE__ */ jsxRuntime.jsx(
4155
- ui.Input,
4156
- {
4157
- value: name.familyName,
4158
- onChange: (e) => name.onFamilyNameChange(e.target.value),
4159
- placeholder: l.lastName,
4160
- className: "flex-1"
4161
- }
4162
- )
4163
- ] }),
4164
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
4165
- /* @__PURE__ */ jsxRuntime.jsxs(
4166
- ui.Button,
4167
- {
4168
- onClick: name.onSave,
4169
- size: "sm",
4170
- disabled: !name.givenName.trim() || name.isSaving,
4171
- children: [
4172
- name.isSaving ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "mr-1 h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "mr-1 h-4 w-4" }),
4173
- l.save
4174
- ]
4175
- }
4176
- ),
4177
- /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { onClick: name.onCancel, size: "sm", variant: "ghost", disabled: name.isSaving, children: l.cancel })
4178
- ] })
4179
- ] }) : /* @__PURE__ */ jsxRuntime.jsx(
4180
- "button",
4181
- {
4182
- type: "button",
4183
- onClick: name.onStartEdit,
4184
- className: "-mx-2 w-full rounded-md px-2 py-1 text-left transition-colors hover:bg-background/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:min-h-11",
4185
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
4186
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 truncate font-heading text-xl font-semibold text-foreground", children: name.display }),
4187
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pencil, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" })
4188
- ] })
4189
- }
4190
- ),
4191
- !emailChange && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "-mx-2 flex min-w-0 items-center gap-2 px-2 py-1", children: [
4192
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mail, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }),
4193
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 truncate text-sm text-muted-foreground", children: email }),
4194
- isSso ? /* @__PURE__ */ jsxRuntime.jsxs(ui.Tooltip, { children: [
4195
- /* @__PURE__ */ jsxRuntime.jsx(ui.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
4196
- "span",
4197
- {
4198
- className: "ml-1 shrink-0 cursor-help rounded bg-background px-1.5 py-0.5 text-xs font-medium text-muted-foreground",
4199
- tabIndex: 0,
4200
- children: l.sso
4201
- }
4202
- ) }),
4203
- /* @__PURE__ */ jsxRuntime.jsx(ui.TooltipContent, { className: "max-w-xs", children: ssoTooltip ?? l.ssoTooltip })
4204
- ] }) : /* @__PURE__ */ jsxRuntime.jsx(
4205
- "button",
4206
- {
4207
- type: "button",
4208
- onClick: onStartEmailChange,
4209
- className: "ml-auto shrink-0 text-xs font-medium text-primary hover:underline pointer-coarse:min-h-11",
4210
- children: l.change
4211
- }
4212
- )
4213
- ] })
4214
- ] })
4215
- ] }),
4216
- emailChange && !isSso && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "animate-accordion-down overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3 rounded-lg bg-background p-4", children: emailChange.step === "enter" ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4217
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-xs font-medium text-muted-foreground", children: [
4218
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mail, { className: "h-3.5 w-3.5" }),
4219
- l.newEmailAddress
4220
- ] }),
4221
- /* @__PURE__ */ jsxRuntime.jsx(
4222
- ui.Input,
4223
- {
4224
- type: "email",
4225
- value: emailChange.newEmail,
4226
- onChange: (e) => emailChange.onNewEmailChange(e.target.value),
4227
- placeholder: l.emailPlaceholder,
4228
- autoFocus: true
4229
- }
4230
- ),
4231
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: l.codeWillBeSent }),
4232
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 pt-1", children: [
4233
- /* @__PURE__ */ jsxRuntime.jsxs(
4234
- ui.Button,
4235
- {
4236
- onClick: emailChange.onSendCode,
4237
- size: "sm",
4238
- disabled: !emailChange.newEmail.trim() || emailChange.isSending,
4239
- children: [
4240
- emailChange.isSending ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "mr-1 h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mail, { className: "mr-1 h-4 w-4" }),
4241
- l.sendCode
4242
- ]
4243
- }
4244
- ),
4245
- /* @__PURE__ */ jsxRuntime.jsx(
4246
- ui.Button,
4247
- {
4248
- onClick: emailChange.onCancel,
4249
- size: "sm",
4250
- variant: "ghost",
4251
- disabled: emailChange.isSending,
4252
- children: l.cancel
4253
- }
4254
- )
4255
- ] })
4256
- ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4257
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-xs font-medium text-muted-foreground", children: [
4258
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mail, { className: "h-3.5 w-3.5" }),
4259
- l.verify(emailChange.newEmail)
4260
- ] }),
4261
- /* @__PURE__ */ jsxRuntime.jsx(
4262
- ui.Input,
4263
- {
4264
- value: emailChange.code,
4265
- onChange: (e) => emailChange.onCodeChange(e.target.value.toUpperCase().replace(/\s+/g, "-")),
4266
- className: ui.cn("text-center font-mono tracking-wider"),
4267
- placeholder: l.codePlaceholder,
4268
- autoFocus: true
4269
- }
4270
- ),
4271
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: l.enterCodeHint }),
4272
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-2 pt-1", children: [
4273
- /* @__PURE__ */ jsxRuntime.jsxs(
4274
- ui.Button,
4275
- {
4276
- onClick: emailChange.onConfirm,
4277
- size: "sm",
4278
- disabled: !emailChange.code.trim() || emailChange.isConfirming,
4279
- children: [
4280
- emailChange.isConfirming ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "mr-1 h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "mr-1 h-4 w-4" }),
4281
- l.confirm
4282
- ]
4283
- }
4284
- ),
4285
- /* @__PURE__ */ jsxRuntime.jsx(
4286
- ui.Button,
4287
- {
4288
- onClick: () => {
4289
- if (emailChange.cooldownSeconds > 0) return;
4290
- emailChange.onSendCode();
4291
- },
4292
- size: "sm",
4293
- variant: "ghost",
4294
- disabled: emailChange.cooldownSeconds > 0 || emailChange.isSending,
4295
- children: emailChange.cooldownSeconds > 0 ? l.resendIn(emailChange.cooldownSeconds) : l.resendCode
4296
- }
4297
- ),
4298
- /* @__PURE__ */ jsxRuntime.jsx(
4299
- ui.Button,
4300
- {
4301
- onClick: emailChange.onCancel,
4302
- size: "sm",
4303
- variant: "ghost",
4304
- disabled: emailChange.isConfirming,
4305
- children: l.cancel
4306
- }
4307
- )
4308
- ] })
4309
- ] }) }) })
4310
- ] });
4311
- }
4312
3249
  var DEFAULT_EMAIL_WORKSPACE_DIALOG_LABELS = {
4313
3250
  title: "Email this workspace",
4314
3251
  description: "Send documents and questions here from your registered email address \u2014 your Assistant reads the email and replies.",
@@ -4679,8 +3616,8 @@ function QuotaExceededDialogView({
4679
3616
  /* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: l.title }),
4680
3617
  /* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { children: message })
4681
3618
  ] }),
4682
- usage && /* @__PURE__ */ jsxRuntime.jsxs(chunkULWRNGGE_cjs.ModalSection, { className: "space-y-2", children: [
4683
- /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalSectionTitle, { children: l.projectUsage }),
3619
+ usage && /* @__PURE__ */ jsxRuntime.jsxs(chunk2ZTONLT5_cjs.ModalSection, { className: "space-y-2", children: [
3620
+ /* @__PURE__ */ jsxRuntime.jsx(chunk2ZTONLT5_cjs.ModalSectionTitle, { children: l.projectUsage }),
4684
3621
  /* @__PURE__ */ jsxRuntime.jsx(ui.Progress, { value: usage.percent, "aria-label": l.progress }),
4685
3622
  /* @__PURE__ */ jsxRuntime.jsxs(
4686
3623
  "div",
@@ -4873,14 +3810,14 @@ function ErrorDialogView({
4873
3810
  className: "flex max-h-panel w-modal max-w-modal-vw flex-col overflow-hidden p-0",
4874
3811
  "data-testid": "error-boundary-modal",
4875
3812
  children: [
4876
- /* @__PURE__ */ jsxRuntime.jsxs(chunkULWRNGGE_cjs.ModalHeader, { children: [
3813
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk2ZTONLT5_cjs.ModalHeader, { children: [
4877
3814
  /* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
4878
3815
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "text-red-text", size: 24 }),
4879
3816
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: l.title })
4880
3817
  ] }) }),
4881
3818
  /* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { className: "sr-only", children: l.srDescription })
4882
3819
  ] }),
4883
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 flex-1 overflow-auto px-6 pb-6", children: /* @__PURE__ */ jsxRuntime.jsxs(chunkULWRNGGE_cjs.ModalSection, { "data-testid": "error-boundary", children: [
3820
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 flex-1 overflow-auto px-6 pb-6", children: /* @__PURE__ */ jsxRuntime.jsxs(chunk2ZTONLT5_cjs.ModalSection, { "data-testid": "error-boundary", children: [
4884
3821
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-4 text-sm text-muted-foreground", children: l.reportHint }),
4885
3822
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-4 text-sm text-muted-foreground", children: l.refreshHint }),
4886
3823
  details?.isShown && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4 rounded border border-border bg-background p-3", children: /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "max-h-96 overflow-auto whitespace-pre-wrap font-mono text-sm", children: details.text }) }),
@@ -4954,26 +3891,140 @@ Object.defineProperty(exports, "MultiSelect", {
4954
3891
  });
4955
3892
  Object.defineProperty(exports, "MODAL_SECTION_TITLE_CLASS", {
4956
3893
  enumerable: true,
4957
- get: function () { return chunkULWRNGGE_cjs.MODAL_SECTION_TITLE_CLASS; }
3894
+ get: function () { return chunk2ZTONLT5_cjs.MODAL_SECTION_TITLE_CLASS; }
4958
3895
  });
4959
3896
  Object.defineProperty(exports, "ModalHeader", {
4960
3897
  enumerable: true,
4961
- get: function () { return chunkULWRNGGE_cjs.ModalHeader; }
3898
+ get: function () { return chunk2ZTONLT5_cjs.ModalHeader; }
4962
3899
  });
4963
3900
  Object.defineProperty(exports, "ModalScaffold", {
4964
3901
  enumerable: true,
4965
- get: function () { return chunkULWRNGGE_cjs.ModalScaffold; }
3902
+ get: function () { return chunk2ZTONLT5_cjs.ModalScaffold; }
4966
3903
  });
4967
3904
  Object.defineProperty(exports, "ModalSection", {
4968
3905
  enumerable: true,
4969
- get: function () { return chunkULWRNGGE_cjs.ModalSection; }
3906
+ get: function () { return chunk2ZTONLT5_cjs.ModalSection; }
4970
3907
  });
4971
3908
  Object.defineProperty(exports, "ModalSectionTitle", {
4972
3909
  enumerable: true,
4973
- get: function () { return chunkULWRNGGE_cjs.ModalSectionTitle; }
3910
+ get: function () { return chunk2ZTONLT5_cjs.ModalSectionTitle; }
3911
+ });
3912
+ Object.defineProperty(exports, "ActiveSessionsDialog", {
3913
+ enumerable: true,
3914
+ get: function () { return chunkYVIOCITQ_cjs.ActiveSessionsDialog; }
3915
+ });
3916
+ Object.defineProperty(exports, "AvatarPicker", {
3917
+ enumerable: true,
3918
+ get: function () { return chunkYVIOCITQ_cjs.AvatarPicker; }
3919
+ });
3920
+ Object.defineProperty(exports, "DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS", {
3921
+ enumerable: true,
3922
+ get: function () { return chunkYVIOCITQ_cjs.DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS; }
3923
+ });
3924
+ Object.defineProperty(exports, "DEFAULT_AVATAR_PICKER_LABELS", {
3925
+ enumerable: true,
3926
+ get: function () { return chunkYVIOCITQ_cjs.DEFAULT_AVATAR_PICKER_LABELS; }
3927
+ });
3928
+ Object.defineProperty(exports, "DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS", {
3929
+ enumerable: true,
3930
+ get: function () { return chunkYVIOCITQ_cjs.DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS; }
3931
+ });
3932
+ Object.defineProperty(exports, "DEFAULT_LOGOUT_DIALOG_LABELS", {
3933
+ enumerable: true,
3934
+ get: function () { return chunkYVIOCITQ_cjs.DEFAULT_LOGOUT_DIALOG_LABELS; }
3935
+ });
3936
+ Object.defineProperty(exports, "DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS", {
3937
+ enumerable: true,
3938
+ get: function () { return chunkYVIOCITQ_cjs.DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS; }
3939
+ });
3940
+ Object.defineProperty(exports, "DEFAULT_PROFILE_CARD_LABELS", {
3941
+ enumerable: true,
3942
+ get: function () { return chunkYVIOCITQ_cjs.DEFAULT_PROFILE_CARD_LABELS; }
3943
+ });
3944
+ Object.defineProperty(exports, "DEFAULT_SETTINGS_DANGER_ZONE_LABELS", {
3945
+ enumerable: true,
3946
+ get: function () { return chunkYVIOCITQ_cjs.DEFAULT_SETTINGS_DANGER_ZONE_LABELS; }
3947
+ });
3948
+ Object.defineProperty(exports, "DeleteAccountDialog", {
3949
+ enumerable: true,
3950
+ get: function () { return chunkYVIOCITQ_cjs.DeleteAccountDialog; }
3951
+ });
3952
+ Object.defineProperty(exports, "EMAIL_NOTIFICATION_CATEGORIES", {
3953
+ enumerable: true,
3954
+ get: function () { return chunkYVIOCITQ_cjs.EMAIL_NOTIFICATION_CATEGORIES; }
3955
+ });
3956
+ Object.defineProperty(exports, "EMAIL_NOTIFICATION_KEYS", {
3957
+ enumerable: true,
3958
+ get: function () { return chunkYVIOCITQ_cjs.EMAIL_NOTIFICATION_KEYS; }
3959
+ });
3960
+ Object.defineProperty(exports, "LogoutDialog", {
3961
+ enumerable: true,
3962
+ get: function () { return chunkYVIOCITQ_cjs.LogoutDialog; }
3963
+ });
3964
+ Object.defineProperty(exports, "NotificationCategoryList", {
3965
+ enumerable: true,
3966
+ get: function () { return chunkYVIOCITQ_cjs.NotificationCategoryList; }
3967
+ });
3968
+ Object.defineProperty(exports, "PasswordChangeDialog", {
3969
+ enumerable: true,
3970
+ get: function () { return chunkYVIOCITQ_cjs.PasswordChangeDialog; }
3971
+ });
3972
+ Object.defineProperty(exports, "ProfileCard", {
3973
+ enumerable: true,
3974
+ get: function () { return chunkYVIOCITQ_cjs.ProfileCard; }
3975
+ });
3976
+ Object.defineProperty(exports, "SettingsActionRow", {
3977
+ enumerable: true,
3978
+ get: function () { return chunkYVIOCITQ_cjs.SettingsActionRow; }
3979
+ });
3980
+ Object.defineProperty(exports, "SettingsCard", {
3981
+ enumerable: true,
3982
+ get: function () { return chunkYVIOCITQ_cjs.SettingsCard; }
3983
+ });
3984
+ Object.defineProperty(exports, "SettingsDangerZone", {
3985
+ enumerable: true,
3986
+ get: function () { return chunkYVIOCITQ_cjs.SettingsDangerZone; }
3987
+ });
3988
+ Object.defineProperty(exports, "SettingsPanel", {
3989
+ enumerable: true,
3990
+ get: function () { return chunkYVIOCITQ_cjs.SettingsPanel; }
3991
+ });
3992
+ Object.defineProperty(exports, "SettingsRow", {
3993
+ enumerable: true,
3994
+ get: function () { return chunkYVIOCITQ_cjs.SettingsRow; }
3995
+ });
3996
+ Object.defineProperty(exports, "SettingsSection", {
3997
+ enumerable: true,
3998
+ get: function () { return chunkYVIOCITQ_cjs.SettingsSection; }
3999
+ });
4000
+ Object.defineProperty(exports, "SettingsSwitchGroup", {
4001
+ enumerable: true,
4002
+ get: function () { return chunkYVIOCITQ_cjs.SettingsSwitchGroup; }
4003
+ });
4004
+ Object.defineProperty(exports, "SettingsSwitchRow", {
4005
+ enumerable: true,
4006
+ get: function () { return chunkYVIOCITQ_cjs.SettingsSwitchRow; }
4007
+ });
4008
+ Object.defineProperty(exports, "formatSessionTtl", {
4009
+ enumerable: true,
4010
+ get: function () { return chunkYVIOCITQ_cjs.formatSessionTtl; }
4011
+ });
4012
+ Object.defineProperty(exports, "toActiveSessionViews", {
4013
+ enumerable: true,
4014
+ get: function () { return chunkYVIOCITQ_cjs.toActiveSessionViews; }
4015
+ });
4016
+ Object.defineProperty(exports, "toDeleteBlockerViews", {
4017
+ enumerable: true,
4018
+ get: function () { return chunkYVIOCITQ_cjs.toDeleteBlockerViews; }
4019
+ });
4020
+ Object.defineProperty(exports, "toLogoutSessionViews", {
4021
+ enumerable: true,
4022
+ get: function () { return chunkYVIOCITQ_cjs.toLogoutSessionViews; }
4023
+ });
4024
+ Object.defineProperty(exports, "toNotificationCategories", {
4025
+ enumerable: true,
4026
+ get: function () { return chunkYVIOCITQ_cjs.toNotificationCategories; }
4974
4027
  });
4975
- exports.ActiveSessionsDialog = ActiveSessionsDialog;
4976
- exports.AvatarPicker = AvatarPicker;
4977
4028
  exports.CONVERSATION_TITLE_MAX = CONVERSATION_TITLE_MAX;
4978
4029
  exports.CheckoutDialogFrame = CheckoutDialogFrame;
4979
4030
  exports.ConfigSwitcherBar = ConfigSwitcherBar;
@@ -4984,34 +4035,27 @@ exports.ConnectionsError = ConnectionsError;
4984
4035
  exports.ConnectionsLoading = ConnectionsLoading;
4985
4036
  exports.ConversationTitleSection = ConversationTitleSection;
4986
4037
  exports.CreditsGlyph = CreditsGlyph;
4987
- exports.DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS = DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS;
4988
- exports.DEFAULT_AVATAR_PICKER_LABELS = DEFAULT_AVATAR_PICKER_LABELS;
4989
4038
  exports.DEFAULT_CHECKOUT_DIALOG_LABELS = DEFAULT_CHECKOUT_DIALOG_LABELS;
4990
4039
  exports.DEFAULT_CONFIG_SWITCHER_BAR_LABELS = DEFAULT_CONFIG_SWITCHER_BAR_LABELS;
4991
4040
  exports.DEFAULT_CONFIRM_DIALOG_LABELS = DEFAULT_CONFIRM_DIALOG_LABELS;
4992
4041
  exports.DEFAULT_CONNECTION_CARD_LABELS = DEFAULT_CONNECTION_CARD_LABELS;
4993
4042
  exports.DEFAULT_CONVERSATION_TITLE_SECTION_LABELS = DEFAULT_CONVERSATION_TITLE_SECTION_LABELS;
4994
4043
  exports.DEFAULT_DAILY_CAP_FIELD_LABELS = DEFAULT_DAILY_CAP_FIELD_LABELS;
4995
- exports.DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS = DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS;
4996
4044
  exports.DEFAULT_DOCUMENT_PICKER_LABELS = DEFAULT_DOCUMENT_PICKER_LABELS;
4997
4045
  exports.DEFAULT_EMAIL_WORKSPACE_DIALOG_LABELS = DEFAULT_EMAIL_WORKSPACE_DIALOG_LABELS;
4998
4046
  exports.DEFAULT_ERROR_DIALOG_LABELS = DEFAULT_ERROR_DIALOG_LABELS;
4999
4047
  exports.DEFAULT_INLINE_NAME_EDITOR_LABELS = DEFAULT_INLINE_NAME_EDITOR_LABELS;
5000
4048
  exports.DEFAULT_INVITE_CONTACTS_DIALOG_LABELS = DEFAULT_INVITE_CONTACTS_DIALOG_LABELS;
5001
4049
  exports.DEFAULT_INVOICES_DIALOG_LABELS = DEFAULT_INVOICES_DIALOG_LABELS;
5002
- exports.DEFAULT_LOGOUT_DIALOG_LABELS = DEFAULT_LOGOUT_DIALOG_LABELS;
5003
4050
  exports.DEFAULT_MEMBER_PROJECT_ROW_LABELS = DEFAULT_MEMBER_PROJECT_ROW_LABELS;
5004
4051
  exports.DEFAULT_MODEL_SELECTION_SECTION_LABELS = DEFAULT_MODEL_SELECTION_SECTION_LABELS;
5005
- exports.DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS = DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS;
5006
4052
  exports.DEFAULT_PLAN_CARD_LABELS = DEFAULT_PLAN_CARD_LABELS;
5007
- exports.DEFAULT_PROFILE_CARD_LABELS = DEFAULT_PROFILE_CARD_LABELS;
5008
4053
  exports.DEFAULT_PROJECT_CARD_VIEW_LABELS = DEFAULT_PROJECT_CARD_VIEW_LABELS;
5009
4054
  exports.DEFAULT_PROJECT_DETAIL_HEADER_LABELS = DEFAULT_PROJECT_DETAIL_HEADER_LABELS;
5010
4055
  exports.DEFAULT_PROJECT_LIST_LABELS = DEFAULT_PROJECT_LIST_LABELS;
5011
4056
  exports.DEFAULT_QUOTA_EXCEEDED_DIALOG_LABELS = DEFAULT_QUOTA_EXCEEDED_DIALOG_LABELS;
5012
4057
  exports.DEFAULT_REFERRAL_CREDIT_LABELS = DEFAULT_REFERRAL_CREDIT_LABELS;
5013
4058
  exports.DEFAULT_RENAME_DIALOG_LABELS = DEFAULT_RENAME_DIALOG_LABELS;
5014
- exports.DEFAULT_SETTINGS_DANGER_ZONE_LABELS = DEFAULT_SETTINGS_DANGER_ZONE_LABELS;
5015
4059
  exports.DEFAULT_SHARED_PROJECTS_SECTION_LABELS = DEFAULT_SHARED_PROJECTS_SECTION_LABELS;
5016
4060
  exports.DEFAULT_SUBSCRIPTION_SECTION_LABELS = DEFAULT_SUBSCRIPTION_SECTION_LABELS;
5017
4061
  exports.DEFAULT_SUBSCRIPTION_STATUS_LABELS = DEFAULT_SUBSCRIPTION_STATUS_LABELS;
@@ -5026,7 +4070,6 @@ exports.DEFAULT_USAGE_PROPORTION_BAR_LABELS = DEFAULT_USAGE_PROPORTION_BAR_LABEL
5026
4070
  exports.DEFAULT_WELCOME_DIALOG_LABELS = DEFAULT_WELCOME_DIALOG_LABELS;
5027
4071
  exports.DEFAULT_WORK_OFFLINE_LABELS = DEFAULT_WORK_OFFLINE_LABELS;
5028
4072
  exports.DailyCapField = DailyCapField;
5029
- exports.DeleteAccountDialog = DeleteAccountDialog;
5030
4073
  exports.DocumentPicker = DocumentPicker;
5031
4074
  exports.EmailWorkspaceDialogView = EmailWorkspaceDialogView;
5032
4075
  exports.ErrorDialogView = ErrorDialogView;
@@ -5035,11 +4078,9 @@ exports.InlineNameEditor = InlineNameEditor;
5035
4078
  exports.InviteContactsDialog = InviteContactsDialog;
5036
4079
  exports.InvoicesDialog = InvoicesDialog;
5037
4080
  exports.JsonTree = JsonTree;
5038
- exports.LogoutDialog = LogoutDialog;
5039
4081
  exports.MemberProjectRow = MemberProjectRow;
5040
4082
  exports.ModelProviderLabel = ModelProviderLabel;
5041
4083
  exports.ModelSelectionSection = ModelSelectionSection;
5042
- exports.NotificationCategoryList = NotificationCategoryList;
5043
4084
  exports.PanelActionsRow = PanelActionsRow;
5044
4085
  exports.PanelAddButton = PanelAddButton;
5045
4086
  exports.PanelFrame = PanelFrame;
@@ -5047,7 +4088,6 @@ exports.PanelFrameBody = PanelFrameBody;
5047
4088
  exports.PanelNote = PanelNote;
5048
4089
  exports.PanelScroll = PanelScroll;
5049
4090
  exports.PanelTitleBar = PanelTitleBar;
5050
- exports.PasswordChangeDialog = PasswordChangeDialog;
5051
4091
  exports.PlanActionButton = PlanActionButton;
5052
4092
  exports.PlanActionRow = PlanActionRow;
5053
4093
  exports.PlanBadge = PlanBadge;
@@ -5063,7 +4103,6 @@ exports.PlanTierOption = PlanTierOption;
5063
4103
  exports.PlanTransition = PlanTransition;
5064
4104
  exports.PremiumModelsFrame = PremiumModelsFrame;
5065
4105
  exports.PricingToggle = PricingToggle;
5066
- exports.ProfileCard = ProfileCard;
5067
4106
  exports.ProjectCardView = ProjectCardView;
5068
4107
  exports.ProjectDetailHeader = ProjectDetailHeader;
5069
4108
  exports.ProjectDetailSection = ProjectDetailSection;
@@ -5084,14 +4123,6 @@ exports.RowButton = RowButton;
5084
4123
  exports.RowIconAction = RowIconAction;
5085
4124
  exports.SegmentedControl = SegmentedControl;
5086
4125
  exports.ServerConnectionButton = ServerConnectionButton;
5087
- exports.SettingsActionRow = SettingsActionRow;
5088
- exports.SettingsCard = SettingsCard;
5089
- exports.SettingsDangerZone = SettingsDangerZone;
5090
- exports.SettingsPanel = SettingsPanel;
5091
- exports.SettingsRow = SettingsRow;
5092
- exports.SettingsSection = SettingsSection;
5093
- exports.SettingsSwitchGroup = SettingsSwitchGroup;
5094
- exports.SettingsSwitchRow = SettingsSwitchRow;
5095
4126
  exports.SharedProjectRow = SharedProjectRow;
5096
4127
  exports.SharedProjectsSection = SharedProjectsSection;
5097
4128
  exports.SubscriptionSectionView = SubscriptionSectionView;