@arbidocs/blocks 0.5.27 → 0.5.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/dist/{ConnectedCallDock-5DFRWT2D.js → ConnectedCallDock-FDGMFTS5.js} +11 -11
  2. package/dist/{ConnectedCallDock-5DFRWT2D.js.map → ConnectedCallDock-FDGMFTS5.js.map} +1 -1
  3. package/dist/{ConnectedCallDock-UZ447IPL.cjs → ConnectedCallDock-ZIX2ZJCD.cjs} +12 -12
  4. package/dist/{ConnectedCallDock-UZ447IPL.cjs.map → ConnectedCallDock-ZIX2ZJCD.cjs.map} +1 -1
  5. package/dist/{ConnectedCallRoom-MRC375AN.js → ConnectedCallRoom-VJIHEJ4X.js} +11 -11
  6. package/dist/{ConnectedCallRoom-MRC375AN.js.map → ConnectedCallRoom-VJIHEJ4X.js.map} +1 -1
  7. package/dist/{ConnectedCallRoom-SECNWUNO.cjs → ConnectedCallRoom-WZQVXDDW.cjs} +12 -12
  8. package/dist/{ConnectedCallRoom-SECNWUNO.cjs.map → ConnectedCallRoom-WZQVXDDW.cjs.map} +1 -1
  9. package/dist/{ConnectedNativeDocxComparison-5VOMPGV5.js → ConnectedNativeDocxComparison-7ZC7BRY4.js} +14 -14
  10. package/dist/{ConnectedNativeDocxComparison-5VOMPGV5.js.map → ConnectedNativeDocxComparison-7ZC7BRY4.js.map} +1 -1
  11. package/dist/{ConnectedNativeDocxComparison-ZJ44DWVV.cjs → ConnectedNativeDocxComparison-KSLSDAAP.cjs} +15 -15
  12. package/dist/{ConnectedNativeDocxComparison-ZJ44DWVV.cjs.map → ConnectedNativeDocxComparison-KSLSDAAP.cjs.map} +1 -1
  13. package/dist/{ConnectedNativeDocxEditor-KQEYRN4T.cjs → ConnectedNativeDocxEditor-5E64Q7FX.cjs} +15 -15
  14. package/dist/{ConnectedNativeDocxEditor-KQEYRN4T.cjs.map → ConnectedNativeDocxEditor-5E64Q7FX.cjs.map} +1 -1
  15. package/dist/{ConnectedNativeDocxEditor-CSD3YIPD.js → ConnectedNativeDocxEditor-B5KDDPRY.js} +13 -13
  16. package/dist/{ConnectedNativeDocxEditor-CSD3YIPD.js.map → ConnectedNativeDocxEditor-B5KDDPRY.js.map} +1 -1
  17. package/dist/{ConnectedStreamedWordArtifact-OTC4CAYP.cjs → ConnectedStreamedWordArtifact-RLU5VYGO.cjs} +15 -15
  18. package/dist/ConnectedStreamedWordArtifact-RLU5VYGO.cjs.map +1 -0
  19. package/dist/{ConnectedStreamedWordArtifact-ZPI76QX2.js → ConnectedStreamedWordArtifact-YCQSIGXL.js} +14 -14
  20. package/dist/ConnectedStreamedWordArtifact-YCQSIGXL.js.map +1 -0
  21. package/dist/{WorkspaceTableView-LS6LFKBE.js → WorkspaceTableView-62PJLX7V.js} +8 -8
  22. package/dist/{WorkspaceTableView-LS6LFKBE.js.map → WorkspaceTableView-62PJLX7V.js.map} +1 -1
  23. package/dist/{WorkspaceTableView-5I3KWZ5I.cjs → WorkspaceTableView-BUWRSR42.cjs} +10 -10
  24. package/dist/{WorkspaceTableView-5I3KWZ5I.cjs.map → WorkspaceTableView-BUWRSR42.cjs.map} +1 -1
  25. package/dist/agents/index.cjs +371 -371
  26. package/dist/agents/index.js +9 -9
  27. package/dist/calls/index.cjs +2 -2
  28. package/dist/calls/index.js +2 -2
  29. package/dist/chat/index.cjs +166 -166
  30. package/dist/chat/index.js +8 -8
  31. package/dist/{chunk-ORVJFY72.cjs → chunk-3IRIITUW.cjs} +7 -7
  32. package/dist/{chunk-ORVJFY72.cjs.map → chunk-3IRIITUW.cjs.map} +1 -1
  33. package/dist/{chunk-5DA4LSMC.js → chunk-3OKBEVP3.js} +3 -3
  34. package/dist/{chunk-5DA4LSMC.js.map → chunk-3OKBEVP3.js.map} +1 -1
  35. package/dist/{chunk-SQQULKT4.cjs → chunk-3PQPA5K6.cjs} +12 -12
  36. package/dist/{chunk-SQQULKT4.cjs.map → chunk-3PQPA5K6.cjs.map} +1 -1
  37. package/dist/{chunk-EZLZ3MDU.cjs → chunk-4RMI6D64.cjs} +3 -3
  38. package/dist/{chunk-EZLZ3MDU.cjs.map → chunk-4RMI6D64.cjs.map} +1 -1
  39. package/dist/{chunk-LMT6VLBN.js → chunk-4UREQY5X.js} +3 -3
  40. package/dist/{chunk-LMT6VLBN.js.map → chunk-4UREQY5X.js.map} +1 -1
  41. package/dist/{chunk-TL5VXRNT.cjs → chunk-52GITM4V.cjs} +91 -91
  42. package/dist/{chunk-TL5VXRNT.cjs.map → chunk-52GITM4V.cjs.map} +1 -1
  43. package/dist/{chunk-T5DBNUVF.cjs → chunk-CJWZYK5K.cjs} +5 -5
  44. package/dist/{chunk-T5DBNUVF.cjs.map → chunk-CJWZYK5K.cjs.map} +1 -1
  45. package/dist/{chunk-2CO5PMOE.cjs → chunk-CPJ2B3QQ.cjs} +4 -4
  46. package/dist/{chunk-2CO5PMOE.cjs.map → chunk-CPJ2B3QQ.cjs.map} +1 -1
  47. package/dist/{chunk-RP3IOGFT.cjs → chunk-CRUCMRFC.cjs} +9 -9
  48. package/dist/{chunk-RP3IOGFT.cjs.map → chunk-CRUCMRFC.cjs.map} +1 -1
  49. package/dist/{chunk-L2C7WV6D.js → chunk-DF2GSH4D.js} +3 -3
  50. package/dist/{chunk-L2C7WV6D.js.map → chunk-DF2GSH4D.js.map} +1 -1
  51. package/dist/{chunk-C4GMH6TZ.js → chunk-DNGA25ZA.js} +3 -3
  52. package/dist/{chunk-C4GMH6TZ.js.map → chunk-DNGA25ZA.js.map} +1 -1
  53. package/dist/{chunk-THNTNAYI.js → chunk-DV25UPJ7.js} +3 -3
  54. package/dist/{chunk-THNTNAYI.js.map → chunk-DV25UPJ7.js.map} +1 -1
  55. package/dist/{chunk-R4K5L6QY.js → chunk-EJSVRT3G.js} +6 -6
  56. package/dist/{chunk-R4K5L6QY.js.map → chunk-EJSVRT3G.js.map} +1 -1
  57. package/dist/{chunk-I45LDMQU.cjs → chunk-EVYUYVH2.cjs} +5 -5
  58. package/dist/{chunk-I45LDMQU.cjs.map → chunk-EVYUYVH2.cjs.map} +1 -1
  59. package/dist/{chunk-YD3RN2FY.cjs → chunk-F72ZD5Q2.cjs} +3 -3
  60. package/dist/{chunk-YD3RN2FY.cjs.map → chunk-F72ZD5Q2.cjs.map} +1 -1
  61. package/dist/{chunk-WP4IDJBA.js → chunk-G3MZ5S2Q.js} +3 -3
  62. package/dist/{chunk-WP4IDJBA.js.map → chunk-G3MZ5S2Q.js.map} +1 -1
  63. package/dist/{chunk-OJBOHLAH.js → chunk-GJI5PEGR.js} +3 -3
  64. package/dist/{chunk-OJBOHLAH.js.map → chunk-GJI5PEGR.js.map} +1 -1
  65. package/dist/{chunk-G6O77PJD.js → chunk-H72SWOUS.js} +3 -3
  66. package/dist/{chunk-G6O77PJD.js.map → chunk-H72SWOUS.js.map} +1 -1
  67. package/dist/{chunk-75Z5AUMM.js → chunk-JS7KJRKG.js} +3 -3
  68. package/dist/{chunk-75Z5AUMM.js.map → chunk-JS7KJRKG.js.map} +1 -1
  69. package/dist/{chunk-XMUYSOYU.js → chunk-KKBYWVEL.js} +5 -5
  70. package/dist/{chunk-XMUYSOYU.js.map → chunk-KKBYWVEL.js.map} +1 -1
  71. package/dist/{chunk-WL57N2KJ.cjs → chunk-LXB756TN.cjs} +3 -3
  72. package/dist/{chunk-WL57N2KJ.cjs.map → chunk-LXB756TN.cjs.map} +1 -1
  73. package/dist/{chunk-LDAV4UDA.js → chunk-OGADWN5L.js} +3 -3
  74. package/dist/{chunk-LDAV4UDA.js.map → chunk-OGADWN5L.js.map} +1 -1
  75. package/dist/{chunk-LX3JJYVP.cjs → chunk-OQCUIN6Z.cjs} +5 -5
  76. package/dist/{chunk-LX3JJYVP.cjs.map → chunk-OQCUIN6Z.cjs.map} +1 -1
  77. package/dist/{chunk-6EEVMPOH.js → chunk-OZRGYS3J.js} +3 -3
  78. package/dist/{chunk-6EEVMPOH.js.map → chunk-OZRGYS3J.js.map} +1 -1
  79. package/dist/{chunk-A3WHSTRX.js → chunk-OZSAQJO4.js} +3 -3
  80. package/dist/{chunk-A3WHSTRX.js.map → chunk-OZSAQJO4.js.map} +1 -1
  81. package/dist/{chunk-5OEDXFPX.cjs → chunk-QHWDV2VB.cjs} +3 -3
  82. package/dist/{chunk-5OEDXFPX.cjs.map → chunk-QHWDV2VB.cjs.map} +1 -1
  83. package/dist/{chunk-Z2BAYT2U.cjs → chunk-R3HZBTE3.cjs} +4 -4
  84. package/dist/{chunk-Z2BAYT2U.cjs.map → chunk-R3HZBTE3.cjs.map} +1 -1
  85. package/dist/{chunk-ADH5KQZW.cjs → chunk-SN7X7C7H.cjs} +3 -3
  86. package/dist/{chunk-ADH5KQZW.cjs.map → chunk-SN7X7C7H.cjs.map} +1 -1
  87. package/dist/{chunk-WBBUUEER.cjs → chunk-SQAVWMGV.cjs} +55 -55
  88. package/dist/{chunk-WBBUUEER.cjs.map → chunk-SQAVWMGV.cjs.map} +1 -1
  89. package/dist/{chunk-P57ASK2E.cjs → chunk-T3JW5BYG.cjs} +4 -4
  90. package/dist/{chunk-P57ASK2E.cjs.map → chunk-T3JW5BYG.cjs.map} +1 -1
  91. package/dist/{chunk-ZWL7GPQX.js → chunk-TKOP6WMD.js} +3 -3
  92. package/dist/{chunk-ZWL7GPQX.js.map → chunk-TKOP6WMD.js.map} +1 -1
  93. package/dist/{chunk-LOFESOAW.js → chunk-TY76UEFK.js} +5 -5
  94. package/dist/{chunk-LOFESOAW.js.map → chunk-TY76UEFK.js.map} +1 -1
  95. package/dist/{chunk-DEB2YRCN.js → chunk-UXIMEFEF.js} +7 -7
  96. package/dist/{chunk-DEB2YRCN.js.map → chunk-UXIMEFEF.js.map} +1 -1
  97. package/dist/{chunk-ROV3FG3J.js → chunk-W43S7COD.js} +3 -3
  98. package/dist/{chunk-ROV3FG3J.js.map → chunk-W43S7COD.js.map} +1 -1
  99. package/dist/{chunk-4Y4724GI.cjs → chunk-W5PKYJX5.cjs} +3 -3
  100. package/dist/{chunk-4Y4724GI.cjs.map → chunk-W5PKYJX5.cjs.map} +1 -1
  101. package/dist/{chunk-F5T4R7CN.cjs → chunk-WY626DNG.cjs} +10 -10
  102. package/dist/{chunk-F5T4R7CN.cjs.map → chunk-WY626DNG.cjs.map} +1 -1
  103. package/dist/{chunk-6PFVCAWJ.cjs → chunk-XDFH6ONO.cjs} +13 -13
  104. package/dist/{chunk-6PFVCAWJ.cjs.map → chunk-XDFH6ONO.cjs.map} +1 -1
  105. package/dist/{chunk-OUCSQ3IE.js → chunk-XGUN44A4.js} +7 -7
  106. package/dist/{chunk-OUCSQ3IE.js.map → chunk-XGUN44A4.js.map} +1 -1
  107. package/dist/collaboration/index.cjs +9 -9
  108. package/dist/collaboration/index.js +1 -1
  109. package/dist/connect/docx.cjs +17 -17
  110. package/dist/connect/docx.js +13 -13
  111. package/dist/connect/index.cjs +3006 -2274
  112. package/dist/connect/index.cjs.map +1 -1
  113. package/dist/connect/index.d.ts +2 -0
  114. package/dist/connect/index.js +784 -57
  115. package/dist/connect/index.js.map +1 -1
  116. package/dist/connect/viewer.cjs +24 -24
  117. package/dist/connect/viewer.js +14 -14
  118. package/dist/connection/projects/ConnectedProjectPage.d.ts +1 -0
  119. package/dist/connection/projects/ProjectDetailsForm.d.ts +1 -0
  120. package/dist/connection/report-problem/CaptureBar.d.ts +11 -0
  121. package/dist/connection/report-problem/ConnectedReportProblem.d.ts +9 -0
  122. package/dist/connection/report-problem/ReportProblemDialog.d.ts +25 -0
  123. package/dist/connection/report-problem/index.d.ts +4 -0
  124. package/dist/connection/report-problem/screen-capture.d.ts +14 -0
  125. package/dist/connection/report-problem/screenshot-annotations.d.ts +53 -0
  126. package/dist/connection/report-problem/useReportProblem.d.ts +12 -0
  127. package/dist/connection/runtime/ConnectedAppRuntime.d.ts +6 -0
  128. package/dist/connection/runtime/index.d.ts +1 -0
  129. package/dist/connection/runtime/usePausedMutationNotice.d.ts +10 -0
  130. package/dist/connection/runtime/usePaymentReturn.d.ts +1 -0
  131. package/dist/connection/runtime/useReleaseStaleModalState.d.ts +1 -0
  132. package/dist/connection/runtime/useRetiredModelNotice.d.ts +1 -0
  133. package/dist/facts/index.cjs +57 -57
  134. package/dist/facts/index.js +5 -5
  135. package/dist/files/index.cjs +2 -2
  136. package/dist/files/index.js +2 -2
  137. package/dist/home/index.cjs +29 -29
  138. package/dist/home/index.js +4 -4
  139. package/dist/index.cjs +763 -702
  140. package/dist/index.cjs.map +1 -1
  141. package/dist/index.d.ts +1 -0
  142. package/dist/index.js +78 -20
  143. package/dist/index.js.map +1 -1
  144. package/dist/settings/TipsEditorDialog.d.ts +3 -3
  145. package/dist/settings/index.cjs +156 -156
  146. package/dist/settings/index.js +3 -3
  147. package/dist/shell/index.cjs +1 -1
  148. package/dist/shell/index.js +1 -1
  149. package/dist/studio/index.cjs +8 -8
  150. package/dist/studio/index.js +7 -7
  151. package/dist/tips/index.d.ts +1 -0
  152. package/dist/tips/registry.d.ts +98 -0
  153. package/dist/workflow-canvas/index.cjs +62 -62
  154. package/dist/workflow-canvas/index.js +12 -12
  155. package/node_modules/@arbidocs/coedit/package.json +1 -1
  156. package/package.json +5 -5
  157. package/src/blocks.css +13 -2
  158. package/dist/ConnectedStreamedWordArtifact-OTC4CAYP.cjs.map +0 -1
  159. package/dist/ConnectedStreamedWordArtifact-ZPI76QX2.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- export { ActiveSessionsDialog, AppearanceSettings, AvatarPicker, CONVERSATION_TITLE_MAX, CheckoutDialogFrame, ConfigSwitcherBar, ConnectionCard, ConnectionsEmpty, ConnectionsError, ConnectionsLoading, ConversationTitleSection, DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS, DEFAULT_APPEARANCE_PAIRING_IDS, DEFAULT_AVATAR_PICKER_LABELS, DEFAULT_CHECKOUT_DIALOG_LABELS, DEFAULT_CONFIG_SWITCHER_BAR_LABELS, DEFAULT_CONNECTION_CARD_LABELS, DEFAULT_CONVERSATION_TITLE_SECTION_LABELS, DEFAULT_DAILY_CAP_FIELD_LABELS, DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS, DEFAULT_EMAIL_WORKSPACE_DIALOG_LABELS, DEFAULT_ERROR_DIALOG_LABELS, DEFAULT_IDENTITY_VERIFICATION_LABELS, DEFAULT_INVITE_CONTACTS_DIALOG_LABELS, DEFAULT_INVOICES_DIALOG_LABELS, DEFAULT_LOGOUT_DIALOG_LABELS, DEFAULT_MODEL_SELECTION_SECTION_LABELS, DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS, DEFAULT_PLAN_CARD_LABELS, DEFAULT_PROFILE_CARD_LABELS, DEFAULT_PROJECT_DETAIL_HEADER_LABELS, DEFAULT_PROJECT_LIST_LABELS, DEFAULT_QUOTA_EXCEEDED_DIALOG_LABELS, DEFAULT_REFERRAL_REWARD_LABELS, DEFAULT_RENAME_DIALOG_LABELS, DEFAULT_SHARED_PROJECTS_SECTION_LABELS, DEFAULT_SUBSCRIPTION_STATUS_LABELS, DEFAULT_SUPPORT_PANEL_LABELS, DEFAULT_SYNC_DIALOG_FOOTER_LABELS, DEFAULT_SYNC_FOLDER_ROW_LABELS, DEFAULT_TIPS_EDITOR_LABELS, DEFAULT_USAGE_LINE_CHART_LABELS, DEFAULT_USAGE_PANEL_LABELS, DEFAULT_USAGE_PROPORTION_BAR_LABELS, DEFAULT_WELCOME_DIALOG_LABELS, DEFAULT_WORK_OFFLINE_LABELS, DailyCapField, DeleteAccountDialog, DraggableHeader, EMAIL_NOTIFICATION_CATEGORIES, EMAIL_NOTIFICATION_KEYS, EmailWorkspaceDialogView, ErrorDialogView, FilterChip, FloatingPanel, IdentityVerificationCard, IdentityVerificationDialog, InviteContactsDialog, InvoicesDialog, JsonTree, LogoutDialog, MessageJsonTree, ModelProviderLabel, ModelSelectionSection, MoreInfo, MoreInfoList, NotificationCategoryList, PanelActionsRow, PanelAddButton, PanelFrame, PanelFrameBody, PanelNote, PanelScroll, PanelTitleBar, PasswordChangeDialog, PlanActionButton, PlanActionRow, PlanBadge, PlanCard, PlanCardGrid, PlanDialogFrame, PlanInfoPopover, PlanNotice, PlanPickerCard, PlanPickerHeader, PlanStack, PlanTierOption, PremiumModelsFrame, PricingToggle, ProfileCard, ProjectDetailHeader, ProjectDetailSection, ProjectGroup, ProjectList, ProjectRow, PromoCodeInput, QuotaExceededDialogView, QuotaMeter, ReferralRewardBadge, ReferralRewardNote, ReferralRewardSummary, RenameDialog, RequireVerified, SegmentedControl, ServerConnectionButton, SettingsPage, SettingsSwitchGroup, SettingsSwitchRow, SharedProjectRow, SharedProjectsSection, SubscriptionStatusView, SupportPanel, SupportUnavailable, SyncCheckList, SyncDialogBody, SyncDialogFooter, SyncField, SyncFolderRow, SyncFolderStatus, SyncLinkButton, SyncLinkRow, SyncLoading, SyncNote, SyncOptionToggle, SyncOptions, SyncReconnectNotice, SyncSelect, SyncSmallNote, SyncTreeFrame, ThreadPreviewDialog, TipsEditorDialog, UsageActionButton, UsageLegend, UsageLineChart, UsagePanel, UsageProportionBar, UsageQuotaHint, UsageSection, UsageSummary, UsageToggle, WelcomeDialog, WorkOfflineToggle, applyInvertedIndexFilter, applyTriStateFilters, buildInvertedIndex, callsSwitchState, formatSessionTtl, resolveSettingsSection, serverConnectionView, toActiveSessionViews, toDeleteBlockerViews, toLogoutSessionViews, toNotificationCategories } from '../chunk-6EEVMPOH.js';
