@arbidocs/blocks 0.4.155 → 0.4.156
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ConnectedNativeDocxComparison-OLWRQSRS.js → ConnectedNativeDocxComparison-2PLOOXSH.js} +7 -7
- package/dist/{ConnectedNativeDocxComparison-OLWRQSRS.js.map → ConnectedNativeDocxComparison-2PLOOXSH.js.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-YORMOPPN.cjs → ConnectedNativeDocxComparison-S25BPUH5.cjs} +8 -8
- package/dist/{ConnectedNativeDocxComparison-YORMOPPN.cjs.map → ConnectedNativeDocxComparison-S25BPUH5.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-34EBIIFS.js → ConnectedNativeDocxEditor-JJAGMHZC.js} +5 -5
- package/dist/{ConnectedNativeDocxEditor-34EBIIFS.js.map → ConnectedNativeDocxEditor-JJAGMHZC.js.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-EHTWGGX3.cjs → ConnectedNativeDocxEditor-YA4HWLY4.cjs} +7 -7
- package/dist/{ConnectedNativeDocxEditor-EHTWGGX3.cjs.map → ConnectedNativeDocxEditor-YA4HWLY4.cjs.map} +1 -1
- package/dist/{ConnectedStreamedWordArtifact-5DK6QGYN.cjs → ConnectedStreamedWordArtifact-EXYZAU4Y.cjs} +8 -8
- package/dist/ConnectedStreamedWordArtifact-EXYZAU4Y.cjs.map +1 -0
- package/dist/{ConnectedStreamedWordArtifact-GLIDLSAS.js → ConnectedStreamedWordArtifact-YAAXY5KY.js} +7 -7
- package/dist/{ConnectedStreamedWordArtifact-GLIDLSAS.js.map → ConnectedStreamedWordArtifact-YAAXY5KY.js.map} +1 -1
- package/dist/{NativeDocxEditor-XT5ZLFGU.js → NativeDocxEditor-JBQMH3MP.js} +3 -3
- package/dist/{NativeDocxEditor-XT5ZLFGU.js.map → NativeDocxEditor-JBQMH3MP.js.map} +1 -1
- package/dist/{NativeDocxEditor-5VBNM5I7.cjs → NativeDocxEditor-M3I776GD.cjs} +7 -7
- package/dist/{NativeDocxEditor-5VBNM5I7.cjs.map → NativeDocxEditor-M3I776GD.cjs.map} +1 -1
- package/dist/agents/index.cjs +238 -238
- package/dist/agents/index.js +4 -4
- package/dist/chat/index.cjs +1 -1
- package/dist/chat/index.js +1 -1
- package/dist/{chunk-MF5KQ4PS.js → chunk-2CWM2CFZ.js} +4 -4
- package/dist/{chunk-MF5KQ4PS.js.map → chunk-2CWM2CFZ.js.map} +1 -1
- package/dist/{chunk-QKR5LWDO.js → chunk-6HG56GCT.js} +4 -4
- package/dist/{chunk-QKR5LWDO.js.map → chunk-6HG56GCT.js.map} +1 -1
- package/dist/{chunk-KHXEIEXN.js → chunk-7IRSCMNK.js} +3 -3
- package/dist/{chunk-KHXEIEXN.js.map → chunk-7IRSCMNK.js.map} +1 -1
- package/dist/{chunk-TZOQKV64.js → chunk-EWCJXUBP.js} +3 -3
- package/dist/{chunk-TZOQKV64.js.map → chunk-EWCJXUBP.js.map} +1 -1
- package/dist/{chunk-CU6LDQ57.js → chunk-F3EZDBDJ.js} +4 -4
- package/dist/{chunk-CU6LDQ57.js.map → chunk-F3EZDBDJ.js.map} +1 -1
- package/dist/{chunk-YF3QUHKN.cjs → chunk-FEGXFABZ.cjs} +3 -3
- package/dist/{chunk-YF3QUHKN.cjs.map → chunk-FEGXFABZ.cjs.map} +1 -1
- package/dist/{chunk-GC2FSPSQ.cjs → chunk-HDJRSCRE.cjs} +6 -6
- package/dist/{chunk-GC2FSPSQ.cjs.map → chunk-HDJRSCRE.cjs.map} +1 -1
- package/dist/{chunk-CQCNU5KT.cjs → chunk-IJEISII2.cjs} +6 -6
- package/dist/{chunk-CQCNU5KT.cjs.map → chunk-IJEISII2.cjs.map} +1 -1
- package/dist/{chunk-NPR5BGFF.cjs → chunk-JSQEAPTC.cjs} +26 -14
- package/dist/chunk-JSQEAPTC.cjs.map +1 -0
- package/dist/{chunk-6QAAIDQQ.cjs → chunk-O3FB62T5.cjs} +47 -47
- package/dist/{chunk-6QAAIDQQ.cjs.map → chunk-O3FB62T5.cjs.map} +1 -1
- package/dist/{chunk-265GOG4W.js → chunk-ONTUMV74.js} +26 -14
- package/dist/chunk-ONTUMV74.js.map +1 -0
- package/dist/chunk-OTU5KGQ6.cjs +18 -0
- package/dist/{chunk-HUATKA3M.cjs.map → chunk-OTU5KGQ6.cjs.map} +1 -1
- package/dist/{chunk-GO3BN76C.js → chunk-PGOSIJ2I.js} +3 -3
- package/dist/{chunk-GO3BN76C.js.map → chunk-PGOSIJ2I.js.map} +1 -1
- package/dist/chunk-S74QMZVZ.cjs +18 -0
- package/dist/{chunk-C3SMTA3C.cjs.map → chunk-S74QMZVZ.cjs.map} +1 -1
- package/dist/{chunk-KUT2Y7JF.cjs → chunk-TQIY2SVY.cjs} +5 -5
- package/dist/{chunk-KUT2Y7JF.cjs.map → chunk-TQIY2SVY.cjs.map} +1 -1
- package/dist/{chunk-MNG7N6M2.js → chunk-UKCCV63X.js} +4 -4
- package/dist/{chunk-MNG7N6M2.js.map → chunk-UKCCV63X.js.map} +1 -1
- package/dist/{chunk-B3FMUFAW.cjs → chunk-UKT3WH5Z.cjs} +3 -3
- package/dist/{chunk-B3FMUFAW.cjs.map → chunk-UKT3WH5Z.cjs.map} +1 -1
- package/dist/{chunk-P6RIBIVN.js → chunk-UPMADXDU.js} +3 -3
- package/dist/{chunk-P6RIBIVN.js.map → chunk-UPMADXDU.js.map} +1 -1
- package/dist/{chunk-757OYF6G.cjs → chunk-VY4UFXTM.cjs} +4 -4
- package/dist/{chunk-757OYF6G.cjs.map → chunk-VY4UFXTM.cjs.map} +1 -1
- package/dist/{chunk-WU34CHU5.js → chunk-YMQDDUKW.js} +3 -3
- package/dist/{chunk-WU34CHU5.js.map → chunk-YMQDDUKW.js.map} +1 -1
- package/dist/connect/docx.cjs +11 -11
- package/dist/connect/docx.js +7 -7
- package/dist/connect/index.cjs +137 -137
- package/dist/connect/index.js +16 -16
- package/dist/connect/viewer.cjs +10 -10
- package/dist/connect/viewer.js +10 -10
- package/dist/document-tools/index.cjs +1 -1
- package/dist/document-tools/index.js +1 -1
- package/dist/docx/index.cjs +47 -47
- package/dist/docx/index.js +3 -3
- package/dist/facts/index.cjs +54 -54
- package/dist/facts/index.js +4 -4
- package/dist/index.cjs +347 -347
- package/dist/index.js +8 -8
- package/dist/studio/index.cjs +1 -1
- package/dist/studio/index.js +1 -1
- package/dist/workflow-canvas/index.cjs +16 -16
- package/dist/workflow-canvas/index.js +4 -4
- package/node_modules/@arbidocs/coedit/dist/hocuspocus.cjs +96 -29
- package/node_modules/@arbidocs/coedit/dist/hocuspocus.cjs.map +1 -1
- package/node_modules/@arbidocs/coedit/dist/hocuspocus.d.cts +1 -1
- package/node_modules/@arbidocs/coedit/dist/hocuspocus.d.ts +1 -1
- package/node_modules/@arbidocs/coedit/dist/hocuspocus.js +98 -31
- package/node_modules/@arbidocs/coedit/dist/hocuspocus.js.map +1 -1
- package/node_modules/@arbidocs/coedit/dist/index.cjs +96 -29
- package/node_modules/@arbidocs/coedit/dist/index.cjs.map +1 -1
- package/node_modules/@arbidocs/coedit/dist/index.d.cts +1 -1
- package/node_modules/@arbidocs/coedit/dist/index.d.ts +1 -1
- package/node_modules/@arbidocs/coedit/dist/index.js +98 -31
- package/node_modules/@arbidocs/coedit/dist/index.js.map +1 -1
- package/node_modules/@arbidocs/coedit/dist/server.cjs +98 -33
- package/node_modules/@arbidocs/coedit/dist/server.cjs.map +1 -1
- package/node_modules/@arbidocs/coedit/dist/server.d.cts +1 -1
- package/node_modules/@arbidocs/coedit/dist/server.d.ts +1 -1
- package/node_modules/@arbidocs/coedit/dist/server.js +99 -34
- package/node_modules/@arbidocs/coedit/dist/server.js.map +1 -1
- package/node_modules/@arbidocs/coedit/dist/{session-Cf9iu1Vt.d.cts → session-WGvWs6yO.d.cts} +22 -4
- package/node_modules/@arbidocs/coedit/dist/{session-Cf9iu1Vt.d.ts → session-WGvWs6yO.d.ts} +22 -4
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +5 -5
- package/dist/ConnectedStreamedWordArtifact-5DK6QGYN.cjs.map +0 -1
- package/dist/chunk-265GOG4W.js.map +0 -1
- package/dist/chunk-C3SMTA3C.cjs +0 -18
- package/dist/chunk-HUATKA3M.cjs +0 -18
- package/dist/chunk-NPR5BGFF.cjs.map +0 -1
package/dist/index.js
CHANGED
|
@@ -5,8 +5,9 @@ export { DataTable, DataTableBlock, MetricCard, PageHeader, StatGroup } from './
|
|
|
5
5
|
export { Accordion, AvatarBlock, Banner, BlockImage, BlockLink, CTABanner, Columns, ContactForm, Container, FAQ, FeatureGrid, Footer, Gallery, Hero, ListBlock, LogoCloud, MediaText, Navbar, PricingTable, ProfileCard, RichTextBlock, SectionHeading, Spacer, Steps, THEME_STYLE_ID, Tabs, TeamGrid, Testimonial, TestimonialGrid, ThemeEditor, VideoEmbed, applyFontVars, applyStoredTheme, applyThemeVars, clearFontVars, clearThemeVars, createThemeStore, tid, toEmbedUrl, toHslTriplet } from './chunk-VTTZZ4FN.js';
|
|
6
6
|
export { Timeline } from './chunk-OVEQERPO.js';
|
|
7
7
|
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_RECIPIENT_PICKER_LABELS, DmAccessRequestBanner, DmGrantAccessDialogView, DmInviteAvatar, DmInviteChip, DmNewTabIcon, DmThreadFrame, DmThreadHeader, MAX_INVITE_EMAILS, RecipientPicker, contactToVCard, downloadVCard, parseEmails, toAddContactsRow, toAddContactsRows, vCardFilename } from './chunk-WK6FVIF7.js';
|
|
8
|
-
export { DEFAULT_GLOSSARY_LABELS, DEFAULT_TAG_COLUMNS_EDITOR_LABELS, DEFAULT_TAG_DETAIL_LABELS, DEFAULT_TAG_TABLE_DOCX_LABELS, DEFAULT_TAG_TABLE_LABELS, DEFAULT_THREAD_FOLLOW_LABELS, DEFAULT_WORKSPACE_ACTIVITY_LABELS, DEFAULT_WORKSPACE_NOTIFICATION_MENU_LABELS, EXTRACT_LIMIT, EntityIdentityBar, ExtractEntitiesDialog, GridRowNavigator, IDENTITY_NAME_MAX_LENGTH, LoadingIndicator, RowNavigatorControls, TAG_TABLE_DOCX_LANDSCAPE_AFTER, TagColumnsEditor, TagDetail, TagPicker, TagTable, TagTableCell, ThreadFollowButton, ThreadFollowMenuItem, WorkspaceActivityList, WorkspaceNotificationMenu, cellText, cellValue, documentCount, entitiesPhrase, fieldWrites, glossaryDocumentXml, glossaryDocx, glossaryEntries, glossaryFileName, glossaryMarkdown, isGap, parseCell, rowLinks, tagDetailLabels, tagKindDescription, tagNoteLabel, tagTableDocumentXml, tagTableDocx, tagTableLabels, tagTableMarkdown, tagsPageNouns, workspaceActivityHeadline, workspaceActivityTarget } from './chunk-
|
|
8
|
+
export { DEFAULT_GLOSSARY_LABELS, DEFAULT_TAG_COLUMNS_EDITOR_LABELS, DEFAULT_TAG_DETAIL_LABELS, DEFAULT_TAG_TABLE_DOCX_LABELS, DEFAULT_TAG_TABLE_LABELS, DEFAULT_THREAD_FOLLOW_LABELS, DEFAULT_WORKSPACE_ACTIVITY_LABELS, DEFAULT_WORKSPACE_NOTIFICATION_MENU_LABELS, EXTRACT_LIMIT, EntityIdentityBar, ExtractEntitiesDialog, GridRowNavigator, IDENTITY_NAME_MAX_LENGTH, LoadingIndicator, RowNavigatorControls, TAG_TABLE_DOCX_LANDSCAPE_AFTER, TagColumnsEditor, TagDetail, TagPicker, TagTable, TagTableCell, ThreadFollowButton, ThreadFollowMenuItem, WorkspaceActivityList, WorkspaceNotificationMenu, cellText, cellValue, documentCount, entitiesPhrase, fieldWrites, glossaryDocumentXml, glossaryDocx, glossaryEntries, glossaryFileName, glossaryMarkdown, isGap, parseCell, rowLinks, tagDetailLabels, tagKindDescription, tagNoteLabel, tagTableDocumentXml, tagTableDocx, tagTableLabels, tagTableMarkdown, tagsPageNouns, workspaceActivityHeadline, workspaceActivityTarget } from './chunk-UKCCV63X.js';
|
|
9
9
|
export { MemberAvatarStack } from './chunk-XNOASBGW.js';
|
|
10
|
+
export { DEFAULT_DETAIL_PANEL_LABELS, DetailBody, DetailEmpty, DetailField, DetailFields, DetailLinkItem, DetailLinkList, DetailLoading, DetailPanel, DetailSection } from './chunk-ZCOVDK2E.js';
|
|
10
11
|
export { ApplyLabelButton, ApplyLabelDialog, DEFAULT_APPLY_LABEL_DIALOG_LABELS, DEFAULT_RELEVANCE_STEPS, DEFAULT_SEARCH_BAR_LABELS, DEFAULT_SEARCH_EMPTY_STATE_LABELS, DEFAULT_SEARCH_GROUP_HEADER_LABELS, DEFAULT_SEARCH_NO_RESULTS_LABELS, DEFAULT_SEARCH_PAGINATION_LABELS, DEFAULT_SEARCH_TOTALS_LABELS, DOCUMENT_SEARCH_NOUNS, RelevanceThreshold, SearchBar, SearchControlsBar, SearchEmptyState, SearchErrorBanner, SearchGroupCard, SearchGroupHeader, SearchNoResults, SearchPageBody, SearchPageFrame, SearchPageHeader, SearchPagination, SearchPillToggle, SearchResultList, SearchResultsInner, SearchResultsMain, SearchSnippet, SearchToolbarRow, SearchTotalsHeadline, extractHighlightTerms, extractQuotedTerms, getPageNumbers, getSearchMatchHint, groupSearchResults, highlightTerms, isMeaningMatch, passesRelevanceCutoff, renderSearchSnippet, searchNouns, stripMarkdownLinks } from './chunk-G4IYES7G.js';
|
|
11
12
|
export { UsageMeter, usageMeterState } from './chunk-66TA5IBN.js';
|
|
12
13
|
export { Callout } from './chunk-UJE32SST.js';
|
|
@@ -14,25 +15,24 @@ export { FONT_PAIRINGS, fontPackages, getFontPairing, matchFontPairing } from '.
|
|
|
14
15
|
export { DEFAULT_MAIL_FOLDER_TREE_LABELS, MailDeliveryBadge, MailDeliveryList, MailDocumentPicker, MailFolderTree, MailGrid, MailMessagePreview, MailMessageView, MemberBulkActions, MemberListLoading, MemberMutedText, MemberNameCell, MemberRoleCell, NEEDS_CONNECTION, PlainMailBodyEditor, RoleSelect, WorkspaceDeleteButton, buildMailFolderTree, descendantFolderIds, draftMailCompose, emptyMailCompose, hasCalendarPart, isInboxFolder, mailAddressLabel, parseMailRecipients, replyMailCompose, toggleMailFolder } from './chunk-SZSJGZSO.js';
|
|
15
16
|
import './chunk-NBV56SGU.js';
|
|
16
17
|
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, INSTALL_PROMPT_DISMISSED_KEY, InfoBar, InstallPrompt, MobileAppBar, MobileTabBar, NotificationBell, OfflinePill, RemoteControlPill, STATUS_ROW_BASE_CLASS, STATUS_ROW_TONES, ShellSidebar, Sidebar, SidebarBadgeRow, SidebarRowAction, SidebarRowHoverContext, SplitLayout, StatusBadge, StatusRow, TipCard, UserMenu, getInstallInstructions, initInstallPrompt, isIosDevice, promptAppInstall, resolveSidebarLayout, useCloseOnEscape, useInstallPrompt, useSidebarContext, useSidebarController, useSidebarSettle } from './chunk-YNMO3DSR.js';
|
|
17
|
-
export { DEFAULT_SHARE_CONTROL_LABELS, ShareControl } from './chunk-K4BGOPGG.js';
|
|
18
|
-
import './chunk-SDOEHEJP.js';
|
|
19
18
|
export { DEFAULT_WORKSPACE_KIND_LABELS, DEFAULT_WORKSPACE_SWITCHER_LABELS, WorkspaceIdentity, WorkspaceSwitcher, workspaceKindColor, workspaceKindMeta } from './chunk-A3XPS2EU.js';
|
|
20
19
|
export { buildDeepLinkPath, buildDeepLinkUrl, parseDeepLinkPath } from './chunk-SV65E4QW.js';
|
|
21
|
-
export { DEFAULT_DETAIL_PANEL_LABELS, DetailBody, DetailEmpty, DetailField, DetailFields, DetailLinkItem, DetailLinkList, DetailLoading, DetailPanel, DetailSection } from './chunk-ZCOVDK2E.js';
|
|
22
20
|
export { DEFINITIONS_LABEL, DEFINITION_BOOKMARK_PREFIX, compareDefinitions, compareTerms, definitionBookmark, definitionIdOfBookmark, definitionLabels, filterTermGroups, findDefinitionsLabel, groupDefinitions, isDefinitionsLabel, parseDefinition, termKey, toDefinition, toDefinitionSource } from './chunk-DIB4JYUY.js';
|
|
23
21
|
export { DEFAULT_SEARCH_HIT_LABELS, SearchHit } from './chunk-DEPF5LQI.js';
|
|
24
22
|
export { TIMELINE_ZOOM, TimelineCalendar, TimelineGantt, TimelineZoomControl, dayKey, formatSpan, monthLabel, parseIso, utcDay } from './chunk-4EZVCGRL.js';
|
|
25
23
|
import './chunk-AF6RDAJF.js';
|
|
26
|
-
export {
|
|
27
|
-
|
|
24
|
+
export { DEFAULT_SHARE_CONTROL_LABELS, ShareControl } from './chunk-K4BGOPGG.js';
|
|
25
|
+
import './chunk-SDOEHEJP.js';
|
|
26
|
+
export { AgentBar, AgentBarIconButton, AgentBarMenu, AgentBarNotes, AgentBarProbeAnswer, AgentBarQueuedNote, AgentBarStatus, AgentCard, AgentCreateView, AgentCreatedView, AgentEditView, AgentGallery, AgentMainView, ConfigField, ConfigForm, ConsentActions, ConsentBulletList, ConsentCard, ConsentFootnote, ConsentHeader, ConsentMessage, ConsentNotice, ConsentPage, ConsentPermissionList, ConsentSection, ConsentStrong, ConsentText, ConversationListView, ConversationTurnSpeaker, CopyableUrl, DEFAULT_AGENT_BAR_LABELS, DEFAULT_AGENT_CARD_LABELS, DEFAULT_AGENT_GALLERY_LABELS, DEFAULT_AGENT_STEPS_LABELS, DEFAULT_AUTHORIZE_AGENT_LABELS, DEFAULT_CONFIG_FIELD_LABELS, DEFAULT_CONFIG_FORM_LABELS, DEFAULT_CONSENT_ACTIONS_LABELS, DEFAULT_COPYABLE_URL_LABELS, DEFAULT_NEW_THREAD_DIALOG_LABELS, DEFAULT_PILL_SELECT_LABELS, DEFAULT_RECURRENCE, DEFAULT_RECURRENCE_BUILDER_LABELS, DEFAULT_SKILL_CARD_LABELS, DEFAULT_SKILL_ROW_LABELS, DEFAULT_SUBAGENT_ROSTER_LABELS, DEFAULT_TASKS_CHROME_LABELS, DEFAULT_TASK_COMPOSER_LABELS, DEFAULT_TASK_LIST_LABELS, DEFAULT_TASK_OUTPUTS_CELL_LABELS, DEFAULT_TASK_PLAN_LABELS, DEFAULT_TASK_STATUS_PILL_LABELS, DEFAULT_TASK_THREAD_CHIP_LABELS, DEFAULT_THREAD_LAUNCHER_LABELS, DEFAULT_THREAD_STATE_LABELS, DEFAULT_TUPLE_ARRAY_FIELD_LABELS, DEFAULT_UPLOAD_TASK_ITEM_LABELS, DEFAULT_UPLOAD_TASK_LIST_LABELS, DEFAULT_WORKFLOWS_CHROME_LABELS, DEFAULT_WORKFLOW_RUN_STATUS_LABELS, DEFAULT_WORKFLOW_THREAD_STRIP_LABELS, DERIVED_NAME_WORDS, EMPTY_NEW_THREAD, EntityChip, GoalCriteria, MAX_TASK_DEPTH, NewThreadDialog, PillSelect, RecurrenceBuilder, SkillCard, SkillRow, StepDetail, StepNarration, StepOutcome, StepParams, StepRow, StepSummary, StepTrace, StepTraceSummary, SubAgentLane, SubStepGroup, SubagentRoster, TASK_COLUMN_ORDER, TaskComposer, TaskFlow, TaskInbox, TaskMoveDialog, TaskOutputsCell, TaskPlan, TaskStartDialog, TaskStatusPill, TaskTable, TaskThreadChip, TasksToolbar, ThreadActivity, ThreadLauncher, ThreadNotifyDialog, ThreadStatusLine, TupleArrayField, UploadTaskItem, UploadTaskList, WEEKDAYS, WorkflowRunStatus, WorkflowThreadStartedBy, WorkflowThreadStrip, WorkflowsToolbar, authModeFor, buildRRule, buildTaskRows, compactThreadActivity, composerToTaskQuery, composerToWorkRequest, composerToWorkflowRequest, composerToWorkflowUpdate, createTaskColumns, createsWork, defaultScopeRenderer, defaultTaskComposerValues, deriveWorkflowName, descendantIds, describeRRule, filterConversationRows, firstWords, formatElapsed, groupThreadActivity, hasTaskFields, humanizeSection, indexTasks, inferType, inputDocumentIds, isAgenticWorkflow, isOutOfBounds, isPlainTodo, isoToLocalInput, linkedRunsFromActivity, localInputToIso, moveTargets, newThreadToRequest, nextCriterionId, ownerExtId, parseRRule, prettifyKey, resolveScopeInputs, taskComposerToCreateRequest, taskComposerToUpdateRequest, taskNeedsAccess, taskToComposerValues, useWorkflowPreview, workflowTaskFields, workflowToComposerValues, workflowWhen } from './chunk-6HG56GCT.js';
|
|
27
|
+
export { ActionStepBody, AgentAvatarField, AgentConnectInstructions, AgentCreator, AgentTypeSelector, ApprovalEvidence, AssigneeLine, CapabilityGrid, CapabilityTile, DEFAULT_AGENT_AVATAR_FIELD_LABELS, DEFAULT_AGENT_CAPABILITIES, DEFAULT_AGENT_CREATOR_LABELS, DEFAULT_AGENT_TEMPLATES, DEFAULT_AGENT_TYPES, DEFAULT_AGENT_TYPE_SELECTOR_LABELS, DEFAULT_SKILL_EDIT_FORM_LABELS, DEFAULT_SKILL_GENERATE_FORM_LABELS, DEFAULT_SKILL_GLOBAL_BADGE_LABELS, DEFAULT_SKILL_VIEW_TOGGLE_LABELS, DEFAULT_STEP_BAR_LABELS, DEFAULT_TASK_ACTIVITY_LABELS, DEFAULT_TASK_RUNS_DIALOG_LABELS, DEFAULT_WORKFLOW_RUNNER_LABELS, DEFAULT_WORKFLOW_STEP_PARTS_LABELS, SKILL_FIELD_TYPE_LABELS, SKILL_MAIN_FILENAME, SKILL_SOURCE_LABELS, SKILL_TYPES, SKILL_TYPE_LABELS, STATUS_LABELS, STATUS_ORDER, STATUS_TONE, SendBackControl, SkillActionButton, SkillDetail, SkillDetailSection, SkillEditForm, SkillFilterChips, SkillGenerateForm, SkillGlobalBadge, SkillLibraryDetail, SkillTile, SkillTypeBadge, SkillViewToggle, TRIGGER_LABELS, TaskActivityDialog, TaskActivityTimeline, TaskRunsDialog, WorkflowRunner, activeStepId, agentConfigSectionToValues, agentCreatorToConfigSection, asTaskStatus, buildLibrarySkills, buildZipSkillImport, composePersona, deriveAgentName, filterLibrarySkills, fromPlanAssignee, fromPlanDocumentRef, fromPlanSteps, goalProgress, importMarkdownSkill, importSkillFile, importSkillFromUrl, isIncompleteSignal, isMainSkillFile, isValidAgentName, layoutFromPlanSteps, parseSkillFrontmatter, readSkillArchive, serializeSkill, skillSlug, stepWindow, stripPersonaPreamble, summarizeAgent, summarizeCapabilities, taskActivityHeadline, toPlanAssignee, toPlanDocumentRef, toPlanSteps, useWorkflowView, workflowFromSkillMarkdown, workflowToSkillMarkdown } from './chunk-UPMADXDU.js';
|
|
28
28
|
import './chunk-CQCC7LE7.js';
|
|
29
29
|
export { AgentSelect, DEFAULT_AGENT_SELECT_LABELS, DEFAULT_SCHEMA_FORM_LABELS, DEFAULT_TASK_TRIGGER_CHIP_LABELS, DEFAULT_WORKFLOW_CONFIG_DIALOG_LABELS, DEFAULT_WORKFLOW_DOCUMENTS_FIELD_LABELS, DEFAULT_WORKFLOW_LIST_LABELS, PersonPill, SchemaForm, TaskTriggerChip, WORKFLOW_COLUMN_ORDER, WorkflowConfigDialog, WorkflowDocumentsField, WorkflowLauncher, WorkflowsTable, buildWorkflowScopeSource, createWorkflowColumns, documentScopeLabels, hasTrigger, isSkillRow, matchWorkflowScope, workflowStatus, workflowTriggerType } from './chunk-XI37A7HH.js';
|
|
30
30
|
import './chunk-BQ77KSXU.js';
|
|
31
31
|
import './chunk-NUSBINUM.js';
|
|
32
32
|
export { EmptyState } from './chunk-P6GHJSLR.js';
|
|
33
|
+
import './chunk-RLWIUUQ5.js';
|
|
33
34
|
import './chunk-M4S75AEJ.js';
|
|
34
35
|
export { Dot, ToneBadge } from './chunk-5LXQPP2K.js';
|
|
35
|
-
import './chunk-RLWIUUQ5.js';
|
|
36
36
|
export { ActionLink } from './chunk-VF5EUAIV.js';
|
|
37
37
|
import './chunk-NUNKSZKU.js';
|
|
38
38
|
export { DEFAULT_FILTER_FIELDS, DEFAULT_FILTER_INPUT_LABELS, FilterInput } from './chunk-YU2KUMGE.js';
|
|
@@ -47,8 +47,8 @@ export { BlocksTooltipProvider, DEFAULT_OVERLAY_ZONE_ID, DEFAULT_PAGE_CONTAINER_
|
|
|
47
47
|
export { savedDocumentIdFor, takeOpenDocumentForTurn, useOpenDocumentId, useRegisterOpenDocument } from './chunk-YBLIKTJK.js';
|
|
48
48
|
export { DEFAULT_ASSIGNEE_WORDING, DEFAULT_STEP_DOCUMENT_LABELS, DEFAULT_STEP_KIND_LABELS, DEFAULT_STEP_RECORD_LABELS, STEP_KIND_ICONS, StepDocumentButton, StepDocumentCards, StepRecord, WORKFLOW_STEP_KINDS, assigneeName, canAssign, composeStepPrompt, dependsOn, fillRunText, fillStepInputs, initialRunInputs, isPersonAction, isPersonStep, isRunFinished, isSteppedWorkflow, nextAction, orderSteps, reviewInstructions, runFields, runFieldsOf, runThreadTitle, sendBackTargets, splitDocRef, stepConfigProblems, stepDependencies, stepDocuments, stepFields, stepKindOf, stepLevels, stepPhase, stepStatesFromActivity, upstreamSteps, useMentionAutocomplete, validateStep, validateWorkflowGraph, workflowSteps } from './chunk-PDKM27DF.js';
|
|
49
49
|
export { EMPTY_WORKFLOW_SCOPE, SKILL_PROMPT_FALLBACK_PLACEHOLDER, SKILL_PROMPT_LABEL, buildLaunch, composeWorkflowPrompt, defaultInputs, fieldToFrontmatter, inputsFromContext, isEmptyWorkflowScope, isWorkflowScope, mergeSkillWorkflows, promptFieldName, skillTitle, skillToWorkflow, validateInputs, workflowAccepts, workflowFromFrontmatter, workflowsAccepting, workflowsForHost } from './chunk-TZGBRLPK.js';
|
|
50
|
-
export { TONES, isTone } from './chunk-AUS3KBHJ.js';
|
|
51
50
|
export { DEFAULT_MENTION_LABELS, MENTION_HREF_PREFIX, MentionChip, MentionMenu, extractMentions, filterMentionCandidates, findMentionQuery, insertMention, linkMentions, mentionFromHref, toMessageMentions, useListKeyNav } from './chunk-AA3PT6KR.js';
|
|
51
|
+
export { TONES, isTone } from './chunk-AUS3KBHJ.js';
|
|
52
52
|
export { BREAKPOINT_QUERIES, useIsNarrow, useIsPhone, useIsTouchScreen, useMediaQuery } from './chunk-SLSBJRWW.js';
|
|
53
53
|
import './chunk-Z3AZ7Q5X.js';
|
|
54
54
|
import './chunk-NPLYHR2E.js';
|
package/dist/studio/index.cjs
CHANGED
|
@@ -16,8 +16,8 @@ require('../chunk-B6MVQCXW.cjs');
|
|
|
16
16
|
require('../chunk-JKB7WT7L.cjs');
|
|
17
17
|
require('../chunk-JSTKEZBS.cjs');
|
|
18
18
|
require('../chunk-76L6LOP3.cjs');
|
|
19
|
-
require('../chunk-32HW2Q33.cjs');
|
|
20
19
|
require('../chunk-7UTB4PHM.cjs');
|
|
20
|
+
require('../chunk-32HW2Q33.cjs');
|
|
21
21
|
require('../chunk-PPCATBOY.cjs');
|
|
22
22
|
require('../chunk-MHVNT4J3.cjs');
|
|
23
23
|
var chunkCNHUJRQ4_cjs = require('../chunk-CNHUJRQ4.cjs');
|
package/dist/studio/index.js
CHANGED
|
@@ -15,8 +15,8 @@ import '../chunk-7XF5SFJ2.js';
|
|
|
15
15
|
import '../chunk-YBLIKTJK.js';
|
|
16
16
|
import '../chunk-PDKM27DF.js';
|
|
17
17
|
import '../chunk-TZGBRLPK.js';
|
|
18
|
-
import '../chunk-AUS3KBHJ.js';
|
|
19
18
|
import '../chunk-AA3PT6KR.js';
|
|
19
|
+
import '../chunk-AUS3KBHJ.js';
|
|
20
20
|
import '../chunk-NPLYHR2E.js';
|
|
21
21
|
import '../chunk-7F6CBP3Z.js';
|
|
22
22
|
import { useBlocksEnvironment } from '../chunk-F57LNUSZ.js';
|
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
|
|
4
4
|
var chunkCB4TIDEX_cjs = require('../chunk-CB4TIDEX.cjs');
|
|
5
5
|
var chunkFM3IRQJW_cjs = require('../chunk-FM3IRQJW.cjs');
|
|
6
|
-
var
|
|
7
|
-
var
|
|
6
|
+
var chunkO3FB62T5_cjs = require('../chunk-O3FB62T5.cjs');
|
|
7
|
+
var chunkFEGXFABZ_cjs = require('../chunk-FEGXFABZ.cjs');
|
|
8
8
|
require('../chunk-RFIBUWLF.cjs');
|
|
9
9
|
var chunkYBJ4QGNH_cjs = require('../chunk-YBJ4QGNH.cjs');
|
|
10
10
|
require('../chunk-OALEDG67.cjs');
|
|
11
11
|
require('../chunk-2VHYOTWW.cjs');
|
|
12
12
|
require('../chunk-ZW6FPIFC.cjs');
|
|
13
|
+
require('../chunk-AHDJXIUB.cjs');
|
|
13
14
|
require('../chunk-SIB6C7P7.cjs');
|
|
14
15
|
require('../chunk-DVUZTGVL.cjs');
|
|
15
|
-
require('../chunk-AHDJXIUB.cjs');
|
|
16
16
|
require('../chunk-3VULDTNL.cjs');
|
|
17
17
|
require('../chunk-V4ISCZJ7.cjs');
|
|
18
18
|
require('../chunk-2EI7NCUA.cjs');
|
|
@@ -20,8 +20,8 @@ require('../chunk-C2CWWEHO.cjs');
|
|
|
20
20
|
require('../chunk-7RGLTF76.cjs');
|
|
21
21
|
var chunkJSTKEZBS_cjs = require('../chunk-JSTKEZBS.cjs');
|
|
22
22
|
var chunk76L6LOP3_cjs = require('../chunk-76L6LOP3.cjs');
|
|
23
|
-
var chunk32HW2Q33_cjs = require('../chunk-32HW2Q33.cjs');
|
|
24
23
|
require('../chunk-7UTB4PHM.cjs');
|
|
24
|
+
var chunk32HW2Q33_cjs = require('../chunk-32HW2Q33.cjs');
|
|
25
25
|
require('../chunk-FX3K6LNZ.cjs');
|
|
26
26
|
require('../chunk-PPCATBOY.cjs');
|
|
27
27
|
require('../chunk-MHVNT4J3.cjs');
|
|
@@ -319,9 +319,9 @@ function SignalsEditor({
|
|
|
319
319
|
{
|
|
320
320
|
className: ui.cn(
|
|
321
321
|
"space-y-1.5 rounded-md border p-2",
|
|
322
|
-
|
|
322
|
+
chunkFEGXFABZ_cjs.isIncompleteSignal(signal) ? "border-destructive/50" : "border-border"
|
|
323
323
|
),
|
|
324
|
-
"data-incomplete":
|
|
324
|
+
"data-incomplete": chunkFEGXFABZ_cjs.isIncompleteSignal(signal) || void 0,
|
|
325
325
|
"data-testid": `${testId}-${i}`,
|
|
326
326
|
children: [
|
|
327
327
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
@@ -1607,7 +1607,7 @@ function triggerFields(trigger, clearOthers) {
|
|
|
1607
1607
|
return {
|
|
1608
1608
|
timezone: trigger.timezone,
|
|
1609
1609
|
rrule: trigger.start === "repeat" ? trigger.rrule.trim() : none,
|
|
1610
|
-
run_at: trigger.start === "once" ?
|
|
1610
|
+
run_at: trigger.start === "once" ? chunkO3FB62T5_cjs.localInputToIso(trigger.runAt) : none,
|
|
1611
1611
|
event_kind: trigger.start === "event" ? trigger.eventKind.trim() : none,
|
|
1612
1612
|
// A step signal is `workflow_signal` narrowed to one signal name.
|
|
1613
1613
|
event_filter: filter ?? none,
|
|
@@ -1623,7 +1623,7 @@ function plan(value, options) {
|
|
|
1623
1623
|
criteria: [],
|
|
1624
1624
|
max_passes: 3,
|
|
1625
1625
|
documents: [],
|
|
1626
|
-
steps:
|
|
1626
|
+
steps: chunkFEGXFABZ_cjs.toPlanSteps(value.workflow, options)
|
|
1627
1627
|
};
|
|
1628
1628
|
}
|
|
1629
1629
|
function builderToWorkflowRequest(value, workspaceId, options = {}) {
|
|
@@ -1658,7 +1658,7 @@ function builderToWorkflowUpdate(value, options = {}) {
|
|
|
1658
1658
|
}
|
|
1659
1659
|
function workflowRecordToBuilder(record) {
|
|
1660
1660
|
const planned = record.plan?.steps ?? [];
|
|
1661
|
-
const steps = planned.length ?
|
|
1661
|
+
const steps = planned.length ? chunkFEGXFABZ_cjs.fromPlanSteps(planned) : record.prompt || record.skill_ref ? [
|
|
1662
1662
|
{
|
|
1663
1663
|
id: "work",
|
|
1664
1664
|
kind: "agent",
|
|
@@ -1666,7 +1666,7 @@ function workflowRecordToBuilder(record) {
|
|
|
1666
1666
|
...record.skill_ref ? { workflow: record.skill_ref } : { run: { kind: "prompt", promptTemplate: record.prompt } }
|
|
1667
1667
|
}
|
|
1668
1668
|
] : [];
|
|
1669
|
-
const when =
|
|
1669
|
+
const when = chunkO3FB62T5_cjs.workflowWhen(record);
|
|
1670
1670
|
return {
|
|
1671
1671
|
workflow: {
|
|
1672
1672
|
id: record.external_id,
|
|
@@ -1675,12 +1675,12 @@ function workflowRecordToBuilder(record) {
|
|
|
1675
1675
|
inputs: [],
|
|
1676
1676
|
landing: "chat",
|
|
1677
1677
|
schedulable: false,
|
|
1678
|
-
run: { kind: "steps", steps, layout:
|
|
1678
|
+
run: { kind: "steps", steps, layout: chunkFEGXFABZ_cjs.layoutFromPlanSteps(planned ?? []) }
|
|
1679
1679
|
},
|
|
1680
1680
|
trigger: {
|
|
1681
1681
|
...DEFAULT_WORKFLOW_TRIGGER,
|
|
1682
1682
|
start: when === "now" ? "manual" : when,
|
|
1683
|
-
runAt:
|
|
1683
|
+
runAt: chunkO3FB62T5_cjs.isoToLocalInput(record.run_at),
|
|
1684
1684
|
rrule: record.rrule ?? "",
|
|
1685
1685
|
timezone: record.timezone || DEFAULT_WORKFLOW_TRIGGER.timezone,
|
|
1686
1686
|
eventKind: record.event_kind ?? "",
|
|
@@ -1736,7 +1736,7 @@ function triggerSummary(trigger, options = {}) {
|
|
|
1736
1736
|
case "once":
|
|
1737
1737
|
return trigger.runAt ? new Date(trigger.runAt).toLocaleString() : l.starts.once;
|
|
1738
1738
|
case "repeat":
|
|
1739
|
-
return trigger.rrule ?
|
|
1739
|
+
return trigger.rrule ? chunkO3FB62T5_cjs.describeRRule(trigger.rrule) : l.starts.repeat;
|
|
1740
1740
|
case "event":
|
|
1741
1741
|
if (isSignalTrigger(trigger))
|
|
1742
1742
|
return trigger.signal ? l.signalSummary.replace("{signal}", trigger.signal) : l.stepSignals;
|
|
@@ -1795,7 +1795,7 @@ function TriggerInspector({
|
|
|
1795
1795
|
}
|
|
1796
1796
|
)
|
|
1797
1797
|
] }),
|
|
1798
|
-
trigger.start === "repeat" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1798
|
+
trigger.start === "repeat" && /* @__PURE__ */ jsxRuntime.jsx(chunkO3FB62T5_cjs.RecurrenceBuilder, { rrule: trigger.rrule, onChange: (rrule) => set({ rrule }) }),
|
|
1799
1799
|
trigger.start === "event" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
|
|
1800
1800
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { className: "text-xs", children: l.event }),
|
|
1801
1801
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -2684,13 +2684,13 @@ function WorkflowPreview({
|
|
|
2684
2684
|
renderIcon,
|
|
2685
2685
|
testId
|
|
2686
2686
|
}) {
|
|
2687
|
-
const run =
|
|
2687
|
+
const run = chunkO3FB62T5_cjs.useWorkflowPreview(workflow, {
|
|
2688
2688
|
resolveWorkflow: (id) => workflows.find((w) => w.id === id),
|
|
2689
2689
|
compose,
|
|
2690
2690
|
answer
|
|
2691
2691
|
});
|
|
2692
2692
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2693
|
-
|
|
2693
|
+
chunkFEGXFABZ_cjs.WorkflowRunner,
|
|
2694
2694
|
{
|
|
2695
2695
|
workflow,
|
|
2696
2696
|
run,
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useConnectedTags, useConnectedDocuments, useConnectedConversations } from '../chunk-KDLX5AA7.js';
|
|
3
3
|
import { useConnectedWorkspace } from '../chunk-TF7HN5EU.js';
|
|
4
|
-
import { workflowWhen, isoToLocalInput, describeRRule, RecurrenceBuilder, useWorkflowPreview, localInputToIso } from '../chunk-
|
|
5
|
-
import { isIncompleteSignal, fromPlanSteps, layoutFromPlanSteps, WorkflowRunner, toPlanSteps } from '../chunk-
|
|
4
|
+
import { workflowWhen, isoToLocalInput, describeRRule, RecurrenceBuilder, useWorkflowPreview, localInputToIso } from '../chunk-6HG56GCT.js';
|
|
5
|
+
import { isIncompleteSignal, fromPlanSteps, layoutFromPlanSteps, WorkflowRunner, toPlanSteps } from '../chunk-UPMADXDU.js';
|
|
6
6
|
import '../chunk-CQCC7LE7.js';
|
|
7
7
|
import { AgentSelect } from '../chunk-XI37A7HH.js';
|
|
8
8
|
import '../chunk-BQ77KSXU.js';
|
|
9
9
|
import '../chunk-NUSBINUM.js';
|
|
10
10
|
import '../chunk-P6GHJSLR.js';
|
|
11
|
+
import '../chunk-RLWIUUQ5.js';
|
|
11
12
|
import '../chunk-M4S75AEJ.js';
|
|
12
13
|
import '../chunk-5LXQPP2K.js';
|
|
13
|
-
import '../chunk-RLWIUUQ5.js';
|
|
14
14
|
import '../chunk-VF5EUAIV.js';
|
|
15
15
|
import '../chunk-NUNKSZKU.js';
|
|
16
16
|
import '../chunk-YU2KUMGE.js';
|
|
@@ -18,8 +18,8 @@ import '../chunk-N5YEF3LC.js';
|
|
|
18
18
|
import '../chunk-4WWM3GQ5.js';
|
|
19
19
|
import { DEFAULT_STEP_KIND_LABELS, workflowSteps, dependsOn, stepLevels, runFields, upstreamSteps, stepDependencies, canAssign, WORKFLOW_STEP_KINDS, STEP_KIND_ICONS, validateWorkflowGraph, stepConfigProblems, assigneeName, orderSteps, stepKindOf } from '../chunk-PDKM27DF.js';
|
|
20
20
|
import { mergeSkillWorkflows } from '../chunk-TZGBRLPK.js';
|
|
21
|
-
import { TONE_DOT, TONES, isTone } from '../chunk-AUS3KBHJ.js';
|
|
22
21
|
import '../chunk-AA3PT6KR.js';
|
|
22
|
+
import { TONE_DOT, TONES, isTone } from '../chunk-AUS3KBHJ.js';
|
|
23
23
|
import '../chunk-SLSBJRWW.js';
|
|
24
24
|
import '../chunk-NPLYHR2E.js';
|
|
25
25
|
import '../chunk-7F6CBP3Z.js';
|
|
@@ -1281,7 +1281,6 @@ function applyJournal(doc, registry, journal, origin, context) {
|
|
|
1281
1281
|
|
|
1282
1282
|
// src/sync.ts
|
|
1283
1283
|
var LOCAL_ORIGIN = /* @__PURE__ */ Symbol("arbi-coedit/local");
|
|
1284
|
-
var DEFAULT_REMOTE_DELAY_MS = 40;
|
|
1285
1284
|
var MirrorSync = class {
|
|
1286
1285
|
doc;
|
|
1287
1286
|
registry = new NodeRegistry();
|
|
@@ -1290,14 +1289,11 @@ var MirrorSync = class {
|
|
|
1290
1289
|
actorId;
|
|
1291
1290
|
onFailure;
|
|
1292
1291
|
onLocalJournal;
|
|
1292
|
+
aroundRemote;
|
|
1293
1293
|
disposers = [];
|
|
1294
|
-
remoteDelayMs;
|
|
1295
1294
|
operation = 0;
|
|
1296
1295
|
applyingRemote = false;
|
|
1297
1296
|
failed = false;
|
|
1298
|
-
remoteDirty = false;
|
|
1299
|
-
remoteOrigin;
|
|
1300
|
-
remoteTimer;
|
|
1301
1297
|
/** Parts whose node ids must be re-registered before the next local journal; true means all. */
|
|
1302
1298
|
staleParts = null;
|
|
1303
1299
|
constructor(options) {
|
|
@@ -1306,7 +1302,7 @@ var MirrorSync = class {
|
|
|
1306
1302
|
this.actorId = options.actorId;
|
|
1307
1303
|
this.onFailure = options.onFailure;
|
|
1308
1304
|
this.onLocalJournal = options.onLocalJournal;
|
|
1309
|
-
this.
|
|
1305
|
+
this.aroundRemote = options.aroundRemote;
|
|
1310
1306
|
registerMirror(this.doc, this.registry);
|
|
1311
1307
|
this.cache = new MaterializeCache(this.doc);
|
|
1312
1308
|
this.disposers.push(() => this.cache.destroy());
|
|
@@ -1327,16 +1323,10 @@ var MirrorSync = class {
|
|
|
1327
1323
|
const onAfterTransaction = (transaction) => {
|
|
1328
1324
|
if (transaction.origin === LOCAL_ORIGIN || this.failed) return;
|
|
1329
1325
|
if (transaction.changed.size === 0 && transaction.changedParentTypes.size === 0) return;
|
|
1330
|
-
this.
|
|
1331
|
-
this.remoteOrigin = transaction.origin;
|
|
1332
|
-
if (this.remoteDelayMs <= 0) this.flushRemote();
|
|
1333
|
-
else if (this.remoteTimer === void 0) {
|
|
1334
|
-
this.remoteTimer = setTimeout(() => this.flushRemote(), this.remoteDelayMs);
|
|
1335
|
-
}
|
|
1326
|
+
this.publishRemote(transaction.origin);
|
|
1336
1327
|
};
|
|
1337
1328
|
this.doc.on("afterTransaction", onAfterTransaction);
|
|
1338
1329
|
this.disposers.push(() => this.doc.off("afterTransaction", onAfterTransaction));
|
|
1339
|
-
this.disposers.push(() => clearTimeout(this.remoteTimer));
|
|
1340
1330
|
}
|
|
1341
1331
|
get hasFailed() {
|
|
1342
1332
|
return this.failed;
|
|
@@ -1345,17 +1335,8 @@ var MirrorSync = class {
|
|
|
1345
1335
|
beforeRemote() {
|
|
1346
1336
|
this.port.flushPendingJournals();
|
|
1347
1337
|
}
|
|
1348
|
-
/** Publish any waiting remote change now. Call before a local operation runs. */
|
|
1349
|
-
flushRemote() {
|
|
1350
|
-
clearTimeout(this.remoteTimer);
|
|
1351
|
-
this.remoteTimer = void 0;
|
|
1352
|
-
if (!this.remoteDirty || this.failed) return;
|
|
1353
|
-
this.remoteDirty = false;
|
|
1354
|
-
this.publishRemote(this.remoteOrigin);
|
|
1355
|
-
}
|
|
1356
1338
|
/** Make the local tree equal to the room: used when the editor opened an older snapshot of it. */
|
|
1357
1339
|
adopt() {
|
|
1358
|
-
this.remoteDirty = false;
|
|
1359
1340
|
this.publishRemote(void 0);
|
|
1360
1341
|
}
|
|
1361
1342
|
/** Re-register node ids for parts a remote publication replaced; deferred until a local edit needs them. */
|
|
@@ -1365,23 +1346,29 @@ var MirrorSync = class {
|
|
|
1365
1346
|
this.staleParts = null;
|
|
1366
1347
|
}
|
|
1367
1348
|
publishRemote(origin) {
|
|
1349
|
+
if (this.failed) return;
|
|
1350
|
+
const published = this.aroundRemote?.();
|
|
1368
1351
|
this.applyingRemote = true;
|
|
1369
1352
|
const changed = this.cache.take();
|
|
1353
|
+
let ok = false;
|
|
1370
1354
|
try {
|
|
1371
1355
|
const result = this.port.applyRemotePackage(materialize(this.doc, this.cache, changed), {
|
|
1372
|
-
origin:
|
|
1356
|
+
// The editor's own origin for a peer's change: it carries the local caret only across those.
|
|
1357
|
+
origin: store.ORIGIN_IDS.mutationRemote,
|
|
1373
1358
|
actorId: typeof origin === "string" ? origin : this.actorId,
|
|
1374
1359
|
operationId: `${this.actorId}:remote:${this.operation++}`
|
|
1375
1360
|
});
|
|
1376
1361
|
if (!result.ok) throw new JournalError(result.reason);
|
|
1377
1362
|
if (changed === null || this.staleParts === true) this.staleParts = true;
|
|
1378
1363
|
else this.staleParts = /* @__PURE__ */ new Set([...this.staleParts ?? [], ...changed]);
|
|
1364
|
+
ok = true;
|
|
1379
1365
|
} catch (error) {
|
|
1380
1366
|
this.cache.restore(changed);
|
|
1381
1367
|
this.fail(error instanceof MaterializeError ? "materialize" : "apply", error);
|
|
1382
1368
|
} finally {
|
|
1383
1369
|
this.applyingRemote = false;
|
|
1384
1370
|
}
|
|
1371
|
+
if (ok) published?.();
|
|
1385
1372
|
}
|
|
1386
1373
|
fail(code, error) {
|
|
1387
1374
|
if (this.failed) return;
|
|
@@ -1435,7 +1422,6 @@ var DocxCollaborationSession = class {
|
|
|
1435
1422
|
doc;
|
|
1436
1423
|
awareness;
|
|
1437
1424
|
offlineEditing;
|
|
1438
|
-
remoteDelayMs;
|
|
1439
1425
|
tracker = collaboration.createCollaborationStatusTracker("initializing");
|
|
1440
1426
|
statusListeners = /* @__PURE__ */ new Set();
|
|
1441
1427
|
participantListeners = /* @__PURE__ */ new Set();
|
|
@@ -1448,6 +1434,10 @@ var DocxCollaborationSession = class {
|
|
|
1448
1434
|
selectionsCache = [];
|
|
1449
1435
|
selectionsKey = "[]";
|
|
1450
1436
|
baselineVector;
|
|
1437
|
+
/** The selection the editor last published, carried across the remote changes since. */
|
|
1438
|
+
carried = null;
|
|
1439
|
+
selectionMove = null;
|
|
1440
|
+
inputFlush = null;
|
|
1451
1441
|
disposers = [];
|
|
1452
1442
|
constructor(options) {
|
|
1453
1443
|
this.documentId = options.documentId;
|
|
@@ -1456,7 +1446,6 @@ var DocxCollaborationSession = class {
|
|
|
1456
1446
|
this.doc = options.doc;
|
|
1457
1447
|
this.awareness = options.awareness;
|
|
1458
1448
|
this.offlineEditing = options.offlineEditing ?? false;
|
|
1459
|
-
this.remoteDelayMs = options.remoteDelayMs;
|
|
1460
1449
|
this.undoManager = new Y3__namespace.UndoManager(
|
|
1461
1450
|
[
|
|
1462
1451
|
this.doc.getMap("parts"),
|
|
@@ -1518,7 +1507,6 @@ var DocxCollaborationSession = class {
|
|
|
1518
1507
|
return this.port !== void 0;
|
|
1519
1508
|
}
|
|
1520
1509
|
gateOperations() {
|
|
1521
|
-
this.sync?.flushRemote();
|
|
1522
1510
|
switch (this.status()) {
|
|
1523
1511
|
case "ready":
|
|
1524
1512
|
return this.port ? null : "collaboration-session-not-attached";
|
|
@@ -1547,7 +1535,7 @@ var DocxCollaborationSession = class {
|
|
|
1547
1535
|
doc: this.doc,
|
|
1548
1536
|
port,
|
|
1549
1537
|
actorId: this.identity.actorId,
|
|
1550
|
-
|
|
1538
|
+
aroundRemote: () => this.carrySelection(),
|
|
1551
1539
|
onFailure: (code, detail) => {
|
|
1552
1540
|
this.markFailed(code === "journal" ? "local-mirror-failed" : "remote-apply-failed", detail);
|
|
1553
1541
|
},
|
|
@@ -1571,8 +1559,21 @@ var DocxCollaborationSession = class {
|
|
|
1571
1559
|
}
|
|
1572
1560
|
/** Transport hook: call before integrating inbound Yjs data so queued local edits are mirrored first. */
|
|
1573
1561
|
beforeRemote() {
|
|
1562
|
+
this.inputFlush?.();
|
|
1574
1563
|
this.sync?.beforeRemote();
|
|
1575
1564
|
}
|
|
1565
|
+
/**
|
|
1566
|
+
* Bind the editor's pending-input flush (`PaginatedSurface.flushPendingInput`). The session writes
|
|
1567
|
+
* below the editor's input buffer, so it lands queued typing before a remote change and lays the
|
|
1568
|
+
* change out right after it: the editor carries its caret at that layout, and a keystroke before
|
|
1569
|
+
* it would otherwise use the caret from before the change. Returns the unbind function.
|
|
1570
|
+
*/
|
|
1571
|
+
bindEditorInput(flush) {
|
|
1572
|
+
this.inputFlush = flush;
|
|
1573
|
+
return () => {
|
|
1574
|
+
if (this.inputFlush === flush) this.inputFlush = null;
|
|
1575
|
+
};
|
|
1576
|
+
}
|
|
1576
1577
|
// ── Undo ─────────────────────────────────────────────────────────────────
|
|
1577
1578
|
canUndo() {
|
|
1578
1579
|
return this.undoManager.undoStack.length > 0;
|
|
@@ -1585,7 +1586,6 @@ var DocxCollaborationSession = class {
|
|
|
1585
1586
|
if (this.gateOperations() !== null || !this.canUndo()) return false;
|
|
1586
1587
|
this.undoManager.stopCapturing();
|
|
1587
1588
|
this.undoManager.undo();
|
|
1588
|
-
this.sync?.flushRemote();
|
|
1589
1589
|
return true;
|
|
1590
1590
|
}
|
|
1591
1591
|
redo() {
|
|
@@ -1593,13 +1593,79 @@ var DocxCollaborationSession = class {
|
|
|
1593
1593
|
if (this.gateOperations() !== null || !this.canRedo()) return false;
|
|
1594
1594
|
this.undoManager.stopCapturing();
|
|
1595
1595
|
this.undoManager.redo();
|
|
1596
|
-
this.sync?.flushRemote();
|
|
1597
1596
|
return true;
|
|
1598
1597
|
}
|
|
1599
1598
|
// ── Presence ─────────────────────────────────────────────────────────────
|
|
1600
1599
|
setLocalSelection(selection) {
|
|
1600
|
+
this.carried = selection && selection.kind !== "cells" ? { from: null, selection } : null;
|
|
1601
|
+
this.selectionMove = null;
|
|
1601
1602
|
this.awareness.setLocalStateField("selection", selection);
|
|
1602
1603
|
}
|
|
1604
|
+
/** Where the last remote change carried the local selection; see `carrySelection`. */
|
|
1605
|
+
remoteSelectionMove() {
|
|
1606
|
+
return this.selectionMove;
|
|
1607
|
+
}
|
|
1608
|
+
/**
|
|
1609
|
+
* Called before a remote change reaches the port: notes the selection's paragraphs and their text,
|
|
1610
|
+
* and returns what carries it across the change once the port holds the new tree. The editor
|
|
1611
|
+
* takes the carried selection when a local edit was coalesced with the remote change, where it
|
|
1612
|
+
* cannot map its caret by the text alone. Several remote changes before the editor publishes its
|
|
1613
|
+
* selection again chain, all from the selection it published.
|
|
1614
|
+
*/
|
|
1615
|
+
carrySelection() {
|
|
1616
|
+
const port = this.port;
|
|
1617
|
+
const carried = this.carried;
|
|
1618
|
+
const settle = () => this.inputFlush?.();
|
|
1619
|
+
if (!port || !carried) return settle;
|
|
1620
|
+
const before = (address) => {
|
|
1621
|
+
const paragraph = port.paragraphByStableId(address.paragraphId);
|
|
1622
|
+
if (!paragraph) return null;
|
|
1623
|
+
const offset = Math.min(address.offset, paragraph.text.length);
|
|
1624
|
+
return { nodeId: paragraph.nodeId, text: paragraph.text, offset };
|
|
1625
|
+
};
|
|
1626
|
+
const anchor = before(carried.selection.anchor);
|
|
1627
|
+
const head = before(carried.selection.head);
|
|
1628
|
+
if (!anchor || !head) {
|
|
1629
|
+
this.carried = null;
|
|
1630
|
+
this.selectionMove = null;
|
|
1631
|
+
return settle;
|
|
1632
|
+
}
|
|
1633
|
+
const from = carried.from ?? {
|
|
1634
|
+
anchor: { nodeId: anchor.nodeId, offset: anchor.offset },
|
|
1635
|
+
head: { nodeId: head.nodeId, offset: head.offset }
|
|
1636
|
+
};
|
|
1637
|
+
return () => {
|
|
1638
|
+
const after = (address, was) => {
|
|
1639
|
+
const paragraph = port.paragraphByStableId(address.paragraphId);
|
|
1640
|
+
if (!paragraph) return null;
|
|
1641
|
+
const offset = replication.mapOffsetAcrossText(was.offset, was.text, paragraph.text);
|
|
1642
|
+
return { paragraphId: address.paragraphId, nodeId: paragraph.nodeId, offset };
|
|
1643
|
+
};
|
|
1644
|
+
const nextAnchor = after(carried.selection.anchor, anchor);
|
|
1645
|
+
const nextHead = after(carried.selection.head, head);
|
|
1646
|
+
if (!nextAnchor || !nextHead) {
|
|
1647
|
+
this.carried = null;
|
|
1648
|
+
this.selectionMove = null;
|
|
1649
|
+
} else {
|
|
1650
|
+
this.carried = {
|
|
1651
|
+
from,
|
|
1652
|
+
selection: {
|
|
1653
|
+
...carried.selection,
|
|
1654
|
+
anchor: { paragraphId: nextAnchor.paragraphId, offset: nextAnchor.offset },
|
|
1655
|
+
head: { paragraphId: nextHead.paragraphId, offset: nextHead.offset }
|
|
1656
|
+
}
|
|
1657
|
+
};
|
|
1658
|
+
this.selectionMove = {
|
|
1659
|
+
from,
|
|
1660
|
+
to: {
|
|
1661
|
+
anchor: { nodeId: nextAnchor.nodeId, offset: nextAnchor.offset },
|
|
1662
|
+
head: { nodeId: nextHead.nodeId, offset: nextHead.offset }
|
|
1663
|
+
}
|
|
1664
|
+
};
|
|
1665
|
+
}
|
|
1666
|
+
settle();
|
|
1667
|
+
};
|
|
1668
|
+
}
|
|
1603
1669
|
participants() {
|
|
1604
1670
|
return this.participantsCache;
|
|
1605
1671
|
}
|
|
@@ -1671,6 +1737,7 @@ var DocxCollaborationSession = class {
|
|
|
1671
1737
|
this.sync?.destroy();
|
|
1672
1738
|
this.sync = void 0;
|
|
1673
1739
|
this.port = void 0;
|
|
1740
|
+
this.inputFlush = null;
|
|
1674
1741
|
this.undoManager.destroy();
|
|
1675
1742
|
this.awareness.setLocalState(null);
|
|
1676
1743
|
for (const dispose of this.disposers.splice(0)) dispose();
|