@arbidocs/blocks 0.5.68 → 0.5.69

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 (165) hide show
  1. package/README.md +7 -9
  2. package/dist/{ConnectedCallDock-VMEBH4LG.js → ConnectedCallDock-3EHDHB5D.js} +3 -3
  3. package/dist/{ConnectedCallDock-VMEBH4LG.js.map → ConnectedCallDock-3EHDHB5D.js.map} +1 -1
  4. package/dist/{ConnectedCallDock-FFIDDYGH.cjs → ConnectedCallDock-NXF2YSY2.cjs} +3 -3
  5. package/dist/{ConnectedCallDock-FFIDDYGH.cjs.map → ConnectedCallDock-NXF2YSY2.cjs.map} +1 -1
  6. package/dist/ConnectedCallRoom-2FNSX2VG.js +1 -1
  7. package/dist/ConnectedCallRoom-HYRLJUIV.cjs +1 -1
  8. package/dist/{ConnectedDocumentViewer-MEKSE7KG.js → ConnectedDocumentViewer-2GU4SA5L.js} +7 -7
  9. package/dist/{ConnectedDocumentViewer-MEKSE7KG.js.map → ConnectedDocumentViewer-2GU4SA5L.js.map} +1 -1
  10. package/dist/{ConnectedDocumentViewer-VVYEBNAK.cjs → ConnectedDocumentViewer-R5GFEUPB.cjs} +8 -8
  11. package/dist/{ConnectedDocumentViewer-VVYEBNAK.cjs.map → ConnectedDocumentViewer-R5GFEUPB.cjs.map} +1 -1
  12. package/dist/{ConnectedNativeDocxComparison-ZXWLLKCZ.js → ConnectedNativeDocxComparison-KGRT2RSK.js} +7 -7
  13. package/dist/{ConnectedNativeDocxComparison-ZXWLLKCZ.js.map → ConnectedNativeDocxComparison-KGRT2RSK.js.map} +1 -1
  14. package/dist/{ConnectedNativeDocxComparison-MIXCSPQP.cjs → ConnectedNativeDocxComparison-NMVGZYYW.cjs} +8 -8
  15. package/dist/{ConnectedNativeDocxComparison-MIXCSPQP.cjs.map → ConnectedNativeDocxComparison-NMVGZYYW.cjs.map} +1 -1
  16. package/dist/{ConnectedNativeDocxEditor-HDI7OBDA.cjs → ConnectedNativeDocxEditor-NZZSG4N7.cjs} +8 -8
  17. package/dist/{ConnectedNativeDocxEditor-HDI7OBDA.cjs.map → ConnectedNativeDocxEditor-NZZSG4N7.cjs.map} +1 -1
  18. package/dist/{ConnectedNativeDocxEditor-IBQ7M3MU.js → ConnectedNativeDocxEditor-WO4MQUEJ.js} +6 -6
  19. package/dist/{ConnectedNativeDocxEditor-IBQ7M3MU.js.map → ConnectedNativeDocxEditor-WO4MQUEJ.js.map} +1 -1
  20. package/dist/{ConnectedStreamedWordArtifact-S64KJPEJ.js → ConnectedStreamedWordArtifact-PETCKJXL.js} +7 -7
  21. package/dist/ConnectedStreamedWordArtifact-PETCKJXL.js.map +1 -0
  22. package/dist/{ConnectedStreamedWordArtifact-V7WFW5EP.cjs → ConnectedStreamedWordArtifact-UIXR3P3H.cjs} +8 -8
  23. package/dist/ConnectedStreamedWordArtifact-UIXR3P3H.cjs.map +1 -0
  24. package/dist/DocumentReviewCard-5U3TGJZA.js +2 -2
  25. package/dist/DocumentReviewCard-VFNMJSK7.cjs +2 -2
  26. package/dist/{WorkspaceTableView-EH5CEB44.js → WorkspaceTableView-LBESYCXW.js} +4 -4
  27. package/dist/{WorkspaceTableView-EH5CEB44.js.map → WorkspaceTableView-LBESYCXW.js.map} +1 -1
  28. package/dist/{WorkspaceTableView-DHMCJRC6.cjs → WorkspaceTableView-OIMBOLG6.cjs} +4 -4
  29. package/dist/{WorkspaceTableView-DHMCJRC6.cjs.map → WorkspaceTableView-OIMBOLG6.cjs.map} +1 -1
  30. package/dist/agents/index.cjs +282 -286
  31. package/dist/agents/index.js +5 -5
  32. package/dist/agents/tasks/ConversationListView.d.ts +0 -2
  33. package/dist/agents/tasks/PersonPill.d.ts +1 -2
  34. package/dist/agents/tasks/TaskTable.d.ts +0 -14
  35. package/dist/agents/tasks/ThreadStatusLine.d.ts +1 -4
  36. package/dist/agents/tasks/UploadTaskList.d.ts +1 -5
  37. package/dist/agents/tasks/WorkflowComposer.d.ts +1 -1
  38. package/dist/agents/tasks/WorkflowsTable.d.ts +3 -4
  39. package/dist/agents/tasks/index.d.ts +0 -2
  40. package/dist/agents/tasks/taskComposerTypes.d.ts +0 -1
  41. package/dist/agents/workflows/WorkflowConfigDialog.d.ts +2 -3
  42. package/dist/agents/workflows/WorkflowRunner.d.ts +3 -7
  43. package/dist/calendar/index.cjs +116 -116
  44. package/dist/calendar/index.js +1 -1
  45. package/dist/calls/index.cjs +1 -1
  46. package/dist/calls/index.js +1 -1
  47. package/dist/chat/index.cjs +1 -1
  48. package/dist/chat/index.js +1 -1
  49. package/dist/{chunk-LKVOHL6C.js → chunk-34DWIXUN.js} +3 -3
  50. package/dist/{chunk-LKVOHL6C.js.map → chunk-34DWIXUN.js.map} +1 -1
  51. package/dist/{chunk-QUZPQWPX.js → chunk-4SXG6ACE.js} +237 -5
  52. package/dist/chunk-4SXG6ACE.js.map +1 -0
  53. package/dist/{chunk-ZSP6QSMG.cjs → chunk-5CKTUHNS.cjs} +4 -4
  54. package/dist/{chunk-ZSP6QSMG.cjs.map → chunk-5CKTUHNS.cjs.map} +1 -1
  55. package/dist/{chunk-EPBFVO4F.cjs → chunk-7TOBKEOV.cjs} +9 -9
  56. package/dist/{chunk-EPBFVO4F.cjs.map → chunk-7TOBKEOV.cjs.map} +1 -1
  57. package/dist/{chunk-XXI3EIEO.cjs → chunk-7ZVL44YM.cjs} +49 -51
  58. package/dist/chunk-7ZVL44YM.cjs.map +1 -0
  59. package/dist/{chunk-35FBVTT6.cjs → chunk-BI6O7OMA.cjs} +32 -14
  60. package/dist/chunk-BI6O7OMA.cjs.map +1 -0
  61. package/dist/{chunk-SNU3AOCW.js → chunk-BPPX3ESB.js} +3 -3
  62. package/dist/{chunk-SNU3AOCW.js.map → chunk-BPPX3ESB.js.map} +1 -1
  63. package/dist/{chunk-MM22MFON.cjs → chunk-CCTNZ25D.cjs} +31 -459
  64. package/dist/chunk-CCTNZ25D.cjs.map +1 -0
  65. package/dist/{chunk-HGFU47TY.js → chunk-D4LZKHIL.js} +3 -3
  66. package/dist/{chunk-HGFU47TY.js.map → chunk-D4LZKHIL.js.map} +1 -1
  67. package/dist/{chunk-NMQVII6H.cjs → chunk-DDUHNTD3.cjs} +4 -4
  68. package/dist/{chunk-NMQVII6H.cjs.map → chunk-DDUHNTD3.cjs.map} +1 -1
  69. package/dist/{chunk-AWVGKHJT.js → chunk-E5RN3LWS.js} +2 -2
  70. package/dist/{chunk-AWVGKHJT.js.map → chunk-E5RN3LWS.js.map} +1 -1
  71. package/dist/{chunk-Z4KXF7WS.cjs → chunk-EG6YBT7G.cjs} +7 -7
  72. package/dist/{chunk-Z4KXF7WS.cjs.map → chunk-EG6YBT7G.cjs.map} +1 -1
  73. package/dist/{chunk-2FRUMQLS.cjs → chunk-EUGCT5MB.cjs} +3 -3
  74. package/dist/{chunk-2FRUMQLS.cjs.map → chunk-EUGCT5MB.cjs.map} +1 -1
  75. package/dist/{chunk-B6QTKCDK.js → chunk-G7GPG5NO.js} +25 -452
  76. package/dist/chunk-G7GPG5NO.js.map +1 -0
  77. package/dist/{chunk-3DQZ7JWL.cjs → chunk-GE45EHTG.cjs} +18 -18
  78. package/dist/{chunk-3DQZ7JWL.cjs.map → chunk-GE45EHTG.cjs.map} +1 -1
  79. package/dist/{chunk-RSVHFZJR.js → chunk-KIDUTH2V.js} +9 -11
  80. package/dist/chunk-KIDUTH2V.js.map +1 -0
  81. package/dist/{chunk-LTPOV3W4.js → chunk-KVNXCL2Y.js} +7 -8
  82. package/dist/chunk-KVNXCL2Y.js.map +1 -0
  83. package/dist/{chunk-W3PSIIMN.cjs → chunk-LM7DVT7C.cjs} +2 -2
  84. package/dist/{chunk-W3PSIIMN.cjs.map → chunk-LM7DVT7C.cjs.map} +1 -1
  85. package/dist/{chunk-IH2WZUTL.cjs → chunk-OYRORWS2.cjs} +12 -13
  86. package/dist/chunk-OYRORWS2.cjs.map +1 -0
  87. package/dist/{chunk-SC3GOSJG.js → chunk-PLUMPQA4.js} +6 -9
  88. package/dist/chunk-PLUMPQA4.js.map +1 -0
  89. package/dist/{chunk-NOBSRGFX.js → chunk-PTBGTGFG.js} +3 -3
  90. package/dist/{chunk-NOBSRGFX.js.map → chunk-PTBGTGFG.js.map} +1 -1
  91. package/dist/{chunk-5TFZFB5U.js → chunk-QQLGNNZI.js} +3 -3
  92. package/dist/{chunk-5TFZFB5U.js.map → chunk-QQLGNNZI.js.map} +1 -1
  93. package/dist/{chunk-CUSOXCBV.cjs → chunk-SU374FEM.cjs} +10 -13
  94. package/dist/chunk-SU374FEM.cjs.map +1 -0
  95. package/dist/{chunk-APXW5XGA.js → chunk-TJJE3XOO.js} +3 -3
  96. package/dist/{chunk-APXW5XGA.js.map → chunk-TJJE3XOO.js.map} +1 -1
  97. package/dist/{chunk-NBX7WWB6.cjs → chunk-VSABGETQ.cjs} +5 -5
  98. package/dist/{chunk-NBX7WWB6.cjs.map → chunk-VSABGETQ.cjs.map} +1 -1
  99. package/dist/{chunk-SBVOYSOO.js → chunk-WH2BIMAZ.js} +3 -3
  100. package/dist/{chunk-SBVOYSOO.js.map → chunk-WH2BIMAZ.js.map} +1 -1
  101. package/dist/{chunk-F73EZQT4.cjs → chunk-WJEJF5NT.cjs} +242 -3
  102. package/dist/chunk-WJEJF5NT.cjs.map +1 -0
  103. package/dist/{chunk-N54OMO6J.js → chunk-WLA3DA62.js} +3 -3
  104. package/dist/{chunk-N54OMO6J.js.map → chunk-WLA3DA62.js.map} +1 -1
  105. package/dist/{chunk-ZDZY6OPL.cjs → chunk-XUEJYHEP.cjs} +3 -3
  106. package/dist/{chunk-ZDZY6OPL.cjs.map → chunk-XUEJYHEP.cjs.map} +1 -1
  107. package/dist/{chunk-P2ZQKJXS.js → chunk-Z6LX4ZGL.js} +31 -13
  108. package/dist/chunk-Z6LX4ZGL.js.map +1 -0
  109. package/dist/connect/docx.cjs +12 -12
  110. package/dist/connect/docx.js +8 -8
  111. package/dist/connect/index.cjs +601 -647
  112. package/dist/connect/index.cjs.map +1 -1
  113. package/dist/connect/index.d.ts +1 -0
  114. package/dist/connect/index.js +202 -249
  115. package/dist/connect/index.js.map +1 -1
  116. package/dist/connect/viewer.cjs +6 -6
  117. package/dist/connect/viewer.js +5 -5
  118. package/dist/connection/ConnectedWorkflowBuilder.d.ts +1 -4
  119. package/dist/connection/ConnectedWorkflowHistory.d.ts +1 -4
  120. package/dist/connection/ConnectedWorkflowRunner.d.ts +3 -4
  121. package/dist/connection/ConnectedWorkflowsTable.d.ts +5 -4
  122. package/dist/connection/facts/ConnectedFactsPage.d.ts +8 -8
  123. package/dist/connection/facts/ConnectedFactsSmartSearch.d.ts +9 -0
  124. package/dist/connection/facts/types.d.ts +1 -6
  125. package/dist/connection/threads-page/ConnectedThreadsPage.d.ts +1 -4
  126. package/dist/connection/viewer/useImageCrop.d.ts +6 -3
  127. package/dist/connection/workflows/ConnectedWorkflowsPage.d.ts +4 -13
  128. package/dist/connection/workflows/support.d.ts +1 -1
  129. package/dist/embed/index.cjs +10 -10
  130. package/dist/embed/index.js +6 -6
  131. package/dist/facts/index.cjs +70 -281
  132. package/dist/facts/index.cjs.map +1 -1
  133. package/dist/facts/index.js +9 -241
  134. package/dist/facts/index.js.map +1 -1
  135. package/dist/files/index.cjs +1 -1
  136. package/dist/files/index.js +1 -1
  137. package/dist/home/index.cjs +31 -31
  138. package/dist/home/index.js +4 -4
  139. package/dist/index.cjs +415 -419
  140. package/dist/index.js +10 -10
  141. package/dist/settings/index.cjs +2 -2
  142. package/dist/settings/index.js +2 -2
  143. package/dist/studio/index.cjs +1 -1
  144. package/dist/studio/index.js +1 -1
  145. package/dist/workflow-canvas/index.cjs +25 -30
  146. package/dist/workflow-canvas/index.cjs.map +1 -1
  147. package/dist/workflow-canvas/index.js +10 -15
  148. package/dist/workflow-canvas/index.js.map +1 -1
  149. package/node_modules/@arbidocs/coedit/package.json +1 -1
  150. package/package.json +5 -5
  151. package/dist/ConnectedStreamedWordArtifact-S64KJPEJ.js.map +0 -1
  152. package/dist/ConnectedStreamedWordArtifact-V7WFW5EP.cjs.map +0 -1
  153. package/dist/agents/tasks/TaskInbox.d.ts +0 -26
  154. package/dist/chunk-35FBVTT6.cjs.map +0 -1
  155. package/dist/chunk-B6QTKCDK.js.map +0 -1
  156. package/dist/chunk-CUSOXCBV.cjs.map +0 -1
  157. package/dist/chunk-F73EZQT4.cjs.map +0 -1
  158. package/dist/chunk-IH2WZUTL.cjs.map +0 -1
  159. package/dist/chunk-LTPOV3W4.js.map +0 -1
  160. package/dist/chunk-MM22MFON.cjs.map +0 -1
  161. package/dist/chunk-P2ZQKJXS.js.map +0 -1
  162. package/dist/chunk-QUZPQWPX.js.map +0 -1
  163. package/dist/chunk-RSVHFZJR.js.map +0 -1
  164. package/dist/chunk-SC3GOSJG.js.map +0 -1
  165. package/dist/chunk-XXI3EIEO.cjs.map +0 -1