2
+ export { ActiveSessionsDialog, AppearanceSettings, AvatarPicker, CONVERSATION_TITLE_MAX, CheckoutDialogFrame, ConfigSwitcherBar, ConnectionCard, ConnectionsEmpty, ConnectionsError, ConnectionsLoading, ConversationTitleSection, DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS, DEFAULT_APPEARANCE_PAIRING_IDS, DEFAULT_AVATAR_PICKER_LABELS, DEFAULT_CHECKOUT_DIALOG_LABELS, DEFAULT_CONFIG_SWITCHER_BAR_LABELS, DEFAULT_CONNECTION_CARD_LABELS, DEFAULT_CONVERSATION_TITLE_SECTION_LABELS, DEFAULT_DAILY_CAP_FIELD_LABELS, DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS, DEFAULT_EMAIL_WORKSPACE_DIALOG_LABELS, DEFAULT_ERROR_DIALOG_LABELS, DEFAULT_IDENTITY_VERIFICATION_LABELS, DEFAULT_INVITE_CONTACTS_DIALOG_LABELS, DEFAULT_INVOICES_DIALOG_LABELS, DEFAULT_LOGOUT_DIALOG_LABELS, DEFAULT_MODEL_SELECTION_SECTION_LABELS, DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS, DEFAULT_PLAN_CARD_LABELS, DEFAULT_PROFILE_CARD_LABELS, DEFAULT_PROJECT_DETAIL_HEADER_LABELS, DEFAULT_PROJECT_LIST_LABELS, DEFAULT_QUOTA_EXCEEDED_DIALOG_LABELS, DEFAULT_REFERRAL_REWARD_LABELS, DEFAULT_RENAME_DIALOG_LABELS, DEFAULT_SHARED_PROJECTS_SECTION_LABELS, DEFAULT_SUBSCRIPTION_STATUS_LABELS, DEFAULT_SUPPORT_PANEL_LABELS, DEFAULT_SYNC_DIALOG_FOOTER_LABELS, DEFAULT_SYNC_FOLDER_ROW_LABELS, DEFAULT_TIPS_EDITOR_LABELS, DEFAULT_USAGE_LINE_CHART_LABELS, DEFAULT_USAGE_PANEL_LABELS, DEFAULT_USAGE_PROPORTION_BAR_LABELS, DEFAULT_WELCOME_DIALOG_LABELS, DEFAULT_WORK_OFFLINE_LABELS, DailyCapField, DeleteAccountDialog, DraggableHeader, EMAIL_NOTIFICATION_CATEGORIES, EMAIL_NOTIFICATION_KEYS, EmailWorkspaceDialogView, ErrorDialogView, FilterChip, FloatingPanel, IdentityVerificationCard, IdentityVerificationDialog, InviteContactsDialog, InvoicesDialog, JsonTree, LogoutDialog, MessageJsonTree, ModelProviderLabel, ModelSelectionSection, MoreInfo, MoreInfoList, NotificationCategoryList, PanelActionsRow, PanelAddButton, PanelFrame, PanelFrameBody, PanelNote, PanelScroll, PanelTitleBar, PasswordChangeDialog, PlanActionButton, PlanActionRow, PlanBadge, PlanCard, PlanCardGrid, PlanDialogFrame, PlanInfoPopover, PlanNotice, PlanPickerCard, PlanPickerHeader, PlanStack, PlanTierOption, PremiumModelsFrame, PricingToggle, ProfileCard, ProjectDetailHeader, ProjectDetailSection, ProjectGroup, ProjectList, ProjectRow, PromoCodeInput, QuotaExceededDialogView, QuotaMeter, ReferralRewardBadge, ReferralRewardNote, ReferralRewardSummary, RenameDialog, RequireVerified, SegmentedControl, ServerConnectionButton, SettingsPage, SettingsSwitchGroup, SettingsSwitchRow, SharedProjectRow, SharedProjectsSection, SubscriptionStatusView, SupportPanel, SupportUnavailable, SyncCheckList, SyncDialogBody, SyncDialogFooter, SyncField, SyncFolderRow, SyncFolderStatus, SyncLinkButton, SyncLinkRow, SyncLoading, SyncNote, SyncOptionToggle, SyncOptions, SyncReconnectNotice, SyncSelect, SyncSmallNote, SyncTreeFrame, ThreadPreviewDialog, TipsEditorDialog, UsageActionButton, UsageLegend, UsageLineChart, UsagePanel, UsageProportionBar, UsageQuotaHint, UsageSection, UsageSummary, UsageToggle, WelcomeDialog, WorkOfflineToggle, applyInvertedIndexFilter, applyTriStateFilters, buildInvertedIndex, callsSwitchState, formatSessionTtl, resolveSettingsSection, serverConnectionView, toActiveSessionViews, toDeleteBlockerViews, toLogoutSessionViews, toNotificationCategories } from '../chunk-OZRGYS3J.js';
3
3
  export { ModalBreadcrumbHeader, ModalCrumbs } from '../chunk-RC6VTY2H.js';
