@arbidocs/blocks 0.5.1 → 0.5.3

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 (169) hide show
  1. package/dist/{ConnectedCallDock-74BBCKXO.js → ConnectedCallDock-GY7CTNJT.js} +11 -11
  2. package/dist/{ConnectedCallDock-74BBCKXO.js.map → ConnectedCallDock-GY7CTNJT.js.map} +1 -1
  3. package/dist/{ConnectedCallDock-7O6VPYVI.cjs → ConnectedCallDock-SJGJDFPB.cjs} +20 -20
  4. package/dist/{ConnectedCallDock-7O6VPYVI.cjs.map → ConnectedCallDock-SJGJDFPB.cjs.map} +1 -1
  5. package/dist/{ConnectedCallRoom-2HCE5YD2.cjs → ConnectedCallRoom-FRHLPH7N.cjs} +12 -12
  6. package/dist/{ConnectedCallRoom-2HCE5YD2.cjs.map → ConnectedCallRoom-FRHLPH7N.cjs.map} +1 -1
  7. package/dist/{ConnectedCallRoom-KAHBN5KO.js → ConnectedCallRoom-SAPQSOT2.js} +11 -11
  8. package/dist/{ConnectedCallRoom-KAHBN5KO.js.map → ConnectedCallRoom-SAPQSOT2.js.map} +1 -1
  9. package/dist/{ConnectedNativeDocxComparison-A7PMTYD7.cjs → ConnectedNativeDocxComparison-7CSRYT24.cjs} +11 -11
  10. package/dist/{ConnectedNativeDocxComparison-A7PMTYD7.cjs.map → ConnectedNativeDocxComparison-7CSRYT24.cjs.map} +1 -1
  11. package/dist/{ConnectedNativeDocxComparison-CWEW7GV3.js → ConnectedNativeDocxComparison-E4I5FOVX.js} +10 -10
  12. package/dist/{ConnectedNativeDocxComparison-CWEW7GV3.js.map → ConnectedNativeDocxComparison-E4I5FOVX.js.map} +1 -1
  13. package/dist/{ConnectedNativeDocxEditor-6EBF7U4E.js → ConnectedNativeDocxEditor-7WRXTLMN.js} +9 -9
  14. package/dist/{ConnectedNativeDocxEditor-6EBF7U4E.js.map → ConnectedNativeDocxEditor-7WRXTLMN.js.map} +1 -1
  15. package/dist/{ConnectedNativeDocxEditor-IWXEOAIF.cjs → ConnectedNativeDocxEditor-YGV2D2VD.cjs} +11 -11
  16. package/dist/{ConnectedNativeDocxEditor-IWXEOAIF.cjs.map → ConnectedNativeDocxEditor-YGV2D2VD.cjs.map} +1 -1
  17. package/dist/{ConnectedStreamedWordArtifact-WRGCCU5H.cjs → ConnectedStreamedWordArtifact-DTCG4EGG.cjs} +11 -11
  18. package/dist/ConnectedStreamedWordArtifact-DTCG4EGG.cjs.map +1 -0
  19. package/dist/{ConnectedStreamedWordArtifact-27ISQYHI.js → ConnectedStreamedWordArtifact-N6EWJNLW.js} +10 -10
  20. package/dist/ConnectedStreamedWordArtifact-N6EWJNLW.js.map +1 -0
  21. package/dist/NativeDocxEditor-ATPL3Q3O.js +1 -1
  22. package/dist/NativeDocxEditor-R4EIHWNL.cjs +1 -1
  23. package/dist/{WorkspaceTableView-FROHEPCT.cjs → WorkspaceTableView-LY2ATQQV.cjs} +9 -9
  24. package/dist/{WorkspaceTableView-FROHEPCT.cjs.map → WorkspaceTableView-LY2ATQQV.cjs.map} +1 -1
  25. package/dist/{WorkspaceTableView-3TIMUU2J.js → WorkspaceTableView-PKNWJ7R4.js} +7 -7
  26. package/dist/{WorkspaceTableView-3TIMUU2J.js.map → WorkspaceTableView-PKNWJ7R4.js.map} +1 -1
  27. package/dist/agents/index.cjs +330 -330
  28. package/dist/agents/index.js +8 -8
  29. package/dist/calls/index.cjs +135 -135
  30. package/dist/calls/index.js +11 -11
  31. package/dist/chat/index.cjs +84 -84
  32. package/dist/chat/index.js +4 -4
  33. package/dist/{chunk-3XA7EDPS.cjs → chunk-2COVCCQI.cjs} +20 -20
  34. package/dist/{chunk-3XA7EDPS.cjs.map → chunk-2COVCCQI.cjs.map} +1 -1
  35. package/dist/{chunk-IFE4MZXD.js → chunk-3H4UW7A2.js} +3 -3
  36. package/dist/{chunk-IFE4MZXD.js.map → chunk-3H4UW7A2.js.map} +1 -1
  37. package/dist/{chunk-LPUQHIVP.cjs → chunk-3VW7ZXQ6.cjs} +4 -4
  38. package/dist/{chunk-LPUQHIVP.cjs.map → chunk-3VW7ZXQ6.cjs.map} +1 -1
  39. package/dist/{chunk-4KMYUM7Q.cjs → chunk-3Y5SJU72.cjs} +5 -5
  40. package/dist/{chunk-4KMYUM7Q.cjs.map → chunk-3Y5SJU72.cjs.map} +1 -1
  41. package/dist/{chunk-5D32XL3E.cjs → chunk-44NNWY5A.cjs} +4 -4
  42. package/dist/{chunk-5D32XL3E.cjs.map → chunk-44NNWY5A.cjs.map} +1 -1
  43. package/dist/{chunk-HJQLVCIK.cjs → chunk-6BBZP4ES.cjs} +3 -3
  44. package/dist/{chunk-HJQLVCIK.cjs.map → chunk-6BBZP4ES.cjs.map} +1 -1
  45. package/dist/{chunk-OD3UJ7XR.js → chunk-7BRFJQM3.js} +3 -3
  46. package/dist/{chunk-OD3UJ7XR.js.map → chunk-7BRFJQM3.js.map} +1 -1
  47. package/dist/{chunk-2BNWISLH.cjs → chunk-A6HE5SC6.cjs} +4 -4
  48. package/dist/{chunk-2BNWISLH.cjs.map → chunk-A6HE5SC6.cjs.map} +1 -1
  49. package/dist/{chunk-34LBKTII.js → chunk-ALPP65FF.js} +4 -4
  50. package/dist/{chunk-34LBKTII.js.map → chunk-ALPP65FF.js.map} +1 -1
  51. package/dist/{chunk-ZSW6FZG5.cjs → chunk-AR6RMAYK.cjs} +10 -10
  52. package/dist/{chunk-ZSW6FZG5.cjs.map → chunk-AR6RMAYK.cjs.map} +1 -1
  53. package/dist/{chunk-HTOYFP3D.js → chunk-BBWTXMGX.js} +6 -6
  54. package/dist/{chunk-HTOYFP3D.js.map → chunk-BBWTXMGX.js.map} +1 -1
  55. package/dist/{chunk-BWKBLCWC.js → chunk-BGM2HN2A.js} +5 -5
  56. package/dist/{chunk-BWKBLCWC.js.map → chunk-BGM2HN2A.js.map} +1 -1
  57. package/dist/{chunk-BKNHCORH.js → chunk-CKPF2Z5Q.js} +3 -3
  58. package/dist/{chunk-BKNHCORH.js.map → chunk-CKPF2Z5Q.js.map} +1 -1
  59. package/dist/{chunk-MDFXGRLY.cjs → chunk-CNVXXZ46.cjs} +9 -9
  60. package/dist/{chunk-MDFXGRLY.cjs.map → chunk-CNVXXZ46.cjs.map} +1 -1
  61. package/dist/{chunk-XSA46YJV.js → chunk-DBY5MDKA.js} +3 -3
  62. package/dist/{chunk-XSA46YJV.js.map → chunk-DBY5MDKA.js.map} +1 -1
  63. package/dist/{chunk-KJXJRX33.js → chunk-DDCMLHXF.js} +4 -4
  64. package/dist/chunk-DDCMLHXF.js.map +1 -0
  65. package/dist/{chunk-ZAVEMQ37.cjs → chunk-DWZXSPMB.cjs} +3 -3
  66. package/dist/{chunk-ZAVEMQ37.cjs.map → chunk-DWZXSPMB.cjs.map} +1 -1
  67. package/dist/{chunk-NHY4AKA4.js → chunk-EFFHKEC4.js} +4 -4
  68. package/dist/{chunk-NHY4AKA4.js.map → chunk-EFFHKEC4.js.map} +1 -1
  69. package/dist/{chunk-J6JED6TA.cjs → chunk-EWSZIZVN.cjs} +50 -50
  70. package/dist/{chunk-J6JED6TA.cjs.map → chunk-EWSZIZVN.cjs.map} +1 -1
  71. package/dist/{chunk-CSUKLEQH.js → chunk-EZRXRCQT.js} +3 -3
  72. package/dist/{chunk-CSUKLEQH.js.map → chunk-EZRXRCQT.js.map} +1 -1
  73. package/dist/{chunk-2RSUVU5V.js → chunk-F2UTXERG.js} +3 -3
  74. package/dist/{chunk-2RSUVU5V.js.map → chunk-F2UTXERG.js.map} +1 -1
  75. package/dist/{chunk-NNPFFPBF.js → chunk-FGGACOGH.js} +3 -3
  76. package/dist/{chunk-NNPFFPBF.js.map → chunk-FGGACOGH.js.map} +1 -1
  77. package/dist/{chunk-R5YS2UZ3.cjs → chunk-GGVTPFUB.cjs} +3 -3
  78. package/dist/{chunk-R5YS2UZ3.cjs.map → chunk-GGVTPFUB.cjs.map} +1 -1
  79. package/dist/{chunk-DRLRR44Q.js → chunk-H3V7TTKK.js} +6 -6
  80. package/dist/{chunk-DRLRR44Q.js.map → chunk-H3V7TTKK.js.map} +1 -1
  81. package/dist/{chunk-7GAS4N7L.js → chunk-HI3XOW5W.js} +3 -3
  82. package/dist/{chunk-7GAS4N7L.js.map → chunk-HI3XOW5W.js.map} +1 -1
  83. package/dist/{chunk-RMLU363Q.cjs → chunk-IRV3CE3M.cjs} +4 -4
  84. package/dist/{chunk-RMLU363Q.cjs.map → chunk-IRV3CE3M.cjs.map} +1 -1
  85. package/dist/{chunk-LHWKA2XI.cjs → chunk-JNOMGRKB.cjs} +3 -3
  86. package/dist/{chunk-LHWKA2XI.cjs.map → chunk-JNOMGRKB.cjs.map} +1 -1
  87. package/dist/{chunk-XHJAYCPQ.js → chunk-JTJCCL2E.js} +3 -3
  88. package/dist/{chunk-XHJAYCPQ.js.map → chunk-JTJCCL2E.js.map} +1 -1
  89. package/dist/{chunk-QE7MS7NA.js → chunk-KMIDM6BP.js} +4 -4
  90. package/dist/{chunk-QE7MS7NA.js.map → chunk-KMIDM6BP.js.map} +1 -1
  91. package/dist/{chunk-32W6STZ2.cjs → chunk-MKDUGIEH.cjs} +5 -5
  92. package/dist/{chunk-32W6STZ2.cjs.map → chunk-MKDUGIEH.cjs.map} +1 -1
  93. package/dist/{chunk-4MQKXHMC.js → chunk-NACDM6WA.js} +3 -3
  94. package/dist/{chunk-4MQKXHMC.js.map → chunk-NACDM6WA.js.map} +1 -1
  95. package/dist/{chunk-VMXLNBHF.js → chunk-NGKCVBS2.js} +3 -3
  96. package/dist/{chunk-VMXLNBHF.js.map → chunk-NGKCVBS2.js.map} +1 -1
  97. package/dist/{chunk-QEE4DOEU.cjs → chunk-PTY7E22L.cjs} +15 -15
  98. package/dist/{chunk-QEE4DOEU.cjs.map → chunk-PTY7E22L.cjs.map} +1 -1
  99. package/dist/{chunk-26EQQQBX.js → chunk-QRNZYYF3.js} +7 -7
  100. package/dist/{chunk-26EQQQBX.js.map → chunk-QRNZYYF3.js.map} +1 -1
  101. package/dist/{chunk-PAW2PC2M.cjs → chunk-RHYFUBYS.cjs} +75 -75
  102. package/dist/{chunk-PAW2PC2M.cjs.map → chunk-RHYFUBYS.cjs.map} +1 -1
  103. package/dist/{chunk-BMFXDDJG.cjs → chunk-RSIYQNV6.cjs} +7 -7
  104. package/dist/{chunk-BMFXDDJG.cjs.map → chunk-RSIYQNV6.cjs.map} +1 -1
  105. package/dist/{chunk-AU6ZSYW6.js → chunk-SM774TX7.js} +3 -3
  106. package/dist/{chunk-AU6ZSYW6.js.map → chunk-SM774TX7.js.map} +1 -1
  107. package/dist/{chunk-JBG5MFVX.cjs → chunk-TRGBOGMU.cjs} +5 -5
  108. package/dist/{chunk-JBG5MFVX.cjs.map → chunk-TRGBOGMU.cjs.map} +1 -1
  109. package/dist/{chunk-LDRHUYRE.cjs → chunk-U4DNZENJ.cjs} +9 -9
  110. package/dist/{chunk-LDRHUYRE.cjs.map → chunk-U4DNZENJ.cjs.map} +1 -1
  111. package/dist/{chunk-ECERC6TI.js → chunk-VHJHY7TT.js} +3 -3
  112. package/dist/{chunk-ECERC6TI.js.map → chunk-VHJHY7TT.js.map} +1 -1
  113. package/dist/{chunk-UIZZFZ5Z.cjs → chunk-XAS4VRBY.cjs} +3 -3
  114. package/dist/{chunk-UIZZFZ5Z.cjs.map → chunk-XAS4VRBY.cjs.map} +1 -1
  115. package/dist/{chunk-YSNQWUQQ.js → chunk-XKQG6QSZ.js} +4 -4
  116. package/dist/{chunk-YSNQWUQQ.js.map → chunk-XKQG6QSZ.js.map} +1 -1
  117. package/dist/{chunk-WT2AGQYY.cjs → chunk-Y3ZEQVBP.cjs} +4 -4
  118. package/dist/{chunk-WT2AGQYY.cjs.map → chunk-Y3ZEQVBP.cjs.map} +1 -1
  119. package/dist/{chunk-2WKAUDZZ.js → chunk-YAJSGPGV.js} +3 -3
  120. package/dist/{chunk-2WKAUDZZ.js.map → chunk-YAJSGPGV.js.map} +1 -1
  121. package/dist/{chunk-QK2HR3LC.js → chunk-YTB7JUKU.js} +5 -5
  122. package/dist/{chunk-QK2HR3LC.js.map → chunk-YTB7JUKU.js.map} +1 -1
  123. package/dist/{chunk-IFAIUKQQ.cjs → chunk-YZMTUJEE.cjs} +4 -4
  124. package/dist/{chunk-IFAIUKQQ.cjs.map → chunk-YZMTUJEE.cjs.map} +1 -1
  125. package/dist/{chunk-OK3UJMO4.cjs → chunk-Z2XZ2D4N.cjs} +4 -4
  126. package/dist/chunk-Z2XZ2D4N.cjs.map +1 -0
  127. package/dist/{chunk-DAEDRTIN.cjs → chunk-Z6MKHM6V.cjs} +4 -4
  128. package/dist/{chunk-DAEDRTIN.cjs.map → chunk-Z6MKHM6V.cjs.map} +1 -1
  129. package/dist/collaboration/index.cjs +68 -68
  130. package/dist/collaboration/index.js +2 -2
  131. package/dist/connect/docx.cjs +13 -13
  132. package/dist/connect/docx.js +9 -9
  133. package/dist/connect/index.cjs +1121 -1037
  134. package/dist/connect/index.cjs.map +1 -1
  135. package/dist/connect/index.js +201 -117
  136. package/dist/connect/index.js.map +1 -1
  137. package/dist/connect/viewer.cjs +75 -75
  138. package/dist/connect/viewer.js +14 -14
  139. package/dist/connection/files/grid/documentGridBus.d.ts +12 -10
  140. package/dist/connection/messenger/ConnectedChatThread.d.ts +3 -1
  141. package/dist/connection/messenger/ConnectedMessenger.d.ts +21 -3
  142. package/dist/document-tools/index.cjs +20 -20
  143. package/dist/document-tools/index.js +3 -3
  144. package/dist/docx/index.cjs +1 -1
  145. package/dist/docx/index.js +1 -1
  146. package/dist/facts/index.cjs +58 -58
  147. package/dist/facts/index.js +6 -6
  148. package/dist/files/index.cjs +224 -224
  149. package/dist/files/index.js +4 -4
  150. package/dist/home/index.cjs +30 -30
  151. package/dist/home/index.js +5 -5
  152. package/dist/index.cjs +598 -598
  153. package/dist/index.js +16 -16
  154. package/dist/retrieval/index.cjs +1 -1
  155. package/dist/retrieval/index.js +1 -1
  156. package/dist/settings/index.cjs +159 -159
  157. package/dist/settings/index.js +4 -4
  158. package/dist/shell/index.cjs +2 -2
  159. package/dist/shell/index.js +2 -2
  160. package/dist/studio/index.cjs +6 -6
  161. package/dist/studio/index.js +5 -5
  162. package/dist/workflow-canvas/index.cjs +21 -21
  163. package/dist/workflow-canvas/index.js +8 -8
  164. package/node_modules/@arbidocs/coedit/package.json +1 -1
  165. package/package.json +5 -5
  166. package/dist/ConnectedStreamedWordArtifact-27ISQYHI.js.map +0 -1
  167. package/dist/ConnectedStreamedWordArtifact-WRGCCU5H.cjs.map +0 -1
  168. package/dist/chunk-KJXJRX33.js.map +0 -1
  169. package/dist/chunk-OK3UJMO4.cjs.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, WelcomeProjectPicker, WorkOfflineToggle, applyInvertedIndexFilter, applyTriStateFilters, buildInvertedIndex, formatSessionTtl, resolveSettingsSection, serverConnectionView, toActiveSessionViews, toDeleteBlockerViews, toLogoutSessionViews, toNotificationCategories } from '../chunk-NHY4AKA4.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, WelcomeProjectPicker, WorkOfflineToggle, applyInvertedIndexFilter, applyTriStateFilters, buildInvertedIndex, formatSessionTtl, resolveSettingsSection, serverConnectionView, toActiveSessionViews, toDeleteBlockerViews, toLogoutSessionViews, toNotificationCategories } from '../chunk-EFFHKEC4.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-2R3GGNPA.js';
