@arbidocs/blocks 0.4.32 → 0.4.37

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 (199) hide show
  1. package/dist/agents/index.cjs +258 -216
  2. package/dist/agents/index.js +9 -7
  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-3AFWGEDJ.cjs +53 -0
  38. package/dist/chunk-3AFWGEDJ.cjs.map +1 -0
  39. package/dist/{chunk-UBNVIIBT.js → chunk-4WWM3GQ5.js} +23 -8
  40. package/dist/chunk-4WWM3GQ5.js.map +1 -0
  41. package/dist/{chunk-56BUD74K.cjs → chunk-65THHQVB.cjs} +27 -27
  42. package/dist/{chunk-56BUD74K.cjs.map → chunk-65THHQVB.cjs.map} +1 -1
  43. package/dist/{chunk-UTYQPVIW.cjs → chunk-7QDX2CO4.cjs} +6 -6
  44. package/dist/{chunk-UTYQPVIW.cjs.map → chunk-7QDX2CO4.cjs.map} +1 -1
  45. package/dist/{chunk-5B4PXAKI.cjs → chunk-7RGLTF76.cjs} +23 -8
  46. package/dist/chunk-7RGLTF76.cjs.map +1 -0
  47. package/dist/{chunk-PLGVMLBD.cjs → chunk-AMXQQCCB.cjs} +1975 -610
  48. package/dist/chunk-AMXQQCCB.cjs.map +1 -0
  49. package/dist/{chunk-NUPVHEJW.js → chunk-BUHKUKKB.js} +7 -4
  50. package/dist/chunk-BUHKUKKB.js.map +1 -0
  51. package/dist/{chunk-4XJZ6AAY.js → chunk-CKB64Z4R.js} +245 -6
  52. package/dist/chunk-CKB64Z4R.js.map +1 -0
  53. package/dist/chunk-DDW3M22Z.js +126 -0
  54. package/dist/chunk-DDW3M22Z.js.map +1 -0
  55. package/dist/{chunk-KXMDOTGW.js → chunk-DLBUFHLY.js} +10 -2
  56. package/dist/chunk-DLBUFHLY.js.map +1 -0
  57. package/dist/{chunk-ZHLMDJCO.cjs → chunk-DLVX6R6B.cjs} +62 -26
  58. package/dist/chunk-DLVX6R6B.cjs.map +1 -0
  59. package/dist/{chunk-JGZTRLKL.cjs → chunk-IA7RTPT3.cjs} +7 -4
  60. package/dist/chunk-IA7RTPT3.cjs.map +1 -0
  61. package/dist/{chunk-6YVI74BC.js → chunk-JH25QIZW.js} +439 -12
  62. package/dist/chunk-JH25QIZW.js.map +1 -0
  63. package/dist/{chunk-FRRDPYBR.cjs → chunk-L7B4W4LA.cjs} +74 -5
  64. package/dist/chunk-L7B4W4LA.cjs.map +1 -0
  65. package/dist/{chunk-NJL4LIXX.js → chunk-LFGJAZ5H.js} +11 -8
  66. package/dist/chunk-LFGJAZ5H.js.map +1 -0
  67. package/dist/{chunk-IAKUTBPX.js → chunk-LYUO3E6V.js} +3 -3
  68. package/dist/{chunk-IAKUTBPX.js.map → chunk-LYUO3E6V.js.map} +1 -1
  69. package/dist/{chunk-EYPPB5CY.cjs → chunk-M2YGPC5N.cjs} +4 -4
  70. package/dist/{chunk-EYPPB5CY.cjs.map → chunk-M2YGPC5N.cjs.map} +1 -1
  71. package/dist/{chunk-5ZBP7TCD.cjs → chunk-MJCCBMM5.cjs} +10 -2
  72. package/dist/chunk-MJCCBMM5.cjs.map +1 -0
  73. package/dist/{chunk-VMCOH3AY.cjs → chunk-NUF2WGGF.cjs} +527 -96
  74. package/dist/chunk-NUF2WGGF.cjs.map +1 -0
  75. package/dist/{chunk-OJSWQM4G.js → chunk-OZJ5PXA6.js} +29 -4
  76. package/dist/chunk-OZJ5PXA6.js.map +1 -0
  77. package/dist/{chunk-3NZR6PAG.js → chunk-PE7Z53RB.js} +70 -4
  78. package/dist/chunk-PE7Z53RB.js.map +1 -0
  79. package/dist/chunk-Q6LF7N3A.cjs +130 -0
  80. package/dist/chunk-Q6LF7N3A.cjs.map +1 -0
  81. package/dist/{chunk-RGHQFJOL.cjs → chunk-QFUF4A4J.cjs} +28 -2
  82. package/dist/chunk-QFUF4A4J.cjs.map +1 -0
  83. package/dist/chunk-RFXJYIDV.js +50 -0
  84. package/dist/chunk-RFXJYIDV.js.map +1 -0
  85. package/dist/{chunk-QN42OA5J.js → chunk-SFXVNFES.js} +4 -4
  86. package/dist/chunk-SFXVNFES.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-S5HZBXZA.cjs → chunk-YJQVLVBJ.cjs} +243 -2
  100. package/dist/chunk-YJQVLVBJ.cjs.map +1 -0
  101. package/dist/{chunk-YMHGF6R5.js → chunk-ZCF2JJFA.js} +3 -3
  102. package/dist/{chunk-YMHGF6R5.js.map → chunk-ZCF2JJFA.js.map} +1 -1
  103. package/dist/{chunk-TZ4QF7EP.js → chunk-ZDA5CZPS.js} +1948 -594
  104. package/dist/chunk-ZDA5CZPS.js.map +1 -0
  105. package/dist/collaboration/index.cjs +45 -41
  106. package/dist/collaboration/index.js +1 -1
  107. package/dist/collaboration/mail/MailMessagePreview.d.ts +11 -0
  108. package/dist/collaboration/mail/index.d.ts +1 -0
  109. package/dist/connect/docx.cjs +4 -4
  110. package/dist/connect/docx.js +1 -1
  111. package/dist/connect/index.cjs +32 -32
  112. package/dist/connect/index.js +3 -3
  113. package/dist/docx/NativeDocxEditor.d.ts +2 -2
  114. package/dist/docx/index.cjs +33 -30
  115. package/dist/docx/index.cjs.map +1 -1
  116. package/dist/docx/index.d.ts +2 -2
  117. package/dist/docx/index.js +3 -4
  118. package/dist/docx/index.js.map +1 -1
  119. package/dist/docx/review/DocxEditorReview.d.ts +16 -0
  120. package/dist/docx/review/index.d.ts +3 -0
  121. package/dist/docx/review/reviewModule.d.ts +6 -0
  122. package/dist/docx/review/useReview.d.ts +29 -0
  123. package/dist/facts/FactsFilterInput.d.ts +2 -46
  124. package/dist/facts/FactsToolbar.d.ts +5 -5
  125. package/dist/facts/index.cjs +27 -124
  126. package/dist/facts/index.cjs.map +1 -1
  127. package/dist/facts/index.js +13 -118
  128. package/dist/facts/index.js.map +1 -1
  129. package/dist/files/FilesPage.d.ts +1 -1
  130. package/dist/files/FilesToolbar.d.ts +1 -1
  131. package/dist/files/FolderPicker.d.ts +2 -1
  132. package/dist/files/ViewerChrome.d.ts +1 -1
  133. package/dist/files/bulk/FolderFilterButton.d.ts +3 -2
  134. package/dist/files/cells/BulkLabelSelect.d.ts +11 -0
  135. package/dist/files/cells/LabelMultiSelect.d.ts +2 -1
  136. package/dist/files/cells/index.d.ts +1 -0
  137. package/dist/files/index.cjs +110 -167
  138. package/dist/files/index.cjs.map +1 -1
  139. package/dist/files/index.js +96 -159
  140. package/dist/files/index.js.map +1 -1
  141. package/dist/home/index.cjs +20 -20
  142. package/dist/home/index.cjs.map +1 -1
  143. package/dist/home/index.js +5 -5
  144. package/dist/home/index.js.map +1 -1
  145. package/dist/index.cjs +646 -623
  146. package/dist/index.cjs.map +1 -1
  147. package/dist/index.d.ts +1 -0
  148. package/dist/index.js +20 -68
  149. package/dist/index.js.map +1 -1
  150. package/dist/settings/SettingsPanel.d.ts +1 -1
  151. package/dist/settings/TriStateFilterMenu.d.ts +3 -1
  152. package/dist/settings/index.cjs +55 -280
  153. package/dist/settings/index.cjs.map +1 -1
  154. package/dist/settings/index.js +17 -248
  155. package/dist/settings/index.js.map +1 -1
  156. package/dist/shell/FilterInput.d.ts +48 -0
  157. package/dist/shell/TabHeader.d.ts +7 -1
  158. package/dist/shell/index.cjs +62 -49
  159. package/dist/shell/index.d.ts +1 -0
  160. package/dist/shell/index.js +4 -3
  161. package/dist/site/index.cjs +62 -62
  162. package/dist/site/index.js +2 -2
  163. package/dist/studio/index.cjs +75 -75
  164. package/dist/studio/index.js +6 -6
  165. package/dist/workspaces/WorkspaceCard.d.ts +2 -2
  166. package/dist/workspaces/index.cjs +9 -2
  167. package/dist/workspaces/index.cjs.map +1 -1
  168. package/dist/workspaces/index.js +9 -2
  169. package/dist/workspaces/index.js.map +1 -1
  170. package/package.json +9 -13
  171. package/src/blocks.css +4 -0
  172. package/src/components/grid.css +10 -0
  173. package/src/docx/styles.css +488 -43
  174. package/dist/chunk-3NZR6PAG.js.map +0 -1
  175. package/dist/chunk-4XJZ6AAY.js.map +0 -1
  176. package/dist/chunk-5B4PXAKI.cjs.map +0 -1
  177. package/dist/chunk-5ZBP7TCD.cjs.map +0 -1
  178. package/dist/chunk-6YVI74BC.js.map +0 -1
  179. package/dist/chunk-C75S6USL.js.map +0 -1
  180. package/dist/chunk-FRRDPYBR.cjs.map +0 -1
  181. package/dist/chunk-GVQOBJKR.cjs.map +0 -1
  182. package/dist/chunk-JGZTRLKL.cjs.map +0 -1
  183. package/dist/chunk-JLOYWXRB.js.map +0 -1
  184. package/dist/chunk-KXMDOTGW.js.map +0 -1
  185. package/dist/chunk-NJL4LIXX.js.map +0 -1
  186. package/dist/chunk-NUPVHEJW.js.map +0 -1
  187. package/dist/chunk-OJSWQM4G.js.map +0 -1
  188. package/dist/chunk-PLGVMLBD.cjs.map +0 -1
  189. package/dist/chunk-QN42OA5J.js.map +0 -1
  190. package/dist/chunk-RGHQFJOL.cjs.map +0 -1
  191. package/dist/chunk-S5HZBXZA.cjs.map +0 -1
  192. package/dist/chunk-TZ4QF7EP.js.map +0 -1
  193. package/dist/chunk-UBNVIIBT.js.map +0 -1
  194. package/dist/chunk-VMCOH3AY.cjs.map +0 -1
  195. package/dist/chunk-WSJVHSGN.js.map +0 -1
  196. package/dist/chunk-YVIOCITQ.cjs.map +0 -1
  197. package/dist/chunk-ZHLMDJCO.cjs.map +0 -1
  198. package/dist/chunk-ZORQ5M3W.cjs.map +0 -1
  199. package/dist/chunk-ZVPTFTGV.cjs.map +0 -1
