@arbidocs/blocks 0.4.37 → 0.4.38

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 (44) hide show
  1. package/dist/agents/index.cjs +222 -222
  2. package/dist/agents/index.js +3 -3
  3. package/dist/chat/index.cjs +123 -123
  4. package/dist/chat/index.js +2 -2
  5. package/dist/{chunk-Q6LF7N3A.cjs → chunk-2EI7NCUA.cjs} +6 -3
  6. package/dist/chunk-2EI7NCUA.cjs.map +1 -0
  7. package/dist/{chunk-ZDA5CZPS.js → chunk-EA6YX3GR.js} +3 -3
  8. package/dist/{chunk-ZDA5CZPS.js.map → chunk-EA6YX3GR.js.map} +1 -1
  9. package/dist/{chunk-L7B4W4LA.cjs → chunk-EEGPWOOG.cjs} +5 -5
  10. package/dist/{chunk-L7B4W4LA.cjs.map → chunk-EEGPWOOG.cjs.map} +1 -1
  11. package/dist/{chunk-DLVX6R6B.cjs → chunk-KMYLQIOH.cjs} +3 -3
  12. package/dist/{chunk-DLVX6R6B.cjs.map → chunk-KMYLQIOH.cjs.map} +1 -1
  13. package/dist/{chunk-PE7Z53RB.js → chunk-LQITIYBN.js} +3 -3
  14. package/dist/{chunk-PE7Z53RB.js.map → chunk-LQITIYBN.js.map} +1 -1
  15. package/dist/{chunk-M2YGPC5N.cjs → chunk-SKFSJHVU.cjs} +4 -4
  16. package/dist/{chunk-M2YGPC5N.cjs.map → chunk-SKFSJHVU.cjs.map} +1 -1
  17. package/dist/{chunk-24KQJYSB.js → chunk-SWON6O45.js} +3 -3
  18. package/dist/{chunk-24KQJYSB.js.map → chunk-SWON6O45.js.map} +1 -1
  19. package/dist/{chunk-AMXQQCCB.cjs → chunk-XDTYENKC.cjs} +6 -6
  20. package/dist/{chunk-AMXQQCCB.cjs.map → chunk-XDTYENKC.cjs.map} +1 -1
  21. package/dist/{chunk-DDW3M22Z.js → chunk-YU2KUMGE.js} +6 -3
  22. package/dist/chunk-YU2KUMGE.js.map +1 -0
  23. package/dist/{chunk-XWEJ5LV2.js → chunk-ZXYHBQFW.js} +3 -3
  24. package/dist/{chunk-XWEJ5LV2.js.map → chunk-ZXYHBQFW.js.map} +1 -1
  25. package/dist/connect/index.cjs +11 -11
  26. package/dist/connect/index.js +2 -2
  27. package/dist/facts/index.cjs +6 -6
  28. package/dist/facts/index.js +3 -3
  29. package/dist/files/ExplorerSurface.d.ts +6 -2
  30. package/dist/files/index.cjs +28 -15
  31. package/dist/files/index.cjs.map +1 -1
  32. package/dist/files/index.js +27 -14
  33. package/dist/files/index.js.map +1 -1
  34. package/dist/home/index.cjs +1 -1
  35. package/dist/home/index.js +1 -1
  36. package/dist/index.cjs +394 -394
  37. package/dist/index.js +6 -6
  38. package/dist/shell/index.cjs +5 -5
  39. package/dist/shell/index.js +2 -2
  40. package/dist/studio/index.cjs +4 -4
  41. package/dist/studio/index.js +3 -3
  42. package/package.json +4 -4
  43. package/dist/chunk-DDW3M22Z.js.map +0 -1
  44. package/dist/chunk-Q6LF7N3A.cjs.map +0 -1