@@ -1,29 +1,28 @@
1
1
  "use client";
2
- import { DEFAULT_FACT_COLUMN_LABELS, createFactColumns, FactRowActions } from '../chunk-QUZPQWPX.js';
3
- export { DEFAULT_FACTS_BULK_BAR_LABELS, DEFAULT_FACTS_EMPTY_STATE_LABELS, DEFAULT_FACTS_FIELDS_BUTTON_LABELS, DEFAULT_FACTS_TOOLBAR_LABELS, DEFAULT_FACTS_VIEW_TOGGLE_LABELS, DEFAULT_FACT_COLUMN_LABELS, DEFAULT_FACT_COLUMN_ORDER, DEFAULT_FACT_COMPOSER_LABELS, DEFAULT_FACT_DATE_INPUT_LABELS, DEFAULT_FACT_LABELS_CELL_LABELS, DEFAULT_FACT_ROW_ACTIONS_LABELS, DEFAULT_FACT_SOURCES_ROW_LABELS, DEFAULT_FACT_SOURCE_GROUP_LABELS, DEFAULT_FACT_TIMELINE_LABELS, FactComposer, FactDateInput, FactFieldRow, FactLabelsCell, FactRowActions, FactSourceGroup, FactSourcesRow, FactsBulkBar, FactsCalendar, FactsEmptyState, FactsFieldsButton, FactsGanttPane, FactsLoadError, FactsLoading, FactsToolbar, FactsViewToggle, ISO_DATE_FILTER_PARAMS, createFactColumns, enableFactTableColumnResize, sourceDocCount } from '../chunk-QUZPQWPX.js';
2
+ import { DEFAULT_FACT_COLUMN_LABELS, createFactColumns, FactRowActions } from '../chunk-4SXG6ACE.js';
3
+ export { DEFAULT_FACTS_BULK_BAR_LABELS, DEFAULT_FACTS_EMPTY_STATE_LABELS, DEFAULT_FACTS_FIELDS_BUTTON_LABELS, DEFAULT_FACTS_TOOLBAR_LABELS, DEFAULT_FACTS_VIEW_TOGGLE_LABELS, DEFAULT_FACT_COLUMN_LABELS, DEFAULT_FACT_COLUMN_ORDER, DEFAULT_FACT_COMPOSER_LABELS, DEFAULT_FACT_DATE_INPUT_LABELS, DEFAULT_FACT_LABELS_CELL_LABELS, DEFAULT_FACT_ROW_ACTIONS_LABELS, DEFAULT_FACT_SEARCH_BAR_LABELS, DEFAULT_FACT_SEARCH_RESULT_LABELS, DEFAULT_FACT_SOURCES_ROW_LABELS, DEFAULT_FACT_SOURCE_GROUP_LABELS, DEFAULT_FACT_TIMELINE_LABELS, FactComposer, FactDateInput, FactFieldRow, FactLabelsCell, FactRowActions, FactSearchBar, FactSearchNoMatches, FactSearchPending, FactSearchResult, FactSearchTotals, FactSourceGroup, FactSourcesRow, FactsBulkBar, FactsCalendar, FactsEmptyState, FactsFieldsButton, FactsGanttPane, FactsLoadError, FactsLoading, FactsToolbar, FactsViewToggle, ISO_DATE_FILTER_PARAMS, createFactColumns, enableFactTableColumnResize, sourceDocCount } from '../chunk-4SXG6ACE.js';
4
4
  export { EMPTY_FACT_DATE_FIELDS, buildFactCitations, chronologyFactBodies, chunkIdsOf, citedVersionRef, docIdsOf, factDateFieldsToSpan, factDateSpanToFields, hasChunk, isWholeDoc, parseChronologyDate, toFactCitations, withChunk, withDoc, withoutChunk, withoutDoc } from '../chunk-KGUSKGZE.js';