@@ -1,21 +1,24 @@
1
1
  "use client";
2
2
  export { DEFAULT_DOCUMENT_VIEW_TOGGLE_LABELS, DocumentViewToggle, ViewToggle } from '../chunk-IC2VHFWR.js';
3
3
  import { ModalBreadcrumbHeader } from '../chunk-RC6VTY2H.js';
4
- import { GridView, SelectionBar, SelectionBarAction } from '../chunk-NUPVHEJW.js';
5
- export { DEFAULT_SELECTION_BAR_LABELS, GridView, SelectionBar, SelectionBarAction } from '../chunk-NUPVHEJW.js';
6
- import { TONE_SURFACE, ToneBadge } from '../chunk-DPLRHEJZ.js';
4
+ import { CellHoverIcon } from '../chunk-RFXJYIDV.js';
5
+ export { CellHoverIcon, HoverIconCell } from '../chunk-RFXJYIDV.js';
6
+ import { GridView, SelectionBar, SelectionBarAction } from '../chunk-BUHKUKKB.js';
7
+ export { DEFAULT_SELECTION_BAR_LABELS, GridView, SelectionBar, SelectionBarAction } from '../chunk-BUHKUKKB.js';
8
+ import { FilterInput } from '../chunk-DDW3M22Z.js';
7
9
  import { ActionLink } from '../chunk-S7PSMMRG.js';
