@arbidocs/blocks 0.5.75 → 0.5.76

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 (175) hide show
  1. package/README.md +23 -0
  2. package/dist/{ConnectedDocumentViewer-U5TQ4LFJ.js → ConnectedDocumentViewer-4LRZ5N3L.js} +6 -6
  3. package/dist/{ConnectedDocumentViewer-U5TQ4LFJ.js.map → ConnectedDocumentViewer-4LRZ5N3L.js.map} +1 -1
  4. package/dist/{ConnectedDocumentViewer-ID2RG5MF.cjs → ConnectedDocumentViewer-FREQM2ES.cjs} +7 -7
  5. package/dist/{ConnectedDocumentViewer-ID2RG5MF.cjs.map → ConnectedDocumentViewer-FREQM2ES.cjs.map} +1 -1
  6. package/dist/{ConnectedNativeDocxComparison-PBMS77ZP.js → ConnectedNativeDocxComparison-P7OJ3UVK.js} +6 -6
  7. package/dist/{ConnectedNativeDocxComparison-PBMS77ZP.js.map → ConnectedNativeDocxComparison-P7OJ3UVK.js.map} +1 -1
  8. package/dist/{ConnectedNativeDocxComparison-R4OFGVHY.cjs → ConnectedNativeDocxComparison-RQIKQM5O.cjs} +7 -7
  9. package/dist/{ConnectedNativeDocxComparison-R4OFGVHY.cjs.map → ConnectedNativeDocxComparison-RQIKQM5O.cjs.map} +1 -1
  10. package/dist/{ConnectedNativeDocxEditor-27JZI2D5.js → ConnectedNativeDocxEditor-HX3FDJ2T.js} +5 -5
  11. package/dist/{ConnectedNativeDocxEditor-27JZI2D5.js.map → ConnectedNativeDocxEditor-HX3FDJ2T.js.map} +1 -1
  12. package/dist/{ConnectedNativeDocxEditor-774XRIP3.cjs → ConnectedNativeDocxEditor-XKQV7A37.cjs} +7 -7
  13. package/dist/{ConnectedNativeDocxEditor-774XRIP3.cjs.map → ConnectedNativeDocxEditor-XKQV7A37.cjs.map} +1 -1
  14. package/dist/{ConnectedStreamedWordArtifact-7TNIQTVE.cjs → ConnectedStreamedWordArtifact-CSRL4SCO.cjs} +7 -7
  15. package/dist/ConnectedStreamedWordArtifact-CSRL4SCO.cjs.map +1 -0
  16. package/dist/{ConnectedStreamedWordArtifact-XEFXYMKS.js → ConnectedStreamedWordArtifact-SSH6M5LN.js} +6 -6
  17. package/dist/ConnectedStreamedWordArtifact-SSH6M5LN.js.map +1 -0
  18. package/dist/{DocumentReviewCard-7OPL6PWG.cjs → DocumentReviewCard-3PZJPVQC.cjs} +14 -14
  19. package/dist/{DocumentReviewCard-7OPL6PWG.cjs.map → DocumentReviewCard-3PZJPVQC.cjs.map} +1 -1
  20. package/dist/{DocumentReviewCard-NDHCFYYT.js → DocumentReviewCard-KHMHG7A5.js} +9 -9
  21. package/dist/{DocumentReviewCard-NDHCFYYT.js.map → DocumentReviewCard-KHMHG7A5.js.map} +1 -1
  22. package/dist/{WorkspaceTableView-4INHJ7QK.js → WorkspaceTableView-4VMCTOFT.js} +5 -5
  23. package/dist/{WorkspaceTableView-4INHJ7QK.js.map → WorkspaceTableView-4VMCTOFT.js.map} +1 -1
  24. package/dist/{WorkspaceTableView-BTUSU3N3.cjs → WorkspaceTableView-Q44KNO3Z.cjs} +7 -7
  25. package/dist/{WorkspaceTableView-BTUSU3N3.cjs.map → WorkspaceTableView-Q44KNO3Z.cjs.map} +1 -1
  26. package/dist/agents/index.cjs +281 -281
  27. package/dist/agents/index.js +4 -4
  28. package/dist/{chunk-E3ILJRG4.cjs → chunk-2HECOUXC.cjs} +4 -3
  29. package/dist/chunk-2HECOUXC.cjs.map +1 -0
  30. package/dist/{chunk-AQPZ4QMV.cjs → chunk-3J2ASIM7.cjs} +3 -3
  31. package/dist/chunk-3J2ASIM7.cjs.map +1 -0
  32. package/dist/{chunk-QCFNPQWS.cjs → chunk-3LJUTIS6.cjs} +44 -44
  33. package/dist/{chunk-QCFNPQWS.cjs.map → chunk-3LJUTIS6.cjs.map} +1 -1
  34. package/dist/chunk-4B6HYQTW.cjs +20 -0
  35. package/dist/chunk-4B6HYQTW.cjs.map +1 -0
  36. package/dist/{chunk-4UMVAJJZ.js → chunk-6NEBHZIF.js} +4 -4
  37. package/dist/{chunk-4UMVAJJZ.js.map → chunk-6NEBHZIF.js.map} +1 -1
  38. package/dist/{chunk-IMIE5NOQ.js → chunk-7E5GV4R7.js} +4 -4
  39. package/dist/{chunk-IMIE5NOQ.js.map → chunk-7E5GV4R7.js.map} +1 -1
  40. package/dist/{chunk-LNXMSIKU.js → chunk-AWFEB4YJ.js} +8 -8
  41. package/dist/{chunk-LNXMSIKU.js.map → chunk-AWFEB4YJ.js.map} +1 -1
  42. package/dist/{chunk-JMQLTMJ7.js → chunk-B3BD5IJR.js} +16 -20
  43. package/dist/chunk-B3BD5IJR.js.map +1 -0
  44. package/dist/{chunk-5Q2U7GLI.cjs → chunk-CDW3W5U5.cjs} +4 -4
  45. package/dist/{chunk-5Q2U7GLI.cjs.map → chunk-CDW3W5U5.cjs.map} +1 -1
  46. package/dist/{chunk-SK5TP4DP.js → chunk-DBPPOJQM.js} +3 -3
  47. package/dist/{chunk-SK5TP4DP.js.map → chunk-DBPPOJQM.js.map} +1 -1
  48. package/dist/{chunk-NJ3YV3VM.cjs → chunk-DMYBHKNQ.cjs} +27 -27
  49. package/dist/{chunk-NJ3YV3VM.cjs.map → chunk-DMYBHKNQ.cjs.map} +1 -1
  50. package/dist/{chunk-563BHHHO.cjs → chunk-E6S6WHXL.cjs} +9 -9
  51. package/dist/{chunk-563BHHHO.cjs.map → chunk-E6S6WHXL.cjs.map} +1 -1
  52. package/dist/{chunk-BV34QPKE.js → chunk-EASXRDYQ.js} +3 -3
  53. package/dist/{chunk-BV34QPKE.js.map → chunk-EASXRDYQ.js.map} +1 -1
  54. package/dist/{chunk-JOFUAQTV.js → chunk-HWNVAQBX.js} +3 -3
  55. package/dist/{chunk-JOFUAQTV.js.map → chunk-HWNVAQBX.js.map} +1 -1
  56. package/dist/{chunk-PNWSEIWS.cjs → chunk-I3HK46DH.cjs} +4 -4
  57. package/dist/{chunk-PNWSEIWS.cjs.map → chunk-I3HK46DH.cjs.map} +1 -1
  58. package/dist/{chunk-GJKXYX47.js → chunk-IJ2CTMA7.js} +3 -3
  59. package/dist/{chunk-GJKXYX47.js.map → chunk-IJ2CTMA7.js.map} +1 -1
  60. package/dist/{chunk-7ZL6OVGO.cjs → chunk-IQFHOKQH.cjs} +23 -46
  61. package/dist/chunk-IQFHOKQH.cjs.map +1 -0
  62. package/dist/{chunk-7ZCM2GR2.js → chunk-IRCGXKLB.js} +3 -3
  63. package/dist/{chunk-7ZCM2GR2.js.map → chunk-IRCGXKLB.js.map} +1 -1
  64. package/dist/{chunk-G4GLDQLY.js → chunk-KG3W76BB.js} +3 -3
  65. package/dist/chunk-KG3W76BB.js.map +1 -0
  66. package/dist/{chunk-B66CICTP.cjs → chunk-KHLPBCRZ.cjs} +52 -52
  67. package/dist/{chunk-B66CICTP.cjs.map → chunk-KHLPBCRZ.cjs.map} +1 -1
  68. package/dist/{chunk-J4SEJSSV.js → chunk-KPIR4MJV.js} +6 -6
  69. package/dist/{chunk-J4SEJSSV.js.map → chunk-KPIR4MJV.js.map} +1 -1
  70. package/dist/{chunk-PA4EGGCI.js → chunk-KSHTODQZ.js} +3 -3
  71. package/dist/{chunk-PA4EGGCI.js.map → chunk-KSHTODQZ.js.map} +1 -1
  72. package/dist/{chunk-PT6D5B6L.cjs → chunk-MAUJVVFJ.cjs} +360 -410
  73. package/dist/chunk-MAUJVVFJ.cjs.map +1 -0
  74. package/dist/{chunk-MP7XCRHV.js → chunk-NRI5DKJE.js} +4 -3
  75. package/dist/chunk-NRI5DKJE.js.map +1 -0
  76. package/dist/{chunk-XXPDAENX.cjs → chunk-PGTDQBMX.cjs} +7 -7
  77. package/dist/{chunk-XXPDAENX.cjs.map → chunk-PGTDQBMX.cjs.map} +1 -1
  78. package/dist/{chunk-4JKK6S7U.cjs → chunk-S7G3A52F.cjs} +5 -5
  79. package/dist/{chunk-4JKK6S7U.cjs.map → chunk-S7G3A52F.cjs.map} +1 -1
  80. package/dist/{chunk-OUCWTKQT.js → chunk-SBFQF3BU.js} +4 -4
  81. package/dist/{chunk-OUCWTKQT.js.map → chunk-SBFQF3BU.js.map} +1 -1
  82. package/dist/{chunk-52VME6ZS.cjs → chunk-SIOBGNRY.cjs} +18 -18
  83. package/dist/{chunk-52VME6ZS.cjs.map → chunk-SIOBGNRY.cjs.map} +1 -1
  84. package/dist/chunk-SK3GBHPJ.js +15 -0
  85. package/dist/chunk-SK3GBHPJ.js.map +1 -0
  86. package/dist/{chunk-RADE22SM.cjs → chunk-T2OG3CPR.cjs} +4 -4
  87. package/dist/{chunk-RADE22SM.cjs.map → chunk-T2OG3CPR.cjs.map} +1 -1
  88. package/dist/{chunk-IGQJ6ET3.js → chunk-TWSOU6SE.js} +421 -501
  89. package/dist/chunk-TWSOU6SE.js.map +1 -0
  90. package/dist/{chunk-QRV4XYFJ.js → chunk-UCD7644N.js} +3 -3
  91. package/dist/{chunk-QRV4XYFJ.js.map → chunk-UCD7644N.js.map} +1 -1
  92. package/dist/{chunk-TQ4VGQHG.js → chunk-ULUCGL24.js} +3 -3
  93. package/dist/{chunk-TQ4VGQHG.js.map → chunk-ULUCGL24.js.map} +1 -1
  94. package/dist/{chunk-IRI6LPDX.cjs → chunk-UR4OSH2Q.cjs} +4 -4
  95. package/dist/{chunk-IRI6LPDX.cjs.map → chunk-UR4OSH2Q.cjs.map} +1 -1
  96. package/dist/{chunk-66QN6ZJR.cjs → chunk-URZAK3A3.cjs} +36 -36
  97. package/dist/{chunk-66QN6ZJR.cjs.map → chunk-URZAK3A3.cjs.map} +1 -1
  98. package/dist/{chunk-57S2PLCM.js → chunk-V2QWATXQ.js} +3 -3
  99. package/dist/{chunk-57S2PLCM.js.map → chunk-V2QWATXQ.js.map} +1 -1
  100. package/dist/{chunk-55JI2IGZ.cjs → chunk-VBLJNOVP.cjs} +4 -4
  101. package/dist/{chunk-55JI2IGZ.cjs.map → chunk-VBLJNOVP.cjs.map} +1 -1
  102. package/dist/{chunk-KFAFWPZK.cjs → chunk-VRMACPJR.cjs} +7 -7
  103. package/dist/{chunk-KFAFWPZK.cjs.map → chunk-VRMACPJR.cjs.map} +1 -1
  104. package/dist/{chunk-5Y6V7F6W.cjs → chunk-VWUNPAR2.cjs} +15 -19
  105. package/dist/chunk-VWUNPAR2.cjs.map +1 -0
  106. package/dist/{chunk-T3GTQXGP.js → chunk-W7CQ5MLR.js} +3 -3
  107. package/dist/{chunk-T3GTQXGP.js.map → chunk-W7CQ5MLR.js.map} +1 -1
  108. package/dist/{chunk-AOBNXZLS.cjs → chunk-Y3VXKSW7.cjs} +594 -674
  109. package/dist/chunk-Y3VXKSW7.cjs.map +1 -0
  110. package/dist/{chunk-RTYU6ZGO.cjs → chunk-YCABQ5W4.cjs} +4 -4
  111. package/dist/{chunk-RTYU6ZGO.cjs.map → chunk-YCABQ5W4.cjs.map} +1 -1
  112. package/dist/{chunk-EWHD3BY5.js → chunk-ZHHUEYSB.js} +25 -48
  113. package/dist/chunk-ZHHUEYSB.js.map +1 -0
  114. package/dist/{chunk-5PKIDR2Q.js → chunk-ZHJVABQ6.js} +361 -406
  115. package/dist/chunk-ZHJVABQ6.js.map +1 -0
  116. package/dist/connect/docx.cjs +11 -11
  117. package/dist/connect/docx.js +7 -7
  118. package/dist/connect/index.cjs +1448 -1367
  119. package/dist/connect/index.cjs.map +1 -1
  120. package/dist/connect/index.d.ts +2 -0
  121. package/dist/connect/index.js +545 -466
  122. package/dist/connect/index.js.map +1 -1
  123. package/dist/connect/viewer.cjs +5 -5
  124. package/dist/connect/viewer.js +4 -4
  125. package/dist/connection/account-cluster/ConnectedAccountCluster.d.ts +2 -1
  126. package/dist/connection/facts/useFactFilters.d.ts +46 -0
  127. package/dist/connection/files/fields/ConnectedTagForm.d.ts +1 -1
  128. package/dist/connection/report-problem/ReportProblemDialog.d.ts +10 -8
  129. package/dist/connection/report-problem/useReportProblem.d.ts +2 -6
  130. package/dist/connection/tags/ConnectedTagTable.d.ts +1 -1
  131. package/dist/connection/tags/ConnectedTagsPage.d.ts +3 -1
  132. package/dist/connection/tags/TagsPageSections.d.ts +5 -3
  133. package/dist/connection/tags/tagged-content.d.ts +10 -0
  134. package/dist/connection/threads/useThreadTagFilter.d.ts +10 -0
  135. package/dist/connection/tips/ConnectedTipBar.d.ts +2 -1
  136. package/dist/connection/tips/useContextualHints.d.ts +6 -1
  137. package/dist/embed/index.cjs +13 -12
  138. package/dist/embed/index.js +8 -7
  139. package/dist/facts/index.cjs +45 -45
  140. package/dist/facts/index.js +2 -2
  141. package/dist/files/index.cjs +226 -226
  142. package/dist/files/index.js +2 -2
  143. package/dist/index.cjs +423 -367
  144. package/dist/index.cjs.map +1 -1
  145. package/dist/index.js +76 -16
  146. package/dist/index.js.map +1 -1
  147. package/dist/settings/FilterChip.d.ts +2 -1
  148. package/dist/settings/TriStateFilterMenu.d.ts +1 -0
  149. package/dist/settings/index.cjs +158 -158
  150. package/dist/settings/index.js +2 -2
  151. package/dist/shell/index.cjs +14 -14
  152. package/dist/shell/index.js +1 -1
  153. package/dist/styles.css +1 -1
  154. package/dist/tags/TagDetail.d.ts +2 -2
  155. package/dist/tags/TagTable.d.ts +17 -3
  156. package/dist/tags/index.d.ts +1 -1
  157. package/dist/workflow-canvas/index.cjs +29 -29
  158. package/dist/workflow-canvas/index.js +12 -12
  159. package/node_modules/@arbidocs/coedit/package.json +1 -1
  160. package/package.json +5 -5
  161. package/dist/ConnectedStreamedWordArtifact-7TNIQTVE.cjs.map +0 -1
  162. package/dist/ConnectedStreamedWordArtifact-XEFXYMKS.js.map +0 -1
  163. package/dist/chunk-5PKIDR2Q.js.map +0 -1
  164. package/dist/chunk-5Y6V7F6W.cjs.map +0 -1
  165. package/dist/chunk-7ZL6OVGO.cjs.map +0 -1
  166. package/dist/chunk-AOBNXZLS.cjs.map +0 -1
  167. package/dist/chunk-AQPZ4QMV.cjs.map +0 -1
  168. package/dist/chunk-E3ILJRG4.cjs.map +0 -1
  169. package/dist/chunk-EWHD3BY5.js.map +0 -1
  170. package/dist/chunk-G4GLDQLY.js.map +0 -1
  171. package/dist/chunk-IGQJ6ET3.js.map +0 -1
  172. package/dist/chunk-JMQLTMJ7.js.map +0 -1
  173. package/dist/chunk-MP7XCRHV.js.map +0 -1
  174. package/dist/chunk-PT6D5B6L.cjs.map +0 -1
  175. package/dist/connection/tags/TagPlacement.d.ts +0 -16