package/dist/index.js CHANGED
@@ -10,26 +10,26 @@ export { ApplyLabelButton, ApplyLabelDialog, DEFAULT_APPLY_LABEL_DIALOG_LABELS,
10
10
  export { DEFAULT_SEARCH_HIT_LABELS, SearchHit } from './chunk-A2YAC22G.js';
11
11
  export { ActionCluster, AskField, AskRow, AskTrigger, DEFAULT_ASK_FIELD_LABELS, DEFAULT_INSTALL_PROMPT_LABELS, DEFAULT_MOBILE_BARS_LABELS, DEFAULT_OFFLINE_PILL_LABELS, DEFAULT_REMOTE_CONTROL_PILL_LABELS, DEFAULT_SIDEBAR_LABELS, DEFAULT_TIP_CARD_LABELS, DEFAULT_WORKSPACE_KIND_LABELS, DEFAULT_WORKSPACE_SWITCHER_LABELS, INSTALL_PROMPT_DISMISSED_KEY, InfoBar, InstallPrompt, MobileAppBar, MobileTabBar, NotificationBell, OfflinePill, RemoteControlPill, STATUS_ROW_BASE_CLASS, STATUS_ROW_TONES, Sidebar, SidebarBadgeRow, SidebarRowAction, SidebarRowHoverContext, SplitLayout, StatusBadge, StatusRow, TipCard, UserMenu, WorkspaceIdentity, WorkspaceSwitcher, getInstallInstructions, initInstallPrompt, isIosDevice, promptAppInstall, resolveSidebarLayout, useInstallPrompt, useSidebarContext, useSidebarSettle, workspaceKindColor, workspaceKindMeta } from './chunk-WYVCXY7R.js';
12
12
  export { UsageMeter } from './chunk-D5T53XCL.js';
13
- 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_SCHEMA_FORM_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_REVIEW_ACTIONS_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, DERIVED_NAME_WORDS, EMPTY_NEW_THREAD, EMPTY_WORKFLOW_SCOPE, EntityChip, GoalCriteria, MAX_TASK_DEPTH, NewThreadDialog, PersonPill, PillSelect, RecurrenceBuilder, SKILL_PROMPT_FALLBACK_PLACEHOLDER, SKILL_PROMPT_LABEL, STATUS_LABELS, STATUS_ORDER, STATUS_TONE, SchemaForm, 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, TaskReviewActions, TaskReviewDialog, TaskRunsDialog, TaskStartDialog, TaskStatusPill, TaskTable, TaskThreadChip, TaskTriggerChip, TasksToolbar, ThreadActivity, ThreadNotifyDialog, TupleArrayField, UploadTaskItem, UploadTaskList, WEEKDAYS, WORKFLOW_COLUMN_ORDER, WorkflowConfigDialog, WorkflowDocumentsField, WorkflowLauncher, WorkflowsTable, WorkflowsToolbar, agentConfigSectionToValues, agentCreatorToConfigSection, asTaskStatus, authModeFor, buildLaunch, buildRRule, buildTaskRows, buildWorkflowScopeSource, compactThreadActivity, composePersona, composeWorkflowPrompt, composerToTaskQuery, composerToWorkRequest, composerToWorkflowRequest, composerToWorkflowUpdate, createTaskColumns, createWorkflowColumns, createsWork, defaultInputs, defaultScopeRenderer, defaultTaskComposerValues, deriveAgentName, deriveWorkflowName, descendantIds, describeRRule, filterConversationRows, firstWords, formatElapsed, goalProgress, hasTaskFields, hasTrigger, humanizeSection, indexTasks, inferType, inputDocumentIds, inputsFromContext, isAgenticWorkflow, isEmptyWorkflowScope, isOutOfBounds, isPlainTodo, isSkillRow, isValidAgentName, isWorkflowScope, isoToLocalInput, localInputToIso, matchWorkflowScope, moveTargets, newThreadToRequest, nextCriterionId, ownerExtId, parseRRule, prettifyKey, promptFieldName, resolveScopeInputs, skillToWorkflow, stripPersonaPreamble, summarizeAgent, summarizeCapabilities, taskComposerToCreateRequest, taskComposerToUpdateRequest, taskNeedsAccess, taskToComposerValues, validateInputs, workflowAccepts, workflowFromFrontmatter, workflowStatus, workflowTaskFields, workflowToComposerValues, workflowTriggerType, workflowWhen, workflowsAccepting, workflowsForHost } from './chunk-ZDA5CZPS.js';
13
+ 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_SCHEMA_FORM_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_REVIEW_ACTIONS_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, DERIVED_NAME_WORDS, EMPTY_NEW_THREAD, EMPTY_WORKFLOW_SCOPE, EntityChip, GoalCriteria, MAX_TASK_DEPTH, NewThreadDialog, PersonPill, PillSelect, RecurrenceBuilder, SKILL_PROMPT_FALLBACK_PLACEHOLDER, SKILL_PROMPT_LABEL, STATUS_LABELS, STATUS_ORDER, STATUS_TONE, SchemaForm, 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, TaskReviewActions, TaskReviewDialog, TaskRunsDialog, TaskStartDialog, TaskStatusPill, TaskTable, TaskThreadChip, TaskTriggerChip, TasksToolbar, ThreadActivity, ThreadNotifyDialog, TupleArrayField, UploadTaskItem, UploadTaskList, WEEKDAYS, WORKFLOW_COLUMN_ORDER, WorkflowConfigDialog, WorkflowDocumentsField, WorkflowLauncher, WorkflowsTable, WorkflowsToolbar, agentConfigSectionToValues, agentCreatorToConfigSection, asTaskStatus, authModeFor, buildLaunch, buildRRule, buildTaskRows, buildWorkflowScopeSource, compactThreadActivity, composePersona, composeWorkflowPrompt, composerToTaskQuery, composerToWorkRequest, composerToWorkflowRequest, composerToWorkflowUpdate, createTaskColumns, createWorkflowColumns, createsWork, defaultInputs, defaultScopeRenderer, defaultTaskComposerValues, deriveAgentName, deriveWorkflowName, descendantIds, describeRRule, filterConversationRows, firstWords, formatElapsed, goalProgress, hasTaskFields, hasTrigger, humanizeSection, indexTasks, inferType, inputDocumentIds, inputsFromContext, isAgenticWorkflow, isEmptyWorkflowScope, isOutOfBounds, isPlainTodo, isSkillRow, isValidAgentName, isWorkflowScope, isoToLocalInput, localInputToIso, matchWorkflowScope, moveTargets, newThreadToRequest, nextCriterionId, ownerExtId, parseRRule, prettifyKey, promptFieldName, resolveScopeInputs, skillToWorkflow, stripPersonaPreamble, summarizeAgent, summarizeCapabilities, taskComposerToCreateRequest, taskComposerToUpdateRequest, taskNeedsAccess, taskToComposerValues, validateInputs, workflowAccepts, workflowFromFrontmatter, workflowStatus, workflowTaskFields, workflowToComposerValues, workflowTriggerType, workflowWhen, workflowsAccepting, workflowsForHost } from './chunk-EA6YX3GR.js';
14
14
  export { EmptyState } from './chunk-P6GHJSLR.js';