10
+ import { TONE_SURFACE, ToneBadge } from '../chunk-DPLRHEJZ.js';
11
+ import '../chunk-76JDDMSP.js';
8
12
  import '../chunk-SLSBJRWW.js';
9
13
  import '../chunk-NPLYHR2E.js';
10
- import '../chunk-76JDDMSP.js';
11
14
  import { formatCount } from '../chunk-OXF2IFXG.js';
12
15
  import { ShareControl } from '../chunk-K4BGOPGG.js';
13
16
  import { ModalSection, ModalSectionTitle, ModalHeader } from '../chunk-CPMNAJLF.js';
14
17
  import '../chunk-TJMKFY5P.js';
15
18
  import { testIdOr } from '../chunk-7F6CBP3Z.js';
16
19
  import { memo, useState, useRef, useEffect, forwardRef, useMemo, useCallback } from 'react';
17
- import { Check, Ban, Plus, Pencil, PencilLine, Loader2, UploadCloud, X, SlidersHorizontal, Folder, LoaderCircle, Sparkles, AlertCircle, FolderOpen, Upload, FileText, FolderPlus, Globe, Download, FolderUp, Users, XCircle, AlertTriangle, CheckCircle2, Share2, ImagePlus, Crop, ChevronLeft, ChevronRight, ZoomIn, CopyX, Minus, Tags, StickyNote, Columns2, Copy, ChevronDown, BookMarked, ExternalLink, Square, RefreshCw, Settings, Unplug, CalendarDays, CheckCircle, CircleSlash, Hourglass, Mail, CornerDownRight, CornerRightDown, Blend, MoreVertical, SquarePen, BookOpen, MessagesSquare, FolderInput, Trash2, NotebookPen, MoreHorizontal, ArrowRightFromLine, ArrowDownToLine, Tag, Bot, Calendar, Search, Hash, List, SquareCheckBig, Columns3, Save, Undo2, CheckIcon, ArrowUpDown, FileX, ChevronsUpDown, Table2, ArrowRightLeft } from 'lucide-react';
18
- import { cn, Popover, PopoverTrigger, PopoverContent, Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, Input, Tooltip, TooltipTrigger, TooltipContent, Button, Progress, Badge, RadioGroup, RadioGroupItem, Label, ScrollArea, Dialog, DialogContent, DialogTitle, DialogDescription, TooltipProvider, IconToggle, Textarea, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuSeparator, DropdownMenuItem, DialogTrigger, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, Checkbox, DialogHeader, CommandSeparator, getTagTypeIcon, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, Switch } from '@arbidocs/react/ui';
20
+ import { Check, Minus, PencilLine, Loader2, UploadCloud, Folder, LoaderCircle, Sparkles, AlertCircle, X, FolderOpen, Upload, FileText, FolderPlus, Globe, Download, FolderUp, Users, XCircle, AlertTriangle, CheckCircle2, Share2, ImagePlus, Crop, ChevronLeft, ChevronRight, ZoomIn, CopyX, Plus, Tags, StickyNote, Columns2, Copy, ChevronDown, BookMarked, ExternalLink, Square, RefreshCw, Settings, Unplug, CalendarDays, CheckCircle, CircleSlash, Hourglass, Mail, CornerDownRight, CornerRightDown, Blend, MoreVertical, SquarePen, BookOpen, MessagesSquare, Pencil, FolderInput, Trash2, SquareCheckBig, NotebookPen, MoreHorizontal, ArrowRightFromLine, ArrowDownToLine, Tag, Bot, Calendar, Search, Hash, List, Columns3, Save, Undo2, CheckIcon, ArrowUpDown, FileX, ChevronsUpDown, Table2, ArrowRightLeft } from 'lucide-react';
21
+ import { cn, Popover, PopoverTrigger, PopoverContent, Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, Tooltip, TooltipTrigger, TooltipContent, Button, Progress, Badge, RadioGroup, RadioGroupItem, Label, ScrollArea, Dialog, DialogContent, DialogTitle, DialogDescription, TooltipProvider, IconToggle, Textarea, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuSeparator, DropdownMenuItem, DialogTrigger, Input, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, Checkbox, DialogHeader, CommandSeparator, getTagTypeIcon, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, Switch } from '@arbidocs/react/ui';
19
22
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
20
23
  import { cva } from 'class-variance-authority';