5
5
  export { DEFAULT_FACT_PASSAGES_LABELS, FactPassageItem, FactSourcesPanel, renderPreviewInline, toPreviewLine } from '../chunk-HFZ45FD3.js';
6
6
  import '../chunk-JJA6GQKH.js';
7
- import { SearchHit } from '../chunk-BFN6CEEN.js';
7
+ import '../chunk-OJIX5NBN.js';
8
+ import '../chunk-BFN6CEEN.js';
8
9
  import '../chunk-4EZVCGRL.js';
9
10
  export { decodeWhitespaceEntities } from '../chunk-AF6RDAJF.js';
10
11
  import '../chunk-NUNKSZKU.js';
11
12
  export { DEFAULT_FILTER_INPUT_LABELS as DEFAULT_FACTS_FILTER_INPUT_LABELS, DEFAULT_FILTER_FIELDS as FACTS_SEARCH_FIELD_OPTIONS, FilterInput as FactsFilterInput } from '../chunk-YU2KUMGE.js';
12
13
  import { GridView } from '../chunk-7F5Z4K5W.js';
13
- import '../chunk-OJIX5NBN.js';
14
14
  import '../chunk-VDXKB4WK.js';
15
- import { initials } from '../chunk-5VYJP6XD.js';
16
15
  import '../chunk-SLSBJRWW.js';
17
16
  import '../chunk-NPLYHR2E.js';
17
+ import { initials } from '../chunk-5VYJP6XD.js';
18
18
  import '../chunk-TJQSL4XV.js';
19
19
  import '../chunk-3VCTVCAX.js';
20
20
  import '../chunk-TX2ZICS7.js';
21
- import { testIdOr } from '../chunk-7F6CBP3Z.js';
21
+ import '../chunk-7F6CBP3Z.js';
22
22
  import '../chunk-VUNV25KB.js';
23
23
  import { useMemo } from 'react';
24
- import { Button, cn } from '@arbidocs/react/ui';
25
- import { jsx, jsxs } from 'react/jsx-runtime';
26
- import { X, Loader2, Search, CheckCircle2, CornerDownLeft, Paperclip, Check } from 'lucide-react';
24
+ import { cn } from '@arbidocs/react/ui';
25
+ import { jsx } from 'react/jsx-runtime';
27
26
 
28
27
  function FactSwitch({ checked, label, onToggle, testId }) {
29
28
  return /* @__PURE__ */ jsx(
@@ -178,238 +177,7 @@ function toFactRow(record) {
178
177
  function toFactRows(records) {
179
178
  return records.map(toFactRow);
180
179
  }
181
- var DEFAULT_FACT_SEARCH_BAR_LABELS = {
182
- search: "Search:",
183
- // An example query rather than an instruction: shows the quoted-phrase syntax.
184
- placeholder: 'e.g. "board meeting" decision on the budget',
185
- clear: "Clear search",
186
- submit: "Search"
187
- };
188
- var DEFAULT_FACT_SEARCH_RESULT_LABELS = {
189
- inChat: "In this chat",
190
- verified: "Verified",
191
- open: "Open"
192
- };
193
- function FactSearchBar({
194
- query,
195
- onQueryChange,
196
- onSubmit,
197
- onClear,
198
- isSearching,
199
- placeholder,
200
- labels,
201
- testIds
202
- }) {
203
- const l = { ...DEFAULT_FACT_SEARCH_BAR_LABELS, ...labels };
204
- return /* @__PURE__ */ jsx("div", { className: "border-t border-border px-6 pb-4 pt-6", "data-slot": "fact-search-bar", children: /* @__PURE__ */ jsxs(
205
- "form",
206
- {
207
- onSubmit: (e) => {
208
- e.preventDefault();
209
- onSubmit();
210
- },
211
- className: "mx-auto flex w-full max-w-2xl items-center gap-3",
212
- children: [
213
- /* @__PURE__ */ jsx(
214
- "label",
215
- {
216
- htmlFor: "facts-smart-search-input",
217
- className: "shrink-0 text-base font-medium text-foreground",
218
- children: l.search
219
- }
220
- ),
221
- /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 items-start gap-2 rounded-lg border border-border bg-background px-3.5 py-2.5 transition-colors focus-within:border-ring focus-within:ring-2 focus-within:ring-ring", children: [
222
- /* @__PURE__ */ jsx(
223
- "textarea",
224
- {
225
- id: "facts-smart-search-input",
226
- rows: 1,
227
- value: query,
228
- onChange: (e) => {
229
- onQueryChange(e.target.value);
230
- e.target.style.height = "auto";
231
- e.target.style.height = `${e.target.scrollHeight}px`;
232
- },
233
- onKeyDown: (e) => {
234
- if (e.key === "Enter" && !e.shiftKey) {
235
- e.preventDefault();
236
- onSubmit();
237
- }
238
- },
239
- placeholder: placeholder ?? l.placeholder,
240
- className: "flex-1 resize-none overflow-hidden border-0 bg-transparent p-0 text-base leading-relaxed text-foreground outline-none placeholder:text-muted-foreground",
241
- "data-testid": testIdOr(testIds?.input, { testId: "facts-smart-search-input" }),
242
- autoFocus: true
243
- }
244
- ),
245
- /* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-1", children: [
246
- query && /* @__PURE__ */ jsx(
247
- Button,
248
- {
249
- type: "button",
250
- variant: "ghost",
251
- size: "icon",
252
- className: "size-7 text-muted-foreground hover:text-foreground pointer-coarse:size-11",
253
- onClick: onClear,
254
- "aria-label": l.clear,
255
- title: l.clear,
256
- "data-testid": testIdOr(testIds?.clear, { testId: "facts-smart-search-clear" }),
257
- children: /* @__PURE__ */ jsx(X, { className: "size-4" })
258
- }
259
- ),
260
- /* @__PURE__ */ jsx(
261
- Button,
262
- {
263
- type: "submit",
264
- size: "icon",
265
- disabled: !query.trim() || isSearching,
266
- className: "size-7 pointer-coarse:size-11",
267
- "data-testid": testIdOr(testIds?.submit, { testId: "facts-smart-search-submit" }),
268
- title: l.submit,
269
- children: isSearching ? /* @__PURE__ */ jsx(Loader2, { className: "size-4 animate-spin" }) : /* @__PURE__ */ jsx(Search, { className: "size-4" })
270
- }
271
- )
272
- ] })
273
- ] })
274
- ]
275
- }
276
- ) });
277
- }
278
- function FactSearchTotals({ children, testId }) {
279
- return /* @__PURE__ */ jsx("div", { className: "px-4 pb-3", children: /* @__PURE__ */ jsx(
280
- "p",
281
- {
282
- className: "font-sans text-base font-semibold tabular-nums text-foreground",
283
- "data-testid": testIdOr(testId, { testId: "facts-smart-search-totals" }),
284
- children
285
- }
286
- ) });
287
- }
288
- function FactSearchPending({ children }) {
289
- return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-center gap-2 py-16 text-sm text-muted-foreground", children: [
290
- /* @__PURE__ */ jsx(Loader2, { className: "size-4 animate-spin" }),
291
- " ",
292
- children
293
- ] });
294
- }
295
- function FactSearchNoMatches({
296
- children,
297
- testId
298
- }) {
299
- return /* @__PURE__ */ jsx(
300
- "div",
301
- {
302
- className: "py-16 text-center text-sm text-muted-foreground",
303
- "data-testid": testIdOr(testId, { testId: "facts-smart-search-empty" }),
304
- children
305
- }
306
- );
307
- }
308
- function FactSearchResult({
309
- id,
310
- rank,
311
- text,
312
- terms,
313
- renderSnippet,
314
- labels,
315
- isInChat,
316
- isVerified,
317
- isSelected,
318
- onOpen,
319
- uiLabels: labelOverrides,
320
- testIds,
321
- href
322
- }) {
323
- const l = { ...DEFAULT_FACT_SEARCH_RESULT_LABELS, ...labelOverrides };
324
- return /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2", "data-slot": "fact-search-hit", children: [
325
- /* @__PURE__ */ jsx(
326
- "span",
327
- {
328
- className: "w-5 shrink-0 pt-3 text-right text-xs tabular-nums text-muted-foreground",
329
- "aria-hidden": "true",
330
- children: rank
331
- }
332
- ),
333
- /* @__PURE__ */ jsx(
334
- SearchHit,
335
- {
336
- className: "min-w-0 flex-1",
337
- testId: testIdOr(testIds?.hit?.(id), { testId: `facts-smart-search-hit-${id}` }),
338
- href,
339
- selected: isSelected,
340
- onClick: onOpen,
341
- content: text,
342
- terms,
343
- renderSnippet,
344
- header: /* @__PURE__ */ jsxs(
345
- "div",
346
- {
347
- className: "flex min-w-0 flex-1 flex-wrap items-center gap-1 text-xs text-muted-foreground",
348
- "data-testid": testIdOr(testIds?.labels?.(id), {
349
- testId: `facts-smart-search-hit-labels-${id}`
350
- }),
351
- children: [
352
- isInChat && /* @__PURE__ */ jsxs(
353
- "span",
354
- {
355
- className: "inline-flex items-center gap-1 pr-1",
356
- "data-testid": `facts-smart-search-hit-in-chat-${id}`,
357
- children: [
358
- /* @__PURE__ */ jsx(Paperclip, { className: "size-3" }),
359
- " ",
360
- l.inChat
361
- ]
362
- }
363
- ),
364
- labels.map((tag) => /* @__PURE__ */ jsxs(
365
- "span",
366
- {
367
- className: "inline-flex shrink-0 items-center gap-1 rounded border px-1.5 py-0.5 text-xs font-medium text-foreground",
368
- title: tag.name,
369
- style: { borderColor: tag.color },
370
- children: [
371
- /* @__PURE__ */ jsx(
372
- "span",
373
- {
374
- className: "flex size-3.5 shrink-0 items-center justify-center rounded",
375
- style: { backgroundColor: tag.color },
376
- children: /* @__PURE__ */ jsx(Check, { className: "size-2.5 text-white", strokeWidth: 3 })
377
- }
378
- ),
379
- /* @__PURE__ */ jsx("span", { className: "max-w-[120px] truncate", children: tag.name })
380
- ]
381
- },
382
- tag.id
383
- ))
384
- ]
385
- }
386
- ),
387
- headerRight: /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-3 text-xs text-muted-foreground", children: [
388
- isVerified && /* @__PURE__ */ jsxs(
389
- "span",
390
- {
391
- className: "inline-flex shrink-0 items-center gap-1 text-green-text",
392
- "data-testid": testIdOr(testIds?.verified?.(id), {
393
- testId: `facts-smart-search-hit-verified-${id}`
394
- }),
395
- children: [
396
- /* @__PURE__ */ jsx(CheckCircle2, { className: "size-3" }),
397
- " ",
398
- l.verified
399
- ]
400
- }
401
- ),
402
- /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1", children: [
403
- l.open,
404
- " ",
405
- /* @__PURE__ */ jsx(CornerDownLeft, { className: "size-3" })
406
- ] })
407
- ] })
408
- }
409
- )
410
- ] });
411
- }
412
180
 