5
5
  import '../chunk-66TA5IBN.js';
@@ -8,13 +8,13 @@ export { MultiSelect } from '../chunk-CQCC7LE7.js';
8
8
  export { DEFAULT_DOCUMENT_PICKER_LABELS, DEFAULT_TRI_STATE_FILTER_MENU_LABELS, DocumentPicker, TriStateFilterMenu } from '../chunk-NUSBINUM.js';
9
9
  import '../chunk-5LXQPP2K.js';
10
10
  import '../chunk-VILAPTCB.js';
11
- export { ConfirmDialog, DEFAULT_CONFIRM_DIALOG_LABELS } from '../chunk-ECERC6TI.js';
11
+ export { ConfirmDialog, DEFAULT_CONFIRM_DIALOG_LABELS } from '../chunk-VHJHY7TT.js';
12
12
  import '../chunk-ABEKUV6L.js';
13
- export { MODAL_SECTION_TITLE_CLASS, ModalHeader, ModalScaffold, ModalSection, ModalSectionTitle } from '../chunk-TX2ZICS7.js';
14
13
  import '../chunk-AUS3KBHJ.js';
15
14
  import '../chunk-NPLYHR2E.js';
16
- import '../chunk-OXF2IFXG.js';
17
15
  import '../chunk-7F6CBP3Z.js';