15
15
  import './chunk-RFXJYIDV.js';
16
16
  import './chunk-BUHKUKKB.js';
17
17
  import './chunk-LFGJAZ5H.js';
18
- export { DEFAULT_FILTER_FIELDS, DEFAULT_FILTER_INPUT_LABELS, FilterInput } from './chunk-DDW3M22Z.js';
18
+ export { DEFAULT_FILTER_FIELDS, DEFAULT_FILTER_INPUT_LABELS, FilterInput } from './chunk-YU2KUMGE.js';
19
19
  export { ActionLink } from './chunk-S7PSMMRG.js';
20
20
  import './chunk-CKB64Z4R.js';
21
21
  export { Dot, ToneBadge } from './chunk-DPLRHEJZ.js';
22
22
  export { DEFAULT_TAB_HEADER_LABELS, TabHeader } from './chunk-4WWM3GQ5.js';
23
23
  export { AccountRecoveryDialog, AuthAlert, AuthConsent, AuthDivider, AuthField, AuthFieldBadge, AuthFooterLinks, AuthHeading, AuthHero, AuthInput, AuthLayout, AuthLink, AuthNote, AuthOfflineBadge, AuthSubmitButton, AuthTabs, DEFAULT_ACCOUNT_RECOVERY_DIALOG_LABELS, DEFAULT_AUTH_CONSENT_LABELS, DEFAULT_AUTH_FOOTER_LINKS_LABELS, DEFAULT_AUTH_OFFLINE_BADGE_LABELS, DEFAULT_RECOVERY_KEY_DIALOG_LABELS, DEFAULT_REVEALABLE_PASSWORD_INPUT_LABELS, DEFAULT_SSO_LOGIN_BUTTON_LABELS, RecoveryKeyDialog, RevealablePasswordInput, SsoLoginButton } from './chunk-SFXVNFES.js';
24
24
  export { DEFAULT_PASSWORD_STRENGTH_INPUT_LABELS, PasswordStrengthInput } from './chunk-VILAPTCB.js';
25
- export { CitationEditor, DEFAULT_PASSAGE_PILL_LABELS, DEFAULT_QUIET_MARK_LABELS, LabelMark, NoteMark, PassageMark, PassagePill, QuietLink, useCopyText } from './chunk-XQKGYGCJ.js';
26
- export { BlocksProvider, useBlocksEnvironment } from './chunk-76JDDMSP.js';
27
- 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-PE7Z53RB.js';
28
- 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, Message, MessageActionButton, MessageActionMenu, MessageAlert, MessageBody, MessageBubble, MessageByline, MessageContent, MessageFooter, MessageList, MessageListBanner, MessageListEmpty, MessageListRoot, MessageListRow, MessageListRows, MessageListStatus, MessageListTail, MessageNarration, MessageRoot, MessageSources, MessageSubagentBadge, ScrollToBottom, SourceChip, toSpeakableText, useAssistantDock, useChatSurface, useMentionAutocomplete, useRegisterEmbeddedChat, useStreamAnnouncement } from './chunk-XWEJ5LV2.js';
25
+ 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-LQITIYBN.js';
26
+ 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, Message, MessageActionButton, MessageActionMenu, MessageAlert, MessageBody, MessageBubble, MessageByline, MessageContent, MessageFooter, MessageList, MessageListBanner, MessageListEmpty, MessageListRoot, MessageListRow, MessageListRows, MessageListStatus, MessageListTail, MessageNarration, MessageRoot, MessageSources, MessageSubagentBadge, ScrollToBottom, SourceChip, toSpeakableText, useAssistantDock, useChatSurface, useMentionAutocomplete, useRegisterEmbeddedChat, useStreamAnnouncement } from './chunk-ZXYHBQFW.js';
29
27
  export { DEFAULT_DOCK_WIDTH, Toaster } from './chunk-BV7FEMSI.js';
30
28
  export { BlocksTooltipProvider, DEFAULT_OVERLAY_ZONE_ID, DEFAULT_PAGE_CONTAINER_PADDING, DEFAULT_SIDEBAR_TOGGLE_BUTTON_LABELS, PageContainer, SHELL_BOTTOM_INSET_VAR, Shell, SidebarToggleButton, ToolButton, useDrawerBehavior, useOverlayZoneId, useShellBottomInset } from './chunk-KZJAG7T3.js';
31
29
  export { BREAKPOINT_QUERIES, useIsNarrow, useIsPhone, useIsTouchScreen, useMediaQuery } from './chunk-SLSBJRWW.js';
