@arbidocs/blocks 0.5.95 → 0.5.97
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/README.md +21 -8
- package/dist/{ConnectedNativeDocxComparison-FNHQKY57.js → ConnectedNativeDocxComparison-6KL5XI3L.js} +6 -6
- package/dist/{ConnectedNativeDocxComparison-FNHQKY57.js.map → ConnectedNativeDocxComparison-6KL5XI3L.js.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-KIMSYQV2.cjs → ConnectedNativeDocxComparison-P346QOX5.cjs} +7 -7
- package/dist/{ConnectedNativeDocxComparison-KIMSYQV2.cjs.map → ConnectedNativeDocxComparison-P346QOX5.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-UOZGILPM.cjs → ConnectedNativeDocxEditor-7JHSQ6KI.cjs} +7 -7
- package/dist/{ConnectedNativeDocxEditor-UOZGILPM.cjs.map → ConnectedNativeDocxEditor-7JHSQ6KI.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-WFDFGJYW.js → ConnectedNativeDocxEditor-ATZ2TG2L.js} +5 -5
- package/dist/{ConnectedNativeDocxEditor-WFDFGJYW.js.map → ConnectedNativeDocxEditor-ATZ2TG2L.js.map} +1 -1
- package/dist/{ConnectedStreamedWordArtifact-WFKYXIX5.cjs → ConnectedStreamedWordArtifact-5HI3WSAJ.cjs} +7 -7
- package/dist/ConnectedStreamedWordArtifact-5HI3WSAJ.cjs.map +1 -0
- package/dist/{ConnectedStreamedWordArtifact-SFELZUTS.js → ConnectedStreamedWordArtifact-FHSGQHXQ.js} +6 -6
- package/dist/{ConnectedStreamedWordArtifact-SFELZUTS.js.map → ConnectedStreamedWordArtifact-FHSGQHXQ.js.map} +1 -1
- package/dist/{DocumentReviewCard-X5DXEU2G.js → DocumentReviewCard-7UFQGDOG.js} +3 -3
- package/dist/{DocumentReviewCard-X5DXEU2G.js.map → DocumentReviewCard-7UFQGDOG.js.map} +1 -1
- package/dist/{DocumentReviewCard-7XUBPCQD.cjs → DocumentReviewCard-E3HB3K2G.cjs} +3 -3
- package/dist/{DocumentReviewCard-7XUBPCQD.cjs.map → DocumentReviewCard-E3HB3K2G.cjs.map} +1 -1
- package/dist/{FilesViewerDialog-H4ZXFNLV.cjs → FilesViewerDialog-3KWTQARB.cjs} +41 -32
- package/dist/FilesViewerDialog-3KWTQARB.cjs.map +1 -0
- package/dist/{FilesViewerDialog-4Q6WJMSX.js → FilesViewerDialog-EQKBFAWI.js} +40 -31
- package/dist/FilesViewerDialog-EQKBFAWI.js.map +1 -0
- package/dist/WorkspaceTableView-DYABS53K.js +1 -1
- package/dist/WorkspaceTableView-ZIQ7JWT5.cjs +1 -1
- package/dist/agents/index.cjs +254 -254
- package/dist/agents/index.js +4 -4
- package/dist/agents/workflows/WorkflowStepAction.d.ts +9 -2
- package/dist/agents/workflows/requiredLabels.d.ts +7 -2
- package/dist/{chunk-CY2K4K5M.js → chunk-42IVGYNL.js} +4 -4
- package/dist/{chunk-CY2K4K5M.js.map → chunk-42IVGYNL.js.map} +1 -1
- package/dist/{chunk-45M4QWCM.js → chunk-4LTDELP2.js} +3 -3
- package/dist/{chunk-45M4QWCM.js.map → chunk-4LTDELP2.js.map} +1 -1
- package/dist/{chunk-NIXAAPIG.js → chunk-4RCLA52C.js} +5 -5
- package/dist/{chunk-NIXAAPIG.js.map → chunk-4RCLA52C.js.map} +1 -1
- package/dist/{chunk-CJBDBBN2.cjs → chunk-6IS3IRUF.cjs} +4 -4
- package/dist/{chunk-CJBDBBN2.cjs.map → chunk-6IS3IRUF.cjs.map} +1 -1
- package/dist/{chunk-I4PB257E.js → chunk-76O7J6IZ.js} +3 -3
- package/dist/{chunk-I4PB257E.js.map → chunk-76O7J6IZ.js.map} +1 -1
- package/dist/{chunk-ZSWMRG72.cjs → chunk-AINS6VU6.cjs} +4 -4
- package/dist/{chunk-ZSWMRG72.cjs.map → chunk-AINS6VU6.cjs.map} +1 -1
- package/dist/{chunk-U4ZLFL6M.cjs → chunk-CCALU47C.cjs} +5 -5
- package/dist/{chunk-U4ZLFL6M.cjs.map → chunk-CCALU47C.cjs.map} +1 -1
- package/dist/{chunk-5ZWEUUJN.cjs → chunk-ECCV4YOL.cjs} +8 -8
- package/dist/{chunk-5ZWEUUJN.cjs.map → chunk-ECCV4YOL.cjs.map} +1 -1
- package/dist/{chunk-D3ABKS7T.cjs → chunk-HDPT7D6F.cjs} +3 -3
- package/dist/{chunk-D3ABKS7T.cjs.map → chunk-HDPT7D6F.cjs.map} +1 -1
- package/dist/{chunk-MBXQSBG3.cjs → chunk-J4CXF4A7.cjs} +170 -12
- package/dist/chunk-J4CXF4A7.cjs.map +1 -0
- package/dist/{chunk-TG4S236F.js → chunk-LZI4EGOW.js} +206 -53
- package/dist/chunk-LZI4EGOW.js.map +1 -0
- package/dist/{chunk-AJ4TBTA3.js → chunk-PCAWLVHE.js} +3 -3
- package/dist/{chunk-AJ4TBTA3.js.map → chunk-PCAWLVHE.js.map} +1 -1
- package/dist/{chunk-O5MH74TI.js → chunk-QSBPOYWA.js} +3 -3
- package/dist/{chunk-O5MH74TI.js.map → chunk-QSBPOYWA.js.map} +1 -1
- package/dist/{chunk-H2DG5HIO.js → chunk-RZG4ALKZ.js} +3 -3
- package/dist/{chunk-H2DG5HIO.js.map → chunk-RZG4ALKZ.js.map} +1 -1
- package/dist/{chunk-CVYFX7AD.js → chunk-SEBNGA3F.js} +31 -15
- package/dist/chunk-SEBNGA3F.js.map +1 -0
- package/dist/{chunk-6HI5OXB6.cjs → chunk-SYWJNSPS.cjs} +3 -3
- package/dist/{chunk-6HI5OXB6.cjs.map → chunk-SYWJNSPS.cjs.map} +1 -1
- package/dist/{chunk-SOBLG72E.js → chunk-T7LLYVOW.js} +166 -8
- package/dist/chunk-T7LLYVOW.js.map +1 -0
- package/dist/{chunk-VVQEEHDV.cjs → chunk-V2CNHRLZ.cjs} +4 -4
- package/dist/{chunk-VVQEEHDV.cjs.map → chunk-V2CNHRLZ.cjs.map} +1 -1
- package/dist/{chunk-KTHBUDYQ.cjs → chunk-WN7XPEYK.cjs} +5 -5
- package/dist/{chunk-KTHBUDYQ.cjs.map → chunk-WN7XPEYK.cjs.map} +1 -1
- package/dist/{chunk-DCHNB7DF.cjs → chunk-XM4KRGCK.cjs} +246 -93
- package/dist/chunk-XM4KRGCK.cjs.map +1 -0
- package/dist/{chunk-CIXA5A65.cjs → chunk-YZ6YOOTF.cjs} +30 -14
- package/dist/chunk-YZ6YOOTF.cjs.map +1 -0
- package/dist/{chunk-HU3MX5PY.js → chunk-Z4IPTLRS.js} +3 -3
- package/dist/{chunk-HU3MX5PY.js.map → chunk-Z4IPTLRS.js.map} +1 -1
- package/dist/connect/docx.cjs +10 -10
- package/dist/connect/docx.js +6 -6
- package/dist/connect/index.cjs +279 -249
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.js +52 -22
- package/dist/connect/index.js.map +1 -1
- package/dist/connect/viewer.cjs +3 -3
- package/dist/connect/viewer.js +2 -2
- package/dist/connection/files/page/ConnectedFilesPage.d.ts +11 -7
- package/dist/connection/viewer/DocumentViewerDialog.d.ts +3 -0
- package/dist/connection/viewer/documentPlace.d.ts +10 -4
- package/dist/connection/workflows/ConnectedWorkflowRunPage.d.ts +4 -3
- package/dist/connection/workflows/WorkflowRunPage.d.ts +18 -15
- package/dist/connection/workflows/index.d.ts +2 -1
- package/dist/connection/workflows/runProject.d.ts +47 -0
- package/dist/embed/index.cjs +2 -2
- package/dist/embed/index.js +2 -2
- package/dist/facts/index.cjs +43 -43
- package/dist/facts/index.js +2 -2
- package/dist/index.cjs +307 -307
- package/dist/index.js +6 -6
- package/dist/settings/index.cjs +1 -1
- package/dist/settings/index.js +1 -1
- package/dist/workflow-canvas/index.cjs +23 -23
- package/dist/workflow-canvas/index.js +8 -8
- package/dist/workspaces/index.cjs +8 -8
- package/dist/workspaces/index.js +1 -1
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +5 -5
- package/dist/ConnectedStreamedWordArtifact-WFKYXIX5.cjs.map +0 -1
- package/dist/FilesViewerDialog-4Q6WJMSX.js.map +0 -1
- package/dist/FilesViewerDialog-H4ZXFNLV.cjs.map +0 -1
- package/dist/chunk-CIXA5A65.cjs.map +0 -1
- package/dist/chunk-CVYFX7AD.js.map +0 -1
- package/dist/chunk-DCHNB7DF.cjs.map +0 -1
- package/dist/chunk-MBXQSBG3.cjs.map +0 -1
- package/dist/chunk-SOBLG72E.js.map +0 -1
- package/dist/chunk-TG4S236F.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
export { AskBar } from './chunk-KRBZUTQE.js';
|
|
3
3
|
export { DroppableContainer } from './chunk-63IH7V5F.js';
|
|
4
|
-
export { DataTableBlock, StatGroup } from './chunk-F3PMG5GW.js';
|
|
5
4
|
export { ArticleList, CheckList, CollectionDetail, CtaBand, DefinitionList, EditorialHeading, EditorialHero, EditorialProse, EditorialSection, Eyebrow, PanelGrid, ProofStrip, Reveal, TagList, createAppearanceStore, themeFromCss } from './chunk-BIJJTO4R.js';
|
|
5
|
+
export { DataTableBlock, StatGroup } from './chunk-F3PMG5GW.js';
|
|
6
6
|
export { Accordion, AvatarBlock, BlockImage, BlockLink, CTABanner, Columns, ContactForm, Container, EditorialProfileCard, FAQ, FeatureGrid, Footer, Gallery, Hero, ListBlock, LogoCloud, MediaText, Navbar, PricingTable, RichTextBlock, SectionHeading, Spacer, Steps, TeamGrid, Testimonial, TestimonialGrid, VideoEmbed, applyStoredTheme, createThemeStore, toEmbedUrl } from './chunk-FVNQMMXK.js';
|
|
7
7
|
export { Timeline } from './chunk-UYA4URGM.js';
|
|
8
8
|
export { Highlight, splitByTerms } from './chunk-Q5EUEJD7.js';
|
|
9
9
|
import './chunk-QAB4O4EE.js';
|
|
10
10
|
export { ContactCard, DEFAULT_CONTACT_CARD_LABELS, contactToVCard, downloadVCard, vCardFilename } from './chunk-TTS353W2.js';
|
|
11
|
-
export { DEFAULT_GLOSSARY_LABELS, DEFAULT_TAG_COLUMNS_EDITOR_LABELS, DEFAULT_TAG_DETAIL_LABELS, DEFAULT_TAG_TABLE_DOCX_LABELS, DEFAULT_TAG_TABLE_LABELS, DEFAULT_WORKSPACE_ACTIVITY_LABELS, EXTRACT_LIMIT, EntityIdentityBar, ExtractEntitiesDialog, GridRowNavigator, IDENTITY_NAME_MAX_LENGTH, LoadingIndicator, TAG_TABLE_DOCX_LANDSCAPE_AFTER, TagColumnsEditor, TagDetail, TagTable, TagTableCell, Toolbar, WorkspaceActivityList, cellText, cellValue, documentCount, entitiesPhrase, fieldWrites, glossaryDocumentXml, glossaryDocx, glossaryEntries, glossaryFileName, glossaryMarkdown, isGap, parseCell, rowLinks, tagDetailLabels, tagKindDescription, tagNoteLabel, tagTableDocumentXml, tagTableDocx, tagTableLabels, tagTableMarkdown, tagsPageNouns, useTipsPlacement, workspaceActivityHeadline, workspaceActivityTarget } from './chunk-
|
|
11
|
+
export { DEFAULT_GLOSSARY_LABELS, DEFAULT_TAG_COLUMNS_EDITOR_LABELS, DEFAULT_TAG_DETAIL_LABELS, DEFAULT_TAG_TABLE_DOCX_LABELS, DEFAULT_TAG_TABLE_LABELS, DEFAULT_WORKSPACE_ACTIVITY_LABELS, EXTRACT_LIMIT, EntityIdentityBar, ExtractEntitiesDialog, GridRowNavigator, IDENTITY_NAME_MAX_LENGTH, LoadingIndicator, TAG_TABLE_DOCX_LANDSCAPE_AFTER, TagColumnsEditor, TagDetail, TagTable, TagTableCell, Toolbar, WorkspaceActivityList, cellText, cellValue, documentCount, entitiesPhrase, fieldWrites, glossaryDocumentXml, glossaryDocx, glossaryEntries, glossaryFileName, glossaryMarkdown, isGap, parseCell, rowLinks, tagDetailLabels, tagKindDescription, tagNoteLabel, tagTableDocumentXml, tagTableDocx, tagTableLabels, tagTableMarkdown, tagsPageNouns, useTipsPlacement, workspaceActivityHeadline, workspaceActivityTarget } from './chunk-4LTDELP2.js';
|
|
12
12
|
export { ThemeEditor, ThemePreview } from './chunk-VI2V3U2P.js';
|
|
13
13
|
export { CONTRAST_PAIRS, DEFAULT_THEME_PREVIEW_LABELS, THEME_STYLE_ID, Tabs, applyFontVars, applyThemeVars, clearFontVars, clearThemeVars, contrastIssues, contrastRatio, deriveColors, ensureContrast, inferInputs, themeCssVars, themeMetaVars, toHslTriplet } from './chunk-J77BACGX.js';
|
|
14
14
|
export { DEFAULT_THREAD_FOLLOW_LABELS, DEFAULT_WORKSPACE_NOTIFICATION_MENU_LABELS, ThreadFollowButton, ThreadFollowMenuItem, WorkspaceNotificationMenu } from './chunk-66NMPTOH.js';
|
|
@@ -40,12 +40,12 @@ export { tid } from './chunk-AMTWY22T.js';
|
|
|
40
40
|
export { PageHeader } from './chunk-XCVLUXFP.js';
|
|
41
41
|
export { Chart } from './chunk-VIIBJBTX.js';
|
|
42
42
|
export { DEFAULT_DETAIL_PANEL_LABELS, DetailBody, DetailEmpty, DetailField, DetailFields, DetailLinkItem, DetailLinkList, DetailLoading, DetailPanel, DetailSection } from './chunk-OC2PD52M.js';
|
|
43
|
-
export { useWorkflowPreview } from './chunk-
|
|
44
|
-
export { ANNOTATE, ANNOTATE_ID, ActionStepBody, AgentAvatarField, AgentBar, AgentBarIconButton, AgentBarMenu, AgentBarNotes, AgentBarProbeAnswer, AgentBarQueuedNote, AgentBarStatus, AgentCard, AgentConnectInstructions, AgentCreateView, AgentCreatedView, AgentCreator, AgentEditView, AgentGallery, AgentMainView, AgentTypeSelector, ApprovalEvidence, AssigneeLine, BUILTIN_SKILLS, CHRONOLOGY, CHRONOLOGY_ID, CUSTOM_TASK, CUSTOM_TASK_ID, CapabilityGrid, CapabilityTile, ConfigField, ConfigForm, ConsentActions, ConsentBulletList, ConsentCard, ConsentFootnote, ConsentHeader, ConsentMessage, ConsentNotice, ConsentPage, ConsentPermissionList, ConsentSection, ConsentStrong, ConsentText, ConversationListView, ConversationTurnSpeaker, CopyableUrl, DASHBOARD_OPERATIONS, DASHBOARD_PINNED, DEEP_RESEARCH, DEEP_RESEARCH_ID, DEFAULT_AGENT_AVATAR_FIELD_LABELS, DEFAULT_AGENT_BAR_LABELS, DEFAULT_AGENT_CAPABILITIES, DEFAULT_AGENT_CARD_LABELS, DEFAULT_AGENT_CREATOR_LABELS, DEFAULT_AGENT_GALLERY_LABELS, DEFAULT_AGENT_TEMPLATES, DEFAULT_AGENT_TYPES, 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_BUILDER_LABELS, DEFAULT_SKILL_EDIT_FORM_LABELS, DEFAULT_SKILL_GENERATE_FORM_LABELS, DEFAULT_SKILL_VIEW_TOGGLE_LABELS, DEFAULT_STEP_BAR_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_THREAD_STATE_LABELS, DEFAULT_TUPLE_ARRAY_FIELD_LABELS, DEFAULT_UPLOAD_TASK_ITEM_LABELS, DEFAULT_UPLOAD_TASK_LIST_LABELS, DEFAULT_WORKFLOW_RUNNER_LABELS, DEFAULT_WORKFLOW_RUN_STATUS_LABELS, DEFAULT_WORKFLOW_STEP_PARTS_LABELS, DEFAULT_WORKFLOW_THREAD_STRIP_LABELS, DERIVED_NAME_WORDS, EMPTY_NEW_THREAD, GENERATE_IMAGE, GENERATE_IMAGE_ID, IMAGE_ASPECT_AUTO, IMAGE_ASPECT_RATIOS, MAX_TASK_DEPTH, NewThreadDialog, PillSelect, REMIND_TASK, REMIND_TASK_ID, RecurrenceBuilder, SKILL_FIELD_TYPE_LABELS, SKILL_MAIN_FILENAME, SKILL_SOURCE_LABELS, SKILL_TYPES, SKILL_TYPE_LABELS, STATUS_LABELS, STATUS_ORDER, STATUS_TONE, SUMMARISE, SUMMARISE_ID, SendBackControl, SkillDetail, SkillDetailSection, SkillEditForm, SkillFilterChips, SkillGenerateForm, SkillLibraryDetail, SkillTile, SkillViewToggle, TASK_COLUMN_ORDER, TIMELINE, TIMELINE_ID, TIMELINE_PROMPT, TRANSLATE, TRANSLATE_ID, TRANSLATE_LANGUAGES, TRIGGER_LABELS, TaskActivityDialog, TaskActivityTimeline, TaskComposer, TaskEmptyState, TaskMoveDialog, TaskOutputsCell, TaskPlan, TaskRunsDialog, TaskStatusPill, TaskTable, ThreadStatusLine, TupleArrayField, UploadTaskItem, UploadTaskList, WEB_WORKFLOWS, WORKFLOW_REGISTRY, WorkflowRunStatus, WorkflowRunner, WorkflowStepAction, WorkflowThreadStartedBy, WorkflowThreadStrip, activeStepId, agentConfigSectionToValues, agentCreatorToConfigSection, asTaskStatus, authModeFor, buildLibrarySkills, buildTaskRows, buildZipSkillImport, closeWorkflowLaunch, composePersona, composerToTaskQuery, composerToWorkRequest, composerToWorkflowRequest, composerToWorkflowUpdate, createTaskColumns, createsWork, defaultScopeRenderer, defaultTaskComposerValues, deriveAgentName, deriveAnnotationName, deriveWorkflowName, descendantIds, filterConversationRows, filterLibrarySkills, firstWords, formatElapsed, goalProgress, groupAgentTasks, groupThreadActivity, hasTaskFields, humanizeSection, importMarkdownSkill, importSkillFile, importSkillFromUrl, indexTasks, inferType, inputDocumentIds, isAgenticWorkflow, isMainSkillFile, isOutOfBounds, isPlainTodo, isValidAgentName, isoToLocalInput, labelRef, labelRefKey, localInputToIso, matchRequiredLabels, moveTargets, newThreadToRequest, nextCriterionId, openWorkflowLaunch, ownerExtId, parseSkillFrontmatter, prettifyKey, readSkillArchive, recordWorkflowUse, renderWorkflowIcon, requiredLabelsOf, resetWorkflowUsage, resolveScopeInputs, serializeSkill, skillSlug, sortByRecentUse, stepWindow, stripPersonaPreamble, summarizeAgent, summarizeCapabilities, taskActivityHeadline, taskComposerToCreateRequest, taskComposerToUpdateRequest, taskNeedsAccess, taskToComposerValues, unresolvedLabelRefs, useWorkflowLaunchRequest, useWorkflowUsage, useWorkflowView, withLabelIds, workflowFromSkillMarkdown, workflowTaskFields, workflowToComposerValues, workflowToSkillMarkdown, workflowWhen } from './chunk-
|
|
43
|
+
export { useWorkflowPreview } from './chunk-76O7J6IZ.js';
|
|
44
|
+
export { ANNOTATE, ANNOTATE_ID, ActionStepBody, AgentAvatarField, AgentBar, AgentBarIconButton, AgentBarMenu, AgentBarNotes, AgentBarProbeAnswer, AgentBarQueuedNote, AgentBarStatus, AgentCard, AgentConnectInstructions, AgentCreateView, AgentCreatedView, AgentCreator, AgentEditView, AgentGallery, AgentMainView, AgentTypeSelector, ApprovalEvidence, AssigneeLine, BUILTIN_SKILLS, CHRONOLOGY, CHRONOLOGY_ID, CUSTOM_TASK, CUSTOM_TASK_ID, CapabilityGrid, CapabilityTile, ConfigField, ConfigForm, ConsentActions, ConsentBulletList, ConsentCard, ConsentFootnote, ConsentHeader, ConsentMessage, ConsentNotice, ConsentPage, ConsentPermissionList, ConsentSection, ConsentStrong, ConsentText, ConversationListView, ConversationTurnSpeaker, CopyableUrl, DASHBOARD_OPERATIONS, DASHBOARD_PINNED, DEEP_RESEARCH, DEEP_RESEARCH_ID, DEFAULT_AGENT_AVATAR_FIELD_LABELS, DEFAULT_AGENT_BAR_LABELS, DEFAULT_AGENT_CAPABILITIES, DEFAULT_AGENT_CARD_LABELS, DEFAULT_AGENT_CREATOR_LABELS, DEFAULT_AGENT_GALLERY_LABELS, DEFAULT_AGENT_TEMPLATES, DEFAULT_AGENT_TYPES, 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_BUILDER_LABELS, DEFAULT_SKILL_EDIT_FORM_LABELS, DEFAULT_SKILL_GENERATE_FORM_LABELS, DEFAULT_SKILL_VIEW_TOGGLE_LABELS, DEFAULT_STEP_BAR_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_THREAD_STATE_LABELS, DEFAULT_TUPLE_ARRAY_FIELD_LABELS, DEFAULT_UPLOAD_TASK_ITEM_LABELS, DEFAULT_UPLOAD_TASK_LIST_LABELS, DEFAULT_WORKFLOW_RUNNER_LABELS, DEFAULT_WORKFLOW_RUN_STATUS_LABELS, DEFAULT_WORKFLOW_STEP_PARTS_LABELS, DEFAULT_WORKFLOW_THREAD_STRIP_LABELS, DERIVED_NAME_WORDS, EMPTY_NEW_THREAD, GENERATE_IMAGE, GENERATE_IMAGE_ID, IMAGE_ASPECT_AUTO, IMAGE_ASPECT_RATIOS, MAX_TASK_DEPTH, NewThreadDialog, PillSelect, REMIND_TASK, REMIND_TASK_ID, RecurrenceBuilder, SKILL_FIELD_TYPE_LABELS, SKILL_MAIN_FILENAME, SKILL_SOURCE_LABELS, SKILL_TYPES, SKILL_TYPE_LABELS, STATUS_LABELS, STATUS_ORDER, STATUS_TONE, SUMMARISE, SUMMARISE_ID, SendBackControl, SkillDetail, SkillDetailSection, SkillEditForm, SkillFilterChips, SkillGenerateForm, SkillLibraryDetail, SkillTile, SkillViewToggle, TASK_COLUMN_ORDER, TIMELINE, TIMELINE_ID, TIMELINE_PROMPT, TRANSLATE, TRANSLATE_ID, TRANSLATE_LANGUAGES, TRIGGER_LABELS, TaskActivityDialog, TaskActivityTimeline, TaskComposer, TaskEmptyState, TaskMoveDialog, TaskOutputsCell, TaskPlan, TaskRunsDialog, TaskStatusPill, TaskTable, ThreadStatusLine, TupleArrayField, UploadTaskItem, UploadTaskList, WEB_WORKFLOWS, WORKFLOW_REGISTRY, WorkflowRunStatus, WorkflowRunner, WorkflowStepAction, WorkflowThreadStartedBy, WorkflowThreadStrip, activeStepId, agentConfigSectionToValues, agentCreatorToConfigSection, asTaskStatus, authModeFor, buildLibrarySkills, buildTaskRows, buildZipSkillImport, closeWorkflowLaunch, composePersona, composerToTaskQuery, composerToWorkRequest, composerToWorkflowRequest, composerToWorkflowUpdate, createTaskColumns, createsWork, defaultScopeRenderer, defaultTaskComposerValues, deriveAgentName, deriveAnnotationName, deriveWorkflowName, descendantIds, filterConversationRows, filterLibrarySkills, firstWords, formatElapsed, goalProgress, groupAgentTasks, groupThreadActivity, hasTaskFields, humanizeSection, importMarkdownSkill, importSkillFile, importSkillFromUrl, indexTasks, inferType, inputDocumentIds, isAgenticWorkflow, isMainSkillFile, isOutOfBounds, isPlainTodo, isValidAgentName, isoToLocalInput, labelRef, labelRefKey, localInputToIso, matchRequiredLabels, moveTargets, newThreadToRequest, nextCriterionId, openWorkflowLaunch, ownerExtId, parseSkillFrontmatter, prettifyKey, readSkillArchive, recordWorkflowUse, renderWorkflowIcon, requiredLabelsOf, resetWorkflowUsage, resolveScopeInputs, serializeSkill, skillSlug, sortByRecentUse, stepWindow, stripPersonaPreamble, summarizeAgent, summarizeCapabilities, taskActivityHeadline, taskComposerToCreateRequest, taskComposerToUpdateRequest, taskNeedsAccess, taskToComposerValues, unresolvedLabelRefs, useWorkflowLaunchRequest, useWorkflowUsage, useWorkflowView, withLabelIds, workflowFromSkillMarkdown, workflowTaskFields, workflowToComposerValues, workflowToSkillMarkdown, workflowWhen } from './chunk-T7LLYVOW.js';
|
|
45
45
|
export { AUTOMATION_EVENTS, AssistantEntity, DEFAULT_AGENT_STEPS_LABELS, DEFAULT_RECURRENCE, DEFAULT_SUBAGENT_ROSTER_LABELS, EntityChip, GoalCriteria, MODEL_NAME_ICONS, MODEL_TIER_ICON_MAP, MODEL_TIER_LABELS, STEP_ICON_MAP, StepDetail, StepNarration, StepOutcome, StepParams, StepRow, StepSummary, StepTrace, StepTraceSummary, SubAgentLane, SubStepGroup, SubagentRoster, TAG_ICONS, TOOL_ICON_MAP, TaskFlow, ThreadActivity, WEEKDAYS, buildRRule, compactThreadActivity, describeRRule, describeTrigger, fromPlanAssignee, fromPlanDocumentRef, fromPlanSteps, getAgentStepIcon, getAgentStepPresentation, getCurrentAgentStepPresentation, getModelIcon, isIncompleteSignal, isSupersededStop, latestMessageTime, layoutFromPlanSteps, linkedRunsFromActivity, notifiedLabel, parseRRule, stepAccent, toPlanAssignee, toPlanDocumentRef, toPlanSteps, unnotifiedMentions } from './chunk-RIBQCTBQ.js';
|
|
46
46
|
export { ChevronShape, ProgressChevron, ProgressChevronBar } from './chunk-LRPGXNMA.js';
|
|
47
47
|
export { WORD_ASK, WORD_ASK_ID, WORD_CONTINUE, WORD_CONTINUE_ID, WORD_SUMMARISE, WORD_SUMMARISE_ID, WORD_SUPPORT, WORD_SUPPORT_ID, WORD_WORKFLOWS } from './chunk-3NBIP4K2.js';
|
|
48
|
-
export { AgentSelect, DEFAULT_AGENT_SELECT_LABELS, DEFAULT_SCHEMA_FORM_LABELS, DEFAULT_TASK_TRIGGER_CHIP_LABELS, DEFAULT_WORKFLOW_CATALOGUE_LABELS, DEFAULT_WORKFLOW_CONFIG_DIALOG_LABELS, DEFAULT_WORKFLOW_DOCUMENTS_FIELD_LABELS, DEFAULT_WORKFLOW_LIST_LABELS, PersonPill, SchemaForm, TaskTriggerChip, WORKFLOW_COLUMN_ORDER, WorkflowCatalogueSections, WorkflowConfigDialog, WorkflowDocumentsField, WorkflowLauncher, WorkflowsTable, buildWorkflowScopeSource, createWorkflowColumns, documentScopeLabels, matchWorkflowScope } from './chunk-
|
|
48
|
+
export { AgentSelect, DEFAULT_AGENT_SELECT_LABELS, DEFAULT_SCHEMA_FORM_LABELS, DEFAULT_TASK_TRIGGER_CHIP_LABELS, DEFAULT_WORKFLOW_CATALOGUE_LABELS, DEFAULT_WORKFLOW_CONFIG_DIALOG_LABELS, DEFAULT_WORKFLOW_DOCUMENTS_FIELD_LABELS, DEFAULT_WORKFLOW_LIST_LABELS, PersonPill, SchemaForm, TaskTriggerChip, WORKFLOW_COLUMN_ORDER, WorkflowCatalogueSections, WorkflowConfigDialog, WorkflowDocumentsField, WorkflowLauncher, WorkflowsTable, buildWorkflowScopeSource, createWorkflowColumns, documentScopeLabels, matchWorkflowScope } from './chunk-RZG4ALKZ.js';
|
|
49
49
|
export { hasTrigger, isScheduledWorkflow, isSkillRow, workflowSignal, workflowStatus, workflowTriggerType } from './chunk-4QUUU7GH.js';
|
|
50
50
|
import './chunk-DL6KPLNR.js';
|
|
51
51
|
import './chunk-I2W77S37.js';
|
|
@@ -63,13 +63,13 @@ export { ARBI_ROUTES, createRouteCodec, hrefFor, isDeepLinkPath, parseHref, path
|
|
|
63
63
|
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_PASSWORD_RULES, DEFAULT_RECOVERY_KEY_DIALOG_LABELS, DEFAULT_REVEALABLE_PASSWORD_INPUT_LABELS, RecoveryKeyDialog, RevealablePasswordInput, consumeFragmentCredentials, createPasswordRules, parseAuthError, parseFragmentCredentials, promptSaveCredential, useFragmentCredentials } from './chunk-FVZ2CN4A.js';
|
|
64
64
|
export { getInstallInstructions, isIosDevice } from './chunk-GIVU67LY.js';
|
|
65
65
|
export { DEFAULT_PASSWORD_STRENGTH_INPUT_LABELS, PasswordStrengthInput } from './chunk-I6F6RBKV.js';
|
|
66
|
+
import './chunk-WNDIVNPT.js';
|
|
66
67
|
export { EntityTooltip, EntityTooltipHeader, EntityTooltipHint, EntityTooltipSection, EntityTooltipStats } from './chunk-3UIJLUXN.js';
|
|
67
68
|
export { DEFAULT_DM_INVITE_CHIP_LABELS, DmInviteChip, DmThreadHeader } from './chunk-2S3LT5KE.js';
|
|
68
69
|
export { ArbiHost, useHost } from './chunk-BH4MK2J5.js';
|
|
69
70
|
export { DEFAULT_TAB_HEADER_LABELS, TabHeader } from './chunk-USTSEENR.js';
|
|
70
71
|
export { EmptyState } from './chunk-P6GHJSLR.js';
|
|
71
72
|
import './chunk-PFF5IZGS.js';
|
|
72
|
-
import './chunk-WNDIVNPT.js';
|
|
73
73
|
export { AssistantToaster } from './chunk-YCINS3YV.js';
|
|
74
74
|
export { ComposerAccessories, ComposerTools, ContextActionButton, ContextCheckRow, ContextPanelContent, ContextPanelFooter, ContextPanelTabs, ContextPickerList, ContextPickerRow, ContextSearchInput, Conversation, ConversationBody, ConversationHeader, ConversationHeaderActions, ConversationHistoryPane, ConversationLoading, ConversationMain, ConversationRoot, ConversationSearchView, ConversationSettingsButton, DEFAULT_CONVERSATION_LAYOUT_LABELS, DEFAULT_CONVERSATION_PARTS_LABELS, DEFAULT_CONVERSATION_SEARCH_LABELS, DEFAULT_DRAFTING_DOC_CHIP_LABELS, DEFAULT_LABEL_PIN_ROW_LABELS, DEFAULT_PENDING_ANSWER_BAR_LABELS, DEFAULT_PINNED_DOC_CHIP_LABELS, DraftingDocChip, LabelPinRow, NewChatButton, NewPaChatButton, PaModeBadge, PendingAnswerBar, PinnedDocChip, useDismissibleCard } from './chunk-KFVOZOMX.js';
|
|
75
75
|
export { AssistantDock, AssistantDockToggle, useAssistantDock } from './chunk-E4MNUJEU.js';
|
package/dist/settings/index.cjs
CHANGED
|
@@ -11,8 +11,8 @@ var chunkOYXWQTHF_cjs = require('../chunk-OYXWQTHF.cjs');
|
|
|
11
11
|
require('../chunk-II2OEXHW.cjs');
|
|
12
12
|
var chunk4PA6VCCR_cjs = require('../chunk-4PA6VCCR.cjs');
|
|
13
13
|
require('../chunk-M74FWYNL.cjs');
|
|
14
|
-
require('../chunk-SJSGSHIT.cjs');
|
|
15
14
|
var chunkVZOOGA47_cjs = require('../chunk-VZOOGA47.cjs');
|
|
15
|
+
require('../chunk-SJSGSHIT.cjs');
|
|
16
16
|
require('../chunk-UDSHVNU3.cjs');
|
|
17
17
|
require('../chunk-IPSHAMO2.cjs');
|
|
18
18
|
require('../chunk-PPCATBOY.cjs');
|
package/dist/settings/index.js
CHANGED
|
@@ -9,8 +9,8 @@ export { MultiSelect } from '../chunk-I2W77S37.js';
|
|
|
9
9
|
import '../chunk-53EY2DOZ.js';
|
|
10
10
|
export { DEFAULT_TRI_STATE_FILTER_MENU_LABELS, TriStateFilterMenu } from '../chunk-ZQ5YTC3P.js';
|
|
11
11
|
import '../chunk-I6F6RBKV.js';
|
|
12
|
-
import '../chunk-USTSEENR.js';
|
|
13
12
|
export { DEFAULT_DOCUMENT_PICKER_LABELS, DocumentPicker } from '../chunk-WNDIVNPT.js';
|
|
13
|
+
import '../chunk-USTSEENR.js';
|
|
14
14
|
import '../chunk-XDDORJPA.js';
|
|
15
15
|
import '../chunk-X5YMI6A7.js';
|
|
16
16
|
import '../chunk-NPLYHR2E.js';
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
require('../chunk-
|
|
4
|
+
var chunkXM4KRGCK_cjs = require('../chunk-XM4KRGCK.cjs');
|
|
5
|
+
require('../chunk-YZ6YOOTF.cjs');
|
|
6
6
|
require('../chunk-KWJW5TMH.cjs');
|
|
7
7
|
require('../chunk-XTCNETMI.cjs');
|
|
8
8
|
require('../chunk-TZHLO7HF.cjs');
|
|
9
9
|
require('../chunk-AEQT2QQX.cjs');
|
|
10
|
-
var
|
|
10
|
+
var chunkECCV4YOL_cjs = require('../chunk-ECCV4YOL.cjs');
|
|
11
11
|
require('../chunk-464YPRAE.cjs');
|
|
12
12
|
require('../chunk-LCPU44GW.cjs');
|
|
13
13
|
var chunkSIYNZR5B_cjs = require('../chunk-SIYNZR5B.cjs');
|
|
@@ -32,12 +32,12 @@ require('../chunk-SK6HQ46Q.cjs');
|
|
|
32
32
|
require('../chunk-VLCY46K6.cjs');
|
|
33
33
|
var chunkNSD37OF5_cjs = require('../chunk-NSD37OF5.cjs');
|
|
34
34
|
require('../chunk-OEJQFPWO.cjs');
|
|
35
|
-
var
|
|
36
|
-
var
|
|
35
|
+
var chunkAINS6VU6_cjs = require('../chunk-AINS6VU6.cjs');
|
|
36
|
+
var chunkJ4CXF4A7_cjs = require('../chunk-J4CXF4A7.cjs');
|
|
37
37
|
var chunkKNC77LZZ_cjs = require('../chunk-KNC77LZZ.cjs');
|
|
38
38
|
var chunkI4IS6ST6_cjs = require('../chunk-I4IS6ST6.cjs');
|
|
39
39
|
require('../chunk-EVZH6Z5O.cjs');
|
|
40
|
-
var
|
|
40
|
+
var chunkSYWJNSPS_cjs = require('../chunk-SYWJNSPS.cjs');
|
|
41
41
|
require('../chunk-3YEXZX4H.cjs');
|
|
42
42
|
require('../chunk-ZHUQYIV3.cjs');
|
|
43
43
|
require('../chunk-OYXWQTHF.cjs');
|
|
@@ -50,6 +50,8 @@ require('../chunk-6UZC4XVV.cjs');
|
|
|
50
50
|
require('../chunk-ZK3D3RWK.cjs');
|
|
51
51
|
require('../chunk-LKK52DEY.cjs');
|
|
52
52
|
require('../chunk-M74FWYNL.cjs');
|
|
53
|
+
require('../chunk-QUMUAJ2P.cjs');
|
|
54
|
+
require('../chunk-VZOOGA47.cjs');
|
|
53
55
|
require('../chunk-F5T4W2R2.cjs');
|
|
54
56
|
require('../chunk-5HEMXXHR.cjs');
|
|
55
57
|
var chunkBFKTZUFT_cjs = require('../chunk-BFKTZUFT.cjs');
|
|
@@ -59,8 +61,6 @@ var chunkLUO46ELJ_cjs = require('../chunk-LUO46ELJ.cjs');
|
|
|
59
61
|
require('../chunk-SJSGSHIT.cjs');
|
|
60
62
|
require('../chunk-ZW6FPIFC.cjs');
|
|
61
63
|
require('../chunk-ZT5MIFLC.cjs');
|
|
62
|
-
require('../chunk-QUMUAJ2P.cjs');
|
|
63
|
-
require('../chunk-VZOOGA47.cjs');
|
|
64
64
|
require('../chunk-7CSEMMDJ.cjs');
|
|
65
65
|
require('../chunk-YQT24SAZ.cjs');
|
|
66
66
|
require('../chunk-Z6JUJI4A.cjs');
|
|
@@ -1661,7 +1661,7 @@ function triggerFields(trigger, clearOthers) {
|
|
|
1661
1661
|
return {
|
|
1662
1662
|
timezone: trigger.timezone,
|
|
1663
1663
|
rrule: trigger.start === "repeat" ? trigger.rrule.trim() : none,
|
|
1664
|
-
run_at: trigger.start === "once" ?
|
|
1664
|
+
run_at: trigger.start === "once" ? chunkJ4CXF4A7_cjs.localInputToIso(trigger.runAt) : none,
|
|
1665
1665
|
event_kind: trigger.start === "event" ? trigger.eventKind.trim() : none,
|
|
1666
1666
|
// A step signal is `workflow_signal` narrowed to one signal name.
|
|
1667
1667
|
event_filter: filter ?? none,
|
|
@@ -1720,7 +1720,7 @@ function workflowRecordToBuilder(record) {
|
|
|
1720
1720
|
...record.skill_ref ? { workflow: record.skill_ref } : { run: { kind: "prompt", promptTemplate: record.prompt } }
|
|
1721
1721
|
}
|
|
1722
1722
|
] : [];
|
|
1723
|
-
const when =
|
|
1723
|
+
const when = chunkJ4CXF4A7_cjs.workflowWhen(record);
|
|
1724
1724
|
return {
|
|
1725
1725
|
workflow: {
|
|
1726
1726
|
id: record.external_id,
|
|
@@ -1734,7 +1734,7 @@ function workflowRecordToBuilder(record) {
|
|
|
1734
1734
|
trigger: {
|
|
1735
1735
|
...DEFAULT_WORKFLOW_TRIGGER,
|
|
1736
1736
|
start: when === "now" ? "manual" : when,
|
|
1737
|
-
runAt:
|
|
1737
|
+
runAt: chunkJ4CXF4A7_cjs.isoToLocalInput(record.run_at),
|
|
1738
1738
|
rrule: record.rrule ?? "",
|
|
1739
1739
|
timezone: record.timezone || DEFAULT_WORKFLOW_TRIGGER.timezone,
|
|
1740
1740
|
eventKind: record.event_kind ?? "",
|
|
@@ -1849,7 +1849,7 @@ function TriggerInspector({
|
|
|
1849
1849
|
}
|
|
1850
1850
|
)
|
|
1851
1851
|
] }),
|
|
1852
|
-
trigger.start === "repeat" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1852
|
+
trigger.start === "repeat" && /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.RecurrenceBuilder, { rrule: trigger.rrule, onChange: (rrule) => set({ rrule }) }),
|
|
1853
1853
|
trigger.start === "event" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
|
|
1854
1854
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { className: "text-xs", children: l.event }),
|
|
1855
1855
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -1901,7 +1901,7 @@ function TriggerInspector({
|
|
|
1901
1901
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
|
|
1902
1902
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { className: "text-xs", children: l.agent }),
|
|
1903
1903
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1904
|
-
|
|
1904
|
+
chunkSYWJNSPS_cjs.AgentSelect,
|
|
1905
1905
|
{
|
|
1906
1906
|
agents,
|
|
1907
1907
|
value: trigger.agentId,
|
|
@@ -2740,13 +2740,13 @@ function WorkflowPreview({
|
|
|
2740
2740
|
renderIcon,
|
|
2741
2741
|
testId
|
|
2742
2742
|
}) {
|
|
2743
|
-
const run =
|
|
2743
|
+
const run = chunkAINS6VU6_cjs.useWorkflowPreview(workflow, {
|
|
2744
2744
|
resolveWorkflow: (id) => workflows.find((w) => w.id === id),
|
|
2745
2745
|
compose,
|
|
2746
2746
|
answer
|
|
2747
2747
|
});
|
|
2748
2748
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2749
|
-
|
|
2749
|
+
chunkJ4CXF4A7_cjs.WorkflowRunner,
|
|
2750
2750
|
{
|
|
2751
2751
|
workflow,
|
|
2752
2752
|
run,
|
|
@@ -3005,7 +3005,7 @@ function ConnectedWorkflowsPage({
|
|
|
3005
3005
|
const config = host.workflows;
|
|
3006
3006
|
const { openConversation, openFiles } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
|
|
3007
3007
|
const openWorkflow = chunkSIYNZR5B_cjs.useOpenWorkflow();
|
|
3008
|
-
const renderPerson =
|
|
3008
|
+
const renderPerson = chunkXM4KRGCK_cjs.useRenderTaskPerson();
|
|
3009
3009
|
const refreshDocuments = react$2.useRefreshDocuments();
|
|
3010
3010
|
const invalidateTags = react$2.useInvalidateTagData();
|
|
3011
3011
|
const { data: tags = [] } = react$2.useTags();
|
|
@@ -3036,7 +3036,7 @@ function ConnectedWorkflowsPage({
|
|
|
3036
3036
|
openHistory,
|
|
3037
3037
|
closeHistoryTab,
|
|
3038
3038
|
selectHistoryTab
|
|
3039
|
-
} =
|
|
3039
|
+
} = chunkXM4KRGCK_cjs.useWorkflowsPageState({
|
|
3040
3040
|
historyWorkflowId: requestedHistoryId ?? historyWorkflowId,
|
|
3041
3041
|
onHistoryWorkflowConsumed: consumeHistory
|
|
3042
3042
|
});
|
|
@@ -3094,11 +3094,11 @@ function ConnectedWorkflowsPage({
|
|
|
3094
3094
|
const renderErrorReport = config?.renderErrorReport;
|
|
3095
3095
|
const running = runningId ? config?.catalogue?.find((entry) => entry.workflow.id === runningId) : void 0;
|
|
3096
3096
|
if (running && running.runnable !== false) {
|
|
3097
|
-
const stepWorkflows = config?.stepWorkflows ??
|
|
3097
|
+
const stepWorkflows = config?.stepWorkflows ?? chunkJ4CXF4A7_cjs.WEB_WORKFLOWS;
|
|
3098
3098
|
return (
|
|
3099
3099
|
// The page in the Workflows page's frame: padded, scrolling.
|
|
3100
3100
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-full min-h-0 w-full overflow-auto p-4 sm:p-6", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3101
|
-
|
|
3101
|
+
chunkXM4KRGCK_cjs.ConnectedWorkflowRunPage,
|
|
3102
3102
|
{
|
|
3103
3103
|
workflow: running.workflow,
|
|
3104
3104
|
projectFrom: running.projectFrom,
|
|
@@ -3171,7 +3171,7 @@ function ConnectedWorkflowsPage({
|
|
|
3171
3171
|
{
|
|
3172
3172
|
workflowId: builder.kind === "saved" ? builder.id : void 0,
|
|
3173
3173
|
initial: template ? { workflow: template.workflow, trigger: DEFAULT_WORKFLOW_TRIGGER } : void 0,
|
|
3174
|
-
workflows: config?.stepWorkflows ??
|
|
3174
|
+
workflows: config?.stepWorkflows ?? chunkJ4CXF4A7_cjs.WEB_WORKFLOWS,
|
|
3175
3175
|
renderIcon: config?.renderIcon,
|
|
3176
3176
|
onSaved: (id) => builderSaved(id, builderKey),
|
|
3177
3177
|
testId: "workflow-builder-canvas",
|
|
@@ -3186,7 +3186,7 @@ function ConnectedWorkflowsPage({
|
|
|
3186
3186
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-0 flex-col", "data-testid": testId, children: [
|
|
3187
3187
|
pageHeader && /* @__PURE__ */ jsxRuntime.jsx(chunkNSD37OF5_cjs.PageHeader, { ...pageHeader }),
|
|
3188
3188
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3189
|
-
|
|
3189
|
+
chunkECCV4YOL_cjs.ConnectedWorkflowsTable,
|
|
3190
3190
|
{
|
|
3191
3191
|
onOpenTemplate: (id) => openBuilder({ kind: "template", id }),
|
|
3192
3192
|
tabs: [
|
|
@@ -3216,7 +3216,7 @@ function ConnectedWorkflowsPage({
|
|
|
3216
3216
|
}
|
|
3217
3217
|
},
|
|
3218
3218
|
content: hostTab ? hostTab.content : runsFor ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3219
|
-
|
|
3219
|
+
chunkXM4KRGCK_cjs.ConnectedWorkflowHistory,
|
|
3220
3220
|
{
|
|
3221
3221
|
inline: true,
|
|
3222
3222
|
hideHeader: true,
|
|
@@ -3280,7 +3280,7 @@ function ConnectedWorkflowsPage({
|
|
|
3280
3280
|
}
|
|
3281
3281
|
),
|
|
3282
3282
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3283
|
-
|
|
3283
|
+
chunkXM4KRGCK_cjs.ConnectedTaskComposer,
|
|
3284
3284
|
{
|
|
3285
3285
|
kind: "workflow",
|
|
3286
3286
|
saveOnly: true,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useRenderTaskPerson, useWorkflowsPageState, ConnectedWorkflowRunPage, ConnectedWorkflowHistory, ConnectedTaskComposer } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
2
|
+
import { useRenderTaskPerson, useWorkflowsPageState, ConnectedWorkflowRunPage, ConnectedWorkflowHistory, ConnectedTaskComposer } from '../chunk-LZI4EGOW.js';
|
|
3
|
+
import '../chunk-SEBNGA3F.js';
|
|
4
4
|
import '../chunk-57CG33XJ.js';
|
|
5
5
|
import '../chunk-Y7UHKEVT.js';
|
|
6
6
|
import '../chunk-5T5CM7UC.js';
|
|
7
7
|
import '../chunk-5PAQWN5U.js';
|
|
8
|
-
import { ConnectedWorkflowsTable } from '../chunk-
|
|
8
|
+
import { ConnectedWorkflowsTable } from '../chunk-42IVGYNL.js';
|
|
9
9
|
import '../chunk-MTSKK3BN.js';
|
|
10
10
|
import '../chunk-Y7UIFRWC.js';
|
|
11
11
|
import { useOpenWorkflow } from '../chunk-K2U5BCQ2.js';
|
|
@@ -30,12 +30,12 @@ import '../chunk-ELA7Y5YW.js';
|
|
|
30
30
|
import '../chunk-K4BGOPGG.js';
|
|
31
31
|
import { PageHeader } from '../chunk-XCVLUXFP.js';
|
|
32
32
|
import '../chunk-VIIBJBTX.js';
|
|
33
|
-
import { useWorkflowPreview } from '../chunk-
|
|
34
|
-
import { workflowWhen, isoToLocalInput, RecurrenceBuilder, WorkflowRunner, WEB_WORKFLOWS, localInputToIso } from '../chunk-
|
|
33
|
+
import { useWorkflowPreview } from '../chunk-76O7J6IZ.js';
|
|
34
|
+
import { workflowWhen, isoToLocalInput, RecurrenceBuilder, WorkflowRunner, WEB_WORKFLOWS, localInputToIso } from '../chunk-T7LLYVOW.js';
|
|
35
35
|
import { isIncompleteSignal, fromPlanSteps, layoutFromPlanSteps, describeRRule, describeTrigger, toPlanSteps } from '../chunk-RIBQCTBQ.js';
|
|
36
36
|
import { ChevronShape } from '../chunk-LRPGXNMA.js';
|
|
37
37
|
import '../chunk-3NBIP4K2.js';
|
|
38
|
-
import { AgentSelect } from '../chunk-
|
|
38
|
+
import { AgentSelect } from '../chunk-RZG4ALKZ.js';
|
|
39
39
|
import '../chunk-4QUUU7GH.js';
|
|
40
40
|
import '../chunk-DL6KPLNR.js';
|
|
41
41
|
import '../chunk-I2W77S37.js';
|
|
@@ -48,6 +48,8 @@ import '../chunk-P4CH2ATT.js';
|
|
|
48
48
|
import '../chunk-KPLWLHWH.js';
|
|
49
49
|
import '../chunk-7F5Z4K5W.js';
|
|
50
50
|
import '../chunk-I6F6RBKV.js';
|
|
51
|
+
import '../chunk-OJIX5NBN.js';
|
|
52
|
+
import '../chunk-WNDIVNPT.js';
|
|
51
53
|
import '../chunk-SOLSDXOZ.js';
|
|
52
54
|
import '../chunk-46IG4KY7.js';
|
|
53
55
|
import { useConnectedTags, useListedDocuments, useConnectedConversations } from '../chunk-CCUXCN4M.js';
|
|
@@ -57,8 +59,6 @@ import { useHost } from '../chunk-BH4MK2J5.js';
|
|
|
57
59
|
import '../chunk-USTSEENR.js';
|
|
58
60
|
import '../chunk-P6GHJSLR.js';
|
|
59
61
|
import '../chunk-PFF5IZGS.js';
|
|
60
|
-
import '../chunk-OJIX5NBN.js';
|
|
61
|
-
import '../chunk-WNDIVNPT.js';
|
|
62
62
|
import '../chunk-K57LFBUW.js';
|
|
63
63
|
import '../chunk-GWAL6O7B.js';
|
|
64
64
|
import '../chunk-W3E4F65Y.js';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var chunkC5CWKZ5D_cjs = require('../chunk-C5CWKZ5D.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunkYZ6YOOTF_cjs = require('../chunk-YZ6YOOTF.cjs');
|
|
6
6
|
var chunkKWJW5TMH_cjs = require('../chunk-KWJW5TMH.cjs');
|
|
7
7
|
require('../chunk-UMMZNZV3.cjs');
|
|
8
8
|
require('../chunk-AEQT2QQX.cjs');
|
|
@@ -156,31 +156,31 @@ Object.defineProperty(exports, "getRoleDescription", {
|
|
|
156
156
|
});
|
|
157
157
|
Object.defineProperty(exports, "FormActions", {
|
|
158
158
|
enumerable: true,
|
|
159
|
-
get: function () { return
|
|
159
|
+
get: function () { return chunkYZ6YOOTF_cjs.FormActions; }
|
|
160
160
|
});
|
|
161
161
|
Object.defineProperty(exports, "FormErrorBanner", {
|
|
162
162
|
enumerable: true,
|
|
163
|
-
get: function () { return
|
|
163
|
+
get: function () { return chunkYZ6YOOTF_cjs.FormErrorBanner; }
|
|
164
164
|
});
|
|
165
165
|
Object.defineProperty(exports, "ModalActionRow", {
|
|
166
166
|
enumerable: true,
|
|
167
|
-
get: function () { return
|
|
167
|
+
get: function () { return chunkYZ6YOOTF_cjs.ModalActionRow; }
|
|
168
168
|
});
|
|
169
169
|
Object.defineProperty(exports, "ProjectOptionRow", {
|
|
170
170
|
enumerable: true,
|
|
171
|
-
get: function () { return
|
|
171
|
+
get: function () { return chunkYZ6YOOTF_cjs.ProjectOptionRow; }
|
|
172
172
|
});
|
|
173
173
|
Object.defineProperty(exports, "ProjectPicker", {
|
|
174
174
|
enumerable: true,
|
|
175
|
-
get: function () { return
|
|
175
|
+
get: function () { return chunkYZ6YOOTF_cjs.ProjectPicker; }
|
|
176
176
|
});
|
|
177
177
|
Object.defineProperty(exports, "WorkspaceFieldsView", {
|
|
178
178
|
enumerable: true,
|
|
179
|
-
get: function () { return
|
|
179
|
+
get: function () { return chunkYZ6YOOTF_cjs.WorkspaceFieldsView; }
|
|
180
180
|
});
|
|
181
181
|
Object.defineProperty(exports, "WorkspaceFormModal", {
|
|
182
182
|
enumerable: true,
|
|
183
|
-
get: function () { return
|
|
183
|
+
get: function () { return chunkYZ6YOOTF_cjs.WorkspaceFormModal; }
|
|
184
184
|
});
|
|
185
185
|
Object.defineProperty(exports, "NO_PROJECT_GROUP_KEY", {
|
|
186
186
|
enumerable: true,
|
package/dist/workspaces/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { WorkspaceCard } from '../chunk-JGA2JJEL.js';
|
|
3
3
|
export { CommonWorkspaceToggle, DEFAULT_WORKSPACE_CARD_LABELS, ExpandableSection, ItalicNone, LeaveFooter, PageLoading, WorkspaceAudienceLine, WorkspaceCard, WorkspaceGroup, WorkspaceIdentityPanel, WorkspaceList, WorkspacePageFrame, WorkspaceProjectSlot, WorkspaceTypeBadge, formatRole, getRoleBadgeClass, getRoleDescription } from '../chunk-JGA2JJEL.js';
|
|
4
|
-
export { FormActions, FormErrorBanner, ModalActionRow, ProjectOptionRow, ProjectPicker, WorkspaceFieldsView, WorkspaceFormModal } from '../chunk-
|
|
4
|
+
export { FormActions, FormErrorBanner, ModalActionRow, ProjectOptionRow, ProjectPicker, WorkspaceFieldsView, WorkspaceFormModal } from '../chunk-SEBNGA3F.js';
|
|
5
5
|
export { NO_PROJECT_GROUP_KEY, WORKSPACE_CATEGORY_FILTERS, byRecentUpdate, getHumanUserCount, getVariantBgClass, getVariantBorderClass, getWorkspaceTypeInfo, groupWorkspacesByProject, isAgentAccount, isListedWorkspace, projectFilterId, workspaceConversationCount, workspaceDocumentCount, workspaceFilterAttributes, workspaceGroupStats } from '../chunk-57CG33XJ.js';
|
|
6
6
|
import '../chunk-CPLZ6XGT.js';
|
|
7
7
|
import '../chunk-5PAQWN5U.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arbidocs/coedit",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.97",
|
|
4
4
|
"description": "Real-time collaboration for the ARBI native DOCX editor: a Yjs mirror of the canonical OOXML package, session, and server runtime",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arbidocs/blocks",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.97",
|
|
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",
|
|
@@ -331,9 +331,9 @@
|
|
|
331
331
|
"example:test:e2e": "playwright test -c examples/custom-ui/playwright.config.ts"
|
|
332
332
|
},
|
|
333
333
|
"dependencies": {
|
|
334
|
-
"@arbidocs/client": "0.5.
|
|
335
|
-
"@arbidocs/coedit": "0.5.
|
|
336
|
-
"@arbidocs/sdk": "0.5.
|
|
334
|
+
"@arbidocs/client": "0.5.97",
|
|
335
|
+
"@arbidocs/coedit": "0.5.97",
|
|
336
|
+
"@arbidocs/sdk": "0.5.97",
|
|
337
337
|
"@auth0/auth0-react": "^2.19.0",
|
|
338
338
|
"@dnd-kit/core": "^6.3.1",
|
|
339
339
|
"@dnd-kit/sortable": "^10.0.0",
|
|
@@ -382,7 +382,7 @@
|
|
|
382
382
|
"y-protocols": "^1.0.6"
|
|
383
383
|
},
|
|
384
384
|
"peerDependencies": {
|
|
385
|
-
"@arbidocs/react": "0.5.
|
|
385
|
+
"@arbidocs/react": "0.5.97",
|
|
386
386
|
"@lexical/html": "0.35.0",
|
|
387
387
|
"@lexical/link": "0.35.0",
|
|
388
388
|
"@lexical/list": "0.35.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"ConnectedStreamedWordArtifact-WFKYXIX5.cjs"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/connection/viewer/DocumentViewerDialog.tsx","../src/connection/files/page/FilesViewerDialog.tsx"],"names":["tab","jsx"],"mappings":"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","file":"FilesViewerDialog-4Q6WJMSX.js","sourcesContent":["/**\n * The document viewer as a dialog (the files page's own viewer): a title, the tabs\n * the host offers, and under them the review (`DocumentReview`), the whole viewer, or a question\n * (`AskBar`) that starts a thread about the document. Views of existing parts, not a new viewer.\n */\n\nimport { useState, type ReactNode } from 'react'\nimport { Eye, FileText, MessageSquareText, PenLine } from 'lucide-react'\nimport {\n DocumentReview,\n useArbiSessionState,\n useArbiSessionStore,\n useDocuments,\n type WorkspaceDocument,\n} from '@arbidocs/react'\nimport { parseVersionRef } from '@arbidocs/react/artifacts'\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from '@arbidocs/react/ui'\nimport { AskBar } from '../../components/AskBar'\nimport { SegmentedControl, type SegmentedOption } from '../../settings/SegmentedControl'\nimport { useBlocksEnvironment } from '../../provider/environment'\nimport { useConnectedWorkspace } from '../ConnectionProvider'\nimport {\n DEFAULT_ASK_SUGGESTIONS,\n DEFAULT_DOCUMENT_VIEWER_LABELS,\n DEFAULT_DOCUMENT_VIEWER_TABS,\n type DocumentViewerDialogLabels,\n type DocumentViewerTab,\n} from './documentViewerTabs'\n\ntype ReviewDocument = Parameters<typeof DocumentReview>[0]['doc']\n\nexport interface DocumentViewerDialogProps {\n /** The document, or a version reference `doc-…@v{n}`. */\n documentId: string\n /** The views offered, in order. Default: review, document, ask. */\n tabs?: readonly DocumentViewerTab[]\n /** The view it opens on. Default: the first offered. */\n initialTab?: DocumentViewerTab\n labels?: DocumentViewerDialogLabels\n /** The ask view's suggested questions. */\n askSuggestions?: readonly string[]\n onClose: () => void\n /** The whole viewer, for the document view. */\n renderDocument: (documentId: string) => ReactNode\n}\n\nconst titleOf = (doc: WorkspaceDocument | undefined) =>\n doc?.doc_metadata?.title || doc?.file_name || 'Document'\n\nconst TAB_ICONS: Record<DocumentViewerTab, ReactNode> = {\n review: <Eye className=\"size-4\" />,\n document: <PenLine className=\"size-4\" />,\n ask: <MessageSquareText className=\"size-4\" />,\n}\n\nconst TAB_TEST_IDS: Record<DocumentViewerTab, string> = {\n review: 'review-tab-review',\n document: 'review-tab-pdf',\n ask: 'review-tab-qa',\n}\n\nexport function DocumentViewerDialog({\n documentId,\n tabs = DEFAULT_DOCUMENT_VIEWER_TABS,\n initialTab,\n labels: labelOverrides,\n askSuggestions = DEFAULT_ASK_SUGGESTIONS,\n onClose,\n renderDocument,\n}: DocumentViewerDialogProps) {\n const labels = { ...DEFAULT_DOCUMENT_VIEWER_LABELS, ...labelOverrides }\n const { workspaceId, live } = useConnectedWorkspace()\n const session = useArbiSessionStore()\n const { openNewConversation } = useBlocksEnvironment()\n const passageId = useArbiSessionState((s) => s.viewingDocument?.passageId ?? null)\n const { data: documents } = useDocuments()\n const baseId = parseVersionRef(documentId).docId\n const doc = documents?.find((d) => d.external_id === baseId)\n const title = titleOf(doc)\n\n // The whole viewer needs a signed-in session (marking up, signing, versions).\n const offered = tabs.filter((tab) => tab !== 'document' || live)\n const [chosen, setChosen] = useState<DocumentViewerTab | undefined>(initialTab)\n const tab = chosen && offered.includes(chosen) ? chosen : offered[0]\n\n const options: SegmentedOption<DocumentViewerTab>[] = offered.map((value) => ({\n value,\n label: labels[value],\n icon: TAB_ICONS[value],\n testId: TAB_TEST_IDS[value],\n }))\n\n // A question opens a new thread about the document, as the viewer's \"Chat\" does.\n const ask = (question: string) => {\n openNewConversation({ prompt: question })\n session.setNewChatDocumentId(baseId)\n }\n\n return (\n <Dialog open onOpenChange={(open) => !open && onClose()}>\n <DialogContent\n className=\"flex h-[90vh] max-w-[95vw] flex-col gap-0 p-0 sm:max-w-[95vw]\"\n data-testid=\"documents-dialog\"\n >\n <DialogHeader className=\"border-b px-4 py-3\">\n <DialogTitle className=\"flex min-w-0 items-center gap-2 pr-8 text-base\">\n <FileText className=\"size-4 shrink-0\" />\n <span className=\"truncate\" data-testid=\"documents-dialog-title\">\n {title}\n </span>\n </DialogTitle>\n <DialogDescription className=\"sr-only\">\n {offered.map((value) => labels[value]).join(', ')}: {title}\n </DialogDescription>\n {options.length > 1 && tab && (\n <SegmentedControl\n ariaLabel=\"Document view\"\n // A phone fits the three on one row: no label breaks over two lines.\n className=\"mt-2 w-fit max-w-full overflow-x-auto [&_button]:whitespace-nowrap max-sm:[&_button]:px-2.5\"\n value={tab}\n onChange={setChosen}\n options={options}\n />\n )}\n </DialogHeader>\n <div className=\"min-h-0 flex-1 overflow-hidden p-3\">\n {tab === 'review' && (\n <DocumentReview\n docId={baseId}\n doc={doc as ReviewDocument}\n workspaceId={workspaceId ?? undefined}\n activeChunkId={passageId}\n />\n )}\n {tab === 'document' && (\n <div className=\"h-full overflow-hidden\" data-testid=\"documents-dialog-viewer\">\n {renderDocument(documentId)}\n </div>\n )}\n {tab === 'ask' && (\n <div className=\"mx-auto max-w-2xl space-y-3 pt-6\" data-testid=\"doc-qa-panel\">\n <p className=\"text-sm text-muted-foreground\">{labels.askIntro}</p>\n <AskBar\n testId=\"doc-ask\"\n placeholder={labels.askPlaceholder.replace('{title}', title)}\n suggestions={[...askSuggestions]}\n onAsk={ask}\n />\n </div>\n )}\n </div>\n </DialogContent>\n </Dialog>\n )\n}\n","/**\n * The files page's own viewer (a page without a host viewer): `DocumentViewerDialog`, with the\n * whole `ConnectedDocumentViewer` as its document view. The page lazy-loads this module, so the\n * viewer stays out of the page's chunk.\n */\nimport { ConnectedDocumentViewer } from '../../viewer/ConnectedDocumentViewer'\nimport {\n DocumentViewerDialog,\n type DocumentViewerDialogProps,\n} from '../../viewer/DocumentViewerDialog'\n\nexport interface FilesViewerDialogProps extends Omit<DocumentViewerDialogProps, 'renderDocument'> {\n /** Where html/react artifacts load their sandbox runtime from. */\n artifactRuntimeUrl?: string\n}\n\nexport function FilesViewerDialog({ artifactRuntimeUrl, ...props }: FilesViewerDialogProps) {\n return (\n <DocumentViewerDialog\n {...props}\n renderDocument={(id) => (\n <ConnectedDocumentViewer documentId={id} artifactRuntimeUrl={artifactRuntimeUrl} />\n )}\n />\n )\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/connection/viewer/DocumentViewerDialog.tsx","../src/connection/files/page/FilesViewerDialog.tsx"],"names":["jsx","Eye","PenLine","MessageSquareText","DEFAULT_DOCUMENT_VIEWER_TABS","DEFAULT_ASK_SUGGESTIONS","DEFAULT_DOCUMENT_VIEWER_LABELS","useConnectedWorkspace","useArbiSessionStore","useBlocksEnvironment","useArbiSessionState","useDocuments","parseVersionRef","tab","useState","Dialog","jsxs","DialogContent","DialogHeader","DialogTitle","FileText","DialogDescription","SegmentedControl","DocumentReview","AskBar","ConnectedDocumentViewer"],"mappings":"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","file":"FilesViewerDialog-H4ZXFNLV.cjs","sourcesContent":["/**\n * The document viewer as a dialog (the files page's own viewer): a title, the tabs\n * the host offers, and under them the review (`DocumentReview`), the whole viewer, or a question\n * (`AskBar`) that starts a thread about the document. Views of existing parts, not a new viewer.\n */\n\nimport { useState, type ReactNode } from 'react'\nimport { Eye, FileText, MessageSquareText, PenLine } from 'lucide-react'\nimport {\n DocumentReview,\n useArbiSessionState,\n useArbiSessionStore,\n useDocuments,\n type WorkspaceDocument,\n} from '@arbidocs/react'\nimport { parseVersionRef } from '@arbidocs/react/artifacts'\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from '@arbidocs/react/ui'\nimport { AskBar } from '../../components/AskBar'\nimport { SegmentedControl, type SegmentedOption } from '../../settings/SegmentedControl'\nimport { useBlocksEnvironment } from '../../provider/environment'\nimport { useConnectedWorkspace } from '../ConnectionProvider'\nimport {\n DEFAULT_ASK_SUGGESTIONS,\n DEFAULT_DOCUMENT_VIEWER_LABELS,\n DEFAULT_DOCUMENT_VIEWER_TABS,\n type DocumentViewerDialogLabels,\n type DocumentViewerTab,\n} from './documentViewerTabs'\n\ntype ReviewDocument = Parameters<typeof DocumentReview>[0]['doc']\n\nexport interface DocumentViewerDialogProps {\n /** The document, or a version reference `doc-…@v{n}`. */\n documentId: string\n /** The views offered, in order. Default: review, document, ask. */\n tabs?: readonly DocumentViewerTab[]\n /** The view it opens on. Default: the first offered. */\n initialTab?: DocumentViewerTab\n labels?: DocumentViewerDialogLabels\n /** The ask view's suggested questions. */\n askSuggestions?: readonly string[]\n onClose: () => void\n /** The whole viewer, for the document view. */\n renderDocument: (documentId: string) => ReactNode\n}\n\nconst titleOf = (doc: WorkspaceDocument | undefined) =>\n doc?.doc_metadata?.title || doc?.file_name || 'Document'\n\nconst TAB_ICONS: Record<DocumentViewerTab, ReactNode> = {\n review: <Eye className=\"size-4\" />,\n document: <PenLine className=\"size-4\" />,\n ask: <MessageSquareText className=\"size-4\" />,\n}\n\nconst TAB_TEST_IDS: Record<DocumentViewerTab, string> = {\n review: 'review-tab-review',\n document: 'review-tab-pdf',\n ask: 'review-tab-qa',\n}\n\nexport function DocumentViewerDialog({\n documentId,\n tabs = DEFAULT_DOCUMENT_VIEWER_TABS,\n initialTab,\n labels: labelOverrides,\n askSuggestions = DEFAULT_ASK_SUGGESTIONS,\n onClose,\n renderDocument,\n}: DocumentViewerDialogProps) {\n const labels = { ...DEFAULT_DOCUMENT_VIEWER_LABELS, ...labelOverrides }\n const { workspaceId, live } = useConnectedWorkspace()\n const session = useArbiSessionStore()\n const { openNewConversation } = useBlocksEnvironment()\n const passageId = useArbiSessionState((s) => s.viewingDocument?.passageId ?? null)\n const { data: documents } = useDocuments()\n const baseId = parseVersionRef(documentId).docId\n const doc = documents?.find((d) => d.external_id === baseId)\n const title = titleOf(doc)\n\n // The whole viewer needs a signed-in session (marking up, signing, versions).\n const offered = tabs.filter((tab) => tab !== 'document' || live)\n const [chosen, setChosen] = useState<DocumentViewerTab | undefined>(initialTab)\n const tab = chosen && offered.includes(chosen) ? chosen : offered[0]\n\n const options: SegmentedOption<DocumentViewerTab>[] = offered.map((value) => ({\n value,\n label: labels[value],\n icon: TAB_ICONS[value],\n testId: TAB_TEST_IDS[value],\n }))\n\n // A question opens a new thread about the document, as the viewer's \"Chat\" does.\n const ask = (question: string) => {\n openNewConversation({ prompt: question })\n session.setNewChatDocumentId(baseId)\n }\n\n return (\n <Dialog open onOpenChange={(open) => !open && onClose()}>\n <DialogContent\n className=\"flex h-[90vh] max-w-[95vw] flex-col gap-0 p-0 sm:max-w-[95vw]\"\n data-testid=\"documents-dialog\"\n >\n <DialogHeader className=\"border-b px-4 py-3\">\n <DialogTitle className=\"flex min-w-0 items-center gap-2 pr-8 text-base\">\n <FileText className=\"size-4 shrink-0\" />\n <span className=\"truncate\" data-testid=\"documents-dialog-title\">\n {title}\n </span>\n </DialogTitle>\n <DialogDescription className=\"sr-only\">\n {offered.map((value) => labels[value]).join(', ')}: {title}\n </DialogDescription>\n {options.length > 1 && tab && (\n <SegmentedControl\n ariaLabel=\"Document view\"\n // A phone fits the three on one row: no label breaks over two lines.\n className=\"mt-2 w-fit max-w-full overflow-x-auto [&_button]:whitespace-nowrap max-sm:[&_button]:px-2.5\"\n value={tab}\n onChange={setChosen}\n options={options}\n />\n )}\n </DialogHeader>\n <div className=\"min-h-0 flex-1 overflow-hidden p-3\">\n {tab === 'review' && (\n <DocumentReview\n docId={baseId}\n doc={doc as ReviewDocument}\n workspaceId={workspaceId ?? undefined}\n activeChunkId={passageId}\n />\n )}\n {tab === 'document' && (\n <div className=\"h-full overflow-hidden\" data-testid=\"documents-dialog-viewer\">\n {renderDocument(documentId)}\n </div>\n )}\n {tab === 'ask' && (\n <div className=\"mx-auto max-w-2xl space-y-3 pt-6\" data-testid=\"doc-qa-panel\">\n <p className=\"text-sm text-muted-foreground\">{labels.askIntro}</p>\n <AskBar\n testId=\"doc-ask\"\n placeholder={labels.askPlaceholder.replace('{title}', title)}\n suggestions={[...askSuggestions]}\n onAsk={ask}\n />\n </div>\n )}\n </div>\n </DialogContent>\n </Dialog>\n )\n}\n","/**\n * The files page's own viewer (a page without a host viewer): `DocumentViewerDialog`, with the\n * whole `ConnectedDocumentViewer` as its document view. The page lazy-loads this module, so the\n * viewer stays out of the page's chunk.\n */\nimport { ConnectedDocumentViewer } from '../../viewer/ConnectedDocumentViewer'\nimport {\n DocumentViewerDialog,\n type DocumentViewerDialogProps,\n} from '../../viewer/DocumentViewerDialog'\n\nexport interface FilesViewerDialogProps extends Omit<DocumentViewerDialogProps, 'renderDocument'> {\n /** Where html/react artifacts load their sandbox runtime from. */\n artifactRuntimeUrl?: string\n}\n\nexport function FilesViewerDialog({ artifactRuntimeUrl, ...props }: FilesViewerDialogProps) {\n return (\n <DocumentViewerDialog\n {...props}\n renderDocument={(id) => (\n <ConnectedDocumentViewer documentId={id} artifactRuntimeUrl={artifactRuntimeUrl} />\n )}\n />\n )\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/workspaces/WorkspaceFormParts.tsx"],"names":["jsxs","cn","jsx","AlertCircle","entityNoun","getEntityLabel","Dialog","DialogContent","ModalHeader","Fragment","DialogTitle","DialogDescription","Select","SelectTrigger","FolderKanban","SelectValue","SelectContent","SelectItem","SelectSeparator","Plus","useId","useState","KeyValueRow","FileText","Input","AlignLeft","Globe","CreditCard"],"mappings":"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","file":"chunk-CIXA5A65.cjs","sourcesContent":["import { useState, type ReactNode, useId } from 'react'\nimport {\n AlertCircle,\n AlignLeft,\n CreditCard,\n FileText,\n FolderKanban,\n Globe,\n Plus,\n} from 'lucide-react'\nimport {\n cn,\n Dialog,\n DialogContent,\n DialogDescription,\n DialogTitle,\n Input,\n Select,\n SelectContent,\n SelectItem,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n entityNoun,\n getEntityLabel,\n} from '@arbidocs/react/ui'\nimport { KeyValueRow } from '../home/KeyValueRow'\nimport { ModalHeader } from '../settings/ModalScaffold'\n\n/** Inline error strip of a form. */\nexport function FormErrorBanner({\n message,\n testId,\n className,\n id,\n}: {\n message: string\n testId?: string\n className?: string\n /** Lets a field point at this message with `aria-describedby`. */\n id?: string\n}) {\n return (\n <div\n id={id}\n role=\"alert\"\n data-slot=\"form-error\"\n data-testid={testId}\n className={cn(\n 'flex items-center gap-2 rounded-md border border-red-border bg-red-bg p-3 text-sm text-red-text',\n className\n )}\n >\n <AlertCircle className=\"size-4 shrink-0\" aria-hidden=\"true\" />\n {message}\n </div>\n )\n}\n\n/** Right-aligned footer row of a form (Cancel + submit). */\nexport function FormActions({ className, children }: { className?: string; children: ReactNode }) {\n return (\n <div\n data-slot=\"form-actions\"\n className={cn('sticky bottom-0 flex justify-end gap-2 bg-background pt-2', className)}\n >\n {children}\n </div>\n )\n}\n\n/** Footer row of a modal body, separated by a rule. */\nexport function ModalActionRow({ children }: { children: ReactNode }) {\n return (\n <div\n data-slot=\"modal-action-row\"\n className=\"sticky bottom-0 -mx-6 -mb-6 flex flex-col-reverse gap-2 border-t border-border bg-background px-6 pb-6 pt-3 sm:flex-row sm:items-center sm:justify-end\"\n >\n {children}\n </div>\n )\n}\n\nexport interface WorkspaceFormModalProps {\n open: boolean\n onOpenChange: (open: boolean) => void\n variant?: 'create' | 'welcome' | 'forProject'\n title?: ReactNode\n /** Icon before the title. */\n icon?: ReactNode\n /** Optional intro paragraph above the form (first-run welcome). */\n intro?: ReactNode\n testId?: string\n /** Visually hidden description. */\n description?: string\n children: ReactNode\n}\n\n/** Dialog frame of the create-workspace form: header, optional intro, scrolling body. */\nexport function WorkspaceFormModal({\n open,\n onOpenChange,\n variant = 'create',\n title,\n icon,\n intro,\n testId,\n description = `Create a new ${entityNoun('WORKSPACE')}`,\n children,\n}: WorkspaceFormModalProps) {\n const noun = entityNoun('WORKSPACE')\n const heading =\n title ??\n (variant === 'welcome'\n ? `Welcome — let's create your first ${noun}`\n : `Create New ${getEntityLabel('WORKSPACE')}`)\n const introduction =\n intro ??\n (variant === 'welcome'\n ? `A ${noun} is an encrypted vault for storing information and collaborating with AI. Give it a name to get started — you can always create more later.`\n : undefined)\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent\n presentation=\"sheet\"\n className=\"flex max-h-panel w-modal max-w-modal-vw flex-col overflow-hidden p-0\"\n data-testid={testId}\n >\n <ModalHeader>\n <ModalTitleRow icon={icon} title={heading} description={description} />\n </ModalHeader>\n <div className=\"min-h-0 flex-1 overflow-auto px-6 pb-6\">\n {introduction && <p className=\"pb-4 text-sm text-muted-foreground\">{introduction}</p>}\n {children}\n </div>\n </DialogContent>\n </Dialog>\n )\n}\n\nfunction ModalTitleRow({\n icon,\n title,\n description,\n}: {\n icon?: ReactNode\n title: ReactNode\n description: string\n}) {\n return (\n <>\n <DialogTitle>\n <div className=\"flex items-center gap-2\">\n {icon}\n <span>{title}</span>\n </div>\n </DialogTitle>\n <DialogDescription className=\"sr-only\">{description}</DialogDescription>\n </>\n )\n}\n\n/** One entry of the project picker: identity on the left, optional quota summary on the right. */\nexport function ProjectOptionRow({ identity, meta }: { identity: ReactNode; meta?: string }) {\n return (\n <div className=\"flex w-full min-w-0 items-center gap-2\">\n {identity}\n {meta && <span className=\"ml-auto truncate text-sm text-muted-foreground\">{meta}</span>}\n </div>\n )\n}\n\nexport interface ProjectPickerOption {\n id: string\n content: ReactNode\n}\n\nexport interface ProjectPickerProps {\n value?: string\n options: ProjectPickerOption[]\n onChange: (id: string) => void\n /**\n * `form` (default): the full-width field of the workspace form. `welcome`: the compact switcher\n * in the welcome dialog's quota header (muted pill, menu aligned to its end). `run`: where a\n * workflow run works (the run page's target), a taller field with the project mark, as wide as\n * a project's name needs on a desktop and the full width on a phone.\n */\n variant?: 'form' | 'welcome' | 'run'\n /** Adds a \"Create new project...\" entry. */\n onCreate?: () => void\n disabled?: boolean\n readOnly?: boolean\n className?: string\n labels?: { placeholder: string; create: string }\n /**\n * Trigger test id (default `workspace-project-select`, `welcome-modal-project-select` or\n * `workflow-run-project-select`).\n */\n testId?: string\n}\n\nconst CREATE_VALUE = '__create__'\n\n/** The one project picker: a workspace's owning project (optionally with a create entry), or the\n * welcome dialog's project switcher (`variant=\"welcome\"`). */\nexport function ProjectPicker({\n value,\n options,\n onChange,\n variant = 'form',\n onCreate,\n disabled,\n readOnly,\n className,\n labels = {\n placeholder: `Select ${entityNoun('PROJECT')}`,\n create: `Create new ${entityNoun('PROJECT')}...`,\n },\n testId,\n}: ProjectPickerProps) {\n const welcome = variant === 'welcome'\n const run = variant === 'run'\n return (\n <Select\n // A run starts on no project until one is chosen: the placeholder, not the first one.\n value={run ? value : (value ?? options[0]?.id)}\n onValueChange={(v) => (v === CREATE_VALUE ? onCreate?.() : onChange(v))}\n disabled={disabled || readOnly}\n >\n <SelectTrigger\n className={cn(\n welcome &&\n 'h-7 w-auto max-w-[9.5rem] shrink-0 gap-1 border-none bg-muted px-2 text-xs font-medium pointer-coarse:h-11',\n run && 'h-10 w-full gap-2 sm:max-w-md pointer-coarse:h-11',\n className,\n readOnly && 'cursor-not-allowed'\n )}\n data-testid={\n testId ??\n (welcome\n ? 'welcome-modal-project-select'\n : run\n ? 'workflow-run-project-select'\n : 'workspace-project-select')\n }\n >\n {run && <FolderKanban className=\"size-4 shrink-0 text-muted-foreground\" aria-hidden />}\n {welcome ? (\n <SelectValue />\n ) : run ? (\n <span className=\"min-w-0 flex-1 truncate text-left\">\n <SelectValue placeholder={labels.placeholder} />\n </span>\n ) : (\n <SelectValue placeholder={labels.placeholder} />\n )}\n </SelectTrigger>\n <SelectContent align={welcome ? 'end' : run ? 'start' : undefined}>\n {options.map((o) => (\n <SelectItem key={o.id} value={o.id}>\n {o.content}\n </SelectItem>\n ))}\n {onCreate && (\n <>\n <SelectSeparator />\n <SelectItem value={CREATE_VALUE}>\n <div className=\"flex items-center gap-1.5 text-primary\">\n <Plus className=\"size-3.5\" />\n <span>{labels.create}</span>\n </div>\n </SelectItem>\n </>\n )}\n </SelectContent>\n </Select>\n )\n}\n\nexport interface WorkspaceFieldsViewProps {\n /** `modal` (create flow) or `settings` (editing an existing workspace). */\n variant?: 'modal' | 'settings'\n name: string\n description: string\n onNameChange: (value: string) => void\n onDescriptionChange: (value: string) => void\n onNameBlur?: () => void\n onNameFocus?: () => void\n onDescriptionBlur?: () => void\n disabled?: boolean\n readOnly?: boolean\n maxNameLength?: number\n /** Id of the form's error message (a `FormErrorBanner id`): the name input is then `aria-invalid`\n * and described by it. */\n errorId?: string\n /** Content of the Visibility row (settings only); omit to hide the row. */\n visibility?: ReactNode\n /** Content of the Project row; omit to hide the row. */\n project?: ReactNode\n labels?: Partial<WorkspaceFieldsLabels>\n}\n\nexport interface WorkspaceFieldsLabels {\n readOnlyNotice: string\n name: string\n description: string\n visibility: string\n project: string\n over: (n: number) => string\n charsLeft: (n: number) => string\n}\n\nconst DEFAULT_LABELS: WorkspaceFieldsLabels = {\n readOnlyNotice: 'Read-only workspace',\n name: 'Name *',\n description: 'Description',\n visibility: 'Visibility',\n get project() {\n return getEntityLabel('PROJECT')\n },\n over: (n) => `${n} over`,\n charsLeft: (n) => `${n} chars left`,\n}\n\n/** Name / description / visibility / project rows shared by the create and settings forms. */\nexport function WorkspaceFieldsView({\n variant = 'modal',\n name,\n description,\n onNameChange,\n onDescriptionChange,\n onNameBlur,\n onNameFocus,\n onDescriptionBlur,\n disabled = false,\n readOnly = false,\n errorId,\n maxNameLength = 50,\n visibility,\n project,\n labels,\n}: WorkspaceFieldsViewProps) {\n const workspaceDescriptionId = useId()\n const workspaceNameId = useId()\n const l = { ...DEFAULT_LABELS, ...labels }\n const [nameFocused, setNameFocused] = useState(false)\n const isModal = variant === 'modal'\n const charsLeft = maxNameLength - name.length\n // The modal only surfaces the counter near the limit; settings shows it while focused.\n const counterVisible = !readOnly && nameFocused && (!isModal || charsLeft <= 10)\n const isDisabled = isModal ? disabled : disabled || readOnly\n\n return (\n <div className=\"space-y-1\" data-slot=\"workspace-fields\">\n {readOnly && (\n <div data-testid=\"workspace-form-readonly-notice\" className=\"sr-only\">\n {l.readOnlyNotice}\n </div>\n )}\n <KeyValueRow label={l.name} icon={<FileText size={14} />} htmlFor={workspaceNameId}>\n <div className=\"relative\">\n <Input\n id={workspaceNameId}\n type=\"text\"\n value={name}\n onChange={(e) => onNameChange(e.target.value)}\n onBlur={() => {\n setNameFocused(false)\n onNameBlur?.()\n }}\n onFocus={() => {\n setNameFocused(true)\n onNameFocus?.()\n }}\n maxLength={maxNameLength}\n readOnly={readOnly}\n disabled={isDisabled}\n className={cn(\n isModal ? 'bg-background' : 'capitalize',\n readOnly && 'cursor-not-allowed',\n 'pr-20'\n )}\n required\n aria-invalid={errorId ? true : undefined}\n aria-describedby={errorId}\n data-testid=\"workspace-form-name-input\"\n />\n {counterVisible && (\n <div\n className={cn(\n 'pointer-events-none absolute right-3 top-1/2 hidden -translate-y-1/2 text-sm lg:block',\n charsLeft < 0 ? 'text-red-text' : 'text-muted-foreground'\n )}\n >\n {charsLeft < 0 ? l.over(-charsLeft) : l.charsLeft(charsLeft)}\n </div>\n )}\n </div>\n </KeyValueRow>\n\n <KeyValueRow\n label={l.description}\n icon={<AlignLeft size={14} />}\n htmlFor={workspaceDescriptionId}\n >\n <Input\n id={workspaceDescriptionId}\n type=\"text\"\n dictate\n value={description}\n onChange={(e) => onDescriptionChange(e.target.value)}\n onBlur={onDescriptionBlur}\n readOnly={readOnly}\n disabled={isDisabled}\n className={cn(isModal && 'bg-background', readOnly && 'cursor-not-allowed')}\n data-testid=\"workspace-form-description-input\"\n />\n </KeyValueRow>\n\n {visibility && (\n <KeyValueRow label={l.visibility} icon={<Globe size={14} />}>\n {visibility}\n </KeyValueRow>\n )}\n {project && (\n <KeyValueRow label={l.project} icon={<CreditCard size={14} />}>\n {project}\n </KeyValueRow>\n )}\n </div>\n )\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/workspaces/WorkspaceFormParts.tsx"],"names":[],"mappings":"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","file":"chunk-CVYFX7AD.js","sourcesContent":["import { useState, type ReactNode, useId } from 'react'\nimport {\n AlertCircle,\n AlignLeft,\n CreditCard,\n FileText,\n FolderKanban,\n Globe,\n Plus,\n} from 'lucide-react'\nimport {\n cn,\n Dialog,\n DialogContent,\n DialogDescription,\n DialogTitle,\n Input,\n Select,\n SelectContent,\n SelectItem,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n entityNoun,\n getEntityLabel,\n} from '@arbidocs/react/ui'\nimport { KeyValueRow } from '../home/KeyValueRow'\nimport { ModalHeader } from '../settings/ModalScaffold'\n\n/** Inline error strip of a form. */\nexport function FormErrorBanner({\n message,\n testId,\n className,\n id,\n}: {\n message: string\n testId?: string\n className?: string\n /** Lets a field point at this message with `aria-describedby`. */\n id?: string\n}) {\n return (\n <div\n id={id}\n role=\"alert\"\n data-slot=\"form-error\"\n data-testid={testId}\n className={cn(\n 'flex items-center gap-2 rounded-md border border-red-border bg-red-bg p-3 text-sm text-red-text',\n className\n )}\n >\n <AlertCircle className=\"size-4 shrink-0\" aria-hidden=\"true\" />\n {message}\n </div>\n )\n}\n\n/** Right-aligned footer row of a form (Cancel + submit). */\nexport function FormActions({ className, children }: { className?: string; children: ReactNode }) {\n return (\n <div\n data-slot=\"form-actions\"\n className={cn('sticky bottom-0 flex justify-end gap-2 bg-background pt-2', className)}\n >\n {children}\n </div>\n )\n}\n\n/** Footer row of a modal body, separated by a rule. */\nexport function ModalActionRow({ children }: { children: ReactNode }) {\n return (\n <div\n data-slot=\"modal-action-row\"\n className=\"sticky bottom-0 -mx-6 -mb-6 flex flex-col-reverse gap-2 border-t border-border bg-background px-6 pb-6 pt-3 sm:flex-row sm:items-center sm:justify-end\"\n >\n {children}\n </div>\n )\n}\n\nexport interface WorkspaceFormModalProps {\n open: boolean\n onOpenChange: (open: boolean) => void\n variant?: 'create' | 'welcome' | 'forProject'\n title?: ReactNode\n /** Icon before the title. */\n icon?: ReactNode\n /** Optional intro paragraph above the form (first-run welcome). */\n intro?: ReactNode\n testId?: string\n /** Visually hidden description. */\n description?: string\n children: ReactNode\n}\n\n/** Dialog frame of the create-workspace form: header, optional intro, scrolling body. */\nexport function WorkspaceFormModal({\n open,\n onOpenChange,\n variant = 'create',\n title,\n icon,\n intro,\n testId,\n description = `Create a new ${entityNoun('WORKSPACE')}`,\n children,\n}: WorkspaceFormModalProps) {\n const noun = entityNoun('WORKSPACE')\n const heading =\n title ??\n (variant === 'welcome'\n ? `Welcome — let's create your first ${noun}`\n : `Create New ${getEntityLabel('WORKSPACE')}`)\n const introduction =\n intro ??\n (variant === 'welcome'\n ? `A ${noun} is an encrypted vault for storing information and collaborating with AI. Give it a name to get started — you can always create more later.`\n : undefined)\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent\n presentation=\"sheet\"\n className=\"flex max-h-panel w-modal max-w-modal-vw flex-col overflow-hidden p-0\"\n data-testid={testId}\n >\n <ModalHeader>\n <ModalTitleRow icon={icon} title={heading} description={description} />\n </ModalHeader>\n <div className=\"min-h-0 flex-1 overflow-auto px-6 pb-6\">\n {introduction && <p className=\"pb-4 text-sm text-muted-foreground\">{introduction}</p>}\n {children}\n </div>\n </DialogContent>\n </Dialog>\n )\n}\n\nfunction ModalTitleRow({\n icon,\n title,\n description,\n}: {\n icon?: ReactNode\n title: ReactNode\n description: string\n}) {\n return (\n <>\n <DialogTitle>\n <div className=\"flex items-center gap-2\">\n {icon}\n <span>{title}</span>\n </div>\n </DialogTitle>\n <DialogDescription className=\"sr-only\">{description}</DialogDescription>\n </>\n )\n}\n\n/** One entry of the project picker: identity on the left, optional quota summary on the right. */\nexport function ProjectOptionRow({ identity, meta }: { identity: ReactNode; meta?: string }) {\n return (\n <div className=\"flex w-full min-w-0 items-center gap-2\">\n {identity}\n {meta && <span className=\"ml-auto truncate text-sm text-muted-foreground\">{meta}</span>}\n </div>\n )\n}\n\nexport interface ProjectPickerOption {\n id: string\n content: ReactNode\n}\n\nexport interface ProjectPickerProps {\n value?: string\n options: ProjectPickerOption[]\n onChange: (id: string) => void\n /**\n * `form` (default): the full-width field of the workspace form. `welcome`: the compact switcher\n * in the welcome dialog's quota header (muted pill, menu aligned to its end). `run`: where a\n * workflow run works (the run page's target), a taller field with the project mark, as wide as\n * a project's name needs on a desktop and the full width on a phone.\n */\n variant?: 'form' | 'welcome' | 'run'\n /** Adds a \"Create new project...\" entry. */\n onCreate?: () => void\n disabled?: boolean\n readOnly?: boolean\n className?: string\n labels?: { placeholder: string; create: string }\n /**\n * Trigger test id (default `workspace-project-select`, `welcome-modal-project-select` or\n * `workflow-run-project-select`).\n */\n testId?: string\n}\n\nconst CREATE_VALUE = '__create__'\n\n/** The one project picker: a workspace's owning project (optionally with a create entry), or the\n * welcome dialog's project switcher (`variant=\"welcome\"`). */\nexport function ProjectPicker({\n value,\n options,\n onChange,\n variant = 'form',\n onCreate,\n disabled,\n readOnly,\n className,\n labels = {\n placeholder: `Select ${entityNoun('PROJECT')}`,\n create: `Create new ${entityNoun('PROJECT')}...`,\n },\n testId,\n}: ProjectPickerProps) {\n const welcome = variant === 'welcome'\n const run = variant === 'run'\n return (\n <Select\n // A run starts on no project until one is chosen: the placeholder, not the first one.\n value={run ? value : (value ?? options[0]?.id)}\n onValueChange={(v) => (v === CREATE_VALUE ? onCreate?.() : onChange(v))}\n disabled={disabled || readOnly}\n >\n <SelectTrigger\n className={cn(\n welcome &&\n 'h-7 w-auto max-w-[9.5rem] shrink-0 gap-1 border-none bg-muted px-2 text-xs font-medium pointer-coarse:h-11',\n run && 'h-10 w-full gap-2 sm:max-w-md pointer-coarse:h-11',\n className,\n readOnly && 'cursor-not-allowed'\n )}\n data-testid={\n testId ??\n (welcome\n ? 'welcome-modal-project-select'\n : run\n ? 'workflow-run-project-select'\n : 'workspace-project-select')\n }\n >\n {run && <FolderKanban className=\"size-4 shrink-0 text-muted-foreground\" aria-hidden />}\n {welcome ? (\n <SelectValue />\n ) : run ? (\n <span className=\"min-w-0 flex-1 truncate text-left\">\n <SelectValue placeholder={labels.placeholder} />\n </span>\n ) : (\n <SelectValue placeholder={labels.placeholder} />\n )}\n </SelectTrigger>\n <SelectContent align={welcome ? 'end' : run ? 'start' : undefined}>\n {options.map((o) => (\n <SelectItem key={o.id} value={o.id}>\n {o.content}\n </SelectItem>\n ))}\n {onCreate && (\n <>\n <SelectSeparator />\n <SelectItem value={CREATE_VALUE}>\n <div className=\"flex items-center gap-1.5 text-primary\">\n <Plus className=\"size-3.5\" />\n <span>{labels.create}</span>\n </div>\n </SelectItem>\n </>\n )}\n </SelectContent>\n </Select>\n )\n}\n\nexport interface WorkspaceFieldsViewProps {\n /** `modal` (create flow) or `settings` (editing an existing workspace). */\n variant?: 'modal' | 'settings'\n name: string\n description: string\n onNameChange: (value: string) => void\n onDescriptionChange: (value: string) => void\n onNameBlur?: () => void\n onNameFocus?: () => void\n onDescriptionBlur?: () => void\n disabled?: boolean\n readOnly?: boolean\n maxNameLength?: number\n /** Id of the form's error message (a `FormErrorBanner id`): the name input is then `aria-invalid`\n * and described by it. */\n errorId?: string\n /** Content of the Visibility row (settings only); omit to hide the row. */\n visibility?: ReactNode\n /** Content of the Project row; omit to hide the row. */\n project?: ReactNode\n labels?: Partial<WorkspaceFieldsLabels>\n}\n\nexport interface WorkspaceFieldsLabels {\n readOnlyNotice: string\n name: string\n description: string\n visibility: string\n project: string\n over: (n: number) => string\n charsLeft: (n: number) => string\n}\n\nconst DEFAULT_LABELS: WorkspaceFieldsLabels = {\n readOnlyNotice: 'Read-only workspace',\n name: 'Name *',\n description: 'Description',\n visibility: 'Visibility',\n get project() {\n return getEntityLabel('PROJECT')\n },\n over: (n) => `${n} over`,\n charsLeft: (n) => `${n} chars left`,\n}\n\n/** Name / description / visibility / project rows shared by the create and settings forms. */\nexport function WorkspaceFieldsView({\n variant = 'modal',\n name,\n description,\n onNameChange,\n onDescriptionChange,\n onNameBlur,\n onNameFocus,\n onDescriptionBlur,\n disabled = false,\n readOnly = false,\n errorId,\n maxNameLength = 50,\n visibility,\n project,\n labels,\n}: WorkspaceFieldsViewProps) {\n const workspaceDescriptionId = useId()\n const workspaceNameId = useId()\n const l = { ...DEFAULT_LABELS, ...labels }\n const [nameFocused, setNameFocused] = useState(false)\n const isModal = variant === 'modal'\n const charsLeft = maxNameLength - name.length\n // The modal only surfaces the counter near the limit; settings shows it while focused.\n const counterVisible = !readOnly && nameFocused && (!isModal || charsLeft <= 10)\n const isDisabled = isModal ? disabled : disabled || readOnly\n\n return (\n <div className=\"space-y-1\" data-slot=\"workspace-fields\">\n {readOnly && (\n <div data-testid=\"workspace-form-readonly-notice\" className=\"sr-only\">\n {l.readOnlyNotice}\n </div>\n )}\n <KeyValueRow label={l.name} icon={<FileText size={14} />} htmlFor={workspaceNameId}>\n <div className=\"relative\">\n <Input\n id={workspaceNameId}\n type=\"text\"\n value={name}\n onChange={(e) => onNameChange(e.target.value)}\n onBlur={() => {\n setNameFocused(false)\n onNameBlur?.()\n }}\n onFocus={() => {\n setNameFocused(true)\n onNameFocus?.()\n }}\n maxLength={maxNameLength}\n readOnly={readOnly}\n disabled={isDisabled}\n className={cn(\n isModal ? 'bg-background' : 'capitalize',\n readOnly && 'cursor-not-allowed',\n 'pr-20'\n )}\n required\n aria-invalid={errorId ? true : undefined}\n aria-describedby={errorId}\n data-testid=\"workspace-form-name-input\"\n />\n {counterVisible && (\n <div\n className={cn(\n 'pointer-events-none absolute right-3 top-1/2 hidden -translate-y-1/2 text-sm lg:block',\n charsLeft < 0 ? 'text-red-text' : 'text-muted-foreground'\n )}\n >\n {charsLeft < 0 ? l.over(-charsLeft) : l.charsLeft(charsLeft)}\n </div>\n )}\n </div>\n </KeyValueRow>\n\n <KeyValueRow\n label={l.description}\n icon={<AlignLeft size={14} />}\n htmlFor={workspaceDescriptionId}\n >\n <Input\n id={workspaceDescriptionId}\n type=\"text\"\n dictate\n value={description}\n onChange={(e) => onDescriptionChange(e.target.value)}\n onBlur={onDescriptionBlur}\n readOnly={readOnly}\n disabled={isDisabled}\n className={cn(isModal && 'bg-background', readOnly && 'cursor-not-allowed')}\n data-testid=\"workspace-form-description-input\"\n />\n </KeyValueRow>\n\n {visibility && (\n <KeyValueRow label={l.visibility} icon={<Globe size={14} />}>\n {visibility}\n </KeyValueRow>\n )}\n {project && (\n <KeyValueRow label={l.project} icon={<CreditCard size={14} />}>\n {project}\n </KeyValueRow>\n )}\n </div>\n )\n}\n"]}
|