@arbidocs/blocks 0.4.142 → 0.4.143

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 (209) hide show
  1. package/dist/agents/index.cjs +438 -435
  2. package/dist/agents/index.js +10 -7
  3. package/dist/chat/index.cjs +139 -138
  4. package/dist/chat/index.js +4 -3
  5. package/dist/{chunk-S24XEVPS.cjs → chunk-464YPRAE.cjs} +33 -2
  6. package/dist/chunk-464YPRAE.cjs.map +1 -0
  7. package/dist/{chunk-7YLJHTDC.cjs → chunk-5A2QQAF5.cjs} +11 -11
  8. package/dist/{chunk-7YLJHTDC.cjs.map → chunk-5A2QQAF5.cjs.map} +1 -1
  9. package/dist/{chunk-ON3TKY5Y.js → chunk-5YHEHEJT.js} +242 -4
  10. package/dist/chunk-5YHEHEJT.js.map +1 -0
  11. package/dist/chunk-76L6LOP3.cjs +308 -0
  12. package/dist/chunk-76L6LOP3.cjs.map +1 -0
  13. package/dist/chunk-AOSUHWIL.js +98 -0
  14. package/dist/chunk-AOSUHWIL.js.map +1 -0
  15. package/dist/{chunk-PROK33G6.js → chunk-C44TDH54.js} +13 -1598
  16. package/dist/chunk-C44TDH54.js.map +1 -0
  17. package/dist/{chunk-YFY3TQ6Q.cjs → chunk-COCGRJLA.cjs} +7 -7
  18. package/dist/{chunk-YFY3TQ6Q.cjs.map → chunk-COCGRJLA.cjs.map} +1 -1
  19. package/dist/chunk-CQCC7LE7.js +210 -0
  20. package/dist/chunk-CQCC7LE7.js.map +1 -0
  21. package/dist/{chunk-UGCKUXRV.js → chunk-CSI2B2H5.js} +3 -3
  22. package/dist/{chunk-UGCKUXRV.js.map → chunk-CSI2B2H5.js.map} +1 -1
  23. package/dist/{chunk-R26BK7YL.cjs → chunk-DTROMMDX.cjs} +4 -4
  24. package/dist/{chunk-R26BK7YL.cjs.map → chunk-DTROMMDX.cjs.map} +1 -1
  25. package/dist/{chunk-65THHQVB.cjs → chunk-ECW2R2KF.cjs} +27 -27
  26. package/dist/{chunk-65THHQVB.cjs.map → chunk-ECW2R2KF.cjs.map} +1 -1
  27. package/dist/{chunk-RI6DZA5X.js → chunk-EF4ZLKRM.js} +3 -3
  28. package/dist/{chunk-RI6DZA5X.js.map → chunk-EF4ZLKRM.js.map} +1 -1
  29. package/dist/{chunk-WS5EX7DN.cjs → chunk-EYKISBDO.cjs} +5 -5
  30. package/dist/{chunk-WS5EX7DN.cjs.map → chunk-EYKISBDO.cjs.map} +1 -1
  31. package/dist/chunk-FJETR2AS.js +561 -0
  32. package/dist/chunk-FJETR2AS.js.map +1 -0
  33. package/dist/{chunk-JO3EMZ4X.js → chunk-GWSGIZQ5.js} +3 -3
  34. package/dist/{chunk-JO3EMZ4X.js.map → chunk-GWSGIZQ5.js.map} +1 -1
  35. package/dist/{chunk-I7WG3JRD.js → chunk-H4D7WKDY.js} +3 -3
  36. package/dist/{chunk-I7WG3JRD.js.map → chunk-H4D7WKDY.js.map} +1 -1
  37. package/dist/{chunk-GBS6QVGS.cjs → chunk-HAOKT4LC.cjs} +5 -5
  38. package/dist/{chunk-GBS6QVGS.cjs.map → chunk-HAOKT4LC.cjs.map} +1 -1
  39. package/dist/{chunk-N5X37J3D.js → chunk-IJST4EBM.js} +11 -8
  40. package/dist/chunk-IJST4EBM.js.map +1 -0
  41. package/dist/{chunk-3RJN2VTL.js → chunk-IXWJGOM2.js} +3 -3
  42. package/dist/{chunk-3RJN2VTL.js.map → chunk-IXWJGOM2.js.map} +1 -1
  43. package/dist/{chunk-CYNF5PZI.js → chunk-J5CWKFSC.js} +3 -3
  44. package/dist/{chunk-CYNF5PZI.js.map → chunk-J5CWKFSC.js.map} +1 -1
  45. package/dist/{chunk-OWCEQKAR.cjs → chunk-JSTKEZBS.cjs} +21 -318
  46. package/dist/chunk-JSTKEZBS.cjs.map +1 -0
  47. package/dist/{chunk-TP6PLDNM.cjs → chunk-KMZWKSKO.cjs} +8 -8
  48. package/dist/{chunk-TP6PLDNM.cjs.map → chunk-KMZWKSKO.cjs.map} +1 -1
  49. package/dist/{chunk-C4WSHRR6.cjs → chunk-KPZZ5FHE.cjs} +32 -12
  50. package/dist/chunk-KPZZ5FHE.cjs.map +1 -0
  51. package/dist/{chunk-CKCBBYTA.js → chunk-KSHKTOY2.js} +5 -205
  52. package/dist/chunk-KSHKTOY2.js.map +1 -0
  53. package/dist/chunk-LJJJ6CYH.cjs +62 -0
  54. package/dist/chunk-LJJJ6CYH.cjs.map +1 -0
  55. package/dist/chunk-LPYEUD2D.cjs +1627 -0
  56. package/dist/chunk-LPYEUD2D.cjs.map +1 -0
  57. package/dist/chunk-MHFF5N65.cjs +101 -0
  58. package/dist/chunk-MHFF5N65.cjs.map +1 -0
  59. package/dist/{chunk-GYAUJ4KT.js → chunk-MTSKK3BN.js} +32 -3
  60. package/dist/chunk-MTSKK3BN.js.map +1 -0
  61. package/dist/chunk-NHZK64TQ.js +75 -0
  62. package/dist/chunk-NHZK64TQ.js.map +1 -0
  63. package/dist/{chunk-BPBSSMRB.js → chunk-NRFAWUVD.js} +3 -3
  64. package/dist/{chunk-BPBSSMRB.js.map → chunk-NRFAWUVD.js.map} +1 -1
  65. package/dist/chunk-NWNVWO6L.cjs +80 -0
  66. package/dist/chunk-NWNVWO6L.cjs.map +1 -0
  67. package/dist/{chunk-HIJUXAWS.cjs → chunk-O2GW5IY6.cjs} +86 -83
  68. package/dist/chunk-O2GW5IY6.cjs.map +1 -0
  69. package/dist/{chunk-3BFGL2JL.cjs → chunk-ODRHHWHY.cjs} +4 -4
  70. package/dist/{chunk-3BFGL2JL.cjs.map → chunk-ODRHHWHY.cjs.map} +1 -1
  71. package/dist/{chunk-Y3KA6X7B.js → chunk-OVR3XMYL.js} +4 -4
  72. package/dist/{chunk-Y3KA6X7B.js.map → chunk-OVR3XMYL.js.map} +1 -1
  73. package/dist/{chunk-Y5KTM3V5.js → chunk-PDKM27DF.js} +17 -295
  74. package/dist/chunk-PDKM27DF.js.map +1 -0
  75. package/dist/{chunk-OAL3B2ZU.cjs → chunk-PLJ7PHWU.cjs} +5 -5
  76. package/dist/{chunk-OAL3B2ZU.cjs.map → chunk-PLJ7PHWU.cjs.map} +1 -1
  77. package/dist/{chunk-DPGFEMVT.cjs → chunk-RB7GX2VT.cjs} +57 -1665
  78. package/dist/chunk-RB7GX2VT.cjs.map +1 -0
  79. package/dist/chunk-RFIBUWLF.cjs +232 -0
  80. package/dist/chunk-RFIBUWLF.cjs.map +1 -0
  81. package/dist/{chunk-MIDXCYZB.cjs → chunk-RQ2Y7USX.cjs} +15 -235
  82. package/dist/chunk-RQ2Y7USX.cjs.map +1 -0
  83. package/dist/chunk-SV65E4QW.js +58 -0
  84. package/dist/chunk-SV65E4QW.js.map +1 -0
  85. package/dist/{chunk-LYUO3E6V.js → chunk-SZOFGU7W.js} +3 -3
  86. package/dist/{chunk-LYUO3E6V.js.map → chunk-SZOFGU7W.js.map} +1 -1
  87. package/dist/chunk-T5B7FM7S.js +1602 -0
  88. package/dist/chunk-T5B7FM7S.js.map +1 -0
  89. package/dist/{chunk-YNIBUKV5.js → chunk-TBEVGWY3.js} +32 -14
  90. package/dist/chunk-TBEVGWY3.js.map +1 -0
  91. package/dist/{chunk-MJCCBMM5.cjs → chunk-TC3RQNEX.cjs} +6 -80
  92. package/dist/chunk-TC3RQNEX.cjs.map +1 -0
  93. package/dist/chunk-TZGBRLPK.js +288 -0
  94. package/dist/chunk-TZGBRLPK.js.map +1 -0
  95. package/dist/chunk-U6YVZDOV.cjs +574 -0
  96. package/dist/chunk-U6YVZDOV.cjs.map +1 -0
  97. package/dist/{chunk-QIMVTGKS.cjs → chunk-U73KPFYH.cjs} +255 -2
  98. package/dist/chunk-U73KPFYH.cjs.map +1 -0
  99. package/dist/{chunk-HFGXA5CL.cjs → chunk-UTTTJSQU.cjs} +4 -4
  100. package/dist/{chunk-HFGXA5CL.cjs.map → chunk-UTTTJSQU.cjs.map} +1 -1
  101. package/dist/{chunk-DLBUFHLY.js → chunk-VTTZZ4FN.js} +4 -74
  102. package/dist/chunk-VTTZZ4FN.js.map +1 -0
  103. package/dist/{chunk-5FTIHRZH.cjs → chunk-XVUOMWMD.cjs} +4 -4
  104. package/dist/{chunk-5FTIHRZH.cjs.map → chunk-XVUOMWMD.cjs.map} +1 -1
  105. package/dist/{chunk-FXG7TFAG.js → chunk-Y4ATWQGV.js} +3 -3
  106. package/dist/{chunk-FXG7TFAG.js.map → chunk-Y4ATWQGV.js.map} +1 -1
  107. package/dist/{chunk-444XKG46.js → chunk-YKQ2DPIP.js} +3 -3
  108. package/dist/{chunk-444XKG46.js.map → chunk-YKQ2DPIP.js.map} +1 -1
  109. package/dist/{chunk-HEMU73OP.cjs → chunk-YSHIC4NJ.cjs} +4 -4
  110. package/dist/{chunk-HEMU73OP.cjs.map → chunk-YSHIC4NJ.cjs.map} +1 -1
  111. package/dist/{chunk-5BXEYYH6.js → chunk-ZM26YEOT.js} +3 -3
  112. package/dist/{chunk-5BXEYYH6.js.map → chunk-ZM26YEOT.js.map} +1 -1
  113. package/dist/citations/index.cjs +12 -12
  114. package/dist/citations/index.js +3 -3
  115. package/dist/connect/docx.cjs +36 -7
  116. package/dist/connect/docx.cjs.map +1 -1
  117. package/dist/connect/docx.d.ts +9 -2
  118. package/dist/connect/docx.js +30 -6
  119. package/dist/connect/docx.js.map +1 -1
  120. package/dist/connect/index.cjs +802 -628
  121. package/dist/connect/index.cjs.map +1 -1
  122. package/dist/connect/index.d.ts +2 -0
  123. package/dist/connect/index.js +636 -507
  124. package/dist/connect/index.js.map +1 -1
  125. package/dist/connection/ConnectedSettings.d.ts +3 -2
  126. package/dist/connection/docx/ConnectedNativeDocxComparison.d.ts +5 -0
  127. package/dist/connection/docx/ConnectedNativeDocxEditor.d.ts +16 -0
  128. package/dist/connection/{ConnectedStreamedWordArtifact.d.ts → docx/ConnectedStreamedWordArtifact.d.ts} +1 -1
  129. package/dist/connection/docx/support.d.ts +27 -0
  130. package/dist/connection/docx/useConnectedDocxReferences.d.ts +2 -0
  131. package/dist/connection/docx/useConnectedHouseTemplate.d.ts +2 -0
  132. package/dist/connection/settings-page/ConnectedAccountSettings.d.ts +35 -0
  133. package/dist/connection/settings-page/ConnectedMailSettings.d.ts +13 -0
  134. package/dist/connection/settings-page/ConnectedPremiumModels.d.ts +1 -0
  135. package/dist/connection/settings-page/ConnectedPrivacySettings.d.ts +12 -0
  136. package/dist/connection/settings-page/ConnectedSettingsPage.d.ts +29 -0
  137. package/dist/connection/settings-page/SessionStatusIcon.d.ts +7 -0
  138. package/dist/connection/settings-page/index.d.ts +6 -0
  139. package/dist/docx/index.cjs +17 -63
  140. package/dist/docx/index.cjs.map +1 -1
  141. package/dist/docx/index.d.ts +1 -0
  142. package/dist/docx/index.js +2 -64
  143. package/dist/docx/index.js.map +1 -1
  144. package/dist/docx/template/candidates.d.ts +16 -0
  145. package/dist/facts/index.cjs +3 -3
  146. package/dist/facts/index.js +2 -2
  147. package/dist/files/index.cjs +3 -3
  148. package/dist/files/index.js +2 -2
  149. package/dist/home/index.cjs +20 -20
  150. package/dist/home/index.js +4 -4
  151. package/dist/index.cjs +766 -741
  152. package/dist/index.cjs.map +1 -1
  153. package/dist/index.d.ts +2 -0
  154. package/dist/index.js +23 -18
  155. package/dist/index.js.map +1 -1
  156. package/dist/lib/deep-link.d.ts +46 -0
  157. package/dist/provider/BlocksProvider.d.ts +5 -1
  158. package/dist/provider/settings-section.d.ts +9 -0
  159. package/dist/retrieval/index.cjs +4 -4
  160. package/dist/retrieval/index.js +2 -2
  161. package/dist/settings/AppearanceSettings.d.ts +18 -0
  162. package/dist/settings/ServerConnectionControls.d.ts +16 -0
  163. package/dist/settings/SettingsPage.d.ts +31 -0
  164. package/dist/settings/index.cjs +188 -250
  165. package/dist/settings/index.cjs.map +1 -1
  166. package/dist/settings/index.d.ts +3 -1
  167. package/dist/settings/index.js +88 -199
  168. package/dist/settings/index.js.map +1 -1
  169. package/dist/shell/index.cjs +44 -44
  170. package/dist/shell/index.js +3 -3
  171. package/dist/site/index.cjs +74 -73
  172. package/dist/site/index.js +3 -2
  173. package/dist/studio/index.cjs +80 -78
  174. package/dist/studio/index.cjs.map +1 -1
  175. package/dist/studio/index.js +10 -8
  176. package/dist/studio/index.js.map +1 -1
  177. package/dist/workflow-canvas/index.cjs +62 -59
  178. package/dist/workflow-canvas/index.cjs.map +1 -1
  179. package/dist/workflow-canvas/index.js +10 -7
  180. package/dist/workflow-canvas/index.js.map +1 -1
  181. package/dist/workspaces/index.cjs +3 -3
  182. package/dist/workspaces/index.js +2 -2
  183. package/node_modules/@arbidocs/coedit/package.json +1 -1
  184. package/package.json +4 -4
  185. package/dist/chunk-4TR5QCCX.cjs +0 -43
  186. package/dist/chunk-4TR5QCCX.cjs.map +0 -1
  187. package/dist/chunk-7NDW4KF4.cjs +0 -112
  188. package/dist/chunk-7NDW4KF4.cjs.map +0 -1
  189. package/dist/chunk-C4WSHRR6.cjs.map +0 -1
  190. package/dist/chunk-CKCBBYTA.js.map +0 -1
  191. package/dist/chunk-DLBUFHLY.js.map +0 -1
  192. package/dist/chunk-DPGFEMVT.cjs.map +0 -1
  193. package/dist/chunk-ETXYVO6E.js +0 -109
  194. package/dist/chunk-ETXYVO6E.js.map +0 -1
  195. package/dist/chunk-GYAUJ4KT.js.map +0 -1
  196. package/dist/chunk-HIJUXAWS.cjs.map +0 -1
  197. package/dist/chunk-MCKOZACC.js +0 -41
  198. package/dist/chunk-MCKOZACC.js.map +0 -1
  199. package/dist/chunk-MIDXCYZB.cjs.map +0 -1
  200. package/dist/chunk-MJCCBMM5.cjs.map +0 -1
  201. package/dist/chunk-N5X37J3D.js.map +0 -1
  202. package/dist/chunk-ON3TKY5Y.js.map +0 -1
  203. package/dist/chunk-OWCEQKAR.cjs.map +0 -1
  204. package/dist/chunk-PROK33G6.js.map +0 -1
  205. package/dist/chunk-QIMVTGKS.cjs.map +0 -1
  206. package/dist/chunk-S24XEVPS.cjs.map +0 -1
  207. package/dist/chunk-Y5KTM3V5.js.map +0 -1
  208. package/dist/chunk-YNIBUKV5.js.map +0 -1
  209. package/dist/connection/ConnectedNativeDocxEditor.d.ts +0 -6