32
30
  import './chunk-NPLYHR2E.js';
31
+ export { CitationEditor, DEFAULT_PASSAGE_PILL_LABELS, DEFAULT_QUIET_MARK_LABELS, LabelMark, NoteMark, PassageMark, PassagePill, QuietLink, useCopyText } from './chunk-XQKGYGCJ.js';
32
+ export { BlocksProvider, useBlocksEnvironment } from './chunk-76JDDMSP.js';
33
33
  export { daysUntil, displayName, fmtDate, fmtDateTime, formatCount, formatCurrency, formatPageRefs, fromNow, hrs, initials, pct, pluralize } from './chunk-OXF2IFXG.js';
34
34
  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, MailFolderTree, MailMessagePreview, MemberBulkActions, MemberListLoading, MemberMutedText, MemberNameCell, MemberRoleCell, RecipientPicker, RoleSelect, WorkspaceDeleteButton, buildMailFolderTree, contactToVCard, descendantFolderIds, downloadVCard, isInboxFolder, parseEmails, toAddContactsRow, toAddContactsRows, toggleMailFolder, vCardFilename } from './chunk-OZJ5PXA6.js';
35
35
  import './chunk-NBV56SGU.js';
@@ -2,14 +2,14 @@
2
2
  'use strict';
3
3
 
4
4
  var chunk2EAE5JP6_cjs = require('../chunk-2EAE5JP6.cjs');
5
- var chunkQ6LF7N3A_cjs = require('../chunk-Q6LF7N3A.cjs');
5
+ var chunk2EI7NCUA_cjs = require('../chunk-2EI7NCUA.cjs');
6
6
  require('../chunk-OB5F4577.cjs');
7
7
  var chunk7RGLTF76_cjs = require('../chunk-7RGLTF76.cjs');
8
- require('../chunk-C54XEN5T.cjs');
9
8
  var chunkXKSFJYOD_cjs = require('../chunk-XKSFJYOD.cjs');
10
9
  var chunkVGOFFCMT_cjs = require('../chunk-VGOFFCMT.cjs');
11
10
  var chunkFX3K6LNZ_cjs = require('../chunk-FX3K6LNZ.cjs');
12
11
  require('../chunk-PPCATBOY.cjs');
12
+ require('../chunk-C54XEN5T.cjs');
13
13
  require('../chunk-MHVNT4J3.cjs');
14
14
 
15
15
 
@@ -192,15 +192,15 @@ Object.defineProperty(exports, "workspaceKindMeta", {
192
192
  });
193
193
  Object.defineProperty(exports, "DEFAULT_FILTER_FIELDS", {
194
194
  enumerable: true,
195
- get: function () { return chunkQ6LF7N3A_cjs.DEFAULT_FILTER_FIELDS; }
195
+ get: function () { return chunk2EI7NCUA_cjs.DEFAULT_FILTER_FIELDS; }
196
196
  });
197
197
  Object.defineProperty(exports, "DEFAULT_FILTER_INPUT_LABELS", {
198
198
  enumerable: true,
199
- get: function () { return chunkQ6LF7N3A_cjs.DEFAULT_FILTER_INPUT_LABELS; }
199
+ get: function () { return chunk2EI7NCUA_cjs.DEFAULT_FILTER_INPUT_LABELS; }
200
200
  });
201
201
  Object.defineProperty(exports, "FilterInput", {
202
202
  enumerable: true,
203
- get: function () { return chunkQ6LF7N3A_cjs.FilterInput; }
203
+ get: function () { return chunk2EI7NCUA_cjs.FilterInput; }
204
204
  });