16
+ export { MODAL_SECTION_TITLE_CLASS, ModalHeader, ModalScaffold, ModalSection, ModalSectionTitle } from '../chunk-TX2ZICS7.js';
17
+ import '../chunk-OXF2IFXG.js';
18
18
  import '../chunk-VUNV25KB.js';
19
19
  //# sourceMappingURL=index.js.map
20
20
  //# sourceMappingURL=index.js.map
@@ -7,13 +7,13 @@ require('../chunk-AHDJXIUB.cjs');
7
7
  var chunk2EI7NCUA_cjs = require('../chunk-2EI7NCUA.cjs');
8
8
  require('../chunk-CNHLPFFK.cjs');
9
9
  var chunkMEMWZ72Y_cjs = require('../chunk-MEMWZ72Y.cjs');
10
- require('../chunk-25YFJLFP.cjs');
11
- require('../chunk-ULWRNGGE.cjs');
12
10
  var chunk5UHAWSEX_cjs = require('../chunk-5UHAWSEX.cjs');
13
11
  var chunkB6MVQCXW_cjs = require('../chunk-B6MVQCXW.cjs');
14
12
  var chunkFX3K6LNZ_cjs = require('../chunk-FX3K6LNZ.cjs');
15
13
  require('../chunk-PPCATBOY.cjs');
