@arbidocs/blocks 0.4.32 → 0.4.33

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 (179) hide show
  1. package/dist/agents/index.cjs +257 -215
  2. package/dist/agents/index.js +8 -6
  3. package/dist/agents/tasks/ConversationListView.d.ts +58 -0
  4. package/dist/agents/tasks/ConversationTurnSpeaker.d.ts +16 -0
  5. package/dist/agents/tasks/NewThreadDialog.d.ts +1 -1
  6. package/dist/agents/tasks/TaskActivityTimeline.d.ts +1 -1
  7. package/dist/agents/tasks/TaskFlow.d.ts +22 -0
  8. package/dist/agents/tasks/TaskInbox.d.ts +26 -0
  9. package/dist/agents/tasks/TaskReviewDialog.d.ts +22 -0
  10. package/dist/agents/tasks/TaskRowMenu.d.ts +10 -2
  11. package/dist/agents/tasks/TaskRunsDialog.d.ts +8 -3
  12. package/dist/agents/tasks/TaskStartDialog.d.ts +24 -0
  13. package/dist/agents/tasks/TaskTable.d.ts +1 -1
  14. package/dist/agents/tasks/ThreadNotifyDialog.d.ts +11 -0
  15. package/dist/agents/tasks/WorkflowComposer.d.ts +1 -1
  16. package/dist/agents/tasks/WorkflowsTable.d.ts +7 -0
  17. package/dist/agents/tasks/compact-thread-activity.d.ts +8 -0
  18. package/dist/agents/tasks/index.d.ts +10 -0
  19. package/dist/agents/tasks/taskComposerTypes.d.ts +16 -1
  20. package/dist/agents/tasks/taskRequest.d.ts +1 -0
  21. package/dist/agents/tasks/testGrid.d.ts +24 -0
  22. package/dist/agents/tasks/workflowColumns.d.ts +2 -1
  23. package/dist/agents/tasks/workflowRows.d.ts +6 -0
  24. package/dist/agents/workflows/types.d.ts +2 -0
  25. package/dist/auth/index.cjs +27 -27
  26. package/dist/auth/index.js +1 -1
  27. package/dist/chat/Message.d.ts +8 -2
  28. package/dist/chat/index.cjs +132 -120
  29. package/dist/chat/index.d.ts +2 -0
  30. package/dist/chat/index.js +2 -2
  31. package/dist/chat/participant-tints.d.ts +1 -0
  32. package/dist/chat/useRecipientDraft.d.ts +14 -0
  33. package/dist/{chunk-KF4EC5XU.js → chunk-24KQJYSB.js} +3 -3
  34. package/dist/{chunk-KF4EC5XU.js.map → chunk-24KQJYSB.js.map} +1 -1
  35. package/dist/{chunk-GVQOBJKR.cjs → chunk-2EAE5JP6.cjs} +7 -4
  36. package/dist/chunk-2EAE5JP6.cjs.map +1 -0
  37. package/dist/{chunk-S5HZBXZA.cjs → chunk-2QTT2RZE.cjs} +242 -2
  38. package/dist/chunk-2QTT2RZE.cjs.map +1 -0
  39. package/dist/chunk-3AFWGEDJ.cjs +53 -0
  40. package/dist/chunk-3AFWGEDJ.cjs.map +1 -0
  41. package/dist/{chunk-4XJZ6AAY.js → chunk-4AWS54US.js} +244 -6
  42. package/dist/chunk-4AWS54US.js.map +1 -0
  43. package/dist/{chunk-56BUD74K.cjs → chunk-65THHQVB.cjs} +27 -27
  44. package/dist/{chunk-56BUD74K.cjs.map → chunk-65THHQVB.cjs.map} +1 -1
  45. package/dist/{chunk-5B4PXAKI.cjs → chunk-6DNYPLCD.cjs} +21 -7
  46. package/dist/chunk-6DNYPLCD.cjs.map +1 -0
  47. package/dist/{chunk-TZ4QF7EP.js → chunk-6RXUMBTK.js} +1948 -594
  48. package/dist/chunk-6RXUMBTK.js.map +1 -0
  49. package/dist/{chunk-UTYQPVIW.cjs → chunk-7QDX2CO4.cjs} +6 -6
  50. package/dist/{chunk-UTYQPVIW.cjs.map → chunk-7QDX2CO4.cjs.map} +1 -1
  51. package/dist/{chunk-FRRDPYBR.cjs → chunk-AZ75JUIH.cjs} +74 -5
  52. package/dist/chunk-AZ75JUIH.cjs.map +1 -0
  53. package/dist/{chunk-NUPVHEJW.js → chunk-BUHKUKKB.js} +7 -4
  54. package/dist/chunk-BUHKUKKB.js.map +1 -0
  55. package/dist/chunk-C7FGONCM.js +124 -0
  56. package/dist/chunk-C7FGONCM.js.map +1 -0
  57. package/dist/{chunk-KXMDOTGW.js → chunk-DLBUFHLY.js} +10 -2
  58. package/dist/chunk-DLBUFHLY.js.map +1 -0
  59. package/dist/{chunk-ZHLMDJCO.cjs → chunk-DLVX6R6B.cjs} +62 -26
  60. package/dist/chunk-DLVX6R6B.cjs.map +1 -0
  61. package/dist/{chunk-JGZTRLKL.cjs → chunk-IA7RTPT3.cjs} +7 -4
  62. package/dist/chunk-IA7RTPT3.cjs.map +1 -0
  63. package/dist/{chunk-NJL4LIXX.js → chunk-LFGJAZ5H.js} +11 -8
  64. package/dist/chunk-LFGJAZ5H.js.map +1 -0
  65. package/dist/{chunk-IAKUTBPX.js → chunk-LYUO3E6V.js} +3 -3
  66. package/dist/{chunk-IAKUTBPX.js.map → chunk-LYUO3E6V.js.map} +1 -1
  67. package/dist/{chunk-EYPPB5CY.cjs → chunk-M2YGPC5N.cjs} +4 -4
  68. package/dist/{chunk-EYPPB5CY.cjs.map → chunk-M2YGPC5N.cjs.map} +1 -1
  69. package/dist/{chunk-5ZBP7TCD.cjs → chunk-MJCCBMM5.cjs} +10 -2
  70. package/dist/chunk-MJCCBMM5.cjs.map +1 -0
  71. package/dist/chunk-MZL67U2E.cjs +128 -0
  72. package/dist/chunk-MZL67U2E.cjs.map +1 -0
  73. package/dist/{chunk-OJSWQM4G.js → chunk-OZJ5PXA6.js} +29 -4
  74. package/dist/chunk-OZJ5PXA6.js.map +1 -0
  75. package/dist/{chunk-UBNVIIBT.js → chunk-PXFJDX2C.js} +21 -7
  76. package/dist/chunk-PXFJDX2C.js.map +1 -0
  77. package/dist/{chunk-RGHQFJOL.cjs → chunk-QFUF4A4J.cjs} +28 -2
  78. package/dist/chunk-QFUF4A4J.cjs.map +1 -0
  79. package/dist/chunk-RFXJYIDV.js +50 -0
  80. package/dist/chunk-RFXJYIDV.js.map +1 -0
  81. package/dist/{chunk-PLGVMLBD.cjs → chunk-SEQWI6E4.cjs} +1975 -610
  82. package/dist/chunk-SEQWI6E4.cjs.map +1 -0
  83. package/dist/{chunk-QN42OA5J.js → chunk-SFXVNFES.js} +4 -4
  84. package/dist/chunk-SFXVNFES.js.map +1 -0
  85. package/dist/{chunk-3NZR6PAG.js → chunk-V6U5KVAR.js} +70 -4
  86. package/dist/chunk-V6U5KVAR.js.map +1 -0
  87. package/dist/{chunk-YVIOCITQ.cjs → chunk-VUEZARW5.cjs} +3 -3
  88. package/dist/chunk-VUEZARW5.cjs.map +1 -0
  89. package/dist/{chunk-JLOYWXRB.js → chunk-VZGBCBYB.js} +3 -3
  90. package/dist/chunk-VZGBCBYB.js.map +1 -0
  91. package/dist/{chunk-ZVPTFTGV.cjs → chunk-WBDK4PIA.cjs} +11 -8
  92. package/dist/chunk-WBDK4PIA.cjs.map +1 -0
  93. package/dist/{chunk-ZORQ5M3W.cjs → chunk-WQFGG2BV.cjs} +4 -4
  94. package/dist/chunk-WQFGG2BV.cjs.map +1 -0
  95. package/dist/{chunk-C75S6USL.js → chunk-WYVCXY7R.js} +7 -4
  96. package/dist/chunk-WYVCXY7R.js.map +1 -0
  97. package/dist/{chunk-WSJVHSGN.js → chunk-XWEJ5LV2.js} +63 -27
  98. package/dist/chunk-XWEJ5LV2.js.map +1 -0
  99. package/dist/{chunk-YMHGF6R5.js → chunk-ZCF2JJFA.js} +3 -3
  100. package/dist/{chunk-YMHGF6R5.js.map → chunk-ZCF2JJFA.js.map} +1 -1
  101. package/dist/collaboration/index.cjs +45 -41
  102. package/dist/collaboration/index.js +1 -1
  103. package/dist/collaboration/mail/MailMessagePreview.d.ts +11 -0
  104. package/dist/collaboration/mail/index.d.ts +1 -0
  105. package/dist/connect/index.cjs +33 -33
  106. package/dist/connect/index.js +4 -4
  107. package/dist/facts/FactsFilterInput.d.ts +2 -46
  108. package/dist/facts/FactsToolbar.d.ts +5 -5
  109. package/dist/facts/index.cjs +27 -124
  110. package/dist/facts/index.cjs.map +1 -1
  111. package/dist/facts/index.js +13 -118
  112. package/dist/facts/index.js.map +1 -1
  113. package/dist/files/FilesPage.d.ts +1 -1
  114. package/dist/files/FilesToolbar.d.ts +1 -1
  115. package/dist/files/FolderPicker.d.ts +2 -1
  116. package/dist/files/ViewerChrome.d.ts +1 -1
  117. package/dist/files/bulk/FolderFilterButton.d.ts +3 -2
  118. package/dist/files/cells/BulkLabelSelect.d.ts +11 -0
  119. package/dist/files/cells/LabelMultiSelect.d.ts +2 -1
  120. package/dist/files/cells/index.d.ts +1 -0
  121. package/dist/files/index.cjs +109 -166
  122. package/dist/files/index.cjs.map +1 -1
  123. package/dist/files/index.js +95 -158
  124. package/dist/files/index.js.map +1 -1
  125. package/dist/home/index.cjs +19 -19
  126. package/dist/home/index.cjs.map +1 -1
  127. package/dist/home/index.js +4 -4
  128. package/dist/home/index.js.map +1 -1
  129. package/dist/index.cjs +787 -764
  130. package/dist/index.cjs.map +1 -1
  131. package/dist/index.d.ts +1 -0
  132. package/dist/index.js +21 -69
  133. package/dist/index.js.map +1 -1
  134. package/dist/settings/SettingsPanel.d.ts +1 -1
  135. package/dist/settings/index.cjs +55 -280
  136. package/dist/settings/index.cjs.map +1 -1
  137. package/dist/settings/index.js +17 -248
  138. package/dist/settings/index.js.map +1 -1
  139. package/dist/shell/FilterInput.d.ts +46 -0
  140. package/dist/shell/TabHeader.d.ts +5 -1
  141. package/dist/shell/index.cjs +61 -48
  142. package/dist/shell/index.d.ts +1 -0
  143. package/dist/shell/index.js +3 -2
  144. package/dist/site/index.cjs +62 -62
  145. package/dist/site/index.js +2 -2
  146. package/dist/studio/index.cjs +74 -74
  147. package/dist/studio/index.js +5 -5
  148. package/dist/workspaces/WorkspaceCard.d.ts +2 -2
  149. package/dist/workspaces/index.cjs +9 -2
  150. package/dist/workspaces/index.cjs.map +1 -1
  151. package/dist/workspaces/index.js +9 -2
  152. package/dist/workspaces/index.js.map +1 -1
  153. package/package.json +3 -3
  154. package/src/blocks.css +4 -0
  155. package/src/components/grid.css +10 -0
  156. package/dist/chunk-3NZR6PAG.js.map +0 -1
  157. package/dist/chunk-4XJZ6AAY.js.map +0 -1
  158. package/dist/chunk-5B4PXAKI.cjs.map +0 -1
  159. package/dist/chunk-5ZBP7TCD.cjs.map +0 -1
  160. package/dist/chunk-C75S6USL.js.map +0 -1
  161. package/dist/chunk-FRRDPYBR.cjs.map +0 -1
  162. package/dist/chunk-GVQOBJKR.cjs.map +0 -1
  163. package/dist/chunk-JGZTRLKL.cjs.map +0 -1
  164. package/dist/chunk-JLOYWXRB.js.map +0 -1
  165. package/dist/chunk-KXMDOTGW.js.map +0 -1
  166. package/dist/chunk-NJL4LIXX.js.map +0 -1
  167. package/dist/chunk-NUPVHEJW.js.map +0 -1
  168. package/dist/chunk-OJSWQM4G.js.map +0 -1
  169. package/dist/chunk-PLGVMLBD.cjs.map +0 -1
  170. package/dist/chunk-QN42OA5J.js.map +0 -1
  171. package/dist/chunk-RGHQFJOL.cjs.map +0 -1
  172. package/dist/chunk-S5HZBXZA.cjs.map +0 -1
  173. package/dist/chunk-TZ4QF7EP.js.map +0 -1
  174. package/dist/chunk-UBNVIIBT.js.map +0 -1
  175. package/dist/chunk-WSJVHSGN.js.map +0 -1
  176. package/dist/chunk-YVIOCITQ.cjs.map +0 -1
  177. package/dist/chunk-ZHLMDJCO.cjs.map +0 -1
  178. package/dist/chunk-ZORQ5M3W.cjs.map +0 -1
  179. package/dist/chunk-ZVPTFTGV.cjs.map +0 -1
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkYVIOCITQ_cjs = require('../chunk-YVIOCITQ.cjs');
4
+ var chunkVUEZARW5_cjs = require('../chunk-VUEZARW5.cjs');
5
5
  var chunk223D4727_cjs = require('../chunk-223D4727.cjs');