@@ -1,11 +1,12 @@
1
1
  "use client";
2
2
  import { PasswordStrengthInput } from './chunk-VILAPTCB.js';
3
+ import { TabHeader } from './chunk-4WWM3GQ5.js';
3
4
  import { testIdOr, prefixedTestId } from './chunk-7F6CBP3Z.js';
4
5
  import { ModalScaffold, useRestoreFocus } from './chunk-TX2ZICS7.js';
5
6
  import { formatCount } from './chunk-OXF2IFXG.js';
6
7
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
8
  import { useMemo, useRef, useId, useState } from 'react';
8
- import { Loader2, Camera, ChevronRight, ChevronDown, Check, Pencil, Mail, ShieldCheck, ExternalLink, CheckCircle2, AlertCircle, Radio, AlertTriangle, LogOut } from 'lucide-react';
9
+ import { Loader2, Camera, ChevronRight, ChevronDown, Check, Pencil, Mail, ShieldCheck, ExternalLink, CheckCircle2, AlertCircle, Radio, AlertTriangle, LogOut, RefreshCw, Wifi, WifiOff, Crown } from 'lucide-react';
9
10
  import { Avatar, AvatarImage, AvatarFallback, cn, Input, Button, VerifiedBadge, Tooltip, TooltipTrigger, TooltipContent, Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, Collapsible, CollapsibleTrigger, CollapsibleContent, Switch, Checkbox, Badge } from '@arbidocs/react/ui';