16
14
  require('../chunk-MHVNT4J3.cjs');
15
+ require('../chunk-25YFJLFP.cjs');
16
+ require('../chunk-ULWRNGGE.cjs');
17
17
  require('../chunk-DES3K4SD.cjs');
18
18
 
19
19
 
@@ -5,13 +5,13 @@ import '../chunk-RLWIUUQ5.js';
5
5
  export { DEFAULT_FILTER_FIELDS, DEFAULT_FILTER_INPUT_LABELS, FilterInput } from '../chunk-YU2KUMGE.js';
6
6
  import '../chunk-P2ZB2WTE.js';
7
7
  export { DEFAULT_TAB_HEADER_LABELS, TabHeader } from '../chunk-ABEKUV6L.js';
8
- import '../chunk-GKM4EOH7.js';
9
- import '../chunk-TX2ZICS7.js';
10
8
  export { DEFAULT_DOCK_WIDTH, Toaster } from '../chunk-OKERRHLH.js';
11
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';
12
10
  export { BREAKPOINT_QUERIES, useIsNarrow, useIsPhone, useIsTouchScreen, useMediaQuery } from '../chunk-SLSBJRWW.js';
13
11
  import '../chunk-NPLYHR2E.js';
14
12
  import '../chunk-7F6CBP3Z.js';
13
+ import '../chunk-GKM4EOH7.js';
14
+ import '../chunk-TX2ZICS7.js';
15
15
  import '../chunk-VUNV25KB.js';
16
16
  //# sourceMappingURL=index.js.map
17
17
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunk5D32XL3E_cjs = require('../chunk-5D32XL3E.cjs');
4
+ var chunk44NNWY5A_cjs = require('../chunk-44NNWY5A.cjs');
5
5
  var chunkIMTJFBDC_cjs = require('../chunk-IMTJFBDC.cjs');
6
6
  var chunkL4KWTDFE_cjs = require('../chunk-L4KWTDFE.cjs');
7
7
  var chunkELR74ME6_cjs = require('../chunk-ELR74ME6.cjs');
@@ -12,17 +12,17 @@ require('../chunk-CNHLPFFK.cjs');
12
12
  var chunkLMXMUWPA_cjs = require('../chunk-LMXMUWPA.cjs');
13
13
  require('../chunk-MB3S2ETI.cjs');
14
14
  var chunkZW6FPIFC_cjs = require('../chunk-ZW6FPIFC.cjs');
15
- var chunk25YFJLFP_cjs = require('../chunk-25YFJLFP.cjs');
16
- require('../chunk-ULWRNGGE.cjs');
17
- require('../chunk-LHWKA2XI.cjs');
15
+ require('../chunk-JNOMGRKB.cjs');
18
16
  require('../chunk-B6MVQCXW.cjs');
19
17
  require('../chunk-DHOIO3B7.cjs');
20
18
  require('../chunk-76L6LOP3.cjs');
21
19
  require('../chunk-32HW2Q33.cjs');
22
20
  require('../chunk-3Z3DWP3R.cjs');
23
21
  require('../chunk-PPCATBOY.cjs');
24
- var chunkKDG6FER6_cjs = require('../chunk-KDG6FER6.cjs');
25
22
  require('../chunk-MHVNT4J3.cjs');
23
+ var chunk25YFJLFP_cjs = require('../chunk-25YFJLFP.cjs');
24
+ require('../chunk-ULWRNGGE.cjs');
25
+ var chunkKDG6FER6_cjs = require('../chunk-KDG6FER6.cjs');
26
26
  require('../chunk-DES3K4SD.cjs');
27
27
  var lucideReact = require('lucide-react');
28
28
  var react$1 = require('@arbidocs/react');
@@ -886,7 +886,7 @@ function latestImageDocId(artifacts) {
886
886
  return null;
887
887
  }