6
6
  var chunk46IU3UPF_cjs = require('../chunk-46IU3UPF.cjs');
7
- var chunkS5HZBXZA_cjs = require('../chunk-S5HZBXZA.cjs');
7
+ var chunk2QTT2RZE_cjs = require('../chunk-2QTT2RZE.cjs');
8
+ var chunk6DNYPLCD_cjs = require('../chunk-6DNYPLCD.cjs');
8
9
  var chunkVFUWWH52_cjs = require('../chunk-VFUWWH52.cjs');
9
- var chunk5B4PXAKI_cjs = require('../chunk-5B4PXAKI.cjs');
10
10
  require('../chunk-ADOKTJHV.cjs');
11
11
  require('../chunk-PPCATBOY.cjs');
12
12
  var chunkKDG6FER6_cjs = require('../chunk-KDG6FER6.cjs');
@@ -189,7 +189,7 @@ function FloatingPanel({
189
189
  onClick: onPanelClick,
190
190
  children: [
191
191
  !isRenderFunction && /* @__PURE__ */ jsxRuntime.jsx(
192
- chunk5B4PXAKI_cjs.TabHeader,
192
+ chunk6DNYPLCD_cjs.TabHeader,
193
193
  {
194
194
  tabs: [{ id: panelId, label: tabLabel ?? title }],
195
195
  activeTabId: panelId,
@@ -1360,244 +1360,6 @@ function SyncFolderStatus({
1360
1360
  }
1361
1361
  );
1362
1362
  }
1363
- var DEFAULT_TRI_STATE_FILTER_MENU_LABELS = { clear: "Clear" };
1364
- function TriStateFilterMenu({
1365
- testId,
1366
- open,
1367
- onOpenChange,
1368
- title,
1369
- filterStates,
1370
- onFiltersChange,
1371
- options,
1372
- groups,
1373
- topContent,
1374
- groupTopContent,
1375
- folderContent,
1376
- bottomContent,
1377
- triggerLabel,
1378
- hasExternalActiveState = false,
1379
- suppressTriggerActiveStyle = false,
1380
- triggerClassName,
1381
- renderChevron = false,
1382
- disableHoverOpen = false,
1383
- onHoverHandlers,
1384
- labels
1385
- }) {
1386
- const l = { ...DEFAULT_TRI_STATE_FILTER_MENU_LABELS, ...labels };
1387
- const [collapsedGroups, setCollapsedGroups] = react.useState(
1388
- () => new Set((groups ?? []).filter((g) => g.collapsible).map((g) => g.label))
1389
- );
1390
- const [isClickOpen, setIsClickOpen] = react.useState(false);
1391
- const hoverTimeoutRef = react.useRef(null);
1392
- const cancelPendingClose = () => {
1393
- if (hoverTimeoutRef.current) {
1394
- clearTimeout(hoverTimeoutRef.current);
1395
- hoverTimeoutRef.current = null;
1396
- }
1397
- };
1398
- const handleMouseEnter = () => {
1399
- if (disableHoverOpen) return;
1400
- cancelPendingClose();
1401
- if (!isClickOpen) onOpenChange(true);
1402
- };
1403
- const handleMouseLeave = () => {
1404
- if (disableHoverOpen || isClickOpen) return;
1405
- hoverTimeoutRef.current = setTimeout(() => {
1406
- if (!isClickOpen) onOpenChange(false);
1407
- }, 150);
1408
- };
1409
- const handleTriggerClick = () => {
1410
- setIsClickOpen(!isClickOpen);
1411
- onOpenChange(!isClickOpen);
1412
- };
1413
- react.useEffect(() => {
1414
- onHoverHandlers?.({ onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave });
1415
- }, []);
1416
- react.useEffect(() => cancelPendingClose, []);
1417
- const optionMap = react.useMemo(() => new Map(options.map((o) => [o.id, o])), [options]);
1418
- const handleFilterToggle = (filterId) => {
1419
- const next = new Map(filterStates);
1420
- const current = next.get(filterId) ?? null;
1421
- next.set(filterId, current === null ? "include" : current === "include" ? "exclude" : null);
1422
- onFiltersChange(next);
1423
- };
1424
- const handleClearFilters = (e) => {
1425
- e.stopPropagation();
1426
- const cleared = new Map(filterStates);
1427
- options.forEach((opt) => cleared.set(opt.id, null));
1428
- onFiltersChange(cleared);
1429
- };
1430
- const clearButton = /* @__PURE__ */ jsxRuntime.jsxs(
1431
- ui.Button,
1432
- {
1433
- variant: "ghost",
1434
- size: "default",
1435
- onClick: handleClearFilters,
1436
- className: "ml-auto h-8 px-3 text-sm text-primary hover:text-primary pointer-coarse:h-11",
1437
- children: [
1438
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FunnelX, { className: "mr-1.5 h-4 w-4 text-primary" }),
1439
- l.clear
1440
- ]
1441
- }
1442
- );
1443
- const hasActiveFilters = react.useMemo(() => {
1444
- const ids = new Set(options.map((o) => o.id));
1445
- return hasExternalActiveState || Array.from(filterStates.entries()).some(([k, v]) => ids.has(k) && v !== null);
1446
- }, [filterStates, options, hasExternalActiveState]);
1447
- const isActive = !suppressTriggerActiveStyle && hasActiveFilters;
1448
- const showInlineClear = !title && hasActiveFilters && !suppressTriggerActiveStyle && !!groups && groups.length > 0 && !groups[0].collapsible;
1449
- const renderTriStateItem = (option) => {
1450
- const state = filterStates.get(option.id) ?? null;
1451
- const badgeClass = state === null ? "bg-card border-border text-foreground hover:bg-muted" : state === "include" ? "bg-primary text-primary-foreground border-primary hover:bg-primary" : "bg-card text-red-text border-red-text hover:bg-red-bg";
1452
- const stateIcon = state === null ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-3.5 rounded-sm border-2 border-border bg-transparent" }) : state === "include" ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "size-3", strokeWidth: 3 }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Ban, { className: "size-3 text-red-text", strokeWidth: 3 });
1453
- const depthPadding = option.depth ? option.depth * 16 : 0;
1454
- return /* @__PURE__ */ jsxRuntime.jsx(
1455
- ui.DropdownMenuItem,
1456
- {
1457
- onClick: () => handleFilterToggle(option.id),
1458
- onSelect: (e) => e.preventDefault(),
1459
- disabled: option.disabled,
1460
- className: "cursor-pointer p-1",
1461
- style: depthPadding ? { paddingLeft: `${depthPadding + 4}px` } : void 0,
1462
- children: /* @__PURE__ */ jsxRuntime.jsxs(
1463
- ui.Badge,
1464
- {
1465
- variant: "outline",
1466
- className: ui.cn(
1467
- "flex w-full items-center gap-2 px-3 py-1.5 text-sm pointer-coarse:min-h-11",
1468
- badgeClass
1469
- ),
1470
- children: [
1471
- stateIcon,
1472
- option.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "[&>svg]:size-3.5", children: option.icon }),
1473
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium", children: option.label }),
1474
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto font-semibold", children: option.count })
1475
- ]
1476
- }
1477
- )
1478
- },
1479
- option.id
1480
- );
1481
- };
1482
- const toggleGroupCollapse = (label) => {
1483
- setCollapsedGroups((prev) => {
1484
- const next = new Set(prev);
1485
- if (!next.delete(label)) next.add(label);
1486
- return next;
1487
- });
1488
- };
1489
- const renderOptions = () => {
1490
- if (!groups || groups.length === 0) return options.map(renderTriStateItem);
1491
- return groups.map((group, groupIndex) => {
1492
- const isCollapsed = !!group.collapsible && collapsedGroups.has(group.label);
1493
- const activeCount = group.collapsible ? group.options.filter((id) => filterStates.get(id) !== null).length : 0;
1494
- return /* @__PURE__ */ jsxRuntime.jsxs(react.Fragment, { children: [
1495
- groupIndex > 0 && /* @__PURE__ */ jsxRuntime.jsx(ui.DropdownMenuSeparator, {}),
1496
- groupTopContent?.[group.label] && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1497
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-2 py-1.5", children: groupTopContent[group.label] }),
1498
- /* @__PURE__ */ jsxRuntime.jsx(ui.DropdownMenuSeparator, {})
1499
- ] }),
1500
- group.collapsible ? /* @__PURE__ */ jsxRuntime.jsxs(
1501
- "button",
1502
- {
1503
- type: "button",
1504
- onClick: () => toggleGroupCollapse(group.label),
1505
- "aria-expanded": !isCollapsed,
1506
- className: "flex w-full cursor-pointer items-center gap-1 rounded-sm px-2 py-1.5 text-sm font-semibold text-primary hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:min-h-11",
1507
- children: [
1508
- isCollapsed ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "size-3.5" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "size-3.5" }),
1509
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: group.label }),
1510
- isCollapsed && activeCount > 0 && /* @__PURE__ */ jsxRuntime.jsx(
1511
- ui.Badge,
1512
- {
1513
- variant: "outline",
1514
- className: "ml-auto flex h-4 min-w-4 items-center justify-center rounded-md px-1 text-xs leading-none",
1515
- children: activeCount
1516
- }
1517
- )
1518
- ]
1519
- }
1520
- ) : groupIndex === 0 && showInlineClear ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between pr-1", children: [
1521
- /* @__PURE__ */ jsxRuntime.jsx(ui.DropdownMenuLabel, { className: "text-primary", children: group.label }),
1522
- clearButton
1523
- ] }) : /* @__PURE__ */ jsxRuntime.jsx(ui.DropdownMenuLabel, { className: "text-primary", children: group.label }),
1524
- !isCollapsed && group.options.map((id) => optionMap.get(id)).filter((opt) => opt !== void 0).map(renderTriStateItem)
1525
- ] }, group.label);
1526
- });
1527
- };
1528
- const tone = isActive ? "text-primary" : "text-muted-foreground";
1529
- return /* @__PURE__ */ jsxRuntime.jsxs(ui.DropdownMenu, { modal: false, open, onOpenChange, children: [
1530
- /* @__PURE__ */ jsxRuntime.jsx(ui.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
1531
- "span",
1532
- {
1533
- role: "button",
1534
- tabIndex: 0,
1535
- "data-slot": "tri-state-filter-trigger",
1536
- className: triggerClassName ?? "inline-flex cursor-pointer items-center gap-1 rounded-sm px-1.5 py-0.5 text-sm font-medium transition-colors hover:bg-foreground/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:h-11! pointer-coarse:min-w-11 pointer-coarse:justify-center",
1537
- "data-testid": testId,
1538
- onMouseEnter: handleMouseEnter,
1539
- onMouseLeave: handleMouseLeave,
1540
- onClick: handleTriggerClick,
1541
- children: [
1542
- /* @__PURE__ */ jsxRuntime.jsx(
1543
- lucideReact.Filter,
1544
- {
1545
- className: ui.cn(
1546
- "size-3 transition-colors",
1547
- isActive ? "fill-primary text-primary" : tone
1548
- )
1549
- }
1550
- ),
1551
- triggerLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: tone, children: triggerLabel }),
1552
- renderChevron ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: ui.cn("size-3 transition-colors", tone) }) : triggerLabel && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreVertical, { className: ui.cn("size-3 transition-colors", tone) })
1553
- ]
1554
- }
1555
- ) }),
1556
- /* @__PURE__ */ jsxRuntime.jsxs(
1557
- ui.DropdownMenuContent,
1558
- {
1559
- align: "center",
1560
- className: "w-80 border-0 bg-muted",
1561
- onCloseAutoFocus: (e) => e.preventDefault(),
1562
- onMouseEnter: cancelPendingClose,
1563
- onMouseLeave: () => {
1564
- if (!isClickOpen) onOpenChange(false);
1565
- },
1566
- onPointerDownOutside: (e) => {
1567
- if (!isClickOpen) return;
1568
- if (!e.target.closest('[role="menu"]')) {
1569
- setIsClickOpen(false);
1570
- onOpenChange(false);
1571
- } else {
1572
- e.preventDefault();
1573
- }
1574
- },
1575
- children: [
1576
- (title || hasActiveFilters && !suppressTriggerActiveStyle && !showInlineClear) && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1577
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between px-2 py-1.5", children: [
1578
- title && /* @__PURE__ */ jsxRuntime.jsx(ui.DropdownMenuLabel, { className: "p-0 text-primary", children: title }),
1579
- hasActiveFilters && !showInlineClear && clearButton
1580
- ] }),
1581
- /* @__PURE__ */ jsxRuntime.jsx(ui.DropdownMenuSeparator, {})
1582
- ] }),
1583
- topContent && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1584
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-2 py-1.5", children: topContent }),
1585
- /* @__PURE__ */ jsxRuntime.jsx(ui.DropdownMenuSeparator, {})
1586
- ] }),
1587
- folderContent && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1588
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-1 py-0.5", children: folderContent }),
1589
- /* @__PURE__ */ jsxRuntime.jsx(ui.DropdownMenuSeparator, {})
1590
- ] }),
1591
- renderOptions(),
1592
- bottomContent && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1593
- /* @__PURE__ */ jsxRuntime.jsx(ui.DropdownMenuSeparator, {}),
1594
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-2 py-1.5", children: bottomContent })
1595
- ] })
1596
- ]
1597
- }
1598
- )
1599
- ] });
1600
- }
1601
1363
  var planBadgeVariants = classVarianceAuthority.cva(
1602
1364
  "inline-flex flex-shrink-0 items-center rounded-full border font-semibold leading-none",
1603
1365
  {
@@ -2267,7 +2029,7 @@ function ProjectDetailSection({
2267
2029
  className,
2268
2030
  children
2269
2031
  }) {
2270
- return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: ui.cn("rounded-lg bg-muted p-5", className), children: [
2032
+ return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: ui.cn("rounded-lg border border-border bg-card shadow-xs p-5", className), children: [
2271
2033
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4 text-base font-semibold text-foreground", children: title }),
2272
2034
  children
2273
2035
  ] });
@@ -2358,7 +2120,7 @@ function SupportPanel({
2358
2120
  "data-slot": "support-panel",
2359
2121
  children: [
2360
2122
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(
2361
- chunk5B4PXAKI_cjs.TabHeader,
2123
+ chunk6DNYPLCD_cjs.TabHeader,
2362
2124
  {
2363
2125
  tabs,
2364
2126
  activeTabId: activeTab,
@@ -2585,7 +2347,7 @@ function UsageLineChart({
2585
2347
  const yTicks = [0, maxVal / 2, maxVal].map((v) => ({
2586
2348
  v,
2587
2349
  y: yScale(v),
2588
- label: v >= 1e3 ? `${Math.round(v / 1e3)}k` : Math.round(v).toString()
2350
+ label: v >= 1e3 ? `${Math.round(v / 1e3)}k` : String(Math.round(v * 100) / 100)
2589
2351
  }));
2590
2352
  const labelCount = Math.min(dates.length, 5);
2591
2353
  const labelStep = Math.max(1, Math.floor((dates.length - 1) / (labelCount - 1)));
@@ -3268,7 +3030,14 @@ function PlanPickerHeader({
3268
3030
  );
3269
3031
  }
3270
3032
  function PlanPickerCard({ children }) {
3271
- return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "plan-picker-card", className: "space-y-4 rounded-lg bg-muted p-4", children });
3033
+ return /* @__PURE__ */ jsxRuntime.jsx(
3034
+ "div",
3035
+ {
3036
+ "data-slot": "plan-picker-card",
3037
+ className: "space-y-4 rounded-lg border border-border bg-card shadow-xs p-4",
3038
+ children
3039
+ }
3040
+ );
3272
3041
  }
3273
3042
  function PlanActionRow({ children }) {
3274
3043
  return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "plan-action-row", className: "flex flex-col-reverse gap-2 @xl:flex-row", children });
@@ -3688,119 +3457,119 @@ function ErrorDialogView({
3688
3457
 
3689
3458
  Object.defineProperty(exports, "ActiveSessionsDialog", {
3690
3459
  enumerable: true,
3691
- get: function () { return chunkYVIOCITQ_cjs.ActiveSessionsDialog; }
3460
+ get: function () { return chunkVUEZARW5_cjs.ActiveSessionsDialog; }
3692
3461
  });
3693
3462
  Object.defineProperty(exports, "AvatarPicker", {
3694
3463
  enumerable: true,
3695
- get: function () { return chunkYVIOCITQ_cjs.AvatarPicker; }
3464
+ get: function () { return chunkVUEZARW5_cjs.AvatarPicker; }
3696
3465
  });
3697
3466
  Object.defineProperty(exports, "DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS", {
3698
3467
  enumerable: true,
3699
- get: function () { return chunkYVIOCITQ_cjs.DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS; }
3468
+ get: function () { return chunkVUEZARW5_cjs.DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS; }
3700
3469
  });
3701
3470
  Object.defineProperty(exports, "DEFAULT_AVATAR_PICKER_LABELS", {
3702
3471
  enumerable: true,
3703
- get: function () { return chunkYVIOCITQ_cjs.DEFAULT_AVATAR_PICKER_LABELS; }
3472
+ get: function () { return chunkVUEZARW5_cjs.DEFAULT_AVATAR_PICKER_LABELS; }
3704
3473
  });
3705
3474
  Object.defineProperty(exports, "DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS", {
3706
3475
  enumerable: true,
3707
- get: function () { return chunkYVIOCITQ_cjs.DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS; }
3476
+ get: function () { return chunkVUEZARW5_cjs.DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS; }
3708
3477
  });
3709
3478
  Object.defineProperty(exports, "DEFAULT_LOGOUT_DIALOG_LABELS", {
3710
3479
  enumerable: true,
3711
- get: function () { return chunkYVIOCITQ_cjs.DEFAULT_LOGOUT_DIALOG_LABELS; }
3480
+ get: function () { return chunkVUEZARW5_cjs.DEFAULT_LOGOUT_DIALOG_LABELS; }
3712
3481
  });
3713
3482
  Object.defineProperty(exports, "DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS", {
3714
3483
  enumerable: true,
3715
- get: function () { return chunkYVIOCITQ_cjs.DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS; }
3484
+ get: function () { return chunkVUEZARW5_cjs.DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS; }
3716
3485
  });
3717
3486
  Object.defineProperty(exports, "DEFAULT_PROFILE_CARD_LABELS", {
3718
3487
  enumerable: true,
3719
- get: function () { return chunkYVIOCITQ_cjs.DEFAULT_PROFILE_CARD_LABELS; }
3488
+ get: function () { return chunkVUEZARW5_cjs.DEFAULT_PROFILE_CARD_LABELS; }
3720
3489
  });
3721
3490
  Object.defineProperty(exports, "DEFAULT_SETTINGS_DANGER_ZONE_LABELS", {
3722
3491
  enumerable: true,
3723
- get: function () { return chunkYVIOCITQ_cjs.DEFAULT_SETTINGS_DANGER_ZONE_LABELS; }
3492
+ get: function () { return chunkVUEZARW5_cjs.DEFAULT_SETTINGS_DANGER_ZONE_LABELS; }
3724
3493
  });
3725
3494
  Object.defineProperty(exports, "DeleteAccountDialog", {
3726
3495
  enumerable: true,
3727
- get: function () { return chunkYVIOCITQ_cjs.DeleteAccountDialog; }
3496
+ get: function () { return chunkVUEZARW5_cjs.DeleteAccountDialog; }
3728
3497
  });
3729
3498
  Object.defineProperty(exports, "EMAIL_NOTIFICATION_CATEGORIES", {
3730
3499
  enumerable: true,
3731
- get: function () { return chunkYVIOCITQ_cjs.EMAIL_NOTIFICATION_CATEGORIES; }
3500
+ get: function () { return chunkVUEZARW5_cjs.EMAIL_NOTIFICATION_CATEGORIES; }
3732
3501
  });
3733
3502
  Object.defineProperty(exports, "EMAIL_NOTIFICATION_KEYS", {
3734
3503
  enumerable: true,
3735
- get: function () { return chunkYVIOCITQ_cjs.EMAIL_NOTIFICATION_KEYS; }
3504
+ get: function () { return chunkVUEZARW5_cjs.EMAIL_NOTIFICATION_KEYS; }
3736
3505
  });
3737
3506
  Object.defineProperty(exports, "LogoutDialog", {
3738
3507
  enumerable: true,
3739
- get: function () { return chunkYVIOCITQ_cjs.LogoutDialog; }
3508
+ get: function () { return chunkVUEZARW5_cjs.LogoutDialog; }
3740
3509
  });
3741
3510
  Object.defineProperty(exports, "NotificationCategoryList", {
3742
3511
  enumerable: true,
3743
- get: function () { return chunkYVIOCITQ_cjs.NotificationCategoryList; }
3512
+ get: function () { return chunkVUEZARW5_cjs.NotificationCategoryList; }
3744
3513
  });
3745
3514
  Object.defineProperty(exports, "PasswordChangeDialog", {
3746
3515
  enumerable: true,
3747
- get: function () { return chunkYVIOCITQ_cjs.PasswordChangeDialog; }
3516
+ get: function () { return chunkVUEZARW5_cjs.PasswordChangeDialog; }
3748
3517
  });
3749
3518
  Object.defineProperty(exports, "ProfileCard", {
3750
3519
  enumerable: true,
3751
- get: function () { return chunkYVIOCITQ_cjs.ProfileCard; }
3520
+ get: function () { return chunkVUEZARW5_cjs.ProfileCard; }
3752
3521
  });
3753
3522
  Object.defineProperty(exports, "SettingsActionRow", {
3754
3523
  enumerable: true,
3755
- get: function () { return chunkYVIOCITQ_cjs.SettingsActionRow; }
3524
+ get: function () { return chunkVUEZARW5_cjs.SettingsActionRow; }
3756
3525
  });
3757
3526
  Object.defineProperty(exports, "SettingsCard", {
3758
3527
  enumerable: true,
3759
- get: function () { return chunkYVIOCITQ_cjs.SettingsCard; }
3528
+ get: function () { return chunkVUEZARW5_cjs.SettingsCard; }
3760
3529
  });
3761
3530
  Object.defineProperty(exports, "SettingsDangerZone", {
3762
3531
  enumerable: true,
3763
- get: function () { return chunkYVIOCITQ_cjs.SettingsDangerZone; }
3532
+ get: function () { return chunkVUEZARW5_cjs.SettingsDangerZone; }
3764
3533
  });
3765
3534
  Object.defineProperty(exports, "SettingsPanel", {
3766
3535
  enumerable: true,
3767
- get: function () { return chunkYVIOCITQ_cjs.SettingsPanel; }
3536
+ get: function () { return chunkVUEZARW5_cjs.SettingsPanel; }
3768
3537
  });
3769
3538
  Object.defineProperty(exports, "SettingsRow", {
3770
3539
  enumerable: true,
3771
- get: function () { return chunkYVIOCITQ_cjs.SettingsRow; }
3540
+ get: function () { return chunkVUEZARW5_cjs.SettingsRow; }
3772
3541
  });
3773
3542
  Object.defineProperty(exports, "SettingsSection", {
3774
3543
  enumerable: true,
3775
- get: function () { return chunkYVIOCITQ_cjs.SettingsSection; }
3544
+ get: function () { return chunkVUEZARW5_cjs.SettingsSection; }
3776
3545
  });
3777
3546
  Object.defineProperty(exports, "SettingsSwitchGroup", {
3778
3547
  enumerable: true,
3779
- get: function () { return chunkYVIOCITQ_cjs.SettingsSwitchGroup; }
3548
+ get: function () { return chunkVUEZARW5_cjs.SettingsSwitchGroup; }
3780
3549
  });
3781
3550
  Object.defineProperty(exports, "SettingsSwitchRow", {
3782
3551
  enumerable: true,
3783
- get: function () { return chunkYVIOCITQ_cjs.SettingsSwitchRow; }
3552
+ get: function () { return chunkVUEZARW5_cjs.SettingsSwitchRow; }
3784
3553
  });
3785
3554
  Object.defineProperty(exports, "formatSessionTtl", {
3786
3555
  enumerable: true,
3787
- get: function () { return chunkYVIOCITQ_cjs.formatSessionTtl; }
3556
+ get: function () { return chunkVUEZARW5_cjs.formatSessionTtl; }
3788
3557
  });
3789
3558
  Object.defineProperty(exports, "toActiveSessionViews", {
3790
3559
  enumerable: true,
3791
- get: function () { return chunkYVIOCITQ_cjs.toActiveSessionViews; }
3560
+ get: function () { return chunkVUEZARW5_cjs.toActiveSessionViews; }
3792
3561
  });
3793
3562
  Object.defineProperty(exports, "toDeleteBlockerViews", {
3794
3563
  enumerable: true,
3795
- get: function () { return chunkYVIOCITQ_cjs.toDeleteBlockerViews; }
3564
+ get: function () { return chunkVUEZARW5_cjs.toDeleteBlockerViews; }
3796
3565
  });
3797
3566
  Object.defineProperty(exports, "toLogoutSessionViews", {
3798
3567
  enumerable: true,
3799
- get: function () { return chunkYVIOCITQ_cjs.toLogoutSessionViews; }
3568
+ get: function () { return chunkVUEZARW5_cjs.toLogoutSessionViews; }
3800
3569
  });
3801
3570
  Object.defineProperty(exports, "toNotificationCategories", {
3802
3571
  enumerable: true,
3803
- get: function () { return chunkYVIOCITQ_cjs.toNotificationCategories; }
3572
+ get: function () { return chunkVUEZARW5_cjs.toNotificationCategories; }
3804
3573
  });
3805
3574
  Object.defineProperty(exports, "ModalBreadcrumbHeader", {
3806
3575
  enumerable: true,
@@ -3812,15 +3581,23 @@ Object.defineProperty(exports, "ModalCrumbs", {
3812
3581
  });
3813
3582
  Object.defineProperty(exports, "DEFAULT_DOCUMENT_PICKER_LABELS", {
3814
3583
  enumerable: true,
3815
- get: function () { return chunkS5HZBXZA_cjs.DEFAULT_DOCUMENT_PICKER_LABELS; }
3584
+ get: function () { return chunk2QTT2RZE_cjs.DEFAULT_DOCUMENT_PICKER_LABELS; }
3585
+ });
3586
+ Object.defineProperty(exports, "DEFAULT_TRI_STATE_FILTER_MENU_LABELS", {
3587
+ enumerable: true,
3588
+ get: function () { return chunk2QTT2RZE_cjs.DEFAULT_TRI_STATE_FILTER_MENU_LABELS; }
3816
3589
  });
3817
3590
  Object.defineProperty(exports, "DocumentPicker", {
3818
3591
  enumerable: true,
3819
- get: function () { return chunkS5HZBXZA_cjs.DocumentPicker; }
3592
+ get: function () { return chunk2QTT2RZE_cjs.DocumentPicker; }
3820
3593
  });
3821
3594
  Object.defineProperty(exports, "MultiSelect", {
3822
3595
  enumerable: true,
3823
- get: function () { return chunkS5HZBXZA_cjs.MultiSelect; }
3596
+ get: function () { return chunk2QTT2RZE_cjs.MultiSelect; }
3597
+ });
3598
+ Object.defineProperty(exports, "TriStateFilterMenu", {
3599
+ enumerable: true,
3600
+ get: function () { return chunk2QTT2RZE_cjs.TriStateFilterMenu; }
3824
3601
  });
3825
3602
  Object.defineProperty(exports, "MODAL_SECTION_TITLE_CLASS", {
3826
3603
  enumerable: true,
@@ -3879,7 +3656,6 @@ exports.DEFAULT_SUPPORT_PANEL_LABELS = DEFAULT_SUPPORT_PANEL_LABELS;
3879
3656
  exports.DEFAULT_SYNC_DIALOG_FOOTER_LABELS = DEFAULT_SYNC_DIALOG_FOOTER_LABELS;
3880
3657
  exports.DEFAULT_SYNC_FOLDER_ROW_LABELS = DEFAULT_SYNC_FOLDER_ROW_LABELS;
3881
3658
  exports.DEFAULT_TIPS_EDITOR_LABELS = DEFAULT_TIPS_EDITOR_LABELS;
3882
- exports.DEFAULT_TRI_STATE_FILTER_MENU_LABELS = DEFAULT_TRI_STATE_FILTER_MENU_LABELS;
3883
3659
  exports.DEFAULT_USAGE_LINE_CHART_LABELS = DEFAULT_USAGE_LINE_CHART_LABELS;
3884
3660
  exports.DEFAULT_USAGE_PANEL_LABELS = DEFAULT_USAGE_PANEL_LABELS;
3885
3661
  exports.DEFAULT_USAGE_PROPORTION_BAR_LABELS = DEFAULT_USAGE_PROPORTION_BAR_LABELS;
@@ -3962,7 +3738,6 @@ exports.SyncSmallNote = SyncSmallNote;
3962
3738
  exports.SyncTreeFrame = SyncTreeFrame;
3963
3739
  exports.ThreadPreviewDialog = ThreadPreviewDialog;
3964
3740
  exports.TipsEditorDialog = TipsEditorDialog;
3965
- exports.TriStateFilterMenu = TriStateFilterMenu;
3966
3741
  exports.UsageActionButton = UsageActionButton;
3967
3742
  exports.UsageLegend = UsageLegend;
3968
3743
  exports.UsageLineChart = UsageLineChart;