413
- export { DEFAULT_FACT_SEARCH_BAR_LABELS, DEFAULT_FACT_SEARCH_RESULT_LABELS, FactSearchBar, FactSearchNoMatches, FactSearchPending, FactSearchResult, FactSearchTotals, FactsTable, toFactRow, toFactRows };
181
+ export { FactsTable, toFactRow, toFactRows };
414
182
  //# sourceMappingURL=index.js.map
415
183
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/facts/FactsTable.tsx","../../src/facts/fact-row.ts","../../src/facts/FactSearchParts.tsx"],"names":["jsx"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * FactsTable: the default facts grid. `createFactColumns` wired to `GridView` with ready-made\n * cells (in-chat, verified and shared switches, label chips, creator initials, row menu), so a host\n * only supplies rows and handlers. Hosts that need custom cells call `createFactColumns` with\n * their own slots and render `GridView` themselves.\n */\nimport { useMemo, type ReactNode } from 'react'\nimport type { ColDef, ICellRendererParams } from 'ag-grid-community'\nimport { cn } from '@arbidocs/react/ui'\nimport { GridView, type GridViewProps } from '../files/GridView'\nimport { initials } from '../lib/format'\nimport { FactRowActions } from './FactRowActions'\nimport {\n DEFAULT_FACT_COLUMN_LABELS,\n createFactColumns,\n type FactColumnLabels,\n type FactRowView,\n} from './factColumns'\n\nexport interface FactsTableProps<T extends FactRowView> {\n facts: T[]\n /** With `onToggleInChat`, shows the In chat column (whether a fact is in the host's chat). */\n isInChat?: (fact: T) => boolean\n onToggleInChat?: (fact: T) => void\n onToggleConfirmed: (fact: T) => void\n onToggleShared: (fact: T) => void\n /** The row menu appears when both `onEdit` and `onDelete` are provided. */\n onEdit?: (fact: T) => void\n onDelete?: (fact: T) => void\n /** Row click (opens the fact). */\n onOpen?: (fact: T) => void\n /** Display name of the fact's creator (sorting, filtering and the initials chip). */\n getCreatorName?: (fact: T) => string\n /** Friendly display of an ISO timestamp. Defaults to the locale date. */\n formatDate?: (iso: string) => string\n columnLabels?: Partial<FactColumnLabels>\n isLoading?: boolean\n /** Saved column state key (AG Grid persists by it). */\n gridId?: string\n height?: GridViewProps<T>['height']\n rowHeight?: number\n /** Escape hatch for any other `GridView` prop. */\n gridProps?: Partial<Omit<GridViewProps<T>, 'items' | 'columnDefs' | 'getItemId'>>\n testId?: string\n}\n\ninterface FactSwitchProps {\n checked: boolean\n label: string\n onToggle: () => void\n testId: string\n}\n\nfunction FactSwitch({ checked, label, onToggle, testId }: FactSwitchProps) {\n return (\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={checked}\n aria-label={label}\n onClick={onToggle}\n data-testid={testId}\n className={cn(\n 'inline-flex h-5 w-9 items-center rounded-full p-0.5 transition-colors',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n checked ? 'bg-green-solid' : 'bg-muted-foreground/30'\n )}\n >\n <span\n className={cn(\n 'size-4 rounded-full bg-background transition-transform',\n checked && 'translate-x-4'\n )}\n />\n </button>\n )\n}\n\nconst defaultFormatDate = (iso: string): string => {\n const d = new Date(iso)\n return Number.isNaN(d.getTime()) ? iso : d.toLocaleDateString()\n}\n\nconst EMPTY_STATE = { title: 'No facts yet' }\n\n/** The default facts table: columns, cells and the grid in one component. */\nexport function FactsTable<T extends FactRowView>({\n facts,\n isInChat,\n onToggleInChat,\n onToggleConfirmed,\n onToggleShared,\n onEdit,\n onDelete,\n onOpen,\n getCreatorName,\n formatDate = defaultFormatDate,\n columnLabels,\n isLoading,\n gridId = 'facts-table-v1',\n height = '100%',\n rowHeight = 52,\n gridProps,\n testId = 'facts-table',\n}: FactsTableProps<T>) {\n const l = { ...DEFAULT_FACT_COLUMN_LABELS, ...columnLabels }\n\n const columnDefs = useMemo<ColDef<T>[]>(\n () =>\n createFactColumns<T>({\n isInChat,\n onToggleInChat,\n renderHeader: (params) => (\n <span className=\"text-[12.5px] font-medium\">{params.displayName}</span>\n ),\n renderRowActions: (fact) =>\n onEdit && onDelete ? (\n <FactRowActions onEdit={() => onEdit(fact)} onDelete={() => onDelete(fact)} />\n ) : null,\n renderLabels: (fact): ReactNode => (\n <span className=\"flex flex-wrap items-center gap-1\">\n {(fact.tags ?? []).map((tag) => (\n <span\n key={tag.name}\n className=\"rounded-full bg-muted px-2 py-px text-xs text-muted-foreground\"\n >\n {tag.name}\n </span>\n ))}\n </span>\n ),\n renderVerified: (fact) => (\n <FactSwitch\n checked={fact.confirmed}\n label={l.verified}\n onToggle={() => onToggleConfirmed(fact)}\n testId={`facts-grid-confirmed-${fact.external_id}`}\n />\n ),\n renderShared: (fact) => (\n <FactSwitch\n checked={fact.shared}\n label={l.shared}\n onToggle={() => onToggleShared(fact)}\n testId={`facts-grid-shared-${fact.external_id}`}\n />\n ),\n renderCreator: (fact, _params: ICellRendererParams<T>) => {\n const name = getCreatorName?.(fact) ?? ''\n return name ? (\n <span\n title={name}\n className=\"inline-flex size-6 items-center justify-center rounded-full bg-muted text-[10px] font-medium text-muted-foreground\"\n >\n {initials(name)}\n </span>\n ) : null\n },\n getCreatorName: (params) => (params.data ? (getCreatorName?.(params.data) ?? '') : ''),\n formatDate,\n labels: columnLabels,\n }),\n [\n isInChat,\n onToggleInChat,\n onToggleConfirmed,\n onToggleShared,\n onEdit,\n onDelete,\n getCreatorName,\n formatDate,\n columnLabels,\n l.verified,\n l.shared,\n ]\n )\n\n return (\n <GridView<T>\n testId={testId}\n items={facts}\n columnDefs={columnDefs}\n getItemId={(fact) => fact.external_id}\n onRowClick={onOpen}\n isLoading={isLoading}\n emptyState={EMPTY_STATE}\n gridId={gridId}\n height={height}\n rowHeight={rowHeight}\n {...gridProps}\n gridOptions={{ suppressClickEdit: true, ...gridProps?.gridOptions }}\n />\n )\n}\n","import type { FactRowView } from './factColumns'\n\n/**\n * A fact as a host with plain records usually holds it: camelCase, optional flags, tags as\n * strings. `toFactRow` maps it to the `FactRowView` that `FactsTable` and `createFactColumns`\n * read, so a host without the SDK type needs no adapter of its own.\n */\nexport interface PlainFactRecord {\n id: string\n text: string\n confirmed?: boolean\n shared?: boolean\n /** ISO date (or date-time) the fact starts. */\n dateStart?: string | null\n dateEnd?: string | null\n timezone?: string | null\n tags?: Array<string | { name: string }> | null\n /** Passages that support the fact; only their count is shown. */\n citations?: unknown[] | null\n createdBy?: string | null\n createdAt?: string | null\n updatedAt?: string | null\n}\n\n/** The row plus the record it came from, so callbacks can hand the host its own object back. */\nexport type PlainFactRow<T extends PlainFactRecord> = FactRowView & { record: T }\n\n/** Map one plain record to a grid row. Missing flags are `false`, missing lists are empty. */\nexport function toFactRow<T extends PlainFactRecord>(record: T): PlainFactRow<T> {\n return {\n external_id: record.id,\n text: record.text,\n confirmed: record.confirmed ?? false,\n shared: record.shared ?? false,\n date_start: record.dateStart ?? null,\n date_end: record.dateEnd ?? null,\n timezone: record.timezone ?? null,\n tags: (record.tags ?? []).map((t) => (typeof t === 'string' ? { name: t } : t)),\n citations: record.citations ?? [],\n created_by_ext_id: record.createdBy ?? null,\n created_at: record.createdAt ?? null,\n updated_at: record.updatedAt ?? null,\n record,\n }\n}\n\nexport function toFactRows<T extends PlainFactRecord>(records: T[]): PlainFactRow<T>[] {\n return records.map(toFactRow)\n}\n","import type { ReactNode } from 'react'\nimport { Check, CheckCircle2, CornerDownLeft, Loader2, Paperclip, Search, X } from 'lucide-react'\nimport { Button } from '@arbidocs/react/ui'\nimport { SearchHit } from '../retrieval/SearchHit'\nimport { testIdOr } from '../chat/test-id'\n\nexport interface FactSearchBarLabels {\n search: string\n placeholder: string\n clear: string\n submit: string\n}\n\nexport const DEFAULT_FACT_SEARCH_BAR_LABELS: FactSearchBarLabels = {\n search: 'Search:',\n // An example query rather than an instruction: shows the quoted-phrase syntax.\n placeholder: 'e.g. \"board meeting\" decision on the budget',\n clear: 'Clear search',\n submit: 'Search',\n}\n\nexport interface FactSearchBarTestIds {\n input: string\n clear: string\n submit: string\n}\n\nexport interface FactSearchResultLabels {\n inChat: string\n verified: string\n open: string\n}\n\nexport const DEFAULT_FACT_SEARCH_RESULT_LABELS: FactSearchResultLabels = {\n inChat: 'In this chat',\n verified: 'Verified',\n open: 'Open',\n}\n\nexport interface FactSearchResultTestIds {\n hit: (id: string) => string\n labels: (id: string) => string\n verified: (id: string) => string\n}\n\nexport interface FactSearchBarProps {\n query: string\n onQueryChange: (query: string) => void\n onSubmit: () => void\n onClear: () => void\n isSearching: boolean\n /** Wins over `labels.placeholder`. */\n placeholder?: string\n labels?: Partial<FactSearchBarLabels>\n testIds?: Partial<FactSearchBarTestIds>\n}\n\n/**\n * The facts Smart Search bar: the same bordered, auto-growing box as the Files Smart Search.\n * Enter searches; Shift+Enter breaks a line.\n */\nexport function FactSearchBar({\n query,\n onQueryChange,\n onSubmit,\n onClear,\n isSearching,\n placeholder,\n labels,\n testIds,\n}: FactSearchBarProps) {\n const l = { ...DEFAULT_FACT_SEARCH_BAR_LABELS, ...labels }\n return (\n <div className=\"border-t border-border px-6 pb-4 pt-6\" data-slot=\"fact-search-bar\">\n <form\n onSubmit={(e) => {\n e.preventDefault()\n onSubmit()\n }}\n className=\"mx-auto flex w-full max-w-2xl items-center gap-3\"\n >\n <label\n htmlFor=\"facts-smart-search-input\"\n className=\"shrink-0 text-base font-medium text-foreground\"\n >\n {l.search}\n </label>\n <div className=\"flex min-w-0 flex-1 items-start gap-2 rounded-lg border border-border bg-background px-3.5 py-2.5 transition-colors focus-within:border-ring focus-within:ring-2 focus-within:ring-ring\">\n <textarea\n id=\"facts-smart-search-input\"\n rows={1}\n value={query}\n onChange={(e) => {\n onQueryChange(e.target.value)\n e.target.style.height = 'auto'\n e.target.style.height = `${e.target.scrollHeight}px`\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault()\n onSubmit()\n }\n }}\n placeholder={placeholder ?? l.placeholder}\n className=\"flex-1 resize-none overflow-hidden border-0 bg-transparent p-0 text-base leading-relaxed text-foreground outline-none placeholder:text-muted-foreground\"\n data-testid={testIdOr(testIds?.input, { testId: 'facts-smart-search-input' })}\n autoFocus\n />\n <div className=\"flex shrink-0 items-center gap-1\">\n {query && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-7 text-muted-foreground hover:text-foreground pointer-coarse:size-11\"\n onClick={onClear}\n aria-label={l.clear}\n title={l.clear}\n data-testid={testIdOr(testIds?.clear, { testId: 'facts-smart-search-clear' })}\n >\n <X className=\"size-4\" />\n </Button>\n )}\n <Button\n type=\"submit\"\n size=\"icon\"\n disabled={!query.trim() || isSearching}\n className=\"size-7 pointer-coarse:size-11\"\n data-testid={testIdOr(testIds?.submit, { testId: 'facts-smart-search-submit' })}\n title={l.submit}\n >\n {isSearching ? (\n <Loader2 className=\"size-4 animate-spin\" />\n ) : (\n <Search className=\"size-4\" />\n )}\n </Button>\n </div>\n </div>\n </form>\n </div>\n )\n}\n\n/** Totals headline pinned between the search bar and the scrolling results. */\nexport function FactSearchTotals({ children, testId }: { children: ReactNode; testId?: string }) {\n return (\n <div className=\"px-4 pb-3\">\n <p\n className=\"font-sans text-base font-semibold tabular-nums text-foreground\"\n data-testid={testIdOr(testId, { testId: 'facts-smart-search-totals' })}\n >\n {children}\n </p>\n </div>\n )\n}\n\n/** \"Searching facts…\" line. */\nexport function FactSearchPending({ children }: { children: ReactNode }) {\n return (\n <div className=\"flex items-center justify-center gap-2 py-16 text-sm text-muted-foreground\">\n <Loader2 className=\"size-4 animate-spin\" /> {children}\n </div>\n )\n}\n\n/** No-matches message. */\nexport function FactSearchNoMatches({\n children,\n testId,\n}: {\n children: ReactNode\n testId?: string\n}) {\n return (\n <div\n className=\"py-16 text-center text-sm text-muted-foreground\"\n data-testid={testIdOr(testId, { testId: 'facts-smart-search-empty' })}\n >\n {children}\n </div>\n )\n}\n\nexport interface FactSearchResultLabel {\n id: string\n name: string\n color: string\n}\n\nexport interface FactSearchResultProps {\n /** Fact id: keys the test ids. */\n id: string\n /** 1-based rank, shown outside the card (it numbers the results, it is not part of the hit). */\n rank: number\n text: string\n terms: string[]\n renderSnippet: (content: string, terms: string[]) => ReactNode\n labels: FactSearchResultLabel[]\n /** The fact is in the host's current chat. */\n isInChat?: boolean\n isVerified?: boolean\n /** The fact open in the composer. */\n isSelected?: boolean\n onOpen: () => void\n uiLabels?: Partial<FactSearchResultLabels>\n testIds?: Partial<FactSearchResultTestIds>\n /** Destination of the fact; the card stays a click target (see SearchHit `href`). */\n href?: string\n}\n\n/** One facts search result: rank, highlighted text, labels (and In this chat) and the Verified mark. */\nexport function FactSearchResult({\n id,\n rank,\n text,\n terms,\n renderSnippet,\n labels,\n isInChat,\n isVerified,\n isSelected,\n onOpen,\n uiLabels: labelOverrides,\n testIds,\n href,\n}: FactSearchResultProps) {\n const l = { ...DEFAULT_FACT_SEARCH_RESULT_LABELS, ...labelOverrides }\n return (\n <div className=\"flex items-start gap-2\" data-slot=\"fact-search-hit\">\n <span\n className=\"w-5 shrink-0 pt-3 text-right text-xs tabular-nums text-muted-foreground\"\n aria-hidden=\"true\"\n >\n {rank}\n </span>\n <SearchHit\n className=\"min-w-0 flex-1\"\n testId={testIdOr(testIds?.hit?.(id), { testId: `facts-smart-search-hit-${id}` })}\n href={href}\n selected={isSelected}\n onClick={onOpen}\n content={text}\n terms={terms}\n renderSnippet={renderSnippet}\n header={\n <div\n className=\"flex min-w-0 flex-1 flex-wrap items-center gap-1 text-xs text-muted-foreground\"\n data-testid={testIdOr(testIds?.labels?.(id), {\n testId: `facts-smart-search-hit-labels-${id}`,\n })}\n >\n {isInChat && (\n <span\n className=\"inline-flex items-center gap-1 pr-1\"\n data-testid={`facts-smart-search-hit-in-chat-${id}`}\n >\n <Paperclip className=\"size-3\" /> {l.inChat}\n </span>\n )}\n {labels.map((tag) => (\n <span\n key={tag.id}\n className=\"inline-flex shrink-0 items-center gap-1 rounded border px-1.5 py-0.5 text-xs font-medium text-foreground\"\n title={tag.name}\n style={{ borderColor: tag.color }}\n >\n <span\n className=\"flex size-3.5 shrink-0 items-center justify-center rounded\"\n style={{ backgroundColor: tag.color }}\n >\n <Check className=\"size-2.5 text-white\" strokeWidth={3} />\n </span>\n <span className=\"max-w-[120px] truncate\">{tag.name}</span>\n </span>\n ))}\n </div>\n }\n headerRight={\n <span className=\"flex items-center gap-3 text-xs text-muted-foreground\">\n {isVerified && (\n <span\n className=\"inline-flex shrink-0 items-center gap-1 text-green-text\"\n data-testid={testIdOr(testIds?.verified?.(id), {\n testId: `facts-smart-search-hit-verified-${id}`,\n })}\n >\n <CheckCircle2 className=\"size-3\" /> {l.verified}\n </span>\n )}\n <span className=\"inline-flex items-center gap-1\">\n {l.open} <CornerDownLeft className=\"size-3\" />\n </span>\n </span>\n }\n />\n </div>\n )\n}\n"]}
1
+ {"version":3,"sources":["../../src/facts/FactsTable.tsx","../../src/facts/fact-row.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * FactsTable: the default facts grid. `createFactColumns` wired to `GridView` with ready-made\n * cells (in-chat, verified and shared switches, label chips, creator initials, row menu), so a host\n * only supplies rows and handlers. Hosts that need custom cells call `createFactColumns` with\n * their own slots and render `GridView` themselves.\n */\nimport { useMemo, type ReactNode } from 'react'\nimport type { ColDef, ICellRendererParams } from 'ag-grid-community'\nimport { cn } from '@arbidocs/react/ui'\nimport { GridView, type GridViewProps } from '../files/GridView'\nimport { initials } from '../lib/format'\nimport { FactRowActions } from './FactRowActions'\nimport {\n DEFAULT_FACT_COLUMN_LABELS,\n createFactColumns,\n type FactColumnLabels,\n type FactRowView,\n} from './factColumns'\n\nexport interface FactsTableProps<T extends FactRowView> {\n facts: T[]\n /** With `onToggleInChat`, shows the In chat column (whether a fact is in the host's chat). */\n isInChat?: (fact: T) => boolean\n onToggleInChat?: (fact: T) => void\n onToggleConfirmed: (fact: T) => void\n onToggleShared: (fact: T) => void\n /** The row menu appears when both `onEdit` and `onDelete` are provided. */\n onEdit?: (fact: T) => void\n onDelete?: (fact: T) => void\n /** Row click (opens the fact). */\n onOpen?: (fact: T) => void\n /** Display name of the fact's creator (sorting, filtering and the initials chip). */\n getCreatorName?: (fact: T) => string\n /** Friendly display of an ISO timestamp. Defaults to the locale date. */\n formatDate?: (iso: string) => string\n columnLabels?: Partial<FactColumnLabels>\n isLoading?: boolean\n /** Saved column state key (AG Grid persists by it). */\n gridId?: string\n height?: GridViewProps<T>['height']\n rowHeight?: number\n /** Escape hatch for any other `GridView` prop. */\n gridProps?: Partial<Omit<GridViewProps<T>, 'items' | 'columnDefs' | 'getItemId'>>\n testId?: string\n}\n\ninterface FactSwitchProps {\n checked: boolean\n label: string\n onToggle: () => void\n testId: string\n}\n\nfunction FactSwitch({ checked, label, onToggle, testId }: FactSwitchProps) {\n return (\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={checked}\n aria-label={label}\n onClick={onToggle}\n data-testid={testId}\n className={cn(\n 'inline-flex h-5 w-9 items-center rounded-full p-0.5 transition-colors',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n checked ? 'bg-green-solid' : 'bg-muted-foreground/30'\n )}\n >\n <span\n className={cn(\n 'size-4 rounded-full bg-background transition-transform',\n checked && 'translate-x-4'\n )}\n />\n </button>\n )\n}\n\nconst defaultFormatDate = (iso: string): string => {\n const d = new Date(iso)\n return Number.isNaN(d.getTime()) ? iso : d.toLocaleDateString()\n}\n\nconst EMPTY_STATE = { title: 'No facts yet' }\n\n/** The default facts table: columns, cells and the grid in one component. */\nexport function FactsTable<T extends FactRowView>({\n facts,\n isInChat,\n onToggleInChat,\n onToggleConfirmed,\n onToggleShared,\n onEdit,\n onDelete,\n onOpen,\n getCreatorName,\n formatDate = defaultFormatDate,\n columnLabels,\n isLoading,\n gridId = 'facts-table-v1',\n height = '100%',\n rowHeight = 52,\n gridProps,\n testId = 'facts-table',\n}: FactsTableProps<T>) {\n const l = { ...DEFAULT_FACT_COLUMN_LABELS, ...columnLabels }\n\n const columnDefs = useMemo<ColDef<T>[]>(\n () =>\n createFactColumns<T>({\n isInChat,\n onToggleInChat,\n renderHeader: (params) => (\n <span className=\"text-[12.5px] font-medium\">{params.displayName}</span>\n ),\n renderRowActions: (fact) =>\n onEdit && onDelete ? (\n <FactRowActions onEdit={() => onEdit(fact)} onDelete={() => onDelete(fact)} />\n ) : null,\n renderLabels: (fact): ReactNode => (\n <span className=\"flex flex-wrap items-center gap-1\">\n {(fact.tags ?? []).map((tag) => (\n <span\n key={tag.name}\n className=\"rounded-full bg-muted px-2 py-px text-xs text-muted-foreground\"\n >\n {tag.name}\n </span>\n ))}\n </span>\n ),\n renderVerified: (fact) => (\n <FactSwitch\n checked={fact.confirmed}\n label={l.verified}\n onToggle={() => onToggleConfirmed(fact)}\n testId={`facts-grid-confirmed-${fact.external_id}`}\n />\n ),\n renderShared: (fact) => (\n <FactSwitch\n checked={fact.shared}\n label={l.shared}\n onToggle={() => onToggleShared(fact)}\n testId={`facts-grid-shared-${fact.external_id}`}\n />\n ),\n renderCreator: (fact, _params: ICellRendererParams<T>) => {\n const name = getCreatorName?.(fact) ?? ''\n return name ? (\n <span\n title={name}\n className=\"inline-flex size-6 items-center justify-center rounded-full bg-muted text-[10px] font-medium text-muted-foreground\"\n >\n {initials(name)}\n </span>\n ) : null\n },\n getCreatorName: (params) => (params.data ? (getCreatorName?.(params.data) ?? '') : ''),\n formatDate,\n labels: columnLabels,\n }),\n [\n isInChat,\n onToggleInChat,\n onToggleConfirmed,\n onToggleShared,\n onEdit,\n onDelete,\n getCreatorName,\n formatDate,\n columnLabels,\n l.verified,\n l.shared,\n ]\n )\n\n return (\n <GridView<T>\n testId={testId}\n items={facts}\n columnDefs={columnDefs}\n getItemId={(fact) => fact.external_id}\n onRowClick={onOpen}\n isLoading={isLoading}\n emptyState={EMPTY_STATE}\n gridId={gridId}\n height={height}\n rowHeight={rowHeight}\n {...gridProps}\n gridOptions={{ suppressClickEdit: true, ...gridProps?.gridOptions }}\n />\n )\n}\n","import type { FactRowView } from './factColumns'\n\n/**\n * A fact as a host with plain records usually holds it: camelCase, optional flags, tags as\n * strings. `toFactRow` maps it to the `FactRowView` that `FactsTable` and `createFactColumns`\n * read, so a host without the SDK type needs no adapter of its own.\n */\nexport interface PlainFactRecord {\n id: string\n text: string\n confirmed?: boolean\n shared?: boolean\n /** ISO date (or date-time) the fact starts. */\n dateStart?: string | null\n dateEnd?: string | null\n timezone?: string | null\n tags?: Array<string | { name: string }> | null\n /** Passages that support the fact; only their count is shown. */\n citations?: unknown[] | null\n createdBy?: string | null\n createdAt?: string | null\n updatedAt?: string | null\n}\n\n/** The row plus the record it came from, so callbacks can hand the host its own object back. */\nexport type PlainFactRow<T extends PlainFactRecord> = FactRowView & { record: T }\n\n/** Map one plain record to a grid row. Missing flags are `false`, missing lists are empty. */\nexport function toFactRow<T extends PlainFactRecord>(record: T): PlainFactRow<T> {\n return {\n external_id: record.id,\n text: record.text,\n confirmed: record.confirmed ?? false,\n shared: record.shared ?? false,\n date_start: record.dateStart ?? null,\n date_end: record.dateEnd ?? null,\n timezone: record.timezone ?? null,\n tags: (record.tags ?? []).map((t) => (typeof t === 'string' ? { name: t } : t)),\n citations: record.citations ?? [],\n created_by_ext_id: record.createdBy ?? null,\n created_at: record.createdAt ?? null,\n updated_at: record.updatedAt ?? null,\n record,\n }\n}\n\nexport function toFactRows<T extends PlainFactRecord>(records: T[]): PlainFactRow<T>[] {\n return records.map(toFactRow)\n}\n"]}
@@ -14,9 +14,9 @@ require('../chunk-2EI7NCUA.cjs');
14
14
  require('../chunk-2UYT7MIX.cjs');
