@arbidocs/blocks 0.4.81 → 0.4.82
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.
- package/dist/agents/index.cjs +209 -209
- package/dist/agents/index.js +2 -2
- package/dist/{chunk-B3WCKBJ7.cjs → chunk-5XVWGJ2H.cjs} +3 -3
- package/dist/{chunk-B3WCKBJ7.cjs.map → chunk-5XVWGJ2H.cjs.map} +1 -1
- package/dist/{chunk-SWSVPQNB.js → chunk-COP6GVKN.js} +148 -5
- package/dist/chunk-COP6GVKN.js.map +1 -0
- package/dist/{chunk-I56ORHPY.js → chunk-IRG5LPDP.js} +3 -3
- package/dist/{chunk-I56ORHPY.js.map → chunk-IRG5LPDP.js.map} +1 -1
- package/dist/{chunk-UA2AMDR6.cjs → chunk-LRRJ2HBW.cjs} +151 -3
- package/dist/chunk-LRRJ2HBW.cjs.map +1 -0
- package/dist/{chunk-GJV2G4FC.js → chunk-O35LRB3P.js} +3 -3
- package/dist/{chunk-GJV2G4FC.js.map → chunk-O35LRB3P.js.map} +1 -1
- package/dist/{chunk-F5WIETZY.cjs → chunk-VWK24TEY.cjs} +3 -3
- package/dist/{chunk-F5WIETZY.cjs.map → chunk-VWK24TEY.cjs.map} +1 -1
- package/dist/connect/index.cjs +59 -38
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.js +35 -14
- package/dist/connect/index.js.map +1 -1
- package/dist/connection/ConnectedTagMatrix.d.ts +6 -3
- package/dist/files/index.cjs +2 -2
- package/dist/files/index.js +2 -2
- package/dist/index.cjs +414 -398
- package/dist/index.js +6 -6
- package/dist/settings/index.cjs +35 -35
- package/dist/settings/index.js +3 -3
- package/dist/tags/TagMatrix.d.ts +7 -3
- package/dist/tags/index.d.ts +1 -0
- package/dist/tags/tagMatrixDocx.d.ts +42 -0
- package/dist/workflow-canvas/index.cjs +9 -9
- package/dist/workflow-canvas/index.js +2 -2
- package/dist/workspaces/index.cjs +1 -1
- package/dist/workspaces/index.js +1 -1
- package/package.json +4 -4
- package/dist/chunk-SWSVPQNB.js.map +0 -1
- package/dist/chunk-UA2AMDR6.cjs.map +0 -1
package/dist/index.js
CHANGED
|
@@ -7,11 +7,11 @@ export { DataTable, DataTableBlock, MetricCard, PageHeader, StatGroup } from './
|
|
|
7
7
|
export { Accordion, AvatarBlock, Banner, BlockImage, BlockLink, CTABanner, Columns, ContactForm, Container, FAQ, FONT_PAIRINGS, FeatureGrid, Footer, Gallery, Hero, ListBlock, LogoCloud, MediaText, Navbar, PricingTable, ProfileCard, RichTextBlock, SectionHeading, Spacer, Steps, THEME_STYLE_ID, Tabs, TeamGrid, Testimonial, TestimonialGrid, ThemeEditor, VideoEmbed, applyFontVars, applyStoredTheme, applyThemeVars, clearFontVars, clearThemeVars, createThemeStore, fontPackages, getFontPairing, matchFontPairing, tid, toEmbedUrl, toHslTriplet } from './chunk-DLBUFHLY.js';
|
|
8
8
|
export { Timeline } from './chunk-OVEQERPO.js';
|
|
9
9
|
export { MemberAvatarStack } from './chunk-XNOASBGW.js';
|
|
10
|
-
export { DEFAULT_TAG_MATRIX_LABELS, TagMatrix, cellText, cellValue, isGap, parseCell, tagMatrixColumns, tagMatrixMarkdown } from './chunk-
|
|
10
|
+
export { DEFAULT_TAG_MATRIX_DOCX_LABELS, DEFAULT_TAG_MATRIX_LABELS, TAG_MATRIX_DOCX_LANDSCAPE_AFTER, TagMatrix, cellText, cellValue, isGap, parseCell, tagMatrixColumns, tagMatrixDocumentXml, tagMatrixDocx, tagMatrixMarkdown } from './chunk-COP6GVKN.js';
|
|
11
11
|
export { DEFAULT_SEARCH_HIT_LABELS, SearchHit } from './chunk-A2YAC22G.js';
|
|
12
12
|
export { TIMELINE_ZOOM, TimelineCalendar, TimelineGantt, TimelineZoomControl, dayKey, formatSpan, monthLabel, parseIso, utcDay } from './chunk-4EZVCGRL.js';
|
|
13
13
|
export { Callout } from './chunk-UJE32SST.js';
|
|
14
|
-
export { AgentAvatarField, AgentBar, AgentBarIconButton, AgentBarMenu, AgentBarNotes, AgentBarProbeAnswer, AgentBarQueuedNote, AgentBarStatus, AgentCard, AgentCreateView, AgentCreatedView, AgentCreator, AgentEditView, AgentGallery, AgentMainView, AgentSelect, AgentTypeSelector, CapabilityGrid, CapabilityTile, ConfigField, ConfigForm, ConsentActions, ConsentBulletList, ConsentCard, ConsentFootnote, ConsentHeader, ConsentMessage, ConsentNotice, ConsentPage, ConsentPermissionList, ConsentSection, ConsentStrong, ConsentText, ConversationListView, ConversationTurnSpeaker, CopyableUrl, DEFAULT_AGENT_AVATAR_FIELD_LABELS, DEFAULT_AGENT_BAR_LABELS, DEFAULT_AGENT_CARD_LABELS, DEFAULT_AGENT_CREATOR_LABELS, DEFAULT_AGENT_GALLERY_LABELS, DEFAULT_AGENT_SELECT_LABELS, DEFAULT_AGENT_STEPS_LABELS, DEFAULT_AGENT_TYPE_SELECTOR_LABELS, DEFAULT_AUTHORIZE_AGENT_LABELS, DEFAULT_CONFIG_FIELD_LABELS, DEFAULT_CONFIG_FORM_LABELS, DEFAULT_CONSENT_ACTIONS_LABELS, DEFAULT_COPYABLE_URL_LABELS, DEFAULT_NEW_THREAD_DIALOG_LABELS, DEFAULT_PILL_SELECT_LABELS, DEFAULT_RECURRENCE, DEFAULT_RECURRENCE_BUILDER_LABELS, DEFAULT_SKILL_CARD_LABELS, DEFAULT_SKILL_EDIT_FORM_LABELS, DEFAULT_SKILL_GENERATE_FORM_LABELS, DEFAULT_SKILL_GLOBAL_BADGE_LABELS, DEFAULT_SKILL_ROW_LABELS, DEFAULT_SKILL_VIEW_TOGGLE_LABELS, DEFAULT_SUBAGENT_ROSTER_LABELS, DEFAULT_TASKS_CHROME_LABELS, DEFAULT_TASK_ACTIVITY_LABELS, DEFAULT_TASK_COMPOSER_LABELS, DEFAULT_TASK_LIST_LABELS, DEFAULT_TASK_OUTPUTS_CELL_LABELS, DEFAULT_TASK_PLAN_LABELS, DEFAULT_TASK_RUNS_DIALOG_LABELS, DEFAULT_TASK_STATUS_PILL_LABELS, DEFAULT_TASK_THREAD_CHIP_LABELS, DEFAULT_TASK_TRIGGER_CHIP_LABELS, DEFAULT_TUPLE_ARRAY_FIELD_LABELS, DEFAULT_UPLOAD_TASK_ITEM_LABELS, DEFAULT_UPLOAD_TASK_LIST_LABELS, DEFAULT_WORKFLOWS_CHROME_LABELS, DEFAULT_WORKFLOW_CONFIG_DIALOG_LABELS, DEFAULT_WORKFLOW_LIST_LABELS, DEFAULT_WORKFLOW_THREAD_STRIP_LABELS, DERIVED_NAME_WORDS, EMPTY_NEW_THREAD, EntityChip, GoalCriteria, MAX_TASK_DEPTH, NewThreadDialog, PersonPill, PillSelect, RecurrenceBuilder, STATUS_LABELS, STATUS_ORDER, STATUS_TONE, SkillActionButton, SkillCard, SkillDetail, SkillDetailSection, SkillEditForm, SkillFilterChips, SkillGenerateForm, SkillGlobalBadge, SkillRow, SkillTile, SkillTypeBadge, SkillViewToggle, StepDetail, StepNarration, StepOutcome, StepParams, StepRow, StepSummary, StepTrace, StepTraceSummary, SubAgentLane, SubStepGroup, SubagentRoster, TASK_COLUMN_ORDER, TRIGGER_LABELS, TaskActivityDialog, TaskActivityTimeline, TaskComposer, TaskFlow, TaskInbox, TaskMoveDialog, TaskOutputsCell, TaskPlan, TaskRunsDialog, TaskStartDialog, TaskStatusPill, TaskTable, TaskThreadChip, TaskTriggerChip, TasksToolbar, ThreadActivity, ThreadNotifyDialog, TupleArrayField, UploadTaskItem, UploadTaskList, WEEKDAYS, WORKFLOW_COLUMN_ORDER, WorkflowConfigDialog, WorkflowDocumentsField, WorkflowLauncher, WorkflowThreadStartedBy, WorkflowThreadStrip, WorkflowsTable, WorkflowsToolbar, agentConfigSectionToValues, agentCreatorToConfigSection, asTaskStatus, authModeFor, buildRRule, buildTaskRows, buildWorkflowScopeSource, compactThreadActivity, composePersona, composerToTaskQuery, composerToWorkRequest, composerToWorkflowRequest, composerToWorkflowUpdate, createTaskColumns, createWorkflowColumns, createsWork, defaultScopeRenderer, defaultTaskComposerValues, deriveAgentName, deriveWorkflowName, descendantIds, describeRRule, filterConversationRows, firstWords, formatElapsed, goalProgress, groupThreadActivity, hasTaskFields, hasTrigger, humanizeSection, indexTasks, inferType, inputDocumentIds, isAgenticWorkflow, isOutOfBounds, isPlainTodo, isSkillRow, isValidAgentName, isoToLocalInput, linkedRunsFromActivity, localInputToIso, matchWorkflowScope, moveTargets, newThreadToRequest, nextCriterionId, ownerExtId, parseRRule, prettifyKey, resolveScopeInputs, skillSlug, stripPersonaPreamble, summarizeAgent, summarizeCapabilities, taskComposerToCreateRequest, taskComposerToUpdateRequest, taskNeedsAccess, taskToComposerValues, useWorkflowPreview, workflowFromSkillMarkdown, workflowStatus, workflowTaskFields, workflowToComposerValues, workflowToSkillMarkdown, workflowTriggerType, workflowWhen } from './chunk-
|
|
14
|
+
export { AgentAvatarField, AgentBar, AgentBarIconButton, AgentBarMenu, AgentBarNotes, AgentBarProbeAnswer, AgentBarQueuedNote, AgentBarStatus, AgentCard, AgentCreateView, AgentCreatedView, AgentCreator, AgentEditView, AgentGallery, AgentMainView, AgentSelect, AgentTypeSelector, CapabilityGrid, CapabilityTile, ConfigField, ConfigForm, ConsentActions, ConsentBulletList, ConsentCard, ConsentFootnote, ConsentHeader, ConsentMessage, ConsentNotice, ConsentPage, ConsentPermissionList, ConsentSection, ConsentStrong, ConsentText, ConversationListView, ConversationTurnSpeaker, CopyableUrl, DEFAULT_AGENT_AVATAR_FIELD_LABELS, DEFAULT_AGENT_BAR_LABELS, DEFAULT_AGENT_CARD_LABELS, DEFAULT_AGENT_CREATOR_LABELS, DEFAULT_AGENT_GALLERY_LABELS, DEFAULT_AGENT_SELECT_LABELS, DEFAULT_AGENT_STEPS_LABELS, DEFAULT_AGENT_TYPE_SELECTOR_LABELS, DEFAULT_AUTHORIZE_AGENT_LABELS, DEFAULT_CONFIG_FIELD_LABELS, DEFAULT_CONFIG_FORM_LABELS, DEFAULT_CONSENT_ACTIONS_LABELS, DEFAULT_COPYABLE_URL_LABELS, DEFAULT_NEW_THREAD_DIALOG_LABELS, DEFAULT_PILL_SELECT_LABELS, DEFAULT_RECURRENCE, DEFAULT_RECURRENCE_BUILDER_LABELS, DEFAULT_SKILL_CARD_LABELS, DEFAULT_SKILL_EDIT_FORM_LABELS, DEFAULT_SKILL_GENERATE_FORM_LABELS, DEFAULT_SKILL_GLOBAL_BADGE_LABELS, DEFAULT_SKILL_ROW_LABELS, DEFAULT_SKILL_VIEW_TOGGLE_LABELS, DEFAULT_SUBAGENT_ROSTER_LABELS, DEFAULT_TASKS_CHROME_LABELS, DEFAULT_TASK_ACTIVITY_LABELS, DEFAULT_TASK_COMPOSER_LABELS, DEFAULT_TASK_LIST_LABELS, DEFAULT_TASK_OUTPUTS_CELL_LABELS, DEFAULT_TASK_PLAN_LABELS, DEFAULT_TASK_RUNS_DIALOG_LABELS, DEFAULT_TASK_STATUS_PILL_LABELS, DEFAULT_TASK_THREAD_CHIP_LABELS, DEFAULT_TASK_TRIGGER_CHIP_LABELS, DEFAULT_TUPLE_ARRAY_FIELD_LABELS, DEFAULT_UPLOAD_TASK_ITEM_LABELS, DEFAULT_UPLOAD_TASK_LIST_LABELS, DEFAULT_WORKFLOWS_CHROME_LABELS, DEFAULT_WORKFLOW_CONFIG_DIALOG_LABELS, DEFAULT_WORKFLOW_LIST_LABELS, DEFAULT_WORKFLOW_THREAD_STRIP_LABELS, DERIVED_NAME_WORDS, EMPTY_NEW_THREAD, EntityChip, GoalCriteria, MAX_TASK_DEPTH, NewThreadDialog, PersonPill, PillSelect, RecurrenceBuilder, STATUS_LABELS, STATUS_ORDER, STATUS_TONE, SkillActionButton, SkillCard, SkillDetail, SkillDetailSection, SkillEditForm, SkillFilterChips, SkillGenerateForm, SkillGlobalBadge, SkillRow, SkillTile, SkillTypeBadge, SkillViewToggle, StepDetail, StepNarration, StepOutcome, StepParams, StepRow, StepSummary, StepTrace, StepTraceSummary, SubAgentLane, SubStepGroup, SubagentRoster, TASK_COLUMN_ORDER, TRIGGER_LABELS, TaskActivityDialog, TaskActivityTimeline, TaskComposer, TaskFlow, TaskInbox, TaskMoveDialog, TaskOutputsCell, TaskPlan, TaskRunsDialog, TaskStartDialog, TaskStatusPill, TaskTable, TaskThreadChip, TaskTriggerChip, TasksToolbar, ThreadActivity, ThreadNotifyDialog, TupleArrayField, UploadTaskItem, UploadTaskList, WEEKDAYS, WORKFLOW_COLUMN_ORDER, WorkflowConfigDialog, WorkflowDocumentsField, WorkflowLauncher, WorkflowThreadStartedBy, WorkflowThreadStrip, WorkflowsTable, WorkflowsToolbar, agentConfigSectionToValues, agentCreatorToConfigSection, asTaskStatus, authModeFor, buildRRule, buildTaskRows, buildWorkflowScopeSource, compactThreadActivity, composePersona, composerToTaskQuery, composerToWorkRequest, composerToWorkflowRequest, composerToWorkflowUpdate, createTaskColumns, createWorkflowColumns, createsWork, defaultScopeRenderer, defaultTaskComposerValues, deriveAgentName, deriveWorkflowName, descendantIds, describeRRule, filterConversationRows, firstWords, formatElapsed, goalProgress, groupThreadActivity, hasTaskFields, hasTrigger, humanizeSection, indexTasks, inferType, inputDocumentIds, isAgenticWorkflow, isOutOfBounds, isPlainTodo, isSkillRow, isValidAgentName, isoToLocalInput, linkedRunsFromActivity, localInputToIso, matchWorkflowScope, moveTargets, newThreadToRequest, nextCriterionId, ownerExtId, parseRRule, prettifyKey, resolveScopeInputs, skillSlug, stripPersonaPreamble, summarizeAgent, summarizeCapabilities, taskComposerToCreateRequest, taskComposerToUpdateRequest, taskNeedsAccess, taskToComposerValues, useWorkflowPreview, workflowFromSkillMarkdown, workflowStatus, workflowTaskFields, workflowToComposerValues, workflowToSkillMarkdown, workflowTriggerType, workflowWhen } from './chunk-IRG5LPDP.js';
|
|
15
15
|
import './chunk-CKB64Z4R.js';
|
|
16
16
|
export { EmptyState } from './chunk-P6GHJSLR.js';
|
|
17
17
|
export { ActionStepBody, ApprovalEvidence, AssigneeLine, DEFAULT_ASSIGNEE_WORDING, DEFAULT_SCHEMA_FORM_LABELS, DEFAULT_STEP_BAR_LABELS, DEFAULT_WORKFLOW_RUNNER_LABELS, DEFAULT_WORKFLOW_STEP_PARTS_LABELS, EMPTY_WORKFLOW_SCOPE, SKILL_PROMPT_FALLBACK_PLACEHOLDER, SKILL_PROMPT_LABEL, SchemaForm, SendBackControl, WorkflowRunner, activeStepId, assigneeName, buildLaunch, canAssign, composeStepPrompt, composeWorkflowPrompt, defaultInputs, dependsOn, fieldToFrontmatter, fillRunText, fillStepInputs, fromPlanAssignee, fromPlanDocumentRef, fromPlanSteps, initialRunInputs, inputsFromContext, isEmptyWorkflowScope, isIncompleteSignal, isPersonAction, isPersonStep, isRunFinished, isSteppedWorkflow, isWorkflowScope, layoutFromPlanSteps, nextAction, orderSteps, promptFieldName, reviewInstructions, runFields, runFieldsOf, runThreadTitle, sendBackTargets, skillToWorkflow, splitDocRef, stepConfigProblems, stepDependencies, stepFields, stepLevels, stepPhase, stepStatesFromActivity, stepWindow, toPlanAssignee, toPlanDocumentRef, toPlanSteps, upstreamSteps, useWorkflowView, validateInputs, validateStep, validateWorkflowGraph, workflowAccepts, workflowFromFrontmatter, workflowSteps, workflowsAccepting, workflowsForHost } from './chunk-THCFZKTM.js';
|
|
@@ -29,6 +29,10 @@ export { AccountRecoveryDialog, AuthAlert, AuthConsent, AuthDivider, AuthField,
|
|
|
29
29
|
export { DEFAULT_PASSWORD_STRENGTH_INPUT_LABELS, PasswordStrengthInput } from './chunk-VILAPTCB.js';
|
|
30
30
|
export { CitationEditor, DEFAULT_PASSAGE_PILL_LABELS, DEFAULT_QUIET_MARK_LABELS, LabelMark, NoteMark, PassageMark, PassagePill, QuietLink, useCopyText } from './chunk-XQKGYGCJ.js';
|
|
31
31
|
export { BlocksProvider, useBlocksEnvironment } from './chunk-76JDDMSP.js';
|
|
32
|
+
export { ActionMenu, AddContactsForm, AddContactsResults, ContactCard, DEFAULT_ADD_CONTACTS_LABELS, DEFAULT_CONTACT_CARD_LABELS, DEFAULT_CONTACT_OUTCOME_LABELS, DEFAULT_DM_ACCESS_REQUEST_BANNER_LABELS, DEFAULT_DM_GRANT_ACCESS_DIALOG_LABELS, DEFAULT_DM_INVITE_CHIP_LABELS, DEFAULT_DM_THREAD_FRAME_LABELS, DEFAULT_MAIL_FOLDER_TREE_LABELS, DEFAULT_RECIPIENT_PICKER_LABELS, DmAccessRequestBanner, DmGrantAccessDialogView, DmInviteAvatar, DmInviteChip, DmNewTabIcon, DmThreadFrame, DmThreadHeader, MAX_INVITE_EMAILS, MailDeliveryBadge, MailFolderTree, MailMessagePreview, MemberBulkActions, MemberListLoading, MemberMutedText, MemberNameCell, MemberRoleCell, RecipientPicker, RoleSelect, WorkspaceDeleteButton, buildMailFolderTree, contactToVCard, descendantFolderIds, downloadVCard, isInboxFolder, parseEmails, toAddContactsRow, toAddContactsRows, toggleMailFolder, vCardFilename } from './chunk-SB5ZKOYN.js';
|
|
33
|
+
import './chunk-NBV56SGU.js';
|
|
34
|
+
export { DEFAULT_SHARE_CONTROL_LABELS, ShareControl } from './chunk-K4BGOPGG.js';
|
|
35
|
+
import './chunk-TX2ZICS7.js';
|
|
32
36
|
export { AssistantToaster, BranchControls, ComposerAccessories, ComposerTools, ContextActionButton, ContextCheckRow, ContextPanelContent, ContextPanelFooter, ContextPanelTabs, ContextPickerList, ContextPickerRow, ContextSearchInput, ContextSelectList, ContextSelectRow, Conversation, ConversationBody, ConversationHeader, ConversationHeaderActions, ConversationHistoryPane, ConversationLoading, ConversationMain, ConversationRoot, ConversationSearchView, ConversationSettingsButton, DEFAULT_BRANCH_CONTROLS_LABELS, DEFAULT_CONVERSATION_LAYOUT_LABELS, DEFAULT_CONVERSATION_PARTS_LABELS, DEFAULT_CONVERSATION_SEARCH_LABELS, DEFAULT_LABEL_PIN_ROW_LABELS, DEFAULT_MODEL_PRICING_TIP_LABELS, DEFAULT_PENDING_ANSWER_BAR_LABELS, DEFAULT_PINNED_DOC_CHIP_LABELS, DEFAULT_SLASH_MENU_LABELS, DEFAULT_THREAD_MAP_LABELS, LabelPinRow, ModelAutoIcon, ModelConfigureButton, ModelDot, ModelMenuDivider, ModelMenuMessage, ModelOption, ModelOptionLabel, ModelPickerPopover, ModelPickerTrigger, ModelPricingTip, ModelTierIcon, ModelTierOption, ModelTriggerContent, NewChatButton, NewPaChatButton, PaModeBadge, PendingAnswerBar, PinnedDocChip, SlashMenu, ThreadMap, ThreadMapDiagram, ThreadMapError, ThreadMapLoading, getParticipantTints, hasMessageBody, isLongPastedText, useDismissibleCard, useLongPaste, useRecipientDraft } from './chunk-ICBAFX5B.js';
|
|
33
37
|
export { DEFAULT_DOCK_WIDTH, Toaster } from './chunk-BV7FEMSI.js';
|
|
34
38
|
export { AssistantDock, AssistantDockToggle, AssistantModeToggle, ChatDocuments, ChatMessageContent, ChatPage, ChatThreadList, ChatThreadSelect, CitationMark, Composer, ComposerBranchingNotice, ComposerContainer, ComposerDock, ComposerFrame, ComposerInput, ComposerRoot, ComposerSend, ComposerToolbar, ComposerVoiceButton, ContextChip, ConversationEmpty, DEFAULT_ASSISTANT_MODE_TOGGLE_LABELS, DEFAULT_CHAT_PAGE_LABELS, DEFAULT_COMPOSER_LABELS, DEFAULT_CONVERSATION_EMPTY_LABELS, DEFAULT_MESSAGE_ALERT_LABELS, DEFAULT_MESSAGE_LABELS, DEFAULT_MESSAGE_LIST_LABELS, DEFAULT_WORKFLOW_STEP_CHIP_LABELS, Message, MessageActionButton, MessageActionMenu, MessageAlert, MessageBody, MessageBubble, MessageByline, MessageContent, MessageFooter, MessageList, MessageListBanner, MessageListEmpty, MessageListRoot, MessageListRow, MessageListRows, MessageListStatus, MessageListTail, MessageNarration, MessageRoot, MessageSources, MessageSubagentBadge, ScrollToBottom, SourceChip, WorkflowStepChip, toSpeakableText, useAssistantDock, useChatSurface, useRegisterEmbeddedChat, useStreamAnnouncement } from './chunk-EWSEQEPL.js';
|
|
@@ -38,10 +42,6 @@ export { DEFAULT_MENTION_LABELS, MENTION_HREF_PREFIX, MentionChip, MentionMenu,
|
|
|
38
42
|
export { BREAKPOINT_QUERIES, useIsNarrow, useIsPhone, useIsTouchScreen, useMediaQuery } from './chunk-SLSBJRWW.js';
|
|
39
43
|
import './chunk-NPLYHR2E.js';
|
|
40
44
|
export { daysUntil, displayName, fmtDate, fmtDateTime, formatCount, formatCurrency, formatPageRefs, fromNow, hrs, initials, pct, pluralize } from './chunk-OXF2IFXG.js';
|
|
41
|
-
export { ActionMenu, AddContactsForm, AddContactsResults, ContactCard, DEFAULT_ADD_CONTACTS_LABELS, DEFAULT_CONTACT_CARD_LABELS, DEFAULT_CONTACT_OUTCOME_LABELS, DEFAULT_DM_ACCESS_REQUEST_BANNER_LABELS, DEFAULT_DM_GRANT_ACCESS_DIALOG_LABELS, DEFAULT_DM_INVITE_CHIP_LABELS, DEFAULT_DM_THREAD_FRAME_LABELS, DEFAULT_MAIL_FOLDER_TREE_LABELS, DEFAULT_RECIPIENT_PICKER_LABELS, DmAccessRequestBanner, DmGrantAccessDialogView, DmInviteAvatar, DmInviteChip, DmNewTabIcon, DmThreadFrame, DmThreadHeader, MAX_INVITE_EMAILS, MailDeliveryBadge, MailFolderTree, MailMessagePreview, MemberBulkActions, MemberListLoading, MemberMutedText, MemberNameCell, MemberRoleCell, RecipientPicker, RoleSelect, WorkspaceDeleteButton, buildMailFolderTree, contactToVCard, descendantFolderIds, downloadVCard, isInboxFolder, parseEmails, toAddContactsRow, toAddContactsRows, toggleMailFolder, vCardFilename } from './chunk-SB5ZKOYN.js';
|
|
42
|
-
import './chunk-NBV56SGU.js';
|
|
43
|
-
export { DEFAULT_SHARE_CONTROL_LABELS, ShareControl } from './chunk-K4BGOPGG.js';
|
|
44
|
-
import './chunk-TX2ZICS7.js';
|
|
45
45
|
import './chunk-7F6CBP3Z.js';
|
|
46
46
|
import './chunk-VUNV25KB.js';
|
|
47
47
|
import { Search, Pencil, Sparkles } from 'lucide-react';
|
package/dist/settings/index.cjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunk5XVWGJ2H_cjs = require('../chunk-5XVWGJ2H.cjs');
|
|
5
5
|
var chunk223D4727_cjs = require('../chunk-223D4727.cjs');
|
|
6
6
|
var chunk46IU3UPF_cjs = require('../chunk-46IU3UPF.cjs');
|
|
7
7
|
var chunkYJQVLVBJ_cjs = require('../chunk-YJQVLVBJ.cjs');
|
|
8
8
|
var chunk7RGLTF76_cjs = require('../chunk-7RGLTF76.cjs');
|
|
9
9
|
var chunkVFUWWH52_cjs = require('../chunk-VFUWWH52.cjs');
|
|
10
10
|
require('../chunk-ADOKTJHV.cjs');
|
|
11
|
+
var chunkULWRNGGE_cjs = require('../chunk-ULWRNGGE.cjs');
|
|
11
12
|
require('../chunk-PPCATBOY.cjs');
|
|
12
13
|
var chunkKDG6FER6_cjs = require('../chunk-KDG6FER6.cjs');
|
|
13
|
-
var chunkULWRNGGE_cjs = require('../chunk-ULWRNGGE.cjs');
|
|
14
14
|
var chunkMHVNT4J3_cjs = require('../chunk-MHVNT4J3.cjs');
|
|
15
15
|
require('../chunk-DES3K4SD.cjs');
|
|
16
16
|
var react = require('react');
|
|
@@ -3476,135 +3476,135 @@ function ErrorDialogView({
|
|
|
3476
3476
|
|
|
3477
3477
|
Object.defineProperty(exports, "ActiveSessionsDialog", {
|
|
3478
3478
|
enumerable: true,
|
|
3479
|
-
get: function () { return
|
|
3479
|
+
get: function () { return chunk5XVWGJ2H_cjs.ActiveSessionsDialog; }
|
|
3480
3480
|
});
|
|
3481
3481
|
Object.defineProperty(exports, "AvatarPicker", {
|
|
3482
3482
|
enumerable: true,
|
|
3483
|
-
get: function () { return
|
|
3483
|
+
get: function () { return chunk5XVWGJ2H_cjs.AvatarPicker; }
|
|
3484
3484
|
});
|
|
3485
3485
|
Object.defineProperty(exports, "DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS", {
|
|
3486
3486
|
enumerable: true,
|
|
3487
|
-
get: function () { return
|
|
3487
|
+
get: function () { return chunk5XVWGJ2H_cjs.DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS; }
|
|
3488
3488
|
});
|
|
3489
3489
|
Object.defineProperty(exports, "DEFAULT_AVATAR_PICKER_LABELS", {
|
|
3490
3490
|
enumerable: true,
|
|
3491
|
-
get: function () { return
|
|
3491
|
+
get: function () { return chunk5XVWGJ2H_cjs.DEFAULT_AVATAR_PICKER_LABELS; }
|
|
3492
3492
|
});
|
|
3493
3493
|
Object.defineProperty(exports, "DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS", {
|
|
3494
3494
|
enumerable: true,
|
|
3495
|
-
get: function () { return
|
|
3495
|
+
get: function () { return chunk5XVWGJ2H_cjs.DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS; }
|
|
3496
3496
|
});
|
|
3497
3497
|
Object.defineProperty(exports, "DEFAULT_IDENTITY_VERIFICATION_LABELS", {
|
|
3498
3498
|
enumerable: true,
|
|
3499
|
-
get: function () { return
|
|
3499
|
+
get: function () { return chunk5XVWGJ2H_cjs.DEFAULT_IDENTITY_VERIFICATION_LABELS; }
|
|
3500
3500
|
});
|
|
3501
3501
|
Object.defineProperty(exports, "DEFAULT_LOGOUT_DIALOG_LABELS", {
|
|
3502
3502
|
enumerable: true,
|
|
3503
|
-
get: function () { return
|
|
3503
|
+
get: function () { return chunk5XVWGJ2H_cjs.DEFAULT_LOGOUT_DIALOG_LABELS; }
|
|
3504
3504
|
});
|
|
3505
3505
|
Object.defineProperty(exports, "DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS", {
|
|
3506
3506
|
enumerable: true,
|
|
3507
|
-
get: function () { return
|
|
3507
|
+
get: function () { return chunk5XVWGJ2H_cjs.DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS; }
|
|
3508
3508
|
});
|
|
3509
3509
|
Object.defineProperty(exports, "DEFAULT_PROFILE_CARD_LABELS", {
|
|
3510
3510
|
enumerable: true,
|
|
3511
|
-
get: function () { return
|
|
3511
|
+
get: function () { return chunk5XVWGJ2H_cjs.DEFAULT_PROFILE_CARD_LABELS; }
|
|
3512
3512
|
});
|
|
3513
3513
|
Object.defineProperty(exports, "DEFAULT_SETTINGS_DANGER_ZONE_LABELS", {
|
|
3514
3514
|
enumerable: true,
|
|
3515
|
-
get: function () { return
|
|
3515
|
+
get: function () { return chunk5XVWGJ2H_cjs.DEFAULT_SETTINGS_DANGER_ZONE_LABELS; }
|
|
3516
3516
|
});
|
|
3517
3517
|
Object.defineProperty(exports, "DeleteAccountDialog", {
|
|
3518
3518
|
enumerable: true,
|
|
3519
|
-
get: function () { return
|
|
3519
|
+
get: function () { return chunk5XVWGJ2H_cjs.DeleteAccountDialog; }
|
|
3520
3520
|
});
|
|
3521
3521
|
Object.defineProperty(exports, "EMAIL_NOTIFICATION_CATEGORIES", {
|
|
3522
3522
|
enumerable: true,
|
|
3523
|
-
get: function () { return
|
|
3523
|
+
get: function () { return chunk5XVWGJ2H_cjs.EMAIL_NOTIFICATION_CATEGORIES; }
|
|
3524
3524
|
});
|
|
3525
3525
|
Object.defineProperty(exports, "EMAIL_NOTIFICATION_KEYS", {
|
|
3526
3526
|
enumerable: true,
|
|
3527
|
-
get: function () { return
|
|
3527
|
+
get: function () { return chunk5XVWGJ2H_cjs.EMAIL_NOTIFICATION_KEYS; }
|
|
3528
3528
|
});
|
|
3529
3529
|
Object.defineProperty(exports, "IdentityVerificationCard", {
|
|
3530
3530
|
enumerable: true,
|
|
3531
|
-
get: function () { return
|
|
3531
|
+
get: function () { return chunk5XVWGJ2H_cjs.IdentityVerificationCard; }
|
|
3532
3532
|
});
|
|
3533
3533
|
Object.defineProperty(exports, "IdentityVerificationDialog", {
|
|
3534
3534
|
enumerable: true,
|
|
3535
|
-
get: function () { return
|
|
3535
|
+
get: function () { return chunk5XVWGJ2H_cjs.IdentityVerificationDialog; }
|
|
3536
3536
|
});
|
|
3537
3537
|
Object.defineProperty(exports, "LogoutDialog", {
|
|
3538
3538
|
enumerable: true,
|
|
3539
|
-
get: function () { return
|
|
3539
|
+
get: function () { return chunk5XVWGJ2H_cjs.LogoutDialog; }
|
|
3540
3540
|
});
|
|
3541
3541
|
Object.defineProperty(exports, "NotificationCategoryList", {
|
|
3542
3542
|
enumerable: true,
|
|
3543
|
-
get: function () { return
|
|
3543
|
+
get: function () { return chunk5XVWGJ2H_cjs.NotificationCategoryList; }
|
|
3544
3544
|
});
|
|
3545
3545
|
Object.defineProperty(exports, "PasswordChangeDialog", {
|
|
3546
3546
|
enumerable: true,
|
|
3547
|
-
get: function () { return
|
|
3547
|
+
get: function () { return chunk5XVWGJ2H_cjs.PasswordChangeDialog; }
|
|
3548
3548
|
});
|
|
3549
3549
|
Object.defineProperty(exports, "ProfileCard", {
|
|
3550
3550
|
enumerable: true,
|
|
3551
|
-
get: function () { return
|
|
3551
|
+
get: function () { return chunk5XVWGJ2H_cjs.ProfileCard; }
|
|
3552
3552
|
});
|
|
3553
3553
|
Object.defineProperty(exports, "RequireVerified", {
|
|
3554
3554
|
enumerable: true,
|
|
3555
|
-
get: function () { return
|
|
3555
|
+
get: function () { return chunk5XVWGJ2H_cjs.RequireVerified; }
|
|
3556
3556
|
});
|
|
3557
3557
|
Object.defineProperty(exports, "SettingsActionRow", {
|
|
3558
3558
|
enumerable: true,
|
|
3559
|
-
get: function () { return
|
|
3559
|
+
get: function () { return chunk5XVWGJ2H_cjs.SettingsActionRow; }
|
|
3560
3560
|
});
|
|
3561
3561
|
Object.defineProperty(exports, "SettingsCard", {
|
|
3562
3562
|
enumerable: true,
|
|
3563
|
-
get: function () { return
|
|
3563
|
+
get: function () { return chunk5XVWGJ2H_cjs.SettingsCard; }
|
|
3564
3564
|
});
|
|
3565
3565
|
Object.defineProperty(exports, "SettingsDangerZone", {
|
|
3566
3566
|
enumerable: true,
|
|
3567
|
-
get: function () { return
|
|
3567
|
+
get: function () { return chunk5XVWGJ2H_cjs.SettingsDangerZone; }
|
|
3568
3568
|
});
|
|
3569
3569
|
Object.defineProperty(exports, "SettingsPanel", {
|
|
3570
3570
|
enumerable: true,
|
|
3571
|
-
get: function () { return
|
|
3571
|
+
get: function () { return chunk5XVWGJ2H_cjs.SettingsPanel; }
|
|
3572
3572
|
});
|
|
3573
3573
|
Object.defineProperty(exports, "SettingsRow", {
|
|
3574
3574
|
enumerable: true,
|
|
3575
|
-
get: function () { return
|
|
3575
|
+
get: function () { return chunk5XVWGJ2H_cjs.SettingsRow; }
|
|
3576
3576
|
});
|
|
3577
3577
|
Object.defineProperty(exports, "SettingsSection", {
|
|
3578
3578
|
enumerable: true,
|
|
3579
|
-
get: function () { return
|
|
3579
|
+
get: function () { return chunk5XVWGJ2H_cjs.SettingsSection; }
|
|
3580
3580
|
});
|
|
3581
3581
|
Object.defineProperty(exports, "SettingsSwitchGroup", {
|
|
3582
3582
|
enumerable: true,
|
|
3583
|
-
get: function () { return
|
|
3583
|
+
get: function () { return chunk5XVWGJ2H_cjs.SettingsSwitchGroup; }
|
|
3584
3584
|
});
|
|
3585
3585
|
Object.defineProperty(exports, "SettingsSwitchRow", {
|
|
3586
3586
|
enumerable: true,
|
|
3587
|
-
get: function () { return
|
|
3587
|
+
get: function () { return chunk5XVWGJ2H_cjs.SettingsSwitchRow; }
|
|
3588
3588
|
});
|
|
3589
3589
|
Object.defineProperty(exports, "formatSessionTtl", {
|
|
3590
3590
|
enumerable: true,
|
|
3591
|
-
get: function () { return
|
|
3591
|
+
get: function () { return chunk5XVWGJ2H_cjs.formatSessionTtl; }
|
|
3592
3592
|
});
|
|
3593
3593
|
Object.defineProperty(exports, "toActiveSessionViews", {
|
|
3594
3594
|
enumerable: true,
|
|
3595
|
-
get: function () { return
|
|
3595
|
+
get: function () { return chunk5XVWGJ2H_cjs.toActiveSessionViews; }
|
|
3596
3596
|
});
|
|
3597
3597
|
Object.defineProperty(exports, "toDeleteBlockerViews", {
|
|
3598
3598
|
enumerable: true,
|
|
3599
|
-
get: function () { return
|
|
3599
|
+
get: function () { return chunk5XVWGJ2H_cjs.toDeleteBlockerViews; }
|
|
3600
3600
|
});
|
|
3601
3601
|
Object.defineProperty(exports, "toLogoutSessionViews", {
|
|
3602
3602
|
enumerable: true,
|
|
3603
|
-
get: function () { return
|
|
3603
|
+
get: function () { return chunk5XVWGJ2H_cjs.toLogoutSessionViews; }
|
|
3604
3604
|
});
|
|
3605
3605
|
Object.defineProperty(exports, "toNotificationCategories", {
|
|
3606
3606
|
enumerable: true,
|
|
3607
|
-
get: function () { return
|
|
3607
|
+
get: function () { return chunk5XVWGJ2H_cjs.toNotificationCategories; }
|
|
3608
3608
|
});
|
|
3609
3609
|
Object.defineProperty(exports, "ModalBreadcrumbHeader", {
|
|
3610
3610
|
enumerable: true,
|
package/dist/settings/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { ActiveSessionsDialog, AvatarPicker, DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS, DEFAULT_AVATAR_PICKER_LABELS, DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS, DEFAULT_IDENTITY_VERIFICATION_LABELS, DEFAULT_LOGOUT_DIALOG_LABELS, DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS, DEFAULT_PROFILE_CARD_LABELS, DEFAULT_SETTINGS_DANGER_ZONE_LABELS, DeleteAccountDialog, EMAIL_NOTIFICATION_CATEGORIES, EMAIL_NOTIFICATION_KEYS, IdentityVerificationCard, IdentityVerificationDialog, LogoutDialog, NotificationCategoryList, PasswordChangeDialog, ProfileCard, RequireVerified, SettingsActionRow, SettingsCard, SettingsDangerZone, SettingsPanel, SettingsRow, SettingsSection, SettingsSwitchGroup, SettingsSwitchRow, formatSessionTtl, toActiveSessionViews, toDeleteBlockerViews, toLogoutSessionViews, toNotificationCategories } from '../chunk-
|
|
2
|
+
export { ActiveSessionsDialog, AvatarPicker, DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS, DEFAULT_AVATAR_PICKER_LABELS, DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS, DEFAULT_IDENTITY_VERIFICATION_LABELS, DEFAULT_LOGOUT_DIALOG_LABELS, DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS, DEFAULT_PROFILE_CARD_LABELS, DEFAULT_SETTINGS_DANGER_ZONE_LABELS, DeleteAccountDialog, EMAIL_NOTIFICATION_CATEGORIES, EMAIL_NOTIFICATION_KEYS, IdentityVerificationCard, IdentityVerificationDialog, LogoutDialog, NotificationCategoryList, PasswordChangeDialog, ProfileCard, RequireVerified, SettingsActionRow, SettingsCard, SettingsDangerZone, SettingsPanel, SettingsRow, SettingsSection, SettingsSwitchGroup, SettingsSwitchRow, formatSessionTtl, toActiveSessionViews, toDeleteBlockerViews, toLogoutSessionViews, toNotificationCategories } from '../chunk-O35LRB3P.js';
|
|
3
3
|
export { ModalBreadcrumbHeader, ModalCrumbs } from '../chunk-RC6VTY2H.js';
|
|
4
4
|
import { UsageMeter } from '../chunk-D5T53XCL.js';
|
|
5
5
|
export { DEFAULT_DOCUMENT_PICKER_LABELS, DEFAULT_TRI_STATE_FILTER_MENU_LABELS, DocumentPicker, MultiSelect, TriStateFilterMenu } from '../chunk-CKB64Z4R.js';
|
|
6
6
|
import { TabHeader } from '../chunk-4WWM3GQ5.js';
|
|
7
7
|
import { TONE_BORDER, TONE_SURFACE, ToneBadge } from '../chunk-DPLRHEJZ.js';
|
|
8
8
|
import '../chunk-VILAPTCB.js';
|
|
9
|
-
import '../chunk-NPLYHR2E.js';
|
|
10
|
-
import { formatCount } from '../chunk-OXF2IFXG.js';
|
|
11
9
|
import { ModalScaffold, ModalSection, ModalSectionTitle, ModalHeader } from '../chunk-TX2ZICS7.js';
|
|
12
10
|
export { MODAL_SECTION_TITLE_CLASS, ModalHeader, ModalScaffold, ModalSection, ModalSectionTitle } from '../chunk-TX2ZICS7.js';
|
|
11
|
+
import '../chunk-NPLYHR2E.js';
|
|
12
|
+
import { formatCount } from '../chunk-OXF2IFXG.js';
|
|
13
13
|
import { testIdOr, prefixedTestId } from '../chunk-7F6CBP3Z.js';
|
|
14
14
|
import '../chunk-VUNV25KB.js';
|
|
15
15
|
import { useMemo, useRef, useState, useId, Fragment as Fragment$1 } from 'react';
|
package/dist/tags/TagMatrix.d.ts
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* A label's children as a matrix: one row per child label, a column per field they share,
|
|
3
3
|
* editable in place by type (text, number, date, checkbox, choice, person), and the evidence behind
|
|
4
4
|
* each row (its linked documents and facts, with counts). Rows with no evidence are marked as
|
|
5
|
-
* gaps. A row can be added (a new child label), and the matrix exported as a document
|
|
5
|
+
* gaps. A row can be added (a new child label), and the matrix exported as a Word document
|
|
6
|
+
* snapshot (filed in the workspace) or downloaded.
|
|
6
7
|
* The data and every write come from the host (`ConnectedTagMatrix` binds them to ARBI).
|
|
7
8
|
*/
|
|
8
9
|
import { type ReactNode } from 'react';
|
|
@@ -28,6 +29,7 @@ export interface TagMatrixLabels {
|
|
|
28
29
|
add: string;
|
|
29
30
|
export: string;
|
|
30
31
|
exporting: string;
|
|
32
|
+
download: string;
|
|
31
33
|
empty: string;
|
|
32
34
|
loading: string;
|
|
33
35
|
noColumns: string;
|
|
@@ -48,8 +50,10 @@ export interface TagMatrixProps {
|
|
|
48
50
|
onOpenFact?: (factId: string) => void;
|
|
49
51
|
/** Open a row's label (all its evidence). */
|
|
50
52
|
onOpenRow?: (tagId: string) => void;
|
|
51
|
-
/** Export the matrix as it stands. Absent: no export button. */
|
|
53
|
+
/** Export the matrix as it stands (filed as a document). Absent: no export button. */
|
|
52
54
|
onExport?: () => void | Promise<unknown>;
|
|
55
|
+
/** Download the matrix as it stands as a file. Absent: no download button. */
|
|
56
|
+
onDownload?: () => void | Promise<unknown>;
|
|
53
57
|
/** Who a person column offers. */
|
|
54
58
|
people?: ReadonlyArray<{
|
|
55
59
|
value: string;
|
|
@@ -61,4 +65,4 @@ export interface TagMatrixProps {
|
|
|
61
65
|
className?: string;
|
|
62
66
|
testId?: string;
|
|
63
67
|
}
|
|
64
|
-
export declare function TagMatrix({ matrix, isLoading, onChangeValue, onAddRow, onOpenDocument, onOpenFact, onOpenRow, onExport, people, actions, labels, className, testId, }: TagMatrixProps): import("react").JSX.Element;
|
|
68
|
+
export declare function TagMatrix({ matrix, isLoading, onChangeValue, onAddRow, onOpenDocument, onOpenFact, onOpenRow, onExport, onDownload, people, actions, labels, className, testId, }: TagMatrixProps): import("react").JSX.Element;
|
package/dist/tags/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
/** A label's children as an editable matrix with their evidence (`TagMatrix`). */
|
|
2
2
|
export { TagMatrix, DEFAULT_TAG_MATRIX_LABELS, type TagMatrixProps, type TagMatrixLabels, } from './TagMatrix';
|
|
3
3
|
export { tagMatrixColumns, tagMatrixMarkdown, cellValue, cellText, parseCell, isGap, type TagMatrixData, type TagMatrixRowData, type TagMatrixField, type TagMatrixFieldType, type TagMatrixMarkdownOptions, } from './tagMatrixModel';
|
|
4
|
+
export { tagMatrixDocx, tagMatrixDocumentXml, DEFAULT_TAG_MATRIX_DOCX_LABELS, TAG_MATRIX_DOCX_LANDSCAPE_AFTER, type TagMatrixDocxLabels, type TagMatrixDocxOptions, } from './tagMatrixDocx';
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The tag matrix as a Word document: a title, when the snapshot was taken, then one table with a
|
|
3
|
+
* row per item, a column per field, the evidence behind it (linked document names and fact
|
|
4
|
+
* excerpts) and its gaps. Written straight as WordprocessingML and zipped with `fflate` (already a
|
|
5
|
+
* dependency, and what `docx/export.ts` uses), so the result opens in the native Word editor and
|
|
6
|
+
* in Word without pulling the editor engine into the tags module.
|
|
7
|
+
*/
|
|
8
|
+
import { type TagMatrixData } from './tagMatrixModel';
|
|
9
|
+
export declare const DOCX_MIME_TYPE = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
|
|
10
|
+
/** More table columns than this (item, fields, evidence, gaps) turn the page to landscape. */
|
|
11
|
+
export declare const TAG_MATRIX_DOCX_LANDSCAPE_AFTER = 6;
|
|
12
|
+
export interface TagMatrixDocxLabels {
|
|
13
|
+
/** The row column's heading. */
|
|
14
|
+
row: string;
|
|
15
|
+
evidence: string;
|
|
16
|
+
gaps: string;
|
|
17
|
+
/** `{at}` is the snapshot time, `YYYY-MM-DD HH:MM UTC`. */
|
|
18
|
+
takenAt: string;
|
|
19
|
+
/** A row with no linked document and no fact. */
|
|
20
|
+
noEvidence: string;
|
|
21
|
+
/** `{fields}`: the row's empty fields. */
|
|
22
|
+
missing: string;
|
|
23
|
+
/** `{count}` more links than listed. */
|
|
24
|
+
more: string;
|
|
25
|
+
document: string;
|
|
26
|
+
documents: string;
|
|
27
|
+
fact: string;
|
|
28
|
+
facts: string;
|
|
29
|
+
empty: string;
|
|
30
|
+
}
|
|
31
|
+
export declare const DEFAULT_TAG_MATRIX_DOCX_LABELS: TagMatrixDocxLabels;
|
|
32
|
+
export interface TagMatrixDocxOptions {
|
|
33
|
+
title: string;
|
|
34
|
+
nameOf?: (id: string) => string | undefined;
|
|
35
|
+
/** When the snapshot was taken (ISO); default now. */
|
|
36
|
+
at?: string;
|
|
37
|
+
labels?: Partial<TagMatrixDocxLabels>;
|
|
38
|
+
}
|
|
39
|
+
/** `word/document.xml` for the matrix (exposed for tests and for hosts that assemble their own package). */
|
|
40
|
+
export declare function tagMatrixDocumentXml(matrix: TagMatrixData, options: TagMatrixDocxOptions): string;
|
|
41
|
+
/** The matrix as `.docx` bytes. */
|
|
42
|
+
export declare function tagMatrixDocx(matrix: TagMatrixData, options: TagMatrixDocxOptions): Uint8Array;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var chunkMUMH3Z6K_cjs = require('../chunk-MUMH3Z6K.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunkVWK24TEY_cjs = require('../chunk-VWK24TEY.cjs');
|
|
6
6
|
require('../chunk-YJQVLVBJ.cjs');
|
|
7
7
|
require('../chunk-ZW6FPIFC.cjs');
|
|
8
8
|
var chunkBX7JWZWE_cjs = require('../chunk-BX7JWZWE.cjs');
|
|
@@ -17,12 +17,12 @@ require('../chunk-Z5VUZ6YD.cjs');
|
|
|
17
17
|
require('../chunk-7D737FLE.cjs');
|
|
18
18
|
require('../chunk-OB5F4577.cjs');
|
|
19
19
|
require('../chunk-C54XEN5T.cjs');
|
|
20
|
+
require('../chunk-ULWRNGGE.cjs');
|
|
20
21
|
require('../chunk-B4SRYJLM.cjs');
|
|
21
22
|
require('../chunk-7UTB4PHM.cjs');
|
|
22
23
|
require('../chunk-FX3K6LNZ.cjs');
|
|
23
24
|
require('../chunk-PPCATBOY.cjs');
|
|
24
25
|
require('../chunk-KDG6FER6.cjs');
|
|
25
|
-
require('../chunk-ULWRNGGE.cjs');
|
|
26
26
|
require('../chunk-MHVNT4J3.cjs');
|
|
27
27
|
require('../chunk-DES3K4SD.cjs');
|
|
28
28
|
var react = require('react');
|
|
@@ -1487,7 +1487,7 @@ function triggerFields(trigger, clearOthers) {
|
|
|
1487
1487
|
return {
|
|
1488
1488
|
timezone: trigger.timezone,
|
|
1489
1489
|
rrule: trigger.start === "repeat" ? trigger.rrule.trim() : none,
|
|
1490
|
-
run_at: trigger.start === "once" ?
|
|
1490
|
+
run_at: trigger.start === "once" ? chunkVWK24TEY_cjs.localInputToIso(trigger.runAt) : none,
|
|
1491
1491
|
event_kind: trigger.start === "event" ? trigger.eventKind.trim() : none,
|
|
1492
1492
|
// A step signal is `workflow_signal` narrowed to one signal name.
|
|
1493
1493
|
event_filter: filter ?? none,
|
|
@@ -1546,7 +1546,7 @@ function workflowRecordToBuilder(record) {
|
|
|
1546
1546
|
...record.skill_ref ? { workflow: record.skill_ref } : { run: { kind: "prompt", promptTemplate: record.prompt } }
|
|
1547
1547
|
}
|
|
1548
1548
|
] : [];
|
|
1549
|
-
const when =
|
|
1549
|
+
const when = chunkVWK24TEY_cjs.workflowWhen(record);
|
|
1550
1550
|
return {
|
|
1551
1551
|
workflow: {
|
|
1552
1552
|
id: record.external_id,
|
|
@@ -1560,7 +1560,7 @@ function workflowRecordToBuilder(record) {
|
|
|
1560
1560
|
trigger: {
|
|
1561
1561
|
...DEFAULT_WORKFLOW_TRIGGER,
|
|
1562
1562
|
start: when === "now" ? "manual" : when,
|
|
1563
|
-
runAt:
|
|
1563
|
+
runAt: chunkVWK24TEY_cjs.isoToLocalInput(record.run_at),
|
|
1564
1564
|
rrule: record.rrule ?? "",
|
|
1565
1565
|
timezone: record.timezone || DEFAULT_WORKFLOW_TRIGGER.timezone,
|
|
1566
1566
|
eventKind: record.event_kind ?? "",
|
|
@@ -1616,7 +1616,7 @@ function triggerSummary(trigger, options = {}) {
|
|
|
1616
1616
|
case "once":
|
|
1617
1617
|
return trigger.runAt ? new Date(trigger.runAt).toLocaleString() : l.starts.once;
|
|
1618
1618
|
case "repeat":
|
|
1619
|
-
return trigger.rrule ?
|
|
1619
|
+
return trigger.rrule ? chunkVWK24TEY_cjs.describeRRule(trigger.rrule) : l.starts.repeat;
|
|
1620
1620
|
case "event":
|
|
1621
1621
|
if (isSignalTrigger(trigger))
|
|
1622
1622
|
return trigger.signal ? l.signalSummary.replace("{signal}", trigger.signal) : l.stepSignals;
|
|
@@ -1675,7 +1675,7 @@ function TriggerInspector({
|
|
|
1675
1675
|
}
|
|
1676
1676
|
)
|
|
1677
1677
|
] }),
|
|
1678
|
-
trigger.start === "repeat" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1678
|
+
trigger.start === "repeat" && /* @__PURE__ */ jsxRuntime.jsx(chunkVWK24TEY_cjs.RecurrenceBuilder, { rrule: trigger.rrule, onChange: (rrule) => set({ rrule }) }),
|
|
1679
1679
|
trigger.start === "event" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
|
|
1680
1680
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { className: "text-xs", children: l.event }),
|
|
1681
1681
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -1727,7 +1727,7 @@ function TriggerInspector({
|
|
|
1727
1727
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
|
|
1728
1728
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { className: "text-xs", children: l.agent }),
|
|
1729
1729
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1730
|
-
|
|
1730
|
+
chunkVWK24TEY_cjs.AgentSelect,
|
|
1731
1731
|
{
|
|
1732
1732
|
agents,
|
|
1733
1733
|
value: trigger.agentId,
|
|
@@ -2578,7 +2578,7 @@ function WorkflowPreview({
|
|
|
2578
2578
|
renderIcon,
|
|
2579
2579
|
testId
|
|
2580
2580
|
}) {
|
|
2581
|
-
const run =
|
|
2581
|
+
const run = chunkVWK24TEY_cjs.useWorkflowPreview(workflow, {
|
|
2582
2582
|
resolveWorkflow: (id) => workflows.find((w) => w.id === id),
|
|
2583
2583
|
compose,
|
|
2584
2584
|
answer
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useConnection } from '../chunk-OYMWV45N.js';
|
|
3
|
-
import { workflowWhen, isoToLocalInput, describeRRule, RecurrenceBuilder, AgentSelect, useWorkflowPreview, localInputToIso } from '../chunk-
|
|
3
|
+
import { workflowWhen, isoToLocalInput, describeRRule, RecurrenceBuilder, AgentSelect, useWorkflowPreview, localInputToIso } from '../chunk-IRG5LPDP.js';
|
|
4
4
|
import '../chunk-CKB64Z4R.js';
|
|
5
5
|
import '../chunk-P6GHJSLR.js';
|
|
6
6
|
import { workflowSteps, dependsOn, stepLevels, isIncompleteSignal, runFields, upstreamSteps, stepDependencies, canAssign, fromPlanSteps, layoutFromPlanSteps, validateWorkflowGraph, stepConfigProblems, WorkflowRunner, skillToWorkflow, assigneeName, orderSteps, toPlanSteps } from '../chunk-THCFZKTM.js';
|
|
@@ -15,12 +15,12 @@ import '../chunk-DDF5GPIJ.js';
|
|
|
15
15
|
import '../chunk-XD2M6LIG.js';
|
|
16
16
|
import '../chunk-S7PSMMRG.js';
|
|
17
17
|
import '../chunk-76JDDMSP.js';
|
|
18
|
+
import '../chunk-TX2ZICS7.js';
|
|
18
19
|
import '../chunk-HOXKR26S.js';
|
|
19
20
|
import '../chunk-AA3PT6KR.js';
|
|
20
21
|
import '../chunk-SLSBJRWW.js';
|
|
21
22
|
import '../chunk-NPLYHR2E.js';
|
|
22
23
|
import '../chunk-OXF2IFXG.js';
|
|
23
|
-
import '../chunk-TX2ZICS7.js';
|
|
24
24
|
import '../chunk-7F6CBP3Z.js';
|
|
25
25
|
import '../chunk-VUNV25KB.js';
|
|
26
26
|
import { useMemo, useState, useEffect, useCallback, useRef } from 'react';
|
|
@@ -5,9 +5,9 @@ var chunkXZIYRKLW_cjs = require('../chunk-XZIYRKLW.cjs');
|
|
|
5
5
|
var chunkXAJIKT6Y_cjs = require('../chunk-XAJIKT6Y.cjs');
|
|
6
6
|
var chunkOB5F4577_cjs = require('../chunk-OB5F4577.cjs');
|
|
7
7
|
require('../chunk-C54XEN5T.cjs');
|
|
8
|
-
var chunkKDG6FER6_cjs = require('../chunk-KDG6FER6.cjs');
|
|
9
8
|
var chunk7G2LJMUG_cjs = require('../chunk-7G2LJMUG.cjs');
|
|
10
9
|
var chunkULWRNGGE_cjs = require('../chunk-ULWRNGGE.cjs');
|
|
10
|
+
var chunkKDG6FER6_cjs = require('../chunk-KDG6FER6.cjs');
|
|
11
11
|
require('../chunk-DES3K4SD.cjs');
|
|
12
12
|
var react = require('react');
|
|
13
13
|
var lucideReact = require('lucide-react');
|
package/dist/workspaces/index.js
CHANGED
|
@@ -3,9 +3,9 @@ import { CollapsibleSection, KeyValueRow } from '../chunk-LGBAZD37.js';
|
|
|
3
3
|
import { MemberAvatarStack } from '../chunk-XNOASBGW.js';
|
|
4
4
|
import { ActionLink } from '../chunk-S7PSMMRG.js';
|
|
5
5
|
import '../chunk-76JDDMSP.js';
|
|
6
|
-
import { fromNow, fmtDate } from '../chunk-OXF2IFXG.js';
|
|
7
6
|
export { RoleBadge, WorkspaceTypeBadgeView } from '../chunk-NBV56SGU.js';
|
|
8
7
|
import { ModalHeader } from '../chunk-TX2ZICS7.js';
|
|
8
|
+
import { fromNow, fmtDate } from '../chunk-OXF2IFXG.js';
|
|
9
9
|
import '../chunk-VUNV25KB.js';
|
|
10
10
|
import { createContext, useContext, useMemo, useState, useCallback, useId } from 'react';
|
|
11
11
|
import { FileText, MessagesSquare, Users, Check, ChevronRight, UserPlus, LogOut, AlertCircle, Plus, ArrowUpRight, AlignLeft, Globe, CreditCard, Loader2, FolderLock } from 'lucide-react';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arbidocs/blocks",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.82",
|
|
4
4
|
"description": "Composable, domain-neutral UI blocks for ARBI apps, organised by capability (retrieval, facts, agents, workspaces, citations, collaboration) plus shell, theme and site primitives, on top of @arbidocs/react.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -266,8 +266,8 @@
|
|
|
266
266
|
"example:test:e2e": "playwright test -c examples/custom-ui/playwright.config.ts"
|
|
267
267
|
},
|
|
268
268
|
"dependencies": {
|
|
269
|
-
"@arbidocs/client": "0.4.
|
|
270
|
-
"@arbidocs/coedit": "0.4.
|
|
269
|
+
"@arbidocs/client": "0.4.82",
|
|
270
|
+
"@arbidocs/coedit": "0.4.82",
|
|
271
271
|
"@dnd-kit/core": "^6.3.1",
|
|
272
272
|
"@dnd-kit/sortable": "^10.0.0",
|
|
273
273
|
"@dnd-kit/utilities": "^3.2.2",
|
|
@@ -293,7 +293,7 @@
|
|
|
293
293
|
"zustand": "^5.0.14"
|
|
294
294
|
},
|
|
295
295
|
"peerDependencies": {
|
|
296
|
-
"@arbidocs/react": "0.4.
|
|
296
|
+
"@arbidocs/react": "0.4.82",
|
|
297
297
|
"@docx-editor.dev/core": "2.28.0",
|
|
298
298
|
"@docx-editor.dev/react": "2.28.0",
|
|
299
299
|
"@mdxeditor/editor": "^4.0.4",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tags/tagMatrixModel.ts","../src/tags/TagMatrix.tsx"],"names":[],"mappings":"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","file":"chunk-SWSVPQNB.js","sourcesContent":["/**\n * The tag matrix as data: a parent label's child labels are the rows, the fields they share (the\n * parent's, then any a row adds) the columns, and each row's linked documents and facts its\n * evidence. Pure helpers for `TagMatrix`: the columns, a row's value, the gaps, and the snapshot\n * as a Markdown document.\n */\n\nimport type { components } from '@arbidocs/client'\n\nexport type TagMatrixData = components['schemas']['TagMatrixResponse']\nexport type TagMatrixRowData = components['schemas']['TagMatrixRow']\nexport type TagMatrixField = components['schemas']['TagField']\nexport type TagMatrixFieldType = TagMatrixField['type']\n\n/**\n * The columns: the parent's fields (shared by every row), then fields only some rows define,\n * each once, in the order first seen. Mirrors the SDK's `tagMatrixColumns`.\n */\nexport function tagMatrixColumns(matrix: TagMatrixData | null | undefined): TagMatrixField[] {\n const columns: TagMatrixField[] = []\n const add = (f: TagMatrixField) => {\n if (!columns.some((c) => c.id === f.id)) columns.push(f)\n }\n for (const f of matrix?.parent?.fields ?? []) add(f)\n for (const row of matrix?.rows ?? []) for (const f of row.tag.fields ?? []) add(f)\n return columns\n}\n\n/** A row's value for a column (values are keyed by field id). */\nexport const cellValue = (row: TagMatrixRowData, column: TagMatrixField): unknown =>\n row.tag.field_values?.[column.id]\n\n/** A row with nothing behind it: no linked document and no fact. */\nexport const isGap = (row: TagMatrixRowData): boolean => row.doc_count + row.fact_count === 0\n\n/** A value as text (a person by name, a checkbox as yes or no, blank as empty). */\nexport function cellText(\n value: unknown,\n column: Pick<TagMatrixField, 'type'>,\n nameOf?: (id: string) => string | undefined\n): string {\n if (value === undefined || value === null || value === '') return ''\n if (column.type === 'checkbox') return value ? 'Yes' : 'No'\n if (column.type === 'person' && typeof value === 'string') return nameOf?.(value) ?? value\n if (Array.isArray(value)) return value.map(String).join(', ')\n return String(value)\n}\n\n/** A typed input's text back as the value to store (`null` clears it). */\nexport function parseCell(text: string, type: TagMatrixFieldType): unknown {\n const t = text.trim()\n if (t === '') return null\n if (type === 'number') {\n const n = Number(t)\n return Number.isNaN(n) ? null : n\n }\n return t\n}\n\nconst escapeCell = (text: string) => text.replace(/\\|/g, '\\\\|').replace(/\\n+/g, ' ')\n\nexport interface TagMatrixMarkdownOptions {\n title: string\n /** The evidence column's heading. */\n evidence?: string\n /** The row column's heading. */\n rowHeading?: string\n nameOf?: (id: string) => string | undefined\n /** When the snapshot was taken (ISO); default now. */\n at?: string\n}\n\n/**\n * The matrix as a Markdown document: a heading, when it was taken, and one table (a row per\n * label, a column per field, then the evidence counts). What a host files or has signed.\n */\nexport function tagMatrixMarkdown(\n matrix: TagMatrixData,\n options: TagMatrixMarkdownOptions\n): string {\n const columns = tagMatrixColumns(matrix)\n const heads = [\n options.rowHeading ?? 'Item',\n ...columns.map((c) => c.name),\n options.evidence ?? 'Evidence',\n ]\n const lines = [\n `# ${options.title}`,\n '',\n `_Snapshot taken ${new Date(options.at ?? Date.now()).toISOString().slice(0, 16).replace('T', ' ')} UTC_`,\n '',\n `| ${heads.map(escapeCell).join(' | ')} |`,\n `| ${heads.map(() => '---').join(' | ')} |`,\n ]\n for (const row of matrix.rows ?? []) {\n const evidence = [\n `${row.doc_count} document${row.doc_count === 1 ? '' : 's'}`,\n `${row.fact_count} fact${row.fact_count === 1 ? '' : 's'}`,\n ].join(', ')\n const cells = [\n row.tag.name,\n ...columns.map((c) => cellText(cellValue(row, c), c, options.nameOf)),\n evidence,\n ]\n lines.push(`| ${cells.map(escapeCell).join(' | ')} |`)\n }\n return `${lines.join('\\n')}\\n`\n}\n","/**\n * A label's children as a matrix: one row per child label, a column per field they share,\n * editable in place by type (text, number, date, checkbox, choice, person), and the evidence behind\n * each row (its linked documents and facts, with counts). Rows with no evidence are marked as\n * gaps. A row can be added (a new child label), and the matrix exported as a document snapshot.\n * The data and every write come from the host (`ConnectedTagMatrix` binds them to ARBI).\n */\n\nimport { useEffect, useMemo, useState, type ReactNode } from 'react'\nimport { AlertTriangle, FileDown, FileText, Lightbulb, Loader2, Plus } from 'lucide-react'\nimport { Button, Checkbox, Input, cn } from '@arbidocs/react/ui'\nimport {\n cellText,\n cellValue,\n isGap,\n parseCell,\n tagMatrixColumns,\n type TagMatrixData,\n type TagMatrixField,\n type TagMatrixRowData,\n} from './tagMatrixModel'\n\nexport interface TagMatrixLabels {\n row: string\n evidence: string\n /** `{count}` documents linked. */\n documents: string\n /** `{count}` facts linked. */\n facts: string\n /** One document, one fact. */\n document: string\n fact: string\n /** `{count}` more links than shown. */\n more: string\n gap: string\n gapsOnly: string\n /** `{count}` rows without evidence. */\n gapCount: string\n addRow: string\n addRowPlaceholder: string\n add: string\n export: string\n exporting: string\n empty: string\n loading: string\n noColumns: string\n choose: string\n yes: string\n}\n\nexport const DEFAULT_TAG_MATRIX_LABELS: TagMatrixLabels = {\n row: 'Item',\n evidence: 'Evidence',\n documents: '{count} documents',\n facts: '{count} facts',\n document: '1 document',\n fact: '1 fact',\n more: '+{count} more',\n gap: 'No evidence',\n gapsOnly: 'Show gaps only',\n gapCount: '{count} without evidence',\n addRow: 'Add row',\n addRowPlaceholder: 'Name of the new row',\n add: 'Add',\n export: 'Export as document',\n exporting: 'Exporting…',\n empty: 'No rows yet.',\n loading: 'Loading…',\n noColumns: 'No fields yet: add fields to the parent label to get columns.',\n choose: '—',\n yes: 'Yes',\n}\n\nexport interface TagMatrixProps {\n matrix: TagMatrixData | undefined\n isLoading?: boolean\n /** Change one cell (`null` clears it). Absent: read only. */\n onChangeValue?: (tagId: string, fieldId: string, value: unknown) => void | Promise<unknown>\n /** Add a row (a new child label). Absent: no \"Add row\". */\n onAddRow?: (name: string) => void | Promise<unknown>\n /** Open a linked document. */\n onOpenDocument?: (documentId: string) => void\n /** Open a linked fact. */\n onOpenFact?: (factId: string) => void\n /** Open a row's label (all its evidence). */\n onOpenRow?: (tagId: string) => void\n /** Export the matrix as it stands. Absent: no export button. */\n onExport?: () => void | Promise<unknown>\n /** Who a person column offers. */\n people?: ReadonlyArray<{ value: string; label: string }>\n /** Extra controls in the toolbar. */\n actions?: ReactNode\n labels?: Partial<TagMatrixLabels>\n className?: string\n testId?: string\n}\n\n/**\n * The row-label (\"Item\") column: wide enough for a legal issue's name to read, never so wide the\n * fields are pushed out of view. Long names wrap inside it (cut after three lines, in full in the\n * tooltip), so a label never runs into the next column.\n */\nconst ROW_LABEL_WIDTH = 'w-[18rem] min-w-[12rem] max-w-[18rem]'\nconst ROW_LABEL = 'line-clamp-3 whitespace-normal break-words'\n\n/** One editable cell: committed on blur or Enter (a checkbox and a choice at once). */\nfunction Cell({\n row,\n column,\n people,\n onChange,\n l,\n testId,\n}: {\n row: TagMatrixRowData\n column: TagMatrixField\n people?: TagMatrixProps['people']\n onChange?: TagMatrixProps['onChangeValue']\n l: TagMatrixLabels\n testId: string\n}) {\n const value = cellValue(row, column)\n const nameOf = (id: string) => people?.find((p) => p.value === id)?.label\n const shown = cellText(value, column, nameOf)\n const [draft, setDraft] = useState(shown)\n useEffect(() => setDraft(cellText(value, column)), [value, column])\n const set = (next: unknown) => void onChange?.(row.tag.external_id, column.id, next)\n\n if (!onChange)\n return (\n <span className=\"block truncate\" title={shown} data-testid={testId}>\n {shown || <span className=\"text-muted-foreground\">{l.choose}</span>}\n </span>\n )\n const field =\n 'h-8 w-full min-w-24 rounded-md border border-transparent bg-transparent px-1.5 text-sm hover:border-input focus:border-input focus:bg-background focus:outline-none'\n switch (column.type) {\n case 'checkbox':\n return (\n <Checkbox\n checked={value === true}\n onCheckedChange={(v) => set(v === true)}\n aria-label={`${row.tag.name}: ${column.name}`}\n data-testid={testId}\n />\n )\n case 'select':\n case 'person': {\n const options =\n column.type === 'select'\n ? (column.options ?? []).map((o) => ({ value: o, label: o }))\n : (people ?? [])\n return (\n <select\n className={cn(field, 'min-w-32 pr-6')}\n value={typeof value === 'string' ? value : ''}\n onChange={(e) => set(e.target.value || null)}\n aria-label={`${row.tag.name}: ${column.name}`}\n data-testid={testId}\n >\n <option value=\"\">{l.choose}</option>\n {options.map((o) => (\n <option key={o.value} value={o.value}>\n {o.label}\n </option>\n ))}\n {typeof value === 'string' && value && !options.some((o) => o.value === value) && (\n <option value={value}>{value}</option>\n )}\n </select>\n )\n }\n default: {\n const commit = () => {\n if (draft !== cellText(value, column)) set(parseCell(draft, column.type))\n }\n return (\n <input\n className={cn(field, 'min-w-32 pr-6')}\n type={column.type === 'number' ? 'number' : column.type === 'date' ? 'date' : 'text'}\n value={column.type === 'date' ? draft.slice(0, 10) : draft}\n onChange={(e) => setDraft(e.target.value)}\n onBlur={commit}\n onKeyDown={(e) => {\n if (e.key === 'Enter') (e.target as HTMLInputElement).blur()\n if (e.key === 'Escape') setDraft(cellText(value, column))\n }}\n aria-label={`${row.tag.name}: ${column.name}`}\n data-testid={testId}\n />\n )\n }\n }\n}\n\n/** What backs a row: its documents and facts as links, with counts and \"+N more\". */\nfunction Evidence({\n row,\n l,\n onOpenDocument,\n onOpenFact,\n onOpenRow,\n testId,\n}: {\n row: TagMatrixRowData\n l: TagMatrixLabels\n onOpenDocument?: (id: string) => void\n onOpenFact?: (id: string) => void\n onOpenRow?: (id: string) => void\n testId: string\n}) {\n if (isGap(row))\n return (\n <span\n className=\"inline-flex items-center gap-1 rounded-full bg-amber-500/15 px-2 py-0.5 text-xs font-medium text-amber-700 dark:text-amber-300\"\n data-testid={`${testId}-gap`}\n >\n <AlertTriangle className=\"size-3\" /> {l.gap}\n </span>\n )\n const docs = row.docs ?? []\n const facts = row.facts ?? []\n const more = row.doc_count - docs.length + (row.fact_count - facts.length)\n const chip =\n 'inline-flex max-w-44 items-center gap-1 truncate rounded-md border border-border px-1.5 py-0.5 text-xs hover:border-primary/40 hover:text-primary disabled:hover:border-border disabled:hover:text-inherit'\n return (\n <div className=\"flex flex-wrap items-center gap-1\" data-testid={testId}>\n <span className=\"mr-1 text-xs text-muted-foreground\">\n {[\n row.doc_count === 1\n ? l.document\n : row.doc_count\n ? l.documents.replace('{count}', String(row.doc_count))\n : null,\n row.fact_count === 1\n ? l.fact\n : row.fact_count\n ? l.facts.replace('{count}', String(row.fact_count))\n : null,\n ]\n .filter(Boolean)\n .join(' · ')}\n </span>\n {docs.map((d) => (\n <button\n key={d.doc_ext_id}\n type=\"button\"\n className={chip}\n title={d.note ? `${d.file_name}: ${d.note}` : d.file_name}\n disabled={!onOpenDocument}\n onClick={() => onOpenDocument?.(d.doc_ext_id)}\n data-testid={`${testId}-doc-${d.doc_ext_id}`}\n >\n <FileText className=\"size-3 shrink-0\" />\n <span className=\"truncate\">{d.file_name}</span>\n </button>\n ))}\n {facts.map((f) => (\n <button\n key={f.fact_ext_id}\n type=\"button\"\n className={chip}\n title={f.text}\n disabled={!onOpenFact}\n onClick={() => onOpenFact?.(f.fact_ext_id)}\n data-testid={`${testId}-fact-${f.fact_ext_id}`}\n >\n <Lightbulb className=\"size-3 shrink-0\" />\n <span className=\"truncate\">{f.text}</span>\n </button>\n ))}\n {more > 0 &&\n (onOpenRow ? (\n <button\n type=\"button\"\n className=\"text-xs text-primary hover:underline\"\n onClick={() => onOpenRow(row.tag.external_id)}\n data-testid={`${testId}-more`}\n >\n {l.more.replace('{count}', String(more))}\n </button>\n ) : (\n <span className=\"text-xs text-muted-foreground\" data-testid={`${testId}-more`}>\n {l.more.replace('{count}', String(more))}\n </span>\n ))}\n </div>\n )\n}\n\nexport function TagMatrix({\n matrix,\n isLoading,\n onChangeValue,\n onAddRow,\n onOpenDocument,\n onOpenFact,\n onOpenRow,\n onExport,\n people,\n actions,\n labels,\n className,\n testId = 'tag-matrix',\n}: TagMatrixProps) {\n const l = { ...DEFAULT_TAG_MATRIX_LABELS, ...labels }\n const columns = useMemo(() => tagMatrixColumns(matrix), [matrix])\n const rows = matrix?.rows ?? []\n const gaps = rows.filter(isGap).length\n const [gapsOnly, setGapsOnly] = useState(false)\n const [name, setName] = useState('')\n const [adding, setAdding] = useState(false)\n const [exporting, setExporting] = useState(false)\n const shown = gapsOnly ? rows.filter(isGap) : rows\n\n const add = async () => {\n const n = name.trim()\n if (!n || !onAddRow) return\n setAdding(true)\n try {\n await onAddRow(n)\n setName('')\n } finally {\n setAdding(false)\n }\n }\n\n return (\n <div className={cn('space-y-3', className)} data-testid={testId}>\n <div className=\"flex flex-wrap items-center gap-2\">\n {gaps > 0 && (\n <label className=\"flex items-center gap-2 text-sm\">\n <Checkbox\n checked={gapsOnly}\n onCheckedChange={(v) => setGapsOnly(v === true)}\n data-testid={`${testId}-gaps-only`}\n />\n {l.gapsOnly}\n <span className=\"text-xs text-amber-700 dark:text-amber-300\">\n ({l.gapCount.replace('{count}', String(gaps))})\n </span>\n </label>\n )}\n <div className=\"ml-auto flex flex-wrap items-center gap-2\">\n {actions}\n {onExport && (\n <Button\n variant=\"outline\"\n size=\"sm\"\n disabled={exporting || rows.length === 0}\n onClick={async () => {\n setExporting(true)\n try {\n await onExport()\n } finally {\n setExporting(false)\n }\n }}\n data-testid={`${testId}-export`}\n >\n {exporting ? (\n <Loader2 className=\"size-4 animate-spin\" />\n ) : (\n <FileDown className=\"size-4\" />\n )}\n {exporting ? l.exporting : l.export}\n </Button>\n )}\n </div>\n </div>\n\n {isLoading ? (\n <p className=\"flex items-center gap-2 text-sm text-muted-foreground\">\n <Loader2 className=\"size-4 animate-spin\" /> {l.loading}\n </p>\n ) : (\n <div className=\"overflow-x-auto rounded-lg border border-border\">\n <table className=\"w-full border-collapse text-sm\" data-testid={`${testId}-table`}>\n <thead className=\"bg-muted/40\">\n <tr>\n <th\n className={cn(\n ROW_LABEL_WIDTH,\n 'sticky left-0 z-10 bg-muted/40 px-3 py-2 text-left font-medium'\n )}\n >\n {l.row}\n </th>\n {columns.map((c) => (\n <th\n key={c.id}\n className=\"px-3 py-2 text-left font-medium\"\n data-testid={`${testId}-column-${c.id}`}\n >\n {c.name}\n </th>\n ))}\n <th className=\"px-3 py-2 text-left font-medium\">{l.evidence}</th>\n </tr>\n </thead>\n <tbody>\n {shown.map((row) => {\n const id = row.tag.external_id\n const gap = isGap(row)\n return (\n <tr\n key={id}\n className={cn('border-t border-border align-top', gap && 'bg-amber-500/5')}\n data-gap={gap || undefined}\n data-testid={`${testId}-row-${id}`}\n >\n <th\n scope=\"row\"\n className={cn(\n ROW_LABEL_WIDTH,\n 'sticky left-0 z-10 px-3 py-2 text-left font-medium',\n gap ? 'bg-amber-50 dark:bg-amber-950' : 'bg-background',\n gap && 'border-l-2 border-l-amber-500'\n )}\n >\n {onOpenRow ? (\n <button\n type=\"button\"\n className={cn(ROW_LABEL, 'text-left hover:text-primary hover:underline')}\n title={row.tag.name}\n onClick={() => onOpenRow(id)}\n data-testid={`${testId}-row-${id}-label`}\n >\n {row.tag.name}\n </button>\n ) : (\n <span\n className={ROW_LABEL}\n title={row.tag.name}\n data-testid={`${testId}-row-${id}-label`}\n >\n {row.tag.name}\n </span>\n )}\n </th>\n {columns.map((c) => (\n <td key={c.id} className=\"px-1.5 py-1\">\n <Cell\n row={row}\n column={c}\n people={people}\n onChange={onChangeValue}\n l={l}\n testId={`${testId}-cell-${id}-${c.id}`}\n />\n </td>\n ))}\n <td className=\"px-3 py-2\">\n <Evidence\n row={row}\n l={l}\n onOpenDocument={onOpenDocument}\n onOpenFact={onOpenFact}\n onOpenRow={onOpenRow}\n testId={`${testId}-evidence-${id}`}\n />\n </td>\n </tr>\n )\n })}\n {shown.length === 0 && (\n <tr>\n <td\n colSpan={columns.length + 2}\n className=\"px-3 py-6 text-center text-sm text-muted-foreground\"\n >\n {l.empty}\n </td>\n </tr>\n )}\n </tbody>\n </table>\n {columns.length === 0 && rows.length > 0 && (\n <p className=\"border-t border-border px-3 py-2 text-xs text-muted-foreground\">\n {l.noColumns}\n </p>\n )}\n </div>\n )}\n\n {onAddRow && (\n <form\n className=\"flex max-w-md items-center gap-2\"\n onSubmit={(e) => {\n e.preventDefault()\n void add()\n }}\n >\n <Input\n value={name}\n placeholder={l.addRowPlaceholder}\n aria-label={l.addRow}\n onChange={(e) => setName(e.target.value)}\n data-testid={`${testId}-add-name`}\n />\n <Button\n type=\"submit\"\n size=\"sm\"\n variant=\"outline\"\n disabled={!name.trim() || adding}\n data-testid={`${testId}-add`}\n >\n <Plus className=\"size-4\" /> {l.addRow}\n </Button>\n </form>\n )}\n </div>\n )\n}\n"]}
|