4
4
  export { DEFAULT_SETTINGS_DANGER_ZONE_LABELS, SettingsActionRow, SettingsCard, SettingsDangerZone, SettingsPanel, SettingsRow, SettingsSection } from '../chunk-MZA7GMOH.js';
5
5
  import '../chunk-66TA5IBN.js';
@@ -7,12 +7,12 @@ import '../chunk-NHZK64TQ.js';
7
7
  export { MultiSelect } from '../chunk-CQCC7LE7.js';
8
8
  export { DEFAULT_TRI_STATE_FILTER_MENU_LABELS, TriStateFilterMenu } from '../chunk-G4GLDQLY.js';
9
9
  import '../chunk-5LXQPP2K.js';
10
+ import '../chunk-ABEKUV6L.js';
10
11
  import '../chunk-P6OLZGQA.js';
11
12
  export { DEFAULT_DOCUMENT_PICKER_LABELS, DocumentPicker } from '../chunk-WNDIVNPT.js';
12
- import '../chunk-ABEKUV6L.js';
13
13
  import '../chunk-AUS3KBHJ.js';
14
- import '../chunk-5VYJP6XD.js';
15
14
  import '../chunk-NPLYHR2E.js';
15
+ import '../chunk-5VYJP6XD.js';
16
16
  export { ConfirmDialog, DEFAULT_CONFIRM_DIALOG_LABELS } from '../chunk-U4HWVCRN.js';