@@ -116,7 +116,7 @@ function TriStateFilterMenu({
116
116
  children: [
117
117
  stateIcon,
118
118
  option.icon && /* @__PURE__ */ jsx("span", { className: "[&>svg]:size-3.5", children: option.icon }),
119
- /* @__PURE__ */ jsx("span", { className: "font-medium", children: option.label }),
119
+ /* @__PURE__ */ jsx("span", { className: "font-medium", children: option.displayLabel ?? option.label }),
120
120
  /* @__PURE__ */ jsx("span", { className: "ml-auto font-semibold", children: option.count })
121
121
  ]
122
122
  }
@@ -257,5 +257,5 @@ function TriStateFilterMenu({
257
257
  }
258
258
 
259
259
  export { DEFAULT_TRI_STATE_FILTER_MENU_LABELS, TriStateFilterMenu };
260
- //# sourceMappingURL=chunk-G4GLDQLY.js.map
261
- //# sourceMappingURL=chunk-G4GLDQLY.js.map
260
+ //# sourceMappingURL=chunk-KG3W76BB.js.map
261
+ //# sourceMappingURL=chunk-KG3W76BB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/settings/TriStateFilterMenu.tsx"],"names":["Fragment"],"mappings":"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","file":"chunk-KG3W76BB.js","sourcesContent":["import {\n Fragment,\n useEffect,\n useMemo,\n useRef,\n useState,\n type MouseEvent,\n type ReactNode,\n} from 'react'\nimport { Ban, Check, ChevronDown, ChevronRight, Filter, FunnelX, MoreVertical } from 'lucide-react'\nimport {\n Badge,\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n cn,\n} from '@arbidocs/react/ui'\n\n/** include keeps matches, exclude drops them, null is indifferent. */\nexport type TriState = 'include' | 'exclude' | null\n\nexport interface TriStateOption<T extends string = string> {\n id: T\n label: string\n displayLabel?: ReactNode\n icon?: ReactNode\n count: number\n disabled?: boolean\n /** Indent level (nested options such as folders). */\n depth?: number\n}\n\nexport interface TriStateGroup<T extends string = string> {\n label: string\n options: T[]\n collapsible?: boolean\n}\n\n/** Every fixed string of the filter menu. */\nexport interface TriStateFilterMenuLabels {\n clear: string\n}\n\nexport const DEFAULT_TRI_STATE_FILTER_MENU_LABELS: TriStateFilterMenuLabels = { clear: 'Clear' }\n\nexport interface HoverHandlers {\n onMouseEnter: () => void\n onMouseLeave: () => void\n}\n\nexport interface TriStateFilterMenuProps<T extends string> {\n /** Test id of the trigger. */\n testId: string\n open: boolean\n onOpenChange: (open: boolean) => void\n title?: string\n filterStates: Map<T, TriState>\n onFiltersChange: (filters: Map<T, TriState>) => void\n options: TriStateOption<T>[]\n groups?: TriStateGroup<T>[]\n /** Between the header and the options (e.g. a toggle). */\n topContent?: ReactNode\n /** Before a group, keyed by the group's label. */\n groupTopContent?: Record<string, ReactNode>\n /** After `topContent` (e.g. a folder navigator). */\n folderContent?: ReactNode\n /** After every group (e.g. a source toggle). */\n bottomContent?: ReactNode\n /** Label next to the filter icon of the trigger. */\n triggerLabel?: string\n /** Shows the active styling even with no tri-state filter set. */\n hasExternalActiveState?: boolean\n /** Never show the active styling (chips carry the indication instead). */\n suppressTriggerActiveStyle?: boolean\n /** Replaces the default trigger styling (e.g. flush inside a unified widget). */\n triggerClassName?: string\n /** A chevron after the icon/label instead of the dots: the trigger reads as a dropdown segment. */\n renderChevron?: boolean\n /** Open only on an explicit click, never on hover (trigger embedded in another control). */\n disableHoverOpen?: boolean\n /** Which edge of the trigger the menu lines up with (default: centered on it). */\n align?: 'start' | 'center' | 'end'\n /** Exposes the hover handlers so a wider hover target (a tab header) can drive the menu. */\n onHoverHandlers?: (handlers: HoverHandlers) => void\n labels?: Partial<TriStateFilterMenuLabels>\n}\n\n/**\n * Tri-state filter dropdown. Opens on hover (pointer) or click (locks it open until clicked\n * away); the open state is controlled so a host can persist it. Options cycle\n * neutral, include, exclude.\n */\nexport function TriStateFilterMenu<T extends string>({\n testId,\n open,\n onOpenChange,\n title,\n filterStates,\n onFiltersChange,\n options,\n groups,\n topContent,\n groupTopContent,\n folderContent,\n bottomContent,\n triggerLabel,\n hasExternalActiveState = false,\n suppressTriggerActiveStyle = false,\n triggerClassName,\n renderChevron = false,\n disableHoverOpen = false,\n align = 'center',\n onHoverHandlers,\n labels,\n}: TriStateFilterMenuProps<T>) {\n const l = { ...DEFAULT_TRI_STATE_FILTER_MENU_LABELS, ...labels }\n const [collapsedGroups, setCollapsedGroups] = useState<Set<string>>(\n () => new Set((groups ?? []).filter((g) => g.collapsible).map((g) => g.label))\n )\n // Opened by click: stays open until clicked away.\n const [isClickOpen, setIsClickOpen] = useState(false)\n const hoverTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n\n const cancelPendingClose = () => {\n if (hoverTimeoutRef.current) {\n clearTimeout(hoverTimeoutRef.current)\n hoverTimeoutRef.current = null\n }\n }\n\n const handleMouseEnter = () => {\n if (disableHoverOpen) return\n cancelPendingClose()\n if (!isClickOpen) onOpenChange(true)\n }\n\n const handleMouseLeave = () => {\n if (disableHoverOpen || isClickOpen) return\n // Delay so the pointer can travel to the content.\n hoverTimeoutRef.current = setTimeout(() => {\n if (!isClickOpen) onOpenChange(false)\n }, 150)\n }\n\n const handleTriggerClick = () => {\n setIsClickOpen(!isClickOpen)\n onOpenChange(!isClickOpen)\n }\n\n useEffect(() => {\n onHoverHandlers?.({ onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave })\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => cancelPendingClose, [])\n\n const optionMap = useMemo(() => new Map(options.map((o) => [o.id, o])), [options])\n\n // neutral -> include -> exclude -> neutral\n const handleFilterToggle = (filterId: T) => {\n const next = new Map(filterStates)\n const current = next.get(filterId) ?? null\n next.set(filterId, current === null ? 'include' : current === 'include' ? 'exclude' : null)\n onFiltersChange(next)\n }\n\n const handleClearFilters = (e: MouseEvent) => {\n e.stopPropagation()\n // Only option ids: other keys (e.g. folder filters) stay.\n const cleared = new Map(filterStates)\n options.forEach((opt) => cleared.set(opt.id, null))\n onFiltersChange(cleared)\n }\n\n const clearButton = (\n <Button\n variant=\"ghost\"\n size=\"default\"\n onClick={handleClearFilters}\n className=\"ml-auto h-8 px-3 text-sm text-primary hover:text-primary pointer-coarse:h-11\"\n >\n <FunnelX className=\"mr-1.5 h-4 w-4 text-primary\" />\n {l.clear}\n </Button>\n )\n\n const hasActiveFilters = useMemo(() => {\n const ids = new Set(options.map((o) => o.id))\n return (\n hasExternalActiveState ||\n Array.from(filterStates.entries()).some(([k, v]) => ids.has(k) && v !== null)\n )\n }, [filterStates, options, hasExternalActiveState])\n const isActive = !suppressTriggerActiveStyle && hasActiveFilters\n\n // Without a title the Clear button rides on the first group's label row.\n const showInlineClear =\n !title &&\n hasActiveFilters &&\n !suppressTriggerActiveStyle &&\n !!groups &&\n groups.length > 0 &&\n !groups[0].collapsible\n\n const renderTriStateItem = (option: TriStateOption<T>) => {\n const state = filterStates.get(option.id) ?? null\n const badgeClass =\n state === null\n ? 'bg-card border-border text-foreground hover:bg-muted'\n : state === 'include'\n ? 'bg-primary text-primary-foreground border-primary hover:bg-primary'\n : 'bg-card text-red-text border-red-text hover:bg-red-bg'\n const stateIcon =\n state === null ? (\n <div className=\"size-3.5 rounded-sm border-2 border-border bg-transparent\" />\n ) : state === 'include' ? (\n <Check className=\"size-3\" strokeWidth={3} />\n ) : (\n <Ban className=\"size-3 text-red-text\" strokeWidth={3} />\n )\n const depthPadding = option.depth ? option.depth * 16 : 0\n\n return (\n <DropdownMenuItem\n key={option.id}\n onClick={() => handleFilterToggle(option.id)}\n onSelect={(e) => e.preventDefault()}\n disabled={option.disabled}\n className=\"cursor-pointer p-1\"\n style={depthPadding ? { paddingLeft: `${depthPadding + 4}px` } : undefined}\n >\n <Badge\n variant=\"outline\"\n className={cn(\n 'flex w-full items-center gap-2 px-3 py-1.5 text-sm pointer-coarse:min-h-11',\n badgeClass\n )}\n >\n {stateIcon}\n {option.icon && <span className=\"[&>svg]:size-3.5\">{option.icon}</span>}\n <span className=\"font-medium\">{option.displayLabel ?? option.label}</span>\n <span className=\"ml-auto font-semibold\">{option.count}</span>\n </Badge>\n </DropdownMenuItem>\n )\n }\n\n const toggleGroupCollapse = (label: string) => {\n setCollapsedGroups((prev) => {\n const next = new Set(prev)\n if (!next.delete(label)) next.add(label)\n return next\n })\n }\n\n const renderOptions = () => {\n if (!groups || groups.length === 0) return options.map(renderTriStateItem)\n\n return groups.map((group, groupIndex) => {\n const isCollapsed = !!group.collapsible && collapsedGroups.has(group.label)\n const activeCount = group.collapsible\n ? group.options.filter((id) => (filterStates.get(id) ?? null) !== null).length\n : 0\n\n return (\n <Fragment key={group.label}>\n {groupIndex > 0 && <DropdownMenuSeparator />}\n {groupTopContent?.[group.label] && (\n <>\n <div className=\"px-2 py-1.5\">{groupTopContent[group.label]}</div>\n <DropdownMenuSeparator />\n </>\n )}\n {group.collapsible ? (\n <button\n type=\"button\"\n onClick={() => toggleGroupCollapse(group.label)}\n aria-expanded={!isCollapsed}\n 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\"\n >\n {isCollapsed ? (\n <ChevronRight className=\"size-3.5\" />\n ) : (\n <ChevronDown className=\"size-3.5\" />\n )}\n <span>{group.label}</span>\n {isCollapsed && activeCount > 0 && (\n <Badge\n variant=\"outline\"\n className=\"ml-auto flex h-4 min-w-4 items-center justify-center rounded-md px-1 text-xs leading-none\"\n >\n {activeCount}\n </Badge>\n )}\n </button>\n ) : groupIndex === 0 && showInlineClear ? (\n <div className=\"flex items-center justify-between pr-1\">\n <DropdownMenuLabel className=\"text-primary\">{group.label}</DropdownMenuLabel>\n {clearButton}\n </div>\n ) : (\n <DropdownMenuLabel className=\"text-primary\">{group.label}</DropdownMenuLabel>\n )}\n {!isCollapsed &&\n group.options\n .map((id) => optionMap.get(id))\n .filter((opt): opt is TriStateOption<T> => opt !== undefined)\n .map(renderTriStateItem)}\n </Fragment>\n )\n })\n }\n\n const tone = isActive ? 'text-primary' : 'text-muted-foreground'\n\n return (\n <DropdownMenu\n modal={false}\n open={open}\n onOpenChange={(next) => {\n // Closed by the menu itself (Escape, choosing): the next click opens it again, rather than\n // toggling a stale click-open state shut as it opens.\n if (!next) setIsClickOpen(false)\n onOpenChange(next)\n }}\n >\n <DropdownMenuTrigger asChild>\n <span\n role=\"button\"\n tabIndex={0}\n data-slot=\"tri-state-filter-trigger\"\n className={\n triggerClassName ??\n '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'\n }\n data-testid={testId}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onClick={handleTriggerClick}\n >\n <Filter\n className={cn(\n 'size-3 transition-colors',\n isActive ? 'fill-primary text-primary' : tone\n )}\n />\n {triggerLabel && <span className={tone}>{triggerLabel}</span>}\n {renderChevron ? (\n <ChevronDown className={cn('size-3 transition-colors', tone)} />\n ) : (\n triggerLabel && <MoreVertical className={cn('size-3 transition-colors', tone)} />\n )}\n </span>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n align={align}\n className=\"w-80 border-0 bg-muted\"\n onCloseAutoFocus={(e) => e.preventDefault()}\n onMouseEnter={cancelPendingClose}\n onMouseLeave={() => {\n if (!isClickOpen) onOpenChange(false)\n }}\n onPointerDownOutside={(e) => {\n // Click-opened menus close only on a real outside click.\n if (!isClickOpen) return\n if (!(e.target as HTMLElement).closest('[role=\"menu\"]')) {\n setIsClickOpen(false)\n onOpenChange(false)\n } else {\n e.preventDefault()\n }\n }}\n >\n {(title || (hasActiveFilters && !suppressTriggerActiveStyle && !showInlineClear)) && (\n <>\n <div className=\"flex items-center justify-between px-2 py-1.5\">\n {title && <DropdownMenuLabel className=\"p-0 text-primary\">{title}</DropdownMenuLabel>}\n {hasActiveFilters && !showInlineClear && clearButton}\n </div>\n <DropdownMenuSeparator />\n </>\n )}\n {topContent && (\n <>\n <div className=\"px-2 py-1.5\">{topContent}</div>\n <DropdownMenuSeparator />\n </>\n )}\n {folderContent && (\n <>\n <div className=\"px-1 py-0.5\">{folderContent}</div>\n <DropdownMenuSeparator />\n </>\n )}\n {renderOptions()}\n {bottomContent && (\n <>\n <DropdownMenuSeparator />\n <div className=\"px-2 py-1.5\">{bottomContent}</div>\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n"]}
@@ -3,20 +3,20 @@
3
3
 
4
4
  var chunkHYAYXLIZ_cjs = require('./chunk-HYAYXLIZ.cjs');
5
5
  var chunkKWJW5TMH_cjs = require('./chunk-KWJW5TMH.cjs');
6
- var chunkPNWSEIWS_cjs = require('./chunk-PNWSEIWS.cjs');
7
- var chunk66QN6ZJR_cjs = require('./chunk-66QN6ZJR.cjs');
8
- var chunkE3ILJRG4_cjs = require('./chunk-E3ILJRG4.cjs');
9
- var chunkXXPDAENX_cjs = require('./chunk-XXPDAENX.cjs');
6
+ var chunkI3HK46DH_cjs = require('./chunk-I3HK46DH.cjs');
7
+ var chunkURZAK3A3_cjs = require('./chunk-URZAK3A3.cjs');
8
+ var chunk2HECOUXC_cjs = require('./chunk-2HECOUXC.cjs');
9
+ var chunkPGTDQBMX_cjs = require('./chunk-PGTDQBMX.cjs');
10
10
  var chunkWEYEZBU2_cjs = require('./chunk-WEYEZBU2.cjs');
11
11
  var chunkJH6JTI76_cjs = require('./chunk-JH6JTI76.cjs');
12
12
  var chunkZ3LFF3YT_cjs = require('./chunk-Z3LFF3YT.cjs');
13
13
  var chunkRJWM3F6Q_cjs = require('./chunk-RJWM3F6Q.cjs');
14
14
  var chunk54LJBS6B_cjs = require('./chunk-54LJBS6B.cjs');
15
15
  var chunkNSD37OF5_cjs = require('./chunk-NSD37OF5.cjs');
16
- var chunk563BHHHO_cjs = require('./chunk-563BHHHO.cjs');
16
+ var chunkE6S6WHXL_cjs = require('./chunk-E6S6WHXL.cjs');
17
17
  var chunkUICJN7O2_cjs = require('./chunk-UICJN7O2.cjs');
18
18
  var chunkP6TPVQRU_cjs = require('./chunk-P6TPVQRU.cjs');
19
- var chunkRADE22SM_cjs = require('./chunk-RADE22SM.cjs');
19
+ var chunkT2OG3CPR_cjs = require('./chunk-T2OG3CPR.cjs');
20
20
  var chunk555BS22J_cjs = require('./chunk-555BS22J.cjs');
21
21
  var chunkQUMUAJ2P_cjs = require('./chunk-QUMUAJ2P.cjs');
22
22
  var chunkEKJQJIAT_cjs = require('./chunk-EKJQJIAT.cjs');
@@ -38,25 +38,25 @@ function useSkillsEnabled() {
38
38
  }
39
39
  function useWorkflowDefinitions() {
40
40
  const { data: listings } = react.useSkills();
41
- const usage = chunk563BHHHO_cjs.useWorkflowUsage();
41
+ const usage = chunkE6S6WHXL_cjs.useWorkflowUsage();
42
42
  const skillsEnabled = useSkillsEnabled();
43
43
  return react$1.useMemo(() => {
44
44
  const { host: builtins, skills: fromServer } = chunk555BS22J_cjs.mergeSkillWorkflows(
45
- chunk563BHHHO_cjs.WEB_WORKFLOWS,
45
+ chunkE6S6WHXL_cjs.WEB_WORKFLOWS,
46
46
  listings ?? []
47
47
  );
48
48
  const all = [...builtins, ...fromServer];
49
49
  const byId = new Map(all.map((w) => [w.id, w]));
50
- const pinned = chunk563BHHHO_cjs.DASHBOARD_PINNED.flatMap((id) => {
50
+ const pinned = chunkE6S6WHXL_cjs.DASHBOARD_PINNED.flatMap((id) => {
51
51
  const w = byId.get(id);
52
52
  return w ? [w] : [];
53
53
  });
54
54
  return {
55
55
  skills: all,
56
56
  skillsEnabled,
57
- start: skillsEnabled ? [...builtins, ...chunk563BHHHO_cjs.sortByRecentUse(fromServer, usage)] : [],
58
- dashboard: [...pinned, ...chunk563BHHHO_cjs.DASHBOARD_OPERATIONS],
59
- forTasks: [chunk563BHHHO_cjs.CUSTOM_TASK, ...all.filter((w) => w.schedulable), chunk563BHHHO_cjs.REMIND_TASK]
57
+ start: skillsEnabled ? [...builtins, ...chunkE6S6WHXL_cjs.sortByRecentUse(fromServer, usage)] : [],
58
+ dashboard: [...pinned, ...chunkE6S6WHXL_cjs.DASHBOARD_OPERATIONS],
59
+ forTasks: [chunkE6S6WHXL_cjs.CUSTOM_TASK, ...all.filter((w) => w.schedulable), chunkE6S6WHXL_cjs.REMIND_TASK]
60
60
  };
61
61
  }, [listings, usage, skillsEnabled]);
62
62
  }
@@ -84,7 +84,7 @@ function useWorkflowTasks() {
84
84
  );
85
85
  const create = react$1.useCallback(
86
86
  async (ctx, forceWorkflow = false) => {
87
- const request = chunk563BHHHO_cjs.taskComposerToCreateRequest(
87
+ const request = chunkE6S6WHXL_cjs.taskComposerToCreateRequest(
88
88
  { ...ctx, documentTitles, plan: ctx.plan ?? null },
89
89
  activeWorkspaceId ?? void 0,
90
90
  forceWorkflow
@@ -126,7 +126,7 @@ function useWorkflowTasks() {
126
126
  );
127
127
  const update = react$1.useCallback(
128
128
  async (task, ctx) => {
129
- const patch = chunk563BHHHO_cjs.taskComposerToUpdateRequest({ ...ctx, plan: ctx.plan ?? null });
129
+ const patch = chunkE6S6WHXL_cjs.taskComposerToUpdateRequest({ ...ctx, plan: ctx.plan ?? null });
130
130
  if (task.is_owner === false) delete patch.shared;
131
131
  await updateConversation.mutateAsync({ conversationId: task.external_id, patch });
132
132
  },
@@ -134,7 +134,7 @@ function useWorkflowTasks() {
134
134
  );
135
135
  const updateWorkflow = react$1.useCallback(
136
136
  async (workflow, ctx) => {
137
- const patch = chunk563BHHHO_cjs.composerToWorkflowUpdate({ ...ctx, documentTitles, plan: ctx.plan ?? null });
137
+ const patch = chunkE6S6WHXL_cjs.composerToWorkflowUpdate({ ...ctx, documentTitles, plan: ctx.plan ?? null });
138
138
  if (workflow.is_owner === false) delete patch.shared;
139
139
  const workspaceId = workflow.workspace_ext_id ?? activeWorkspaceId;
140
140
  const updated = await updateWorkflowMutation.mutateAsync({
@@ -249,7 +249,7 @@ function ConnectedTaskComposer({
249
249
  const { tasks: allTasks } = react.useWorkItems();
250
250
  const { data: documents = [] } = react.useDocuments();
251
251
  const { create, update, updateWorkflow, isPending } = useWorkflowTasks();
252
- const scopeSource = chunkXXPDAENX_cjs.useConnectedWorkflowScopeSource();
252
+ const scopeSource = chunkPGTDQBMX_cjs.useConnectedWorkflowScopeSource();
253
253
  const activeWorkspaceId = react.useArbiSessionState((s) => s.workspaceId);
254
254
  const activeWorkspace = react$1.useMemo(
255
255
  () => workspaces.find((w) => w.external_id === activeWorkspaceId) ?? null,
@@ -266,7 +266,7 @@ function ConnectedTaskComposer({
266
266
  const label = (t) => t.title?.trim() || "Untitled task";
267
267
  if (isWorkflow) return allTasks.map((t) => ({ id: t.external_id, name: label(t) }));
268
268
  const subject = task ?? { external_id: "__new__" };
269
- return chunk563BHHHO_cjs.moveTargets(
269
+ return chunkE6S6WHXL_cjs.moveTargets(
270
270
  [...allTasks.filter((t) => t.external_id !== subject.external_id), subject],
271
271
  subject
272
272
  ).map((t) => ({ id: t.external_id, name: label(t) }));
@@ -281,33 +281,33 @@ function ConnectedTaskComposer({
281
281
  );
282
282
  const initialValues = react$1.useMemo(() => {
283
283
  const ids = {
284
- customWorkflowId: chunk563BHHHO_cjs.CUSTOM_TASK_ID,
285
- reminderWorkflowId: chunk563BHHHO_cjs.REMIND_TASK_ID,
284
+ customWorkflowId: chunkE6S6WHXL_cjs.CUSTOM_TASK_ID,
285
+ reminderWorkflowId: chunkE6S6WHXL_cjs.REMIND_TASK_ID,
286
286
  definitions: forTasks
287
287
  };
288
288
  const base = launchWorkflow ? {
289
- ...chunk563BHHHO_cjs.workflowToComposerValues(launchWorkflow, ids),
289
+ ...chunkE6S6WHXL_cjs.workflowToComposerValues(launchWorkflow, ids),
290
290
  when: "once",
291
291
  runAt: "",
292
292
  rrule: "",
293
293
  eventKind: "",
294
294
  afterTaskId: "",
295
295
  name: ""
296
- } : editingWorkflow ? chunk563BHHHO_cjs.workflowToComposerValues(editingWorkflow, ids) : task ? chunk563BHHHO_cjs.taskToComposerValues(task, ids) : isWorkflow ? {
296
+ } : editingWorkflow ? chunkE6S6WHXL_cjs.workflowToComposerValues(editingWorkflow, ids) : task ? chunkE6S6WHXL_cjs.taskToComposerValues(task, ids) : isWorkflow ? {
297
297
  // Run now is the default start; scheduling is the fallback in the same field.
298
298
  assignee: "agent",
299
- workflowId: initialWorkflowId ?? chunk563BHHHO_cjs.CUSTOM_TASK_ID,
299
+ workflowId: initialWorkflowId ?? chunkE6S6WHXL_cjs.CUSTOM_TASK_ID,
300
300
  when: startLater ? "once" : "now",
301
301
  ...initialPrompt ? {
302
302
  inputs: {
303
- [initialWorkflowId === chunk563BHHHO_cjs.REMIND_TASK_ID ? "message" : "instruction"]: initialPrompt
303
+ [initialWorkflowId === chunkE6S6WHXL_cjs.REMIND_TASK_ID ? "message" : "instruction"]: initialPrompt
304
304
  }
305
305
  } : {},
306
306
  // A scheduled run needs an agent: the owner's Assistant unless another is picked.
307
307
  ...startLater && defaultAgentId ? { agentId: defaultAgentId } : {}
308
308
  } : initialAgentExtId ? (
309
309
  // Assigning an agent means agentic work: the free instruction, and tell me when done.
310
- { agentId: initialAgentExtId, workflowId: chunk563BHHHO_cjs.CUSTOM_TASK_ID, notifyOnComplete: true }
310
+ { agentId: initialAgentExtId, workflowId: chunkE6S6WHXL_cjs.CUSTOM_TASK_ID, notifyOnComplete: true }
311
311
  ) : {};
312
312
  return {
313
313
  timezone: chunkQUMUAJ2P_cjs.detectTimeZone(),
@@ -368,7 +368,7 @@ function ConnectedTaskComposer({
368
368
  const ctx = {
369
369
  workflow: chosen,
370
370
  values: submitted,
371
- plan: chosen.id === chunk563BHHHO_cjs.CUSTOM_TASK_ID ? plan : null
371
+ plan: chosen.id === chunkE6S6WHXL_cjs.CUSTOM_TASK_ID ? plan : null
372
372
  };
373
373
  try {
374
374
  if (isWorkflow && editingWorkflow && !options?.runOnce) {
@@ -404,7 +404,7 @@ function ConnectedTaskComposer({
404
404
  }
405
405
  };
406
406
  return /* @__PURE__ */ jsxRuntime.jsx(
407
- chunk563BHHHO_cjs.TaskComposer,
407
+ chunkE6S6WHXL_cjs.TaskComposer,
408
408
  {
409
409
  open,
410
410
  onOpenChange,
@@ -423,10 +423,10 @@ function ConnectedTaskComposer({
423
423
  isPending,
424
424
  planDrafting: planWork.isPending,
425
425
  hasPlan: plan !== null,
426
- renderIcon: chunk563BHHHO_cjs.renderWorkflowIcon,
426
+ renderIcon: chunkE6S6WHXL_cjs.renderWorkflowIcon,
427
427
  scopeSource,
428
428
  renderDocuments: (field, value, onChange) => /* @__PURE__ */ jsxRuntime.jsx(
429
- chunkXXPDAENX_cjs.ConnectedWorkflowDocumentsField,
429
+ chunkPGTDQBMX_cjs.ConnectedWorkflowDocumentsField,
430
430
  {
431
431
  field,
432
432
  value,
@@ -457,8 +457,8 @@ function ConnectedTaskComposer({
457
457
  ...plan ? { addAndStart: "Approve plan and start", addAndSchedule: "Approve plan and schedule" } : {}
458
458
  },
459
459
  onSubmit: submit,
460
- goal: (values) => values.workflowId === chunk563BHHHO_cjs.CUSTOM_TASK_ID ? /* @__PURE__ */ jsxRuntime.jsx(
461
- chunk563BHHHO_cjs.TaskPlan,
460
+ goal: (values) => values.workflowId === chunkE6S6WHXL_cjs.CUSTOM_TASK_ID ? /* @__PURE__ */ jsxRuntime.jsx(
461
+ chunkE6S6WHXL_cjs.TaskPlan,
462
462
  {
463
463
  plan,
464
464
  onChange: setPlan,
@@ -504,7 +504,7 @@ function ConnectedWorkflowHistory({
504
504
  const { openConversation } = chunk3AWP3O5M_cjs.useBlocksEnvironment();
505
505
  const { data: runs = [], isLoading } = react.useWorkflowRuns(workflow?.external_id);
506
506
  return /* @__PURE__ */ jsxRuntime.jsx(
507
- chunk563BHHHO_cjs.TaskRunsDialog,
507
+ chunkE6S6WHXL_cjs.TaskRunsDialog,
508
508
  {
509
509
  inline,
510
510
  hideHeader,
@@ -539,14 +539,14 @@ function ConnectedTaskActivityDialog({
539
539
  const activity = react.useConversationActivity(conversationId, { live });
540
540
  const { data: agents = [] } = react.useAgents();
541
541
  const { userId } = chunkURYJ2SFQ_cjs.useConnectedWorkspace();
542
- const { members } = chunkXXPDAENX_cjs.useConnectedWorkspaceRole();
542
+ const { members } = chunkPGTDQBMX_cjs.useConnectedWorkspaceRole();
543
543
  const renderPerson = react$1.useCallback(
544
544
  (id) => {
545
545
  const isMe = !!id && id === userId;
546
546
  const member = members.find((m) => m.user.external_id === id)?.user;
547
547
  const name = member && [member.given_name, member.family_name].filter(Boolean).join(" ") || member?.email;
548
548
  const person = { id, label: isMe ? "You" : name || "Someone", isMe };
549
- return /* @__PURE__ */ jsxRuntime.jsx(chunkRADE22SM_cjs.PersonPill, { person });
549
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkT2OG3CPR_cjs.PersonPill, { person });
550
550
  },
551
551
  [userId, members]
552
552
  );
@@ -555,7 +555,7 @@ function ConnectedTaskActivityDialog({
555
555
  [agents]
556
556
  );
557
557
  return /* @__PURE__ */ jsxRuntime.jsx(
558
- chunk563BHHHO_cjs.TaskActivityDialog,
558
+ chunkE6S6WHXL_cjs.TaskActivityDialog,
559
559
  {
560
560
  open: true,
561
561
  onOpenChange: (open) => !open && onClose(),
@@ -592,7 +592,7 @@ function useRenderTaskPerson() {
592
592
  return react$1.useCallback(
593
593
  (person) => {
594
594
  const user = person.id ? byId.get(person.id) : void 0;
595
- return user ? /* @__PURE__ */ jsxRuntime.jsx(chunk66QN6ZJR_cjs.DocumentUser, { user, variant: "pill" }) : /* @__PURE__ */ jsxRuntime.jsx(chunkRADE22SM_cjs.PersonPill, { person });
595
+ return user ? /* @__PURE__ */ jsxRuntime.jsx(chunkURZAK3A3_cjs.DocumentUser, { user, variant: "pill" }) : /* @__PURE__ */ jsxRuntime.jsx(chunkT2OG3CPR_cjs.PersonPill, { person });
596
596
  },
597
597
  [byId]
598
598
  );
@@ -605,7 +605,7 @@ function ConnectedThreadTaskBar({
605
605
  renderIcon
606
606
  }) {
607
607
  const { conversations } = react.useConversationItems();
608
- const { activity, items, related, signals, startedBy } = chunkPNWSEIWS_cjs.useConnectedThreadActivity(conversationId);
608
+ const { activity, items, related, signals, startedBy } = chunkI3HK46DH_cjs.useConnectedThreadActivity(conversationId);
609
609
  const canEditShared = react.useCanEditShared();
610
610
  const update = react.useUpdateConversation();
611
611
  const actOnStep = react.useActOnStep();
@@ -642,7 +642,7 @@ function ConnectedThreadTaskBar({
642
642
  ).finally(() => setBusy(false));
643
643
  };
644
644
  const strip = /* @__PURE__ */ jsxRuntime.jsx(
645
- chunk563BHHHO_cjs.WorkflowThreadStrip,
645
+ chunkE6S6WHXL_cjs.WorkflowThreadStrip,
646
646
  {
647
647
  renderIcon,
648
648
  ...variant === "steps" ? { maxSpan: 3, current: currentStepId, onSelectStep } : {},
@@ -671,7 +671,7 @@ function ConnectedThreadTaskBar({
671
671
  renderStepAction: (step, phase) => (
672
672
  // A signer or a draft's person acts on their step even on a thread they cannot edit.
673
673
  canEdit || phase === "waiting" || phase === "done" ? /* @__PURE__ */ jsxRuntime.jsx(
674
- chunk563BHHHO_cjs.WorkflowStepAction,
674
+ chunkE6S6WHXL_cjs.WorkflowStepAction,
675
675
  {
676
676
  step,
677
677
  phase,
@@ -703,7 +703,7 @@ function ConnectedThreadTaskBar({
703
703
  // A workflow run: its named steps, with what happened in the thread under each.
704
704
  strip
705
705
  ) : items.length || startedBy ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
706
- startedBy && /* @__PURE__ */ jsxRuntime.jsx(chunk563BHHHO_cjs.WorkflowThreadStartedBy, { origin: startedBy }),
706
+ startedBy && /* @__PURE__ */ jsxRuntime.jsx(chunkE6S6WHXL_cjs.WorkflowThreadStartedBy, { origin: startedBy }),
707
707
  /* @__PURE__ */ jsxRuntime.jsx(chunkUICJN7O2_cjs.TaskFlow, { items: items.filter((item) => !item.step) })
708
708
  ] }) : (
709
709
  // Ordinary chats record no activity events, so an empty ribbon says nothing rather than
@@ -789,7 +789,7 @@ function ConnectedThreadTaskBar({
789
789
  ] }),
790
790
  error && /* @__PURE__ */ jsxRuntime.jsx("span", { role: "alert", className: "text-xs text-destructive", children: error }),
791
791
  /* @__PURE__ */ jsxRuntime.jsx(
792
- chunkE3ILJRG4_cjs.RenameDialog,
792
+ chunk2HECOUXC_cjs.RenameDialog,
793
793
  {
794
794
  open: renameOpen,
795
795
  onClose: () => setRenameOpen(false),
@@ -822,7 +822,7 @@ ${labels.map((l) => `${l.key}=${l.name}`).join("\n")}`;
822
822
  if (known) return known;
823
823
  const setUp = (async () => {
824
824
  const existing = await arbi.tags.list({ workspaceId });
825
- const { ids, missing } = chunk563BHHHO_cjs.matchRequiredLabels(labels, existing);
825
+ const { ids, missing } = chunkE6S6WHXL_cjs.matchRequiredLabels(labels, existing);
826
826
  for (const label of missing) {
827
827
  const tag = await createTag({
828
828
  name: label.name,
@@ -1013,7 +1013,7 @@ function useWorkflowRunTarget({
1013
1013
  }) {
1014
1014
  const { workspaceId: open } = chunkURYJ2SFQ_cjs.useConnectedWorkspace();
1015
1015
  const session = react.useArbiSessionStore();
1016
- const selectWorkspace = chunkPNWSEIWS_cjs.useSelectWorkspace();
1016
+ const selectWorkspace = chunkI3HK46DH_cjs.useSelectWorkspace();
1017
1017
  const createProject = react.useCreateProject();
1018
1018
  const { projects, isLoading: projectsLoading } = useProjectSummaries();
1019
1019
  const { data: workspaces } = react.useWorkspaces();
@@ -1424,7 +1424,7 @@ function useWorkflowThread(workflow, options = {}) {
1424
1424
  const createThread = react$1.useCallback(
1425
1425
  async (values, done) => {
1426
1426
  const prepared = await options.beforeStart?.();
1427
- const planned = prepared?.labelIds ? chunk563BHHHO_cjs.withLabelIds(workflow, prepared.labelIds) : workflow;
1427
+ const planned = prepared?.labelIds ? chunkE6S6WHXL_cjs.withLabelIds(workflow, prepared.labelIds) : workflow;
1428
1428
  await ensureWorkspaceOpen();
1429
1429
  const created = await createWork.mutateAsync({
1430
1430
  title: chunk555BS22J_cjs.runThreadTitle(workflow, values).slice(0, 60),
@@ -1526,7 +1526,7 @@ function useWorkflowThread(workflow, options = {}) {
1526
1526
  const anyRunning = Object.values(states).some((s) => s.status === "running");
1527
1527
  const needsStart = !threadId || idle && !anyRunning;
1528
1528
  const runError = idle ? conversation?.last_error ?? null : null;
1529
- const view = chunk563BHHHO_cjs.useWorkflowView({
1529
+ const view = chunkE6S6WHXL_cjs.useWorkflowView({
1530
1530
  steps,
1531
1531
  states,
1532
1532
  inputs,
@@ -1662,7 +1662,7 @@ function WorkflowWordDialog({
1662
1662
  title: title ?? labels.wordTitle,
1663
1663
  size: "xl",
1664
1664
  testId: "workflow-word-dialog",
1665
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(chunkXXPDAENX_cjs.ConnectedNativeDocxEditor, { documentId: id, title: title ?? labels.wordTitle }) })
1665
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(chunkPGTDQBMX_cjs.ConnectedNativeDocxEditor, { documentId: id, title: title ?? labels.wordTitle }) })
1666
1666
  }
1667
1667
  );
1668
1668
  }
@@ -1825,7 +1825,7 @@ function RunnerBody({
1825
1825
  const session = react.useArbiSessionStore();
1826
1826
  const openRef = react$1.useRef(workspaceId);
1827
1827
  openRef.current = workspaceId;
1828
- const required = chunk563BHHHO_cjs.requiredLabelsOf(given);
1828
+ const required = chunkE6S6WHXL_cjs.requiredLabelsOf(given);
1829
1829
  const ownEnsureLabels = useEnsureRequiredLabels();
1830
1830
  const ensureLabels = page?.ensureLabels ?? ownEnsureLabels;
1831
1831
  const [startedLabelIds, setStartedLabelIds] = react$1.useState({});
@@ -1837,7 +1837,7 @@ function RunnerBody({
1837
1837
  const pageTarget = page?.target;
1838
1838
  const projectStep = pageTarget && typeof projectFrom === "object" ? projectFrom.step : void 0;
1839
1839
  const workflow = react$1.useMemo(
1840
- () => withCommitStep(chunk563BHHHO_cjs.withLabelIds(given, labelIds), projectStep),
1840
+ () => withCommitStep(chunkE6S6WHXL_cjs.withLabelIds(given, labelIds), projectStep),
1841
1841
  [given, labelIds, projectStep]
1842
1842
  );
1843
1843
  const hostBeforeStart = options?.beforeStart;
@@ -2052,7 +2052,7 @@ function RunnerBody({
2052
2052
  );
2053
2053
  };
2054
2054
  const runner = (compact) => /* @__PURE__ */ jsxRuntime.jsx(
2055
- chunk563BHHHO_cjs.WorkflowRunner,
2055
+ chunkE6S6WHXL_cjs.WorkflowRunner,
2056
2056
  {
2057
2057
  people,
2058
2058
  ...runnerProps,
@@ -2113,7 +2113,7 @@ function RunnerBody({
2113
2113
  pageBar,
2114
2114
  inThread && conversationId ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2115
2115
  !page && /* @__PURE__ */ jsxRuntime.jsx(
2116
- chunk563BHHHO_cjs.WorkflowStepBar,
2116
+ chunkE6S6WHXL_cjs.WorkflowStepBar,
2117
2117
  {
2118
2118
  run: view,
2119
2119
  levels: chunk555BS22J_cjs.stepLevels(view.steps),
@@ -2196,7 +2196,7 @@ function RunnerPage(props) {
2196
2196
  workspaceId,
2197
2197
  onProjectCreated
2198
2198
  });
2199
- const required = chunk563BHHHO_cjs.requiredLabelsOf(workflow);
2199
+ const required = chunkE6S6WHXL_cjs.requiredLabelsOf(workflow);
2200
2200
  const ensure = useEnsureRequiredLabels();
2201
2201
  const labels = useRequiredLabels(required, target.target, ensure, target.stage === "ready");
2202
2202
  const fromStep = typeof projectFrom === "object";
@@ -2479,5 +2479,5 @@ exports.useWorkflowDefinitions = useWorkflowDefinitions;
2479
2479
  exports.useWorkflowTasks = useWorkflowTasks;
2480
2480
  exports.useWorkflowsPageState = useWorkflowsPageState;
2481
2481
  exports.workflowRunView = workflowRunView;
2482
- //# sourceMappingURL=chunk-B66CICTP.cjs.map
2483
- //# sourceMappingURL=chunk-B66CICTP.cjs.map
2482
+ //# sourceMappingURL=chunk-KHLPBCRZ.cjs.map
2483
+ //# sourceMappingURL=chunk-KHLPBCRZ.cjs.map