15
15
  var chunkLKK52DEY_cjs = require('../chunk-LKK52DEY.cjs');
16
16
  require('../chunk-32HW2Q33.cjs');
17
- require('../chunk-UFEXJIEY.cjs');
18
17
  require('../chunk-FX3K6LNZ.cjs');
19
18
  require('../chunk-PPCATBOY.cjs');
19
+ require('../chunk-UFEXJIEY.cjs');
20
20
  require('../chunk-T6GRWWRY.cjs');
21
21
  require('../chunk-GMM3RBIB.cjs');
22
22
  require('../chunk-ULWRNGGE.cjs');
@@ -12,9 +12,9 @@ import '../chunk-YU2KUMGE.js';
12
12
  import '../chunk-ELT2V4NB.js';
13
13
  export { GridView } from '../chunk-7F5Z4K5W.js';
14
14
  import '../chunk-AUS3KBHJ.js';
15
- import '../chunk-5VYJP6XD.js';
16
15
  import '../chunk-SLSBJRWW.js';
17
16
  import '../chunk-NPLYHR2E.js';
17
+ import '../chunk-5VYJP6XD.js';
18
18
  import '../chunk-TJQSL4XV.js';
19
19
  import '../chunk-3VCTVCAX.js';
20
20
  import '../chunk-TX2ZICS7.js';
