@arbidocs/blocks 0.4.89 → 0.4.91

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 (72) hide show
  1. package/dist/agents/index.cjs +283 -282
  2. package/dist/agents/index.js +7 -6
  3. package/dist/agents/workflows/types.d.ts +6 -0
  4. package/dist/{chunk-2CFW2ELM.cjs → chunk-2EI7NCUA.cjs} +2 -8
  5. package/dist/chunk-2EI7NCUA.cjs.map +1 -0
  6. package/dist/chunk-32HW2Q33.cjs +59 -0
  7. package/dist/chunk-32HW2Q33.cjs.map +1 -0
  8. package/dist/{chunk-MOJ5JQDN.cjs → chunk-3US5OIDQ.cjs} +69 -34
  9. package/dist/chunk-3US5OIDQ.cjs.map +1 -0
  10. package/dist/{chunk-DPLRHEJZ.js → chunk-5LXQPP2K.js} +4 -33
  11. package/dist/chunk-5LXQPP2K.js.map +1 -0
  12. package/dist/{chunk-QLHW7JGN.js → chunk-5NQIBJPP.js} +7 -7
  13. package/dist/{chunk-QLHW7JGN.js.map → chunk-5NQIBJPP.js.map} +1 -1
  14. package/dist/{chunk-3D5MDCQ7.js → chunk-5RQOVALO.js} +3 -3
  15. package/dist/{chunk-3D5MDCQ7.js.map → chunk-5RQOVALO.js.map} +1 -1
  16. package/dist/chunk-AUS3KBHJ.js +52 -0
  17. package/dist/chunk-AUS3KBHJ.js.map +1 -0
  18. package/dist/{chunk-CNI5QJ5B.cjs → chunk-DDYXFALG.cjs} +50 -50
  19. package/dist/{chunk-CNI5QJ5B.cjs.map → chunk-DDYXFALG.cjs.map} +1 -1
  20. package/dist/chunk-DVUZTGVL.cjs +52 -0
  21. package/dist/chunk-DVUZTGVL.cjs.map +1 -0
  22. package/dist/{chunk-TF6YMDZL.cjs → chunk-EHF63UYP.cjs} +5 -5
  23. package/dist/{chunk-TF6YMDZL.cjs.map → chunk-EHF63UYP.cjs.map} +1 -1
  24. package/dist/{chunk-I44NX2ZB.js → chunk-PGDL26TQ.js} +69 -34
  25. package/dist/chunk-PGDL26TQ.js.map +1 -0
  26. package/dist/{chunk-ZX2VPMBJ.js → chunk-YU2KUMGE.js} +2 -8
  27. package/dist/chunk-YU2KUMGE.js.map +1 -0
  28. package/dist/components/tones.d.ts +5 -0
  29. package/dist/connect/index.cjs +26 -25
  30. package/dist/connect/index.cjs.map +1 -1
  31. package/dist/connect/index.js +5 -4
  32. package/dist/connect/index.js.map +1 -1
  33. package/dist/facts/FactSourceGroup.d.ts +2 -1
  34. package/dist/facts/index.cjs +6 -6
  35. package/dist/facts/index.cjs.map +1 -1
  36. package/dist/facts/index.js +3 -3
  37. package/dist/facts/index.js.map +1 -1
  38. package/dist/files/cells/LabelMultiSelect.d.ts +11 -3
  39. package/dist/files/index.cjs +23 -16
  40. package/dist/files/index.cjs.map +1 -1
  41. package/dist/files/index.js +20 -13
  42. package/dist/files/index.js.map +1 -1
  43. package/dist/index.cjs +371 -358
  44. package/dist/index.cjs.map +1 -1
  45. package/dist/index.d.ts +1 -0
  46. package/dist/index.js +54 -49
  47. package/dist/index.js.map +1 -1
  48. package/dist/settings/index.cjs +6 -5
  49. package/dist/settings/index.cjs.map +1 -1
  50. package/dist/settings/index.js +2 -1
  51. package/dist/settings/index.js.map +1 -1
  52. package/dist/shell/FilterInput.d.ts +1 -3
  53. package/dist/shell/index.cjs +4 -4
  54. package/dist/shell/index.js +1 -1
  55. package/dist/site/index.cjs +4 -3
  56. package/dist/site/index.js +2 -1
  57. package/dist/tags/TagDetail.d.ts +10 -1
  58. package/dist/workflow-canvas/FieldOptionsEditor.d.ts +25 -0
  59. package/dist/workflow-canvas/StepInspector.d.ts +6 -2
  60. package/dist/workflow-canvas/index.cjs +179 -50
  61. package/dist/workflow-canvas/index.cjs.map +1 -1
  62. package/dist/workflow-canvas/index.d.ts +1 -0
  63. package/dist/workflow-canvas/index.js +136 -9
  64. package/dist/workflow-canvas/index.js.map +1 -1
  65. package/package.json +4 -4
  66. package/dist/chunk-2CFW2ELM.cjs.map +0 -1
  67. package/dist/chunk-DPLRHEJZ.js.map +0 -1
  68. package/dist/chunk-I44NX2ZB.js.map +0 -1
  69. package/dist/chunk-MOJ5JQDN.cjs.map +0 -1
  70. package/dist/chunk-VFUWWH52.cjs +0 -83
  71. package/dist/chunk-VFUWWH52.cjs.map +0 -1
  72. package/dist/chunk-ZX2VPMBJ.js.map +0 -1