888
888
  function useImageGen() {
889
- const task = chunk5D32XL3E_cjs.useConnectedAiTask();
889
+ const task = chunk44NNWY5A_cjs.useConnectedAiTask();
890
890
  const { run } = task;
891
891
  const generate = react.useCallback(
892
892
  async (prompt, referenceDocIds = []) => {
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { useConnectedAiTask } from '../chunk-7GAS4N7L.js';
2
+ import { useConnectedAiTask } from '../chunk-HI3XOW5W.js';
3
3
  import { PageHeader, MetricCard, DataTableBlock, StatGroup } from '../chunk-JANBEB7P.js';
4
4
  import { assetRefId, applyStoredTheme, AssetResolverProvider, ThemeEditor, applyThemeVars, tid, SectionHeading, PricingTable, Tabs as Tabs$1, Accordion, Gallery, VideoEmbed, ContactForm, Banner, MediaText, TeamGrid, Steps, TestimonialGrid, Columns, Spacer, Container, Hero, FeatureGrid, Testimonial, CTABanner, LogoCloud, FAQ, RichTextBlock, BlockImage, AvatarBlock, Navbar, Footer, ListBlock, isAssetRef, asAssetRef } from '../chunk-LH3JAZ33.js';
5
5
  export { ASSET_REF_PREFIX, AssetResolverProvider, asAssetRef, assetRefId, isAssetRef, useAssetRenderer, useAssetResolverActive } from '../chunk-LH3JAZ33.js';
@@ -11,17 +11,17 @@ import '../chunk-P2ZB2WTE.js';
11
11
  import { useConnection } from '../chunk-TXPOODAY.js';
12
12
  import '../chunk-T4P237N6.js';
13
13
  import { EmptyState } from '../chunk-P6GHJSLR.js';
14
- import { useBlocksEnvironment } from '../chunk-GKM4EOH7.js';
15
- import '../chunk-TX2ZICS7.js';
16
- import '../chunk-BKNHCORH.js';
14
+ import '../chunk-CKPF2Z5Q.js';
17
15
  import '../chunk-7XF5SFJ2.js';
18
16
  import '../chunk-3KZWRDPY.js';
19
17
  import '../chunk-TZGBRLPK.js';
20
18
  import '../chunk-AUS3KBHJ.js';
21
19
  import '../chunk-7CPOQPWR.js';
22
20
  import '../chunk-NPLYHR2E.js';
23
- import { formatCount } from '../chunk-OXF2IFXG.js';
24
21
  import '../chunk-7F6CBP3Z.js';
22
+ import { useBlocksEnvironment } from '../chunk-GKM4EOH7.js';
23
+ import '../chunk-TX2ZICS7.js';
24
+ import { formatCount } from '../chunk-OXF2IFXG.js';
25
25
  import '../chunk-VUNV25KB.js';
26
26
  import { MessageSquare, Cpu, Code, Cloud, Layers, Target, Award, MapPin, Phone, Mail, Lock, Globe, Heart, Star, Rocket, Shield, Zap, Sparkles, Gavel, Scale, Bell, Activity, BarChart3, DollarSign, TrendingUp, Info, AlertCircle, CheckCircle, Clock, Calendar, Briefcase, Users, Folder, FileText, ArrowLeft, Palette, Loader2, RotateCcw, ChevronUp, ChevronDown, BrainCircuit, Bot, LayoutGrid, FileJson, Download, Crop, ImagePlus, Upload, Link2, Check, MessagesSquare } from 'lucide-react';
27
27
  import { useArbi, useThumbnails, arbiQueryKeys, useConfigs, useAgents, useWorkspaceDocs, useAiTask, useDocuments, ImageCropModal, DEFAULT_ASPECT_OPTIONS, useConversations, refreshDocuments } from '@arbidocs/react';
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkJ6JED6TA_cjs = require('../chunk-J6JED6TA.cjs');
5
- var chunkQEE4DOEU_cjs = require('../chunk-QEE4DOEU.cjs');
4
+ var chunkEWSZIZVN_cjs = require('../chunk-EWSZIZVN.cjs');
5
+ var chunkPTY7E22L_cjs = require('../chunk-PTY7E22L.cjs');
6
6
  require('../chunk-RFIBUWLF.cjs');
7
- var chunkZSW6FZG5_cjs = require('../chunk-ZSW6FZG5.cjs');
8
- require('../chunk-UIZZFZ5Z.cjs');
7
+ var chunkAR6RMAYK_cjs = require('../chunk-AR6RMAYK.cjs');
8
+ require('../chunk-XAS4VRBY.cjs');
9
9
  require('../chunk-2VHYOTWW.cjs');
10
10
  require('../chunk-SIB6C7P7.cjs');
11
11
  require('../chunk-DVUZTGVL.cjs');
@@ -17,18 +17,18 @@ require('../chunk-C2CWWEHO.cjs');
17
17
  var chunk5DXTO7CE_cjs = require('../chunk-5DXTO7CE.cjs');
18
18
  var chunkLMXMUWPA_cjs = require('../chunk-LMXMUWPA.cjs');
19
19
  require('../chunk-MB3S2ETI.cjs');
20
- require('../chunk-MEMWZ72Y.cjs');
21
20
  require('../chunk-ZW6FPIFC.cjs');
22
- var chunk25YFJLFP_cjs = require('../chunk-25YFJLFP.cjs');
23
- require('../chunk-ULWRNGGE.cjs');
21
+ require('../chunk-MEMWZ72Y.cjs');
24
22
  var chunkDHOIO3B7_cjs = require('../chunk-DHOIO3B7.cjs');
25
23
  var chunk76L6LOP3_cjs = require('../chunk-76L6LOP3.cjs');
26
24
  var chunk32HW2Q33_cjs = require('../chunk-32HW2Q33.cjs');
27
25
  require('../chunk-FX3K6LNZ.cjs');
28
26
  require('../chunk-3Z3DWP3R.cjs');
29
27
  require('../chunk-PPCATBOY.cjs');
30
- require('../chunk-KDG6FER6.cjs');
31
28
  require('../chunk-MHVNT4J3.cjs');
29
+ var chunk25YFJLFP_cjs = require('../chunk-25YFJLFP.cjs');
30
+ require('../chunk-ULWRNGGE.cjs');
31
+ require('../chunk-KDG6FER6.cjs');
32
32
  require('../chunk-DES3K4SD.cjs');
33
33
  var react = require('react');
34
34
  var react$2 = require('@arbidocs/react');
@@ -320,9 +320,9 @@ function SignalsEditor({
320
320
  {
321
321
  className: ui.cn(
322
322
  "space-y-1.5 rounded-md border p-2",
323
- chunkQEE4DOEU_cjs.isIncompleteSignal(signal) ? "border-destructive/50" : "border-border"
323
+ chunkPTY7E22L_cjs.isIncompleteSignal(signal) ? "border-destructive/50" : "border-border"
324
324
  ),
325
- "data-incomplete": chunkQEE4DOEU_cjs.isIncompleteSignal(signal) || void 0,
325
+ "data-incomplete": chunkPTY7E22L_cjs.isIncompleteSignal(signal) || void 0,
326
326
  "data-testid": `${testId}-${i}`,
327
327
  children: [
328
328
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
@@ -1608,7 +1608,7 @@ function triggerFields(trigger, clearOthers) {
1608
1608
  return {
1609
1609
  timezone: trigger.timezone,
1610
1610
  rrule: trigger.start === "repeat" ? trigger.rrule.trim() : none,
1611
- run_at: trigger.start === "once" ? chunkQEE4DOEU_cjs.localInputToIso(trigger.runAt) : none,
1611
+ run_at: trigger.start === "once" ? chunkPTY7E22L_cjs.localInputToIso(trigger.runAt) : none,
1612
1612
  event_kind: trigger.start === "event" ? trigger.eventKind.trim() : none,
1613
1613
  // A step signal is `workflow_signal` narrowed to one signal name.
1614
1614
  event_filter: filter ?? none,
@@ -1624,7 +1624,7 @@ function plan(value, options) {
1624
1624
  criteria: [],
1625
1625
  max_passes: 3,
1626
1626
  documents: [],
1627
- steps: chunkQEE4DOEU_cjs.toPlanSteps(value.workflow, options)
1627
+ steps: chunkPTY7E22L_cjs.toPlanSteps(value.workflow, options)
1628
1628
  };
1629
1629
  }
1630
1630
  function builderToWorkflowRequest(value, workspaceId, options = {}) {
@@ -1659,7 +1659,7 @@ function builderToWorkflowUpdate(value, options = {}) {
1659
1659
  }
1660
1660
  function workflowRecordToBuilder(record) {
1661
1661
  const planned = record.plan?.steps ?? [];
1662
- const steps = planned.length ? chunkQEE4DOEU_cjs.fromPlanSteps(planned) : record.prompt || record.skill_ref ? [
1662
+ const steps = planned.length ? chunkPTY7E22L_cjs.fromPlanSteps(planned) : record.prompt || record.skill_ref ? [
1663
1663
  {
1664
1664
  id: "work",
1665
1665
  kind: "agent",
@@ -1667,7 +1667,7 @@ function workflowRecordToBuilder(record) {
1667
1667
  ...record.skill_ref ? { workflow: record.skill_ref } : { run: { kind: "prompt", promptTemplate: record.prompt } }
1668
1668
  }
1669
1669
  ] : [];
1670
- const when = chunkQEE4DOEU_cjs.workflowWhen(record);
1670
+ const when = chunkPTY7E22L_cjs.workflowWhen(record);
1671
1671
  return {
1672
1672
  workflow: {
1673
1673
  id: record.external_id,
@@ -1676,12 +1676,12 @@ function workflowRecordToBuilder(record) {
1676
1676
  inputs: [],
1677
1677
  landing: "chat",
1678
1678
  schedulable: false,
1679
- run: { kind: "steps", steps, layout: chunkQEE4DOEU_cjs.layoutFromPlanSteps(planned ?? []) }
1679
+ run: { kind: "steps", steps, layout: chunkPTY7E22L_cjs.layoutFromPlanSteps(planned ?? []) }
1680
1680
  },
1681
1681
  trigger: {
1682
1682
  ...DEFAULT_WORKFLOW_TRIGGER,
1683
1683
  start: when === "now" ? "manual" : when,
1684
- runAt: chunkQEE4DOEU_cjs.isoToLocalInput(record.run_at),
1684
+ runAt: chunkPTY7E22L_cjs.isoToLocalInput(record.run_at),
1685
1685
  rrule: record.rrule ?? "",
1686
1686
  timezone: record.timezone || DEFAULT_WORKFLOW_TRIGGER.timezone,
1687
1687
  eventKind: record.event_kind ?? "",
@@ -1737,7 +1737,7 @@ function triggerSummary(trigger, options = {}) {
1737
1737
  case "once":
1738
1738
  return trigger.runAt ? new Date(trigger.runAt).toLocaleString() : l.starts.once;
1739
1739
  case "repeat":
1740
- return trigger.rrule ? chunkQEE4DOEU_cjs.describeRRule(trigger.rrule) : l.starts.repeat;
1740
+ return trigger.rrule ? chunkPTY7E22L_cjs.describeRRule(trigger.rrule) : l.starts.repeat;
1741
1741
  case "event":
1742
1742
  if (isSignalTrigger(trigger))
1743
1743
  return trigger.signal ? l.signalSummary.replace("{signal}", trigger.signal) : l.stepSignals;
@@ -1796,7 +1796,7 @@ function TriggerInspector({
1796
1796
  }
1797
1797
  )
1798
1798
  ] }),
1799
- trigger.start === "repeat" && /* @__PURE__ */ jsxRuntime.jsx(chunkQEE4DOEU_cjs.RecurrenceBuilder, { rrule: trigger.rrule, onChange: (rrule) => set({ rrule }) }),
1799
+ trigger.start === "repeat" && /* @__PURE__ */ jsxRuntime.jsx(chunkPTY7E22L_cjs.RecurrenceBuilder, { rrule: trigger.rrule, onChange: (rrule) => set({ rrule }) }),
1800
1800
  trigger.start === "event" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
1801
1801
  /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { className: "text-xs", children: l.event }),
1802
1802
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1848,7 +1848,7 @@ function TriggerInspector({
1848
1848
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
1849
1849
  /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { className: "text-xs", children: l.agent }),
1850
1850
  /* @__PURE__ */ jsxRuntime.jsx(
1851
- chunkZSW6FZG5_cjs.AgentSelect,
1851
+ chunkAR6RMAYK_cjs.AgentSelect,
1852
1852
  {
1853
1853
  agents,
1854
1854
  value: trigger.agentId,
@@ -2685,13 +2685,13 @@ function WorkflowPreview({
2685
2685
  renderIcon,
2686
2686
  testId
2687
2687
  }) {
2688
- const run = chunkJ6JED6TA_cjs.useWorkflowPreview(workflow, {
2688
+ const run = chunkEWSZIZVN_cjs.useWorkflowPreview(workflow, {
2689
2689
  resolveWorkflow: (id) => workflows.find((w) => w.id === id),
2690
2690
  compose,
2691
2691
  answer
2692
2692
  });
2693
2693
  return /* @__PURE__ */ jsxRuntime.jsx(
2694
- chunkQEE4DOEU_cjs.WorkflowRunner,
2694
+ chunkPTY7E22L_cjs.WorkflowRunner,
2695
2695
  {
2696
2696
  workflow,
2697
2697
  run,
@@ -1,9 +1,9 @@
1
1
  "use client";
2
- import { useWorkflowPreview } from '../chunk-HTOYFP3D.js';
3
- import { isIncompleteSignal, fromPlanSteps, workflowWhen, isoToLocalInput, layoutFromPlanSteps, describeRRule, RecurrenceBuilder, WorkflowRunner, toPlanSteps, localInputToIso } from '../chunk-DRLRR44Q.js';
2
+ import { useWorkflowPreview } from '../chunk-BBWTXMGX.js';
3
+ import { isIncompleteSignal, fromPlanSteps, workflowWhen, isoToLocalInput, layoutFromPlanSteps, describeRRule, RecurrenceBuilder, WorkflowRunner, toPlanSteps, localInputToIso } from '../chunk-H3V7TTKK.js';
4
4
  import '../chunk-CQCC7LE7.js';
5
- import { AgentSelect } from '../chunk-QK2HR3LC.js';
6
- import '../chunk-AU6ZSYW6.js';
5
+ import { AgentSelect } from '../chunk-YTB7JUKU.js';
6
+ import '../chunk-SM774TX7.js';
7
7
  import '../chunk-NUSBINUM.js';
8
8
  import '../chunk-M4S75AEJ.js';
9
9
  import '../chunk-5LXQPP2K.js';
@@ -15,18 +15,18 @@ import '../chunk-N5YEF3LC.js';
15
15
  import { useConnectedTags, useListedDocuments, useConnectedConversations } from '../chunk-ZC5MJIRC.js';
16
16
  import { useConnectedWorkspace } from '../chunk-TXPOODAY.js';
17
17
  import '../chunk-T4P237N6.js';
18
- import '../chunk-ABEKUV6L.js';
19
18
  import '../chunk-P6GHJSLR.js';
20
- import { useBlocksEnvironment } from '../chunk-GKM4EOH7.js';
21
- import '../chunk-TX2ZICS7.js';
19
+ import '../chunk-ABEKUV6L.js';
22
20
  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-3KZWRDPY.js';
23
21
  import { mergeSkillWorkflows } from '../chunk-TZGBRLPK.js';
24
22
  import { TONE_DOT, TONES, isTone } from '../chunk-AUS3KBHJ.js';
25
23
  import '../chunk-SLSBJRWW.js';
26
24
  import '../chunk-7CPOQPWR.js';
27
25
  import '../chunk-NPLYHR2E.js';
28
- import '../chunk-OXF2IFXG.js';
29
26
  import '../chunk-7F6CBP3Z.js';
27
+ import { useBlocksEnvironment } from '../chunk-GKM4EOH7.js';
28
+ import '../chunk-TX2ZICS7.js';
29
+ import '../chunk-OXF2IFXG.js';
30
30
  import '../chunk-VUNV25KB.js';
31
31
  import { useState, useMemo, useEffect, useCallback, useRef } from 'react';
32
32
  import { useWorkspaceUsers, useWorkflows, useSkills, useAgents, useCreateWorkflow, useUpdateWorkflow, useRunWorkflow, useGrantAgentAccess } from '@arbidocs/react';
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbidocs/coedit",
3
- "version": "0.5.1",
3
+ "version": "0.5.3",
4
4
  "description": "Real-time collaboration for the ARBI native DOCX editor: a Yjs mirror of the canonical OOXML package, session, and server runtime",
5
5
  "type": "module",
6
6
  "sideEffects": false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbidocs/blocks",
3
- "version": "0.5.1",
3
+ "version": "0.5.3",
4
4
  "description": "Composable, domain-neutral UI blocks for ARBI apps, organised by capability (retrieval, facts, agents, workspaces, citations, collaboration) plus shell, theme and site primitives, on top of @arbidocs/react.",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -296,9 +296,9 @@
296
296
  "example:test:e2e": "playwright test -c examples/custom-ui/playwright.config.ts"
297
297
  },
298
298
  "dependencies": {
299
- "@arbidocs/client": "0.5.1",
300
- "@arbidocs/coedit": "0.5.1",
301
- "@arbidocs/sdk": "0.5.1",
299
+ "@arbidocs/client": "0.5.3",
300
+ "@arbidocs/coedit": "0.5.3",
301
+ "@arbidocs/sdk": "0.5.3",
302
302
  "@auth0/auth0-react": "^2.19.0",
303
303
  "@dnd-kit/core": "^6.3.1",
304
304
  "@dnd-kit/sortable": "^10.0.0",
@@ -345,7 +345,7 @@
345
345
  "y-protocols": "^1.0.6"
346
346
  },
347
347
  "peerDependencies": {
348
- "@arbidocs/react": "0.5.1",
348
+ "@arbidocs/react": "0.5.3",
349
349
  "@lexical/html": "0.35.0",
350
350
  "@lexical/link": "0.35.0",
351
351
  "@lexical/list": "0.35.0",
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"ConnectedStreamedWordArtifact-27ISQYHI.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"ConnectedStreamedWordArtifact-WRGCCU5H.cjs"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/chat/doc-links.ts","../src/chat/rehype-doc-entity-pills.ts"],"names":[],"mappings":"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","file":"chunk-KJXJRX33.js","sourcesContent":["/**\n * Recognising workspace-document links inside rendered markdown hrefs.\n */\n\n/**\n * A workspace document id in an href — `doc-` plus EXACTLY eight alphanumerics,\n * the format every model in the backend pins (`^doc-[a-zA-Z0-9]{8}$`).\n *\n * `{8,}` would swallow an unrelated external URL that merely contains a `doc-…`\n * segment (`https://example.com/doc-download1234`) and route it to a viewer that\n * has nothing to show.\n */\nexport const DOC_ID_IN_HREF = /\\b(doc-[a-zA-Z0-9]{8})\\b/\n\n/**\n * The document id an href points at, or null if it does not address one of OURS.\n *\n * Absolute URLs qualify only for this origin or the deployment (`deploymentDomain`, the blocks\n * environment's `runtimeConfig.deploymentDomain`).\n * Development UI and API hosts can differ. Unrelated origins remain external. The\n * observed shape is the bare id (`[title](doc-35ce54e8)`), which is relative.\n */\nexport function workspaceDocIdFromHref(\n href: string | undefined,\n deploymentDomain?: string | null\n): string | null {\n if (!href) return null\n const match = DOC_ID_IN_HREF.exec(href)\n if (!match) return null\n if (/^[a-z][a-z0-9+.-]*:/i.test(href)) {\n try {\n const target = new URL(href)\n const isDeployment =\n !!deploymentDomain && target.protocol === 'https:' && target.hostname === deploymentDomain\n if (target.origin !== window.location.origin && !isDeployment) return null\n } catch {\n return null\n }\n }\n return match[1]\n}\n","// A document (doc-…) or an email of the person's own mailbox (eml-…): both render as entity pills.\nconst DOC_ID_PATTERN = /\\b((?:doc|eml)-[a-zA-Z0-9]+)\\b/\n\n/**\n * Per-text-node transform cache.\n *\n * Keyed by the raw text-node value. For the vast majority of text nodes — those\n * without any `doc-…` substring — we memoize the \"no match\" decision so a repeat\n * render of an unchanged message skips the regex entirely. When a node does\n * contain doc IDs we also cache the pre-built replacement children, so repeated\n * renders of a finished message don't re-scan or re-allocate.\n *\n * Uses a bounded LRU-ish Map — oldest entries are evicted when we exceed the\n * cap. This is a module singleton; across the app the hottest entries (tool\n * responses, common answer fragments) end up cached permanently for the session.\n */\nconst MAX_CACHE_ENTRIES = 512\nconst textCache = new Map<string, ReadonlyArray<unknown> | null>()\n\nfunction cacheGet(key: string): ReadonlyArray<unknown> | null | undefined {\n if (!textCache.has(key)) return undefined\n const value = textCache.get(key)\n // Touch to move it to the end of the insertion order (LRU).\n textCache.delete(key)\n textCache.set(key, value as ReadonlyArray<unknown> | null)\n return value\n}\n\nfunction cacheSet(key: string, value: ReadonlyArray<unknown> | null): void {\n if (textCache.size >= MAX_CACHE_ENTRIES) {\n const oldest = textCache.keys().next().value\n if (oldest !== undefined) textCache.delete(oldest)\n }\n textCache.set(key, value)\n}\n\n/**\n * Test-only helper to reset the memoization cache.\n * @internal\n */\nexport function __resetDocEntityPillCache(): void {\n textCache.clear()\n}\n\nfunction buildReplacementNodes(text: string): ReadonlyArray<unknown> | null {\n if (!DOC_ID_PATTERN.test(text)) return null\n\n const globalPattern = /\\b((?:doc|eml)-[a-zA-Z0-9]+)\\b/g\n const newNodes: unknown[] = []\n let lastIndex = 0\n let m: RegExpExecArray | null\n\n while ((m = globalPattern.exec(text)) !== null) {\n if (m.index > lastIndex) {\n newNodes.push({ type: 'text', value: text.slice(lastIndex, m.index) })\n }\n newNodes.push({\n type: 'element',\n tagName: 'span',\n properties: m[1].startsWith('eml-') ? { dataMailId: m[1] } : { dataDocId: m[1] },\n children: [],\n })\n lastIndex = m.index + m[0].length\n }\n\n if (lastIndex < text.length) {\n newNodes.push({ type: 'text', value: text.slice(lastIndex) })\n }\n\n return newNodes\n}\n\n/**\n * Rehype plugin that detects doc external IDs in text nodes and converts them to\n * <span data-doc-id=\"...\"> elements for rendering as entity pills in MarkdownRenderer.\n *\n * Skips text inside code/pre elements so IDs in code blocks are left as plain text.\n *\n * Results are memoized per text-node value — stable messages re-use the cached\n * decision instead of re-running the regex on every render.\n */\n/** A node of the HTML tree (hast), as far as the transform reads it. */\ninterface TreeNode {\n type: string\n tagName?: string\n value?: string\n children?: unknown[]\n}\n\n/** Replace the doc/mail ids in the text nodes under `parent` (code and pre are left alone). */\nfunction transformChildren(parent: TreeNode): void {\n const children = parent.children\n if (!children) return\n const inCode = parent.tagName === 'code' || parent.tagName === 'pre'\n for (let index = 0; index < children.length; index++) {\n const node = children[index] as TreeNode\n if (node.type !== 'text') {\n transformChildren(node)\n continue\n }\n if (inCode) continue\n const text = node.value ?? ''\n let replacement = cacheGet(text)\n if (replacement === undefined) {\n replacement = buildReplacementNodes(text)\n cacheSet(text, replacement)\n }\n if (replacement === null) continue\n // Clone cached nodes so each tree gets its own object identity. AST transforms by other\n // plugins may otherwise mutate shared references.\n const cloned = replacement.map((n) =>\n typeof n === 'object' && n !== null ? { ...(n as object) } : n\n )\n children.splice(index, 1, ...cloned)\n index += cloned.length - 1\n }\n}\n\nexport function rehypeDocEntityPills() {\n return (tree: TreeNode) => {\n transformChildren(tree)\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/chat/doc-links.ts","../src/chat/rehype-doc-entity-pills.ts"],"names":[],"mappings":"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","file":"chunk-OK3UJMO4.cjs","sourcesContent":["/**\n * Recognising workspace-document links inside rendered markdown hrefs.\n */\n\n/**\n * A workspace document id in an href — `doc-` plus EXACTLY eight alphanumerics,\n * the format every model in the backend pins (`^doc-[a-zA-Z0-9]{8}$`).\n *\n * `{8,}` would swallow an unrelated external URL that merely contains a `doc-…`\n * segment (`https://example.com/doc-download1234`) and route it to a viewer that\n * has nothing to show.\n */\nexport const DOC_ID_IN_HREF = /\\b(doc-[a-zA-Z0-9]{8})\\b/\n\n/**\n * The document id an href points at, or null if it does not address one of OURS.\n *\n * Absolute URLs qualify only for this origin or the deployment (`deploymentDomain`, the blocks\n * environment's `runtimeConfig.deploymentDomain`).\n * Development UI and API hosts can differ. Unrelated origins remain external. The\n * observed shape is the bare id (`[title](doc-35ce54e8)`), which is relative.\n */\nexport function workspaceDocIdFromHref(\n href: string | undefined,\n deploymentDomain?: string | null\n): string | null {\n if (!href) return null\n const match = DOC_ID_IN_HREF.exec(href)\n if (!match) return null\n if (/^[a-z][a-z0-9+.-]*:/i.test(href)) {\n try {\n const target = new URL(href)\n const isDeployment =\n !!deploymentDomain && target.protocol === 'https:' && target.hostname === deploymentDomain\n if (target.origin !== window.location.origin && !isDeployment) return null\n } catch {\n return null\n }\n }\n return match[1]\n}\n","// A document (doc-…) or an email of the person's own mailbox (eml-…): both render as entity pills.\nconst DOC_ID_PATTERN = /\\b((?:doc|eml)-[a-zA-Z0-9]+)\\b/\n\n/**\n * Per-text-node transform cache.\n *\n * Keyed by the raw text-node value. For the vast majority of text nodes — those\n * without any `doc-…` substring — we memoize the \"no match\" decision so a repeat\n * render of an unchanged message skips the regex entirely. When a node does\n * contain doc IDs we also cache the pre-built replacement children, so repeated\n * renders of a finished message don't re-scan or re-allocate.\n *\n * Uses a bounded LRU-ish Map — oldest entries are evicted when we exceed the\n * cap. This is a module singleton; across the app the hottest entries (tool\n * responses, common answer fragments) end up cached permanently for the session.\n */\nconst MAX_CACHE_ENTRIES = 512\nconst textCache = new Map<string, ReadonlyArray<unknown> | null>()\n\nfunction cacheGet(key: string): ReadonlyArray<unknown> | null | undefined {\n if (!textCache.has(key)) return undefined\n const value = textCache.get(key)\n // Touch to move it to the end of the insertion order (LRU).\n textCache.delete(key)\n textCache.set(key, value as ReadonlyArray<unknown> | null)\n return value\n}\n\nfunction cacheSet(key: string, value: ReadonlyArray<unknown> | null): void {\n if (textCache.size >= MAX_CACHE_ENTRIES) {\n const oldest = textCache.keys().next().value\n if (oldest !== undefined) textCache.delete(oldest)\n }\n textCache.set(key, value)\n}\n\n/**\n * Test-only helper to reset the memoization cache.\n * @internal\n */\nexport function __resetDocEntityPillCache(): void {\n textCache.clear()\n}\n\nfunction buildReplacementNodes(text: string): ReadonlyArray<unknown> | null {\n if (!DOC_ID_PATTERN.test(text)) return null\n\n const globalPattern = /\\b((?:doc|eml)-[a-zA-Z0-9]+)\\b/g\n const newNodes: unknown[] = []\n let lastIndex = 0\n let m: RegExpExecArray | null\n\n while ((m = globalPattern.exec(text)) !== null) {\n if (m.index > lastIndex) {\n newNodes.push({ type: 'text', value: text.slice(lastIndex, m.index) })\n }\n newNodes.push({\n type: 'element',\n tagName: 'span',\n properties: m[1].startsWith('eml-') ? { dataMailId: m[1] } : { dataDocId: m[1] },\n children: [],\n })\n lastIndex = m.index + m[0].length\n }\n\n if (lastIndex < text.length) {\n newNodes.push({ type: 'text', value: text.slice(lastIndex) })\n }\n\n return newNodes\n}\n\n/**\n * Rehype plugin that detects doc external IDs in text nodes and converts them to\n * <span data-doc-id=\"...\"> elements for rendering as entity pills in MarkdownRenderer.\n *\n * Skips text inside code/pre elements so IDs in code blocks are left as plain text.\n *\n * Results are memoized per text-node value — stable messages re-use the cached\n * decision instead of re-running the regex on every render.\n */\n/** A node of the HTML tree (hast), as far as the transform reads it. */\ninterface TreeNode {\n type: string\n tagName?: string\n value?: string\n children?: unknown[]\n}\n\n/** Replace the doc/mail ids in the text nodes under `parent` (code and pre are left alone). */\nfunction transformChildren(parent: TreeNode): void {\n const children = parent.children\n if (!children) return\n const inCode = parent.tagName === 'code' || parent.tagName === 'pre'\n for (let index = 0; index < children.length; index++) {\n const node = children[index] as TreeNode\n if (node.type !== 'text') {\n transformChildren(node)\n continue\n }\n if (inCode) continue\n const text = node.value ?? ''\n let replacement = cacheGet(text)\n if (replacement === undefined) {\n replacement = buildReplacementNodes(text)\n cacheSet(text, replacement)\n }\n if (replacement === null) continue\n // Clone cached nodes so each tree gets its own object identity. AST transforms by other\n // plugins may otherwise mutate shared references.\n const cloned = replacement.map((n) =>\n typeof n === 'object' && n !== null ? { ...(n as object) } : n\n )\n children.splice(index, 1, ...cloned)\n index += cloned.length - 1\n }\n}\n\nexport function rehypeDocEntityPills() {\n return (tree: TreeNode) => {\n transformChildren(tree)\n }\n}\n"]}