10
11
 
11
12
  var INTERACTIVE_SELECTOR = 'button, input, select, a, [role="tab"], [role="radio"]';
@@ -1423,7 +1424,244 @@ var EMAIL_NOTIFICATION_KEYS = EMAIL_NOTIFICATION_CATEGORIES.map(
1423
1424
  function toNotificationCategories(checked, defs = EMAIL_NOTIFICATION_CATEGORIES) {
1424
1425
  return defs.map((def) => ({ ...def, checked: checked[def.key] ?? true }));
1425
1426
  }
1427
+ function PanelFrame({ testId, className, children }) {
1428
+ return /* @__PURE__ */ jsx(
1429
+ "div",
1430
+ {
1431
+ "data-slot": "panel-frame",
1432
+ "data-testid": testId,
1433
+ className: cn("flex h-full min-h-0 flex-col bg-background", className),
1434
+ children
1435
+ }
1436
+ );
1437
+ }
1438
+ function PanelFrameBody({ className, children }) {
1439
+ return /* @__PURE__ */ jsx("div", { "data-slot": "panel-frame-body", className: cn("min-h-0 flex-1 overflow-hidden", className), children });
1440
+ }
1441
+ function PanelScroll({ variant = "flush", className, children }) {
1442
+ return /* @__PURE__ */ jsx(
1443
+ "div",
1444
+ {
1445
+ "data-slot": "panel-scroll",
1446
+ className: cn("h-full overflow-auto", variant === "padded" && "space-y-4 p-3", className),
1447
+ children
1448
+ }
1449
+ );
1450
+ }
1451
+ function PanelActionsRow({
1452
+ className,
1453
+ children
1454
+ }) {
1455
+ return /* @__PURE__ */ jsx("div", { "data-slot": "panel-actions-row", className: cn("flex justify-end", className), children });
1456
+ }
1457
+ function PanelAddButton({
1458
+ label,
1459
+ onClick,
1460
+ isCompact,
1461
+ icon,
1462
+ testId,
1463
+ disabledReason
1464
+ }) {
1465
+ return /* @__PURE__ */ jsxs(
1466
+ "button",
1467
+ {
1468
+ type: "button",
1469
+ onClick,
1470
+ disabled: !!disabledReason,
1471
+ title: disabledReason ?? label,
1472
+ "data-slot": "panel-add-button",
1473
+ "data-testid": testId,
1474
+ className: "flex h-8 items-center gap-1.5 rounded-md px-2 text-sm font-medium text-primary transition-colors hover:bg-primary/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent pointer-coarse:h-11 pointer-coarse:min-w-11",
1475
+ children: [
1476
+ icon,
1477
+ isCompact ? /* @__PURE__ */ jsx("span", { className: "sr-only", children: label }) : /* @__PURE__ */ jsx("span", { children: "New" })
1478
+ ]
1479
+ }
1480
+ );
1481
+ }
1482
+ function PanelTitleBar({
1483
+ icon,
1484
+ title,
1485
+ end
1486
+ }) {
1487
+ return /* @__PURE__ */ jsxs("div", { "data-slot": "panel-title-bar", className: "flex w-full items-center justify-between px-4 py-2", children: [
1488
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
1489
+ icon,
1490
+ /* @__PURE__ */ jsx("span", { className: "font-medium", children: title })
1491
+ ] }),
1492
+ end
1493
+ ] });
1494
+ }
1495
+ function PanelNote({ children }) {
1496
+ return /* @__PURE__ */ jsx("div", { "data-slot": "panel-note", className: "py-8 text-center text-muted-foreground", children });
1497
+ }
1498
+ function resolveSettingsSection(sections, id) {
1499
+ return sections.find((section) => section.id === id) ?? sections[0];
1500
+ }
1501
+ function SettingsPage({
1502
+ sections,
1503
+ activeSectionId,
1504
+ onSectionChange,
1505
+ title = "Settings",
1506
+ headerActions,
1507
+ children,
1508
+ testId = "settings-page"
1509
+ }) {
1510
+ const active = resolveSettingsSection(sections, activeSectionId);
1511
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
1512
+ /* @__PURE__ */ jsxs(PanelFrame, { testId, children: [
1513
+ /* @__PURE__ */ jsx(DraggableHeader, { children: /* @__PURE__ */ jsx(
1514
+ TabHeader,
1515
+ {
1516
+ tabs: sections.map(({ id, label, icon }) => ({ id, label, icon })),
1517
+ activeTabId: active?.id ?? "",
1518
+ onTabChange: onSectionChange,
1519
+ variant: "underline",
1520
+ compactBreakpoint: 0,
1521
+ rightContent: () => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
1522
+ active?.actions,
1523
+ headerActions
1524
+ ] })
1525
+ }
1526
+ ) }),
1527
+ /* @__PURE__ */ jsxs(PanelFrameBody, { className: "overflow-auto px-6 pb-6 pt-4", children: [
1528
+ /* @__PURE__ */ jsx("h1", { className: "mx-auto mb-4 w-full max-w-2xl text-xl font-semibold text-foreground", children: title }),
1529
+ active?.render()
1530
+ ] })
1531
+ ] }),
1532
+ children
1533
+ ] });
1534
+ }
1535
+ var DOT = {
1536
+ connected: "bg-green-solid",
1537
+ connecting: "bg-yellow-solid",
1538
+ disconnected: "bg-red-solid",
1539
+ offline: "bg-yellow-solid"
1540
+ };
1541
+ function ServerConnectionButton({
1542
+ state,
1543
+ label,
1544
+ isRefreshing,
1545
+ onRefresh,
1546
+ testId = "refresh-session-button"
1547
+ }) {
1548
+ return /* @__PURE__ */ jsxs(
1549
+ Button,
1550
+ {
1551
+ type: "button",
1552
+ variant: "outline",
1553
+ size: "sm",
1554
+ onClick: onRefresh,
1555
+ disabled: isRefreshing,
1556
+ className: "flex items-center gap-2",
1557
+ "data-testid": testId,
1558
+ "data-state": state,
1559
+ children: [
1560
+ /* @__PURE__ */ jsx(RefreshCw, { className: cn("size-4", isRefreshing && "animate-spin") }),
1561
+ /* @__PURE__ */ jsx("span", { className: cn("size-2 rounded-full", DOT[state]), "aria-hidden": true }),
1562
+ label
1563
+ ]
1564
+ }
1565
+ );
1566
+ }
1567
+ var DEFAULT_WORK_OFFLINE_LABELS = {
1568
+ goOnline: "Go online",
1569
+ workOffline: "Work offline",
1570
+ goOnlineHint: "Reconnect and use ARBI online again",
1571
+ workOfflineHint: "Work offline \u2014 read cached docs and queue edits, even though the server is reachable"
1572
+ };
1573
+ function WorkOfflineToggle({
1574
+ isOffline,
1575
+ onToggle,
1576
+ labels,
1577
+ testId = "work-offline-toggle"
1578
+ }) {
1579
+ const l = { ...DEFAULT_WORK_OFFLINE_LABELS, ...labels };
1580
+ return /* @__PURE__ */ jsxs(Tooltip, { children: [
1581
+ /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
1582
+ Button,
1583
+ {
1584
+ variant: isOffline ? "secondary" : "outline",
1585
+ size: "icon",
1586
+ onClick: () => onToggle(!isOffline),
1587
+ "aria-label": isOffline ? l.goOnline : l.workOffline,
1588
+ "aria-pressed": isOffline,
1589
+ "data-testid": testId,
1590
+ children: isOffline ? /* @__PURE__ */ jsx(Wifi, { className: "size-4" }) : /* @__PURE__ */ jsx(WifiOff, { className: "size-4" })
1591
+ }
1592
+ ) }),
1593
+ /* @__PURE__ */ jsx(TooltipContent, { children: /* @__PURE__ */ jsx("p", { children: isOffline ? l.goOnlineHint : l.workOfflineHint }) })
1594
+ ] });
1595
+ }
1596
+ function serverConnectionView({ status, forcedOffline = false, deviceOffline = false }, domain) {
1597
+ const state = forcedOffline || deviceOffline ? "offline" : status === "error" ? "disconnected" : status;
1598
+ const label = forcedOffline ? "Working offline" : deviceOffline ? "Offline" : status === "connected" ? "Connected" : status === "connecting" ? "Connecting" : "Disconnected";
1599
+ const description = deviceOffline && !forcedOffline ? "You're offline. ARBI reconnects by itself when your connection returns." : `${status === "connected" ? `Connected to ${domain}.` : status === "connecting" ? `Connecting to ${domain}...` : `Disconnected from ${domain}.`} Click to refresh your session.`;
1600
+ return { state, label, description };
1601
+ }
1602
+ var GRID_ACCENT_CLASSES = [
1603
+ "[&_.ag-checkbox-input-wrapper.ag-checked]:!bg-primary",
1604
+ "[&_.ag-checkbox-input-wrapper.ag-checked]:!border-primary",
1605
+ "[&_.ag-checkbox-input-wrapper.ag-checked]:!text-primary-foreground"
1606
+ ];
1607
+ var GRID_ACCENT_VARS = {
1608
+ "--ag-checkbox-checked-color": "hsl(var(--primary))",
1609
+ "--ag-selected-row-background-color": "hsl(var(--accent))"
1610
+ };
1611
+ function PremiumModelsFrame({
1612
+ enabled,
1613
+ onEnabledChange,
1614
+ title = "Enable Premium Models",
1615
+ description = "Third party AI models are priced on a pass-through basis.",
1616
+ children,
1617
+ toggleTestId
1618
+ }) {
1619
+ return /* @__PURE__ */ jsxs("div", { "data-slot": "premium-models-frame", children: [
1620
+ /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center gap-3", children: [
1621
+ /* @__PURE__ */ jsx(
1622
+ Switch,
1623
+ {
1624
+ id: "premiumModelToggle",
1625
+ checked: enabled,
1626
+ onCheckedChange: onEnabledChange,
1627
+ "data-testid": testIdOr(toggleTestId, { testId: "toggle-premium-model" })
1628
+ }
1629
+ ),
1630
+ /* @__PURE__ */ jsxs(
1631
+ "label",
1632
+ {
1633
+ className: "flex cursor-pointer items-center gap-2 text-sm font-medium",
1634
+ htmlFor: "premiumModelToggle",
1635
+ children: [
1636
+ /* @__PURE__ */ jsx(Crown, { className: "size-4 text-muted-foreground" }),
1637
+ title
1638
+ ]
1639
+ }
1640
+ )
1641
+ ] }),
1642
+ /* @__PURE__ */ jsx("p", { className: "mb-2 text-sm text-muted-foreground", children: description }),
1643
+ /* @__PURE__ */ jsx(
1644
+ "div",
1645
+ {
1646
+ className: cn(
1647
+ "transition-opacity",
1648
+ !enabled && "pointer-events-none opacity-50",
1649
+ GRID_ACCENT_CLASSES
1650
+ ),
1651
+ style: GRID_ACCENT_VARS,
1652
+ "aria-disabled": !enabled,
1653
+ children
1654
+ }
1655
+ )
1656
+ ] });
1657
+ }
1658
+ function ModelProviderLabel({ logo, children }) {
1659
+ return /* @__PURE__ */ jsxs("span", { "data-slot": "model-provider", className: "flex items-center gap-1.5", children: [
1660
+ logo,
1661
+ children
1662
+ ] });
1663
+ }
1426
1664
 