@@ -21,7 +21,6 @@ function FilterInput({
21
21
  hideFieldPicker = false,
22
22
  ariaLabel,
23
23
  onChange,
24
- onSubmit,
25
24
  fields,
26
25
  onFieldsChange,
27
26
  filter,
@@ -53,11 +52,6 @@ function FilterInput({
53
52
  "aria-label": ariaLabel,
54
53
  value,
55
54
  onChange: (e) => onChange(e.target.value),
56
- onKeyDown: onSubmit ? (e) => {
57
- if (e.key !== "Enter") return;
58
- e.preventDefault();
59
- onSubmit(value);
60
- } : void 0,
61
55
  placeholder: l.placeholder,
62
56
  "data-testid": testIdOr(testIds?.input, { testId: "facts-filter-input" }),
63
57
  className: cn(
@@ -131,5 +125,5 @@ function FilterInput({
131
125
  }
132
126
 
133
127
  export { DEFAULT_FILTER_FIELDS, DEFAULT_FILTER_INPUT_LABELS, FilterInput };
134
- //# sourceMappingURL=chunk-ZX2VPMBJ.js.map
135
- //# sourceMappingURL=chunk-ZX2VPMBJ.js.map
128
+ //# sourceMappingURL=chunk-YU2KUMGE.js.map
129
+ //# sourceMappingURL=chunk-YU2KUMGE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/shell/FilterInput.tsx"],"names":[],"mappings":"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","file":"chunk-YU2KUMGE.js","sourcesContent":["/** Shared page filter with configurable searchable fields and optional quick-filter control. */\nimport type { ReactNode } from 'react'\nimport { X, Filter, SlidersHorizontal, Check } from 'lucide-react'\nimport {\n Command,\n CommandGroup,\n CommandItem,\n CommandList,\n Input,\n Popover,\n PopoverContent,\n PopoverTrigger,\n cn,\n} from '@arbidocs/react/ui'\nimport { testIdOr } from '../chat/test-id'\n\nexport type FilterField = 'text' | 'labels'\n\nexport const DEFAULT_FILTER_FIELDS: { value: FilterField; label: string }[] = [\n { value: 'text', label: 'Text' },\n { value: 'labels', label: 'Labels' },\n]\n\nexport interface FilterInputLabels<Field extends string = FilterField> {\n placeholder: string\n clear: string\n chooseFields: string\n fieldsHeading: string\n /** Display name per searchable field. */\n fieldNames: Partial<Record<Field, string>>\n}\n\nexport const DEFAULT_FILTER_INPUT_LABELS: FilterInputLabels = {\n placeholder: 'Filter...',\n clear: 'Clear filter',\n chooseFields: 'Choose fields to filter',\n fieldsHeading: 'Filter fields',\n fieldNames: { text: 'Text', labels: 'Labels' },\n}\n\nexport interface FilterInputTestIds<Field extends string = FilterField> {\n root: string\n quick: string\n input: string\n fieldsButton: string\n field: (field: Field) => string\n}\n\nexport interface FilterInputProps<Field extends string = FilterField> {\n fieldOptions?: { value: Field; label: string }[]\n value: string\n /** Lists with one searchable field need no field selector. */\n hideFieldPicker?: boolean\n ariaLabel?: string\n onChange: (q: string) => void\n fields: Field[]\n onFieldsChange: (fields: Field[]) => void\n /**\n * The quick-filter dropdown trigger, embedded inside the input on the left\n * (mirroring the Files search box). When absent, a static funnel icon shows.\n */\n filter?: ReactNode\n /** Width classes for the box (default `w-44`). */\n className?: string\n /** No outline: a soft fill instead of the input border, for a header that is already ruled. */\n borderless?: boolean\n labels?: Partial<FilterInputLabels<Field>>\n testIds?: Partial<FilterInputTestIds<Field>>\n}\n\nexport function FilterInput<Field extends string = FilterField>({\n fieldOptions,\n value,\n hideFieldPicker = false,\n ariaLabel,\n onChange,\n fields,\n onFieldsChange,\n filter,\n className,\n borderless = false,\n labels,\n testIds,\n}: FilterInputProps<Field>) {\n const l = { ...DEFAULT_FILTER_INPUT_LABELS, ...labels }\n const options = fieldOptions ?? (DEFAULT_FILTER_FIELDS as { value: Field; label: string }[])\n const toggleField = (field: Field) =>\n onFieldsChange(fields.includes(field) ? fields.filter((f) => f !== field) : [...fields, field])\n\n return (\n <div\n className={cn('flex min-w-0 items-center', className ?? 'w-44 pointer-coarse:w-56')}\n data-testid={testIdOr(testIds?.root, { testId: 'facts-filter' })}\n >\n <div className=\"relative flex-1 min-w-0\">\n {filter ? (\n <div\n className=\"absolute left-1 top-1/2 z-10 -translate-y-1/2\"\n data-testid={testIdOr(testIds?.quick, { testId: 'facts-filter-quick' })}\n >\n {filter}\n </div>\n ) : (\n <Filter className=\"pointer-events-none absolute left-2 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground\" />\n )}\n <Input\n aria-label={ariaLabel}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={l.placeholder}\n data-testid={testIdOr(testIds?.input, { testId: 'facts-filter-input' })}\n className={cn(\n 'h-7 pr-12 text-sm shadow-none focus-visible:ring-0 pointer-coarse:h-11 pointer-coarse:pr-12',\n // Touch: the 44px clear button only needs its room while there is text to clear, so\n // an empty field keeps space for its placeholder on a phone.\n value && 'pointer-coarse:pr-24',\n borderless\n ? 'border-transparent bg-muted/50 hover:bg-muted focus-visible:bg-muted'\n : 'border-input bg-background',\n filter ? 'pl-11' : 'pl-7',\n hideFieldPicker && 'pr-7 pointer-coarse:pr-11'\n )}\n />\n {value && (\n <button\n type=\"button\"\n onClick={() => onChange('')}\n aria-label={l.clear}\n className={cn(\n 'absolute top-1/2 z-10 -translate-y-1/2 text-muted-foreground hover:text-foreground pointer-coarse:flex pointer-coarse:size-11 pointer-coarse:items-center pointer-coarse:justify-center',\n hideFieldPicker\n ? 'right-1.5 pointer-coarse:right-0'\n : 'right-7 pointer-coarse:right-11'\n )}\n >\n <X className=\"size-3\" />\n </button>\n )}\n {/* Field picker — inside the input on the right, muted, exactly as the\n Files search box renders it. */}\n {!hideFieldPicker && (\n <Popover>\n <PopoverTrigger asChild>\n <button\n type=\"button\"\n aria-label={l.chooseFields}\n data-testid={testIdOr(testIds?.fieldsButton, {\n testId: 'facts-filter-fields-button',\n })}\n className=\"absolute right-1.5 top-1/2 z-10 -translate-y-1/2 !h-5 !w-5 !p-0 text-muted-foreground/60 transition-colors hover:text-foreground pointer-coarse:right-0 pointer-coarse:!flex pointer-coarse:!h-11 pointer-coarse:!w-11 pointer-coarse:items-center pointer-coarse:justify-center\"\n >\n <SlidersHorizontal className=\"size-3.5\" />\n </button>\n </PopoverTrigger>\n <PopoverContent className=\"w-44 p-0\" align=\"end\" sideOffset={4}>\n <Command shouldFilter={false}>\n <CommandList>\n <CommandGroup heading={l.fieldsHeading}>\n {options.map((option) => {\n const isSelected = fields.includes(option.value)\n return (\n <CommandItem\n key={option.value}\n onSelect={() => toggleField(option.value)}\n className=\"cursor-pointer text-sm\"\n data-testid={testIdOr(testIds?.field?.(option.value), {\n testId: `facts-filter-field-${option.value}`,\n })}\n >\n <div\n className={cn(\n 'mr-2 flex size-3.5 items-center justify-center rounded-sm border border-primary',\n isSelected\n ? 'bg-primary text-primary-foreground'\n : 'opacity-50 [&_svg]:invisible'\n )}\n >\n <Check className=\"size-3\" />\n </div>\n {labels?.fieldNames?.[option.value] ?? option.label}\n </CommandItem>\n )\n })}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n )}\n </div>\n </div>\n )\n}\n"]}
@@ -6,9 +6,14 @@
6
6
  */
7
7
  /** Semantic tones, mapped to the token palette (`--{hue}-bg|text|border`, `--ai-*`). */
8
8
  export type Tone = 'neutral' | 'info' | 'success' | 'warning' | 'danger' | 'accent' | 'ai';
9
+ /** Every tone, e.g. to check a tone read from a file or offer them in a picker. */
10
+ export declare const TONES: readonly Tone[];
11
+ export declare const isTone: (v: unknown) => v is Tone;
9
12
  /** Background + text of a tinted chip. */
10
13
  export declare const TONE_SURFACE: Record<Tone, string>;
11
14
  /** Border of a tinted chip (the AI tint has none). */
12
15
  export declare const TONE_BORDER: Record<Tone, string>;
13
16
  /** Solid fill of a status dot. */
14
17
  export declare const TONE_DOT: Record<Tone, string>;
18
+ /** Strong border of a chosen toned control (its fill is `TONE_SURFACE`). */
19
+ export declare const TONE_SOLID_BORDER: Record<Tone, string>;
@@ -8,13 +8,14 @@ var chunkMUMH3Z6K_cjs = require('../chunk-MUMH3Z6K.cjs');
8
8
  var chunkJH6JTI76_cjs = require('../chunk-JH6JTI76.cjs');
9
9
  require('../chunk-2ZDFVRGV.cjs');
10
10
  var chunkO4YPVYPO_cjs = require('../chunk-O4YPVYPO.cjs');
11
- var chunkTF6YMDZL_cjs = require('../chunk-TF6YMDZL.cjs');
12
- var chunkMOJ5JQDN_cjs = require('../chunk-MOJ5JQDN.cjs');
11
+ var chunkEHF63UYP_cjs = require('../chunk-EHF63UYP.cjs');
12
+ var chunk3US5OIDQ_cjs = require('../chunk-3US5OIDQ.cjs');
13
13
  var chunkN26CXGXC_cjs = require('../chunk-N26CXGXC.cjs');
14
14
  var chunk7RGLTF76_cjs = require('../chunk-7RGLTF76.cjs');
15
- require('../chunk-7D737FLE.cjs');
16
15
  require('../chunk-DETZZBG2.cjs');
17
- var chunk2CFW2ELM_cjs = require('../chunk-2CFW2ELM.cjs');
16
+ require('../chunk-32HW2Q33.cjs');
17
+ var chunk2EI7NCUA_cjs = require('../chunk-2EI7NCUA.cjs');
18
+ require('../chunk-7D737FLE.cjs');
18
19
  var chunkQVBZESYQ_cjs = require('../chunk-QVBZESYQ.cjs');
19
20
  require('../chunk-ADOKTJHV.cjs');
20
21
  var chunkMP6FK43E_cjs = require('../chunk-MP6FK43E.cjs');
@@ -116,7 +117,7 @@ function ConnectedWorkspaceActivity({
116
117
  [feed.data]
117
118
  );
118
119
  return /* @__PURE__ */ jsxRuntime.jsx(
119
- chunkTF6YMDZL_cjs.WorkspaceActivityList,
120
+ chunkEHF63UYP_cjs.WorkspaceActivityList,
120
121
  {
121
122
  ...listProps,
122
123
  items,
@@ -142,7 +143,7 @@ function ConnectedWorkspaceNotificationMenu({
142
143
  });
143
144
  if (!workspaceId) return null;
144
145
  return /* @__PURE__ */ jsxRuntime.jsx(
145
- chunkTF6YMDZL_cjs.WorkspaceNotificationMenu,
146
+ chunkEHF63UYP_cjs.WorkspaceNotificationMenu,
146
147
  {
147
148
  ...menuProps,
148
149
  level,
@@ -161,7 +162,7 @@ function ConnectedThreadFollow({
161
162
  enabled: status === "authenticated"
162
163
  });
163
164
  if (!conversationId) return null;
164
- const Control = as === "menu-item" ? chunkTF6YMDZL_cjs.ThreadFollowMenuItem : chunkTF6YMDZL_cjs.ThreadFollowButton;
165
+ const Control = as === "menu-item" ? chunkEHF63UYP_cjs.ThreadFollowMenuItem : chunkEHF63UYP_cjs.ThreadFollowButton;
165
166
  return /* @__PURE__ */ jsxRuntime.jsx(
166
167
  Control,
167
168
  {
@@ -287,7 +288,7 @@ function StreamedArtifact({
287
288
  }
288
289
  var STARTING = /* @__PURE__ */ new Set(["pending", "running"]);
289
290
  function formValues(step, inputs) {
290
- const fields = chunkMOJ5JQDN_cjs.stepFields(step);
291
+ const fields = chunk3US5OIDQ_cjs.stepFields(step);
291
292
  if (!fields.length) return void 0;
292
293
  if (step.kind === "form")
293
294
  return Object.fromEntries(fields.map((f) => [f.name, inputs[f.name] ?? ""]));
@@ -325,7 +326,7 @@ function useWorkflowThread(workflow, options = {}) {
325
326
  const { wsId } = chunkXMBYDLZQ_cjs.useWorkspaceDocs();
326
327
  const [threadId, setThreadId] = react.useState(options.conversationId);
327
328
  const [localInputs, setLocalInputs] = react.useState(
328
- () => chunkMOJ5JQDN_cjs.initialRunInputs(workflow, options.initialInputs)
329
+ () => chunk3US5OIDQ_cjs.initialRunInputs(workflow, options.initialInputs)
329
330
  );
330
331
  const [edits, setEdits] = react.useState({});
331
332
  const [localStates, setLocalStates] = react.useState({});
@@ -345,12 +346,12 @@ function useWorkflowThread(workflow, options = {}) {
345
346
  );
346
347
  const conversation = conversations.data?.find((c) => c.external_id === threadId);
347
348
  const steps = react.useMemo(
348
- () => chunkMOJ5JQDN_cjs.workflowSteps(workflow).length > 0 ? chunkMOJ5JQDN_cjs.workflowSteps(workflow) : chunkMOJ5JQDN_cjs.fromPlanSteps(conversation?.plan?.steps ?? []),
349
+ () => chunk3US5OIDQ_cjs.workflowSteps(workflow).length > 0 ? chunk3US5OIDQ_cjs.workflowSteps(workflow) : chunk3US5OIDQ_cjs.fromPlanSteps(conversation?.plan?.steps ?? []),
349
350
  [workflow, conversation?.plan?.steps]
350
351
  );
351
352
  const activity = react$1.useConversationActivity(threadId, { live: !!threadId });
352
353
  const serverStates = react.useMemo(
353
- () => chunkMOJ5JQDN_cjs.stepStatesFromActivity(activity.data ?? []),
354
+ () => chunk3US5OIDQ_cjs.stepStatesFromActivity(activity.data ?? []),
354
355
  [activity.data]
355
356
  );
356
357
  const working = steps.some(
@@ -393,7 +394,7 @@ function useWorkflowThread(workflow, options = {}) {
393
394
  async (values, done) => {
394
395
  await ensureWorkspaceOpen();
395
396
  const created = await createWork.mutateAsync({
396
- title: chunkMOJ5JQDN_cjs.runThreadTitle(workflow, values).slice(0, 60),
397
+ title: chunk3US5OIDQ_cjs.runThreadTitle(workflow, values).slice(0, 60),
397
398
  description: workflow.description || null,
398
399
  prompt: null,
399
400
  skill_ref: null,
@@ -405,7 +406,7 @@ function useWorkflowThread(workflow, options = {}) {
405
406
  criteria: [],
406
407
  max_passes: 3,
407
408
  documents: [],
408
- steps: chunkMOJ5JQDN_cjs.toPlanSteps(workflow, {
409
+ steps: chunk3US5OIDQ_cjs.toPlanSteps(workflow, {
409
410
  inputs: values,
410
411
  resolveWorkflow: options.resolveWorkflow,
411
412
  compose: options.compose
@@ -492,7 +493,7 @@ function useWorkflowThread(workflow, options = {}) {
492
493
  const anyRunning = Object.values(states).some((s) => s.status === "running");
493
494
  const needsStart = !threadId || idle && !anyRunning;
494
495
  const runError = idle ? conversation?.last_error ?? null : null;
495
- const view = chunkMOJ5JQDN_cjs.useWorkflowView({
496
+ const view = chunk3US5OIDQ_cjs.useWorkflowView({
496
497
  steps,
497
498
  states,
498
499
  inputs,
@@ -573,7 +574,7 @@ function WorkflowSignDialog({
573
574
  const arbi = react$1.useArbi();
574
575
  const { user, ensureWorkspaceOpen } = chunkMUMH3Z6K_cjs.useConnection();
575
576
  const tools = documentTools.useOptionalDocumentTools();
576
- const { id, version: stepVersion } = chunkMOJ5JQDN_cjs.splitDocRef(docRef);
577
+ const { id, version: stepVersion } = chunk3US5OIDQ_cjs.splitDocRef(docRef);
577
578
  const [version, setVersion] = react.useState(stepVersion);
578
579
  const [pdf, setPdf] = react.useState(null);
579
580
  const [preparing, setPreparing] = react.useState(false);
@@ -651,7 +652,7 @@ function WorkflowWordDialog({
651
652
  onClose,
652
653
  labels
653
654
  }) {
654
- const { id } = chunkMOJ5JQDN_cjs.splitDocRef(docRef);
655
+ const { id } = chunk3US5OIDQ_cjs.splitDocRef(docRef);
655
656
  return /* @__PURE__ */ jsxRuntime.jsx(
656
657
  chunkULWRNGGE_cjs.ModalScaffold,
657
658
  {
@@ -825,7 +826,7 @@ function ConnectedWorkflowRunner({
825
826
  () => ({
826
827
  me: user?.externalId,
827
828
  openDocument: onOpenDocument && ((ref) => {
828
- const { id, version } = chunkMOJ5JQDN_cjs.splitDocRef(ref);
829
+ const { id, version } = chunk3US5OIDQ_cjs.splitDocRef(ref);
829
830
  onOpenDocument(id, version);
830
831
  }),
831
832
  openDraft: onOpenDraft && ((draftId) => onOpenDraft(draftId)),
@@ -835,7 +836,7 @@ function ConnectedWorkflowRunner({
835
836
  const w = state.waiting;
836
837
  if (w?.doc_ext_id) setDialog({ kind: "sign", docRef: w.doc_ext_id });
837
838
  }),
838
- openRedline: hostActions?.openRedline ?? ((ref) => setDialog({ kind: "word", docRef: ref, title: nameOfDoc(chunkMOJ5JQDN_cjs.splitDocRef(ref).id) ?? "" })),
839
+ openRedline: hostActions?.openRedline ?? ((ref) => setDialog({ kind: "word", docRef: ref, title: nameOfDoc(chunk3US5OIDQ_cjs.splitDocRef(ref).id) ?? "" })),
839
840
  openReview: hostActions?.openReview ?? ((tags, documents) => setDialog({ kind: "review", tags, documents }))
840
841
  }),
841
842
  [user?.externalId, onOpenDocument, onOpenDraft, onOpenMessage, hostActions, nameOfDoc, inThread]
@@ -971,7 +972,7 @@ function ConnectedWorkflowRunner({
971
972
  );
972
973
  };
973
974
  const runner = (compact) => /* @__PURE__ */ jsxRuntime.jsx(
974
- chunkMOJ5JQDN_cjs.WorkflowRunner,
975
+ chunk3US5OIDQ_cjs.WorkflowRunner,
975
976
  {
976
977
  people,
977
978
  ...runnerProps,
@@ -1017,10 +1018,10 @@ function ConnectedWorkflowRunner({
1017
1018
  ) }),
1018
1019
  inThread && conversationId ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1019
1020
  /* @__PURE__ */ jsxRuntime.jsx(
1020
- chunkMOJ5JQDN_cjs.WorkflowStepBar,
1021
+ chunk3US5OIDQ_cjs.WorkflowStepBar,
1021
1022
  {
1022
1023
  run: view,
1023
- levels: chunkMOJ5JQDN_cjs.stepLevels(view.steps),
1024
+ levels: chunk3US5OIDQ_cjs.stepLevels(view.steps),
1024
1025
  doneTitle: (workflow.run.kind === "steps" ? workflow.run.completion?.title : void 0) ?? runnerProps.labels?.complete ?? "Done",
1025
1026
  icon: (key) => key && runnerProps.renderIcon ? runnerProps.renderIcon(key) : void 0,
1026
1027
  tid: (suffix) => `${testIdPrefix}-${suffix}`
@@ -1201,17 +1202,17 @@ function ConnectedTagTable({
1201
1202
  const fail = (e) => setError(e instanceof Error ? e.message : String(e));
1202
1203
  const snapshot = (data) => {
1203
1204
  const title = exportTitle ?? KIND_TITLES[kind];
1204
- const bytes = chunkTF6YMDZL_cjs.tagTableDocx(data, {
1205
+ const bytes = chunkEHF63UYP_cjs.tagTableDocx(data, {
1205
1206
  title,
1206
1207
  nameOf: (id) => people.find((p) => p.value === id)?.label
1207
1208
  });
1208
1209
  const stamp = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
1209
1210
  const name = `${title.replace(/[\\/:*?"<>|]+/g, "-")} (${stamp}).docx`;
1210
- return { blob: new Blob([bytes], { type: chunkTF6YMDZL_cjs.DOCX_MIME_TYPE }), name };
1211
+ return { blob: new Blob([bytes], { type: chunkEHF63UYP_cjs.DOCX_MIME_TYPE }), name };
1211
1212
  };
1212
1213
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
1213
1214
  /* @__PURE__ */ jsxRuntime.jsx(
1214
- chunkTF6YMDZL_cjs.TagTable,
1215
+ chunkEHF63UYP_cjs.TagTable,
1215
1216
  {
1216
1217
  ...props,
1217
1218
  table,
@@ -3027,7 +3028,7 @@ function ConnectedMailbox({
3027
3028
  compactBreakpoint: 360,
3028
3029
  firstTabContent: account ? /* @__PURE__ */ jsxRuntime.jsxs(chunkO4YPVYPO_cjs.FilesFilterBar, { children: [
3029
3030
  /* @__PURE__ */ jsxRuntime.jsx(
3030
- chunk2CFW2ELM_cjs.FilterInput,
3031
+ chunk2EI7NCUA_cjs.FilterInput,
3031
3032
  {
3032
3033
  value: query,
3033
3034
  onChange: (q) => {