205
205
  Object.defineProperty(exports, "DEFAULT_TAB_HEADER_LABELS", {
206
206
  enumerable: true,
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
  export { ActionCluster, AskField, AskRow, AskTrigger, DEFAULT_ASK_FIELD_LABELS, DEFAULT_INSTALL_PROMPT_LABELS, DEFAULT_MOBILE_BARS_LABELS, DEFAULT_OFFLINE_PILL_LABELS, DEFAULT_REMOTE_CONTROL_PILL_LABELS, DEFAULT_SIDEBAR_LABELS, DEFAULT_TIP_CARD_LABELS, DEFAULT_WORKSPACE_KIND_LABELS, DEFAULT_WORKSPACE_SWITCHER_LABELS, INSTALL_PROMPT_DISMISSED_KEY, InfoBar, InstallPrompt, MobileAppBar, MobileTabBar, NotificationBell, OfflinePill, RemoteControlPill, STATUS_ROW_BASE_CLASS, STATUS_ROW_TONES, Sidebar, SidebarBadgeRow, SidebarRowAction, SidebarRowHoverContext, SplitLayout, StatusBadge, StatusRow, TipCard, UserMenu, WorkspaceIdentity, WorkspaceSwitcher, getInstallInstructions, initInstallPrompt, isIosDevice, promptAppInstall, resolveSidebarLayout, useInstallPrompt, useSidebarContext, useSidebarSettle, workspaceKindColor, workspaceKindMeta } from '../chunk-WYVCXY7R.js';
3
- export { DEFAULT_FILTER_FIELDS, DEFAULT_FILTER_INPUT_LABELS, FilterInput } from '../chunk-DDW3M22Z.js';
3
+ export { DEFAULT_FILTER_FIELDS, DEFAULT_FILTER_INPUT_LABELS, FilterInput } from '../chunk-YU2KUMGE.js';
4
4
  import '../chunk-S7PSMMRG.js';
5
5
  export { DEFAULT_TAB_HEADER_LABELS, TabHeader } from '../chunk-4WWM3GQ5.js';
6
- import '../chunk-76JDDMSP.js';
7
6
  export { DEFAULT_DOCK_WIDTH, Toaster } from '../chunk-BV7FEMSI.js';
8
7
  export { DEFAULT_OVERLAY_ZONE_ID, DEFAULT_PAGE_CONTAINER_PADDING, DEFAULT_SIDEBAR_TOGGLE_BUTTON_LABELS, PageContainer, SHELL_BOTTOM_INSET_VAR, Shell, SidebarToggleButton, ToolButton, useDrawerBehavior, useOverlayZoneId, useShellBottomInset } from '../chunk-KZJAG7T3.js';
9
8
  export { BREAKPOINT_QUERIES, useIsNarrow, useIsPhone, useIsTouchScreen, useMediaQuery } from '../chunk-SLSBJRWW.js';
10
9
  import '../chunk-NPLYHR2E.js';
10
+ import '../chunk-76JDDMSP.js';
11
11
  import '../chunk-7F6CBP3Z.js';
12
12
  //# sourceMappingURL=index.js.map
13
13
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkM2YGPC5N_cjs = require('../chunk-M2YGPC5N.cjs');
4
+ var chunkSKFSJHVU_cjs = require('../chunk-SKFSJHVU.cjs');
5
5
  var chunk7QDX2CO4_cjs = require('../chunk-7QDX2CO4.cjs');
6
6
  var chunkMJCCBMM5_cjs = require('../chunk-MJCCBMM5.cjs');
7
7
  var chunkELR74ME6_cjs = require('../chunk-ELR74ME6.cjs');
@@ -9,10 +9,10 @@ require('../chunk-VPPX5XUF.cjs');
9
9
  var chunkPCB2BPN3_cjs = require('../chunk-PCB2BPN3.cjs');
10
10
  var chunkZW6FPIFC_cjs = require('../chunk-ZW6FPIFC.cjs');
11
11
  require('../chunk-OB5F4577.cjs');
12
- var chunkC54XEN5T_cjs = require('../chunk-C54XEN5T.cjs');
13
- require('../chunk-DLVX6R6B.cjs');
12
+ require('../chunk-KMYLQIOH.cjs');
14
13
  require('../chunk-VGOFFCMT.cjs');
15
14
  require('../chunk-PPCATBOY.cjs');
15
+ var chunkC54XEN5T_cjs = require('../chunk-C54XEN5T.cjs');
16
16
  var chunkKDG6FER6_cjs = require('../chunk-KDG6FER6.cjs');
17
17
  var chunkTLQQV7WW_cjs = require('../chunk-TLQQV7WW.cjs');
18
18
  require('../chunk-7UTB4PHM.cjs');
@@ -881,7 +881,7 @@ function latestImageDocId(artifacts) {
881
881
  return null;
882
882
  }
883
883
  function useImageGen() {
884
- const task = chunkM2YGPC5N_cjs.useConnectedAiTask();
884
+ const task = chunkSKFSJHVU_cjs.useConnectedAiTask();
885
885
  const { run } = task;
886
886
  const generate = react.useCallback(
887
887
  async (prompt, referenceDocIds = []) => {
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { useConnectedAiTask } from '../chunk-24KQJYSB.js';
2
+ import { useConnectedAiTask } from '../chunk-SWON6O45.js';
3
3
  import { PageHeader, MetricCard, DataTableBlock, StatGroup } from '../chunk-ZCF2JJFA.js';
4
4
  import { assetRefId, applyStoredTheme, AssetResolverProvider, ThemeEditor, applyThemeVars, tid, SectionHeading, PricingTable, Tabs as Tabs$1, Accordion, Gallery, VideoEmbed, ContactForm, Banner, MediaText, TeamGrid, Steps, TestimonialGrid, Columns, Spacer, Container, Hero, FeatureGrid, Testimonial, CTABanner, LogoCloud, FAQ, RichTextBlock, BlockImage, AvatarBlock, Navbar, Footer, ListBlock, isAssetRef, asAssetRef } from '../chunk-DLBUFHLY.js';
5
5
  export { ASSET_REF_PREFIX, AssetResolverProvider, asAssetRef, assetRefId, isAssetRef, useAssetRenderer, useAssetResolverActive } from '../chunk-DLBUFHLY.js';
@@ -8,10 +8,10 @@ import '../chunk-4EZVCGRL.js';
8
8
  import { Callout } from '../chunk-UJE32SST.js';
9
9
  import { EmptyState } from '../chunk-P6GHJSLR.js';
10
10
  import '../chunk-S7PSMMRG.js';
11
- import { useBlocksEnvironment } from '../chunk-76JDDMSP.js';
12
- import '../chunk-XWEJ5LV2.js';
11
+ import '../chunk-ZXYHBQFW.js';
13
12
  import '../chunk-KZJAG7T3.js';
14
13
  import '../chunk-NPLYHR2E.js';
14
+ import { useBlocksEnvironment } from '../chunk-76JDDMSP.js';
15
15
  import { formatCount } from '../chunk-OXF2IFXG.js';
16
16
  import { useConnection } from '../chunk-EHXSBH6U.js';
17
17
  import '../chunk-AA3PT6KR.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbidocs/blocks",
3
- "version": "0.4.37",
3
+ "version": "0.4.38",
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",
@@ -213,7 +213,7 @@
213
213
  "example:test:e2e": "playwright test -c examples/custom-ui/playwright.config.ts"
214
214
  },
215
215
  "dependencies": {
216
- "@arbidocs/client": "0.4.37",
216
+ "@arbidocs/client": "0.4.38",
217
217
  "@dnd-kit/core": "^6.3.1",
218
218
  "@dnd-kit/sortable": "^10.0.0",
219
219
  "@dnd-kit/utilities": "^3.2.2",
@@ -228,10 +228,10 @@
228
228
  "zustand": "^5.0.14",
229
229
  "fflate": "^0.8.2",
230
230
  "@hocuspocus/provider": "4.6.0",
231
- "@arbidocs/coedit": "0.4.37"
231
+ "@arbidocs/coedit": "0.4.38"
232
232
  },
233
233
  "peerDependencies": {
234
- "@arbidocs/react": "0.4.37",
234
+ "@arbidocs/react": "0.4.38",
235
235
  "@mdxeditor/editor": "^4.0.4",
236
236
  "@measured/puck": ">=0.20",
237
237
  "@playwright/test": ">=1.40",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/shell/FilterInput.tsx"],"names":[],"mappings":"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","file":"chunk-DDW3M22Z.js","sourcesContent":["/** Shared page filter with configurable searchable fields and optional quick-filter control. */\nimport type { ReactNode } from 'react'\nimport { X, Filter, SlidersHorizontal, Check } from 'lucide-react'\nimport {\n Command,\n CommandGroup,\n CommandItem,\n CommandList,\n Input,\n Popover,\n PopoverContent,\n PopoverTrigger,\n cn,\n} from '@arbidocs/react/ui'\nimport { testIdOr } from '../chat/test-id'\n\nexport type FilterField = 'text' | 'labels'\n\nexport const DEFAULT_FILTER_FIELDS: { value: FilterField; label: string }[] = [\n { value: 'text', label: 'Text' },\n { value: 'labels', label: 'Labels' },\n]\n\nexport interface FilterInputLabels<Field extends string = FilterField> {\n placeholder: string\n clear: string\n chooseFields: string\n fieldsHeading: string\n /** Display name per searchable field. */\n fieldNames: Partial<Record<Field, string>>\n}\n\nexport const DEFAULT_FILTER_INPUT_LABELS: FilterInputLabels = {\n placeholder: 'Filter...',\n clear: 'Clear filter',\n chooseFields: 'Choose fields to filter',\n fieldsHeading: 'Filter fields',\n fieldNames: { text: 'Text', labels: 'Labels' },\n}\n\nexport interface FilterInputTestIds<Field extends string = FilterField> {\n root: string\n quick: string\n input: string\n fieldsButton: string\n field: (field: Field) => string\n}\n\nexport interface FilterInputProps<Field extends string = FilterField> {\n fieldOptions?: { value: Field; label: string }[]\n value: string\n /** Lists with one searchable field need no field selector. */\n hideFieldPicker?: boolean\n ariaLabel?: string\n onChange: (q: string) => void\n fields: Field[]\n onFieldsChange: (fields: Field[]) => void\n /**\n * The quick-filter dropdown trigger, embedded inside the input on the left\n * (mirroring the Files search box). When absent, a static funnel icon shows.\n */\n filter?: ReactNode\n /** Width classes for the box (default `w-44`). */\n className?: string\n /** No outline: a soft fill instead of the input border, for a header that is already ruled. */\n borderless?: boolean\n labels?: Partial<FilterInputLabels<Field>>\n testIds?: Partial<FilterInputTestIds<Field>>\n}\n\nexport function FilterInput<Field extends string = FilterField>({\n fieldOptions,\n value,\n hideFieldPicker = false,\n ariaLabel,\n onChange,\n fields,\n onFieldsChange,\n filter,\n className,\n borderless = false,\n labels,\n testIds,\n}: FilterInputProps<Field>) {\n const l = { ...DEFAULT_FILTER_INPUT_LABELS, ...labels }\n const options = fieldOptions ?? (DEFAULT_FILTER_FIELDS as { value: Field; label: string }[])\n const toggleField = (field: Field) =>\n onFieldsChange(fields.includes(field) ? fields.filter((f) => f !== field) : [...fields, field])\n\n return (\n <div\n className={cn('flex min-w-0 items-center', className ?? 'w-44 pointer-coarse:w-56')}\n data-testid={testIdOr(testIds?.root, { testId: 'facts-filter' })}\n >\n <div className=\"relative flex-1 min-w-0\">\n {filter ? (\n <div\n className=\"absolute left-1 top-1/2 z-10 -translate-y-1/2\"\n data-testid={testIdOr(testIds?.quick, { testId: 'facts-filter-quick' })}\n >\n {filter}\n </div>\n ) : (\n <Filter className=\"pointer-events-none absolute left-2 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground\" />\n )}\n <Input\n aria-label={ariaLabel}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={l.placeholder}\n data-testid={testIdOr(testIds?.input, { testId: 'facts-filter-input' })}\n className={cn(\n 'h-7 pr-12 text-sm shadow-none focus-visible:ring-0 pointer-coarse:h-11 pointer-coarse:pr-24',\n borderless\n ? 'border-transparent bg-muted/50 hover:bg-muted focus-visible:bg-muted'\n : 'border-input bg-background',\n filter ? 'pl-11' : 'pl-7',\n hideFieldPicker && 'pr-7 pointer-coarse:pr-11'\n )}\n />\n {value && (\n <button\n type=\"button\"\n onClick={() => onChange('')}\n aria-label={l.clear}\n className={cn(\n 'absolute top-1/2 z-10 -translate-y-1/2 text-muted-foreground hover:text-foreground pointer-coarse:flex pointer-coarse:size-11 pointer-coarse:items-center pointer-coarse:justify-center',\n hideFieldPicker\n ? 'right-1.5 pointer-coarse:right-0'\n : 'right-7 pointer-coarse:right-11'\n )}\n >\n <X className=\"size-3\" />\n </button>\n )}\n {/* Field picker — inside the input on the right, muted, exactly as the\n Files search box renders it. */}\n {!hideFieldPicker && (\n <Popover>\n <PopoverTrigger asChild>\n <button\n type=\"button\"\n aria-label={l.chooseFields}\n data-testid={testIdOr(testIds?.fieldsButton, {\n testId: 'facts-filter-fields-button',\n })}\n className=\"absolute right-1.5 top-1/2 z-10 -translate-y-1/2 !h-5 !w-5 !p-0 text-muted-foreground/60 transition-colors hover:text-foreground pointer-coarse:right-0 pointer-coarse:!flex pointer-coarse:!h-11 pointer-coarse:!w-11 pointer-coarse:items-center pointer-coarse:justify-center\"\n >\n <SlidersHorizontal className=\"size-3.5\" />\n </button>\n </PopoverTrigger>\n <PopoverContent className=\"w-44 p-0\" align=\"end\" sideOffset={4}>\n <Command shouldFilter={false}>\n <CommandList>\n <CommandGroup heading={l.fieldsHeading}>\n {options.map((option) => {\n const isSelected = fields.includes(option.value)\n return (\n <CommandItem\n key={option.value}\n onSelect={() => toggleField(option.value)}\n className=\"cursor-pointer text-sm\"\n data-testid={testIdOr(testIds?.field?.(option.value), {\n testId: `facts-filter-field-${option.value}`,\n })}\n >\n <div\n className={cn(\n 'mr-2 flex size-3.5 items-center justify-center rounded-sm border border-primary',\n isSelected\n ? 'bg-primary text-primary-foreground'\n : 'opacity-50 [&_svg]:invisible'\n )}\n >\n <Check className=\"size-3\" />\n </div>\n {labels?.fieldNames?.[option.value] ?? option.label}\n </CommandItem>\n )\n })}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n )}\n </div>\n </div>\n )\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/shell/FilterInput.tsx"],"names":["jsx","cn","testIdOr","jsxs","Filter","Input","X","Popover","PopoverTrigger","SlidersHorizontal","PopoverContent","Command","CommandList","CommandGroup","CommandItem","Check"],"mappings":"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","file":"chunk-Q6LF7N3A.cjs","sourcesContent":["/** Shared page filter with configurable searchable fields and optional quick-filter control. */\nimport type { ReactNode } from 'react'\nimport { X, Filter, SlidersHorizontal, Check } from 'lucide-react'\nimport {\n Command,\n CommandGroup,\n CommandItem,\n CommandList,\n Input,\n Popover,\n PopoverContent,\n PopoverTrigger,\n cn,\n} from '@arbidocs/react/ui'\nimport { testIdOr } from '../chat/test-id'\n\nexport type FilterField = 'text' | 'labels'\n\nexport const DEFAULT_FILTER_FIELDS: { value: FilterField; label: string }[] = [\n { value: 'text', label: 'Text' },\n { value: 'labels', label: 'Labels' },\n]\n\nexport interface FilterInputLabels<Field extends string = FilterField> {\n placeholder: string\n clear: string\n chooseFields: string\n fieldsHeading: string\n /** Display name per searchable field. */\n fieldNames: Partial<Record<Field, string>>\n}\n\nexport const DEFAULT_FILTER_INPUT_LABELS: FilterInputLabels = {\n placeholder: 'Filter...',\n clear: 'Clear filter',\n chooseFields: 'Choose fields to filter',\n fieldsHeading: 'Filter fields',\n fieldNames: { text: 'Text', labels: 'Labels' },\n}\n\nexport interface FilterInputTestIds<Field extends string = FilterField> {\n root: string\n quick: string\n input: string\n fieldsButton: string\n field: (field: Field) => string\n}\n\nexport interface FilterInputProps<Field extends string = FilterField> {\n fieldOptions?: { value: Field; label: string }[]\n value: string\n /** Lists with one searchable field need no field selector. */\n hideFieldPicker?: boolean\n ariaLabel?: string\n onChange: (q: string) => void\n fields: Field[]\n onFieldsChange: (fields: Field[]) => void\n /**\n * The quick-filter dropdown trigger, embedded inside the input on the left\n * (mirroring the Files search box). When absent, a static funnel icon shows.\n */\n filter?: ReactNode\n /** Width classes for the box (default `w-44`). */\n className?: string\n /** No outline: a soft fill instead of the input border, for a header that is already ruled. */\n borderless?: boolean\n labels?: Partial<FilterInputLabels<Field>>\n testIds?: Partial<FilterInputTestIds<Field>>\n}\n\nexport function FilterInput<Field extends string = FilterField>({\n fieldOptions,\n value,\n hideFieldPicker = false,\n ariaLabel,\n onChange,\n fields,\n onFieldsChange,\n filter,\n className,\n borderless = false,\n labels,\n testIds,\n}: FilterInputProps<Field>) {\n const l = { ...DEFAULT_FILTER_INPUT_LABELS, ...labels }\n const options = fieldOptions ?? (DEFAULT_FILTER_FIELDS as { value: Field; label: string }[])\n const toggleField = (field: Field) =>\n onFieldsChange(fields.includes(field) ? fields.filter((f) => f !== field) : [...fields, field])\n\n return (\n <div\n className={cn('flex min-w-0 items-center', className ?? 'w-44 pointer-coarse:w-56')}\n data-testid={testIdOr(testIds?.root, { testId: 'facts-filter' })}\n >\n <div className=\"relative flex-1 min-w-0\">\n {filter ? (\n <div\n className=\"absolute left-1 top-1/2 z-10 -translate-y-1/2\"\n data-testid={testIdOr(testIds?.quick, { testId: 'facts-filter-quick' })}\n >\n {filter}\n </div>\n ) : (\n <Filter className=\"pointer-events-none absolute left-2 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground\" />\n )}\n <Input\n aria-label={ariaLabel}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={l.placeholder}\n data-testid={testIdOr(testIds?.input, { testId: 'facts-filter-input' })}\n className={cn(\n 'h-7 pr-12 text-sm shadow-none focus-visible:ring-0 pointer-coarse:h-11 pointer-coarse:pr-24',\n borderless\n ? 'border-transparent bg-muted/50 hover:bg-muted focus-visible:bg-muted'\n : 'border-input bg-background',\n filter ? 'pl-11' : 'pl-7',\n hideFieldPicker && 'pr-7 pointer-coarse:pr-11'\n )}\n />\n {value && (\n <button\n type=\"button\"\n onClick={() => onChange('')}\n aria-label={l.clear}\n className={cn(\n 'absolute top-1/2 z-10 -translate-y-1/2 text-muted-foreground hover:text-foreground pointer-coarse:flex pointer-coarse:size-11 pointer-coarse:items-center pointer-coarse:justify-center',\n hideFieldPicker\n ? 'right-1.5 pointer-coarse:right-0'\n : 'right-7 pointer-coarse:right-11'\n )}\n >\n <X className=\"size-3\" />\n </button>\n )}\n {/* Field picker — inside the input on the right, muted, exactly as the\n Files search box renders it. */}\n {!hideFieldPicker && (\n <Popover>\n <PopoverTrigger asChild>\n <button\n type=\"button\"\n aria-label={l.chooseFields}\n data-testid={testIdOr(testIds?.fieldsButton, {\n testId: 'facts-filter-fields-button',\n })}\n className=\"absolute right-1.5 top-1/2 z-10 -translate-y-1/2 !h-5 !w-5 !p-0 text-muted-foreground/60 transition-colors hover:text-foreground pointer-coarse:right-0 pointer-coarse:!flex pointer-coarse:!h-11 pointer-coarse:!w-11 pointer-coarse:items-center pointer-coarse:justify-center\"\n >\n <SlidersHorizontal className=\"size-3.5\" />\n </button>\n </PopoverTrigger>\n <PopoverContent className=\"w-44 p-0\" align=\"end\" sideOffset={4}>\n <Command shouldFilter={false}>\n <CommandList>\n <CommandGroup heading={l.fieldsHeading}>\n {options.map((option) => {\n const isSelected = fields.includes(option.value)\n return (\n <CommandItem\n key={option.value}\n onSelect={() => toggleField(option.value)}\n className=\"cursor-pointer text-sm\"\n data-testid={testIdOr(testIds?.field?.(option.value), {\n testId: `facts-filter-field-${option.value}`,\n })}\n >\n <div\n className={cn(\n 'mr-2 flex size-3.5 items-center justify-center rounded-sm border border-primary',\n isSelected\n ? 'bg-primary text-primary-foreground'\n : 'opacity-50 [&_svg]:invisible'\n )}\n >\n <Check className=\"size-3\" />\n </div>\n {labels?.fieldNames?.[option.value] ?? option.label}\n </CommandItem>\n )\n })}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n )}\n </div>\n </div>\n )\n}\n"]}