17
17
  export { MODAL_SECTION_TITLE_CLASS, ModalHeader, ModalScaffold, ModalSection, ModalSectionTitle } from '../chunk-TX2ZICS7.js';
18
18
  import '../chunk-7F6CBP3Z.js';
@@ -9,8 +9,8 @@ require('../chunk-NIS5TLOM.cjs');
9
9
  var chunkMEMWZ72Y_cjs = require('../chunk-MEMWZ72Y.cjs');
10
10
  var chunk5UHAWSEX_cjs = require('../chunk-5UHAWSEX.cjs');
11
11
  var chunkB6MVQCXW_cjs = require('../chunk-B6MVQCXW.cjs');
12
- var chunkFX3K6LNZ_cjs = require('../chunk-FX3K6LNZ.cjs');
13
12
  require('../chunk-PPCATBOY.cjs');
13
+ var chunkFX3K6LNZ_cjs = require('../chunk-FX3K6LNZ.cjs');
14
14
  require('../chunk-AHYSHKPL.cjs');
15
15
  require('../chunk-SI222Z3A.cjs');
16
16
  require('../chunk-ULWRNGGE.cjs');
@@ -7,8 +7,8 @@ import '../chunk-WBCGVEJX.js';
7
7
  export { DEFAULT_TAB_HEADER_LABELS, TabHeader } from '../chunk-ABEKUV6L.js';
8
8
  export { DEFAULT_DOCK_WIDTH, Toaster } from '../chunk-OKERRHLH.js';
9
9
  export { DEFAULT_OVERLAY_ZONE_ID, DEFAULT_PAGE_CONTAINER_PADDING, DEFAULT_SIDEBAR_TOGGLE_BUTTON_LABELS, PageContainer, SHELL_BOTTOM_INSET_VAR, Shell, SidebarToggleButton, ToolButton, useDrawerBehavior, useOverlayZoneId, useShellBottomInset } from '../chunk-7XF5SFJ2.js';
10
- export { BREAKPOINT_QUERIES, useIsNarrow, useIsPhone, useIsTouchScreen, useMediaQuery } from '../chunk-SLSBJRWW.js';
11
10
  import '../chunk-NPLYHR2E.js';
11
+ export { BREAKPOINT_QUERIES, useIsNarrow, useIsPhone, useIsTouchScreen, useMediaQuery } from '../chunk-SLSBJRWW.js';
12
12
  import '../chunk-SSRFSSIT.js';
13
13
  import '../chunk-U4HWVCRN.js';
14
14
  import '../chunk-TX2ZICS7.js';
@@ -1,7 +1,8 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunk2CO5PMOE_cjs = require('../chunk-2CO5PMOE.cjs');
4
+ var chunkCPJ2B3QQ_cjs = require('../chunk-CPJ2B3QQ.cjs');
5
+ var chunkNZCAWWV4_cjs = require('../chunk-NZCAWWV4.cjs');
5
6
  var chunkWG2VDUEI_cjs = require('../chunk-WG2VDUEI.cjs');
6
7
  var chunkKNRAKOCO_cjs = require('../chunk-KNRAKOCO.cjs');
7
8
  var chunkELR74ME6_cjs = require('../chunk-ELR74ME6.cjs');
@@ -10,18 +11,17 @@ var chunkKUQOHPKP_cjs = require('../chunk-KUQOHPKP.cjs');
10
11
  require('../chunk-VPPX5XUF.cjs');
11
12
  var chunkPCB2BPN3_cjs = require('../chunk-PCB2BPN3.cjs');
12
13
  require('../chunk-NWNVWO6L.cjs');
13
- require('../chunk-NIS5TLOM.cjs');
14
- var chunkNZCAWWV4_cjs = require('../chunk-NZCAWWV4.cjs');
15
14
  require('../chunk-MB3S2ETI.cjs');
15
+ require('../chunk-NIS5TLOM.cjs');
16
16
  var chunkZW6FPIFC_cjs = require('../chunk-ZW6FPIFC.cjs');
17
- require('../chunk-6PFVCAWJ.cjs');
17
+ require('../chunk-XDFH6ONO.cjs');
18
18
  require('../chunk-B6MVQCXW.cjs');
19
- require('../chunk-EZLZ3MDU.cjs');
19
+ require('../chunk-4RMI6D64.cjs');
20
20
  require('../chunk-76L6LOP3.cjs');
21
21
  require('../chunk-32HW2Q33.cjs');
22
- var chunkUFEXJIEY_cjs = require('../chunk-UFEXJIEY.cjs');
23
- require('../chunk-CQ2YSHIF.cjs');
24
22
  require('../chunk-PPCATBOY.cjs');
23
+ require('../chunk-CQ2YSHIF.cjs');
24
+ var chunkUFEXJIEY_cjs = require('../chunk-UFEXJIEY.cjs');
25
25
  var chunkAHYSHKPL_cjs = require('../chunk-AHYSHKPL.cjs');
26
26
  require('../chunk-SI222Z3A.cjs');
27
27
  require('../chunk-ULWRNGGE.cjs');
@@ -877,7 +877,7 @@ function latestImageDocId(artifacts) {
877
877
  return null;
878
878
  }