21
24
 
@@ -211,100 +214,28 @@ var DEFAULT_FILES_SEARCH_LABELS = {
211
214
  clearFilter: "Clear filter",
212
215
  chooseFields: "Choose fields to search"
213
216
  };
214
- function FilesSearchInput({
215
- value,
216
- onChange,
217
- fields,
218
- selectedFields,
219
- onSelectedFieldsChange,
220
- placeholder,
221
- labels,
222
- testIds,
223
- className,
224
- filterSlot
225
- }) {
226
- const l = { ...DEFAULT_FILES_SEARCH_LABELS, ...labels };
227
- const toggleField = (field) => onSelectedFieldsChange(
228
- selectedFields.includes(field) ? selectedFields.filter((f) => f !== field) : [...selectedFields, field]
229
- );
230
- return /* @__PURE__ */ jsxs(
231
- "div",
217
+ function FilesSearchInput(props) {
218
+ return /* @__PURE__ */ jsx(
219
+ FilterInput,
232
220
  {
233
- className: cn("relative flex min-w-0 items-center", className),
234
- "data-slot": "files-search",
235
- "data-testid": testIdOr(testIds?.root, { testId: "documents-search" }),
236
- children: [
237
- filterSlot && /* @__PURE__ */ jsx(
238
- "div",
239
- {
240
- className: "absolute left-1 top-1/2 z-10 -translate-y-1/2",
241
- "data-testid": testIdOr(testIds?.filterSlot, { testId: "documents-search-filter" }),
242
- children: filterSlot
243
- }
244
- ),
245
- /* @__PURE__ */ jsx(
246
- Input,
247
- {
248
- value,
249
- onChange: (e) => onChange(e.target.value),
250
- placeholder: placeholder ?? l.placeholder,
251
- "data-testid": testIdOr(testIds?.input, { testId: "filter-bar-search-input" }),
252
- className: cn(
253
- "h-8 border-transparent bg-muted text-sm shadow-none focus-visible:border-input focus-visible:bg-background pointer-coarse:h-11",
254
- filterSlot ? "pl-11" : "pl-2.5",
255
- value ? "pr-14 pointer-coarse:pr-24" : "pr-8 pointer-coarse:pr-12"
256
- )
257
- }
258
- ),
259
- value && /* @__PURE__ */ jsx(
260
- "button",
261
- {
262
- type: "button",
263
- onClick: () => onChange(""),
264
- "aria-label": l.clearFilter,
265
- className: "absolute right-8 top-1/2 z-10 flex size-5 -translate-y-1/2 items-center justify-center rounded-sm text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:right-11 pointer-coarse:size-11!",
266
- children: /* @__PURE__ */ jsx(X, { className: "size-3" })
267
- }
268
- ),
269
- /* @__PURE__ */ jsxs(Popover, { children: [
270
- /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
271
- "button",
272
- {
273
- type: "button",
274
- "aria-label": l.chooseFields,
275
- "data-testid": testIdOr(testIds?.fieldsButton, {
276
- testId: "documents-search-fields-button"
277
- }),
278
- className: "absolute right-1.5 top-1/2 z-10 flex size-5 -translate-y-1/2 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:right-0 pointer-coarse:size-11!",
279
- children: /* @__PURE__ */ jsx(SlidersHorizontal, { className: "size-3.5" })
280
- }
281
- ) }),
282
- /* @__PURE__ */ jsx(PopoverContent, { className: "w-44 p-0", align: "end", sideOffset: 6, children: /* @__PURE__ */ jsx(Command, { shouldFilter: false, children: /* @__PURE__ */ jsx(CommandList, { children: /* @__PURE__ */ jsx(CommandGroup, { children: fields.map((field) => {
283
- const isSelected = selectedFields.includes(field.value);
284
- return /* @__PURE__ */ jsxs(
285
- CommandItem,
286
- {
287
- onSelect: () => toggleField(field.value),
288
- className: "cursor-pointer text-sm",
289
- children: [
290
- /* @__PURE__ */ jsx(
291
- "div",
292
- {
293
- className: cn(
294
- "mr-2 flex size-3.5 items-center justify-center rounded-sm border border-primary",
295
- isSelected ? "bg-primary text-primary-foreground" : "opacity-50 [&_svg]:invisible"
296
- ),
297
- children: /* @__PURE__ */ jsx(Check, { className: "size-3" })
298
- }
299
- ),
300
- field.label
301
- ]
302
- },
303
- field.value
304
- );
305
- }) }) }) }) })
306
- ] })
307
- ]
221
+ value: props.value,
222
+ onChange: props.onChange,
223
+ fieldOptions: props.fields,
224
+ fields: props.selectedFields,
225
+ onFieldsChange: props.onSelectedFieldsChange,
226
+ filter: props.filterSlot,
227
+ className: props.className,
228
+ labels: {
229
+ placeholder: props.placeholder ?? props.labels?.placeholder ?? DEFAULT_FILES_SEARCH_LABELS.placeholder,
230
+ clear: props.labels?.clearFilter ?? DEFAULT_FILES_SEARCH_LABELS.clearFilter,
231
+ chooseFields: props.labels?.chooseFields ?? DEFAULT_FILES_SEARCH_LABELS.chooseFields
232
+ },
233
+ testIds: {
234
+ root: props.testIds?.root ?? "documents-search",
235
+ quick: props.testIds?.filterSlot ?? "documents-search-filter",
236
+ input: props.testIds?.input ?? "filter-bar-search-input",
237
+ fieldsButton: props.testIds?.fieldsButton ?? "documents-search-fields-button"
238
+ }
308
239
  }
309
240
  );