@@ -1,15 +1,15 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkZ4KXF7WS_cjs = require('../chunk-Z4KXF7WS.cjs');
4
+ var chunkEG6YBT7G_cjs = require('../chunk-EG6YBT7G.cjs');
5
5
  var chunkOU3RGQFX_cjs = require('../chunk-OU3RGQFX.cjs');
6
6
  var chunkREH7PX3N_cjs = require('../chunk-REH7PX3N.cjs');
7
7
  var chunkH32DV7XS_cjs = require('../chunk-H32DV7XS.cjs');
8
8
  require('../chunk-PCB2BPN3.cjs');
9
- var chunkZDZY6OPL_cjs = require('../chunk-ZDZY6OPL.cjs');
9
+ var chunkXUEJYHEP_cjs = require('../chunk-XUEJYHEP.cjs');
10
10
  require('../chunk-2UYT7MIX.cjs');
11
- require('../chunk-UFEXJIEY.cjs');
12
11
  require('../chunk-PPCATBOY.cjs');
12
+ require('../chunk-UFEXJIEY.cjs');
13
13
  require('../chunk-T6GRWWRY.cjs');
14
14
  require('../chunk-GMM3RBIB.cjs');
15
15
  require('../chunk-ULWRNGGE.cjs');
@@ -71,7 +71,7 @@ function ActionMenuDialog({
71
71
  className: "sm:max-w-lg",
72
72
  "data-testid": chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "action-menu-dialog" }),