879
879
  function useImageGen() {
880
- const task = chunk2CO5PMOE_cjs.useConnectedAiTask();
880
+ const task = chunkCPJ2B3QQ_cjs.useConnectedAiTask();
881
881
  const { run } = task;
882
882
  const generate = react.useCallback(
883
883
  async (prompt, referenceDocIds = []) => {
@@ -1,5 +1,6 @@
1
1
  "use client";
2
- import { useConnectedAiTask } from '../chunk-LDAV4UDA.js';
2
+ import { useConnectedAiTask } from '../chunk-OGADWN5L.js';
3
+ import { useConnection } from '../chunk-IZJ3BOJO.js';
3
4
  import { DataTableBlock, StatGroup } from '../chunk-2TB4UDBH.js';
4
5
  import { assetRefId, applyStoredTheme, AssetResolverProvider, SectionHeading, PricingTable, Tabs as Tabs$1, Accordion, Gallery, VideoEmbed, ContactForm, Banner, MediaText, TeamGrid, Steps, TestimonialGrid, Columns, Spacer, Container, Hero, FeatureGrid, Testimonial, CTABanner, LogoCloud, FAQ, RichTextBlock, BlockImage, AvatarBlock, Navbar, Footer, ListBlock, isAssetRef, asAssetRef } from '../chunk-XXUPUXBF.js';
5
6
  export { ASSET_REF_PREFIX, AssetResolverProvider, asAssetRef, assetRefId, isAssetRef, useAssetRenderer, useAssetResolverActive } from '../chunk-XXUPUXBF.js';
@@ -9,18 +10,17 @@ import { ThemeEditor, applyThemeVars, tid } from '../chunk-5ZBXFHZW.js';
9
10
  import '../chunk-4EZVCGRL.js';
10
11
  import { Callout } from '../chunk-UJE32SST.js';
11
12
  import '../chunk-NHZK64TQ.js';
12
- import '../chunk-WBCGVEJX.js';
13
- import { useConnection } from '../chunk-IZJ3BOJO.js';
14
13
  import '../chunk-T4P237N6.js';
14
+ import '../chunk-WBCGVEJX.js';
15
15
  import { EmptyState } from '../chunk-P6GHJSLR.js';
16
- import '../chunk-LOFESOAW.js';
16
+ import '../chunk-TY76UEFK.js';
17
17
  import '../chunk-7XF5SFJ2.js';
18
- import '../chunk-THNTNAYI.js';
18
+ import '../chunk-DV25UPJ7.js';
19
19
  import '../chunk-TZGBRLPK.js';
20
20
  import '../chunk-AUS3KBHJ.js';
21
- import { formatCount } from '../chunk-5VYJP6XD.js';
22
- import '../chunk-GAGYAHYO.js';
23
21
  import '../chunk-NPLYHR2E.js';
22
+ import '../chunk-GAGYAHYO.js';
23
+ import { formatCount } from '../chunk-5VYJP6XD.js';
24
24
  import { useBlocksEnvironment } from '../chunk-SSRFSSIT.js';
25
25
  import '../chunk-U4HWVCRN.js';
26
26
  import '../chunk-TX2ZICS7.js';
@@ -0,0 +1 @@
1
+ export { createTipsRegistry, TIP_MAX_CHARS, TIP_CTA_LABEL_MAX_CHARS, type TipCta, type TipDefinition, type TipOverride, type CustomTip, type TipsContent, type EditorTip, type TipPlacement, type TipsRegistry, type TipsRegistryConfig, } from './registry';
@@ -0,0 +1,98 @@
1
+ /**
2
+ * The contextual tips engine: which tips apply where, and the editable layer over them. The tips
3
+ * themselves (their words, pages, situations and actions) are the site's content; a site hands
4
+ * them to {@link createTipsRegistry} once and shows the result in `TipCard` / its tip bar, edits it
5
+ * in `TipsEditorDialog`, and hides tips per user with `useDismissedTips` (`@arbidocs/react`).
6
+ *
7
+ * Each tip has a stable `code`. The editable layer (`TipsContent`) overrides a built-in tip's
8
+ * message, action or page, hides it, or adds tips authored in the editor; swapping it in
9
+ * (`setContent`) updates every subscriber without a reload.
10
+ */
11
+ /** Max length of a tip message: the bar is one line, so a tip is one short sentence. */
12
+ export declare const TIP_MAX_CHARS = 80;
13
+ /** Max length of a tip's action label, so the inline button doesn't dominate. */
14
+ export declare const TIP_CTA_LABEL_MAX_CHARS = 24;
15
+ /**
16
+ * A tip's action: a label and exactly one target. `action` and `sequence` are the site's own ids
17
+ * (what its action registry runs); `href` opens in a new window.
18
+ */
19
+ export interface TipCta<Action extends string = string, Sequence extends string = string> {
20
+ label: string;
21
+ action?: Action;
22
+ sequence?: Sequence;
23
+ href?: string;
24
+ }
25
+ export interface TipDefinition<Context extends string, State, Cta> {
26
+ /** Stable id (e.g. a page letter and a number). */
27
+ code: string;
28
+ context: Context;
29
+ message: string;
30
+ /** Situation predicate; omitted: always applies on its page. */
31
+ when?: (state: State) => boolean;
32
+ cta?: Cta;
33
+ /** Higher shows first. Default 0. */
34
+ priority?: number;
35
+ /** Using the action also hides the tip for good (a one-shot offer, now taken). */
36
+ dismissOnCta?: boolean;
37
+ }
38
+ /** The editable layer over a built-in tip: omitted fields keep the built-in's; `cta: null` drops it. */
39
+ export interface TipOverride<Context extends string, Cta> {
40
+ message?: string;
41
+ cta?: Cta | null;
42
+ context?: Context;
43
+ hidden?: boolean;
44
+ }
45
+ /** A tip written in the editor: no situation predicate, so it always applies on its page. */
46
+ export interface CustomTip<Context extends string, Cta> {
47
+ code: string;
48
+ context: Context;
49
+ message: string;
50
+ cta?: Cta;
51
+ priority?: number;
52
+ hidden?: boolean;
53
+ }
54
+ /** The whole editable layer (a site keeps it as JSON next to its tips). */
55
+ export interface TipsContent<Context extends string, Cta> {
56
+ overrides: Record<string, TipOverride<Context, Cta>>;
57
+ custom: CustomTip<Context, Cta>[];
58
+ }
59
+ /** A tip as the editor lists it: its effective form, where it came from and whether it is off. */
60
+ export interface EditorTip<Context extends string, State, Cta> {
61
+ tip: TipDefinition<Context, State, Cta>;
62
+ isCustom: boolean;
63
+ isHidden: boolean;
64
+ }
65
+ export interface TipsRegistryConfig<Context extends string, State, Cta> {
66
+ tips: readonly TipDefinition<Context, State, Cta>[];
67
+ /** The committed editable layer. */
68
+ content: TipsContent<Context, Cta>;
69
+ /** The page whose tips show on every page. */
70
+ everywhere: Context;
71
+ /** Where a tip can be placed, with the editor's labels ("All pages" first, say). */
72
+ placements: readonly {
73
+ value: Context;
74
+ label: string;
75
+ }[];
76
+ /** The editor's label for "off". Default "Hidden (off)". */
77
+ hiddenLabel?: string;
78
+ }
79
+ export type TipPlacement<Context extends string> = Context | 'hidden';
80
+ export interface TipsRegistry<Context extends string, State, Cta> {
81
+ /** Tips for a page whose situation matches, highest priority first (plus every-page tips). */
82
+ select: (context: Context, state: State) => TipDefinition<Context, State, Cta>[];
83
+ /** Every tip for the editor, across pages, hidden ones included. */
84
+ editorTips: () => EditorTip<Context, State, Cta>[];
85
+ /** The live editable layer. */
86
+ getContent: () => TipsContent<Context, Cta>;
87
+ /** Swap the editable layer and notify subscribers (no reload). */
88
+ setContent: (next: TipsContent<Context, Cta>) => void;
89
+ /** Follow changes to the editable layer; returns the unsubscribe. */
90
+ subscribe: (listener: () => void) => () => void;
91
+ /** The editor's placement choices: each page, then "off". */
92
+ placements: readonly {
93
+ value: TipPlacement<Context>;
94
+ label: string;
95
+ }[];
96
+ placementLabel: (placement: TipPlacement<Context>) => string;
97
+ }
98
+ export declare function createTipsRegistry<Context extends string, State, Cta>(config: TipsRegistryConfig<Context, State, Cta>): TipsRegistry<Context, State, Cta>;
@@ -1,11 +1,14 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkWBBUUEER_cjs = require('../chunk-WBBUUEER.cjs');
5
- var chunkTL5VXRNT_cjs = require('../chunk-TL5VXRNT.cjs');
4
+ var chunkEVV32AXB_cjs = require('../chunk-EVV32AXB.cjs');
5
+ var chunkNZCAWWV4_cjs = require('../chunk-NZCAWWV4.cjs');
6
+ require('../chunk-MB3S2ETI.cjs');
7
+ var chunkSQAVWMGV_cjs = require('../chunk-SQAVWMGV.cjs');
8
+ var chunk52GITM4V_cjs = require('../chunk-52GITM4V.cjs');
6
9
  require('../chunk-RFIBUWLF.cjs');
7
- var chunkF5T4R7CN_cjs = require('../chunk-F5T4R7CN.cjs');
8
- require('../chunk-5OEDXFPX.cjs');
10
+ var chunkWY626DNG_cjs = require('../chunk-WY626DNG.cjs');
11
+ require('../chunk-QHWDV2VB.cjs');
9
12
  require('../chunk-AQPZ4QMV.cjs');
10
13
  require('../chunk-SIB6C7P7.cjs');
11
14
  require('../chunk-DVUZTGVL.cjs');
@@ -13,20 +16,17 @@ require('../chunk-V4ISCZJ7.cjs');
13
16
  require('../chunk-AHDJXIUB.cjs');
14
17
  require('../chunk-2EI7NCUA.cjs');
15
18
  require('../chunk-NIS5TLOM.cjs');
16
- require('../chunk-LKK52DEY.cjs');
17
- require('../chunk-VZOOGA47.cjs');
18
- var chunkEVV32AXB_cjs = require('../chunk-EVV32AXB.cjs');
19
- var chunkNZCAWWV4_cjs = require('../chunk-NZCAWWV4.cjs');
20
- require('../chunk-MB3S2ETI.cjs');
21
19
  require('../chunk-MEMWZ72Y.cjs');
22
20
  require('../chunk-ZW6FPIFC.cjs');
23
- var chunkEZLZ3MDU_cjs = require('../chunk-EZLZ3MDU.cjs');
21
+ require('../chunk-LKK52DEY.cjs');
22
+ require('../chunk-VZOOGA47.cjs');
23
+ var chunk4RMI6D64_cjs = require('../chunk-4RMI6D64.cjs');
24
24
  var chunk76L6LOP3_cjs = require('../chunk-76L6LOP3.cjs');
25
25
  var chunk32HW2Q33_cjs = require('../chunk-32HW2Q33.cjs');
26
- require('../chunk-UFEXJIEY.cjs');
26
+ require('../chunk-PPCATBOY.cjs');
27
27
  require('../chunk-FX3K6LNZ.cjs');
28
28
  require('../chunk-CQ2YSHIF.cjs');
29
- require('../chunk-PPCATBOY.cjs');
29
+ require('../chunk-UFEXJIEY.cjs');
30
30
  var chunkAHYSHKPL_cjs = require('../chunk-AHYSHKPL.cjs');
31
31
  require('../chunk-SI222Z3A.cjs');
32
32
  require('../chunk-ULWRNGGE.cjs');
@@ -55,11 +55,11 @@ function withSteps(workflow, steps, layout) {
55
55
  const run = workflow.run.kind === "steps" ? workflow.run : { kind: "steps", steps: [] };
56
56
  return {
57
57
  ...workflow,
58
- run: { ...run, steps: chunkEZLZ3MDU_cjs.orderSteps(steps), layout: layout ?? run.layout }
58
+ run: { ...run, steps: chunk4RMI6D64_cjs.orderSteps(steps), layout: layout ?? run.layout }
59
59
  };
60
60
  }
61
61
  var layoutOf = (workflow) => workflow.run.kind === "steps" && workflow.run.layout || {};
62
- var explicit = (steps) => steps.map((s) => ({ ...s, after: chunkEZLZ3MDU_cjs.stepDependencies(steps, s.id) }));
62
+ var explicit = (steps) => steps.map((s) => ({ ...s, after: chunk4RMI6D64_cjs.stepDependencies(steps, s.id) }));
63
63
  function stepIdFor(steps, title) {
64
64
  const base = title.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").replace(/^[^a-z]+/, "") || "step";
65
65
  const taken = new Set(steps.map((s) => s.id));
@@ -106,7 +106,7 @@ function blankStep(kind, id, title) {
106
106
  }
107
107
  }
108
108
  function addStep(workflow, kind, options = {}) {
109
- const steps = explicit(chunkEZLZ3MDU_cjs.workflowSteps(workflow));
109
+ const steps = explicit(chunk4RMI6D64_cjs.workflowSteps(workflow));
110
110
  const title = options.title ?? DEFAULT_TITLES[kind];
111
111
  const id = stepIdFor(steps, title);
112
112
  const step = { ...blankStep(kind, id, title), after: options.after ? [options.after] : [] };
@@ -115,7 +115,7 @@ function addStep(workflow, kind, options = {}) {
115
115
  return { workflow: withSteps(workflow, [...steps, step], layout), id };
116
116
  }
117
117
  function removeStep(workflow, id) {
118
- const steps = explicit(chunkEZLZ3MDU_cjs.workflowSteps(workflow));
118
+ const steps = explicit(chunk4RMI6D64_cjs.workflowSteps(workflow));
119
119
  const removed = steps.find((s) => s.id === id);
120
120
  if (!removed) return workflow;
121
121
  const bridged = steps.filter((s) => s.id !== id).map(
@@ -128,8 +128,8 @@ function removeStep(workflow, id) {
128
128
  return withSteps(workflow, bridged, layout);
129
129
  }
130
130
  function connectSteps(workflow, from, to) {
131
- const steps = explicit(chunkEZLZ3MDU_cjs.workflowSteps(workflow));
132
- if (from === to || !steps.some((s) => s.id === from) || chunkEZLZ3MDU_cjs.dependsOn(steps, from, to)) {
131
+ const steps = explicit(chunk4RMI6D64_cjs.workflowSteps(workflow));
132
+ if (from === to || !steps.some((s) => s.id === from) || chunk4RMI6D64_cjs.dependsOn(steps, from, to)) {
133
133
  return workflow;
134
134
  }
135
135
  return withSteps(
@@ -139,16 +139,16 @@ function connectSteps(workflow, from, to) {
139
139
  )
140
140
  );
141
141
  }
142
- var wouldCycle = (workflow, from, to) => from === to || chunkEZLZ3MDU_cjs.dependsOn(chunkEZLZ3MDU_cjs.workflowSteps(workflow), from, to);
142
+ var wouldCycle = (workflow, from, to) => from === to || chunk4RMI6D64_cjs.dependsOn(chunk4RMI6D64_cjs.workflowSteps(workflow), from, to);
143
143
  function disconnectSteps(workflow, from, to) {
144
- const steps = explicit(chunkEZLZ3MDU_cjs.workflowSteps(workflow));
144
+ const steps = explicit(chunk4RMI6D64_cjs.workflowSteps(workflow));
145
145
  return withSteps(
146
146
  workflow,
147
147
  steps.map((s) => s.id === to ? { ...s, after: (s.after ?? []).filter((d) => d !== from) } : s)
148
148
  );
149
149
  }
150
150
  function updateStep(workflow, id, patch) {
151
- const steps = explicit(chunkEZLZ3MDU_cjs.workflowSteps(workflow));
151
+ const steps = explicit(chunk4RMI6D64_cjs.workflowSteps(workflow));
152
152
  return withSteps(
153
153
  workflow,
154
154
  steps.map(
@@ -162,7 +162,7 @@ var renameIn = (text, from, to) => text.replace(
162
162
  );
163
163
  function renameInput(workflow, from, to) {
164
164
  if (from === to) return workflow;
165
- const steps = chunkEZLZ3MDU_cjs.workflowSteps(workflow).map((s) => {
165
+ const steps = chunk4RMI6D64_cjs.workflowSteps(workflow).map((s) => {
166
166
  if (s.kind === "agent")
167
167
  return {
168
168
  ...s,
@@ -211,13 +211,13 @@ function renameInput(workflow, from, to) {
211
211
  var renamePerson = (a, from, to) => "input" in a && a.input === from ? { input: to } : a;
212
212
  var renameRef = (r, from, to) => "input" in r && r.input === from ? { input: to } : r;
213
213
  function moveStep(workflow, id, position) {
214
- return withSteps(workflow, chunkEZLZ3MDU_cjs.workflowSteps(workflow), { ...layoutOf(workflow), [id]: position });
214
+ return withSteps(workflow, chunk4RMI6D64_cjs.workflowSteps(workflow), { ...layoutOf(workflow), [id]: position });
215
215
  }
216
216
  var COLUMN = 300;
217
217
  var ROW = 140;
218
218
  function autoLayout(steps) {
219
219
  const layout = {};
220
- chunkEZLZ3MDU_cjs.stepLevels(steps).forEach(
220
+ chunk4RMI6D64_cjs.stepLevels(steps).forEach(
221
221
  (level, x) => level.forEach((s, y) => {
222
222
  layout[s.id] = { x: x * COLUMN, y: (y - (level.length - 1) / 2) * ROW };
223
223
  })
@@ -225,7 +225,7 @@ function autoLayout(steps) {
225
225
  return layout;
226
226
  }
227
227
  function layoutWithDefaults(workflow) {
228
- const auto = autoLayout(chunkEZLZ3MDU_cjs.workflowSteps(workflow));
228
+ const auto = autoLayout(chunk4RMI6D64_cjs.workflowSteps(workflow));
229
229
  return { ...auto, ...layoutOf(workflow) };
230
230
  }
231
231
  var DEFAULT_SIGNALS_EDITOR_LABELS = {
@@ -322,9 +322,9 @@ function SignalsEditor({
322
322
  {
323
323
  className: ui.cn(
324
324
  "space-y-1.5 rounded-md border p-2",
325
- chunkTL5VXRNT_cjs.isIncompleteSignal(signal) ? "border-destructive/50" : "border-border"
325
+ chunk52GITM4V_cjs.isIncompleteSignal(signal) ? "border-destructive/50" : "border-border"
326
326
  ),
327
- "data-incomplete": chunkTL5VXRNT_cjs.isIncompleteSignal(signal) || void 0,
327
+ "data-incomplete": chunk52GITM4V_cjs.isIncompleteSignal(signal) || void 0,
328
328
  "data-testid": `${testId}-${i}`,
329
329
  children: [
330
330
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
@@ -1155,7 +1155,7 @@ function StepInspector({
1155
1155
  }) {
1156
1156
  const l = { ...DEFAULT_STEP_INSPECTOR_LABELS, ...labels };
1157
1157
  const ol = { ...DEFAULT_FIELD_OPTIONS_EDITOR_LABELS, ...optionLabels };
1158
- const steps = chunkEZLZ3MDU_cjs.workflowSteps(workflow);
1158
+ const steps = chunk4RMI6D64_cjs.workflowSteps(workflow);
1159
1159
  const step = steps.find((s) => s.id === stepId);
1160
1160
  const run = workflow.run.kind === "steps" ? workflow.run : void 0;
1161
1161
  if (!step || !run) {
@@ -1182,8 +1182,8 @@ function StepInspector({
1182
1182
  const patch = (p) => onChange(updateStep(workflow, step.id, p));
1183
1183
  const al = { ...DEFAULT_STEP_ACTION_SETTINGS_LABELS, ...actionLabels };
1184
1184
  const ctx = {
1185
- earlier: chunkEZLZ3MDU_cjs.upstreamSteps(steps, step.id),
1186
- fields: chunkEZLZ3MDU_cjs.runFields(workflow),
1185
+ earlier: chunk4RMI6D64_cjs.upstreamSteps(steps, step.id),
1186
+ fields: chunk4RMI6D64_cjs.runFields(workflow),
1187
1187
  people,
1188
1188
  tags,
1189
1189
  documents
@@ -1204,7 +1204,7 @@ function StepInspector({
1204
1204
  )
1205
1205
  );
1206
1206
  };
1207
- const deps = chunkEZLZ3MDU_cjs.stepDependencies(steps, step.id);
1207
+ const deps = chunk4RMI6D64_cjs.stepDependencies(steps, step.id);
1208
1208
  const titleOf = (id) => steps.find((s) => s.id === id)?.title ?? id;
1209
1209
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", "data-testid": `${testId}-step`, children: [
1210
1210
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-2", children: [
@@ -1285,7 +1285,7 @@ function StepInspector({
1285
1285
  {
1286
1286
  step,
1287
1287
  workflows,
1288
- fields: chunkEZLZ3MDU_cjs.runFields(workflow).map((f) => f.name),
1288
+ fields: chunk4RMI6D64_cjs.runFields(workflow).map((f) => f.name),
1289
1289
  patch,
1290
1290
  l,
1291
1291
  testId
@@ -1346,7 +1346,7 @@ function StepInspector({
1346
1346
  testId: `${testId}-review-grid`
1347
1347
  }
1348
1348
  ),
1349
- chunkEZLZ3MDU_cjs.canAssign(step) && /* @__PURE__ */ jsxRuntime.jsx(AssigneeSettings, { step, patch, ctx, l: al, testId }),
1349
+ chunk4RMI6D64_cjs.canAssign(step) && /* @__PURE__ */ jsxRuntime.jsx(AssigneeSettings, { step, patch, ctx, l: al, testId }),
1350
1350
  /* @__PURE__ */ jsxRuntime.jsx(
1351
1351
  SignalsEditor,
1352
1352
  {
@@ -1612,7 +1612,7 @@ function triggerFields(trigger, clearOthers) {
1612
1612
  return {
1613
1613
  timezone: trigger.timezone,
1614
1614
  rrule: trigger.start === "repeat" ? trigger.rrule.trim() : none,
1615
- run_at: trigger.start === "once" ? chunkTL5VXRNT_cjs.localInputToIso(trigger.runAt) : none,
1615
+ run_at: trigger.start === "once" ? chunk52GITM4V_cjs.localInputToIso(trigger.runAt) : none,
1616
1616
  event_kind: trigger.start === "event" ? trigger.eventKind.trim() : none,
1617
1617
  // A step signal is `workflow_signal` narrowed to one signal name.
1618
1618
  event_filter: filter ?? none,
@@ -1628,7 +1628,7 @@ function plan(value, options) {
1628
1628
  criteria: [],
1629
1629
  max_passes: 3,
1630
1630
  documents: [],
1631
- steps: chunkTL5VXRNT_cjs.toPlanSteps(value.workflow, options)
1631
+ steps: chunk52GITM4V_cjs.toPlanSteps(value.workflow, options)
1632
1632
  };
1633
1633
  }
1634
1634
  function builderToWorkflowRequest(value, workspaceId, options = {}) {
@@ -1663,7 +1663,7 @@ function builderToWorkflowUpdate(value, options = {}) {
1663
1663
  }
1664
1664
  function workflowRecordToBuilder(record) {
1665
1665
  const planned = record.plan?.steps ?? [];
1666
- const steps = planned.length ? chunkTL5VXRNT_cjs.fromPlanSteps(planned) : record.prompt || record.skill_ref ? [
1666
+ const steps = planned.length ? chunk52GITM4V_cjs.fromPlanSteps(planned) : record.prompt || record.skill_ref ? [
1667
1667
  {
1668
1668
  id: "work",
1669
1669
  kind: "agent",
@@ -1671,7 +1671,7 @@ function workflowRecordToBuilder(record) {
1671
1671
  ...record.skill_ref ? { workflow: record.skill_ref } : { run: { kind: "prompt", promptTemplate: record.prompt } }
1672
1672
  }
1673
1673
  ] : [];
1674
- const when = chunkTL5VXRNT_cjs.workflowWhen(record);
1674
+ const when = chunk52GITM4V_cjs.workflowWhen(record);
1675
1675
  return {
1676
1676
  workflow: {
1677
1677
  id: record.external_id,
@@ -1680,12 +1680,12 @@ function workflowRecordToBuilder(record) {
1680
1680
  inputs: [],
1681
1681
  landing: "chat",
1682
1682
  schedulable: false,
1683
- run: { kind: "steps", steps, layout: chunkTL5VXRNT_cjs.layoutFromPlanSteps(planned ?? []) }
1683
+ run: { kind: "steps", steps, layout: chunk52GITM4V_cjs.layoutFromPlanSteps(planned ?? []) }
1684
1684
  },
1685
1685
  trigger: {
1686
1686
  ...DEFAULT_WORKFLOW_TRIGGER,
1687
1687
  start: when === "now" ? "manual" : when,
1688
- runAt: chunkTL5VXRNT_cjs.isoToLocalInput(record.run_at),
1688
+ runAt: chunk52GITM4V_cjs.isoToLocalInput(record.run_at),
1689
1689
  rrule: record.rrule ?? "",
1690
1690
  timezone: record.timezone || DEFAULT_WORKFLOW_TRIGGER.timezone,
1691
1691
  eventKind: record.event_kind ?? "",
@@ -1741,7 +1741,7 @@ function triggerSummary(trigger, options = {}) {
1741
1741
  case "once":
1742
1742
  return trigger.runAt ? new Date(trigger.runAt).toLocaleString() : l.starts.once;
1743
1743
  case "repeat":
1744
- return trigger.rrule ? chunkTL5VXRNT_cjs.describeRRule(trigger.rrule) : l.starts.repeat;
1744
+ return trigger.rrule ? chunk52GITM4V_cjs.describeRRule(trigger.rrule) : l.starts.repeat;
1745
1745
  case "event":
1746
1746
  if (isSignalTrigger(trigger))
1747
1747
  return trigger.signal ? l.signalSummary.replace("{signal}", trigger.signal) : l.stepSignals;
@@ -1800,7 +1800,7 @@ function TriggerInspector({
1800
1800
  }
1801
1801
  )
1802
1802
  ] }),
1803
- trigger.start === "repeat" && /* @__PURE__ */ jsxRuntime.jsx(chunkTL5VXRNT_cjs.RecurrenceBuilder, { rrule: trigger.rrule, onChange: (rrule) => set({ rrule }) }),
1803
+ trigger.start === "repeat" && /* @__PURE__ */ jsxRuntime.jsx(chunk52GITM4V_cjs.RecurrenceBuilder, { rrule: trigger.rrule, onChange: (rrule) => set({ rrule }) }),
1804
1804
  trigger.start === "event" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
1805
1805
  /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { className: "text-xs", children: l.event }),
1806
1806
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1852,7 +1852,7 @@ function TriggerInspector({
1852
1852
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
1853
1853
  /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { className: "text-xs", children: l.agent }),
1854
1854
  /* @__PURE__ */ jsxRuntime.jsx(
1855
- chunkF5T4R7CN_cjs.AgentSelect,
1855
+ chunkWY626DNG_cjs.AgentSelect,
1856
1856
  {
1857
1857
  agents,
1858
1858
  value: trigger.agentId,
@@ -1920,7 +1920,7 @@ function revealCenter(node, view, frame, reserveRight = 0) {
1920
1920
  };
1921
1921
  }
1922
1922
  var DEFAULT_WORKFLOW_CANVAS_LABELS = {
1923
- ...chunkEZLZ3MDU_cjs.DEFAULT_STEP_KIND_LABELS,
1923
+ ...chunk4RMI6D64_cjs.DEFAULT_STEP_KIND_LABELS,
1924
1924
  redline: "Tracked changes",
1925
1925
  branch: "Branch",
1926
1926
  kindHints: {
@@ -1951,7 +1951,7 @@ var DEFAULT_WORKFLOW_CANVAS_LABELS = {
1951
1951
  fitView: "Fit view"
1952
1952
  };
1953
1953
  var TRIGGER_NODE = "__trigger";
1954
- var KINDS = chunkEZLZ3MDU_cjs.WORKFLOW_STEP_KINDS;
1954
+ var KINDS = chunk4RMI6D64_cjs.WORKFLOW_STEP_KINDS;
1955
1955
  function AddNext({
1956
1956
  from,
1957
1957
  onAdd,
@@ -1973,7 +1973,7 @@ function AddNext({
1973
1973
  /* @__PURE__ */ jsxRuntime.jsxs(ui.PopoverContent, { side: "right", align: "start", className: "w-60 p-1.5", children: [
1974
1974
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-2 pb-1 pt-0.5 text-xs font-medium text-muted-foreground", children: l.addNext }),
1975
1975
  KINDS.map((kind) => {
1976
- const Icon = chunkEZLZ3MDU_cjs.STEP_KIND_ICONS[kind];
1976
+ const Icon = chunk4RMI6D64_cjs.STEP_KIND_ICONS[kind];
1977
1977
  return /* @__PURE__ */ jsxRuntime.jsxs(
1978
1978
  "button",
1979
1979
  {
@@ -2012,8 +2012,8 @@ function PhaseMark({ phase }) {
2012
2012
  }
2013
2013
  function StepNode({ data }) {
2014
2014
  const { step, phase, summary, assignee, icon, l, onAdd, testId } = data;
2015
- const kind = chunkEZLZ3MDU_cjs.stepKindOf(step);
2016
- const KindIcon = chunkEZLZ3MDU_cjs.STEP_KIND_ICONS[kind];
2015
+ const kind = chunk4RMI6D64_cjs.stepKindOf(step);
2016
+ const KindIcon = chunk4RMI6D64_cjs.STEP_KIND_ICONS[kind];
2017
2017
  const redline = step.kind === "agent" && !!step.editDocument;
2018
2018
  return /* @__PURE__ */ jsxRuntime.jsxs(
2019
2019
  "div",
@@ -2147,12 +2147,12 @@ function WorkflowCanvas({
2147
2147
  testId = "workflow-canvas"
2148
2148
  }) {
2149
2149
  const l = react.useMemo(() => ({ ...DEFAULT_WORKFLOW_CANVAS_LABELS, ...labels }), [labels]);
2150
- const steps = chunkEZLZ3MDU_cjs.workflowSteps(workflow);
2150
+ const steps = chunk4RMI6D64_cjs.workflowSteps(workflow);
2151
2151
  const editable = !!onChange;
2152
2152
  const built = react.useMemo(() => {
2153
2153
  const layout = layoutWithDefaults(workflow);
2154
- const all = chunkEZLZ3MDU_cjs.workflowSteps(workflow);
2155
- const roots = all.filter((s) => chunkEZLZ3MDU_cjs.stepDependencies(all, s.id).length === 0);
2154
+ const all = chunk4RMI6D64_cjs.workflowSteps(workflow);
2155
+ const roots = all.filter((s) => chunk4RMI6D64_cjs.stepDependencies(all, s.id).length === 0);
2156
2156
  const triggerNode = trigger ? [
2157
2157
  {
2158
2158
  id: TRIGGER_NODE,
@@ -2201,7 +2201,7 @@ function WorkflowCanvas({
2201
2201
  react.useEffect(() => setNodes(built), [built]);
2202
2202
  const edges = react.useMemo(
2203
2203
  () => steps.flatMap((s) => {
2204
- const deps = chunkEZLZ3MDU_cjs.stepDependencies(steps, s.id);
2204
+ const deps = chunk4RMI6D64_cjs.stepDependencies(steps, s.id);
2205
2205
  const from = deps.length ? deps : trigger ? [TRIGGER_NODE] : [];
2206
2206
  return from.map((d) => ({
2207
2207
  id: `${d}->${s.id}`,
@@ -2371,7 +2371,7 @@ function WorkflowCanvas({
2371
2371
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-semibold", children: l.emptyTitle }),
2372
2372
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: l.emptyHint }),
2373
2373
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3 grid grid-cols-2 gap-2", children: KINDS.map((kind) => {
2374
- const Icon = chunkEZLZ3MDU_cjs.STEP_KIND_ICONS[kind];
2374
+ const Icon = chunk4RMI6D64_cjs.STEP_KIND_ICONS[kind];
2375
2375
  return /* @__PURE__ */ jsxRuntime.jsxs(
2376
2376
  "button",
2377
2377
  {
@@ -2421,7 +2421,7 @@ var DEFAULT_WORKFLOW_BUILDER_LABELS = {
2421
2421
  }
2422
2422
  };
2423
2423
  var PANEL_WIDTH = 344;
2424
- var KINDS2 = chunkEZLZ3MDU_cjs.WORKFLOW_STEP_KINDS;
2424
+ var KINDS2 = chunk4RMI6D64_cjs.WORKFLOW_STEP_KINDS;
2425
2425
  function WorkflowBuilder({
2426
2426
  value,
2427
2427
  onChange,
@@ -2453,12 +2453,12 @@ function WorkflowBuilder({
2453
2453
  const [mode, setMode] = react.useState("design");
2454
2454
  const [adding, setAdding] = react.useState(false);
2455
2455
  const { workflow, trigger } = value;
2456
- const steps = chunkEZLZ3MDU_cjs.workflowSteps(workflow);
2457
- const problems = chunkEZLZ3MDU_cjs.validateWorkflowGraph(steps);
2458
- const missing = chunkEZLZ3MDU_cjs.stepConfigProblems(steps);
2456
+ const steps = chunk4RMI6D64_cjs.workflowSteps(workflow);
2457
+ const problems = chunk4RMI6D64_cjs.validateWorkflowGraph(steps);
2458
+ const missing = chunk4RMI6D64_cjs.stepConfigProblems(steps);
2459
2459
  const nameOf = (id) => people.find((p) => p.value === id)?.label;
2460
- const fields = chunkEZLZ3MDU_cjs.runFields(workflow);
2461
- const assigneeOf = (step) => chunkEZLZ3MDU_cjs.canAssign(step) ? chunkEZLZ3MDU_cjs.assigneeName(step.assignee, { nameOf, fields }) : void 0;
2460
+ const fields = chunk4RMI6D64_cjs.runFields(workflow);
2461
+ const assigneeOf = (step) => chunk4RMI6D64_cjs.canAssign(step) ? chunk4RMI6D64_cjs.assigneeName(step.assignee, { nameOf, fields }) : void 0;
2462
2462
  const titles = react.useMemo(() => new Map(workflows.map((w) => [w.id, w.title])), [workflows]);
2463
2463
  const setWorkflow = (next) => onChange({ ...value, workflow: next });
2464
2464
  const addAfter = (from, kind) => {
@@ -2527,7 +2527,7 @@ function WorkflowBuilder({
2527
2527
  l.addStep
2528
2528
  ] }) }),
2529
2529
  /* @__PURE__ */ jsxRuntime.jsx(ui.PopoverContent, { align: "start", className: "w-64 p-1.5", children: KINDS2.map((kind) => {
2530
- const Icon = chunkEZLZ3MDU_cjs.STEP_KIND_ICONS[kind];
2530
+ const Icon = chunk4RMI6D64_cjs.STEP_KIND_ICONS[kind];
2531
2531
  const cls = { ...DEFAULT_WORKFLOW_CANVAS_LABELS, ...canvasLabels };
2532
2532
  return /* @__PURE__ */ jsxRuntime.jsxs(
2533
2533
  "button",
@@ -2689,13 +2689,13 @@ function WorkflowPreview({
2689
2689
  renderIcon,
2690
2690
  testId
2691
2691
  }) {
2692
- const run = chunkWBBUUEER_cjs.useWorkflowPreview(workflow, {
2692
+ const run = chunkSQAVWMGV_cjs.useWorkflowPreview(workflow, {
2693
2693
  resolveWorkflow: (id) => workflows.find((w) => w.id === id),
2694
2694
  compose,
2695
2695
  answer
2696
2696
  });
2697
2697
  return /* @__PURE__ */ jsxRuntime.jsx(
2698
- chunkTL5VXRNT_cjs.WorkflowRunner,
2698
+ chunk52GITM4V_cjs.WorkflowRunner,
2699
2699
  {
2700
2700
  workflow,
2701
2701
  run,
@@ -2817,7 +2817,7 @@ function ConnectedWorkflowBuilder({
2817
2817
  }));
2818
2818
  const tasks = conversations.filter((c) => c.status && c.status !== "done").map((c) => ({ value: c.external_id, label: c.title || l.untitledTask }));
2819
2819
  const options = { resolveWorkflow: (wid) => workflows.find((w) => w.id === wid), compose };
2820
- const problem = triggerProblem(value.trigger) ?? (chunkEZLZ3MDU_cjs.validateWorkflowGraph(chunkEZLZ3MDU_cjs.workflowSteps(value.workflow)).length || chunkEZLZ3MDU_cjs.stepConfigProblems(chunkEZLZ3MDU_cjs.workflowSteps(value.workflow)).length ? "graph" : null);
2820
+ const problem = triggerProblem(value.trigger) ?? (chunk4RMI6D64_cjs.validateWorkflowGraph(chunk4RMI6D64_cjs.workflowSteps(value.workflow)).length || chunk4RMI6D64_cjs.stepConfigProblems(chunk4RMI6D64_cjs.workflowSteps(value.workflow)).length ? "graph" : null);
2821
2821
  const busy = !!pending || create.isPending || update.isPending || run.isPending;
2822
2822
  const save = async () => {
2823
2823
  if (!workspaceId) return void 0;