310
241
  }
@@ -1049,7 +980,7 @@ function UploadDropArea({
1049
980
  onClick,
1050
981
  className: cn(
1051
982
  "relative flex w-full flex-col items-center justify-center rounded-lg border text-center transition-colors",
1052
- active ? "border-dashed border-primary bg-accent" : "border-transparent bg-muted hover:bg-muted/70",
983
+ active ? "border-dashed border-primary bg-accent" : "border-border bg-card shadow-xs hover:border-ring/50 hover:bg-accent/40",
1053
984
  isDisabled || isProcessing ? "cursor-not-allowed" : "cursor-pointer",
1054
985
  isCompact ? "min-h-[150px] p-4" : "min-h-[200px] p-5",
1055
986
  // Touch screens cannot drag files in: the area stays in the DOM (assistive tech, e2e) but
@@ -1535,7 +1466,7 @@ function ViewerTitle({
1535
1466
  "span",
1536
1467
  {
1537
1468
  className: cn(
1538
- "inline-flex min-w-0 items-center gap-1.5 rounded-md bg-muted px-2 py-1 text-sm font-medium",
1469
+ "inline-flex min-w-0 items-center gap-1.5 px-1 py-1 text-sm font-medium",
1539
1470
  shrink ? "shrink" : "shrink-0"
1540
1471
  ),
1541
1472
  title,
@@ -1807,10 +1738,7 @@ function FilesPageHeader({ className, ...props }) {
1807
1738
  "div",
1808
1739
  {
1809
1740
  "data-slot": "files-page-header",
1810
- className: cn(
1811
- "sticky top-0 z-10 flex flex-col gap-3 bg-background px-4 pb-3 pt-4 sm:px-6",
1812
- className
1813
- ),
1741
+ className: cn("sticky top-0 z-10 flex flex-col bg-background", className),
1814
1742
  ...props
1815
1743
  }
1816
1744
  );
@@ -2140,7 +2068,7 @@ function FolderPickerRow({
2140
2068
  ) : isActive && /* @__PURE__ */ jsx(Check, { className: "size-3.5 text-primary" }) }),
2141
2069
  icon,
2142
2070
  label !== "" && /* @__PURE__ */ jsx("span", { className: cn("min-w-0 truncate", isActive && "font-semibold text-primary"), children: label }),
2143
- /* @__PURE__ */ jsx("span", { className: "ml-auto pl-2 text-sm font-semibold text-muted-foreground", children: count })
2071
+ count !== void 0 && /* @__PURE__ */ jsx("span", { className: "ml-auto pl-2 text-sm font-semibold text-muted-foreground", children: count })
2144
2072
  ]
2145
2073
  }
2146
2074
  );
@@ -2834,6 +2762,7 @@ function FilesAddMenu({
2834
2762
  testId
2835
2763
  }) {
2836
2764
  const [open, setOpen] = useState(false);
2765
+ const triggerRef = useRef(null);
2837
2766
  const closeTimer = useRef(null);
2838
2767
  const cancelClose = () => {
2839
2768
  if (closeTimer.current) {
@@ -2853,6 +2782,7 @@ function FilesAddMenu({
2853
2782
  const trigger = /* @__PURE__ */ jsxs(
2854
2783
  Button,
2855
2784
  {
2785
+ ref: triggerRef,
2856
2786
  variant: "default",
2857
2787
  size,
2858
2788
  disabled: !canAdd,
@@ -2861,6 +2791,7 @@ function FilesAddMenu({
2861
2791
  "data-testid": testIdOr(testId, { testId: "documents-upload-button" }),
2862
2792
  onPointerEnter: (e) => e.pointerType === "mouse" && openMenu(),
2863
2793
  onPointerLeave: (e) => e.pointerType === "mouse" && scheduleClose(),
2794
+ onPointerDown: (e) => e.pointerType === "mouse" && open && e.preventDefault(),
2864
2795
  children: [
2865
2796
  /* @__PURE__ */ jsx(Upload, { className: "h-4 w-4" }),
2866
2797
  /* @__PURE__ */ jsx("span", { className: isCompact ? "hidden" : "inline", children: label }),
@@ -2884,6 +2815,7 @@ function FilesAddMenu({
2884
2815
  className: "w-56",
2885
2816
  onPointerEnter: (e) => e.pointerType === "mouse" && openMenu(),
2886
2817
  onPointerLeave: (e) => e.pointerType === "mouse" && scheduleClose(),
2818
+ onPointerDownOutside: (e) => triggerRef.current?.contains(e.target) && e.preventDefault(),
2887
2819
  onCloseAutoFocus: (e) => e.preventDefault(),
2888
2820
  children: items.map((item) => /* @__PURE__ */ jsxs("span", { className: "contents", children: [
2889
2821
  item.separatorBefore && /* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
@@ -4009,45 +3941,6 @@ function DocumentNameCellFrame({
4009
3941
  }
4010
3942
  );
4011
3943
  }
4012
- var ICONS = { pencil: Pencil, plus: Plus, blocked: Ban };
4013
- function CellHoverIcon({
4014
- kind = "pencil",
4015
- className
4016
- }) {
4017
- const Icon = ICONS[kind];
4018
- return /* @__PURE__ */ jsx(
4019
- "span",
4020
- {
4021
- "data-slot": "cell-hover-icon",
4022
- "data-kind": kind,
4023
- "aria-hidden": true,
4024
- className: cn(
4025
- "inline-flex shrink-0 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-70 group-focus-within:opacity-70 pointer-coarse:opacity-70",
4026
- className
4027
- ),
4028
- children: /* @__PURE__ */ jsx(Icon, { className: "size-3.5" })
4029
- }
4030
- );
4031
- }
4032
- var HoverIconCell = memo(function HoverIconCell2({
4033
- content,
4034
- isEditable,
4035
- showIcon = true,
4036
- icon = "pencil",
4037
- className
4038
- }) {
4039
- return /* @__PURE__ */ jsxs(
4040
- "div",
4041
- {
4042
- "data-slot": "hover-icon-cell",
4043
- className: cn("group flex h-full w-full items-center gap-2 pr-2", className),
4044
- children: [
4045
- content,
4046
- showIcon && /* @__PURE__ */ jsx(CellHoverIcon, { kind: isEditable ? icon : "blocked" })
4047
- ]
4048
- }
4049
- );
4050
- });
4051
3944
  var CHIP_ROW_H = 24;
4052
3945
  var CHIP_GAP = 4;
4053
3946
  function labelChipClampHeight(rowHeight) {
@@ -4064,6 +3957,7 @@ var CHECK_BOX = "flex shrink-0 items-center justify-center rounded border-2";
4064
3957
  function LabelPickerList({
4065
3958
  options,
4066
3959
  appliedIds,
3960
+ mixedIds,
4067
3961
  onToggle,
4068
3962
  onCreate,
4069
3963
  onEditLabels,
@@ -4105,6 +3999,7 @@ function LabelPickerList({
4105
3999
  ) : /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: l.noLabels }) }),
4106
4000
  /* @__PURE__ */ jsx(CommandGroup, { children: options.map((o) => {
4107
4001
  const isApplied = appliedIds.has(o.id);
4002
+ const isMixed = mixedIds?.has(o.id);
4108
4003
  return /* @__PURE__ */ jsxs(
4109
4004
  CommandItem,
4110
4005
  {
@@ -4114,7 +4009,7 @@ function LabelPickerList({
4114
4009
  className: "group/label cursor-pointer",
4115
4010
  "data-testid": `label-select-${o.id}`,
4116
4011
  children: [
4117
- /* @__PURE__ */ jsx(
4012
+ /* @__PURE__ */ jsxs(
4118
4013
  "span",
4119
4014
  {
4120
4015
  className: `mr-2 size-4 ${CHECK_BOX} ${isApplied ? "" : "bg-background"}`,
@@ -4122,7 +4017,10 @@ function LabelPickerList({
4122
4017
  borderColor: o.color,
4123
4018
  backgroundColor: isApplied ? o.color : void 0
4124
4019
  },
4125
- children: isApplied && /* @__PURE__ */ jsx(Check, { className: "size-3 text-white", strokeWidth: 3 })
4020
+ children: [
4021
+ isApplied && /* @__PURE__ */ jsx(Check, { className: "size-3 text-white", strokeWidth: 3 }),
4022
+ isMixed && /* @__PURE__ */ jsx(Minus, { className: "size-3", style: { color: o.color } })
4023
+ ]
4126
4024
  }
4127
4025
  ),
4128
4026
  /* @__PURE__ */ jsx("span", { className: "flex-1 text-sm", children: o.name }),
@@ -4294,6 +4192,43 @@ var TagColumnHeader = memo(function TagColumnHeader2({
4294
4192
  }
4295
4193
  );
4296
4194
  });
4195
+ function BulkLabelSelectView({
4196
+ options,
4197
+ appliedIds,
4198
+ mixedIds,
4199
+ onToggle,
4200
+ onCreate,
4201
+ disabled,
4202
+ isCompact
4203
+ }) {
4204
+ return /* @__PURE__ */ jsxs(Popover, { children: [
4205
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
4206
+ Button,
4207
+ {
4208
+ variant: "outline",
4209
+ size: "sm",
4210
+ disabled,
4211
+ className: "h-7 gap-1.5 px-2 text-yellow-text hover:text-yellow-text hover:bg-yellow-bg border-yellow-border",
4212
+ "data-testid": "bulk-label-button",
4213
+ "aria-label": "Labels",
4214
+ children: [
4215
+ /* @__PURE__ */ jsx(SquareCheckBig, { className: "size-4" }),
4216
+ !isCompact && /* @__PURE__ */ jsx("span", { children: "Labels" })
4217
+ ]
4218
+ }
4219
+ ) }),
4220
+ /* @__PURE__ */ jsx(PopoverContent, { className: "w-[220px] p-0", align: "start", side: "top", sideOffset: 4, children: /* @__PURE__ */ jsx(
4221
+ LabelPickerList,
4222
+ {
4223
+ options,
4224
+ appliedIds,
4225
+ mixedIds,
4226
+ onToggle,
4227
+ onCreate
4228
+ }
4229
+ ) })
4230
+ ] });
4231
+ }
4297
4232
  var DEFAULT_BULK_ACTIONS_LABELS = {
4298
4233
  chat: "Chat",
4299
4234
  chatTooltip: "Start a new chat with the selected document(s)",
@@ -4588,17 +4523,19 @@ function FolderFilterButton({
4588
4523
  align: "start",
4589
4524
  sideOffset: 4,
4590
4525
  children: [
4591
- /* @__PURE__ */ jsx(
4592
- FolderPickerRow,
4593
- {
4594
- label: l.all,
4595
- count: allCount,
4596
- depth: 0,
4597
- isActive: !isActive,
4598
- onClick: onSelectAll
4599
- }
4600
- ),
4601
- /* @__PURE__ */ jsx("div", { className: "my-1 border-t border-border" }),
4526
+ onSelectAll && /* @__PURE__ */ jsxs(Fragment, { children: [
4527
+ /* @__PURE__ */ jsx(
4528
+ FolderPickerRow,
4529
+ {
4530
+ label: l.all,
4531
+ count: allCount,
4532
+ depth: 0,
4533
+ isActive: !isActive,
4534
+ onClick: onSelectAll
4535
+ }
4536
+ ),
4537
+ /* @__PURE__ */ jsx("div", { className: "my-1 border-t border-border" })
4538
+ ] }),
4602
4539
  children,
4603
4540
  onNewFolder && /* @__PURE__ */ jsxs(Fragment, { children: [
4604
4541
  /* @__PURE__ */ jsx("div", { className: "my-1 border-t border-border" }),
@@ -6917,6 +6854,6 @@ function ExplorerDragPreview({ icon, title, count }) {
6917
6854
  );
6918
6855
  }
6919
6856
 
6920
- export { AiReviewDialogView, BulkActionsBar, BulkReplaceDialog, BulkTagEditorDialog, CalendarImportRow, CellHoverIcon, CheckboxCell, CitedRunNav, DEFAULT_AI_REVIEW_DIALOG_LABELS, DEFAULT_BULK_ACTIONS_LABELS, DEFAULT_BULK_REPLACE_LABELS, DEFAULT_BULK_TAG_EDITOR_LABELS, DEFAULT_CALENDAR_IMPORT_LABELS, DEFAULT_DOC_TAG_LABELS, DEFAULT_EXPLORER_LABELS, DEFAULT_EXPORT_LABELS, DEFAULT_FIELDS_EDITOR_LABELS, DEFAULT_FILES_SEARCH_LABELS, DEFAULT_FOLDER_FILTER_LABELS, DEFAULT_FOLDER_PICKER_LABELS, DEFAULT_HTML_VIEWER_LABELS, DEFAULT_IMPORT_LABELS, DEFAULT_LABEL_MULTI_SELECT_LABELS, DEFAULT_MOVE_TO_FOLDER_LABELS, DEFAULT_TAG_MANAGER_LABELS, DEFAULT_TAG_PASSAGE_PANEL_LABELS, DEFAULT_UPLOAD_FOOTER_LABELS, DEFAULT_UPLOAD_PARTS_LABELS, DEFAULT_UPLOAD_SOURCES_LABELS, DEFAULT_URL_INPUT_DIALOG_LABELS, DEFAULT_VIEWER_LABELS, DEFAULT_VIEW_SELECTOR_LABELS, DocStatusIcon, DocTagBar, DocTagBreadcrumb, DocTagCreateLink, DocTagEmpty, DocTagFieldIcon, DocTagFieldRow, DocTagNavigator, DocTagPopover, DocTagToggle, DocTagUnsavedFooter, DocTagValueInput, DocumentGrid, DocumentNameCellFrame, DocumentRowMenu, ExplorerDragPreview, ExplorerDropOverlay, ExplorerEmpty, ExplorerFileTile, ExplorerFileTooltip, ExplorerFolderTile, ExplorerFrame, ExplorerLoadingTiles, ExplorerMarquee, ExplorerScroller, ExplorerStage, ExportFooter, ExportMethodChooser, ExportModalTitle, ExportResultsReport, ExportWorkspacePicker, FieldAttribution, FieldFolderSelect, FieldFolderValue, FieldLabelsSelect, FieldNativeSelect, FieldRow, FieldValue, FieldWithAttribution, FieldsApplyBar, FieldsEditorList, FieldsEditorRoot, FieldsEditorToolbar, FieldsEmptyState, FieldsManagerBody, FieldsManagerDefinition, FieldsManagerTitle, FilesAddMenu, FilesFilterBar, FilesModalFooter, FilesPage, FilesPageHeader, FilesPageMain, FilesPageTitle, FilesSearchInput, FilesTagsButton, FilesToolbar, FilesViewCenter, FolderBreadcrumb2 as FolderBreadcrumb, FolderCell, FolderCommandList, FolderFilterButton, FolderPickerRow, FolderSummary, FolderTree, HoverIconCell, HtmlPage, HtmlPassage, HtmlViewerEmpty, HtmlViewerRoot, HtmlViewerSurface, ImportActionButton, ImportAside, ImportFamilySection, ImportHint, ImportList, ImportPanel, ImportProgress, ImportRow, ImportRunActions, ImportSummary, LabelMultiSelectView, LabelPickerList, MediaPreviewView, MoveToFolderDialog, PassageStepper, PdfPageNav, RejectedFilesList, RelatedDocsCell, SelectedFilesList, StatusPill, TagColumnHeader, TagFormField, TagFormFooter, TagFormInstructionField, TagFormMeta, TagFormNameField, TagFormNote, TagFormOptionsEditor, TagFormRoot, TagFormSelectField, TagFormSharedToggle, TagManager, TagPassagePanel, TaskSection, TranslationBadge, TranslationCompareTable, UploadBrowseButtons, UploadContainer, UploadDropArea, UploadDropzone, UploadErrorMessage, UploadFooterBar, UploadFrame, UploadProgress, UploadShareNote, UploadSourcePicker, UploadSourceSection, UploadUrlButton, UrlDialogTitle, UrlInputDialogView, VendorLogo, ViewSelectorMenu, ViewerFrame, ViewerHeaderEnd, ViewerHeaderStart, ViewerImageActions, ViewerLoadError, ViewerMessage, ViewerPageCounter, ViewerPane, ViewerPreviewUnavailable, ViewerRenderedPane, ViewerStatusNote, ViewerTabBar, ViewerTitle, ViewerZoomControl, documentGridLayoutProps, fieldsApplyBarCopy, fieldsEmptyText, filterFieldsByName, labelChipClampHeight, resolveDocumentGridLayout, sortFields };
6857
+ export { AiReviewDialogView, BulkActionsBar, BulkLabelSelectView, BulkReplaceDialog, BulkTagEditorDialog, CalendarImportRow, CheckboxCell, CitedRunNav, DEFAULT_AI_REVIEW_DIALOG_LABELS, DEFAULT_BULK_ACTIONS_LABELS, DEFAULT_BULK_REPLACE_LABELS, DEFAULT_BULK_TAG_EDITOR_LABELS, DEFAULT_CALENDAR_IMPORT_LABELS, DEFAULT_DOC_TAG_LABELS, DEFAULT_EXPLORER_LABELS, DEFAULT_EXPORT_LABELS, DEFAULT_FIELDS_EDITOR_LABELS, DEFAULT_FILES_SEARCH_LABELS, DEFAULT_FOLDER_FILTER_LABELS, DEFAULT_FOLDER_PICKER_LABELS, DEFAULT_HTML_VIEWER_LABELS, DEFAULT_IMPORT_LABELS, DEFAULT_LABEL_MULTI_SELECT_LABELS, DEFAULT_MOVE_TO_FOLDER_LABELS, DEFAULT_TAG_MANAGER_LABELS, DEFAULT_TAG_PASSAGE_PANEL_LABELS, DEFAULT_UPLOAD_FOOTER_LABELS, DEFAULT_UPLOAD_PARTS_LABELS, DEFAULT_UPLOAD_SOURCES_LABELS, DEFAULT_URL_INPUT_DIALOG_LABELS, DEFAULT_VIEWER_LABELS, DEFAULT_VIEW_SELECTOR_LABELS, DocStatusIcon, DocTagBar, DocTagBreadcrumb, DocTagCreateLink, DocTagEmpty, DocTagFieldIcon, DocTagFieldRow, DocTagNavigator, DocTagPopover, DocTagToggle, DocTagUnsavedFooter, DocTagValueInput, DocumentGrid, DocumentNameCellFrame, DocumentRowMenu, ExplorerDragPreview, ExplorerDropOverlay, ExplorerEmpty, ExplorerFileTile, ExplorerFileTooltip, ExplorerFolderTile, ExplorerFrame, ExplorerLoadingTiles, ExplorerMarquee, ExplorerScroller, ExplorerStage, ExportFooter, ExportMethodChooser, ExportModalTitle, ExportResultsReport, ExportWorkspacePicker, FieldAttribution, FieldFolderSelect, FieldFolderValue, FieldLabelsSelect, FieldNativeSelect, FieldRow, FieldValue, FieldWithAttribution, FieldsApplyBar, FieldsEditorList, FieldsEditorRoot, FieldsEditorToolbar, FieldsEmptyState, FieldsManagerBody, FieldsManagerDefinition, FieldsManagerTitle, FilesAddMenu, FilesFilterBar, FilesModalFooter, FilesPage, FilesPageHeader, FilesPageMain, FilesPageTitle, FilesSearchInput, FilesTagsButton, FilesToolbar, FilesViewCenter, FolderBreadcrumb2 as FolderBreadcrumb, FolderCell, FolderCommandList, FolderFilterButton, FolderPickerRow, FolderSummary, FolderTree, HtmlPage, HtmlPassage, HtmlViewerEmpty, HtmlViewerRoot, HtmlViewerSurface, ImportActionButton, ImportAside, ImportFamilySection, ImportHint, ImportList, ImportPanel, ImportProgress, ImportRow, ImportRunActions, ImportSummary, LabelMultiSelectView, LabelPickerList, MediaPreviewView, MoveToFolderDialog, PassageStepper, PdfPageNav, RejectedFilesList, RelatedDocsCell, SelectedFilesList, StatusPill, TagColumnHeader, TagFormField, TagFormFooter, TagFormInstructionField, TagFormMeta, TagFormNameField, TagFormNote, TagFormOptionsEditor, TagFormRoot, TagFormSelectField, TagFormSharedToggle, TagManager, TagPassagePanel, TaskSection, TranslationBadge, TranslationCompareTable, UploadBrowseButtons, UploadContainer, UploadDropArea, UploadDropzone, UploadErrorMessage, UploadFooterBar, UploadFrame, UploadProgress, UploadShareNote, UploadSourcePicker, UploadSourceSection, UploadUrlButton, UrlDialogTitle, UrlInputDialogView, VendorLogo, ViewSelectorMenu, ViewerFrame, ViewerHeaderEnd, ViewerHeaderStart, ViewerImageActions, ViewerLoadError, ViewerMessage, ViewerPageCounter, ViewerPane, ViewerPreviewUnavailable, ViewerRenderedPane, ViewerStatusNote, ViewerTabBar, ViewerTitle, ViewerZoomControl, documentGridLayoutProps, fieldsApplyBarCopy, fieldsEmptyText, filterFieldsByName, labelChipClampHeight, resolveDocumentGridLayout, sortFields };
6921
6858
  //# sourceMappingURL=index.js.map
6922
6859
  //# sourceMappingURL=index.js.map