73
73
  children: [
74
- /* @__PURE__ */ jsxRuntime.jsx(chunkZDZY6OPL_cjs.QuickActionDialogHeader, { icon, title, description }),
74
+ /* @__PURE__ */ jsxRuntime.jsx(chunkXUEJYHEP_cjs.QuickActionDialogHeader, { icon, title, description }),
75
75
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-3 pt-1", role: "menu", "aria-label": title, children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(
76
76
  "button",
77
77
  {
@@ -211,67 +211,67 @@ function CardHeaderBar({
211
211
 
212
212
  Object.defineProperty(exports, "CreateTile", {
213
213
  enumerable: true,
214
- get: function () { return chunkZ4KXF7WS_cjs.CreateTile; }
214
+ get: function () { return chunkEG6YBT7G_cjs.CreateTile; }
215
215
  });
216
216
  Object.defineProperty(exports, "DASHBOARD_QUIET_ACTION_CLASS", {
217
217
  enumerable: true,
218
- get: function () { return chunkZ4KXF7WS_cjs.DASHBOARD_QUIET_ACTION_CLASS; }
218
+ get: function () { return chunkEG6YBT7G_cjs.DASHBOARD_QUIET_ACTION_CLASS; }
219
219
  });
220
220
  Object.defineProperty(exports, "DEFAULT_GETTING_STARTED_STRIP_LABELS", {
221
221
  enumerable: true,
222
- get: function () { return chunkZ4KXF7WS_cjs.DEFAULT_GETTING_STARTED_STRIP_LABELS; }
222
+ get: function () { return chunkEG6YBT7G_cjs.DEFAULT_GETTING_STARTED_STRIP_LABELS; }
223
223
  });
224
224
  Object.defineProperty(exports, "DashboardAction", {
225
225
  enumerable: true,
226
- get: function () { return chunkZ4KXF7WS_cjs.DashboardAction; }
226
+ get: function () { return chunkEG6YBT7G_cjs.DashboardAction; }
227
227
  });
228
228
  Object.defineProperty(exports, "DashboardBand", {
229
229
  enumerable: true,
230
- get: function () { return chunkZ4KXF7WS_cjs.DashboardBand; }
230
+ get: function () { return chunkEG6YBT7G_cjs.DashboardBand; }
231
231
  });
232
232
  Object.defineProperty(exports, "DashboardColumns", {
233
233
  enumerable: true,
234
- get: function () { return chunkZ4KXF7WS_cjs.DashboardColumns; }
234
+ get: function () { return chunkEG6YBT7G_cjs.DashboardColumns; }
235
235
  });
236
236
  Object.defineProperty(exports, "DashboardRoot", {
237
237
  enumerable: true,
238
- get: function () { return chunkZ4KXF7WS_cjs.DashboardRoot; }
238
+ get: function () { return chunkEG6YBT7G_cjs.DashboardRoot; }
239
239
  });
240
240
  Object.defineProperty(exports, "FactMark", {
241
241
  enumerable: true,
242
- get: function () { return chunkZ4KXF7WS_cjs.FactMark; }
242
+ get: function () { return chunkEG6YBT7G_cjs.FactMark; }
243
243
  });
244
244
  Object.defineProperty(exports, "FactsStrip", {
245
245
  enumerable: true,
246
- get: function () { return chunkZ4KXF7WS_cjs.FactsStrip; }
246
+ get: function () { return chunkEG6YBT7G_cjs.FactsStrip; }
247
247
  });
248
248
  Object.defineProperty(exports, "GettingStartedStrip", {
249
249
  enumerable: true,
250
- get: function () { return chunkZ4KXF7WS_cjs.GettingStartedStrip; }
250
+ get: function () { return chunkEG6YBT7G_cjs.GettingStartedStrip; }
251
251
  });
252
252
  Object.defineProperty(exports, "HomeCenteredColumn", {
253
253
  enumerable: true,
254
- get: function () { return chunkZ4KXF7WS_cjs.HomeCenteredColumn; }
254
+ get: function () { return chunkEG6YBT7G_cjs.HomeCenteredColumn; }
255
255
  });
256
256
  Object.defineProperty(exports, "HomeCenteredScroll", {
257
257
  enumerable: true,
258
- get: function () { return chunkZ4KXF7WS_cjs.HomeCenteredScroll; }
258
+ get: function () { return chunkEG6YBT7G_cjs.HomeCenteredScroll; }
259
259
  });
260
260
  Object.defineProperty(exports, "HomeFrame", {
261
261
  enumerable: true,
262
- get: function () { return chunkZ4KXF7WS_cjs.HomeFrame; }
262
+ get: function () { return chunkEG6YBT7G_cjs.HomeFrame; }
263
263
  });
264
264
  Object.defineProperty(exports, "HomeLoadError", {
265
265
  enumerable: true,
266
- get: function () { return chunkZ4KXF7WS_cjs.HomeLoadError; }
266
+ get: function () { return chunkEG6YBT7G_cjs.HomeLoadError; }
267
267
  });
268
268
  Object.defineProperty(exports, "HomeMain", {
269
269
  enumerable: true,
270
- get: function () { return chunkZ4KXF7WS_cjs.HomeMain; }
270
+ get: function () { return chunkEG6YBT7G_cjs.HomeMain; }
271
271
  });
272
272
  Object.defineProperty(exports, "RecentList", {
273
273
  enumerable: true,
274
- get: function () { return chunkZ4KXF7WS_cjs.RecentList; }
274
+ get: function () { return chunkEG6YBT7G_cjs.RecentList; }
275
275
  });
276
276
  Object.defineProperty(exports, "BulkDeleteButton", {
277
277
  enumerable: true,
@@ -327,47 +327,47 @@ Object.defineProperty(exports, "KeyValueRow", {
327
327
  });
328
328
  Object.defineProperty(exports, "AddFilesFirst", {
329
329
  enumerable: true,
330
- get: function () { return chunkZDZY6OPL_cjs.AddFilesFirst; }
330
+ get: function () { return chunkXUEJYHEP_cjs.AddFilesFirst; }
331
331
  });
332
332
  Object.defineProperty(exports, "DEFAULT_ADD_FILES_FIRST_LABELS", {
333
333
  enumerable: true,
334
- get: function () { return chunkZDZY6OPL_cjs.DEFAULT_ADD_FILES_FIRST_LABELS; }
334
+ get: function () { return chunkXUEJYHEP_cjs.DEFAULT_ADD_FILES_FIRST_LABELS; }
335
335
  });
336
336
  Object.defineProperty(exports, "DEFAULT_SCOPE_PICKER_LABELS", {
337
337
  enumerable: true,
338
- get: function () { return chunkZDZY6OPL_cjs.DEFAULT_SCOPE_PICKER_LABELS; }
338
+ get: function () { return chunkXUEJYHEP_cjs.DEFAULT_SCOPE_PICKER_LABELS; }
339
339
  });
340
340
  Object.defineProperty(exports, "EmptyStrip", {
341
341
  enumerable: true,
342
- get: function () { return chunkZDZY6OPL_cjs.EmptyStrip; }
342
+ get: function () { return chunkXUEJYHEP_cjs.EmptyStrip; }
343
343
  });
344
344
  Object.defineProperty(exports, "FoldSection", {
345
345
  enumerable: true,
346
- get: function () { return chunkZDZY6OPL_cjs.FoldSection; }
346
+ get: function () { return chunkXUEJYHEP_cjs.FoldSection; }
347
347
  });
348
348
  Object.defineProperty(exports, "QuickActionDialogHeader", {
349
349
  enumerable: true,
350
- get: function () { return chunkZDZY6OPL_cjs.QuickActionDialogHeader; }
350
+ get: function () { return chunkXUEJYHEP_cjs.QuickActionDialogHeader; }
351
351
  });
352
352
  Object.defineProperty(exports, "ScopePicker", {
353
353
  enumerable: true,
354
- get: function () { return chunkZDZY6OPL_cjs.ScopePicker; }
354
+ get: function () { return chunkXUEJYHEP_cjs.ScopePicker; }
355
355
  });
356
356
  Object.defineProperty(exports, "SectionHeader", {
357
357
  enumerable: true,
358
- get: function () { return chunkZDZY6OPL_cjs.SectionHeader; }
358
+ get: function () { return chunkXUEJYHEP_cjs.SectionHeader; }
359
359
  });
360
360
  Object.defineProperty(exports, "SectionLabel", {
361
361
  enumerable: true,
362
- get: function () { return chunkZDZY6OPL_cjs.SectionLabel; }
362
+ get: function () { return chunkXUEJYHEP_cjs.SectionLabel; }
363
363
  });
364
364
  Object.defineProperty(exports, "StartTiles", {
365
365
  enumerable: true,
366
- get: function () { return chunkZDZY6OPL_cjs.StartTiles; }
366
+ get: function () { return chunkXUEJYHEP_cjs.StartTiles; }
367
367
  });
368
368
  Object.defineProperty(exports, "useScopeSelection", {
369
369
  enumerable: true,
370
- get: function () { return chunkZDZY6OPL_cjs.useScopeSelection; }
370
+ get: function () { return chunkXUEJYHEP_cjs.useScopeSelection; }
371
371
  });
372
372
  exports.ActionMenuDialog = ActionMenuDialog;
373
373
  exports.CardHeaderBar = CardHeaderBar;
@@ -1,14 +1,14 @@
1
1
  "use client";
2
- export { CreateTile, DASHBOARD_QUIET_ACTION_CLASS, DEFAULT_GETTING_STARTED_STRIP_LABELS, DashboardAction, DashboardBand, DashboardColumns, DashboardRoot, FactMark, FactsStrip, GettingStartedStrip, HomeCenteredColumn, HomeCenteredScroll, HomeFrame, HomeLoadError, HomeMain, RecentList } from '../chunk-APXW5XGA.js';
2
+ export { CreateTile, DASHBOARD_QUIET_ACTION_CLASS, DEFAULT_GETTING_STARTED_STRIP_LABELS, DashboardAction, DashboardBand, DashboardColumns, DashboardRoot, FactMark, FactsStrip, GettingStartedStrip, HomeCenteredColumn, HomeCenteredScroll, HomeFrame, HomeLoadError, HomeMain, RecentList } from '../chunk-TJJE3XOO.js';
3
3
  export { BulkDeleteButton, EmptyCellDash, GridCellRow, GridWithSelectionBar, PlainBandTitle, ProjectBandTitle, ProjectBreakdown, ProjectReadout } from '../chunk-RQKWYKZY.js';
4
4
  export { CollapsibleSection, DEFAULT_COLLAPSIBLE_SECTION_LABELS } from '../chunk-5TDGVOR5.js';
5
5
  export { DEFAULT_KEY_VALUE_ROW_LABELS, KeyValueContainer, KeyValueRow } from '../chunk-XRL4R2TT.js';
6
6
  import '../chunk-UJE32SST.js';
7
- import { QuickActionDialogHeader } from '../chunk-SBVOYSOO.js';
8
- export { AddFilesFirst, DEFAULT_ADD_FILES_FIRST_LABELS, DEFAULT_SCOPE_PICKER_LABELS, EmptyStrip, FoldSection, QuickActionDialogHeader, ScopePicker, SectionHeader, SectionLabel, StartTiles, useScopeSelection } from '../chunk-SBVOYSOO.js';
7
+ import { QuickActionDialogHeader } from '../chunk-WH2BIMAZ.js';
8
+ export { AddFilesFirst, DEFAULT_ADD_FILES_FIRST_LABELS, DEFAULT_SCOPE_PICKER_LABELS, EmptyStrip, FoldSection, QuickActionDialogHeader, ScopePicker, SectionHeader, SectionLabel, StartTiles, useScopeSelection } from '../chunk-WH2BIMAZ.js';
9
9
  import '../chunk-ELT2V4NB.js';
10
- import '../chunk-5VYJP6XD.js';
11
10
  import '../chunk-NPLYHR2E.js';
11
+ import '../chunk-5VYJP6XD.js';
12
12
  import '../chunk-TJQSL4XV.js';
13
13
  import '../chunk-3VCTVCAX.js';
14
14
  import '../chunk-TX2ZICS7.js';