1427
- 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, DraggableHeader, 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 };
1428
- //# sourceMappingURL=chunk-ON3TKY5Y.js.map
1429
- //# sourceMappingURL=chunk-ON3TKY5Y.js.map
1665
+ 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, DEFAULT_WORK_OFFLINE_LABELS, DeleteAccountDialog, DraggableHeader, EMAIL_NOTIFICATION_CATEGORIES, EMAIL_NOTIFICATION_KEYS, IdentityVerificationCard, IdentityVerificationDialog, LogoutDialog, ModelProviderLabel, NotificationCategoryList, PanelActionsRow, PanelAddButton, PanelFrame, PanelFrameBody, PanelNote, PanelScroll, PanelTitleBar, PasswordChangeDialog, PremiumModelsFrame, ProfileCard, RequireVerified, ServerConnectionButton, SettingsActionRow, SettingsCard, SettingsDangerZone, SettingsPage, SettingsPanel, SettingsRow, SettingsSection, SettingsSwitchGroup, SettingsSwitchRow, WorkOfflineToggle, formatSessionTtl, resolveSettingsSection, serverConnectionView, toActiveSessionViews, toDeleteBlockerViews, toLogoutSessionViews, toNotificationCategories };
1666
+ //# sourceMappingURL=chunk-5YHEHEJT.js.map
1667
+ //# sourceMappingURL=chunk-5YHEHEJT.js.map