@vellumai/web 0.11.3-staging.1 → 0.11.3-staging.2

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 (184) hide show
  1. package/dist/assets/{access-BEF4g5Xz.js → access-DWtJQvRI.js} +1 -1
  2. package/dist/assets/{account-page-CjBQhkfo.js → account-page-D03pCcnz.js} +1 -1
  3. package/dist/assets/{account-shell-BwGiy59u.js → account-shell-DmVQwtZ0.js} +1 -1
  4. package/dist/assets/{acp-run-detail-panel-BPcNCjiL.js → acp-run-detail-panel-COs66Yrd.js} +1 -1
  5. package/dist/assets/{activity-steps-panel-DhuSLpCc.js → activity-steps-panel-CLjBxqNs.js} +1 -1
  6. package/dist/assets/ai-page-D4GbPprS.js +1 -0
  7. package/dist/assets/{api-key-screen-D1j3oper.js → api-key-screen-vFF5CrFw.js} +1 -1
  8. package/dist/assets/{app-card-BBt0ilaM.js → app-card-B7C46-7O.js} +1 -1
  9. package/dist/assets/{assistant-status-panel-DnkQ1jrJ.js → assistant-status-panel-CDUAp33H.js} +1 -1
  10. package/dist/assets/{auth-store-CPVpJ_c7.js → auth-store-DkOiOQNx.js} +1 -1
  11. package/dist/assets/{avatar-random-BHVo9v-a.js → avatar-random-BiLhcs1I.js} +1 -1
  12. package/dist/assets/{background-task-detail-panel-CyVrsboL.js → background-task-detail-panel-xFGqYCUz.js} +1 -1
  13. package/dist/assets/{billing-page-CvZZTRHS.js → billing-page-n2hU_EAj.js} +2 -2
  14. package/dist/assets/{bookmarks-page-M8X5Jj_q.js → bookmarks-page-DqXq2CVJ.js} +1 -1
  15. package/dist/assets/{build-state-DGpOoR0F.js → build-state-B0f3Jn2o.js} +1 -1
  16. package/dist/assets/channels-page-route-CbV05RLi.js +9 -0
  17. package/dist/assets/chat-markdown-message-WfT4JUja.js +1 -0
  18. package/dist/assets/{checkout-page-CQdvMHxx.js → checkout-page-BxYwG3J8.js} +1 -1
  19. package/dist/assets/{command-palette-DjHOOk8U.js → command-palette-DSxHNf_m.js} +1 -1
  20. package/dist/assets/{command-palette-window-page-msewbnL1.js → command-palette-window-page-9lbssBKp.js} +1 -1
  21. package/dist/assets/{common-BUQt6ee_.js → common-wFfOb0rN.js} +1 -1
  22. package/dist/assets/{composer-settings-veIRzcPS.js → composer-settings-MHDtr31Y.js} +1 -1
  23. package/dist/assets/{contacts-page-route-Caog1niM.js → contacts-page-route-BE3oNfhk.js} +1 -1
  24. package/dist/assets/{conversation-navigation-DqU55C7j.js → conversation-navigation-DbQqV_fs.js} +1 -1
  25. package/dist/assets/{conversation-queries-Bh_7RMKd.js → conversation-queries-CMEwcap1.js} +1 -1
  26. package/dist/assets/{credentials-page-D3H8KP0a.js → credentials-page-DKfIMfUB.js} +1 -1
  27. package/dist/assets/{csv-preview-Crel8fKb.js → csv-preview-DB8q0b_y.js} +1 -1
  28. package/dist/assets/{debug-page-By8-4Cjy.js → debug-page-DpWI-aFX.js} +2 -2
  29. package/dist/assets/{deploy-dialogs-Dak-wWO4.js → deploy-dialogs-BhY-urVH.js} +1 -1
  30. package/dist/assets/{deploy-store-0HlKHhLJ.js → deploy-store-OFWDAEgC.js} +1 -1
  31. package/dist/assets/{detail-card-CmSV969e.js → detail-card-Dsnf52vg.js} +1 -1
  32. package/dist/assets/{detail-drawer-HN4NsyKg.js → detail-drawer-AKY7keIJ.js} +1 -1
  33. package/dist/assets/{detail-panel-stop-button-DV6U5A7y.js → detail-panel-stop-button-Cvnn4hYA.js} +1 -1
  34. package/dist/assets/{detail-shell-rL601Rqo.js → detail-shell-g6Pw4jiP.js} +1 -1
  35. package/dist/assets/{developer-page-Bgg8qW6q.js → developer-page-CSFTdMiT.js} +1 -1
  36. package/dist/assets/{document-viewer-container-BkKmz-ar.js → document-viewer-container-Bousf9D9.js} +2 -2
  37. package/dist/assets/{document-viewer-page-B-jAUGAO.js → document-viewer-page-CJuMnNZk.js} +1 -1
  38. package/dist/assets/{emails-page-B0r-ksKy.js → emails-page-CMoX6WSY.js} +1 -1
  39. package/dist/assets/{file-editor-BQUkusyI.js → file-editor-BwWJX7zO.js} +1 -1
  40. package/dist/assets/file-markdown-CZPyyZhu.js +2 -0
  41. package/dist/assets/{first-run-scope-U5LrdMhR.js → first-run-scope-jh9sT0_v.js} +1 -1
  42. package/dist/assets/{general-page-Ce41M2hE.js → general-page-Biad-auh.js} +1 -1
  43. package/dist/assets/{hatching-screen-TI6k1_Q2.js → hatching-screen-DtMbgBm6.js} +1 -1
  44. package/dist/assets/{home-page-route-D6oL1pWj.js → home-page-route-k81d1Zsb.js} +1 -1
  45. package/dist/assets/{home-tool-permission-card-DG7KNyYY.js → home-tool-permission-card-Bytpm6bE.js} +1 -1
  46. package/dist/assets/{hosting-screen-CGkMm-2o.js → hosting-screen-C-6MdEhq.js} +1 -1
  47. package/dist/assets/identity-page-route-BEobbSBV.js +7 -0
  48. package/dist/assets/{index-3KliM4Ki.js → index-BI5VpYa-.js} +1 -1
  49. package/dist/assets/index-_S2T-6in.css +2 -0
  50. package/dist/assets/{inspect-page-DD024DeO.js → inspect-page-BSPJgPij.js} +3 -3
  51. package/dist/assets/integration-icon-R8opqT3n.js +1 -0
  52. package/dist/assets/integrations-page-DNYDhZHQ.js +1 -0
  53. package/dist/assets/{intelligence-layout-DOTYC75R.js → intelligence-layout-CDcBeu8K.js} +1 -1
  54. package/dist/assets/{library-detail-page-B2C4hPSd.js → library-detail-page-D5EeSRdZ.js} +1 -1
  55. package/dist/assets/{library-page-Y2NwunY9.js → library-page-wPVeE7u1.js} +1 -1
  56. package/dist/assets/{local-runtime-upgrade-12Yco-XF.js → local-runtime-upgrade-DyHUCz7A.js} +1 -1
  57. package/dist/assets/{login-flow-fmfcNxyU.js → login-flow-B8CUFAeg.js} +1 -1
  58. package/dist/assets/{login-page-HFoMsSuP.js → login-page-BgXMUzWB.js} +1 -1
  59. package/dist/assets/{logout-page-B_3PiI2q.js → logout-page-COe8dRLu.js} +1 -1
  60. package/dist/assets/{logs-layout-7JGOJ0Gg.js → logs-layout-BGd_aSZ_.js} +1 -1
  61. package/dist/assets/{memory-page-route-Cf8FoT6z.js → memory-page-route-BGEmbUCl.js} +1 -1
  62. package/dist/assets/{memory-router-playground-page-B4vWmkYZ.js → memory-router-playground-page-B4DX4CON.js} +1 -1
  63. package/dist/assets/{message-files-panel-B8NzbXp3.js → message-files-panel-DTDXhD0C.js} +1 -1
  64. package/dist/assets/{messages-JRZkqLeA.js → messages-D2OJUCHs.js} +1 -1
  65. package/dist/assets/{metric-card-Ba-Ju2sO.js → metric-card-DgbUgyv7.js} +1 -1
  66. package/dist/assets/{mobile-sidebar-drawer-B0rTd7jy.js → mobile-sidebar-drawer-CRXVtqcP.js} +1 -1
  67. package/dist/assets/{multi-activity-group-5OxVs26d.js → multi-activity-group-Chyfm08f.js} +1 -1
  68. package/dist/assets/{not-found-zOjj1km-.js → not-found-ClBCK2Sg.js} +1 -1
  69. package/dist/assets/{notifications-pzRj4j4m.js → notifications-G7qqgf4f.js} +1 -1
  70. package/dist/assets/{notifications-page-DTTyILgl.js → notifications-page-AW-ftrs5.js} +1 -1
  71. package/dist/assets/{open-workspace-file-FgLn-SuR.js → open-workspace-file-C4HWMBzn.js} +2 -2
  72. package/dist/assets/{page-shell-DH240m1W.js → page-shell-CkfnwmIw.js} +1 -1
  73. package/dist/assets/pairing-page-CGoWIhv7.js +1 -0
  74. package/dist/assets/{personality-page-B1BQNH7w.js → personality-page-CEbJMhDR.js} +1 -1
  75. package/dist/assets/{plans-page-B8oZfefa.js → plans-page-DXCrcLo8.js} +1 -1
  76. package/dist/assets/{platform-login-notice-3g7rHtc3.js → platform-login-notice-CIpebDVw.js} +1 -1
  77. package/dist/assets/{platform-loopback-page-DwnkFF3M.js → platform-loopback-page-BJf6yE-E.js} +1 -1
  78. package/dist/assets/{plugin-detail-page-BrrXgSIx.js → plugin-detail-page-CnlqMl6e.js} +1 -1
  79. package/dist/assets/plugins-surface-C5i913ST.js +1 -0
  80. package/dist/assets/{preview-error-Di5TH4XQ.js → preview-error-CihmwI1t.js} +1 -1
  81. package/dist/assets/{privacy-page-4LAU5IqF.js → privacy-page-CxAYEG0r.js} +1 -1
  82. package/dist/assets/{privacy-screen-CNnBXznE.js → privacy-screen-DAzWoGQI.js} +1 -1
  83. package/dist/assets/{profile-pickers-BSDVzs_G.js → profile-pickers-ChG4_Gpc.js} +1 -1
  84. package/dist/assets/{provider-callback-page-CpfaqAgJ.js → provider-callback-page--oWycq5i.js} +1 -1
  85. package/dist/assets/{provider-key-C9asexKh.js → provider-key-BZOH9D9k.js} +1 -1
  86. package/dist/assets/{provider-signup-page-MukjbwOQ.js → provider-signup-page-BaGT8Jl4.js} +1 -1
  87. package/dist/assets/{push-registration-CqXBOPNb.js → push-registration-C0GXHrCj.js} +1 -1
  88. package/dist/assets/{remove-from-device-dialog-DY5o8eIg.js → remove-from-device-dialog-C0eaWxwl.js} +1 -1
  89. package/dist/assets/{research-onboarding-route-BIY3OCwG.js → research-onboarding-route-CXimVFK6.js} +1 -1
  90. package/dist/assets/{retire-confirm-dialog-CgOoh5RG.js → retire-confirm-dialog-B1bvTlHS.js} +1 -1
  91. package/dist/assets/{review-terms-screen-BA2I_7F2.js → review-terms-screen-BxxGJL-B.js} +1 -1
  92. package/dist/assets/{routes-DuLrKyjJ.js → routes-ZeXUrnzY.js} +14 -14
  93. package/dist/assets/{runtime-upgrade-banner-9KhcwQWy.js → runtime-upgrade-banner--bSmfygH.js} +1 -1
  94. package/dist/assets/{sandbox-bridge-B6h4B0qp.js → sandbox-bridge-BlniBIsp.js} +1 -1
  95. package/dist/assets/schedules-page-DCUj-YbP.js +1 -0
  96. package/dist/assets/select-assistant-screen-C5Cl_pCp.js +1 -0
  97. package/dist/assets/self-hosted-servers-DFgP80iG.js +1 -0
  98. package/dist/assets/{settings-divider-D_vHiuYw.js → settings-divider-BuDc875f.js} +1 -1
  99. package/dist/assets/{settings-layout-CINtkHJR.js → settings-layout-Clnlm1aB.js} +1 -1
  100. package/dist/assets/{settings-navigation-CHeVLLWI.js → settings-navigation-Cn3KCxOe.js} +1 -1
  101. package/dist/assets/{share-feedback-modal-BWez_NtT.js → share-feedback-modal-COUhsUqF.js} +1 -1
  102. package/dist/assets/{sidebar-tree-aLYbZLvm.js → sidebar-tree-BXbcoj07.js} +1 -1
  103. package/dist/assets/{signup-page-CiW0Chx7.js → signup-page-C9ZrCSVo.js} +1 -1
  104. package/dist/assets/{site-favicon-B5ilr8wL.js → site-favicon-B3DMFtr3.js} +1 -1
  105. package/dist/assets/{skill-detail-page-T24C6W33.js → skill-detail-page-Ckw6_1PG.js} +2 -2
  106. package/dist/assets/{skill-detail-panel-BOPQ16Vg.js → skill-detail-panel-DdYbYHuj.js} +1 -1
  107. package/dist/assets/{skills-C2mjxWRN.js → skills-Lf85mR9L.js} +1 -1
  108. package/dist/assets/{src-BMRW2yQf.js → src-hNk11eS3.js} +1 -1
  109. package/dist/assets/{stt-language-picker-modal-BVO4V699.js → stt-language-picker-modal-B5MO-3gk.js} +1 -1
  110. package/dist/assets/{subagent-detail-panel-BCDOrwh3.js → subagent-detail-panel-BKhU7VAv.js} +1 -1
  111. package/dist/assets/{subagent-store-BOpi4xxB.js → subagent-store-9SqF-NFa.js} +1 -1
  112. package/dist/assets/{superpowers-page-bOpdIXSO.js → superpowers-page-gPiU1fsq.js} +1 -1
  113. package/dist/assets/{system-events-page-Bgo88uzO.js → system-events-page-DbcoH4sh.js} +1 -1
  114. package/dist/assets/{telegram-setup-wizard-B3MHpy56.js → telegram-setup-wizard-C4E0wi1B.js} +1 -1
  115. package/dist/assets/{text-preview-CPYq3og6.js → text-preview-KOyX3OrO.js} +1 -1
  116. package/dist/assets/{theme-stage-page-B6C95R4X.js → theme-stage-page-D4DYc_C8.js} +1 -1
  117. package/dist/assets/{tiptap-document-editor-By4wlOTs.js → tiptap-document-editor-CDIJTTa_.js} +1 -1
  118. package/dist/assets/{tool-detail-panel-E_gP0j1r.js → tool-detail-panel-CmbBw4_n.js} +1 -1
  119. package/dist/assets/typed-storage-lk6_tW16.js +1 -0
  120. package/dist/assets/{upgrade-cancel-page-DCiT0Rqi.js → upgrade-cancel-page-DfjtkvP9.js} +1 -1
  121. package/dist/assets/{upgrade-success-page-DLs3viaj.js → upgrade-success-page-BDWg5oK4.js} +1 -1
  122. package/dist/assets/{use-assistant-avatar-Dk975wdP.js → use-assistant-avatar-Dd-EU1FC.js} +1 -1
  123. package/dist/assets/{use-assistant-identity-details-DyvMGaA7.js → use-assistant-identity-details-BAgi4MHa.js} +1 -1
  124. package/dist/assets/{use-attachment-preview-DjrcSin2.js → use-attachment-preview-CB3GsEns.js} +1 -1
  125. package/dist/assets/{use-attachment-squares-DHH1eTI4.js → use-attachment-squares-DPuVHGRC.js} +1 -1
  126. package/dist/assets/{use-bookmarks-Wg8ueMhb.js → use-bookmarks-C6IlHWIK.js} +1 -1
  127. package/dist/assets/{use-checkout-dismiss-refresh-wuwzKwo_.js → use-checkout-dismiss-refresh-CDwSKr1-.js} +1 -1
  128. package/dist/assets/{use-command-palette-sections-CzHbFhwD.js → use-command-palette-sections-DXzS2Tio.js} +1 -1
  129. package/dist/assets/{use-edge-swipe-back-9-2nUEK7.js → use-edge-swipe-back-ZgANxgKE.js} +2 -2
  130. package/dist/assets/{use-edit-app-PiQBQ9vN.js → use-edit-app-BHUYCv4X.js} +1 -1
  131. package/dist/assets/{use-invite-link-dialog-C6rYwhqr.js → use-invite-link-dialog-CdY5FNQa.js} +1 -1
  132. package/dist/assets/{use-is-org-ready-BTUeuhPi.js → use-is-org-ready-BmOdacs1.js} +1 -1
  133. package/dist/assets/{use-onboarding-login-BXw1Fcg3.js → use-onboarding-login-BUaNGE_u.js} +1 -1
  134. package/dist/assets/{use-platform-assistant-id-DOBe1pF-.js → use-platform-assistant-id-CEMyKEvV.js} +1 -1
  135. package/dist/assets/{use-platform-gate-DBRG0Q26.js → use-platform-gate-CdwOyQ8A.js} +1 -1
  136. package/dist/assets/{use-return-to-short-circuit-Bl1RwuwD.js → use-return-to-short-circuit-CTYRB2Ne.js} +1 -1
  137. package/dist/assets/{use-skill-actions-kLsl5L01.js → use-skill-actions-GbdM3IIw.js} +1 -1
  138. package/dist/assets/{use-sticky-profiles-CVsR9J8_.js → use-sticky-profiles-LVe9u5gh.js} +1 -1
  139. package/dist/assets/{use-subagent-card-data-BeUTFQdm.js → use-subagent-card-data-CFKl88ab.js} +1 -1
  140. package/dist/assets/{use-supports-bookmarks-FmvOAxKu.js → use-supports-bookmarks-z9pfj1Rm.js} +1 -1
  141. package/dist/assets/use-supports-credentials-settings-CEPArXBW.js +1 -0
  142. package/dist/assets/use-transcript-message-by-id-cDbEJMB-.js +1 -0
  143. package/dist/assets/{use-transcript-messages-BAG92dqc.js → use-transcript-messages-vw2Hogaj.js} +1 -1
  144. package/dist/assets/{use-voice-sample-preview-CVVwbBcE.js → use-voice-sample-preview-BjIqIVEG.js} +1 -1
  145. package/dist/assets/{utils-CAZUrJMu.js → utils-CVoSWh7U.js} +1 -1
  146. package/dist/assets/{viewer-store-BhqBXvNu.js → viewer-store-DhrkeZmJ.js} +1 -1
  147. package/dist/assets/{voice-list-ChEr4jqe.js → voice-list-DnqRx15F.js} +1 -1
  148. package/dist/assets/{voice-page-CkdnjoLc.js → voice-page-CrrYAE9k.js} +1 -1
  149. package/dist/assets/{voice-providers-note-DC4nbaBx.js → voice-providers-note-ValSs0nz.js} +1 -1
  150. package/dist/assets/{welcome-screen-BTnikex6.js → welcome-screen-CiBqE53u.js} +1 -1
  151. package/dist/assets/{workflow-detail-panel-Bf6rP5UH.js → workflow-detail-panel-crM7HRfK.js} +1 -1
  152. package/dist/assets/{workspace-page-C8EUvGJ4.js → workspace-page-iAsgehav.js} +1 -1
  153. package/dist/images/integrations/ATTRIBUTION.md +72 -0
  154. package/dist/images/integrations/airtable.svg +1 -0
  155. package/dist/images/integrations/asana.svg +1 -0
  156. package/dist/images/integrations/discord.svg +1 -0
  157. package/dist/images/integrations/dropbox.svg +1 -0
  158. package/dist/images/integrations/hubspot.svg +1 -0
  159. package/dist/images/integrations/salesforce.svg +5 -0
  160. package/dist/images/integrations/sanity.svg +1 -0
  161. package/dist/images/integrations/spotify.svg +1 -0
  162. package/dist/images/integrations/telegram.svg +1 -0
  163. package/dist/images/integrations/todoist.svg +1 -0
  164. package/dist/images/integrations/x.svg +1 -0
  165. package/dist/index.html +57 -57
  166. package/package.json +1 -1
  167. package/dist/assets/ai-page-CsufGyQ4.js +0 -1
  168. package/dist/assets/channels-page-route-Dj500t-M.js +0 -9
  169. package/dist/assets/chat-markdown-message-Dr9rA1lM.js +0 -1
  170. package/dist/assets/file-markdown-DMq6D4CV.js +0 -2
  171. package/dist/assets/identity-page-route-CLUGVFIg.js +0 -7
  172. package/dist/assets/index-BIhXfUlg.css +0 -2
  173. package/dist/assets/integration-icon-BaoRF0qI.js +0 -1
  174. package/dist/assets/integrations-page-Dygny-c2.js +0 -1
  175. package/dist/assets/pairing-page-Tun2QZT0.js +0 -1
  176. package/dist/assets/plugins-surface-B4NuEVD_.js +0 -1
  177. package/dist/assets/schedules-page-CchXRGaR.js +0 -1
  178. package/dist/assets/select-assistant-screen-BHf9p-NL.js +0 -1
  179. package/dist/assets/typed-storage-UYklH-m5.js +0 -1
  180. package/dist/assets/use-supports-credentials-settings-BGgnzFf0.js +0 -1
  181. package/dist/assets/use-supports-schedule-profile-moves-CuKzMKxy.js +0 -1
  182. package/dist/assets/use-transcript-message-by-id-C7L609Lk.js +0 -1
  183. /package/dist/assets/{profile-metadata-DutSLpwl.js → profile-metadata-DgH7VoVU.js} +0 -0
  184. /package/dist/assets/{start-screen-zLwb2fyf.js → start-screen-CXUDtHbL.js} +0 -0
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{s as t,t as n}from"./local-settings-Bx7FsNo5.js";import{t as r}from"./react-BFJW0bSv.js";import{W as i,t as a}from"./button-BENY-yx_.js";import{d as o,h as s,u as c}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as l}from"./QueryClientProvider-CMu7CkQU.js";import{t as u}from"./useQuery-Bz-fbQ-m.js";import{t as d}from"./useMutation-CXGTrp4W.js";import{t as f}from"./jsx-runtime-D3ZM-ToX.js";import{t as p}from"./card-q0GJX1HZ.js";import{t as m}from"./createLucideIcon-C1mdGPB9.js";import{t as h}from"./arrow-down-to-line-DmG4pLoU.js";import{t as g}from"./arrow-left-BikDV6F2.js";import{a as _,i as v,n as y,o as b,r as x,s as S,t as ee}from"./use-skill-actions-kLsl5L01.js";import{t as C}from"./brain-ZiC0HCCF.js";import{t as w}from"./calendar-CTyC1v1L.js";import{t as T}from"./check-DSgjgwlo.js";import{i as E,n as D,r as te,t as ne}from"./invalidate-plugin-queries-zbCn3jP3.js";import{t as O}from"./circle-check-big-CpoRGdNz.js";import{t as re}from"./cloud-off-DyOAnFan.js";import{t as ie}from"./code-DwZ6Mhdw.js";import{F as k,N as A}from"./src-BMRW2yQf.js";import{t as j}from"./download-Byg0fi0d.js";import{t as ae}from"./external-link-vwewPjbo.js";import{t as M}from"./globe-COk-NH9x.js";import{t as oe}from"./hard-drive-DsHzx0GK.js";import{t as se}from"./heart-CRsy5qXC.js";import{t as N}from"./layout-grid-C3h1DMhl.js";import{t as ce}from"./link-2-Bm55xvLL.js";import{t as P}from"./loader-circle-DOtGXcds.js";import{t as le}from"./mail-CYjppw70.js";import{t as ue}from"./message-circle-C6QWfv9m.js";import{t as de}from"./mic-bZFqVBA_.js";import{t as F}from"./puzzle-CIWAeBs0.js";import{t as fe}from"./search-D2xMZu1P.js";import{t as I}from"./settings-751LDGs_.js";import{t as pe}from"./sparkles-B94iNYGJ.js";import{t as me}from"./terminal-CkQ9DSF2.js";import{t as L}from"./trash-2-BKXSi5Tj.js";import{t as he}from"./triangle-alert-CB4pJgCL.js";import{t as ge}from"./user-Djte2CiZ.js";import{t as _e}from"./x-338EsJDP.js";import{n as R,t as ve}from"./installed-plugins-query-CIcohCho.js";import{t as z}from"./tag-DeMzQvCo.js";import{t as ye}from"./popover-CAbJ9178.js";import{t as be}from"./input-DmHXRXaB.js";import{t as xe}from"./toggle-C-v4x7_A.js";import{n as B}from"./toast-BpuLSxyt.js";import{t as Se}from"./confirm-dialog-zx8L9sUi.js";import{t as Ce}from"./file-markdown-DMq6D4CV.js";import{t as we}from"./assistant-identity-store-nE-e8KQw.js";import{i as V}from"./utils-CAZUrJMu.js";import{Hn as Te,Vn as Ee,Wn as De,qn as Oe}from"./sdk.gen-CBPZ2IdN.js";import{d as ke}from"./routes-iipg2wkc.js";import{At as Ae,dt as je,hn as Me,kt as Ne,lt as Pe,mn as Fe,mt as H,pn as Ie,pt as U}from"./react-query.gen-DxjuNs-5.js";import{n as Le}from"./use-is-mobile-BP8UePsY.js";import{t as W}from"./misc-Z0jXGGeY.js";import{t as Re}from"./plugins-surface-B4NuEVD_.js";import{t as ze}from"./use-active-assistant-id-BvHP5Ojg.js";import{n as Be,r as Ve}from"./skills-C2mjxWRN.js";var He=m(`funnel`,[[`path`,{d:`M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z`,key:`sc7q7i`}]]),G=e(r(),1),K=f(),Ue={sm:`h-7 w-7`,md:`h-8 w-8 text-3xl`};function q({external:e=!1,icon:t,iconSrc:n,size:r=`sm`,className:i}){let[a,o]=(0,G.useState)(!1);(0,G.useEffect)(()=>{o(!1)},[n]);let s=t||(e?`📦`:`🧩`),c=!!n&&!a;return(0,K.jsx)(`span`,{className:W(`flex shrink-0 items-center justify-center`,Ue[r],i),children:c?(0,K.jsx)(`img`,{src:n,alt:``,"aria-hidden":!0,loading:`lazy`,className:`h-full w-full object-contain`,onError:()=>o(!0)}):s})}var We=e=>`Remove "${e}" from this assistant?`,Ge=e=>`"${e}" has local edits that will be overwritten by the upgrade. Continue?`,Ke=`Upgrade anyway`,qe=`Failed to install plugin. Please try again.`,Je=`Failed to remove plugin. Please try again.`,Ye=`Failed to upgrade plugin. Please try again.`,Xe=`Failed to update plugin. Please try again.`;function Ze(e,t){let n=e.map(e=>({name:e.name,description:e.description??void 0,status:`installed`,external:void 0,version:e.version??void 0,path:e.path,issues:e.issues,enabled:e.enabled,icon:e.icon,hasIcon:e.hasIcon,iconVersion:e.iconVersion})),r=new Set(n.map(e=>e.name)),i=t.filter(e=>!r.has(e.name)).map(e=>({name:e.name,description:e.description,status:`available`,external:!0,path:e.path}));return[...n,...i]}function Qe(e,t){let n=t.trim().toLowerCase();return n?[e.name,e.description].some(e=>e?.toLowerCase().includes(n)):!0}function $e(e){return[...e].sort((e,t)=>{let n=e.status===`installed`;return n===(t.status===`installed`)?e.name.localeCompare(t.name,void 0,{sensitivity:`base`}):n?-1:1})}function et(e,t){switch(t){case`all`:return e;case`available`:return e.filter(e=>e.status===`available`);case`installed`:return e.filter(e=>e.status===`installed`);case`active`:return e.filter(e=>e.status===`installed`&&e.enabled!==!1);case`off`:return e.filter(e=>e.status===`installed`&&e.enabled===!1)}}function tt(e){return e?e.slice(0,7):`unknown`}function J({plugin:e,surfaces:t=null,className:n}){let r=[{label:`Source`,value:e.source?.kind===`github`?e.source.repo:`Local`,href:(e.source?.kind===`github`?`https://github.com/${e.source.repo}`:null)??void 0}];return e.homepage&&r.push({label:`Homepage`,value:e.homepage,href:e.homepage}),e.license&&r.push({label:`License`,value:e.license}),t&&(t.skills.length>0&&r.push({label:`Skills`,value:String(t.skills.length)}),t.hooks.length>0&&r.push({label:`Hooks`,value:String(t.hooks.length)}),t.tools.length>0&&r.push({label:`Tools`,value:String(t.tools.length)})),(0,K.jsx)(`dl`,{className:W(`mb-5 grid gap-x-6 gap-y-2 border-b pb-5 sm:grid-cols-[max-content_1fr]`,n),style:{borderColor:`var(--border-base)`},children:r.map(e=>(0,K.jsxs)(`div`,{className:`contents`,children:[(0,K.jsx)(`dt`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e.label}),(0,K.jsx)(`dd`,{className:`min-w-0 truncate text-body-small-default`,style:{color:`var(--content-secondary)`},children:e.href?(0,K.jsxs)(`a`,{href:e.href,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 underline`,style:{color:`var(--primary-base, #60a5fa)`},children:[e.value,(0,K.jsx)(ae,{className:`h-3 w-3`,"aria-hidden":!0})]}):e.value})]},e.label))})}function nt({plugin:e,drift:t,onInstall:n,onRemove:r,onUpgrade:i,isInstalling:o,isRemoving:s,isUpgrading:c,hasLocalEdits:l,enabled:u,onToggle:d,isToggling:f}){let[p,m]=(0,G.useState)(!1),[g,_]=(0,G.useState)(!1),v=e.installed??!1,y=e.artifact??null,b=t?.status===`update-available`,x=b?`Upgrade ${tt(t?.local?.commit??null)} → ${tt(t?.remote?.commit??null)}`:void 0;return(0,K.jsxs)(K.Fragment,{children:[v?(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 md:flex-nowrap md:shrink-0`,children:[u!==void 0&&d?(0,K.jsx)(xe,{label:`Auto-include in chat`,checked:u,onChange:()=>d(),disabled:f}):null,y?(0,K.jsx)(a,{asChild:!0,leftIcon:(0,K.jsx)(j,{"aria-hidden":!0}),children:(0,K.jsx)(`a`,{href:y.url,download:!0,children:y.label??`Download`})}):null,b?(0,K.jsx)(a,{type:`button`,onClick:()=>{if(l){_(!0);return}i()},disabled:c,title:x,leftIcon:c?(0,K.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}):(0,K.jsx)(E,{"aria-hidden":!0}),children:`Upgrade`}):null,(0,K.jsx)(a,{type:`button`,variant:`dangerOutline`,onClick:()=>m(!0),disabled:s,leftIcon:s?(0,K.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}):(0,K.jsx)(L,{"aria-hidden":!0}),children:`Remove`})]}):(0,K.jsx)(a,{type:`button`,onClick:n,disabled:o,leftIcon:o?(0,K.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}):(0,K.jsx)(h,{"aria-hidden":!0}),children:`Install`}),(0,K.jsx)(Se,{open:p,title:`Remove plugin`,message:We(e.name),confirmLabel:`Remove`,destructive:!0,onConfirm:()=>{m(!1),r()},onCancel:()=>m(!1)}),(0,K.jsx)(Se,{open:g,title:`Upgrade plugin`,message:Ge(e.name),confirmLabel:Ke,destructive:!0,onConfirm:()=>{_(!1),i()},onCancel:()=>_(!1)})]})}function rt(){return(0,K.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,K.jsx)(P,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})})}function Y(){return(0,K.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 py-12 text-center`,style:{color:`var(--content-tertiary)`},children:[(0,K.jsx)(he,{className:`h-6 w-6`,"aria-hidden":!0}),(0,K.jsx)(`p`,{className:`text-body-medium-default`,children:`We couldn't load this plugin.`}),(0,K.jsx)(`p`,{className:`text-body-small-default`,children:`It may not exist, or your assistant may be on an older build.`})]})}function it({isInstallError:e,isRemoveError:t,isUpgradeError:n}){let r=e?qe:t?Je:n?Ye:null;return r?(0,K.jsxs)(`div`,{className:`mb-3 flex items-center gap-2 rounded px-3 py-2 text-body-small-default`,style:{backgroundColor:`var(--surface-secondary)`,color:`var(--content-warning, var(--content-tertiary))`},role:`alert`,children:[(0,K.jsx)(he,{className:`h-4 w-4 shrink-0`,"aria-hidden":!0}),r]}):null}function at({external:e,className:t}){let n=e?{label:`External`,icon:M}:{label:`Local`,icon:oe};return(0,K.jsx)(z,{tone:`neutral`,leftIcon:(0,G.createElement)(n.icon),className:t,children:n.label})}function X({onClick:e,isUpgrading:t=!1}={}){let n=(0,K.jsx)(z,{tone:`warning`,leftIcon:(0,G.createElement)(t?P:E,{className:t?`animate-spin`:void 0}),className:`shrink-0`,children:`Update available`});return e?(0,K.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),e()},disabled:t,"aria-label":`Upgrade plugin`,className:`shrink-0 rounded-[6px] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:cursor-not-allowed`,children:n}):n}var ot=300*1e3;function Z({assistantId:e,name:t,enabled:n=!0}){return u({...je({path:{assistant_id:e,name:t}}),enabled:!!e&&!!t&&n,staleTime:ot,retry:!1})}function st(e){let t=e?.local?.localChanges;return!!t&&t?.clean===!1}function ct(e,t,n){let r=l(),i=n?.onRemoved,a=u({...Pe({path:{assistant_id:e,name:t}}),enabled:!!e&&!!t}),o=Z({assistantId:e,name:t,enabled:a.data?.installed??!1}).data,s=(0,G.useCallback)(()=>ne(r,e,t),[e,t,r]),c=Me({onSuccess:()=>{s(),B.success(`Installed ${t||`plugin`}`)}}),d=Ie({onSuccess:()=>{s(),i?.()}}),f=Fe({onSuccess:e=>{s(),B.success(e.outcome===`already-up-to-date`?`${t||`Plugin`} is already up to date`:`Upgraded ${t||`plugin`} to ${tt(e.toCommit)}`)}});return{plugin:a.data??null,drift:o,isLoading:a.isLoading,isError:a.isError,install:()=>{c.mutate({path:{assistant_id:e},body:{name:t}})},remove:()=>{d.mutate({path:{assistant_id:e,name:t}})},upgrade:()=>{f.mutate({path:{assistant_id:e,name:t},body:{}})},isInstalling:c.isPending,isRemoving:d.isPending,isUpgrading:f.isPending,isInstallError:c.isError,isRemoveError:d.isError,isUpgradeError:f.isError,hasLocalEdits:st(o)}}var lt=`0.10.5`;function ut(){return V(lt)}function Q(e,t,n,r){let i=ut(),{data:a}=u({queryKey:[`pluginIcon`,e,t,r],queryFn:async()=>{let{data:n,error:r}=await De({path:{assistant_id:e,name:t},parseAs:`blob`,throwOnError:!1});if(r||!(n instanceof Blob))throw Error(`Failed to load plugin icon`);return n},enabled:!!(i&&n&&r),staleTime:1/0,retry:!1}),[o,s]=(0,G.useState)(void 0);return(0,G.useEffect)(()=>{if(!a){s(void 0);return}let e=URL.createObjectURL(a);return s(e),()=>{URL.revokeObjectURL(e)}},[a]),o}function dt(e){let t=l(),n={queryKey:U({path:{assistant_id:e}})},r=(e,r)=>{t.setQueriesData(n,t=>t&&{...t,plugins:t.plugins.map(t=>t.name===e?{...t,enabled:r}:t)})},i=d({mutationFn:async({name:t,nextEnabled:n})=>{let r=await(n?Te({path:{assistant_id:e,name:t},throwOnError:!1}):Ee({path:{assistant_id:e,name:t},throwOnError:!1})),i=r.response?.status;if(r.response?.ok||i===409)return r;throw Error(`Plugin toggle failed (${i??`network error`})`)},onMutate:async({name:e,nextEnabled:i})=>{await t.cancelQueries(n),r(e,i)},onError:(e,{name:t,nextEnabled:n})=>{r(t,!n),B.error(Xe)},onSettled:(n,r,i)=>{ne(t,e,i.name)}});return{toggle:(e,t)=>{i.mutate({name:e,nextEnabled:t})},togglingName:i.isPending?i.variables?.name??null:null}}function ft({assistantId:e,name:t,onBack:n,externalHint:r,enabled:i}){let{plugin:o,drift:s,isLoading:c,isError:l,install:u,remove:d,upgrade:f,isInstalling:m,isRemoving:h,isUpgrading:_,isInstallError:v,isRemoveError:y,isUpgradeError:b,hasLocalEdits:x}=ct(e,t,{onRemoved:n}),{toggle:S,togglingName:ee}=dt(e),C=Q(e,t,o?.hasIcon,o?.iconVersion);return(0,K.jsxs)(`div`,{className:`flex h-full min-h-0 flex-1 flex-col`,children:[(0,K.jsxs)(`div`,{className:`mb-4 flex items-start gap-3`,children:[(0,K.jsx)(a,{type:`button`,variant:`ghost`,iconOnly:(0,K.jsx)(g,{"aria-hidden":!0}),"aria-label":`Back to plugins`,onClick:n}),(0,K.jsx)($,{name:t,plugin:o,externalHint:r,iconSrc:C,drift:s,onInstall:u,onRemove:d,onUpgrade:f,isInstalling:m,isRemoving:h,isUpgrading:_,hasLocalEdits:x,enabled:i,onToggle:()=>S(t,!i),isToggling:ee===t})]}),(v||y||b)&&(0,K.jsx)(it,{isInstallError:v,isRemoveError:y,isUpgradeError:b}),(0,K.jsx)(p.Root,{asChild:!0,children:(0,K.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-6 py-5`,children:c?(0,K.jsx)(rt,{}):l||!o?(0,K.jsx)(Y,{}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(J,{plugin:o,surfaces:s?.surfaces??null}),o.readme?(0,K.jsx)(Ce,{content:o.readme}):(0,K.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`This plugin doesn't ship a README.`})]})})})]})}function $({name:e,plugin:t,externalHint:n,iconSrc:r,drift:i,onInstall:a,onRemove:o,onUpgrade:s,isInstalling:c,isRemoving:l,isUpgrading:u,hasLocalEdits:d,enabled:f,onToggle:p,isToggling:m}){let h=t?.source?.kind===`github`,g=t?h:n,_=i?.status===`update-available`;return(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-3 sm:flex-row sm:items-center`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-start gap-3`,children:[g===void 0?(0,K.jsx)(`span`,{"aria-hidden":!0,className:`h-8 w-8 shrink-0`}):(0,K.jsx)(q,{external:g,icon:t?.icon??void 0,iconSrc:r,size:`md`}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1`,children:[(0,K.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:t?.name??e}),t?.version?(0,K.jsxs)(`span`,{className:`shrink-0 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[`v`,t.version]}):null,t?(0,K.jsx)(at,{external:h}):null,_?(0,K.jsx)(X,{}):null]}),t?.description?(0,K.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-body-medium-lighter`,style:{color:`var(--content-secondary)`},children:t.description}):null]})]}),t?(0,K.jsx)(nt,{plugin:t,drift:i,onInstall:a,onRemove:o,onUpgrade:s,isInstalling:c,isRemoving:l,isUpgrading:u,hasLocalEdits:d,enabled:f,onToggle:p,isToggling:m}):null]})}var pt=e(i(),1);function mt({assistantId:e,name:t,onBack:n,externalHint:r,enabled:i}){let{plugin:o,drift:s,isLoading:c,isError:l,install:u,remove:d,upgrade:f,isInstalling:m,isRemoving:h,isUpgrading:_,isInstallError:v,isRemoveError:y,isUpgradeError:b,hasLocalEdits:x}=ct(e,t,{onRemoved:n}),{toggle:S,togglingName:ee}=dt(e),[C,w]=(0,G.useState)(null);(0,G.useEffect)(()=>{w(document.getElementById(`viewport-overlays`))},[]);let T=o?.source?.kind===`github`,E=o?T:r,D=s?.status===`update-available`,te=o?.name??t,ne=Q(e,t,o?.hasIcon,o?.iconVersion),O=(0,K.jsxs)(`div`,{className:`fixed inset-0 z-40 flex flex-col overflow-hidden bg-[var(--surface-overlay)]`,style:{paddingTop:`calc(8px + var(--safe-area-inset-top, env(safe-area-inset-top, 0px)))`,paddingBottom:`calc(8px + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)))`,paddingLeft:`calc(12px + var(--safe-area-inset-left, env(safe-area-inset-left, 0px)))`,paddingRight:`calc(12px + var(--safe-area-inset-right, env(safe-area-inset-right, 0px)))`},children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(a,{variant:`ghost`,iconOnly:(0,K.jsx)(g,{"aria-hidden":!0}),expandOnMobile:!0,"aria-label":`Back to plugins`,onClick:n,className:`max-md:bg-[var(--surface-active)]`}),(0,K.jsx)(`span`,{className:`min-w-0 flex-1 truncate px-2 text-center text-body-medium-default`,style:{color:`var(--content-secondary)`},children:te}),(0,K.jsx)(`span`,{"aria-hidden":!0,className:`h-8 w-8 shrink-0 touch-mobile:h-10 touch-mobile:w-10`})]}),(0,K.jsxs)(`div`,{className:`mt-4 flex flex-col gap-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[E===void 0?(0,K.jsx)(`span`,{"aria-hidden":!0,className:`h-8 w-8 shrink-0`}):(0,K.jsx)(q,{external:E,icon:o?.icon??void 0,iconSrc:ne,size:`md`}),(0,K.jsx)(`h2`,{className:`min-w-0 truncate text-title-medium`,style:{color:`var(--content-emphasised)`},children:te})]}),(0,K.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[D?(0,K.jsx)(X,{}):null,o?(0,K.jsx)(at,{external:T}):null]})]}),o?.description?(0,K.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:o.description}):null]}),o?(0,K.jsx)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:(0,K.jsx)(nt,{plugin:o,drift:s,enabled:i,onToggle:()=>S(t,!i),isToggling:ee===t,onInstall:u,onRemove:d,onUpgrade:f,isInstalling:m,isRemoving:h,isUpgrading:_,hasLocalEdits:x})}):null,(v||y||b)&&(0,K.jsx)(`div`,{className:`mt-3`,children:(0,K.jsx)(it,{isInstallError:v,isRemoveError:y,isUpgradeError:b})}),(0,K.jsx)(p.Root,{asChild:!0,noPadding:!0,children:(0,K.jsx)(`div`,{className:`mt-6 flex min-h-0 flex-1 flex-col overflow-hidden rounded-2xl border bg-[var(--surface-lift)]`,style:{borderColor:`var(--border-hover)`},children:(0,K.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-4`,children:c?(0,K.jsx)(rt,{}):l||!o?(0,K.jsx)(Y,{}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(J,{plugin:o,surfaces:s?.surfaces??null}),o.readme?(0,K.jsx)(Ce,{content:o.readme}):(0,K.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`This plugin doesn't ship a README.`})]})})})})]});return C?(0,pt.createPortal)(O,C):O}function ht({assistantId:e,item:t,drift:n,onSelect:r,onInstall:i,onRemove:o,onUpgrade:s,isInstalling:c=!1,isRemoving:l=!1,isUpgrading:u=!1}){let d=t.status===`available`,f=n?.status===`update-available`,m=t.enabled!==void 0,g=t.enabled===!1,_=Q(e,t.name,t.hasIcon,t.iconVersion);return(0,K.jsx)(p.Root,{asChild:!0,children:(0,K.jsxs)(`div`,{role:`button`,tabIndex:0,onClick:r,onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),r())},className:`flex cursor-pointer items-center gap-3 px-3 py-2 text-left transition-colors hover:bg-[var(--surface-hover)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:[(0,K.jsx)(q,{size:`sm`,external:t.external,icon:t.icon,iconSrc:_,className:g?`opacity-50`:void 0}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`truncate text-body-medium-default`,style:{color:g?`var(--content-tertiary)`:`var(--content-emphasised)`},children:t.name}),t.version?(0,K.jsxs)(`span`,{className:`shrink-0 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[`v`,t.version]}):null,(0,K.jsx)(z,{tone:`neutral`,leftIcon:(0,K.jsx)(F,{"aria-hidden":!0}),children:`Plugin`}),f?(0,K.jsx)(X,{onClick:s,isUpgrading:u}):null]}),(0,K.jsx)(`p`,{className:`mt-1 truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.description??`No description provided.`}),t.issues&&t.issues.length>0?(0,K.jsxs)(`p`,{className:`mt-1 truncate text-body-small-default`,style:{color:`var(--content-warning, var(--content-tertiary))`},title:t.issues.join(`; `),children:[t.issues[0],t.issues.length>1?` (+${t.issues.length-1} more)`:``]}):null]}),d?c?(0,K.jsx)(a,{type:`button`,iconOnly:(0,K.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}),disabled:!0,"aria-label":`Installing`,expandOnMobile:!1}):(0,K.jsx)(a,{type:`button`,iconOnly:(0,K.jsx)(h,{"aria-hidden":!0}),onClick:e=>{e.stopPropagation(),i?.()},disabled:!i,"aria-label":`Install plugin`,expandOnMobile:!1}):(0,K.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[m?(0,K.jsx)(z,{tone:t.enabled?`positive`:`neutral`,children:t.enabled?`Enabled`:`Disabled`}):null,(0,K.jsx)(a,{type:`button`,variant:`dangerOutline`,iconOnly:l?(0,K.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}):(0,K.jsx)(L,{"aria-hidden":!0}),onClick:e=>{e.stopPropagation(),o?.()},disabled:l||u||!o,"aria-label":`Remove plugin`,expandOnMobile:!1})]})]})})}var gt={mail:le,calendar:w,"message-circle":ue,globe:M,zap:R,code:ie,mic:de,"shopping-cart":D,palette:te,heart:se,settings:I,"link-2":ce};function _t(e){return gt[e]}function vt({selected:e,onSelect:t,counts:n,totalCount:r,showCounts:i,categories:a,ariaLabel:o=`Skill categories`}){let s=[...a].sort((e,t)=>e.label.localeCompare(t.label));return(0,K.jsxs)(`nav`,{className:`flex flex-col gap-1`,"aria-label":o,children:[(0,K.jsx)(yt,{icon:N,label:`All`,count:r,isActive:e===null,showCount:i,onClick:()=>t(null)}),s.map(r=>(0,K.jsx)(yt,{icon:_t(r.icon)??N,label:r.label,count:n[r.slug]??0,isActive:e===r.slug,showCount:i,onClick:()=>t(r.slug)},r.slug))]})}function yt({icon:e,label:t,count:n,isActive:r,showCount:i,onClick:o}){return(0,K.jsxs)(a,{variant:`ghost`,onClick:o,"aria-pressed":r,className:`h-auto justify-between gap-3 rounded-lg border-0 bg-transparent px-3 py-2 text-left hover:bg-[var(--ghost-hover)]`,style:{backgroundColor:r?`var(--surface-active)`:void 0,color:r?`var(--content-default)`:`var(--content-secondary)`},children:[(0,K.jsxs)(`span`,{className:`flex items-center gap-2.5`,children:[(0,K.jsx)(e,{className:`h-4 w-4 shrink-0`,"aria-hidden":!0}),(0,K.jsx)(`span`,{className:`text-body-medium-default`,children:t})]}),i&&(0,K.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:n})]})}function bt({skill:e,onSelect:t,onInstall:n,onRemove:r,isInstalling:i=!1,isRemoving:o=!1}){let s=x(e),c=Be(e);return(0,K.jsx)(p.Root,{asChild:!0,children:(0,K.jsxs)(`div`,{role:`button`,tabIndex:0,onClick:t,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t())},className:`flex cursor-pointer items-center gap-3 px-3 py-2 text-left transition-colors hover:bg-[var(--surface-hover)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:[(0,K.jsx)(`div`,{className:`flex shrink-0 items-center justify-center text-[28px] leading-none`,children:(0,K.jsx)(b,{skill:e,className:`h-7 w-7`})}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-emphasised)`},children:e.name}),(0,K.jsx)(_,{origin:e.origin})]}),(0,K.jsx)(`p`,{className:`mt-1 truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e.description})]}),s?i?(0,K.jsx)(a,{type:`button`,iconOnly:(0,K.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}),disabled:!0,"aria-label":`Installing`,expandOnMobile:!1}):(0,K.jsx)(a,{type:`button`,iconOnly:(0,K.jsx)(h,{"aria-hidden":!0}),onClick:e=>{e.stopPropagation(),n?.()},disabled:!n,"aria-label":`Install skill`,expandOnMobile:!1}):(0,K.jsx)(a,{type:`button`,variant:`dangerOutline`,iconOnly:o?(0,K.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}):(0,K.jsx)(L,{"aria-hidden":!0}),onClick:e=>{e.stopPropagation(),r?.()},disabled:!c||o||!r,"aria-label":c?`Remove skill`:`Bundled skill cannot be removed`,title:c?void 0:`Bundled skills cannot be removed`,expandOnMobile:!1})]})})}var xt=[{value:`all`,label:`All`,icon:N},{value:`installed`,label:`Installed`,icon:O},{value:`available`,label:`Available`,icon:h}],St=[{value:`skills`,label:`Skills`,icon:R},{value:`plugins`,label:`Plugins`,icon:F}],Ct=[{value:`vellum`,label:`Vellum`,icon:S},{value:`clawhub`,label:`Clawhub`,icon:M},{value:`skillssh`,label:`skills.sh`,icon:me},{value:`custom`,label:`Custom`,icon:ge},{value:`assistant-memory`,label:`Assistant's Memory`,icon:C}];function wt({search:e,onSearchChange:t,filter:n,onFilterChange:r,isSearching:i,categories:a,category:o,onCategoryChange:s,counts:c,totalCount:l,showCounts:u,pluginsSupported:d}){return(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(be,{type:`search`,value:e,onChange:e=>{t(e.target.value)},placeholder:`Search superpowers`,"aria-label":`Search superpowers`,leftIcon:(0,K.jsx)(fe,{className:`h-4 w-4`,"aria-hidden":!0}),rightIcon:i?(0,K.jsx)(P,{className:`h-4 w-4 animate-spin`,"aria-hidden":!0}):void 0,fullWidth:!0,wrapperClassName:`flex-1`}),(0,K.jsx)(Tt,{filter:n,onFilterChange:r,categories:a,category:o,onCategoryChange:s,counts:c,totalCount:l,showCounts:u,pluginsSupported:d})]})}function Tt(e){let t=Le(),[n,r]=(0,G.useState)(!1),i=(0,K.jsx)(a,{type:`button`,variant:`outlined`,iconOnly:(0,K.jsx)(He,{"aria-hidden":!0}),"aria-label":`Filter superpowers`,"aria-haspopup":t?`dialog`:`listbox`,"aria-expanded":n,tintColor:`var(--primary-base)`});if(t)return(0,K.jsx)(Et,{...e,open:n,onOpenChange:r,trigger:i});let o=t=>{e.onFilterChange(t),r(!1)};return(0,K.jsxs)(ye.Root,{open:n,onOpenChange:r,children:[(0,K.jsx)(ye.Trigger,{asChild:!0,children:i}),(0,K.jsx)(ye.Content,{align:`end`,sideOffset:4,className:`w-44 overflow-hidden p-0`,children:(0,K.jsxs)(`ul`,{role:`listbox`,children:[(0,K.jsx)(kt,{label:`Status`,options:xt,selected:e.filter,onSelect:o}),e.pluginsSupported&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,K.jsx)(kt,{label:`Type`,options:St,selected:e.filter,onSelect:o})]}),(0,K.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,K.jsx)(kt,{label:`Source`,options:Ct,selected:e.filter,onSelect:o})]})})]})}function Et({filter:e,onFilterChange:t,categories:n,category:r,onCategoryChange:i,counts:o,totalCount:s,showCounts:c,pluginsSupported:l,open:u,onOpenChange:d,trigger:f}){let p=[...n].sort((e,t)=>e.label.localeCompare(t.label));return(0,K.jsxs)(k.Root,{open:u,onOpenChange:d,children:[(0,K.jsx)(k.Trigger,{asChild:!0,children:f}),(0,K.jsxs)(k.Content,{className:`max-h-[85dvh]`,"aria-describedby":void 0,children:[(0,K.jsx)(`div`,{"aria-hidden":!0,className:`mx-auto mb-3 h-1 w-9 shrink-0 rounded-full bg-[var(--border-element)]`}),(0,K.jsx)(k.Header,{children:(0,K.jsx)(k.Title,{children:`Filters`})}),(0,K.jsxs)(k.Body,{className:`flex flex-col gap-3 pt-2`,children:[(0,K.jsx)(Dt,{label:`Status`,children:xt.map(n=>(0,K.jsx)(Ot,{icon:n.icon,label:n.label,active:e===n.value,onSelect:()=>t(n.value)},n.value))}),l&&(0,K.jsx)(Dt,{label:`Type`,children:St.map(n=>(0,K.jsx)(Ot,{icon:n.icon,label:n.label,active:e===n.value,onSelect:()=>t(n.value)},n.value))}),(0,K.jsx)(Dt,{label:`Source`,children:Ct.map(n=>(0,K.jsx)(Ot,{icon:n.icon,label:n.label,active:e===n.value,onSelect:()=>t(n.value)},n.value))}),(0,K.jsxs)(Dt,{label:`Categories`,children:[(0,K.jsx)(Ot,{icon:N,label:`All`,active:r===null,badge:c?s:void 0,onSelect:()=>i(null)}),p.map(e=>(0,K.jsx)(Ot,{icon:_t(e.icon)??N,label:e.label,active:r===e.slug,badge:c?o[e.slug]??0:void 0,onSelect:()=>i(e.slug)},e.slug))]})]}),(0,K.jsx)(k.Footer,{children:(0,K.jsx)(a,{type:`button`,variant:`primary`,fullWidth:!0,onClick:()=>d(!1),children:`Done`})})]})]})}function Dt({label:e,children:t}){return(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`px-2 pb-1 text-body-small-default uppercase tracking-wide`,style:{color:`var(--content-tertiary)`},children:e}),t]})}function Ot({icon:e,label:t,active:n,badge:r,onSelect:i}){return(0,K.jsx)(A,{icon:e,label:t,active:n,activeVariant:`branded`,badge:r,trailingAction:n&&r==null?(0,K.jsx)(T,{className:`h-4 w-4 text-[var(--primary-base)]`,"aria-hidden":!0}):void 0,onSelect:i})}function kt({label:e,options:t,selected:n,onSelect:r}){return(0,K.jsxs)(`li`,{children:[(0,K.jsx)(`div`,{className:`px-3 pb-1 pt-2 text-body-small-default uppercase tracking-wide`,style:{color:`var(--content-tertiary)`},children:e}),(0,K.jsx)(`ul`,{children:t.map(e=>{let t=e.icon,i=n===e.value;return(0,K.jsx)(`li`,{children:(0,K.jsxs)(`button`,{type:`button`,onClick:()=>r(e.value),role:`option`,"aria-selected":i,className:`flex w-full items-center gap-2 px-3 py-1.5 text-left text-body-medium-lighter transition-colors hover:bg-[var(--surface-hover)]`,style:{color:i?`var(--primary-base)`:`var(--content-default)`},children:[(0,K.jsx)(t,{className:`h-4 w-4`,"aria-hidden":!0}),(0,K.jsx)(`span`,{className:`flex-1`,children:e.label}),i&&(0,K.jsx)(O,{className:`h-3.5 w-3.5`,"aria-hidden":!0})]})},e.value)})})]})}var At=300*1e3,jt=[],Mt=[];async function Nt(e,t,n){let r=await Oe({path:{assistant_id:e},query:{q:void 0,category:t},signal:n,throwOnError:!1});if(r.response?.status===404)return{plugins:[]};if(!r.response?.ok)throw Error(`Failed to load plugins`);return r.data??{plugins:[]}}function Pt(e,t){let[n,r]=(0,G.useState)({assistantId:e,latched:!1}),i=n.assistantId===e?n.latched:!1;return n.assistantId!==e&&r({assistantId:e,latched:!1}),(0,G.useEffect)(()=>{t&&r(t=>t.assistantId===e&&t.latched?t:{assistantId:e,latched:!0})},[e,t]),i||t}function Ft(e,t=null,n=!0){let r=t??void 0,i=u({queryKey:U({path:{assistant_id:e},query:{q:void 0,category:r}}),queryFn:({signal:t})=>Nt(e,r,t),enabled:!!e&&n,staleTime:At}),a=u({...ve(e),enabled:!!e&&n&&t!==null}),o=u({...H({path:{assistant_id:e},query:{q:void 0}}),enabled:!!e&&n,staleTime:At}),s=(0,G.useMemo)(()=>{let e=t===null?i.data?.plugins:a.data?.plugins??i.data?.plugins;return new Set((e??jt).map(e=>e.name))},[t,a.data?.plugins,i.data?.plugins]),c=(0,G.useMemo)(()=>{let e=i.data?.plugins??jt,n=o.data?.matches??Mt;return $e(Ze(e,(t===null?n:n.filter(e=>(e.category??`system`)===t)).filter(e=>!s.has(e.name))))},[i.data?.plugins,o.data?.matches,t,s]),d=t===null?i.data:a.data,f=Pt(e,d?.categoryCounts!==void 0),p=Pt(e,(d?.plugins??jt).some(e=>e.enabled!==void 0)),m=l(),h=(0,G.useRef)(null);return(0,G.useEffect)(()=>{if(h.current===e||!o.isSuccess)return;let t=d?.plugins;if(!t?.length)return;let n=new Map((o.data?.matches??Mt).map(e=>[e.name,e.category]));t.some(e=>{let t=n.get(e.name);return t!=null&&t!==`system`&&(e.category??`system`)===`system`})&&(h.current=e,m.invalidateQueries({queryKey:U({path:{assistant_id:e},query:{q:void 0}})}))},[e,o.isSuccess,o.data?.matches,d?.plugins,m]),{items:c,isLoading:i.isLoading,catalogLoading:o.isLoading,isError:i.isError,isFetching:i.isFetching||o.isFetching,catalogError:o.isError,categorySupported:f,pluginToggleSupported:p,installedCategoryCounts:d?.categoryCounts,installedPlugins:d?.plugins??jt,installedTotal:d?.totalCount,catalogMatches:o.data?.matches??Mt,unfilteredInstalledNames:s}}function It(e){return u({...Ne({path:{assistant_id:e}}),select:e=>e.categories,staleTime:300*1e3})}var Lt=new Set([`all`,`installed`,`available`,`skills`,`plugins`,`vellum`,`clawhub`,`skillssh`,`custom`,`assistant-memory`]);function Rt(e){let t=e.get(`filter`),n=e.get(`category`);return{q:e.get(`q`)??``,filter:Vt(t)?t:`all`,category:n||null}}function zt(e,t){let n=new URLSearchParams(e);return t.q!==void 0&&Bt(n,`q`,t.q.trim()||null),t.filter!==void 0&&Bt(n,`filter`,t.filter===`all`?null:t.filter),t.category!==void 0&&Bt(n,`category`,t.category),n}function Bt(e,t,n){n===null?e.delete(t):e.set(t,n)}function Vt(e){return e!==null&&Lt.has(e)}function Ht(e){switch(e){case`installed`:return{kind:`installed`};case`available`:return{kind:`available`};case`vellum`:case`clawhub`:case`skillssh`:case`custom`:case`assistant-memory`:return{origin:e};default:return{}}}function Ut(e){return e!==`plugins`}function Wt(e){return e===`all`||e===`installed`||e===`available`||e===`plugins`}function Gt(e){switch(e){case`installed`:return`installed`;case`available`:return`available`;default:return`all`}}function Kt(e,t){let[n,r]=(0,G.useState)(e);return(0,G.useEffect)(()=>{let n=setTimeout(()=>{r(e)},t);return()=>clearTimeout(n)},[e,t]),n}var qt=300,Jt=`vellum:superpowers:tipDismissed`;function Yt(e){return[...e].sort((e,t)=>e.installed===t.installed?e.name.localeCompare(t.name,void 0,{sensitivity:`base`}):e.installed?-1:1)}function Xt({assistantId:e}){let r=o(),i=c(),a=l(),d=Le(),f=we.use.version(),p=Re(),[m,h]=s(),{q:g,filter:_,category:y}=(0,G.useMemo)(()=>Rt(m),[m]),b=m.get(`plugin`),x=(0,G.useCallback)(e=>{h(t=>zt(t,e),{replace:!0})},[h]),S=m.get(`success`),C=(0,G.useRef)(!1);(0,G.useEffect)(()=>{S!==`true`||C.current||(C.current=!0,b&&B.success(`Installed ${b}`),h(e=>{let t=new URLSearchParams(e);return t.delete(`success`),t},{replace:!0}))},[S,b,h]);let[w,T]=(0,G.useState)(g),E=Kt(w.trim(),qt),D=(0,G.useRef)(g);(0,G.useEffect)(()=>{if(g!==D.current&&(D.current=g,g!==w.trim())){T(g);return}E!==g&&E===w.trim()&&(D.current=E,x({q:E}))},[E,g,w,x]);let te=(0,G.useCallback)(e=>x({filter:e}),[x]),O=(0,G.useCallback)(e=>x({category:e}),[x]),[re,ie]=(0,G.useState)(()=>n(Jt,!1)),k=(0,G.useCallback)(()=>{ie(!0),t(Jt,!0)},[]),A=!p&&_===`plugins`?`all`:_,j=Ut(A),ae=p&&Wt(A),M=Gt(A),{handleInstall:oe,handleRemove:se,isInstallingSkill:N,isRemovingSkill:ce,skillPendingRemoval:P,confirmRemove:le,cancelRemove:ue}=ee(e),{data:de=[]}=It(e),{origin:F,kind:fe}=(0,G.useMemo)(()=>Ht(A),[A]),I=u({...Ae({path:{assistant_id:e},query:{include:`catalog`,origin:F,kind:fe,q:E||void 0,category:y??void 0}}),select:e=>({skills:e.skills,categoryCounts:e.categoryCounts,totalCount:e.totalCount}),enabled:!!e&&j}),pe=u({...Ae({path:{assistant_id:e},query:{include:`catalog`,origin:F,kind:fe,q:E||void 0}}),select:e=>({skills:e.skills,categoryCounts:e.categoryCounts,totalCount:e.totalCount}),enabled:!!e&&j&&y!==null}),{items:me,isLoading:L,catalogLoading:he,isError:ge,isFetching:_e,catalogError:R,categorySupported:ve,installedCategoryCounts:z,installedPlugins:ye,installedTotal:be,catalogMatches:xe,unfilteredInstalledNames:Ce}=Ft(e,y,p),V=ae&&(y===null||ve),Te=(0,G.useCallback)(t=>ne(a,e,t),[e,a]),[Ee,De]=(0,G.useState)(null),[Oe,je]=(0,G.useState)(null),[Ne,Pe]=(0,G.useState)(null),[H,U]=(0,G.useState)(null),[W,ze]=(0,G.useState)(null),Be=Me({onMutate:e=>De(e.body.name),onSuccess:(e,t)=>B.success(`Installed ${t.body.name}`),onError:()=>B.error(qe),onSettled:(e,t,n)=>{De(null),Te(n.body.name)}}),He=Ie({onMutate:e=>je(e.path.name),onSuccess:(e,t)=>B.success(`Removed ${t.path.name}`),onError:()=>B.error(Je),onSettled:(e,t,n)=>{je(null),Te(n.path.name)}}),Ue=Fe({onMutate:e=>Pe(e.path.name),onSuccess:(e,t)=>B.success(e.outcome===`already-up-to-date`?`${t.path.name} is already up to date`:`Upgraded ${t.path.name} to ${tt(e.toCommit)}`),onError:()=>B.error(Ye),onSettled:(e,t,n)=>{Pe(null),Te(n.path.name)}}),q=(0,G.useCallback)(e=>h(t=>{let n=new URLSearchParams(t);return n.set(`plugin`,e.name),n}),[h]),Xe=(0,G.useCallback)(()=>h(e=>{let t=new URLSearchParams(e);return t.delete(`plugin`),t},{replace:!0}),[h]),Ze=(0,G.useCallback)(t=>{Be.mutate({path:{assistant_id:e},body:{name:t.name}})},[e,Be]),$e=(0,G.useCallback)(()=>{H&&(He.mutate({path:{assistant_id:e,name:H.name}}),U(null))},[e,H,He]),J=(0,G.useCallback)(t=>{Ue.mutate({path:{assistant_id:e,name:t},body:{}})},[e,Ue]),nt=(0,G.useCallback)(()=>{W&&(J(W.name),ze(null))},[W,J]),rt=(0,G.useCallback)((e,t)=>{if(st(t)){ze(e);return}J(e.name)},[J]),Y=(0,G.useMemo)(()=>j?I.data?.skills??[]:[],[j,I.data?.skills]),it=(0,G.useMemo)(()=>V?et(me,M).filter(e=>Qe(e,E)):[],[V,me,M,E]),at=(0,G.useMemo)(()=>Yt([...Y.map(e=>({type:`skill`,key:`skill:${e.id}`,name:e.name,installed:v(e),skill:e})),...it.map(e=>({type:`plugin`,key:`plugin:${e.name}`,name:e.name,installed:e.status===`installed`,item:e}))]),[Y,it]),X=y===null?I.data:pe.data,ot=Zt(j,X?.skills??Y,X?.categoryCounts,X?.totalCount),Z=Qt(ae&&ve,z,ye,be,xe,Ce,M),{counts:ct,totalCount:lt}=(0,G.useMemo)(()=>{let e={...ot.counts};for(let[t,n]of Object.entries(Z.counts))e[t]=(e[t]??0)+n;return{counts:e,totalCount:ot.totalCount+Z.totalCount}},[ot,Z]),ut=j&&I.isLoading,Q=j&&I.isError,dt=V&&L,$=V&&ge,pt=(Q||!j)&&($||!V)&&(Q||$),gt=ut||dt,_t=!!E&&(j&&I.isFetching||V&&_e&&!L),yt=w.trim().length>0;if(b&&!p&&f===null)return null;if(b&&p){let t=me.find(e=>e.name===b),n={assistantId:e,name:b,externalHint:t?.external,enabled:t?.enabled,onBack:Xe};return d?(0,K.jsx)(mt,{...n}):(0,K.jsx)(ft,{...n})}let xt=(0,K.jsx)(`div`,{className:`min-w-0 flex-1 overflow-y-auto`,children:gt?(0,K.jsx)(nn,{}):pt?(0,K.jsx)(rn,{}):at.length===0?V&&he&&M!==`installed`?(0,K.jsx)(nn,{}):(0,K.jsx)(an,{filter:A,category:y}):(0,K.jsx)(`ul`,{className:`flex flex-col gap-2`,children:at.map(t=>(0,K.jsx)(`li`,{children:t.type===`skill`?(0,K.jsx)(bt,{skill:t.skill,onSelect:()=>r(ke.skills.detail(t.skill.id),{state:{listSearch:i.search}}),onInstall:()=>oe(t.skill),onRemove:()=>se(t.skill),isInstalling:N(t.skill),isRemoving:ce(t.skill)}):t.installed?(0,K.jsx)($t,{assistantId:e,item:t.item,onSelect:()=>q(t.item),onRemove:()=>U(t.item),onUpgrade:e=>rt(t.item,e),isRemoving:Oe===t.item.name,isUpgrading:Ne===t.item.name}):(0,K.jsx)(ht,{assistantId:e,item:t.item,onSelect:()=>q(t.item),onInstall:()=>Ze(t.item),isInstalling:Ee===t.item.name})},t.key))})});return(0,K.jsxs)(`div`,{className:`flex h-full min-h-0 flex-1 flex-col gap-4`,children:[!re&&(0,K.jsx)(en,{onDismiss:k}),(0,K.jsx)(wt,{search:w,onSearchChange:T,filter:A,onFilterChange:te,isSearching:_t,categories:de,category:y,onCategoryChange:O,counts:ct,totalCount:lt,showCounts:!yt,pluginsSupported:p}),!gt&&!pt&&Q?(0,K.jsx)(tn,{text:`Skills are temporarily unavailable. Plugins are still listed below.`}):null,!gt&&!pt&&$?(0,K.jsx)(tn,{text:`Plugins are temporarily unavailable. Skills are still listed below.`}):null,V&&R&&!dt&&!$?(0,K.jsx)(tn,{text:`Plugin catalog browsing is temporarily unavailable. Installed plugins are still listed below.`}):null,(0,K.jsxs)(`div`,{className:`flex min-h-0 flex-1 gap-6`,children:[(0,K.jsx)(`aside`,{className:`hidden w-56 shrink-0 overflow-y-auto sm:block`,children:(0,K.jsx)(vt,{ariaLabel:`Superpower categories`,selected:y,onSelect:O,counts:ct,totalCount:lt,showCounts:!yt,categories:de})}),xt]}),(0,K.jsx)(Ve,{skillName:P?.name??null,onConfirm:le,onCancel:ue}),(0,K.jsx)(Se,{open:H!==null,title:`Remove plugin`,message:H?We(H.name):``,confirmLabel:`Remove`,destructive:!0,onConfirm:$e,onCancel:()=>U(null)}),(0,K.jsx)(Se,{open:W!==null,title:`Upgrade plugin`,message:W?Ge(W.name):``,confirmLabel:Ke,destructive:!0,onConfirm:nt,onCancel:()=>ze(null)})]})}function Zt(e,t,n,r){return(0,G.useMemo)(()=>{if(!e)return{counts:{},totalCount:0};if(n&&Object.keys(n).length>0)return{counts:n,totalCount:r??t.length};let i={};for(let e of t){let t=e.category??`system`;i[t]=(i[t]??0)+1}return{counts:i,totalCount:r??t.length}},[e,t,n,r])}function Qt(e,t,n,r,i,a,o){return(0,G.useMemo)(()=>{if(!e)return{counts:{},totalCount:0};let s={},c=o!==`available`,l=o===`all`||o===`available`;if(c)if(t&&Object.keys(t).length>0)Object.assign(s,t);else for(let e of n){let t=e.category??`system`;s[t]=(s[t]??0)+1}let u=0;if(l)for(let e of i){if(a.has(e.name))continue;let t=e.category??`system`;s[t]=(s[t]??0)+1,u+=1}let d=r??n.length;return{counts:s,totalCount:(c?d:0)+u}},[e,t,n,r,i,a,o])}function $t({assistantId:e,item:t,onSelect:n,onRemove:r,onUpgrade:i,isRemoving:a,isUpgrading:o}){let s=Z({assistantId:e,name:t.name}).data;return(0,K.jsx)(ht,{assistantId:e,item:t,drift:s,onSelect:n,onRemove:r,onUpgrade:()=>i(s),isRemoving:a,isUpgrading:o})}function en({onDismiss:e}){return(0,K.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg px-4 py-2.5 text-body-small-default`,style:{backgroundColor:`var(--surface-base)`,color:`var(--content-secondary)`},children:[(0,K.jsx)(pe,{className:`h-4 w-4 shrink-0`,style:{color:`var(--primary-base)`}}),(0,K.jsx)(`p`,{className:`flex-1`,children:`Create a new custom skill by describing what you want in chat, or install plugins to extend your assistant.`}),(0,K.jsx)(a,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,K.jsx)(_e,{"aria-hidden":!0}),onClick:e,"aria-label":`Dismiss tip`,tintColor:`var(--content-tertiary)`,expandOnMobile:!1})]})}function tn({text:e}){return(0,K.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg px-4 py-2.5 text-body-small-default`,style:{backgroundColor:`var(--surface-base)`,color:`var(--content-secondary)`},children:[(0,K.jsx)(re,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`},"aria-hidden":!0}),(0,K.jsx)(`p`,{className:`flex-1`,children:e})]})}function nn(){return(0,K.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,K.jsx)(P,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})})}function rn(){return(0,K.jsx)(p.Root,{children:(0,K.jsxs)(p.Body,{className:`flex flex-col items-center justify-center py-16 text-center`,children:[(0,K.jsx)(he,{className:`mb-3 h-8 w-8`,style:{color:`var(--system-danger)`},"aria-hidden":!0}),(0,K.jsx)(`h3`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:`Failed to load superpowers`}),(0,K.jsx)(`p`,{className:`mt-1 max-w-sm text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Something went wrong. Try refreshing the page.`})]})})}function an({filter:e,category:t}){let{title:n,subtitle:r,Icon:i}=on(e,t);return(0,K.jsx)(y,{icon:i,title:n,subtitle:r})}function on(e,t){if(t)return{title:`Nothing in this category`,subtitle:`Try selecting a different category or clearing the filter.`,Icon:N};switch(e){case`installed`:return{title:`No Superpowers Installed`,subtitle:`Ask your assistant in chat to search for and install new skills and plugins.`,Icon:R};case`available`:return{title:`Nothing Left to Install`,subtitle:`All available skills and plugins are installed.`,Icon:O};case`skills`:return{title:`No Skills Found`,subtitle:`Ask your assistant in chat to search for and install new skills.`,Icon:R};case`plugins`:return{title:`No Plugins Found`,subtitle:`Browse the catalog to install plugins that extend your assistant.`,Icon:F};case`vellum`:return{title:`No Vellum Skills`,subtitle:`No bundled Vellum skills found.`,Icon:R};case`clawhub`:return{title:`No Clawhub Skills`,subtitle:`No Clawhub skills found. Try searching the catalog.`,Icon:R};case`skillssh`:return{title:`No skills.sh Skills`,subtitle:`No skills.sh skills found. Try searching the catalog.`,Icon:R};case`custom`:return{title:`No Custom Skills`,subtitle:`Create a custom skill by describing what you want in chat.`,Icon:R};case`assistant-memory`:return{title:`No Skills From Memory`,subtitle:`Skills your assistant authors from past conversations will appear here.`,Icon:R};default:return{title:`No Superpowers Available`,subtitle:`Check your connection to the Vellum catalog.`,Icon:re}}}function sn(){return(0,K.jsx)(Xt,{assistantId:ze()})}export{sn as SuperpowersPage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{s as t,t as n}from"./local-settings-Bx7FsNo5.js";import{t as r}from"./react-BFJW0bSv.js";import{W as i,t as a}from"./button-BENY-yx_.js";import{d as o,h as s,u as c}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as l}from"./QueryClientProvider-CMu7CkQU.js";import{t as u}from"./useQuery-Bz-fbQ-m.js";import{t as d}from"./useMutation-CXGTrp4W.js";import{t as f}from"./jsx-runtime-D3ZM-ToX.js";import{t as p}from"./card-q0GJX1HZ.js";import{t as m}from"./createLucideIcon-C1mdGPB9.js";import{t as h}from"./arrow-down-to-line-DmG4pLoU.js";import{t as g}from"./arrow-left-BikDV6F2.js";import{a as _,i as v,n as y,o as b,r as x,s as S,t as ee}from"./use-skill-actions-GbdM3IIw.js";import{t as C}from"./brain-ZiC0HCCF.js";import{t as w}from"./calendar-CTyC1v1L.js";import{t as T}from"./check-DSgjgwlo.js";import{i as E,n as D,r as te,t as ne}from"./invalidate-plugin-queries-zbCn3jP3.js";import{t as O}from"./circle-check-big-CpoRGdNz.js";import{t as re}from"./cloud-off-DyOAnFan.js";import{t as ie}from"./code-DwZ6Mhdw.js";import{I as k,P as A}from"./src-hNk11eS3.js";import{t as j}from"./download-Byg0fi0d.js";import{t as ae}from"./external-link-vwewPjbo.js";import{t as M}from"./globe-COk-NH9x.js";import{t as oe}from"./hard-drive-DsHzx0GK.js";import{t as se}from"./heart-CRsy5qXC.js";import{t as N}from"./layout-grid-C3h1DMhl.js";import{t as ce}from"./link-2-Bm55xvLL.js";import{t as P}from"./loader-circle-DOtGXcds.js";import{t as le}from"./mail-CYjppw70.js";import{t as ue}from"./message-circle-C6QWfv9m.js";import{t as de}from"./mic-bZFqVBA_.js";import{t as F}from"./puzzle-CIWAeBs0.js";import{t as fe}from"./search-D2xMZu1P.js";import{t as I}from"./settings-751LDGs_.js";import{t as pe}from"./sparkles-B94iNYGJ.js";import{t as me}from"./terminal-CkQ9DSF2.js";import{t as L}from"./trash-2-BKXSi5Tj.js";import{t as he}from"./triangle-alert-CB4pJgCL.js";import{t as ge}from"./user-Djte2CiZ.js";import{t as _e}from"./x-338EsJDP.js";import{n as R,t as ve}from"./installed-plugins-query-CIcohCho.js";import{t as z}from"./tag-DeMzQvCo.js";import{t as ye}from"./popover-CAbJ9178.js";import{t as be}from"./input-DmHXRXaB.js";import{t as xe}from"./toggle-C-v4x7_A.js";import{n as B}from"./toast-BpuLSxyt.js";import{t as Se}from"./confirm-dialog-zx8L9sUi.js";import{t as Ce}from"./file-markdown-CZPyyZhu.js";import{t as we}from"./assistant-identity-store-nE-e8KQw.js";import{i as V}from"./utils-CVoSWh7U.js";import{Hn as Te,Vn as Ee,Wn as De,qn as Oe}from"./sdk.gen-CBPZ2IdN.js";import{d as ke}from"./routes-iipg2wkc.js";import{At as Ae,dt as je,hn as Me,kt as Ne,lt as Pe,mn as Fe,mt as H,pn as Ie,pt as U}from"./react-query.gen-DxjuNs-5.js";import{n as Le}from"./use-is-mobile-BP8UePsY.js";import{t as W}from"./misc-Z0jXGGeY.js";import{t as Re}from"./plugins-surface-C5i913ST.js";import{t as ze}from"./use-active-assistant-id-BvHP5Ojg.js";import{n as Be,r as Ve}from"./skills-Lf85mR9L.js";var He=m(`funnel`,[[`path`,{d:`M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z`,key:`sc7q7i`}]]),G=e(r(),1),K=f(),Ue={sm:`h-7 w-7`,md:`h-8 w-8 text-3xl`};function q({external:e=!1,icon:t,iconSrc:n,size:r=`sm`,className:i}){let[a,o]=(0,G.useState)(!1);(0,G.useEffect)(()=>{o(!1)},[n]);let s=t||(e?`📦`:`🧩`),c=!!n&&!a;return(0,K.jsx)(`span`,{className:W(`flex shrink-0 items-center justify-center`,Ue[r],i),children:c?(0,K.jsx)(`img`,{src:n,alt:``,"aria-hidden":!0,loading:`lazy`,className:`h-full w-full object-contain`,onError:()=>o(!0)}):s})}var We=e=>`Remove "${e}" from this assistant?`,Ge=e=>`"${e}" has local edits that will be overwritten by the upgrade. Continue?`,Ke=`Upgrade anyway`,qe=`Failed to install plugin. Please try again.`,Je=`Failed to remove plugin. Please try again.`,Ye=`Failed to upgrade plugin. Please try again.`,Xe=`Failed to update plugin. Please try again.`;function Ze(e,t){let n=e.map(e=>({name:e.name,description:e.description??void 0,status:`installed`,external:void 0,version:e.version??void 0,path:e.path,issues:e.issues,enabled:e.enabled,icon:e.icon,hasIcon:e.hasIcon,iconVersion:e.iconVersion})),r=new Set(n.map(e=>e.name)),i=t.filter(e=>!r.has(e.name)).map(e=>({name:e.name,description:e.description,status:`available`,external:!0,path:e.path}));return[...n,...i]}function Qe(e,t){let n=t.trim().toLowerCase();return n?[e.name,e.description].some(e=>e?.toLowerCase().includes(n)):!0}function $e(e){return[...e].sort((e,t)=>{let n=e.status===`installed`;return n===(t.status===`installed`)?e.name.localeCompare(t.name,void 0,{sensitivity:`base`}):n?-1:1})}function et(e,t){switch(t){case`all`:return e;case`available`:return e.filter(e=>e.status===`available`);case`installed`:return e.filter(e=>e.status===`installed`);case`active`:return e.filter(e=>e.status===`installed`&&e.enabled!==!1);case`off`:return e.filter(e=>e.status===`installed`&&e.enabled===!1)}}function tt(e){return e?e.slice(0,7):`unknown`}function J({plugin:e,surfaces:t=null,className:n}){let r=[{label:`Source`,value:e.source?.kind===`github`?e.source.repo:`Local`,href:(e.source?.kind===`github`?`https://github.com/${e.source.repo}`:null)??void 0}];return e.homepage&&r.push({label:`Homepage`,value:e.homepage,href:e.homepage}),e.license&&r.push({label:`License`,value:e.license}),t&&(t.skills.length>0&&r.push({label:`Skills`,value:String(t.skills.length)}),t.hooks.length>0&&r.push({label:`Hooks`,value:String(t.hooks.length)}),t.tools.length>0&&r.push({label:`Tools`,value:String(t.tools.length)})),(0,K.jsx)(`dl`,{className:W(`mb-5 grid gap-x-6 gap-y-2 border-b pb-5 sm:grid-cols-[max-content_1fr]`,n),style:{borderColor:`var(--border-base)`},children:r.map(e=>(0,K.jsxs)(`div`,{className:`contents`,children:[(0,K.jsx)(`dt`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e.label}),(0,K.jsx)(`dd`,{className:`min-w-0 truncate text-body-small-default`,style:{color:`var(--content-secondary)`},children:e.href?(0,K.jsxs)(`a`,{href:e.href,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 underline`,style:{color:`var(--primary-base, #60a5fa)`},children:[e.value,(0,K.jsx)(ae,{className:`h-3 w-3`,"aria-hidden":!0})]}):e.value})]},e.label))})}function nt({plugin:e,drift:t,onInstall:n,onRemove:r,onUpgrade:i,isInstalling:o,isRemoving:s,isUpgrading:c,hasLocalEdits:l,enabled:u,onToggle:d,isToggling:f}){let[p,m]=(0,G.useState)(!1),[g,_]=(0,G.useState)(!1),v=e.installed??!1,y=e.artifact??null,b=t?.status===`update-available`,x=b?`Upgrade ${tt(t?.local?.commit??null)} → ${tt(t?.remote?.commit??null)}`:void 0;return(0,K.jsxs)(K.Fragment,{children:[v?(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 md:flex-nowrap md:shrink-0`,children:[u!==void 0&&d?(0,K.jsx)(xe,{label:`Auto-include in chat`,checked:u,onChange:()=>d(),disabled:f}):null,y?(0,K.jsx)(a,{asChild:!0,leftIcon:(0,K.jsx)(j,{"aria-hidden":!0}),children:(0,K.jsx)(`a`,{href:y.url,download:!0,children:y.label??`Download`})}):null,b?(0,K.jsx)(a,{type:`button`,onClick:()=>{if(l){_(!0);return}i()},disabled:c,title:x,leftIcon:c?(0,K.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}):(0,K.jsx)(E,{"aria-hidden":!0}),children:`Upgrade`}):null,(0,K.jsx)(a,{type:`button`,variant:`dangerOutline`,onClick:()=>m(!0),disabled:s,leftIcon:s?(0,K.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}):(0,K.jsx)(L,{"aria-hidden":!0}),children:`Remove`})]}):(0,K.jsx)(a,{type:`button`,onClick:n,disabled:o,leftIcon:o?(0,K.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}):(0,K.jsx)(h,{"aria-hidden":!0}),children:`Install`}),(0,K.jsx)(Se,{open:p,title:`Remove plugin`,message:We(e.name),confirmLabel:`Remove`,destructive:!0,onConfirm:()=>{m(!1),r()},onCancel:()=>m(!1)}),(0,K.jsx)(Se,{open:g,title:`Upgrade plugin`,message:Ge(e.name),confirmLabel:Ke,destructive:!0,onConfirm:()=>{_(!1),i()},onCancel:()=>_(!1)})]})}function rt(){return(0,K.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,K.jsx)(P,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})})}function Y(){return(0,K.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 py-12 text-center`,style:{color:`var(--content-tertiary)`},children:[(0,K.jsx)(he,{className:`h-6 w-6`,"aria-hidden":!0}),(0,K.jsx)(`p`,{className:`text-body-medium-default`,children:`We couldn't load this plugin.`}),(0,K.jsx)(`p`,{className:`text-body-small-default`,children:`It may not exist, or your assistant may be on an older build.`})]})}function it({isInstallError:e,isRemoveError:t,isUpgradeError:n}){let r=e?qe:t?Je:n?Ye:null;return r?(0,K.jsxs)(`div`,{className:`mb-3 flex items-center gap-2 rounded px-3 py-2 text-body-small-default`,style:{backgroundColor:`var(--surface-secondary)`,color:`var(--content-warning, var(--content-tertiary))`},role:`alert`,children:[(0,K.jsx)(he,{className:`h-4 w-4 shrink-0`,"aria-hidden":!0}),r]}):null}function at({external:e,className:t}){let n=e?{label:`External`,icon:M}:{label:`Local`,icon:oe};return(0,K.jsx)(z,{tone:`neutral`,leftIcon:(0,G.createElement)(n.icon),className:t,children:n.label})}function X({onClick:e,isUpgrading:t=!1}={}){let n=(0,K.jsx)(z,{tone:`warning`,leftIcon:(0,G.createElement)(t?P:E,{className:t?`animate-spin`:void 0}),className:`shrink-0`,children:`Update available`});return e?(0,K.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),e()},disabled:t,"aria-label":`Upgrade plugin`,className:`shrink-0 rounded-[6px] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:cursor-not-allowed`,children:n}):n}var ot=300*1e3;function Z({assistantId:e,name:t,enabled:n=!0}){return u({...je({path:{assistant_id:e,name:t}}),enabled:!!e&&!!t&&n,staleTime:ot,retry:!1})}function st(e){let t=e?.local?.localChanges;return!!t&&t?.clean===!1}function ct(e,t,n){let r=l(),i=n?.onRemoved,a=u({...Pe({path:{assistant_id:e,name:t}}),enabled:!!e&&!!t}),o=Z({assistantId:e,name:t,enabled:a.data?.installed??!1}).data,s=(0,G.useCallback)(()=>ne(r,e,t),[e,t,r]),c=Me({onSuccess:()=>{s(),B.success(`Installed ${t||`plugin`}`)}}),d=Ie({onSuccess:()=>{s(),i?.()}}),f=Fe({onSuccess:e=>{s(),B.success(e.outcome===`already-up-to-date`?`${t||`Plugin`} is already up to date`:`Upgraded ${t||`plugin`} to ${tt(e.toCommit)}`)}});return{plugin:a.data??null,drift:o,isLoading:a.isLoading,isError:a.isError,install:()=>{c.mutate({path:{assistant_id:e},body:{name:t}})},remove:()=>{d.mutate({path:{assistant_id:e,name:t}})},upgrade:()=>{f.mutate({path:{assistant_id:e,name:t},body:{}})},isInstalling:c.isPending,isRemoving:d.isPending,isUpgrading:f.isPending,isInstallError:c.isError,isRemoveError:d.isError,isUpgradeError:f.isError,hasLocalEdits:st(o)}}var lt=`0.10.5`;function ut(){return V(lt)}function Q(e,t,n,r){let i=ut(),{data:a}=u({queryKey:[`pluginIcon`,e,t,r],queryFn:async()=>{let{data:n,error:r}=await De({path:{assistant_id:e,name:t},parseAs:`blob`,throwOnError:!1});if(r||!(n instanceof Blob))throw Error(`Failed to load plugin icon`);return n},enabled:!!(i&&n&&r),staleTime:1/0,retry:!1}),[o,s]=(0,G.useState)(void 0);return(0,G.useEffect)(()=>{if(!a){s(void 0);return}let e=URL.createObjectURL(a);return s(e),()=>{URL.revokeObjectURL(e)}},[a]),o}function dt(e){let t=l(),n={queryKey:U({path:{assistant_id:e}})},r=(e,r)=>{t.setQueriesData(n,t=>t&&{...t,plugins:t.plugins.map(t=>t.name===e?{...t,enabled:r}:t)})},i=d({mutationFn:async({name:t,nextEnabled:n})=>{let r=await(n?Te({path:{assistant_id:e,name:t},throwOnError:!1}):Ee({path:{assistant_id:e,name:t},throwOnError:!1})),i=r.response?.status;if(r.response?.ok||i===409)return r;throw Error(`Plugin toggle failed (${i??`network error`})`)},onMutate:async({name:e,nextEnabled:i})=>{await t.cancelQueries(n),r(e,i)},onError:(e,{name:t,nextEnabled:n})=>{r(t,!n),B.error(Xe)},onSettled:(n,r,i)=>{ne(t,e,i.name)}});return{toggle:(e,t)=>{i.mutate({name:e,nextEnabled:t})},togglingName:i.isPending?i.variables?.name??null:null}}function ft({assistantId:e,name:t,onBack:n,externalHint:r,enabled:i}){let{plugin:o,drift:s,isLoading:c,isError:l,install:u,remove:d,upgrade:f,isInstalling:m,isRemoving:h,isUpgrading:_,isInstallError:v,isRemoveError:y,isUpgradeError:b,hasLocalEdits:x}=ct(e,t,{onRemoved:n}),{toggle:S,togglingName:ee}=dt(e),C=Q(e,t,o?.hasIcon,o?.iconVersion);return(0,K.jsxs)(`div`,{className:`flex h-full min-h-0 flex-1 flex-col`,children:[(0,K.jsxs)(`div`,{className:`mb-4 flex items-start gap-3`,children:[(0,K.jsx)(a,{type:`button`,variant:`ghost`,iconOnly:(0,K.jsx)(g,{"aria-hidden":!0}),"aria-label":`Back to plugins`,onClick:n}),(0,K.jsx)($,{name:t,plugin:o,externalHint:r,iconSrc:C,drift:s,onInstall:u,onRemove:d,onUpgrade:f,isInstalling:m,isRemoving:h,isUpgrading:_,hasLocalEdits:x,enabled:i,onToggle:()=>S(t,!i),isToggling:ee===t})]}),(v||y||b)&&(0,K.jsx)(it,{isInstallError:v,isRemoveError:y,isUpgradeError:b}),(0,K.jsx)(p.Root,{asChild:!0,children:(0,K.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-6 py-5`,children:c?(0,K.jsx)(rt,{}):l||!o?(0,K.jsx)(Y,{}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(J,{plugin:o,surfaces:s?.surfaces??null}),o.readme?(0,K.jsx)(Ce,{content:o.readme}):(0,K.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`This plugin doesn't ship a README.`})]})})})]})}function $({name:e,plugin:t,externalHint:n,iconSrc:r,drift:i,onInstall:a,onRemove:o,onUpgrade:s,isInstalling:c,isRemoving:l,isUpgrading:u,hasLocalEdits:d,enabled:f,onToggle:p,isToggling:m}){let h=t?.source?.kind===`github`,g=t?h:n,_=i?.status===`update-available`;return(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-3 sm:flex-row sm:items-center`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-start gap-3`,children:[g===void 0?(0,K.jsx)(`span`,{"aria-hidden":!0,className:`h-8 w-8 shrink-0`}):(0,K.jsx)(q,{external:g,icon:t?.icon??void 0,iconSrc:r,size:`md`}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1`,children:[(0,K.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:t?.name??e}),t?.version?(0,K.jsxs)(`span`,{className:`shrink-0 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[`v`,t.version]}):null,t?(0,K.jsx)(at,{external:h}):null,_?(0,K.jsx)(X,{}):null]}),t?.description?(0,K.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-body-medium-lighter`,style:{color:`var(--content-secondary)`},children:t.description}):null]})]}),t?(0,K.jsx)(nt,{plugin:t,drift:i,onInstall:a,onRemove:o,onUpgrade:s,isInstalling:c,isRemoving:l,isUpgrading:u,hasLocalEdits:d,enabled:f,onToggle:p,isToggling:m}):null]})}var pt=e(i(),1);function mt({assistantId:e,name:t,onBack:n,externalHint:r,enabled:i}){let{plugin:o,drift:s,isLoading:c,isError:l,install:u,remove:d,upgrade:f,isInstalling:m,isRemoving:h,isUpgrading:_,isInstallError:v,isRemoveError:y,isUpgradeError:b,hasLocalEdits:x}=ct(e,t,{onRemoved:n}),{toggle:S,togglingName:ee}=dt(e),[C,w]=(0,G.useState)(null);(0,G.useEffect)(()=>{w(document.getElementById(`viewport-overlays`))},[]);let T=o?.source?.kind===`github`,E=o?T:r,D=s?.status===`update-available`,te=o?.name??t,ne=Q(e,t,o?.hasIcon,o?.iconVersion),O=(0,K.jsxs)(`div`,{className:`fixed inset-0 z-40 flex flex-col overflow-hidden bg-[var(--surface-overlay)]`,style:{paddingTop:`calc(8px + var(--safe-area-inset-top, env(safe-area-inset-top, 0px)))`,paddingBottom:`calc(8px + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)))`,paddingLeft:`calc(12px + var(--safe-area-inset-left, env(safe-area-inset-left, 0px)))`,paddingRight:`calc(12px + var(--safe-area-inset-right, env(safe-area-inset-right, 0px)))`},children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(a,{variant:`ghost`,iconOnly:(0,K.jsx)(g,{"aria-hidden":!0}),expandOnMobile:!0,"aria-label":`Back to plugins`,onClick:n,className:`max-md:bg-[var(--surface-active)]`}),(0,K.jsx)(`span`,{className:`min-w-0 flex-1 truncate px-2 text-center text-body-medium-default`,style:{color:`var(--content-secondary)`},children:te}),(0,K.jsx)(`span`,{"aria-hidden":!0,className:`h-8 w-8 shrink-0 touch-mobile:h-10 touch-mobile:w-10`})]}),(0,K.jsxs)(`div`,{className:`mt-4 flex flex-col gap-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[E===void 0?(0,K.jsx)(`span`,{"aria-hidden":!0,className:`h-8 w-8 shrink-0`}):(0,K.jsx)(q,{external:E,icon:o?.icon??void 0,iconSrc:ne,size:`md`}),(0,K.jsx)(`h2`,{className:`min-w-0 truncate text-title-medium`,style:{color:`var(--content-emphasised)`},children:te})]}),(0,K.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[D?(0,K.jsx)(X,{}):null,o?(0,K.jsx)(at,{external:T}):null]})]}),o?.description?(0,K.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:o.description}):null]}),o?(0,K.jsx)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:(0,K.jsx)(nt,{plugin:o,drift:s,enabled:i,onToggle:()=>S(t,!i),isToggling:ee===t,onInstall:u,onRemove:d,onUpgrade:f,isInstalling:m,isRemoving:h,isUpgrading:_,hasLocalEdits:x})}):null,(v||y||b)&&(0,K.jsx)(`div`,{className:`mt-3`,children:(0,K.jsx)(it,{isInstallError:v,isRemoveError:y,isUpgradeError:b})}),(0,K.jsx)(p.Root,{asChild:!0,noPadding:!0,children:(0,K.jsx)(`div`,{className:`mt-6 flex min-h-0 flex-1 flex-col overflow-hidden rounded-2xl border bg-[var(--surface-lift)]`,style:{borderColor:`var(--border-hover)`},children:(0,K.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-4`,children:c?(0,K.jsx)(rt,{}):l||!o?(0,K.jsx)(Y,{}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(J,{plugin:o,surfaces:s?.surfaces??null}),o.readme?(0,K.jsx)(Ce,{content:o.readme}):(0,K.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`This plugin doesn't ship a README.`})]})})})})]});return C?(0,pt.createPortal)(O,C):O}function ht({assistantId:e,item:t,drift:n,onSelect:r,onInstall:i,onRemove:o,onUpgrade:s,isInstalling:c=!1,isRemoving:l=!1,isUpgrading:u=!1}){let d=t.status===`available`,f=n?.status===`update-available`,m=t.enabled!==void 0,g=t.enabled===!1,_=Q(e,t.name,t.hasIcon,t.iconVersion);return(0,K.jsx)(p.Root,{asChild:!0,children:(0,K.jsxs)(`div`,{role:`button`,tabIndex:0,onClick:r,onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),r())},className:`flex cursor-pointer items-center gap-3 px-3 py-2 text-left transition-colors hover:bg-[var(--surface-hover)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:[(0,K.jsx)(q,{size:`sm`,external:t.external,icon:t.icon,iconSrc:_,className:g?`opacity-50`:void 0}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`truncate text-body-medium-default`,style:{color:g?`var(--content-tertiary)`:`var(--content-emphasised)`},children:t.name}),t.version?(0,K.jsxs)(`span`,{className:`shrink-0 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[`v`,t.version]}):null,(0,K.jsx)(z,{tone:`neutral`,leftIcon:(0,K.jsx)(F,{"aria-hidden":!0}),children:`Plugin`}),f?(0,K.jsx)(X,{onClick:s,isUpgrading:u}):null]}),(0,K.jsx)(`p`,{className:`mt-1 truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.description??`No description provided.`}),t.issues&&t.issues.length>0?(0,K.jsxs)(`p`,{className:`mt-1 truncate text-body-small-default`,style:{color:`var(--content-warning, var(--content-tertiary))`},title:t.issues.join(`; `),children:[t.issues[0],t.issues.length>1?` (+${t.issues.length-1} more)`:``]}):null]}),d?c?(0,K.jsx)(a,{type:`button`,iconOnly:(0,K.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}),disabled:!0,"aria-label":`Installing`,expandOnMobile:!1}):(0,K.jsx)(a,{type:`button`,iconOnly:(0,K.jsx)(h,{"aria-hidden":!0}),onClick:e=>{e.stopPropagation(),i?.()},disabled:!i,"aria-label":`Install plugin`,expandOnMobile:!1}):(0,K.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[m?(0,K.jsx)(z,{tone:t.enabled?`positive`:`neutral`,children:t.enabled?`Enabled`:`Disabled`}):null,(0,K.jsx)(a,{type:`button`,variant:`dangerOutline`,iconOnly:l?(0,K.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}):(0,K.jsx)(L,{"aria-hidden":!0}),onClick:e=>{e.stopPropagation(),o?.()},disabled:l||u||!o,"aria-label":`Remove plugin`,expandOnMobile:!1})]})]})})}var gt={mail:le,calendar:w,"message-circle":ue,globe:M,zap:R,code:ie,mic:de,"shopping-cart":D,palette:te,heart:se,settings:I,"link-2":ce};function _t(e){return gt[e]}function vt({selected:e,onSelect:t,counts:n,totalCount:r,showCounts:i,categories:a,ariaLabel:o=`Skill categories`}){let s=[...a].sort((e,t)=>e.label.localeCompare(t.label));return(0,K.jsxs)(`nav`,{className:`flex flex-col gap-1`,"aria-label":o,children:[(0,K.jsx)(yt,{icon:N,label:`All`,count:r,isActive:e===null,showCount:i,onClick:()=>t(null)}),s.map(r=>(0,K.jsx)(yt,{icon:_t(r.icon)??N,label:r.label,count:n[r.slug]??0,isActive:e===r.slug,showCount:i,onClick:()=>t(r.slug)},r.slug))]})}function yt({icon:e,label:t,count:n,isActive:r,showCount:i,onClick:o}){return(0,K.jsxs)(a,{variant:`ghost`,onClick:o,"aria-pressed":r,className:`h-auto justify-between gap-3 rounded-lg border-0 bg-transparent px-3 py-2 text-left hover:bg-[var(--ghost-hover)]`,style:{backgroundColor:r?`var(--surface-active)`:void 0,color:r?`var(--content-default)`:`var(--content-secondary)`},children:[(0,K.jsxs)(`span`,{className:`flex items-center gap-2.5`,children:[(0,K.jsx)(e,{className:`h-4 w-4 shrink-0`,"aria-hidden":!0}),(0,K.jsx)(`span`,{className:`text-body-medium-default`,children:t})]}),i&&(0,K.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:n})]})}function bt({skill:e,onSelect:t,onInstall:n,onRemove:r,isInstalling:i=!1,isRemoving:o=!1}){let s=x(e),c=Be(e);return(0,K.jsx)(p.Root,{asChild:!0,children:(0,K.jsxs)(`div`,{role:`button`,tabIndex:0,onClick:t,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t())},className:`flex cursor-pointer items-center gap-3 px-3 py-2 text-left transition-colors hover:bg-[var(--surface-hover)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:[(0,K.jsx)(`div`,{className:`flex shrink-0 items-center justify-center text-[28px] leading-none`,children:(0,K.jsx)(b,{skill:e,className:`h-7 w-7`})}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-emphasised)`},children:e.name}),(0,K.jsx)(_,{origin:e.origin})]}),(0,K.jsx)(`p`,{className:`mt-1 truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e.description})]}),s?i?(0,K.jsx)(a,{type:`button`,iconOnly:(0,K.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}),disabled:!0,"aria-label":`Installing`,expandOnMobile:!1}):(0,K.jsx)(a,{type:`button`,iconOnly:(0,K.jsx)(h,{"aria-hidden":!0}),onClick:e=>{e.stopPropagation(),n?.()},disabled:!n,"aria-label":`Install skill`,expandOnMobile:!1}):(0,K.jsx)(a,{type:`button`,variant:`dangerOutline`,iconOnly:o?(0,K.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}):(0,K.jsx)(L,{"aria-hidden":!0}),onClick:e=>{e.stopPropagation(),r?.()},disabled:!c||o||!r,"aria-label":c?`Remove skill`:`Bundled skill cannot be removed`,title:c?void 0:`Bundled skills cannot be removed`,expandOnMobile:!1})]})})}var xt=[{value:`all`,label:`All`,icon:N},{value:`installed`,label:`Installed`,icon:O},{value:`available`,label:`Available`,icon:h}],St=[{value:`skills`,label:`Skills`,icon:R},{value:`plugins`,label:`Plugins`,icon:F}],Ct=[{value:`vellum`,label:`Vellum`,icon:S},{value:`clawhub`,label:`Clawhub`,icon:M},{value:`skillssh`,label:`skills.sh`,icon:me},{value:`custom`,label:`Custom`,icon:ge},{value:`assistant-memory`,label:`Assistant's Memory`,icon:C}];function wt({search:e,onSearchChange:t,filter:n,onFilterChange:r,isSearching:i,categories:a,category:o,onCategoryChange:s,counts:c,totalCount:l,showCounts:u,pluginsSupported:d}){return(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(be,{type:`search`,value:e,onChange:e=>{t(e.target.value)},placeholder:`Search superpowers`,"aria-label":`Search superpowers`,leftIcon:(0,K.jsx)(fe,{className:`h-4 w-4`,"aria-hidden":!0}),rightIcon:i?(0,K.jsx)(P,{className:`h-4 w-4 animate-spin`,"aria-hidden":!0}):void 0,fullWidth:!0,wrapperClassName:`flex-1`}),(0,K.jsx)(Tt,{filter:n,onFilterChange:r,categories:a,category:o,onCategoryChange:s,counts:c,totalCount:l,showCounts:u,pluginsSupported:d})]})}function Tt(e){let t=Le(),[n,r]=(0,G.useState)(!1),i=(0,K.jsx)(a,{type:`button`,variant:`outlined`,iconOnly:(0,K.jsx)(He,{"aria-hidden":!0}),"aria-label":`Filter superpowers`,"aria-haspopup":t?`dialog`:`listbox`,"aria-expanded":n,tintColor:`var(--primary-base)`});if(t)return(0,K.jsx)(Et,{...e,open:n,onOpenChange:r,trigger:i});let o=t=>{e.onFilterChange(t),r(!1)};return(0,K.jsxs)(ye.Root,{open:n,onOpenChange:r,children:[(0,K.jsx)(ye.Trigger,{asChild:!0,children:i}),(0,K.jsx)(ye.Content,{align:`end`,sideOffset:4,className:`w-44 overflow-hidden p-0`,children:(0,K.jsxs)(`ul`,{role:`listbox`,children:[(0,K.jsx)(kt,{label:`Status`,options:xt,selected:e.filter,onSelect:o}),e.pluginsSupported&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,K.jsx)(kt,{label:`Type`,options:St,selected:e.filter,onSelect:o})]}),(0,K.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,K.jsx)(kt,{label:`Source`,options:Ct,selected:e.filter,onSelect:o})]})})]})}function Et({filter:e,onFilterChange:t,categories:n,category:r,onCategoryChange:i,counts:o,totalCount:s,showCounts:c,pluginsSupported:l,open:u,onOpenChange:d,trigger:f}){let p=[...n].sort((e,t)=>e.label.localeCompare(t.label));return(0,K.jsxs)(k.Root,{open:u,onOpenChange:d,children:[(0,K.jsx)(k.Trigger,{asChild:!0,children:f}),(0,K.jsxs)(k.Content,{className:`max-h-[85dvh]`,"aria-describedby":void 0,children:[(0,K.jsx)(`div`,{"aria-hidden":!0,className:`mx-auto mb-3 h-1 w-9 shrink-0 rounded-full bg-[var(--border-element)]`}),(0,K.jsx)(k.Header,{children:(0,K.jsx)(k.Title,{children:`Filters`})}),(0,K.jsxs)(k.Body,{className:`flex flex-col gap-3 pt-2`,children:[(0,K.jsx)(Dt,{label:`Status`,children:xt.map(n=>(0,K.jsx)(Ot,{icon:n.icon,label:n.label,active:e===n.value,onSelect:()=>t(n.value)},n.value))}),l&&(0,K.jsx)(Dt,{label:`Type`,children:St.map(n=>(0,K.jsx)(Ot,{icon:n.icon,label:n.label,active:e===n.value,onSelect:()=>t(n.value)},n.value))}),(0,K.jsx)(Dt,{label:`Source`,children:Ct.map(n=>(0,K.jsx)(Ot,{icon:n.icon,label:n.label,active:e===n.value,onSelect:()=>t(n.value)},n.value))}),(0,K.jsxs)(Dt,{label:`Categories`,children:[(0,K.jsx)(Ot,{icon:N,label:`All`,active:r===null,badge:c?s:void 0,onSelect:()=>i(null)}),p.map(e=>(0,K.jsx)(Ot,{icon:_t(e.icon)??N,label:e.label,active:r===e.slug,badge:c?o[e.slug]??0:void 0,onSelect:()=>i(e.slug)},e.slug))]})]}),(0,K.jsx)(k.Footer,{children:(0,K.jsx)(a,{type:`button`,variant:`primary`,fullWidth:!0,onClick:()=>d(!1),children:`Done`})})]})]})}function Dt({label:e,children:t}){return(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`px-2 pb-1 text-body-small-default uppercase tracking-wide`,style:{color:`var(--content-tertiary)`},children:e}),t]})}function Ot({icon:e,label:t,active:n,badge:r,onSelect:i}){return(0,K.jsx)(A,{icon:e,label:t,active:n,activeVariant:`branded`,badge:r,trailingAction:n&&r==null?(0,K.jsx)(T,{className:`h-4 w-4 text-[var(--primary-base)]`,"aria-hidden":!0}):void 0,onSelect:i})}function kt({label:e,options:t,selected:n,onSelect:r}){return(0,K.jsxs)(`li`,{children:[(0,K.jsx)(`div`,{className:`px-3 pb-1 pt-2 text-body-small-default uppercase tracking-wide`,style:{color:`var(--content-tertiary)`},children:e}),(0,K.jsx)(`ul`,{children:t.map(e=>{let t=e.icon,i=n===e.value;return(0,K.jsx)(`li`,{children:(0,K.jsxs)(`button`,{type:`button`,onClick:()=>r(e.value),role:`option`,"aria-selected":i,className:`flex w-full items-center gap-2 px-3 py-1.5 text-left text-body-medium-lighter transition-colors hover:bg-[var(--surface-hover)]`,style:{color:i?`var(--primary-base)`:`var(--content-default)`},children:[(0,K.jsx)(t,{className:`h-4 w-4`,"aria-hidden":!0}),(0,K.jsx)(`span`,{className:`flex-1`,children:e.label}),i&&(0,K.jsx)(O,{className:`h-3.5 w-3.5`,"aria-hidden":!0})]})},e.value)})})]})}var At=300*1e3,jt=[],Mt=[];async function Nt(e,t,n){let r=await Oe({path:{assistant_id:e},query:{q:void 0,category:t},signal:n,throwOnError:!1});if(r.response?.status===404)return{plugins:[]};if(!r.response?.ok)throw Error(`Failed to load plugins`);return r.data??{plugins:[]}}function Pt(e,t){let[n,r]=(0,G.useState)({assistantId:e,latched:!1}),i=n.assistantId===e?n.latched:!1;return n.assistantId!==e&&r({assistantId:e,latched:!1}),(0,G.useEffect)(()=>{t&&r(t=>t.assistantId===e&&t.latched?t:{assistantId:e,latched:!0})},[e,t]),i||t}function Ft(e,t=null,n=!0){let r=t??void 0,i=u({queryKey:U({path:{assistant_id:e},query:{q:void 0,category:r}}),queryFn:({signal:t})=>Nt(e,r,t),enabled:!!e&&n,staleTime:At}),a=u({...ve(e),enabled:!!e&&n&&t!==null}),o=u({...H({path:{assistant_id:e},query:{q:void 0}}),enabled:!!e&&n,staleTime:At}),s=(0,G.useMemo)(()=>{let e=t===null?i.data?.plugins:a.data?.plugins??i.data?.plugins;return new Set((e??jt).map(e=>e.name))},[t,a.data?.plugins,i.data?.plugins]),c=(0,G.useMemo)(()=>{let e=i.data?.plugins??jt,n=o.data?.matches??Mt;return $e(Ze(e,(t===null?n:n.filter(e=>(e.category??`system`)===t)).filter(e=>!s.has(e.name))))},[i.data?.plugins,o.data?.matches,t,s]),d=t===null?i.data:a.data,f=Pt(e,d?.categoryCounts!==void 0),p=Pt(e,(d?.plugins??jt).some(e=>e.enabled!==void 0)),m=l(),h=(0,G.useRef)(null);return(0,G.useEffect)(()=>{if(h.current===e||!o.isSuccess)return;let t=d?.plugins;if(!t?.length)return;let n=new Map((o.data?.matches??Mt).map(e=>[e.name,e.category]));t.some(e=>{let t=n.get(e.name);return t!=null&&t!==`system`&&(e.category??`system`)===`system`})&&(h.current=e,m.invalidateQueries({queryKey:U({path:{assistant_id:e},query:{q:void 0}})}))},[e,o.isSuccess,o.data?.matches,d?.plugins,m]),{items:c,isLoading:i.isLoading,catalogLoading:o.isLoading,isError:i.isError,isFetching:i.isFetching||o.isFetching,catalogError:o.isError,categorySupported:f,pluginToggleSupported:p,installedCategoryCounts:d?.categoryCounts,installedPlugins:d?.plugins??jt,installedTotal:d?.totalCount,catalogMatches:o.data?.matches??Mt,unfilteredInstalledNames:s}}function It(e){return u({...Ne({path:{assistant_id:e}}),select:e=>e.categories,staleTime:300*1e3})}var Lt=new Set([`all`,`installed`,`available`,`skills`,`plugins`,`vellum`,`clawhub`,`skillssh`,`custom`,`assistant-memory`]);function Rt(e){let t=e.get(`filter`),n=e.get(`category`);return{q:e.get(`q`)??``,filter:Vt(t)?t:`all`,category:n||null}}function zt(e,t){let n=new URLSearchParams(e);return t.q!==void 0&&Bt(n,`q`,t.q.trim()||null),t.filter!==void 0&&Bt(n,`filter`,t.filter===`all`?null:t.filter),t.category!==void 0&&Bt(n,`category`,t.category),n}function Bt(e,t,n){n===null?e.delete(t):e.set(t,n)}function Vt(e){return e!==null&&Lt.has(e)}function Ht(e){switch(e){case`installed`:return{kind:`installed`};case`available`:return{kind:`available`};case`vellum`:case`clawhub`:case`skillssh`:case`custom`:case`assistant-memory`:return{origin:e};default:return{}}}function Ut(e){return e!==`plugins`}function Wt(e){return e===`all`||e===`installed`||e===`available`||e===`plugins`}function Gt(e){switch(e){case`installed`:return`installed`;case`available`:return`available`;default:return`all`}}function Kt(e,t){let[n,r]=(0,G.useState)(e);return(0,G.useEffect)(()=>{let n=setTimeout(()=>{r(e)},t);return()=>clearTimeout(n)},[e,t]),n}var qt=300,Jt=`vellum:superpowers:tipDismissed`;function Yt(e){return[...e].sort((e,t)=>e.installed===t.installed?e.name.localeCompare(t.name,void 0,{sensitivity:`base`}):e.installed?-1:1)}function Xt({assistantId:e}){let r=o(),i=c(),a=l(),d=Le(),f=we.use.version(),p=Re(),[m,h]=s(),{q:g,filter:_,category:y}=(0,G.useMemo)(()=>Rt(m),[m]),b=m.get(`plugin`),x=(0,G.useCallback)(e=>{h(t=>zt(t,e),{replace:!0})},[h]),S=m.get(`success`),C=(0,G.useRef)(!1);(0,G.useEffect)(()=>{S!==`true`||C.current||(C.current=!0,b&&B.success(`Installed ${b}`),h(e=>{let t=new URLSearchParams(e);return t.delete(`success`),t},{replace:!0}))},[S,b,h]);let[w,T]=(0,G.useState)(g),E=Kt(w.trim(),qt),D=(0,G.useRef)(g);(0,G.useEffect)(()=>{if(g!==D.current&&(D.current=g,g!==w.trim())){T(g);return}E!==g&&E===w.trim()&&(D.current=E,x({q:E}))},[E,g,w,x]);let te=(0,G.useCallback)(e=>x({filter:e}),[x]),O=(0,G.useCallback)(e=>x({category:e}),[x]),[re,ie]=(0,G.useState)(()=>n(Jt,!1)),k=(0,G.useCallback)(()=>{ie(!0),t(Jt,!0)},[]),A=!p&&_===`plugins`?`all`:_,j=Ut(A),ae=p&&Wt(A),M=Gt(A),{handleInstall:oe,handleRemove:se,isInstallingSkill:N,isRemovingSkill:ce,skillPendingRemoval:P,confirmRemove:le,cancelRemove:ue}=ee(e),{data:de=[]}=It(e),{origin:F,kind:fe}=(0,G.useMemo)(()=>Ht(A),[A]),I=u({...Ae({path:{assistant_id:e},query:{include:`catalog`,origin:F,kind:fe,q:E||void 0,category:y??void 0}}),select:e=>({skills:e.skills,categoryCounts:e.categoryCounts,totalCount:e.totalCount}),enabled:!!e&&j}),pe=u({...Ae({path:{assistant_id:e},query:{include:`catalog`,origin:F,kind:fe,q:E||void 0}}),select:e=>({skills:e.skills,categoryCounts:e.categoryCounts,totalCount:e.totalCount}),enabled:!!e&&j&&y!==null}),{items:me,isLoading:L,catalogLoading:he,isError:ge,isFetching:_e,catalogError:R,categorySupported:ve,installedCategoryCounts:z,installedPlugins:ye,installedTotal:be,catalogMatches:xe,unfilteredInstalledNames:Ce}=Ft(e,y,p),V=ae&&(y===null||ve),Te=(0,G.useCallback)(t=>ne(a,e,t),[e,a]),[Ee,De]=(0,G.useState)(null),[Oe,je]=(0,G.useState)(null),[Ne,Pe]=(0,G.useState)(null),[H,U]=(0,G.useState)(null),[W,ze]=(0,G.useState)(null),Be=Me({onMutate:e=>De(e.body.name),onSuccess:(e,t)=>B.success(`Installed ${t.body.name}`),onError:()=>B.error(qe),onSettled:(e,t,n)=>{De(null),Te(n.body.name)}}),He=Ie({onMutate:e=>je(e.path.name),onSuccess:(e,t)=>B.success(`Removed ${t.path.name}`),onError:()=>B.error(Je),onSettled:(e,t,n)=>{je(null),Te(n.path.name)}}),Ue=Fe({onMutate:e=>Pe(e.path.name),onSuccess:(e,t)=>B.success(e.outcome===`already-up-to-date`?`${t.path.name} is already up to date`:`Upgraded ${t.path.name} to ${tt(e.toCommit)}`),onError:()=>B.error(Ye),onSettled:(e,t,n)=>{Pe(null),Te(n.path.name)}}),q=(0,G.useCallback)(e=>h(t=>{let n=new URLSearchParams(t);return n.set(`plugin`,e.name),n}),[h]),Xe=(0,G.useCallback)(()=>h(e=>{let t=new URLSearchParams(e);return t.delete(`plugin`),t},{replace:!0}),[h]),Ze=(0,G.useCallback)(t=>{Be.mutate({path:{assistant_id:e},body:{name:t.name}})},[e,Be]),$e=(0,G.useCallback)(()=>{H&&(He.mutate({path:{assistant_id:e,name:H.name}}),U(null))},[e,H,He]),J=(0,G.useCallback)(t=>{Ue.mutate({path:{assistant_id:e,name:t},body:{}})},[e,Ue]),nt=(0,G.useCallback)(()=>{W&&(J(W.name),ze(null))},[W,J]),rt=(0,G.useCallback)((e,t)=>{if(st(t)){ze(e);return}J(e.name)},[J]),Y=(0,G.useMemo)(()=>j?I.data?.skills??[]:[],[j,I.data?.skills]),it=(0,G.useMemo)(()=>V?et(me,M).filter(e=>Qe(e,E)):[],[V,me,M,E]),at=(0,G.useMemo)(()=>Yt([...Y.map(e=>({type:`skill`,key:`skill:${e.id}`,name:e.name,installed:v(e),skill:e})),...it.map(e=>({type:`plugin`,key:`plugin:${e.name}`,name:e.name,installed:e.status===`installed`,item:e}))]),[Y,it]),X=y===null?I.data:pe.data,ot=Zt(j,X?.skills??Y,X?.categoryCounts,X?.totalCount),Z=Qt(ae&&ve,z,ye,be,xe,Ce,M),{counts:ct,totalCount:lt}=(0,G.useMemo)(()=>{let e={...ot.counts};for(let[t,n]of Object.entries(Z.counts))e[t]=(e[t]??0)+n;return{counts:e,totalCount:ot.totalCount+Z.totalCount}},[ot,Z]),ut=j&&I.isLoading,Q=j&&I.isError,dt=V&&L,$=V&&ge,pt=(Q||!j)&&($||!V)&&(Q||$),gt=ut||dt,_t=!!E&&(j&&I.isFetching||V&&_e&&!L),yt=w.trim().length>0;if(b&&!p&&f===null)return null;if(b&&p){let t=me.find(e=>e.name===b),n={assistantId:e,name:b,externalHint:t?.external,enabled:t?.enabled,onBack:Xe};return d?(0,K.jsx)(mt,{...n}):(0,K.jsx)(ft,{...n})}let xt=(0,K.jsx)(`div`,{className:`min-w-0 flex-1 overflow-y-auto`,children:gt?(0,K.jsx)(nn,{}):pt?(0,K.jsx)(rn,{}):at.length===0?V&&he&&M!==`installed`?(0,K.jsx)(nn,{}):(0,K.jsx)(an,{filter:A,category:y}):(0,K.jsx)(`ul`,{className:`flex flex-col gap-2`,children:at.map(t=>(0,K.jsx)(`li`,{children:t.type===`skill`?(0,K.jsx)(bt,{skill:t.skill,onSelect:()=>r(ke.skills.detail(t.skill.id),{state:{listSearch:i.search}}),onInstall:()=>oe(t.skill),onRemove:()=>se(t.skill),isInstalling:N(t.skill),isRemoving:ce(t.skill)}):t.installed?(0,K.jsx)($t,{assistantId:e,item:t.item,onSelect:()=>q(t.item),onRemove:()=>U(t.item),onUpgrade:e=>rt(t.item,e),isRemoving:Oe===t.item.name,isUpgrading:Ne===t.item.name}):(0,K.jsx)(ht,{assistantId:e,item:t.item,onSelect:()=>q(t.item),onInstall:()=>Ze(t.item),isInstalling:Ee===t.item.name})},t.key))})});return(0,K.jsxs)(`div`,{className:`flex h-full min-h-0 flex-1 flex-col gap-4`,children:[!re&&(0,K.jsx)(en,{onDismiss:k}),(0,K.jsx)(wt,{search:w,onSearchChange:T,filter:A,onFilterChange:te,isSearching:_t,categories:de,category:y,onCategoryChange:O,counts:ct,totalCount:lt,showCounts:!yt,pluginsSupported:p}),!gt&&!pt&&Q?(0,K.jsx)(tn,{text:`Skills are temporarily unavailable. Plugins are still listed below.`}):null,!gt&&!pt&&$?(0,K.jsx)(tn,{text:`Plugins are temporarily unavailable. Skills are still listed below.`}):null,V&&R&&!dt&&!$?(0,K.jsx)(tn,{text:`Plugin catalog browsing is temporarily unavailable. Installed plugins are still listed below.`}):null,(0,K.jsxs)(`div`,{className:`flex min-h-0 flex-1 gap-6`,children:[(0,K.jsx)(`aside`,{className:`hidden w-56 shrink-0 overflow-y-auto sm:block`,children:(0,K.jsx)(vt,{ariaLabel:`Superpower categories`,selected:y,onSelect:O,counts:ct,totalCount:lt,showCounts:!yt,categories:de})}),xt]}),(0,K.jsx)(Ve,{skillName:P?.name??null,onConfirm:le,onCancel:ue}),(0,K.jsx)(Se,{open:H!==null,title:`Remove plugin`,message:H?We(H.name):``,confirmLabel:`Remove`,destructive:!0,onConfirm:$e,onCancel:()=>U(null)}),(0,K.jsx)(Se,{open:W!==null,title:`Upgrade plugin`,message:W?Ge(W.name):``,confirmLabel:Ke,destructive:!0,onConfirm:nt,onCancel:()=>ze(null)})]})}function Zt(e,t,n,r){return(0,G.useMemo)(()=>{if(!e)return{counts:{},totalCount:0};if(n&&Object.keys(n).length>0)return{counts:n,totalCount:r??t.length};let i={};for(let e of t){let t=e.category??`system`;i[t]=(i[t]??0)+1}return{counts:i,totalCount:r??t.length}},[e,t,n,r])}function Qt(e,t,n,r,i,a,o){return(0,G.useMemo)(()=>{if(!e)return{counts:{},totalCount:0};let s={},c=o!==`available`,l=o===`all`||o===`available`;if(c)if(t&&Object.keys(t).length>0)Object.assign(s,t);else for(let e of n){let t=e.category??`system`;s[t]=(s[t]??0)+1}let u=0;if(l)for(let e of i){if(a.has(e.name))continue;let t=e.category??`system`;s[t]=(s[t]??0)+1,u+=1}let d=r??n.length;return{counts:s,totalCount:(c?d:0)+u}},[e,t,n,r,i,a,o])}function $t({assistantId:e,item:t,onSelect:n,onRemove:r,onUpgrade:i,isRemoving:a,isUpgrading:o}){let s=Z({assistantId:e,name:t.name}).data;return(0,K.jsx)(ht,{assistantId:e,item:t,drift:s,onSelect:n,onRemove:r,onUpgrade:()=>i(s),isRemoving:a,isUpgrading:o})}function en({onDismiss:e}){return(0,K.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg px-4 py-2.5 text-body-small-default`,style:{backgroundColor:`var(--surface-base)`,color:`var(--content-secondary)`},children:[(0,K.jsx)(pe,{className:`h-4 w-4 shrink-0`,style:{color:`var(--primary-base)`}}),(0,K.jsx)(`p`,{className:`flex-1`,children:`Create a new custom skill by describing what you want in chat, or install plugins to extend your assistant.`}),(0,K.jsx)(a,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,K.jsx)(_e,{"aria-hidden":!0}),onClick:e,"aria-label":`Dismiss tip`,tintColor:`var(--content-tertiary)`,expandOnMobile:!1})]})}function tn({text:e}){return(0,K.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg px-4 py-2.5 text-body-small-default`,style:{backgroundColor:`var(--surface-base)`,color:`var(--content-secondary)`},children:[(0,K.jsx)(re,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`},"aria-hidden":!0}),(0,K.jsx)(`p`,{className:`flex-1`,children:e})]})}function nn(){return(0,K.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,K.jsx)(P,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})})}function rn(){return(0,K.jsx)(p.Root,{children:(0,K.jsxs)(p.Body,{className:`flex flex-col items-center justify-center py-16 text-center`,children:[(0,K.jsx)(he,{className:`mb-3 h-8 w-8`,style:{color:`var(--system-danger)`},"aria-hidden":!0}),(0,K.jsx)(`h3`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:`Failed to load superpowers`}),(0,K.jsx)(`p`,{className:`mt-1 max-w-sm text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Something went wrong. Try refreshing the page.`})]})})}function an({filter:e,category:t}){let{title:n,subtitle:r,Icon:i}=on(e,t);return(0,K.jsx)(y,{icon:i,title:n,subtitle:r})}function on(e,t){if(t)return{title:`Nothing in this category`,subtitle:`Try selecting a different category or clearing the filter.`,Icon:N};switch(e){case`installed`:return{title:`No Superpowers Installed`,subtitle:`Ask your assistant in chat to search for and install new skills and plugins.`,Icon:R};case`available`:return{title:`Nothing Left to Install`,subtitle:`All available skills and plugins are installed.`,Icon:O};case`skills`:return{title:`No Skills Found`,subtitle:`Ask your assistant in chat to search for and install new skills.`,Icon:R};case`plugins`:return{title:`No Plugins Found`,subtitle:`Browse the catalog to install plugins that extend your assistant.`,Icon:F};case`vellum`:return{title:`No Vellum Skills`,subtitle:`No bundled Vellum skills found.`,Icon:R};case`clawhub`:return{title:`No Clawhub Skills`,subtitle:`No Clawhub skills found. Try searching the catalog.`,Icon:R};case`skillssh`:return{title:`No skills.sh Skills`,subtitle:`No skills.sh skills found. Try searching the catalog.`,Icon:R};case`custom`:return{title:`No Custom Skills`,subtitle:`Create a custom skill by describing what you want in chat.`,Icon:R};case`assistant-memory`:return{title:`No Skills From Memory`,subtitle:`Skills your assistant authors from past conversations will appear here.`,Icon:R};default:return{title:`No Superpowers Available`,subtitle:`Check your connection to the Vellum catalog.`,Icon:re}}}function sn(){return(0,K.jsx)(Xt,{assistantId:ze()})}export{sn as SuperpowersPage};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as r}from"./useInfiniteQuery-Dk8q0n49.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./chevron-down-CrFV6lfm.js";import{t as o}from"./circle-check-big-CpoRGdNz.js";import{t as s}from"./circle-x-B5rnAOe1.js";import{t as c}from"./clock-B8umTTHk.js";import"./src-BMRW2yQf.js";import{t as l}from"./loader-circle-DOtGXcds.js";import{t as u}from"./triangle-alert-CB4pJgCL.js";import{t as d}from"./notice-C0ifrvvJ.js";import{t as f}from"./tag-DeMzQvCo.js";import{d as p}from"./routes-iipg2wkc.js";import{i as m,t as h}from"./use-platform-gate-DBRG0Q26.js";import{M as g}from"./react-query.gen-DKb3mEwJ.js";import{t as _}from"./platform-login-notice-3g7rHtc3.js";import{t as v}from"./use-active-assistant-id-BvHP5Ojg.js";var y=e(t(),1),b=i();function x(e){switch(e){case`lifecycle`:return`Lifecycle`;case`upgrade`:return`Upgrade`;case`rollback`:return`Rollback`;case`crash`:return`Crash`;case`idle_sleep`:return`Idle Sleep`;case`wake`:return`Wake`;case`profiler`:return`Profiler`;case`other`:return`Other`;default:return e}}function S(e){switch(e){case`started`:return`Started`;case`succeeded`:return`Succeeded`;case`failed`:return`Failed`;case`in_progress`:return`In Progress`;default:return e}}function C(e){return e===`succeeded`}function w(e){return e===`failed`}function T(e){return new Date(e).toLocaleString(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function E(e){if(e.type!==`idle_sleep`)return!1;let t=e.details?.idle_timeout_seconds;return typeof t==`number`&&t>=21600}function D(e,t){switch(e){case`wake`:return`positive`;case`rollback`:return`warning`;case`crash`:return`negative`;case`idle_sleep`:return t&&E(t)?`warning`:`neutral`;default:return`neutral`}}function O({type:e,event:t}){return(0,b.jsx)(f,{tone:D(e,t),children:x(e)})}function k({status:e}){let t=S(e);return C(e)?(0,b.jsx)(f,{tone:`positive`,leftIcon:(0,b.jsx)(o,{}),children:t}):w(e)?(0,b.jsx)(f,{tone:`negative`,leftIcon:(0,b.jsx)(s,{}),children:t}):(0,b.jsx)(f,{tone:`neutral`,children:t})}function A({event:e}){let[t,n]=(0,y.useState)(!1),r=e.details!==null&&e.details!==void 0&&Object.keys(e.details).length>0;return(0,b.jsxs)(`div`,{className:`rounded-xl border p-4`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,b.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between`,children:[(0,b.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1.5`,children:[(0,b.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e.display_text}),(0,b.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,b.jsx)(O,{type:e.type,event:e}),(0,b.jsx)(k,{status:e.event_status}),E(e)&&(0,b.jsx)(f,{tone:`warning`,leftIcon:(0,b.jsx)(u,{className:`h-3 w-3`}),children:`Long sleep`})]})]}),(0,b.jsxs)(`div`,{className:`text-body-small-default flex shrink-0 items-center gap-1.5`,style:{color:`var(--content-tertiary)`},children:[(0,b.jsx)(c,{className:`h-3 w-3`}),(0,b.jsx)(`span`,{children:T(e.occurred_at)})]})]}),r&&(0,b.jsxs)(`div`,{className:`mt-2`,children:[(0,b.jsxs)(`button`,{type:`button`,onClick:()=>n(e=>!e),className:`text-body-small-default flex items-center gap-1`,style:{color:`var(--content-tertiary)`},children:[(0,b.jsx)(a,{className:`h-3 w-3 transition-transform ${t?`rotate-180`:``}`}),t?`Hide details`:`Show details`]}),t&&(0,b.jsx)(`pre`,{className:`mt-2 overflow-x-auto rounded-md p-3 text-body-small-default`,style:{background:`var(--surface-base)`,color:`var(--content-default)`},children:JSON.stringify(e.details,null,2)})]})]})}function j({assistantId:e}){let{data:t,isLoading:n,isError:i,isFetchingNextPage:a,hasNextPage:o,fetchNextPage:s}=r({...g({path:{assistant_id:e}}),initialPageParam:0,getNextPageParam:(e,t)=>{if(e.next)return t.reduce((e,t)=>e+t.results.length,0)}}),c=t?.pages.flatMap(e=>e.results)??[];return(0,b.jsxs)(`div`,{className:`space-y-4`,children:[(0,b.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Lifecycle events for your assistant from the last 30 days, newest first.`}),n?(0,b.jsxs)(`div`,{className:`text-body-medium-lighter flex items-center gap-2`,style:{color:`var(--content-tertiary)`},children:[(0,b.jsx)(l,{className:`h-4 w-4 animate-spin`}),`Loading system events...`]}):i?(0,b.jsxs)(`div`,{className:`text-body-medium-lighter flex items-center gap-2`,style:{color:`var(--system-negative-strong)`},children:[(0,b.jsx)(u,{className:`h-4 w-4 shrink-0`}),`Failed to load system events. Please refresh and try again.`]}):c.length===0?(0,b.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`No system events recorded in the last 30 days.`}):(0,b.jsxs)(`div`,{className:`space-y-2`,children:[c.map(e=>(0,b.jsx)(A,{event:e},e.id)),o&&(0,b.jsx)(`div`,{className:`pt-2 text-center`,children:(0,b.jsx)(`button`,{type:`button`,onClick:()=>s(),disabled:a,className:`text-body-medium-default flex w-full items-center justify-center gap-2 rounded-md border px-4 py-2 transition-colors disabled:cursor-not-allowed disabled:opacity-50`,style:{borderColor:`var(--border-element)`,color:`var(--content-secondary)`},children:a?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l,{className:`h-4 w-4 animate-spin`}),`Loading older events...`]}):`Load older events`})})]})]})}function M(){let e=m({platformHostedOnly:!0}),t=h(),r=v();return e===`gated`?(0,b.jsx)(n,{replace:!0,to:p.logs.root}):e===`disabled`?(0,b.jsx)(_,{children:`Log in to the Vellum platform to view system events.`}):t?(0,b.jsx)(j,{assistantId:r}):(0,b.jsx)(d,{tone:`warning`,children:`System events aren't available for the current assistant.`})}export{M as SystemEventsPage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as r}from"./useInfiniteQuery-Dk8q0n49.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./chevron-down-CrFV6lfm.js";import{t as o}from"./circle-check-big-CpoRGdNz.js";import{t as s}from"./circle-x-B5rnAOe1.js";import{t as c}from"./clock-B8umTTHk.js";import"./src-hNk11eS3.js";import{t as l}from"./loader-circle-DOtGXcds.js";import{t as u}from"./triangle-alert-CB4pJgCL.js";import{t as d}from"./notice-C0ifrvvJ.js";import{t as f}from"./tag-DeMzQvCo.js";import{d as p}from"./routes-iipg2wkc.js";import{i as m,t as h}from"./use-platform-gate-CdwOyQ8A.js";import{M as g}from"./react-query.gen-DKb3mEwJ.js";import{t as _}from"./platform-login-notice-CIpebDVw.js";import{t as v}from"./use-active-assistant-id-BvHP5Ojg.js";var y=e(t(),1),b=i();function x(e){switch(e){case`lifecycle`:return`Lifecycle`;case`upgrade`:return`Upgrade`;case`rollback`:return`Rollback`;case`crash`:return`Crash`;case`idle_sleep`:return`Idle Sleep`;case`wake`:return`Wake`;case`profiler`:return`Profiler`;case`other`:return`Other`;default:return e}}function S(e){switch(e){case`started`:return`Started`;case`succeeded`:return`Succeeded`;case`failed`:return`Failed`;case`in_progress`:return`In Progress`;default:return e}}function C(e){return e===`succeeded`}function w(e){return e===`failed`}function T(e){return new Date(e).toLocaleString(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function E(e){if(e.type!==`idle_sleep`)return!1;let t=e.details?.idle_timeout_seconds;return typeof t==`number`&&t>=21600}function D(e,t){switch(e){case`wake`:return`positive`;case`rollback`:return`warning`;case`crash`:return`negative`;case`idle_sleep`:return t&&E(t)?`warning`:`neutral`;default:return`neutral`}}function O({type:e,event:t}){return(0,b.jsx)(f,{tone:D(e,t),children:x(e)})}function k({status:e}){let t=S(e);return C(e)?(0,b.jsx)(f,{tone:`positive`,leftIcon:(0,b.jsx)(o,{}),children:t}):w(e)?(0,b.jsx)(f,{tone:`negative`,leftIcon:(0,b.jsx)(s,{}),children:t}):(0,b.jsx)(f,{tone:`neutral`,children:t})}function A({event:e}){let[t,n]=(0,y.useState)(!1),r=e.details!==null&&e.details!==void 0&&Object.keys(e.details).length>0;return(0,b.jsxs)(`div`,{className:`rounded-xl border p-4`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,b.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between`,children:[(0,b.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1.5`,children:[(0,b.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e.display_text}),(0,b.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,b.jsx)(O,{type:e.type,event:e}),(0,b.jsx)(k,{status:e.event_status}),E(e)&&(0,b.jsx)(f,{tone:`warning`,leftIcon:(0,b.jsx)(u,{className:`h-3 w-3`}),children:`Long sleep`})]})]}),(0,b.jsxs)(`div`,{className:`text-body-small-default flex shrink-0 items-center gap-1.5`,style:{color:`var(--content-tertiary)`},children:[(0,b.jsx)(c,{className:`h-3 w-3`}),(0,b.jsx)(`span`,{children:T(e.occurred_at)})]})]}),r&&(0,b.jsxs)(`div`,{className:`mt-2`,children:[(0,b.jsxs)(`button`,{type:`button`,onClick:()=>n(e=>!e),className:`text-body-small-default flex items-center gap-1`,style:{color:`var(--content-tertiary)`},children:[(0,b.jsx)(a,{className:`h-3 w-3 transition-transform ${t?`rotate-180`:``}`}),t?`Hide details`:`Show details`]}),t&&(0,b.jsx)(`pre`,{className:`mt-2 overflow-x-auto rounded-md p-3 text-body-small-default`,style:{background:`var(--surface-base)`,color:`var(--content-default)`},children:JSON.stringify(e.details,null,2)})]})]})}function j({assistantId:e}){let{data:t,isLoading:n,isError:i,isFetchingNextPage:a,hasNextPage:o,fetchNextPage:s}=r({...g({path:{assistant_id:e}}),initialPageParam:0,getNextPageParam:(e,t)=>{if(e.next)return t.reduce((e,t)=>e+t.results.length,0)}}),c=t?.pages.flatMap(e=>e.results)??[];return(0,b.jsxs)(`div`,{className:`space-y-4`,children:[(0,b.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Lifecycle events for your assistant from the last 30 days, newest first.`}),n?(0,b.jsxs)(`div`,{className:`text-body-medium-lighter flex items-center gap-2`,style:{color:`var(--content-tertiary)`},children:[(0,b.jsx)(l,{className:`h-4 w-4 animate-spin`}),`Loading system events...`]}):i?(0,b.jsxs)(`div`,{className:`text-body-medium-lighter flex items-center gap-2`,style:{color:`var(--system-negative-strong)`},children:[(0,b.jsx)(u,{className:`h-4 w-4 shrink-0`}),`Failed to load system events. Please refresh and try again.`]}):c.length===0?(0,b.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`No system events recorded in the last 30 days.`}):(0,b.jsxs)(`div`,{className:`space-y-2`,children:[c.map(e=>(0,b.jsx)(A,{event:e},e.id)),o&&(0,b.jsx)(`div`,{className:`pt-2 text-center`,children:(0,b.jsx)(`button`,{type:`button`,onClick:()=>s(),disabled:a,className:`text-body-medium-default flex w-full items-center justify-center gap-2 rounded-md border px-4 py-2 transition-colors disabled:cursor-not-allowed disabled:opacity-50`,style:{borderColor:`var(--border-element)`,color:`var(--content-secondary)`},children:a?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l,{className:`h-4 w-4 animate-spin`}),`Loading older events...`]}):`Load older events`})})]})]})}function M(){let e=m({platformHostedOnly:!0}),t=h(),r=v();return e===`gated`?(0,b.jsx)(n,{replace:!0,to:p.logs.root}):e===`disabled`?(0,b.jsx)(_,{children:`Log in to the Vellum platform to view system events.`}):t?(0,b.jsx)(j,{assistantId:r}):(0,b.jsx)(d,{tone:`warning`,children:`System events aren't available for the current assistant.`})}export{M as SystemEventsPage};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./typography-BeUa5Fd-.js";import{t as a}from"./check-DSgjgwlo.js";import{t as o}from"./clipboard-copy-BOU_-XoC.js";import{L as s}from"./src-BMRW2yQf.js";import{t as c}from"./external-link-vwewPjbo.js";import{t as l}from"./notice-C0ifrvvJ.js";import{t as u}from"./input-DmHXRXaB.js";import{t as d}from"./browser-BP3Xidk_.js";import{t as f}from"./use-copy-to-clipboard-CT4aISCf.js";var p=e(t(),1),m=r();function h({channelLabel:e,steps:t,stepIndex:n,onStepSelect:r,locked:i=!1,children:a}){let o=(0,p.useRef)(null),c=(0,p.useRef)(n);(0,p.useEffect)(()=>{c.current!==n&&(c.current=n,o.current?.focus())},[n]);let l=t[n],u=l?`${e} setup, step ${n+1} of ${t.length}: ${l.label}`:`${e} setup`;return(0,m.jsxs)(`div`,{"data-slot":`channel-setup-wizard`,className:`flex flex-col gap-4`,children:[(0,m.jsx)(s,{steps:t,current:n,onStepSelect:r,disabled:i}),(0,m.jsx)(`div`,{ref:o,"data-slot":`channel-setup-step-panel`,tabIndex:-1,role:`group`,"aria-label":u,className:`rounded-lg bg-[var(--surface-sunken)] p-4 outline-none`,children:a})]})}function g({onContinue:e}){return(0,m.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,m.jsx)(i,{as:`p`,variant:`body-medium-lighter`,className:`text-[color:var(--content-default)]`,children:`In Slack:`}),(0,m.jsxs)(`ol`,{className:`list-decimal list-outside space-y-1 pl-5 text-body-medium-lighter text-[var(--content-default)]`,children:[(0,m.jsxs)(`li`,{children:[`Under `,(0,m.jsx)(`strong`,{children:`Or start your own way`}),`, pick`,` `,(0,m.jsx)(`strong`,{children:`From a manifest`}),`, then `,(0,m.jsx)(`strong`,{children:`Continue`})]}),(0,m.jsx)(`li`,{children:`Choose your workspace and paste the manifest`}),(0,m.jsxs)(`li`,{children:[`Review the permissions, then click `,(0,m.jsx)(`strong`,{children:`Create and Install`})]})]}),(0,m.jsxs)(l,{tone:`info`,children:[`If Slack shows “Request approval” instead of`,` `,(0,m.jsx)(`strong`,{children:`Install`}),`, a workspace admin needs to approve the app first.`]}),(0,m.jsx)(n,{type:`button`,variant:`primary`,className:`self-start`,onClick:e,children:`I created the app`})]})}var _=[`app_mentions:read`,`assistant:write`,`channels:history`,`channels:join`,`channels:read`,`chat:write`,`files:read`,`files:write`,`groups:history`,`groups:read`,`im:history`,`im:read`,`im:write`,`mpim:history`,`mpim:read`,`reactions:read`,`reactions:write`,`users:read`],v=[`channels:join`,`files:read`,`files:write`,`reactions:read`,`reactions:write`],y=[`channels:history`,`channels:read`,`groups:history`,`groups:read`,`im:history`,`im:read`,`mpim:history`,`mpim:read`,`reactions:read`,`search:read`,`users:read`],b=[`reactions:read`,`search:read`],x=300;function S(e,t=``){let n=e.trim().slice(0,35)||`My Assistant`;return{display_information:{name:n,...t?{description:t.slice(0,140)}:{},background_color:`#1a1a2e`},features:{app_home:{home_tab_enabled:!1,messages_tab_enabled:!0,messages_tab_read_only_enabled:!1},bot_user:{display_name:n,always_online:!0},agent_view:{agent_description:(t||n).slice(0,x),suggested_prompts:[]}},oauth_config:{scopes:{bot:[..._],bot_optional:[...v],user:[...y],user_optional:[...b]}},settings:{event_subscriptions:{bot_events:[`app_mention`,`app_context_changed`,`message.channels`,`message.groups`,`message.im`,`message.mpim`,`reaction_added`]},interactivity:{is_enabled:!0},org_deploy_enabled:!1,socket_mode_enabled:!0,token_rotation_enabled:!1}}}function C({appName:e,description:t,copied:r,onAppNameChange:s,onDescriptionChange:c,onCopyManifest:l,onContinue:d}){let f=e.trim().length>0;return(0,m.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,m.jsx)(i,{as:`p`,variant:`body-medium-lighter`,className:`text-[color:var(--content-default)]`,children:`Name your Slack app and copy its manifest. Every permission and setting comes pre-configured.`}),(0,m.jsx)(u,{label:`App Name`,value:e,onChange:e=>s(e.target.value.slice(0,35)),placeholder:`My Assistant`,fullWidth:!0}),(0,m.jsx)(u,{label:`Description (optional)`,value:t,onChange:e=>c(e.target.value.slice(0,140)),placeholder:`What this assistant helps with`,helperText:`Shown on the app's Slack profile.`,fullWidth:!0}),(0,m.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,m.jsx)(n,{type:`button`,variant:`outlined`,disabled:!f,onClick:l,leftIcon:r?(0,m.jsx)(a,{"aria-hidden":!0,className:`size-4`}):(0,m.jsx)(o,{"aria-hidden":!0,className:`size-4`}),children:r?`Copied!`:`Copy manifest`}),(0,m.jsx)(n,{type:`button`,variant:`primary`,disabled:!f,onClick:d,children:`Next`})]})]})}function w({manifestCopiedHere:e,copied:t,onCopyManifest:r,onOpenSlack:s,onContinue:u}){let d=(0,m.jsx)(n,{type:`button`,variant:`outlined`,size:`compact`,onClick:r,leftIcon:t?(0,m.jsx)(a,{"aria-hidden":!0,className:`size-4`}):(0,m.jsx)(o,{"aria-hidden":!0,className:`size-4`}),children:t?`Copied!`:`Copy manifest`});return(0,m.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,m.jsx)(i,{as:`p`,variant:`body-medium-lighter`,className:`text-[color:var(--content-default)]`,children:`Open Slack in a new tab to create the app, then come back here for the steps to follow.`}),e?(0,m.jsx)(l,{tone:`info`,actions:d,children:`You copied this app's manifest here. If you have copied anything since, copy it again before you paste.`}):(0,m.jsx)(l,{tone:`warning`,actions:d,children:`You have not copied this app's manifest yet. Slack's create-app modal has no other way to get it, so copy it before you paste.`}),(0,m.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,m.jsx)(n,{type:`button`,variant:`primary`,onClick:s,rightIcon:(0,m.jsx)(c,{"aria-hidden":!0,className:`size-4`}),children:`Open Slack`}),(0,m.jsx)(n,{type:`button`,variant:`outlined`,onClick:u,children:`Next`})]})]})}var T=`xoxb-`,E=`xapp-`,D=20;function O(e,t,n){let r=e.trim();return r?r.startsWith(t)?r.length<D?`${n} looks truncated. Copy the whole value from Slack.`:null:`${n} should start with "${t}".`:null}function k({botToken:e,appToken:t,saveStatus:r,saveError:a,onBotTokenChange:o,onAppTokenChange:s,onSave:c}){let d=O(e,T,`Bot token`),f=O(t,E,`App token`),p=e.trim().length>0&&t.trim().length>0&&!d&&!f&&r!==`pending`;return(0,m.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,m.jsxs)(i,{as:`p`,variant:`body-medium-lighter`,className:`text-[color:var(--content-default)]`,children:[`On Slack's confirmation screen, expand`,` `,(0,m.jsx)(`strong`,{children:`Your app credentials`}),` and copy both tokens.`]}),(0,m.jsxs)(l,{tone:`warning`,children:[`That screen also offers a command-line walkthrough and a`,` `,(0,m.jsx)(`strong`,{children:`Download app files`}),` button. Skip both. They set up a separate local app, and this assistant needs only the two tokens.`]}),(0,m.jsx)(u,{label:`Bot Token`,type:`password`,value:e,onChange:e=>o(e.target.value),placeholder:`${T}...`,errorText:d??void 0,disabled:r===`pending`,fullWidth:!0}),(0,m.jsx)(u,{label:`App Token`,type:`password`,value:t,onChange:e=>s(e.target.value),placeholder:`${E}...`,errorText:f??void 0,disabled:r===`pending`,fullWidth:!0}),(0,m.jsx)(n,{type:`button`,variant:`primary`,className:`self-start`,onClick:c,disabled:!p,children:r===`pending`?`Connecting…`:`Connect Slack`}),r===`success`&&(0,m.jsx)(i,{as:`p`,variant:`body-small-default`,className:`text-[color:var(--content-positive)]`,children:`Credentials saved.`}),r===`error`&&a&&(0,m.jsx)(i,{as:`p`,variant:`body-small-default`,className:`text-[color:var(--system-negative-strong)]`,children:a})]})}function A(e){let[t,n]=(0,p.useState)(e[0]),r=(0,p.useMemo)(()=>e.indexOf(t),[e,t]);return{stepId:t,stepIndex:r,goTo:(0,p.useCallback)(e=>n(e),[]),onStepSelect:(0,p.useCallback)(t=>{t<r&&n(e[t])},[e,r])}}var j=`https://api.slack.com/apps?new_app=1`,M=[`name`,`open`,`create`,`connect`],N=[{id:`name`,label:`Name`},{id:`open`,label:`Open`},{id:`create`,label:`Create`},{id:`connect`,label:`Connect`}];function P({assistantName:e,onSave:t,saveStatus:n=`idle`,saveError:r=null}){let{stepId:i,stepIndex:a,goTo:o,onStepSelect:s}=A(M),[c,l]=(0,p.useState)(e),[u,_]=(0,p.useState)(``),v=(0,p.useRef)(!1);(0,p.useEffect)(()=>{v.current||l(e)},[e]);let[y,b]=(0,p.useState)(null),[x,T]=(0,p.useState)(``),[E,D]=(0,p.useState)(``);(0,p.useEffect)(()=>{n===`success`&&(T(``),D(``))},[n]);let{copy:O,copied:P}=f({errorMessage:`Could not copy the manifest. Copy it again before continuing.`}),F=(0,p.useMemo)(()=>JSON.stringify(S(c,u),null,2),[c,u]),I=y===F,L=(0,p.useCallback)(e=>{v.current=!0,l(e)},[]),R=(0,p.useCallback)(()=>{O(F,()=>b(F))},[O,F]),z=(0,p.useCallback)(()=>{d(j)},[]),B=(0,p.useCallback)(()=>o(`open`),[o]),V=(0,p.useCallback)(()=>o(`create`),[o]),H=(0,p.useCallback)(()=>o(`connect`),[o]),U=(0,p.useCallback)(()=>{t?.(x.trim(),E.trim())},[t,x,E]);return(0,m.jsxs)(h,{channelLabel:`Slack`,steps:N,stepIndex:a,onStepSelect:s,locked:n===`pending`,children:[i===`name`&&(0,m.jsx)(C,{appName:c,description:u,copied:P&&I,onAppNameChange:L,onDescriptionChange:_,onCopyManifest:R,onContinue:B}),i===`open`&&(0,m.jsx)(w,{manifestCopiedHere:I,copied:P&&I,onCopyManifest:R,onOpenSlack:z,onContinue:V}),i===`create`&&(0,m.jsx)(g,{onContinue:H}),i===`connect`&&(0,m.jsx)(k,{botToken:x,appToken:E,saveStatus:n,saveError:r,onBotTokenChange:T,onAppTokenChange:D,onSave:U})]})}var F=/^\d+:[A-Za-z0-9_-]+$/,I=25;function L(e){let t=e.trim();return t?F.test(t)?t.slice(t.indexOf(`:`)+1).length<I?`Bot token looks truncated. Copy the whole line from BotFather.`:null:`Bot token should look like "123456:ABC-DEF...". Copy the whole line from BotFather.`:null}function R({botToken:e,saveStatus:t,saveError:r,onBotTokenChange:a,onSave:o}){let s=L(e),c=e.trim().length>0&&!s&&t!==`pending`;return(0,m.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,m.jsxs)(i,{as:`p`,variant:`body-medium-lighter`,className:`text-[color:var(--content-default)]`,children:[`Paste the token from BotFather's reply. It is the whole line after`,` `,(0,m.jsx)(`strong`,{children:`Use this token to access the HTTP API`}),`.`]}),(0,m.jsx)(u,{label:`Bot Token`,type:`password`,value:e,onChange:e=>a(e.target.value),placeholder:`123456789:AA...`,errorText:s??void 0,disabled:t===`pending`,fullWidth:!0}),(0,m.jsx)(n,{type:`button`,variant:`primary`,className:`self-start`,onClick:o,disabled:!c,children:t===`pending`?`Saving…`:`Connect Telegram`}),t===`success`&&(0,m.jsx)(l,{tone:`success`,children:`Token saved. The rest finishes on its own. Your assistant will confirm Telegram is delivering the next time you chat, and make sure it can reach you.`}),t===`error`&&r&&(0,m.jsx)(l,{tone:`error`,children:r})]})}function z({suggestedName:e,copied:t,onCopyName:r,onOpenBotFather:s,onContinue:u}){return(0,m.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,m.jsxs)(i,{as:`p`,variant:`body-medium-lighter`,className:`text-[color:var(--content-default)]`,children:[`Telegram bots are created by messaging `,(0,m.jsx)(`strong`,{children:`@BotFather`}),`. Open it, run through the prompts, then come back with the token it gives you.`]}),(0,m.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,m.jsx)(n,{type:`button`,variant:`primary`,onClick:s,rightIcon:(0,m.jsx)(c,{"aria-hidden":!0,className:`size-4`}),children:`Open BotFather`}),(0,m.jsx)(n,{type:`button`,variant:`outlined`,onClick:u,children:`Next`})]}),(0,m.jsxs)(l,{tone:`neutral`,actions:(0,m.jsx)(n,{type:`button`,variant:`outlined`,size:`compact`,onClick:r,leftIcon:t?(0,m.jsx)(a,{"aria-hidden":!0,className:`size-4`}):(0,m.jsx)(o,{"aria-hidden":!0,className:`size-4`}),children:t?`Copied!`:`Copy name`}),children:[`For the display name, `,(0,m.jsx)(`strong`,{children:e}),` keeps this bot matching your assistant. The username is separate and does not have to match.`]}),(0,m.jsx)(i,{as:`p`,variant:`body-medium-lighter`,className:`text-[color:var(--content-default)]`,children:`In BotFather:`}),(0,m.jsxs)(`ol`,{className:`list-decimal list-outside space-y-1 pl-5 text-body-medium-lighter text-[var(--content-default)]`,children:[(0,m.jsxs)(`li`,{children:[`Send `,(0,m.jsx)(`strong`,{children:`/newbot`})]}),(0,m.jsx)(`li`,{children:`Give it a display name, which is what people see in chat`}),(0,m.jsxs)(`li`,{children:[`Give it a username, which must be unique and end in`,` `,(0,m.jsx)(`strong`,{children:`bot`})]}),(0,m.jsxs)(`li`,{children:[`BotFather replies with a token after`,` `,(0,m.jsx)(`strong`,{children:`Use this token to access the HTTP API`})]})]})]})}var B=`https://t.me/BotFather`,V=[`create`,`connect`],H=[{id:`create`,label:`Create bot`},{id:`connect`,label:`Connect`}];function U({assistantName:e,onSave:t,saveStatus:n=`idle`,saveError:r=null}){let{stepId:i,stepIndex:a,goTo:o,onStepSelect:s}=A(V),[c,l]=(0,p.useState)(``);(0,p.useEffect)(()=>{n===`success`&&l(``)},[n]);let{copy:u,copied:g}=f({errorMessage:`Could not copy the name. Type it into BotFather instead.`}),_=(0,p.useCallback)(()=>{u(e)},[u,e]),v=(0,p.useCallback)(()=>{d(B)},[]),y=(0,p.useCallback)(()=>o(`connect`),[o]),b=(0,p.useCallback)(()=>{t?.(c.trim())},[t,c]);return(0,m.jsxs)(h,{channelLabel:`Telegram`,steps:H,stepIndex:a,onStepSelect:s,locked:n===`pending`,children:[i===`create`&&(0,m.jsx)(z,{suggestedName:e,copied:g,onCopyName:_,onOpenBotFather:v,onContinue:y}),i===`connect`&&(0,m.jsx)(R,{botToken:c,saveStatus:n,saveError:r,onBotTokenChange:l,onSave:b})]})}export{P as n,U as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./typography-BeUa5Fd-.js";import{t as a}from"./check-DSgjgwlo.js";import{t as o}from"./clipboard-copy-BOU_-XoC.js";import{R as s}from"./src-hNk11eS3.js";import{t as c}from"./external-link-vwewPjbo.js";import{t as l}from"./notice-C0ifrvvJ.js";import{t as u}from"./input-DmHXRXaB.js";import{t as d}from"./browser-BP3Xidk_.js";import{t as f}from"./use-copy-to-clipboard-CT4aISCf.js";var p=e(t(),1),m=r();function h({channelLabel:e,steps:t,stepIndex:n,onStepSelect:r,locked:i=!1,children:a}){let o=(0,p.useRef)(null),c=(0,p.useRef)(n);(0,p.useEffect)(()=>{c.current!==n&&(c.current=n,o.current?.focus())},[n]);let l=t[n],u=l?`${e} setup, step ${n+1} of ${t.length}: ${l.label}`:`${e} setup`;return(0,m.jsxs)(`div`,{"data-slot":`channel-setup-wizard`,className:`flex flex-col gap-4`,children:[(0,m.jsx)(s,{steps:t,current:n,onStepSelect:r,disabled:i}),(0,m.jsx)(`div`,{ref:o,"data-slot":`channel-setup-step-panel`,tabIndex:-1,role:`group`,"aria-label":u,className:`rounded-lg bg-[var(--surface-sunken)] p-4 outline-none`,children:a})]})}function g({onContinue:e}){return(0,m.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,m.jsx)(i,{as:`p`,variant:`body-medium-lighter`,className:`text-[color:var(--content-default)]`,children:`In Slack:`}),(0,m.jsxs)(`ol`,{className:`list-decimal list-outside space-y-1 pl-5 text-body-medium-lighter text-[var(--content-default)]`,children:[(0,m.jsxs)(`li`,{children:[`Under `,(0,m.jsx)(`strong`,{children:`Or start your own way`}),`, pick`,` `,(0,m.jsx)(`strong`,{children:`From a manifest`}),`, then `,(0,m.jsx)(`strong`,{children:`Continue`})]}),(0,m.jsx)(`li`,{children:`Choose your workspace and paste the manifest`}),(0,m.jsxs)(`li`,{children:[`Review the permissions, then click `,(0,m.jsx)(`strong`,{children:`Create and Install`})]})]}),(0,m.jsxs)(l,{tone:`info`,children:[`If Slack shows “Request approval” instead of`,` `,(0,m.jsx)(`strong`,{children:`Install`}),`, a workspace admin needs to approve the app first.`]}),(0,m.jsx)(n,{type:`button`,variant:`primary`,className:`self-start`,onClick:e,children:`I created the app`})]})}var _=[`app_mentions:read`,`assistant:write`,`channels:history`,`channels:join`,`channels:read`,`chat:write`,`files:read`,`files:write`,`groups:history`,`groups:read`,`im:history`,`im:read`,`im:write`,`mpim:history`,`mpim:read`,`reactions:read`,`reactions:write`,`users:read`],v=[`channels:join`,`files:read`,`files:write`,`reactions:read`,`reactions:write`],y=[`channels:history`,`channels:read`,`groups:history`,`groups:read`,`im:history`,`im:read`,`mpim:history`,`mpim:read`,`reactions:read`,`search:read`,`users:read`],b=[`reactions:read`,`search:read`],x=300;function S(e,t=``){let n=e.trim().slice(0,35)||`My Assistant`;return{display_information:{name:n,...t?{description:t.slice(0,140)}:{},background_color:`#1a1a2e`},features:{app_home:{home_tab_enabled:!1,messages_tab_enabled:!0,messages_tab_read_only_enabled:!1},bot_user:{display_name:n,always_online:!0},agent_view:{agent_description:(t||n).slice(0,x),suggested_prompts:[]}},oauth_config:{scopes:{bot:[..._],bot_optional:[...v],user:[...y],user_optional:[...b]}},settings:{event_subscriptions:{bot_events:[`app_mention`,`app_context_changed`,`message.channels`,`message.groups`,`message.im`,`message.mpim`,`reaction_added`]},interactivity:{is_enabled:!0},org_deploy_enabled:!1,socket_mode_enabled:!0,token_rotation_enabled:!1}}}function C({appName:e,description:t,copied:r,onAppNameChange:s,onDescriptionChange:c,onCopyManifest:l,onContinue:d}){let f=e.trim().length>0;return(0,m.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,m.jsx)(i,{as:`p`,variant:`body-medium-lighter`,className:`text-[color:var(--content-default)]`,children:`Name your Slack app and copy its manifest. Every permission and setting comes pre-configured.`}),(0,m.jsx)(u,{label:`App Name`,value:e,onChange:e=>s(e.target.value.slice(0,35)),placeholder:`My Assistant`,fullWidth:!0}),(0,m.jsx)(u,{label:`Description (optional)`,value:t,onChange:e=>c(e.target.value.slice(0,140)),placeholder:`What this assistant helps with`,helperText:`Shown on the app's Slack profile.`,fullWidth:!0}),(0,m.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,m.jsx)(n,{type:`button`,variant:`outlined`,disabled:!f,onClick:l,leftIcon:r?(0,m.jsx)(a,{"aria-hidden":!0,className:`size-4`}):(0,m.jsx)(o,{"aria-hidden":!0,className:`size-4`}),children:r?`Copied!`:`Copy manifest`}),(0,m.jsx)(n,{type:`button`,variant:`primary`,disabled:!f,onClick:d,children:`Next`})]})]})}function w({manifestCopiedHere:e,copied:t,onCopyManifest:r,onOpenSlack:s,onContinue:u}){let d=(0,m.jsx)(n,{type:`button`,variant:`outlined`,size:`compact`,onClick:r,leftIcon:t?(0,m.jsx)(a,{"aria-hidden":!0,className:`size-4`}):(0,m.jsx)(o,{"aria-hidden":!0,className:`size-4`}),children:t?`Copied!`:`Copy manifest`});return(0,m.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,m.jsx)(i,{as:`p`,variant:`body-medium-lighter`,className:`text-[color:var(--content-default)]`,children:`Open Slack in a new tab to create the app, then come back here for the steps to follow.`}),e?(0,m.jsx)(l,{tone:`info`,actions:d,children:`You copied this app's manifest here. If you have copied anything since, copy it again before you paste.`}):(0,m.jsx)(l,{tone:`warning`,actions:d,children:`You have not copied this app's manifest yet. Slack's create-app modal has no other way to get it, so copy it before you paste.`}),(0,m.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,m.jsx)(n,{type:`button`,variant:`primary`,onClick:s,rightIcon:(0,m.jsx)(c,{"aria-hidden":!0,className:`size-4`}),children:`Open Slack`}),(0,m.jsx)(n,{type:`button`,variant:`outlined`,onClick:u,children:`Next`})]})]})}var T=`xoxb-`,E=`xapp-`,D=20;function O(e,t,n){let r=e.trim();return r?r.startsWith(t)?r.length<D?`${n} looks truncated. Copy the whole value from Slack.`:null:`${n} should start with "${t}".`:null}function k({botToken:e,appToken:t,saveStatus:r,saveError:a,onBotTokenChange:o,onAppTokenChange:s,onSave:c}){let d=O(e,T,`Bot token`),f=O(t,E,`App token`),p=e.trim().length>0&&t.trim().length>0&&!d&&!f&&r!==`pending`;return(0,m.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,m.jsxs)(i,{as:`p`,variant:`body-medium-lighter`,className:`text-[color:var(--content-default)]`,children:[`On Slack's confirmation screen, expand`,` `,(0,m.jsx)(`strong`,{children:`Your app credentials`}),` and copy both tokens.`]}),(0,m.jsxs)(l,{tone:`warning`,children:[`That screen also offers a command-line walkthrough and a`,` `,(0,m.jsx)(`strong`,{children:`Download app files`}),` button. Skip both. They set up a separate local app, and this assistant needs only the two tokens.`]}),(0,m.jsx)(u,{label:`Bot Token`,type:`password`,value:e,onChange:e=>o(e.target.value),placeholder:`${T}...`,errorText:d??void 0,disabled:r===`pending`,fullWidth:!0}),(0,m.jsx)(u,{label:`App Token`,type:`password`,value:t,onChange:e=>s(e.target.value),placeholder:`${E}...`,errorText:f??void 0,disabled:r===`pending`,fullWidth:!0}),(0,m.jsx)(n,{type:`button`,variant:`primary`,className:`self-start`,onClick:c,disabled:!p,children:r===`pending`?`Connecting…`:`Connect Slack`}),r===`success`&&(0,m.jsx)(i,{as:`p`,variant:`body-small-default`,className:`text-[color:var(--content-positive)]`,children:`Credentials saved.`}),r===`error`&&a&&(0,m.jsx)(i,{as:`p`,variant:`body-small-default`,className:`text-[color:var(--system-negative-strong)]`,children:a})]})}function A(e){let[t,n]=(0,p.useState)(e[0]),r=(0,p.useMemo)(()=>e.indexOf(t),[e,t]);return{stepId:t,stepIndex:r,goTo:(0,p.useCallback)(e=>n(e),[]),onStepSelect:(0,p.useCallback)(t=>{t<r&&n(e[t])},[e,r])}}var j=`https://api.slack.com/apps?new_app=1`,M=[`name`,`open`,`create`,`connect`],N=[{id:`name`,label:`Name`},{id:`open`,label:`Open`},{id:`create`,label:`Create`},{id:`connect`,label:`Connect`}];function P({assistantName:e,onSave:t,saveStatus:n=`idle`,saveError:r=null}){let{stepId:i,stepIndex:a,goTo:o,onStepSelect:s}=A(M),[c,l]=(0,p.useState)(e),[u,_]=(0,p.useState)(``),v=(0,p.useRef)(!1);(0,p.useEffect)(()=>{v.current||l(e)},[e]);let[y,b]=(0,p.useState)(null),[x,T]=(0,p.useState)(``),[E,D]=(0,p.useState)(``);(0,p.useEffect)(()=>{n===`success`&&(T(``),D(``))},[n]);let{copy:O,copied:P}=f({errorMessage:`Could not copy the manifest. Copy it again before continuing.`}),F=(0,p.useMemo)(()=>JSON.stringify(S(c,u),null,2),[c,u]),I=y===F,L=(0,p.useCallback)(e=>{v.current=!0,l(e)},[]),R=(0,p.useCallback)(()=>{O(F,()=>b(F))},[O,F]),z=(0,p.useCallback)(()=>{d(j)},[]),B=(0,p.useCallback)(()=>o(`open`),[o]),V=(0,p.useCallback)(()=>o(`create`),[o]),H=(0,p.useCallback)(()=>o(`connect`),[o]),U=(0,p.useCallback)(()=>{t?.(x.trim(),E.trim())},[t,x,E]);return(0,m.jsxs)(h,{channelLabel:`Slack`,steps:N,stepIndex:a,onStepSelect:s,locked:n===`pending`,children:[i===`name`&&(0,m.jsx)(C,{appName:c,description:u,copied:P&&I,onAppNameChange:L,onDescriptionChange:_,onCopyManifest:R,onContinue:B}),i===`open`&&(0,m.jsx)(w,{manifestCopiedHere:I,copied:P&&I,onCopyManifest:R,onOpenSlack:z,onContinue:V}),i===`create`&&(0,m.jsx)(g,{onContinue:H}),i===`connect`&&(0,m.jsx)(k,{botToken:x,appToken:E,saveStatus:n,saveError:r,onBotTokenChange:T,onAppTokenChange:D,onSave:U})]})}var F=/^\d+:[A-Za-z0-9_-]+$/,I=25;function L(e){let t=e.trim();return t?F.test(t)?t.slice(t.indexOf(`:`)+1).length<I?`Bot token looks truncated. Copy the whole line from BotFather.`:null:`Bot token should look like "123456:ABC-DEF...". Copy the whole line from BotFather.`:null}function R({botToken:e,saveStatus:t,saveError:r,onBotTokenChange:a,onSave:o}){let s=L(e),c=e.trim().length>0&&!s&&t!==`pending`;return(0,m.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,m.jsxs)(i,{as:`p`,variant:`body-medium-lighter`,className:`text-[color:var(--content-default)]`,children:[`Paste the token from BotFather's reply. It is the whole line after`,` `,(0,m.jsx)(`strong`,{children:`Use this token to access the HTTP API`}),`.`]}),(0,m.jsx)(u,{label:`Bot Token`,type:`password`,value:e,onChange:e=>a(e.target.value),placeholder:`123456789:AA...`,errorText:s??void 0,disabled:t===`pending`,fullWidth:!0}),(0,m.jsx)(n,{type:`button`,variant:`primary`,className:`self-start`,onClick:o,disabled:!c,children:t===`pending`?`Saving…`:`Connect Telegram`}),t===`success`&&(0,m.jsx)(l,{tone:`success`,children:`Token saved. The rest finishes on its own. Your assistant will confirm Telegram is delivering the next time you chat, and make sure it can reach you.`}),t===`error`&&r&&(0,m.jsx)(l,{tone:`error`,children:r})]})}function z({suggestedName:e,copied:t,onCopyName:r,onOpenBotFather:s,onContinue:u}){return(0,m.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,m.jsxs)(i,{as:`p`,variant:`body-medium-lighter`,className:`text-[color:var(--content-default)]`,children:[`Telegram bots are created by messaging `,(0,m.jsx)(`strong`,{children:`@BotFather`}),`. Open it, run through the prompts, then come back with the token it gives you.`]}),(0,m.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,m.jsx)(n,{type:`button`,variant:`primary`,onClick:s,rightIcon:(0,m.jsx)(c,{"aria-hidden":!0,className:`size-4`}),children:`Open BotFather`}),(0,m.jsx)(n,{type:`button`,variant:`outlined`,onClick:u,children:`Next`})]}),(0,m.jsxs)(l,{tone:`neutral`,actions:(0,m.jsx)(n,{type:`button`,variant:`outlined`,size:`compact`,onClick:r,leftIcon:t?(0,m.jsx)(a,{"aria-hidden":!0,className:`size-4`}):(0,m.jsx)(o,{"aria-hidden":!0,className:`size-4`}),children:t?`Copied!`:`Copy name`}),children:[`For the display name, `,(0,m.jsx)(`strong`,{children:e}),` keeps this bot matching your assistant. The username is separate and does not have to match.`]}),(0,m.jsx)(i,{as:`p`,variant:`body-medium-lighter`,className:`text-[color:var(--content-default)]`,children:`In BotFather:`}),(0,m.jsxs)(`ol`,{className:`list-decimal list-outside space-y-1 pl-5 text-body-medium-lighter text-[var(--content-default)]`,children:[(0,m.jsxs)(`li`,{children:[`Send `,(0,m.jsx)(`strong`,{children:`/newbot`})]}),(0,m.jsx)(`li`,{children:`Give it a display name, which is what people see in chat`}),(0,m.jsxs)(`li`,{children:[`Give it a username, which must be unique and end in`,` `,(0,m.jsx)(`strong`,{children:`bot`})]}),(0,m.jsxs)(`li`,{children:[`BotFather replies with a token after`,` `,(0,m.jsx)(`strong`,{children:`Use this token to access the HTTP API`})]})]})]})}var B=`https://t.me/BotFather`,V=[`create`,`connect`],H=[{id:`create`,label:`Create bot`},{id:`connect`,label:`Connect`}];function U({assistantName:e,onSave:t,saveStatus:n=`idle`,saveError:r=null}){let{stepId:i,stepIndex:a,goTo:o,onStepSelect:s}=A(V),[c,l]=(0,p.useState)(``);(0,p.useEffect)(()=>{n===`success`&&l(``)},[n]);let{copy:u,copied:g}=f({errorMessage:`Could not copy the name. Type it into BotFather instead.`}),_=(0,p.useCallback)(()=>{u(e)},[u,e]),v=(0,p.useCallback)(()=>{d(B)},[]),y=(0,p.useCallback)(()=>o(`connect`),[o]),b=(0,p.useCallback)(()=>{t?.(c.trim())},[t,c]);return(0,m.jsxs)(h,{channelLabel:`Telegram`,steps:H,stepIndex:a,onStepSelect:s,locked:n===`pending`,children:[i===`create`&&(0,m.jsx)(z,{suggestedName:e,copied:g,onCopyName:_,onOpenBotFather:v,onContinue:y}),i===`connect`&&(0,m.jsx)(R,{botToken:c,saveStatus:n,saveError:r,onBotTokenChange:l,onSave:b})]})}export{P as n,U as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{t as r}from"./typography-BeUa5Fd-.js";import"./src-BMRW2yQf.js";import{t as i}from"./preview-error-Di5TH4XQ.js";import{t as a}from"./preview-skeleton-DsTQ51Kh.js";var o=e(t(),1),s=n(),c=2*1024*1024,l=`Showing the first 2 MB`;function u(e){return e.length<=c?{text:e,truncated:!1}:{text:e.slice(0,c),truncated:!0}}function d({blob:e,filename:t}){let[n,c]=(0,o.useState)(null),[d,f]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let t=!1;return c(null),f(!1),e.text().then(e=>{t||c(e)},()=>{t||f(!0)}),()=>{t=!0}},[e]);let p=(0,o.useMemo)(()=>n===null?null:u(n),[n]);return d?(0,s.jsx)(i,{filename:t}):p===null?(0,s.jsx)(a,{}):(0,s.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-2`,children:[(0,s.jsx)(`pre`,{className:`whitespace-pre-wrap break-words font-mono text-body-small-default text-[var(--content-default)]`,children:p.text}),p.truncated&&(0,s.jsx)(r,{as:`p`,variant:`label-small-default`,className:`border-t border-[var(--border-element)] pt-2 text-[var(--content-tertiary)]`,children:l})]})}export{d as TextPreview};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{t as r}from"./typography-BeUa5Fd-.js";import"./src-hNk11eS3.js";import{t as i}from"./preview-error-CihmwI1t.js";import{t as a}from"./preview-skeleton-DsTQ51Kh.js";var o=e(t(),1),s=n(),c=2*1024*1024,l=`Showing the first 2 MB`;function u(e){return e.length<=c?{text:e,truncated:!1}:{text:e.slice(0,c),truncated:!0}}function d({blob:e,filename:t}){let[n,c]=(0,o.useState)(null),[d,f]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let t=!1;return c(null),f(!1),e.text().then(e=>{t||c(e)},()=>{t||f(!0)}),()=>{t=!0}},[e]);let p=(0,o.useMemo)(()=>n===null?null:u(n),[n]);return d?(0,s.jsx)(i,{filename:t}):p===null?(0,s.jsx)(a,{}):(0,s.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-2`,children:[(0,s.jsx)(`pre`,{className:`whitespace-pre-wrap break-words font-mono text-body-small-default text-[var(--content-default)]`,children:p.text}),p.truncated&&(0,s.jsx)(r,{as:`p`,variant:`label-small-default`,className:`border-t border-[var(--border-element)] pt-2 text-[var(--content-tertiary)]`,children:l})]})}export{d as TextPreview};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{h as r,p as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./card-q0GJX1HZ.js";import"./src-BMRW2yQf.js";import{n as s,t as c}from"./input-DmHXRXaB.js";import{t as l}from"./use-app-theme-CV9AULGm.js";import{t as u}from"./workspace-theme-tokens-D_dTwxiM.js";var d=e(t(),1),f=a(),p=`__THEME_STAGE_READY__`;function m(e){return e===`chat`?`chat`:`sampler`}function h(e){if(e)try{let t=JSON.parse(e);if(typeof t!=`object`||!t||Array.isArray(t))return;let n={};for(let[e,r]of Object.entries(t))typeof r==`string`&&(n[e]=r);return n}catch{return}}var g=`w-[720px]`;function _({children:e}){return(0,f.jsx)(`div`,{className:`text-xs font-medium uppercase tracking-wide text-[var(--content-tertiary)]`,children:e})}function v(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,f.jsx)(_,{children:`Text`}),(0,f.jsx)(`div`,{className:`text-[15px] text-[var(--content-default)]`,children:`Primary text — the main reading surface of the app.`}),(0,f.jsx)(`div`,{className:`text-[15px] text-[var(--content-secondary)]`,children:`Secondary text — supporting copy and descriptions.`}),(0,f.jsx)(`div`,{className:`text-sm text-[var(--content-tertiary)]`,children:`Tertiary text — captions, labels, and placeholders.`}),(0,f.jsx)(`div`,{className:`text-sm text-[var(--content-quiet)]`,children:`Quiet text — metadata and timestamps.`}),(0,f.jsx)(`div`,{className:`text-sm text-[var(--content-faint)]`,children:`Faint text — the last legible step of the ramp.`})]})}function y(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,f.jsx)(_,{children:`Buttons`}),(0,f.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,f.jsx)(n,{children:`Primary`}),(0,f.jsx)(n,{variant:`outlined`,children:`Secondary`}),(0,f.jsx)(n,{disabled:!0,children:`Disabled`})]})]})}function b(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,f.jsx)(_,{children:`Accent`}),(0,f.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,f.jsx)(`div`,{className:`rounded-md bg-[var(--primary-base)] px-4 py-2 text-sm font-medium text-[var(--content-inset)]`,children:`Accent fill`}),(0,f.jsx)(`div`,{className:`rounded-md border border-[var(--border-active)] px-4 py-2 text-sm text-[var(--content-default)]`,children:`Active border`}),(0,f.jsx)(`div`,{className:`h-6 w-6 rounded-full bg-[var(--primary-hover)]`}),(0,f.jsx)(`div`,{className:`h-6 w-6 rounded-full bg-[var(--primary-active)]`})]})]})}function x(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,f.jsx)(_,{children:`Surfaces and borders`}),(0,f.jsx)(o,{elevated:!0,children:(0,f.jsxs)(`div`,{className:`flex flex-col gap-2 p-4`,children:[(0,f.jsx)(`div`,{className:`text-[15px] font-medium text-[var(--content-default)]`,children:`Raised card`}),(0,f.jsx)(`div`,{className:`text-sm text-[var(--content-secondary)]`,children:`Elevated surfaces sit above panels and the page background.`}),(0,f.jsx)(`div`,{className:`border-t border-[var(--border-subtle)] pt-2 text-sm text-[var(--content-tertiary)]`,children:`Subtle divider above this line.`})]})}),(0,f.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,f.jsx)(`div`,{className:`rounded-md border border-[var(--border-base)] bg-[var(--surface-overlay)] px-3 py-2 text-sm text-[var(--content-secondary)]`,children:`Overlay surface`}),(0,f.jsx)(`div`,{className:`rounded-md border border-[var(--border-element)] bg-[var(--surface-active)] px-3 py-2 text-sm text-[var(--content-secondary)]`,children:`Active surface`})]})]})}function S(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,f.jsx)(_,{children:`Inputs`}),(0,f.jsx)(c,{fullWidth:!0,placeholder:`A placeholder in an empty field`,readOnly:!0}),(0,f.jsx)(s,{fullWidth:!0,readOnly:!0,rows:2,value:`Text someone has already typed into a field.`})]})}function C({children:e}){return(0,f.jsx)(`div`,{className:`group/msg flex justify-end`,children:(0,f.jsx)(`div`,{className:`flex w-full min-w-0 flex-col gap-2 items-end`,children:(0,f.jsx)(`div`,{className:`max-w-[80%] rounded-lg bg-[var(--user-bubble-bg,var(--surface-lift))] px-4 py-3 text-[var(--user-bubble-text,var(--content-default))] flex flex-col gap-2`,children:(0,f.jsx)(`div`,{className:`break-words text-[15px]`,children:e})})})})}function w({children:e}){return(0,f.jsx)(`div`,{className:`group/msg flex justify-start`,children:(0,f.jsx)(`div`,{className:`flex w-full min-w-0 flex-col gap-2 items-start`,children:(0,f.jsx)(`div`,{className:`w-full text-[var(--content-default)]`,children:(0,f.jsx)(`div`,{className:`break-words text-[15px] w-full`,children:e})})})})}function T(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,f.jsx)(_,{children:`Messages`}),(0,f.jsx)(C,{children:`A message from the user, in its bubble.`}),(0,f.jsx)(w,{children:`A reply from the assistant, rendered full-width on the page surface.`})]})}function E(){return(0,f.jsxs)(`div`,{"data-testid":`theme-stage-sampler`,className:`${g} flex min-h-[1080px] flex-col gap-6 bg-[var(--background)] p-8`,children:[(0,f.jsx)(`div`,{className:`text-lg font-semibold text-[var(--content-default)]`,children:`Theme sampler`}),(0,f.jsx)(v,{}),(0,f.jsx)(b,{}),(0,f.jsx)(y,{}),(0,f.jsx)(x,{}),(0,f.jsx)(S,{}),(0,f.jsx)(T,{})]})}function D(){return(0,f.jsxs)(`div`,{"data-testid":`theme-stage-chat`,className:`${g} flex h-[760px] flex-col bg-[var(--background)]`,children:[(0,f.jsx)(`div`,{className:`flex items-center border-b border-[var(--border-base)] bg-[var(--surface-overlay)] px-5 py-3`,children:(0,f.jsx)(`div`,{className:`text-[15px] font-medium text-[var(--content-default)]`,children:`New conversation`})}),(0,f.jsxs)(`div`,{className:`flex flex-1 flex-col justify-end gap-4 overflow-hidden px-5 py-4`,children:[(0,f.jsx)(C,{children:`Can you summarize the quarterly report before tomorrow's meeting?`}),(0,f.jsx)(w,{children:`Done — the summary is ready. Revenue grew steadily, the two flagged risks from last quarter are resolved, and I pulled the three charts worth showing into a separate page.`}),(0,f.jsx)(C,{children:`Perfect. Send it to the team in the morning.`}),(0,f.jsx)(w,{children:`Scheduled for 9am. I'll include the charts and a one-paragraph version for anyone skimming on their phone.`})]}),(0,f.jsxs)(`div`,{className:`flex items-end gap-2 border-t border-[var(--border-base)] px-5 py-4`,children:[(0,f.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,f.jsx)(s,{fullWidth:!0,readOnly:!0,rows:1,placeholder:`Message your assistant`})}),(0,f.jsx)(n,{children:`Send`})]})]})}function O(){let e=i(),[t]=r(),n=m(e.view),a=t.get(`tokens`),o=(0,d.useMemo)(()=>h(a),[a]);return l(),(0,d.useEffect)(()=>(u(o),()=>{u(void 0)}),[o]),(0,d.useEffect)(()=>{let e=!1;return document.title=`theme-stage`,(document.fonts?.ready??Promise.resolve()).then(()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{e||(document.title=p)})})}),()=>{e=!0}},[n,o]),(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(`style`,{children:`* { transition: none !important; animation: none !important; caret-color: transparent !important; } html, body { background: var(--background); }`}),n===`chat`?(0,f.jsx)(D,{}):(0,f.jsx)(E,{})]})}export{O as ThemeStagePage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{h as r,p as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./card-q0GJX1HZ.js";import"./src-hNk11eS3.js";import{n as s,t as c}from"./input-DmHXRXaB.js";import{t as l}from"./use-app-theme-CV9AULGm.js";import{t as u}from"./workspace-theme-tokens-D_dTwxiM.js";var d=e(t(),1),f=a(),p=`__THEME_STAGE_READY__`;function m(e){return e===`chat`?`chat`:`sampler`}function h(e){if(e)try{let t=JSON.parse(e);if(typeof t!=`object`||!t||Array.isArray(t))return;let n={};for(let[e,r]of Object.entries(t))typeof r==`string`&&(n[e]=r);return n}catch{return}}var g=`w-[720px]`;function _({children:e}){return(0,f.jsx)(`div`,{className:`text-xs font-medium uppercase tracking-wide text-[var(--content-tertiary)]`,children:e})}function v(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,f.jsx)(_,{children:`Text`}),(0,f.jsx)(`div`,{className:`text-[15px] text-[var(--content-default)]`,children:`Primary text — the main reading surface of the app.`}),(0,f.jsx)(`div`,{className:`text-[15px] text-[var(--content-secondary)]`,children:`Secondary text — supporting copy and descriptions.`}),(0,f.jsx)(`div`,{className:`text-sm text-[var(--content-tertiary)]`,children:`Tertiary text — captions, labels, and placeholders.`}),(0,f.jsx)(`div`,{className:`text-sm text-[var(--content-quiet)]`,children:`Quiet text — metadata and timestamps.`}),(0,f.jsx)(`div`,{className:`text-sm text-[var(--content-faint)]`,children:`Faint text — the last legible step of the ramp.`})]})}function y(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,f.jsx)(_,{children:`Buttons`}),(0,f.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,f.jsx)(n,{children:`Primary`}),(0,f.jsx)(n,{variant:`outlined`,children:`Secondary`}),(0,f.jsx)(n,{disabled:!0,children:`Disabled`})]})]})}function b(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,f.jsx)(_,{children:`Accent`}),(0,f.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,f.jsx)(`div`,{className:`rounded-md bg-[var(--primary-base)] px-4 py-2 text-sm font-medium text-[var(--content-inset)]`,children:`Accent fill`}),(0,f.jsx)(`div`,{className:`rounded-md border border-[var(--border-active)] px-4 py-2 text-sm text-[var(--content-default)]`,children:`Active border`}),(0,f.jsx)(`div`,{className:`h-6 w-6 rounded-full bg-[var(--primary-hover)]`}),(0,f.jsx)(`div`,{className:`h-6 w-6 rounded-full bg-[var(--primary-active)]`})]})]})}function x(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,f.jsx)(_,{children:`Surfaces and borders`}),(0,f.jsx)(o,{elevated:!0,children:(0,f.jsxs)(`div`,{className:`flex flex-col gap-2 p-4`,children:[(0,f.jsx)(`div`,{className:`text-[15px] font-medium text-[var(--content-default)]`,children:`Raised card`}),(0,f.jsx)(`div`,{className:`text-sm text-[var(--content-secondary)]`,children:`Elevated surfaces sit above panels and the page background.`}),(0,f.jsx)(`div`,{className:`border-t border-[var(--border-subtle)] pt-2 text-sm text-[var(--content-tertiary)]`,children:`Subtle divider above this line.`})]})}),(0,f.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,f.jsx)(`div`,{className:`rounded-md border border-[var(--border-base)] bg-[var(--surface-overlay)] px-3 py-2 text-sm text-[var(--content-secondary)]`,children:`Overlay surface`}),(0,f.jsx)(`div`,{className:`rounded-md border border-[var(--border-element)] bg-[var(--surface-active)] px-3 py-2 text-sm text-[var(--content-secondary)]`,children:`Active surface`})]})]})}function S(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,f.jsx)(_,{children:`Inputs`}),(0,f.jsx)(c,{fullWidth:!0,placeholder:`A placeholder in an empty field`,readOnly:!0}),(0,f.jsx)(s,{fullWidth:!0,readOnly:!0,rows:2,value:`Text someone has already typed into a field.`})]})}function C({children:e}){return(0,f.jsx)(`div`,{className:`group/msg flex justify-end`,children:(0,f.jsx)(`div`,{className:`flex w-full min-w-0 flex-col gap-2 items-end`,children:(0,f.jsx)(`div`,{className:`max-w-[80%] rounded-lg bg-[var(--user-bubble-bg,var(--surface-lift))] px-4 py-3 text-[var(--user-bubble-text,var(--content-default))] flex flex-col gap-2`,children:(0,f.jsx)(`div`,{className:`break-words text-[15px]`,children:e})})})})}function w({children:e}){return(0,f.jsx)(`div`,{className:`group/msg flex justify-start`,children:(0,f.jsx)(`div`,{className:`flex w-full min-w-0 flex-col gap-2 items-start`,children:(0,f.jsx)(`div`,{className:`w-full text-[var(--content-default)]`,children:(0,f.jsx)(`div`,{className:`break-words text-[15px] w-full`,children:e})})})})}function T(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,f.jsx)(_,{children:`Messages`}),(0,f.jsx)(C,{children:`A message from the user, in its bubble.`}),(0,f.jsx)(w,{children:`A reply from the assistant, rendered full-width on the page surface.`})]})}function E(){return(0,f.jsxs)(`div`,{"data-testid":`theme-stage-sampler`,className:`${g} flex min-h-[1080px] flex-col gap-6 bg-[var(--background)] p-8`,children:[(0,f.jsx)(`div`,{className:`text-lg font-semibold text-[var(--content-default)]`,children:`Theme sampler`}),(0,f.jsx)(v,{}),(0,f.jsx)(b,{}),(0,f.jsx)(y,{}),(0,f.jsx)(x,{}),(0,f.jsx)(S,{}),(0,f.jsx)(T,{})]})}function D(){return(0,f.jsxs)(`div`,{"data-testid":`theme-stage-chat`,className:`${g} flex h-[760px] flex-col bg-[var(--background)]`,children:[(0,f.jsx)(`div`,{className:`flex items-center border-b border-[var(--border-base)] bg-[var(--surface-overlay)] px-5 py-3`,children:(0,f.jsx)(`div`,{className:`text-[15px] font-medium text-[var(--content-default)]`,children:`New conversation`})}),(0,f.jsxs)(`div`,{className:`flex flex-1 flex-col justify-end gap-4 overflow-hidden px-5 py-4`,children:[(0,f.jsx)(C,{children:`Can you summarize the quarterly report before tomorrow's meeting?`}),(0,f.jsx)(w,{children:`Done — the summary is ready. Revenue grew steadily, the two flagged risks from last quarter are resolved, and I pulled the three charts worth showing into a separate page.`}),(0,f.jsx)(C,{children:`Perfect. Send it to the team in the morning.`}),(0,f.jsx)(w,{children:`Scheduled for 9am. I'll include the charts and a one-paragraph version for anyone skimming on their phone.`})]}),(0,f.jsxs)(`div`,{className:`flex items-end gap-2 border-t border-[var(--border-base)] px-5 py-4`,children:[(0,f.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,f.jsx)(s,{fullWidth:!0,readOnly:!0,rows:1,placeholder:`Message your assistant`})}),(0,f.jsx)(n,{children:`Send`})]})]})}function O(){let e=i(),[t]=r(),n=m(e.view),a=t.get(`tokens`),o=(0,d.useMemo)(()=>h(a),[a]);return l(),(0,d.useEffect)(()=>(u(o),()=>{u(void 0)}),[o]),(0,d.useEffect)(()=>{let e=!1;return document.title=`theme-stage`,(document.fonts?.ready??Promise.resolve()).then(()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{e||(document.title=p)})})}),()=>{e=!0}},[n,o]),(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(`style`,{children:`* { transition: none !important; animation: none !important; caret-color: transparent !important; } html, body { background: var(--background); }`}),n===`chat`?(0,f.jsx)(D,{}):(0,f.jsx)(E,{})]})}export{O as ThemeStagePage};
@@ -1,4 +1,4 @@
1
- import{o as e,r as t,t as n}from"./chunk-jRWAZmH_.js";import{t as r}from"./react-BFJW0bSv.js";import{A as i,C as a,D as o,E as s,M as c,O as l,W as u,j as d,k as f,w as p}from"./button-BENY-yx_.js";import{t as m}from"./jsx-runtime-D3ZM-ToX.js";import{t as h}from"./cn-DFWryB3N.js";import{t as g}from"./createLucideIcon-C1mdGPB9.js";import{t as _}from"./code-DwZ6Mhdw.js";import"./src-BMRW2yQf.js";import{t as v}from"./link-DMi999lz.js";import{t as y}from"./message-square-text-Crbwae27.js";import{t as b}from"./shim-DQit20z4.js";var ee=g(`bold`,[[`path`,{d:`M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8`,key:`mg9rjx`}]]),te=g(`italic`,[[`line`,{x1:`19`,x2:`10`,y1:`4`,y2:`4`,key:`15jd3p`}],[`line`,{x1:`14`,x2:`5`,y1:`20`,y2:`20`,key:`bu0au3`}],[`line`,{x1:`15`,x2:`9`,y1:`4`,y2:`20`,key:`uljnxc`}]]),ne=g(`strikethrough`,[[`path`,{d:`M16 4H9a3 3 0 0 0-2.83 4`,key:`43sutm`}],[`path`,{d:`M14 12a4 4 0 0 1 0 8H6`,key:`nlfj13`}],[`line`,{x1:`4`,x2:`20`,y1:`12`,y2:`12`,key:`1e0a9i`}]]),x=e(r(),1),re=e(u(),1),S=m(),ie=b();function C(e){this.content=e}C.prototype={constructor:C,find:function(e){for(var t=0;t<this.content.length;t+=2)if(this.content[t]===e)return t;return-1},get:function(e){var t=this.find(e);return t==-1?void 0:this.content[t+1]},update:function(e,t,n){var r=n&&n!=e?this.remove(n):this,i=r.find(e),a=r.content.slice();return i==-1?a.push(n||e,t):(a[i+1]=t,n&&(a[i]=n)),new C(a)},remove:function(e){var t=this.find(e);if(t==-1)return this;var n=this.content.slice();return n.splice(t,2),new C(n)},addToStart:function(e,t){return new C([e,t].concat(this.remove(e).content))},addToEnd:function(e,t){var n=this.remove(e).content.slice();return n.push(e,t),new C(n)},addBefore:function(e,t,n){var r=this.remove(t),i=r.content.slice(),a=r.find(e);return i.splice(a==-1?i.length:a,0,t,n),new C(i)},forEach:function(e){for(var t=0;t<this.content.length;t+=2)e(this.content[t],this.content[t+1])},prepend:function(e){return e=C.from(e),e.size?new C(e.content.concat(this.subtract(e).content)):this},append:function(e){return e=C.from(e),e.size?new C(this.subtract(e).content.concat(e.content)):this},subtract:function(e){var t=this;e=C.from(e);for(var n=0;n<e.content.length;n+=2)t=t.remove(e.content[n]);return t},toObject:function(){var e={};return this.forEach(function(t,n){e[t]=n}),e},get size(){return this.content.length>>1}},C.from=function(e){if(e instanceof C)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new C(t)};function ae(e,t,n){for(let r=0;;r++){if(r==e.childCount||r==t.childCount)return e.childCount==t.childCount?null:n;let i=e.child(r),a=t.child(r);if(i==a){n+=i.nodeSize;continue}if(!i.sameMarkup(a))return n;if(i.isText&&i.text!=a.text){let e=i.text,t=a.text,r=0;for(;e[r]==t[r];r++)n++;return r&&r<e.length&&r<t.length&&ce(e.charCodeAt(r-1))&&se(e.charCodeAt(r))&&n--,n}if(i.content.size||a.content.size){let e=ae(i.content,a.content,n+1);if(e!=null)return e}n+=i.nodeSize}}function oe(e,t,n,r){for(let i=e.childCount,a=t.childCount;;){if(i==0||a==0)return i==a?null:{a:n,b:r};let o=e.child(--i),s=t.child(--a),c=o.nodeSize;if(o==s){n-=c,r-=c;continue}if(!o.sameMarkup(s))return{a:n,b:r};if(o.isText&&o.text!=s.text){let e=o.text,t=s.text,i=e.length,a=t.length;for(;i>0&&a>0&&e[i-1]==t[a-1];)i--,a--,n--,r--;return i&&a&&i<e.length&&ce(e.charCodeAt(i-1))&&se(e.charCodeAt(i))&&(n++,r++),{a:n,b:r}}if(o.content.size||s.content.size){let e=oe(o.content,s.content,n-1,r-1);if(e)return e}n-=c,r-=c}}function se(e){return e>=56320&&e<57344}function ce(e){return e>=55296&&e<56320}var w=class e{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let t=0;t<e.length;t++)this.size+=e[t].nodeSize}nodesBetween(e,t,n,r=0,i){for(let a=0,o=0;o<t;a++){let s=this.content[a],c=o+s.nodeSize;if(c>e&&n(s,r+o,i||null,a)!==!1&&s.content.size){let i=o+1;s.nodesBetween(Math.max(0,e-i),Math.min(s.content.size,t-i),n,r+i)}o=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i=``,a=!0;return this.nodesBetween(e,t,(o,s)=>{let c=o.isText?o.text.slice(Math.max(e,s)-s,t-s):o.isLeaf?r?typeof r==`function`?r(o):r:o.type.spec.leafText?o.type.spec.leafText(o):``:``;o.isBlock&&(o.isLeaf&&c||o.isTextblock)&&n&&(a?a=!1:i+=n),i+=c},0),i}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,r=t.firstChild,i=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),a=1);a<t.content.length;a++)i.push(t.content[a]);return new e(i,this.size+t.size)}cut(t,n=this.size){if(t==0&&n==this.size)return this;let r=[],i=0;if(n>t)for(let e=0,a=0;a<n;e++){let o=this.content[e],s=a+o.nodeSize;s>t&&((a<t||s>n)&&(o=o.isText?o.cut(Math.max(0,t-a),Math.min(o.text.length,n-a)):o.cut(Math.max(0,t-a-1),Math.min(o.content.size,n-a-1))),r.push(o),i+=o.nodeSize),a=s}return new e(r,i)}cutByIndex(t,n){return t==n?e.empty:t==0&&n==this.content.length?this:new e(this.content.slice(t,n))}replaceChild(t,n){let r=this.content[t];if(r==n)return this;let i=this.content.slice(),a=this.size+n.nodeSize-r.nodeSize;return i[t]=n,new e(i,a)}addToStart(t){return new e([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new e(this.content.concat(t),this.size+t.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<this.content.length;t++)if(!this.content[t].eq(e.content[t]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let t=this.content[e];if(!t)throw RangeError(`Index `+e+` out of range for `+this);return t}maybeChild(e){return this.content[e]||null}forEach(e){for(let t=0,n=0;t<this.content.length;t++){let r=this.content[t];e(r,n,t),n+=r.nodeSize}}findDiffStart(e,t=0){return ae(this,e,t)}findDiffEnd(e,t=this.size,n=e.size){return oe(this,e,t,n)}findIndex(e){if(e==0)return ue(0,e);if(e==this.size)return ue(this.content.length,e);if(e>this.size||e<0)throw RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=this.child(t),i=n+r.nodeSize;if(i>=e)return i==e?ue(t+1,i):ue(t,n);n=i}}toString(){return`<`+this.toStringInner()+`>`}toStringInner(){return this.content.join(`, `)}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(t,n){if(!n)return e.empty;if(!Array.isArray(n))throw RangeError(`Invalid input for Fragment.fromJSON`);return e.fromArray(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return e.empty;let n,r=0;for(let e=0;e<t.length;e++){let i=t[e];r+=i.nodeSize,e&&i.isText&&t[e-1].sameMarkup(i)?(n||=t.slice(0,e),n[n.length-1]=i.withText(n[n.length-1].text+i.text)):n&&n.push(i)}return new e(n||t,r)}static from(t){if(!t)return e.empty;if(t instanceof e)return t;if(Array.isArray(t))return this.fromArray(t);if(t.attrs)return new e([t],t.nodeSize);throw RangeError(`Can not convert `+t+` to a Fragment`+(t.nodesBetween?` (looks like multiple versions of prosemirror-model were loaded)`:``))}};w.empty=new w([],0);var le={index:0,offset:0};function ue(e,t){return le.index=e,le.offset=t,le}function de(e,t){if(e===t)return!0;if(!(e&&typeof e==`object`)||!(t&&typeof t==`object`))return!1;let n=Array.isArray(e);if(Array.isArray(t)!=n)return!1;if(n){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!de(e[n],t[n]))return!1}else{for(let n in e)if(!(n in t)||!de(e[n],t[n]))return!1;for(let n in t)if(!(n in e))return!1}return!0}var T=class e{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(this.eq(i))return e;if(this.type.excludes(i.type))t||=e.slice(0,r);else if(i.type.excludes(this.type))return e;else !n&&i.type.rank>this.type.rank&&(t||=e.slice(0,r),t.push(this),n=!0),t&&t.push(i)}return t||=e.slice(),n||t.push(this),t}removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e.slice(0,t).concat(e.slice(t+1));return e}isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}eq(e){return this==e||this.type==e.type&&de(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Mark.fromJSON`);let n=e.marks[t.type];if(!n)throw RangeError(`There is no mark type ${t.type} in this schema`);let r=n.create(t.attrs);return n.checkAttrs(r.attrs),r}static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].eq(t[n]))return!1;return!0}static setFrom(t){if(!t||Array.isArray(t)&&t.length==0)return e.none;if(t instanceof e)return[t];let n=t.slice();return n.sort((e,t)=>e.type.rank-t.type.rank),n}};T.none=[];var fe=class extends Error{},E=class e{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let r=me(this.content,t+this.openStart,n,this.openStart+1,this.openEnd+1);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e(pe(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+`(`+this.openStart+`,`+this.openEnd+`)`}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(t,n){if(!n)return e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!=`number`||typeof i!=`number`)throw RangeError(`Invalid input for Slice.fromJSON`);return new e(w.fromJSON(t,n.content),r,i)}static maxOpen(t,n=!0){let r=0,i=0;for(let e=t.firstChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.firstChild)r++;for(let e=t.lastChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.lastChild)i++;return new e(t,r,i)}};E.empty=new E(w.empty,0,0);function pe(e,t,n){let{index:r,offset:i}=e.findIndex(t),a=e.maybeChild(r),{index:o,offset:s}=e.findIndex(n);if(i==t||a.isText){if(s!=n&&!e.child(o).isText)throw RangeError(`Removing non-flat range`);return e.cut(0,t).append(e.cut(n))}if(r!=o)throw RangeError(`Removing non-flat range`);return e.replaceChild(r,a.copy(pe(a.content,t-i-1,n-i-1)))}function me(e,t,n,r,i,a){let{index:o,offset:s}=e.findIndex(t),c=e.maybeChild(o);if(s==t||c.isText)return a&&r<=0&&i<=0&&!a.canReplace(o,o,n)?null:e.cut(0,t).append(n).append(e.cut(t));let l=me(c.content,t-s-1,n,o==0?r-1:0,o==e.childCount-1?i-1:0,c);return l&&e.replaceChild(o,c.copy(l))}function he(e,t,n){if(n.openStart>e.depth)throw new fe(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new fe(`Inconsistent open depths`);return ge(e,t,n,0)}function ge(e,t,n,r){let i=e.index(r),a=e.node(r);if(i==t.index(r)&&r<e.depth-n.openStart){let o=ge(e,t,n,r+1);return a.copy(a.content.replaceChild(i,o))}else if(!n.content.size)return xe(a,Ce(e,t,r));else if(!n.openStart&&!n.openEnd&&e.depth==r&&t.depth==r){let r=e.parent,i=r.content;return xe(r,i.cut(0,e.parentOffset).append(n.content).append(i.cut(t.parentOffset)))}else{let{start:i,end:o}=we(n,e);return xe(a,Se(e,i,o,t,r))}}function _e(e,t){if(!t.type.compatibleContent(e.type))throw new fe(`Cannot join `+t.type.name+` onto `+e.type.name)}function ve(e,t,n){let r=e.node(n);return _e(r,t.node(n)),r}function ye(e,t){let n=t.length-1;n>=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function be(e,t,n,r){let i=(t||e).node(n),a=0,o=t?t.index(n):i.childCount;e&&(a=e.index(n),e.depth>n?a++:e.textOffset&&(ye(e.nodeAfter,r),a++));for(let e=a;e<o;e++)ye(i.child(e),r);t&&t.depth==n&&t.textOffset&&ye(t.nodeBefore,r)}function xe(e,t){if(!e.type.validContent(t))throw new fe(`Invalid content for node `+e.type.name);return e.copy(t)}function Se(e,t,n,r,i){let a=e.depth>i&&ve(e,t,i+1),o=r.depth>i&&ve(n,r,i+1),s=[];return be(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(_e(a,o),ye(xe(a,Se(e,t,n,r,i+1)),s)):(a&&ye(xe(a,Ce(e,t,i+1)),s),be(t,n,i,s),o&&ye(xe(o,Ce(n,r,i+1)),s)),be(r,null,i,s),new w(s)}function Ce(e,t,n){let r=[];return be(null,e,n,r),e.depth>n&&ye(xe(ve(e,t,n+1),Ce(e,t,n+1)),r),be(t,null,n,r),new w(r)}function we(e,t){let n=t.depth-e.openStart,r=t.node(n).copy(e.content);for(let e=n-1;e>=0;e--)r=t.node(e).copy(w.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var Te=class e{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position before the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position after the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[t*3],r=t==0?0:this.path[t*3-1]+1;for(let t=0;t<e;t++)r+=n.child(t).nodeSize;return r}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return T.none;if(this.textOffset)return e.child(t).marks;let n=e.maybeChild(t-1),r=e.maybeChild(t);if(!n){let e=n;n=r,r=e}let i=n.marks;for(var a=0;a<i.length;a++)i[a].type.spec.inclusive===!1&&(!r||!i[a].isInSet(r.marks))&&(i=i[a--].removeFromSet(i));return i}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let n=t.marks,r=e.parent.maybeChild(e.index());for(var i=0;i<n.length;i++)n[i].type.spec.inclusive===!1&&(!r||!n[i].isInSet(r.marks))&&(n=n[i--].removeFromSet(n));return n}sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(let n=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);n>=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new ke(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e=``;for(let t=1;t<=this.depth;t++)e+=(e?`/`:``)+this.node(t).type.name+`_`+this.index(t-1);return e+`:`+this.parentOffset}static resolve(t,n){if(!(n>=0&&n<=t.content.size))throw RangeError(`Position `+n+` out of range`);let r=[],i=0,a=n;for(let e=t;;){let{index:t,offset:n}=e.content.findIndex(a),o=a-n;if(r.push(e,t,i+n),!o||(e=e.child(t),e.isText))break;a=o-1,i+=n+1}return new e(n,r,a)}static resolveCached(t,n){let r=Oe.get(t);if(r)for(let e=0;e<r.elts.length;e++){let t=r.elts[e];if(t.pos==n)return t}else Oe.set(t,r=new Ee);let i=r.elts[r.i]=e.resolve(t,n);return r.i=(r.i+1)%De,i}},Ee=class{constructor(){this.elts=[],this.i=0}},De=12,Oe=new WeakMap,ke=class{constructor(e,t,n){this.$from=e,this.$to=t,this.depth=n}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}},Ae=Object.create(null),je=class e{constructor(e,t,n,r=T.none){this.type=e,this.attrs=t,this.marks=r,this.content=n||w.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,t,n,r=0){this.content.nodesBetween(e,t,n,r,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,``)}textBetween(e,t,n,r){return this.content.textBetween(e,t,n,r)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,t,n){return this.type==e&&de(this.attrs,t||e.defaultAttrs||Ae)&&T.sameSet(this.marks,n||T.none)}copy(t=null){return t==this.content?this:new e(this.type,this.attrs,t,this.marks)}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.content,t)}cut(e,t=this.content.size){return e==0&&t==this.content.size?this:this.copy(this.content.cut(e,t))}slice(e,t=this.content.size,n=!1){if(e==t)return E.empty;let r=this.resolve(e),i=this.resolve(t),a=n?0:r.sharedDepth(t),o=r.start(a);return new E(r.node(a).content.cut(r.pos-o,i.pos-o),r.depth-a,i.depth-a)}replace(e,t,n){return he(this.resolve(e),this.resolve(t),n)}nodeAt(e){for(let t=this;;){let{index:n,offset:r}=t.content.findIndex(e);if(t=t.maybeChild(n),!t)return null;if(r==e||t.isText)return t;e-=r+1}}childAfter(e){let{index:t,offset:n}=this.content.findIndex(e);return{node:this.content.maybeChild(t),index:t,offset:n}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:t,offset:n}=this.content.findIndex(e);if(n<e)return{node:this.content.child(t),index:t,offset:n};let r=this.content.child(t-1);return{node:r,index:t-1,offset:n-r.nodeSize}}resolve(e){return Te.resolveCached(this,e)}resolveNoCache(e){return Te.resolve(this,e)}rangeHasMark(e,t,n){let r=!1;return t>e&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+=`(`+this.content.toStringInner()+`)`),Ne(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw Error(`Called contentMatchAt on a node with invalid content`);return t}canReplace(e,t,n=w.empty,r=0,i=n.childCount){let a=this.contentMatchAt(e).matchFragment(n,r,i),o=a&&a.matchFragment(this.content,t);if(!o||!o.validEnd)return!1;for(let e=r;e<i;e++)if(!this.type.allowsMarks(n.child(e).marks))return!1;return!0}canReplaceWith(e,t,n,r){if(r&&!this.type.allowsMarks(r))return!1;let i=this.contentMatchAt(e).matchType(n),a=i&&i.matchFragment(this.content,t);return a?a.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),this.type.checkAttrs(this.attrs);let e=T.none;for(let t=0;t<this.marks.length;t++){let n=this.marks[t];n.type.checkAttrs(n.attrs),e=n.addToSet(e)}if(!T.sameSet(e,this.marks))throw RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(e=>e.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Node.fromJSON`);let n;if(t.marks){if(!Array.isArray(t.marks))throw RangeError(`Invalid mark data for Node.fromJSON`);n=t.marks.map(e.markFromJSON)}if(t.type==`text`){if(typeof t.text!=`string`)throw RangeError(`Invalid text node in JSON`);return e.text(t.text,n)}let r=w.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,r,n);return i.type.checkAttrs(i.attrs),i}};je.prototype.text=void 0;var Me=class e extends je{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw RangeError(`Empty text nodes are not allowed`);this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):Ne(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.text,t)}withText(t){return t==this.text?this:new e(this.type,this.attrs,t,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function Ne(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}var Pe=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new Fe(t,n);if(r.next==null)return e.empty;let i=Ie(r);r.next&&r.err(`Unexpected trailing text`);let a=Ke(Ue(i));return qe(a,r),a}matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==e)return this.next[t].next;return null}matchFragment(e,t=0,n=e.childCount){let r=this;for(let i=t;r&&i<n;i++)r=r.matchType(e.child(i).type);return r}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this.next[e];if(!(t.isText||t.hasRequiredAttrs()))return t}return null}compatible(e){for(let t=0;t<this.next.length;t++)for(let n=0;n<e.next.length;n++)if(this.next[t].type==e.next[n].type)return!0;return!1}fillBefore(e,t=!1,n=0){let r=[this];function i(a,o){let s=a.matchFragment(e,n);if(s&&(!t||s.validEnd))return w.from(o.map(e=>e.createAndFill()));for(let e=0;e<a.next.length;e++){let{type:t,next:n}=a.next[e];if(!(t.isText||t.hasRequiredAttrs())&&r.indexOf(n)==-1){r.push(n);let e=i(n,o.concat(t));if(e)return e}}return null}return i(this,[])}findWrapping(e){for(let t=0;t<this.wrapCache.length;t+=2)if(this.wrapCache[t]==e)return this.wrapCache[t+1];let t=this.computeWrapping(e);return this.wrapCache.push(e,t),t}computeWrapping(e){let t=Object.create(null),n=[{match:this,type:null,via:null}];for(;n.length;){let r=n.shift(),i=r.match;if(i.matchType(e)){let e=[];for(let t=r;t.type;t=t.via)e.push(t.type);return e.reverse()}for(let e=0;e<i.next.length;e++){let{type:a,next:o}=i.next[e];!a.isLeaf&&!a.hasRequiredAttrs()&&!(a.name in t)&&(!r.type||o.validEnd)&&(n.push({match:a.contentMatch,type:a,via:r}),t[a.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(n){e.push(n);for(let r=0;r<n.next.length;r++)e.indexOf(n.next[r].next)==-1&&t(n.next[r].next)}return t(this),e.map((t,n)=>{let r=n+(t.validEnd?`*`:` `)+` `;for(let n=0;n<t.next.length;n++)r+=(n?`, `:``)+t.next[n].type.name+`->`+e.indexOf(t.next[n].next);return r}).join(`
1
+ import{o as e,r as t,t as n}from"./chunk-jRWAZmH_.js";import{t as r}from"./react-BFJW0bSv.js";import{A as i,C as a,D as o,E as s,M as c,O as l,W as u,j as d,k as f,w as p}from"./button-BENY-yx_.js";import{t as m}from"./jsx-runtime-D3ZM-ToX.js";import{t as h}from"./cn-DFWryB3N.js";import{t as g}from"./createLucideIcon-C1mdGPB9.js";import{t as _}from"./code-DwZ6Mhdw.js";import"./src-hNk11eS3.js";import{t as v}from"./link-DMi999lz.js";import{t as y}from"./message-square-text-Crbwae27.js";import{t as b}from"./shim-DQit20z4.js";var ee=g(`bold`,[[`path`,{d:`M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8`,key:`mg9rjx`}]]),te=g(`italic`,[[`line`,{x1:`19`,x2:`10`,y1:`4`,y2:`4`,key:`15jd3p`}],[`line`,{x1:`14`,x2:`5`,y1:`20`,y2:`20`,key:`bu0au3`}],[`line`,{x1:`15`,x2:`9`,y1:`4`,y2:`20`,key:`uljnxc`}]]),ne=g(`strikethrough`,[[`path`,{d:`M16 4H9a3 3 0 0 0-2.83 4`,key:`43sutm`}],[`path`,{d:`M14 12a4 4 0 0 1 0 8H6`,key:`nlfj13`}],[`line`,{x1:`4`,x2:`20`,y1:`12`,y2:`12`,key:`1e0a9i`}]]),x=e(r(),1),re=e(u(),1),S=m(),ie=b();function C(e){this.content=e}C.prototype={constructor:C,find:function(e){for(var t=0;t<this.content.length;t+=2)if(this.content[t]===e)return t;return-1},get:function(e){var t=this.find(e);return t==-1?void 0:this.content[t+1]},update:function(e,t,n){var r=n&&n!=e?this.remove(n):this,i=r.find(e),a=r.content.slice();return i==-1?a.push(n||e,t):(a[i+1]=t,n&&(a[i]=n)),new C(a)},remove:function(e){var t=this.find(e);if(t==-1)return this;var n=this.content.slice();return n.splice(t,2),new C(n)},addToStart:function(e,t){return new C([e,t].concat(this.remove(e).content))},addToEnd:function(e,t){var n=this.remove(e).content.slice();return n.push(e,t),new C(n)},addBefore:function(e,t,n){var r=this.remove(t),i=r.content.slice(),a=r.find(e);return i.splice(a==-1?i.length:a,0,t,n),new C(i)},forEach:function(e){for(var t=0;t<this.content.length;t+=2)e(this.content[t],this.content[t+1])},prepend:function(e){return e=C.from(e),e.size?new C(e.content.concat(this.subtract(e).content)):this},append:function(e){return e=C.from(e),e.size?new C(this.subtract(e).content.concat(e.content)):this},subtract:function(e){var t=this;e=C.from(e);for(var n=0;n<e.content.length;n+=2)t=t.remove(e.content[n]);return t},toObject:function(){var e={};return this.forEach(function(t,n){e[t]=n}),e},get size(){return this.content.length>>1}},C.from=function(e){if(e instanceof C)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new C(t)};function ae(e,t,n){for(let r=0;;r++){if(r==e.childCount||r==t.childCount)return e.childCount==t.childCount?null:n;let i=e.child(r),a=t.child(r);if(i==a){n+=i.nodeSize;continue}if(!i.sameMarkup(a))return n;if(i.isText&&i.text!=a.text){let e=i.text,t=a.text,r=0;for(;e[r]==t[r];r++)n++;return r&&r<e.length&&r<t.length&&ce(e.charCodeAt(r-1))&&se(e.charCodeAt(r))&&n--,n}if(i.content.size||a.content.size){let e=ae(i.content,a.content,n+1);if(e!=null)return e}n+=i.nodeSize}}function oe(e,t,n,r){for(let i=e.childCount,a=t.childCount;;){if(i==0||a==0)return i==a?null:{a:n,b:r};let o=e.child(--i),s=t.child(--a),c=o.nodeSize;if(o==s){n-=c,r-=c;continue}if(!o.sameMarkup(s))return{a:n,b:r};if(o.isText&&o.text!=s.text){let e=o.text,t=s.text,i=e.length,a=t.length;for(;i>0&&a>0&&e[i-1]==t[a-1];)i--,a--,n--,r--;return i&&a&&i<e.length&&ce(e.charCodeAt(i-1))&&se(e.charCodeAt(i))&&(n++,r++),{a:n,b:r}}if(o.content.size||s.content.size){let e=oe(o.content,s.content,n-1,r-1);if(e)return e}n-=c,r-=c}}function se(e){return e>=56320&&e<57344}function ce(e){return e>=55296&&e<56320}var w=class e{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let t=0;t<e.length;t++)this.size+=e[t].nodeSize}nodesBetween(e,t,n,r=0,i){for(let a=0,o=0;o<t;a++){let s=this.content[a],c=o+s.nodeSize;if(c>e&&n(s,r+o,i||null,a)!==!1&&s.content.size){let i=o+1;s.nodesBetween(Math.max(0,e-i),Math.min(s.content.size,t-i),n,r+i)}o=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i=``,a=!0;return this.nodesBetween(e,t,(o,s)=>{let c=o.isText?o.text.slice(Math.max(e,s)-s,t-s):o.isLeaf?r?typeof r==`function`?r(o):r:o.type.spec.leafText?o.type.spec.leafText(o):``:``;o.isBlock&&(o.isLeaf&&c||o.isTextblock)&&n&&(a?a=!1:i+=n),i+=c},0),i}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,r=t.firstChild,i=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),a=1);a<t.content.length;a++)i.push(t.content[a]);return new e(i,this.size+t.size)}cut(t,n=this.size){if(t==0&&n==this.size)return this;let r=[],i=0;if(n>t)for(let e=0,a=0;a<n;e++){let o=this.content[e],s=a+o.nodeSize;s>t&&((a<t||s>n)&&(o=o.isText?o.cut(Math.max(0,t-a),Math.min(o.text.length,n-a)):o.cut(Math.max(0,t-a-1),Math.min(o.content.size,n-a-1))),r.push(o),i+=o.nodeSize),a=s}return new e(r,i)}cutByIndex(t,n){return t==n?e.empty:t==0&&n==this.content.length?this:new e(this.content.slice(t,n))}replaceChild(t,n){let r=this.content[t];if(r==n)return this;let i=this.content.slice(),a=this.size+n.nodeSize-r.nodeSize;return i[t]=n,new e(i,a)}addToStart(t){return new e([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new e(this.content.concat(t),this.size+t.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<this.content.length;t++)if(!this.content[t].eq(e.content[t]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let t=this.content[e];if(!t)throw RangeError(`Index `+e+` out of range for `+this);return t}maybeChild(e){return this.content[e]||null}forEach(e){for(let t=0,n=0;t<this.content.length;t++){let r=this.content[t];e(r,n,t),n+=r.nodeSize}}findDiffStart(e,t=0){return ae(this,e,t)}findDiffEnd(e,t=this.size,n=e.size){return oe(this,e,t,n)}findIndex(e){if(e==0)return ue(0,e);if(e==this.size)return ue(this.content.length,e);if(e>this.size||e<0)throw RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=this.child(t),i=n+r.nodeSize;if(i>=e)return i==e?ue(t+1,i):ue(t,n);n=i}}toString(){return`<`+this.toStringInner()+`>`}toStringInner(){return this.content.join(`, `)}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(t,n){if(!n)return e.empty;if(!Array.isArray(n))throw RangeError(`Invalid input for Fragment.fromJSON`);return e.fromArray(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return e.empty;let n,r=0;for(let e=0;e<t.length;e++){let i=t[e];r+=i.nodeSize,e&&i.isText&&t[e-1].sameMarkup(i)?(n||=t.slice(0,e),n[n.length-1]=i.withText(n[n.length-1].text+i.text)):n&&n.push(i)}return new e(n||t,r)}static from(t){if(!t)return e.empty;if(t instanceof e)return t;if(Array.isArray(t))return this.fromArray(t);if(t.attrs)return new e([t],t.nodeSize);throw RangeError(`Can not convert `+t+` to a Fragment`+(t.nodesBetween?` (looks like multiple versions of prosemirror-model were loaded)`:``))}};w.empty=new w([],0);var le={index:0,offset:0};function ue(e,t){return le.index=e,le.offset=t,le}function de(e,t){if(e===t)return!0;if(!(e&&typeof e==`object`)||!(t&&typeof t==`object`))return!1;let n=Array.isArray(e);if(Array.isArray(t)!=n)return!1;if(n){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!de(e[n],t[n]))return!1}else{for(let n in e)if(!(n in t)||!de(e[n],t[n]))return!1;for(let n in t)if(!(n in e))return!1}return!0}var T=class e{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(this.eq(i))return e;if(this.type.excludes(i.type))t||=e.slice(0,r);else if(i.type.excludes(this.type))return e;else !n&&i.type.rank>this.type.rank&&(t||=e.slice(0,r),t.push(this),n=!0),t&&t.push(i)}return t||=e.slice(),n||t.push(this),t}removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e.slice(0,t).concat(e.slice(t+1));return e}isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}eq(e){return this==e||this.type==e.type&&de(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Mark.fromJSON`);let n=e.marks[t.type];if(!n)throw RangeError(`There is no mark type ${t.type} in this schema`);let r=n.create(t.attrs);return n.checkAttrs(r.attrs),r}static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].eq(t[n]))return!1;return!0}static setFrom(t){if(!t||Array.isArray(t)&&t.length==0)return e.none;if(t instanceof e)return[t];let n=t.slice();return n.sort((e,t)=>e.type.rank-t.type.rank),n}};T.none=[];var fe=class extends Error{},E=class e{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let r=me(this.content,t+this.openStart,n,this.openStart+1,this.openEnd+1);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e(pe(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+`(`+this.openStart+`,`+this.openEnd+`)`}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(t,n){if(!n)return e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!=`number`||typeof i!=`number`)throw RangeError(`Invalid input for Slice.fromJSON`);return new e(w.fromJSON(t,n.content),r,i)}static maxOpen(t,n=!0){let r=0,i=0;for(let e=t.firstChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.firstChild)r++;for(let e=t.lastChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.lastChild)i++;return new e(t,r,i)}};E.empty=new E(w.empty,0,0);function pe(e,t,n){let{index:r,offset:i}=e.findIndex(t),a=e.maybeChild(r),{index:o,offset:s}=e.findIndex(n);if(i==t||a.isText){if(s!=n&&!e.child(o).isText)throw RangeError(`Removing non-flat range`);return e.cut(0,t).append(e.cut(n))}if(r!=o)throw RangeError(`Removing non-flat range`);return e.replaceChild(r,a.copy(pe(a.content,t-i-1,n-i-1)))}function me(e,t,n,r,i,a){let{index:o,offset:s}=e.findIndex(t),c=e.maybeChild(o);if(s==t||c.isText)return a&&r<=0&&i<=0&&!a.canReplace(o,o,n)?null:e.cut(0,t).append(n).append(e.cut(t));let l=me(c.content,t-s-1,n,o==0?r-1:0,o==e.childCount-1?i-1:0,c);return l&&e.replaceChild(o,c.copy(l))}function he(e,t,n){if(n.openStart>e.depth)throw new fe(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new fe(`Inconsistent open depths`);return ge(e,t,n,0)}function ge(e,t,n,r){let i=e.index(r),a=e.node(r);if(i==t.index(r)&&r<e.depth-n.openStart){let o=ge(e,t,n,r+1);return a.copy(a.content.replaceChild(i,o))}else if(!n.content.size)return xe(a,Ce(e,t,r));else if(!n.openStart&&!n.openEnd&&e.depth==r&&t.depth==r){let r=e.parent,i=r.content;return xe(r,i.cut(0,e.parentOffset).append(n.content).append(i.cut(t.parentOffset)))}else{let{start:i,end:o}=we(n,e);return xe(a,Se(e,i,o,t,r))}}function _e(e,t){if(!t.type.compatibleContent(e.type))throw new fe(`Cannot join `+t.type.name+` onto `+e.type.name)}function ve(e,t,n){let r=e.node(n);return _e(r,t.node(n)),r}function ye(e,t){let n=t.length-1;n>=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function be(e,t,n,r){let i=(t||e).node(n),a=0,o=t?t.index(n):i.childCount;e&&(a=e.index(n),e.depth>n?a++:e.textOffset&&(ye(e.nodeAfter,r),a++));for(let e=a;e<o;e++)ye(i.child(e),r);t&&t.depth==n&&t.textOffset&&ye(t.nodeBefore,r)}function xe(e,t){if(!e.type.validContent(t))throw new fe(`Invalid content for node `+e.type.name);return e.copy(t)}function Se(e,t,n,r,i){let a=e.depth>i&&ve(e,t,i+1),o=r.depth>i&&ve(n,r,i+1),s=[];return be(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(_e(a,o),ye(xe(a,Se(e,t,n,r,i+1)),s)):(a&&ye(xe(a,Ce(e,t,i+1)),s),be(t,n,i,s),o&&ye(xe(o,Ce(n,r,i+1)),s)),be(r,null,i,s),new w(s)}function Ce(e,t,n){let r=[];return be(null,e,n,r),e.depth>n&&ye(xe(ve(e,t,n+1),Ce(e,t,n+1)),r),be(t,null,n,r),new w(r)}function we(e,t){let n=t.depth-e.openStart,r=t.node(n).copy(e.content);for(let e=n-1;e>=0;e--)r=t.node(e).copy(w.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var Te=class e{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position before the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position after the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[t*3],r=t==0?0:this.path[t*3-1]+1;for(let t=0;t<e;t++)r+=n.child(t).nodeSize;return r}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return T.none;if(this.textOffset)return e.child(t).marks;let n=e.maybeChild(t-1),r=e.maybeChild(t);if(!n){let e=n;n=r,r=e}let i=n.marks;for(var a=0;a<i.length;a++)i[a].type.spec.inclusive===!1&&(!r||!i[a].isInSet(r.marks))&&(i=i[a--].removeFromSet(i));return i}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let n=t.marks,r=e.parent.maybeChild(e.index());for(var i=0;i<n.length;i++)n[i].type.spec.inclusive===!1&&(!r||!n[i].isInSet(r.marks))&&(n=n[i--].removeFromSet(n));return n}sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(let n=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);n>=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new ke(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e=``;for(let t=1;t<=this.depth;t++)e+=(e?`/`:``)+this.node(t).type.name+`_`+this.index(t-1);return e+`:`+this.parentOffset}static resolve(t,n){if(!(n>=0&&n<=t.content.size))throw RangeError(`Position `+n+` out of range`);let r=[],i=0,a=n;for(let e=t;;){let{index:t,offset:n}=e.content.findIndex(a),o=a-n;if(r.push(e,t,i+n),!o||(e=e.child(t),e.isText))break;a=o-1,i+=n+1}return new e(n,r,a)}static resolveCached(t,n){let r=Oe.get(t);if(r)for(let e=0;e<r.elts.length;e++){let t=r.elts[e];if(t.pos==n)return t}else Oe.set(t,r=new Ee);let i=r.elts[r.i]=e.resolve(t,n);return r.i=(r.i+1)%De,i}},Ee=class{constructor(){this.elts=[],this.i=0}},De=12,Oe=new WeakMap,ke=class{constructor(e,t,n){this.$from=e,this.$to=t,this.depth=n}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}},Ae=Object.create(null),je=class e{constructor(e,t,n,r=T.none){this.type=e,this.attrs=t,this.marks=r,this.content=n||w.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,t,n,r=0){this.content.nodesBetween(e,t,n,r,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,``)}textBetween(e,t,n,r){return this.content.textBetween(e,t,n,r)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,t,n){return this.type==e&&de(this.attrs,t||e.defaultAttrs||Ae)&&T.sameSet(this.marks,n||T.none)}copy(t=null){return t==this.content?this:new e(this.type,this.attrs,t,this.marks)}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.content,t)}cut(e,t=this.content.size){return e==0&&t==this.content.size?this:this.copy(this.content.cut(e,t))}slice(e,t=this.content.size,n=!1){if(e==t)return E.empty;let r=this.resolve(e),i=this.resolve(t),a=n?0:r.sharedDepth(t),o=r.start(a);return new E(r.node(a).content.cut(r.pos-o,i.pos-o),r.depth-a,i.depth-a)}replace(e,t,n){return he(this.resolve(e),this.resolve(t),n)}nodeAt(e){for(let t=this;;){let{index:n,offset:r}=t.content.findIndex(e);if(t=t.maybeChild(n),!t)return null;if(r==e||t.isText)return t;e-=r+1}}childAfter(e){let{index:t,offset:n}=this.content.findIndex(e);return{node:this.content.maybeChild(t),index:t,offset:n}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:t,offset:n}=this.content.findIndex(e);if(n<e)return{node:this.content.child(t),index:t,offset:n};let r=this.content.child(t-1);return{node:r,index:t-1,offset:n-r.nodeSize}}resolve(e){return Te.resolveCached(this,e)}resolveNoCache(e){return Te.resolve(this,e)}rangeHasMark(e,t,n){let r=!1;return t>e&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+=`(`+this.content.toStringInner()+`)`),Ne(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw Error(`Called contentMatchAt on a node with invalid content`);return t}canReplace(e,t,n=w.empty,r=0,i=n.childCount){let a=this.contentMatchAt(e).matchFragment(n,r,i),o=a&&a.matchFragment(this.content,t);if(!o||!o.validEnd)return!1;for(let e=r;e<i;e++)if(!this.type.allowsMarks(n.child(e).marks))return!1;return!0}canReplaceWith(e,t,n,r){if(r&&!this.type.allowsMarks(r))return!1;let i=this.contentMatchAt(e).matchType(n),a=i&&i.matchFragment(this.content,t);return a?a.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),this.type.checkAttrs(this.attrs);let e=T.none;for(let t=0;t<this.marks.length;t++){let n=this.marks[t];n.type.checkAttrs(n.attrs),e=n.addToSet(e)}if(!T.sameSet(e,this.marks))throw RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(e=>e.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Node.fromJSON`);let n;if(t.marks){if(!Array.isArray(t.marks))throw RangeError(`Invalid mark data for Node.fromJSON`);n=t.marks.map(e.markFromJSON)}if(t.type==`text`){if(typeof t.text!=`string`)throw RangeError(`Invalid text node in JSON`);return e.text(t.text,n)}let r=w.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,r,n);return i.type.checkAttrs(i.attrs),i}};je.prototype.text=void 0;var Me=class e extends je{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw RangeError(`Empty text nodes are not allowed`);this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):Ne(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.text,t)}withText(t){return t==this.text?this:new e(this.type,this.attrs,t,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function Ne(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}var Pe=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new Fe(t,n);if(r.next==null)return e.empty;let i=Ie(r);r.next&&r.err(`Unexpected trailing text`);let a=Ke(Ue(i));return qe(a,r),a}matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==e)return this.next[t].next;return null}matchFragment(e,t=0,n=e.childCount){let r=this;for(let i=t;r&&i<n;i++)r=r.matchType(e.child(i).type);return r}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this.next[e];if(!(t.isText||t.hasRequiredAttrs()))return t}return null}compatible(e){for(let t=0;t<this.next.length;t++)for(let n=0;n<e.next.length;n++)if(this.next[t].type==e.next[n].type)return!0;return!1}fillBefore(e,t=!1,n=0){let r=[this];function i(a,o){let s=a.matchFragment(e,n);if(s&&(!t||s.validEnd))return w.from(o.map(e=>e.createAndFill()));for(let e=0;e<a.next.length;e++){let{type:t,next:n}=a.next[e];if(!(t.isText||t.hasRequiredAttrs())&&r.indexOf(n)==-1){r.push(n);let e=i(n,o.concat(t));if(e)return e}}return null}return i(this,[])}findWrapping(e){for(let t=0;t<this.wrapCache.length;t+=2)if(this.wrapCache[t]==e)return this.wrapCache[t+1];let t=this.computeWrapping(e);return this.wrapCache.push(e,t),t}computeWrapping(e){let t=Object.create(null),n=[{match:this,type:null,via:null}];for(;n.length;){let r=n.shift(),i=r.match;if(i.matchType(e)){let e=[];for(let t=r;t.type;t=t.via)e.push(t.type);return e.reverse()}for(let e=0;e<i.next.length;e++){let{type:a,next:o}=i.next[e];!a.isLeaf&&!a.hasRequiredAttrs()&&!(a.name in t)&&(!r.type||o.validEnd)&&(n.push({match:a.contentMatch,type:a,via:r}),t[a.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(n){e.push(n);for(let r=0;r<n.next.length;r++)e.indexOf(n.next[r].next)==-1&&t(n.next[r].next)}return t(this),e.map((t,n)=>{let r=n+(t.validEnd?`*`:` `)+` `;for(let n=0;n<t.next.length;n++)r+=(n?`, `:``)+t.next[n].type.name+`->`+e.indexOf(t.next[n].next);return r}).join(`
2
2
  `)}};Pe.empty=new Pe(!0);var Fe=class{constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==``&&this.tokens.pop(),this.tokens[0]==``&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw SyntaxError(e+` (in content expression '`+this.string+`')`)}};function Ie(e){let t=[];do t.push(Le(e));while(e.eat(`|`));return t.length==1?t[0]:{type:`choice`,exprs:t}}function Le(e){let t=[];do t.push(Re(e));while(e.next&&e.next!=`)`&&e.next!=`|`);return t.length==1?t[0]:{type:`seq`,exprs:t}}function Re(e){let t=He(e);for(;;)if(e.eat(`+`))t={type:`plus`,expr:t};else if(e.eat(`*`))t={type:`star`,expr:t};else if(e.eat(`?`))t={type:`opt`,expr:t};else if(e.eat(`{`))t=Be(e,t);else break;return t}function ze(e){/\D/.test(e.next)&&e.err(`Expected number, got '`+e.next+`'`);let t=Number(e.next);return e.pos++,t}function Be(e,t){let n=ze(e),r=n;return e.eat(`,`)&&(r=e.next==`}`?-1:ze(e)),e.eat(`}`)||e.err(`Unclosed braced range`),{type:`range`,min:n,max:r,expr:t}}function Ve(e,t){let n=e.nodeTypes,r=n[t];if(r)return[r];let i=[];for(let e in n){let r=n[e];r.isInGroup(t)&&i.push(r)}return i.length==0&&e.err(`No node type or group '`+t+`' found`),i}function He(e){if(e.eat(`(`)){let t=Ie(e);return e.eat(`)`)||e.err(`Missing closing paren`),t}else if(/\W/.test(e.next))e.err(`Unexpected token '`+e.next+`'`);else{let t=Ve(e,e.next).map(t=>(e.inline==null?e.inline=t.isInline:e.inline!=t.isInline&&e.err(`Mixing inline and block content`),{type:`name`,value:t}));return e.pos++,t.length==1?t[0]:{type:`choice`,exprs:t}}}function Ue(e){let t=[[]];return i(a(e,0),n()),t;function n(){return t.push([])-1}function r(e,n,r){let i={term:r,to:n};return t[e].push(i),i}function i(e,t){e.forEach(e=>e.to=t)}function a(e,t){if(e.type==`choice`)return e.exprs.reduce((e,n)=>e.concat(a(n,t)),[]);if(e.type==`seq`)for(let r=0;;r++){let o=a(e.exprs[r],t);if(r==e.exprs.length-1)return o;i(o,t=n())}else if(e.type==`star`){let o=n();return r(t,o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`plus`){let o=n();return i(a(e.expr,t),o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`opt`)return[r(t)].concat(a(e.expr,t));else if(e.type==`range`){let o=t;for(let t=0;t<e.min;t++){let t=n();i(a(e.expr,o),t),o=t}if(e.max==-1)i(a(e.expr,o),o);else for(let t=e.min;t<e.max;t++){let t=n();r(o,t),i(a(e.expr,o),t),o=t}return[r(o)]}else if(e.type==`name`)return[r(t,void 0,e.value)];else throw Error(`Unknown expr type`)}}function We(e,t){return t-e}function Ge(e,t){let n=[];return r(t),n.sort(We);function r(t){let i=e[t];if(i.length==1&&!i[0].term)return r(i[0].to);n.push(t);for(let e=0;e<i.length;e++){let{term:t,to:a}=i[e];!t&&n.indexOf(a)==-1&&r(a)}}}function Ke(e){let t=Object.create(null);return n(Ge(e,0));function n(r){let i=[];r.forEach(t=>{e[t].forEach(({term:t,to:n})=>{if(!t)return;let r;for(let e=0;e<i.length;e++)i[e][0]==t&&(r=i[e][1]);Ge(e,n).forEach(e=>{r||i.push([t,r=[]]),r.indexOf(e)==-1&&r.push(e)})})});let a=t[r.join(`,`)]=new Pe(r.indexOf(e.length-1)>-1);for(let e=0;e<i.length;e++){let r=i[e][1].sort(We);a.next.push({type:i[e][0],next:t[r.join(`,`)]||n(r)})}return a}}function qe(e,t){for(let n=0,r=[e];n<r.length;n++){let e=r[n],i=!e.validEnd,a=[];for(let t=0;t<e.next.length;t++){let{type:n,next:o}=e.next[t];a.push(n.name),i&&!(n.isText||n.hasRequiredAttrs())&&(i=!1),r.indexOf(o)==-1&&r.push(o)}i&&t.err(`Only non-generatable nodes (`+a.join(`, `)+`) in a required position (see https://prosemirror.net/docs/guide/#generatable)`)}}function Je(e){let t=Object.create(null);for(let n in e){let r=e[n];if(!r.hasDefault)return null;t[n]=r.default}return t}function Ye(e,t){let n=Object.create(null);for(let r in e){let i=t&&t[r];if(i===void 0){let t=e[r];if(t.hasDefault)i=t.default;else throw RangeError(`No value supplied for attribute `+r)}n[r]=i}return n}function Xe(e,t,n,r){for(let i in t)if(!(i in e))throw RangeError(`Unsupported attribute ${i} for ${n} of type ${r}`);for(let n in e)e[n].validate&&e[n].validate(t[n])}function Ze(e,t){let n=Object.create(null);if(t)for(let r in t)n[r]=new et(e,r,t[r]);return n}var Qe=class e{constructor(e,t,n){this.name=e,this.schema=t,this.spec=n,this.markSet=null,this.groups=n.group?n.group.split(` `):[],this.attrs=Ze(e,n.attrs),this.defaultAttrs=Je(this.attrs),this.contentMatch=null,this.inlineContent=null,this.isBlock=!(n.inline||e==`text`),this.isText=e==`text`}get isInline(){return!this.isBlock}get isTextblock(){return this.isBlock&&this.inlineContent}get isLeaf(){return this.contentMatch==Pe.empty}get isAtom(){return this.isLeaf||!!this.spec.atom}isInGroup(e){return this.groups.indexOf(e)>-1}get whitespace(){return this.spec.whitespace||(this.spec.code?`pre`:`normal`)}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:Ye(this.attrs,e)}create(e=null,t,n){if(this.isText)throw Error(`NodeType.create can't construct text nodes`);return new je(this,this.computeAttrs(e),w.from(t),T.setFrom(n))}createChecked(e=null,t,n){return t=w.from(t),this.checkContent(t),new je(this,this.computeAttrs(e),t,T.setFrom(n))}createAndFill(e=null,t,n){if(e=this.computeAttrs(e),t=w.from(t),t.size){let e=this.contentMatch.fillBefore(t);if(!e)return null;t=e.append(t)}let r=this.contentMatch.matchFragment(t),i=r&&r.fillBefore(w.empty,!0);return i?new je(this,e,t.append(i),T.setFrom(n)):null}validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.validEnd)return!1;for(let t=0;t<e.childCount;t++)if(!this.allowsMarks(e.child(t).marks))return!1;return!0}checkContent(e){if(!this.validContent(e))throw RangeError(`Invalid content for node ${this.name}: ${e.toString().slice(0,50)}`)}checkAttrs(e){Xe(this.attrs,e,`node`,this.name)}allowsMarkType(e){return this.markSet==null||this.markSet.indexOf(e)>-1}allowsMarks(e){if(this.markSet==null)return!0;for(let t=0;t<e.length;t++)if(!this.allowsMarkType(e[t].type))return!1;return!0}allowedMarks(e){if(this.markSet==null)return e;let t;for(let n=0;n<e.length;n++)this.allowsMarkType(e[n].type)?t&&t.push(e[n]):t||=e.slice(0,n);return t?t.length?t:T.none:e}static compile(t,n){let r=Object.create(null);t.forEach((t,i)=>r[t]=new e(t,n,i));let i=n.spec.topNode||`doc`;if(!r[i])throw RangeError(`Schema is missing its top node type ('`+i+`')`);if(!r.text)throw RangeError(`Every schema needs a 'text' type`);for(let e in r.text.attrs)throw RangeError(`The text node type should not have attributes`);return r}};function $e(e,t,n){let r=n.split(`|`);return n=>{let i=n===null?`null`:typeof n;if(r.indexOf(i)<0)throw RangeError(`Expected value of type ${r} for attribute ${t} on type ${e}, got ${i}`)}}var et=class{constructor(e,t,n){this.hasDefault=Object.prototype.hasOwnProperty.call(n,`default`),this.default=n.default,this.validate=typeof n.validate==`string`?$e(e,t,n.validate):n.validate}get isRequired(){return!this.hasDefault}},tt=class e{constructor(e,t,n,r){this.name=e,this.rank=t,this.schema=n,this.spec=r,this.attrs=Ze(e,r.attrs),this.excluded=null;let i=Je(this.attrs);this.instance=i?new T(this,i):null}create(e=null){return!e&&this.instance?this.instance:new T(this,Ye(this.attrs,e))}static compile(t,n){let r=Object.create(null),i=0;return t.forEach((t,a)=>r[t]=new e(t,i++,n,a)),r}removeFromSet(e){for(var t=0;t<e.length;t++)e[t].type==this&&(e=e.slice(0,t).concat(e.slice(t+1)),t--);return e}isInSet(e){for(let t=0;t<e.length;t++)if(e[t].type==this)return e[t]}checkAttrs(e){Xe(this.attrs,e,`mark`,this.name)}excludes(e){return this.excluded.indexOf(e)>-1}},nt=class{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let t=this.spec={};for(let n in e)t[n]=e[n];t.nodes=C.from(e.nodes),t.marks=C.from(e.marks||{}),this.nodes=Qe.compile(this.spec.nodes,this),this.marks=tt.compile(this.spec.marks,this);let n=Object.create(null);for(let e in this.nodes){if(e in this.marks)throw RangeError(e+` can not be both a node and a mark`);let t=this.nodes[e],r=t.spec.content||``,i=t.spec.marks;if(t.contentMatch=n[r]||(n[r]=Pe.parse(r,this.nodes)),t.inlineContent=t.contentMatch.inlineContent,t.spec.linebreakReplacement){if(this.linebreakReplacement)throw RangeError(`Multiple linebreak nodes defined`);if(!t.isInline||!t.isLeaf)throw RangeError(`Linebreak replacement nodes must be inline leaf nodes`);this.linebreakReplacement=t}t.markSet=i==`_`?null:i?rt(this,i.split(` `)):i==``||!t.inlineContent?[]:null}for(let e in this.marks){let t=this.marks[e],n=t.spec.excludes;t.excluded=n==null?[t]:n==``?[]:rt(this,n.split(` `))}this.nodeFromJSON=e=>je.fromJSON(this,e),this.markFromJSON=e=>T.fromJSON(this,e),this.topNodeType=this.nodes[this.spec.topNode||`doc`],this.cached.wrappings=Object.create(null)}node(e,t=null,n,r){if(typeof e==`string`)e=this.nodeType(e);else if(!(e instanceof Qe))throw RangeError(`Invalid node type: `+e);else if(e.schema!=this)throw RangeError(`Node type from different schema used (`+e.name+`)`);return e.createChecked(t,n,r)}text(e,t){let n=this.nodes.text;return new Me(n,n.defaultAttrs,e,T.setFrom(t))}mark(e,t){return typeof e==`string`&&(e=this.marks[e]),e.create(t)}nodeType(e){let t=this.nodes[e];if(!t)throw RangeError(`Unknown node type: `+e);return t}};function rt(e,t){let n=[];for(let r=0;r<t.length;r++){let i=t[r],a=e.marks[i],o=a;if(a)n.push(a);else for(let t in e.marks){let r=e.marks[t];(i==`_`||r.spec.group&&r.spec.group.split(` `).indexOf(i)>-1)&&n.push(o=r)}if(!o)throw SyntaxError(`Unknown mark type: '`+t[r]+`'`)}return n}function it(e){return e.tag!=null}function at(e){return e.style!=null}var ot=class e{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let n=this.matchedStyles=[];t.forEach(e=>{if(it(e))this.tags.push(e);else if(at(e)){let t=/[^=]*/.exec(e.style)[0];n.indexOf(t)<0&&n.push(t),this.styles.push(e)}}),this.normalizeLists=!this.tags.some(t=>{if(!/^(ul|ol)\b/.test(t.tag)||!t.node)return!1;let n=e.nodes[t.node];return n.contentMatch.matchType(n)})}parse(e,t={}){let n=new ht(this,t,!1);return n.addAll(e,T.none,t.from,t.to),n.finish()}parseSlice(e,t={}){let n=new ht(this,t,!0);return n.addAll(e,T.none,t.from,t.to),E.maxOpen(n.finish())}matchTag(e,t,n){for(let r=n?this.tags.indexOf(n)+1:0;r<this.tags.length;r++){let n=this.tags[r];if(_t(e,n.tag)&&(n.namespace===void 0||e.namespaceURI==n.namespace)&&(!n.context||t.matchesContext(n.context))){if(n.getAttrs){let t=n.getAttrs(e);if(t===!1)continue;n.attrs=t||void 0}return n}}}matchStyle(e,t,n,r){for(let i=r?this.styles.indexOf(r)+1:0;i<this.styles.length;i++){let r=this.styles[i],a=r.style;if(!(a.indexOf(e)!=0||r.context&&!n.matchesContext(r.context)||a.length>e.length&&(a.charCodeAt(e.length)!=61||a.slice(e.length+1)!=t))){if(r.getAttrs){let e=r.getAttrs(t);if(e===!1)continue;r.attrs=e||void 0}return r}}}static schemaRules(e){let t=[];function n(e){let n=e.priority==null?50:e.priority,r=0;for(;r<t.length;r++){let e=t[r];if((e.priority==null?50:e.priority)<n)break}t.splice(r,0,e)}for(let t in e.marks){let r=e.marks[t].spec.parseDOM;r&&r.forEach(e=>{n(e=vt(e)),e.mark||e.ignore||e.clearMark||(e.mark=t)})}for(let t in e.nodes){let r=e.nodes[t].spec.parseDOM;r&&r.forEach(e=>{n(e=vt(e)),e.node||e.ignore||e.mark||(e.node=t)})}return t}static fromSchema(t){return t.cached.domParser||(t.cached.domParser=new e(t,e.schemaRules(t)))}},st={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},ct={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},lt={ol:!0,ul:!0},ut=1,dt=2,ft=4;function pt(e,t,n){return t==null?e&&e.whitespace==`pre`?ut|dt:n&~ft:(t?ut:0)|(t===`full`?dt:0)}var mt=class{constructor(e,t,n,r,i,a){this.type=e,this.attrs=t,this.marks=n,this.solid=r,this.options=a,this.content=[],this.activeMarks=T.none,this.match=i||(a&ft?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(w.from(e));if(t)this.match=this.type.contentMatch.matchFragment(t);else{let t=this.type.contentMatch,n;return(n=t.findWrapping(e.type))?(this.match=t,n):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&ut)){let e=this.content[this.content.length-1],t;if(e&&e.isText&&(t=/[ \t\r\n\u000c]+$/.exec(e.text))){let n=e;e.text.length==t[0].length?this.content.pop():this.content[this.content.length-1]=n.withText(n.text.slice(0,n.text.length-t[0].length))}}let t=w.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(w.empty,!0))),this.type?this.type.create(this.attrs,t,this.marks):t}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!st.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}},ht=class{constructor(e,t,n){this.parser=e,this.options=t,this.isOpen=n,this.open=0,this.localPreserveWS=!1;let r=t.topNode,i,a=pt(null,t.preserveWhitespace,0)|(n?ft:0);i=r?new mt(r.type,r.attrs,T.none,!0,t.topMatch||r.type.contentMatch,a):n?new mt(null,null,T.none,!0,null,a):new mt(e.schema.topNodeType,null,T.none,!0,null,a),this.nodes=[i],this.find=t.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,t){e.nodeType==3?this.addTextNode(e,t):e.nodeType==1&&this.addElement(e,t)}addTextNode(e,t){let n=e.nodeValue,r=this.top,i=r.options&dt?`full`:this.localPreserveWS||(r.options&ut)>0,{schema:a}=this.parser;if(i===`full`||r.inlineContext(e)||/[^ \t\r\n\u000c]/.test(n)){if(!i){if(n=n.replace(/[ \t\r\n\u000c]+/g,` `),/^[ \t\r\n\u000c]/.test(n)&&this.open==this.nodes.length-1){let t=r.content[r.content.length-1],i=e.previousSibling;(!t||i&&i.nodeName==`BR`||t.isText&&/[ \t\r\n\u000c]$/.test(t.text))&&(n=n.slice(1))}}else if(i===`full`)n=n.replace(/\r\n?/g,`
3
3
  `);else if(a.linebreakReplacement&&/[\r\n]/.test(n)&&this.top.findWrapping(a.linebreakReplacement.create())){let e=n.split(/\r?\n|\r/);for(let n=0;n<e.length;n++)n&&this.insertNode(a.linebreakReplacement.create(),t,!0),e[n]&&this.insertNode(a.text(e[n]),t,!/\S/.test(e[n]));n=``}else n=n.replace(/\r?\n|\r/g,` `);n&&this.insertNode(a.text(n),t,!/\S/.test(n)),this.findInText(e)}else this.findInside(e)}addElement(e,t,n){let r=this.localPreserveWS,i=this.top;(e.tagName==`PRE`||/pre/.test(e.style&&e.style.whiteSpace))&&(this.localPreserveWS=!0);let a=e.nodeName.toLowerCase(),o;lt.hasOwnProperty(a)&&this.parser.normalizeLists&&gt(e);let s=this.options.ruleFromNode&&this.options.ruleFromNode(e)||(o=this.parser.matchTag(e,this,n));out:if(s?s.ignore:ct.hasOwnProperty(a))this.findInside(e),this.ignoreFallback(e,t);else if(!s||s.skip||s.closeParent){s&&s.closeParent?this.open=Math.max(0,this.open-1):s&&s.skip.nodeType&&(e=s.skip);let n,r=this.needsBlock;if(st.hasOwnProperty(a))i.content.length&&i.content[0].isInline&&this.open&&(this.open--,i=this.top),n=!0,i.type||(this.needsBlock=!0);else if(!e.firstChild){this.leafFallback(e,t);break out}let o=s&&s.skip?t:this.readStyles(e,t);o&&this.addAll(e,o),n&&this.sync(i),this.needsBlock=r}else{let n=this.readStyles(e,t);n&&this.addElementByRule(e,s,n,s.consuming===!1?o:void 0)}this.localPreserveWS=r}leafFallback(e,t){e.nodeName==`BR`&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(e.ownerDocument.createTextNode(`
4
4
  `),t)}ignoreFallback(e,t){e.nodeName==`BR`&&(!this.top.type||!this.top.type.inlineContent)&&this.findPlace(this.parser.schema.text(`-`),t,!0)}readStyles(e,t){let n=e.style;if(n&&n.length)for(let e=0;e<this.parser.matchedStyles.length;e++){let r=this.parser.matchedStyles[e],i=n.getPropertyValue(r);if(i)for(let e;;){let n=this.parser.matchStyle(r,i,this,e);if(!n)break;if(n.ignore)return null;if(t=n.clearMark?t.filter(e=>!n.clearMark(e)):t.concat(this.parser.schema.marks[n.mark].create(n.attrs)),n.consuming===!1)e=n;else break}}return t}addElementByRule(e,t,n,r){let i,a;if(t.node)if(a=this.parser.schema.nodes[t.node],a.isLeaf)this.insertNode(a.create(t.attrs),n,e.nodeName==`BR`)||this.leafFallback(e,n);else{let e=this.enter(a,t.attrs||null,n,t.preserveWhitespace);e&&(i=!0,n=e)}else{let e=this.parser.schema.marks[t.mark];n=n.concat(e.create(t.attrs))}let o=this.top;if(a&&a.isLeaf)this.findInside(e);else if(r)this.addElement(e,n,r);else if(t.getContent)this.findInside(e),t.getContent(e,this.parser.schema).forEach(e=>this.insertNode(e,n,!1));else{let r=e;typeof t.contentElement==`string`?r=e.querySelector(t.contentElement):typeof t.contentElement==`function`?r=t.contentElement(e):t.contentElement&&(r=t.contentElement),this.findAround(e,r,!0),this.addAll(r,n),this.findAround(e,r,!1)}i&&this.sync(o)&&this.open--}addAll(e,t,n,r){let i=n||0;for(let a=n?e.childNodes[n]:e.firstChild,o=r==null?null:e.childNodes[r];a!=o;a=a.nextSibling,++i)this.findAtPoint(e,i),this.addDOM(a,t);this.findAtPoint(e,i)}findPlace(e,t,n){let r,i;for(let t=this.open,a=0;t>=0;t--){let o=this.nodes[t],s=o.findWrapping(e);if(s&&(!r||r.length>s.length+a)&&(r=s,i=o,!s.length))break;if(o.solid){if(n)break;a+=2}}if(!r)return null;this.sync(i);for(let e=0;e<r.length;e++)t=this.enterInner(r[e],null,t,!1);return t}insertNode(e,t,n){if(e.isInline&&this.needsBlock&&!this.top.type){let e=this.textblockFromContext();e&&(t=this.enterInner(e,null,t))}let r=this.findPlace(e,t,n);if(r){this.closeExtra();let t=this.top;t.match&&=t.match.matchType(e.type);let n=T.none;for(let i of r.concat(e.marks))(t.type?t.type.allowsMarkType(i.type):yt(i.type,e.type))&&(n=i.addToSet(n));return t.content.push(e.mark(n)),!0}return!1}enter(e,t,n,r){let i=this.findPlace(e.create(t),n,!1);return i&&=this.enterInner(e,t,n,!0,r),i}enterInner(e,t,n,r=!1,i){this.closeExtra();let a=this.top;a.match=a.match&&a.match.matchType(e);let o=pt(e,i,a.options);a.options&ft&&a.content.length==0&&(o|=ft);let s=T.none;return n=n.filter(t=>(a.type?a.type.allowsMarkType(t.type):yt(t.type,e))?(s=t.addToSet(s),!1):!0),this.nodes.push(new mt(e,t,s,r,null,o)),this.open++,n}closeExtra(e=!1){let t=this.nodes.length-1;if(t>this.open){for(;t>this.open;t--)this.nodes[t-1].content.push(this.nodes[t].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let t=this.open;t>=0;t--)if(this.nodes[t]==e)return this.open=t,!0;else this.localPreserveWS&&(this.nodes[t].options|=ut);return!1}get currentPos(){this.closeExtra();let e=0;for(let t=this.open;t>=0;t--){let n=this.nodes[t].content;for(let t=n.length-1;t>=0;t--)e+=n[t].nodeSize;t&&e++}return e}findAtPoint(e,t){if(this.find)for(let n=0;n<this.find.length;n++)this.find[n].node==e&&this.find[n].offset==t&&(this.find[n].pos=this.currentPos)}findInside(e){if(this.find)for(let t=0;t<this.find.length;t++)this.find[t].pos==null&&e.nodeType==1&&e.contains(this.find[t].node)&&(this.find[t].pos=this.currentPos)}findAround(e,t,n){if(e!=t&&this.find)for(let r=0;r<this.find.length;r++)this.find[r].pos==null&&e.nodeType==1&&e.contains(this.find[r].node)&&t.compareDocumentPosition(this.find[r].node)&(n?2:4)&&(this.find[r].pos=this.currentPos)}findInText(e){if(this.find)for(let t=0;t<this.find.length;t++)this.find[t].node==e&&(this.find[t].pos=this.currentPos-(e.nodeValue.length-this.find[t].offset))}matchesContext(e){if(e.indexOf(`|`)>-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let t=e.split(`/`),n=this.options.context,r=!this.isOpen&&(!n||n.parent.type==this.nodes[0].type),i=-(n?n.depth+1:0)+ +!r,a=(e,o)=>{for(;e>=0;e--){let s=t[e];if(s==``){if(e==t.length-1||e==0)continue;for(;o>=i;o--)if(a(e-1,o))return!0;return!1}else{let e=o>0||o==0&&r?this.nodes[o].type:n&&o>=i?n.node(o-i).type:null;if(!e||e.name!=s&&!e.isInGroup(s))return!1;o--}}return!0};return a(t.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let t=e.depth;t>=0;t--){let n=e.node(t).contentMatchAt(e.indexAfter(t)).defaultType;if(n&&n.isTextblock&&n.defaultAttrs)return n}for(let e in this.parser.schema.nodes){let t=this.parser.schema.nodes[e];if(t.isTextblock&&t.defaultAttrs)return t}}};function gt(e){for(let t=e.firstChild,n=null;t;t=t.nextSibling){let e=t.nodeType==1?t.nodeName.toLowerCase():null;e&&lt.hasOwnProperty(e)&&n?(n.appendChild(t),t=n):e==`li`?n=t:e&&(n=null)}}function _t(e,t){return(e.matches||e.msMatchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector).call(e,t)}function vt(e){let t={};for(let n in e)t[n]=e[n];return t}function yt(e,t){let n=t.schema.nodes;for(let r in n){let i=n[r];if(!i.allowsMarkType(e))continue;let a=[],o=e=>{a.push(e);for(let n=0;n<e.edgeCount;n++){let{type:r,next:i}=e.edge(n);if(r==t||a.indexOf(i)<0&&o(i))return!0}};if(o(i.contentMatch))return!0}}var bt=class e{constructor(e,t){this.nodes=e,this.marks=t}serializeFragment(e,t={},n){n||=St(t).createDocumentFragment();let r=n,i=[];return e.forEach(e=>{if(i.length||e.marks.length){let n=0,a=0;for(;n<i.length&&a<e.marks.length;){let t=e.marks[a];if(!this.marks[t.type.name]){a++;continue}if(!t.eq(i[n][0])||t.type.spec.spanning===!1)break;n++,a++}for(;n<i.length;)r=i.pop()[1];for(;a<e.marks.length;){let n=e.marks[a++],o=this.serializeMark(n,e.isInline,t);o&&(i.push([n,r]),r.appendChild(o.dom),r=o.contentDOM||o.dom)}}r.appendChild(this.serializeNodeInner(e,t))}),n}serializeNodeInner(e,t){if(e.isText)return St(t).createTextNode(e.text);let{dom:n,contentDOM:r}=Et(St(t),this.nodes[e.type.name](e),null,e.attrs);if(r){if(e.isLeaf)throw RangeError(`Content hole not allowed in a leaf node spec`);this.serializeFragment(e.content,t,r)}return n}serializeNode(e,t={}){let n=this.serializeNodeInner(e,t);for(let r=e.marks.length-1;r>=0;r--){let i=this.serializeMark(e.marks[r],e.isInline,t);i&&((i.contentDOM||i.dom).appendChild(n),n=i.dom)}return n}serializeMark(e,t,n={}){let r=this.marks[e.type.name];return r&&Et(St(n),r(e,t),null,e.attrs)}static renderSpec(e,t,n=null,r){return typeof t==`string`?{dom:e.createTextNode(t)}:Et(e,t,n,r)}static fromSchema(t){return t.cached.domSerializer||(t.cached.domSerializer=new e(this.nodesFromSchema(t),this.marksFromSchema(t)))}static nodesFromSchema(e){let t=xt(e.nodes);return t.text||=e=>e.text,t}static marksFromSchema(e){return xt(e.marks)}};function xt(e){let t={};for(let n in e){let r=e[n].spec.toDOM;r&&(t[n]=r)}return t}function St(e){return e.document||window.document}var Ct=new WeakMap;function wt(e){let t=Ct.get(e);return t===void 0&&Ct.set(e,t=Tt(e)),t}function Tt(e){let t=null;function n(e){if(e&&typeof e==`object`)if(Array.isArray(e))if(typeof e[0]==`string`)t||=[],t.push(e);else for(let t=0;t<e.length;t++)n(e[t]);else for(let t in e)n(e[t])}return n(e),t}function Et(e,t,n,r){if(t.nodeType==1)return{dom:t};if(t.dom&&t.dom.nodeType==1)return t;let i=t[0],a;if(typeof i!=`string`)throw RangeError(`Invalid array passed to renderSpec`);if(r&&(a=wt(r))&&a.indexOf(t)>-1)throw RangeError(`Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.`);let o=i.indexOf(` `);o>0&&(n=i.slice(0,o),i=i.slice(o+1));let s,c=n?e.createElementNS(n,i):e.createElement(i),l=t[1],u=1;if(l&&typeof l==`object`&&l.nodeType==null&&!Array.isArray(l)){u=2;for(let e in l)if(l[e]!=null){let t=e.indexOf(` `);t>0?c.setAttributeNS(e.slice(0,t),e.slice(t+1),l[e]):e==`style`&&c.style?c.style.cssText=l[e]:c.setAttribute(e,l[e])}}for(let i=u;i<t.length;i++){let a=t[i];if(a===0){if(i<t.length-1||i>u)throw RangeError(`Content hole must be the only child of its parent node`);return{dom:c,contentDOM:c}}else if(typeof a==`string`)c.appendChild(e.createTextNode(a));else{let{dom:t,contentDOM:i}=Et(e,a,n,r);if(c.appendChild(t),i){if(s)throw RangeError(`Multiple content holes`);s=i}}}return{dom:c,contentDOM:s}}var Dt=65535,Ot=2**16;function kt(e,t){return e+t*Ot}function At(e){return e&Dt}function jt(e){return(e-(e&Dt))/Ot}var Mt=1,Nt=2,Pt=4,Ft=8,It=class{constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}get deleted(){return(this.delInfo&Ft)>0}get deletedBefore(){return(this.delInfo&(Mt|Pt))>0}get deletedAfter(){return(this.delInfo&(Nt|Pt))>0}get deletedAcross(){return(this.delInfo&Pt)>0}},Lt=class e{constructor(t,n=!1){if(this.ranges=t,this.inverted=n,!t.length&&e.empty)return e.empty}recover(e){let t=0,n=At(e);if(!this.inverted)for(let e=0;e<n;e++)t+=this.ranges[e*3+2]-this.ranges[e*3+1];return this.ranges[n*3]+t+jt(e)}mapResult(e,t=1){return this._map(e,t,!1)}map(e,t=1){return this._map(e,t,!0)}_map(e,t,n){let r=0,i=this.inverted?2:1,a=this.inverted?1:2;for(let o=0;o<this.ranges.length;o+=3){let s=this.ranges[o]-(this.inverted?r:0);if(s>e)break;let c=this.ranges[o+i],l=this.ranges[o+a],u=s+c;if(e<=u){let i=c?e==s?-1:e==u?1:t:t,a=s+r+(i<0?0:l);if(n)return a;let d=e==(t<0?s:u)?null:kt(o/3,e-s),f=e==s?Nt:e==u?Mt:Pt;return(t<0?e!=s:e!=u)&&(f|=Ft),new It(a,f,d)}r+=l-c}return n?e+r:new It(e+r,0,null)}touches(e,t){let n=0,r=At(t),i=this.inverted?2:1,a=this.inverted?1:2;for(let t=0;t<this.ranges.length;t+=3){let o=this.ranges[t]-(this.inverted?n:0);if(o>e)break;let s=this.ranges[t+i];if(e<=o+s&&t==r*3)return!0;n+=this.ranges[t+a]-s}return!1}forEach(e){let t=this.inverted?2:1,n=this.inverted?1:2;for(let r=0,i=0;r<this.ranges.length;r+=3){let a=this.ranges[r],o=a-(this.inverted?i:0),s=a+(this.inverted?0:i),c=this.ranges[r+t],l=this.ranges[r+n];e(o,o+c,s,s+l),i+=l-c}}invert(){return new e(this.ranges,!this.inverted)}toString(){return(this.inverted?`-`:``)+JSON.stringify(this.ranges)}static offset(t){return t==0?e.empty:new e(t<0?[0,-t,0]:[0,0,t])}};Lt.empty=new Lt([]);var Rt=class e{constructor(e,t,n=0,r=e?e.length:0){this.mirror=t,this.from=n,this.to=r,this._maps=e||[],this.ownData=!(e||t)}get maps(){return this._maps}slice(t=0,n=this.maps.length){return new e(this._maps,this.mirror,t,n)}appendMap(e,t){this.ownData||=(this._maps=this._maps.slice(),this.mirror=this.mirror&&this.mirror.slice(),!0),this.to=this._maps.push(e),t!=null&&this.setMirror(this._maps.length-1,t)}appendMapping(e){for(let t=0,n=this._maps.length;t<e._maps.length;t++){let r=e.getMirror(t);this.appendMap(e._maps[t],r!=null&&r<t?n+r:void 0)}}getMirror(e){if(this.mirror){for(let t=0;t<this.mirror.length;t++)if(this.mirror[t]==e)return this.mirror[t+(t%2?-1:1)]}}setMirror(e,t){this.mirror||=[],this.mirror.push(e,t)}appendMappingInverted(e){for(let t=e.maps.length-1,n=this._maps.length+e._maps.length;t>=0;t--){let r=e.getMirror(t);this.appendMap(e._maps[t].invert(),r!=null&&r>t?n-r-1:void 0)}}invert(){let t=new e;return t.appendMappingInverted(this),t}map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let n=this.from;n<this.to;n++)e=this._maps[n].map(e,t);return e}mapResult(e,t=1){return this._map(e,t,!1)}_map(e,t,n){let r=0;for(let n=this.from;n<this.to;n++){let i=this._maps[n].mapResult(e,t);if(i.recover!=null){let t=this.getMirror(n);if(t!=null&&t>n&&t<this.to){n=t,e=this._maps[t].recover(i.recover);continue}}r|=i.delInfo,e=i.pos}return n?e:new It(e,r,null)}},zt=Object.create(null),Bt=class{getMap(){return Lt.empty}merge(e){return null}static fromJSON(e,t){if(!t||!t.stepType)throw RangeError(`Invalid input for Step.fromJSON`);let n=zt[t.stepType];if(!n)throw RangeError(`No step type ${t.stepType} defined`);return n.fromJSON(e,t)}static jsonID(e,t){if(e in zt)throw RangeError(`Duplicate use of step JSON ID `+e);return zt[e]=t,t.prototype.jsonID=e,t}},Vt=class e{constructor(e,t){this.doc=e,this.failed=t}static ok(t){return new e(t,null)}static fail(t){return new e(null,t)}static fromReplace(t,n,r,i){try{return e.ok(t.replace(n,r,i))}catch(t){if(t instanceof fe)return e.fail(t.message);throw t}}};function Ht(e,t,n){let r=[];for(let i=0;i<e.childCount;i++){let a=e.child(i);a.content.size&&(a=a.copy(Ht(a.content,t,a))),a.isInline&&(a=t(a,n,i)),r.push(a)}return w.fromArray(r)}var Ut=class e extends Bt{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=e.resolve(this.from),r=n.node(n.sharedDepth(this.to)),i=new E(Ht(t.content,(e,t)=>!e.isAtom||!t.type.allowsMarkType(this.mark.type)?e:e.mark(this.mark.addToSet(e.marks)),r),t.openStart,t.openEnd);return Vt.fromReplace(e,this.from,this.to,i)}invert(){return new Wt(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`addMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for AddMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};Bt.jsonID(`addMark`,Ut);var Wt=class e extends Bt{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=new E(Ht(t.content,e=>e.mark(this.mark.removeFromSet(e.marks)),e),t.openStart,t.openEnd);return Vt.fromReplace(e,this.from,this.to,n)}invert(){return new Ut(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`removeMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for RemoveMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};Bt.jsonID(`removeMark`,Wt);var Gt=class e extends Bt{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return Vt.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return Vt.fromReplace(e,this.pos,this.pos+1,new E(w.from(n),0,+!t.isLeaf))}invert(t){let n=t.nodeAt(this.pos);if(n){let t=this.mark.addToSet(n.marks);if(t.length==n.marks.length){for(let r=0;r<n.marks.length;r++)if(!n.marks[r].isInSet(t))return new e(this.pos,n.marks[r]);return new e(this.pos,this.mark)}}return new Kt(this.pos,this.mark)}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new e(n.pos,this.mark)}toJSON(){return{stepType:`addNodeMark`,pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for AddNodeMarkStep.fromJSON`);return new e(n.pos,t.markFromJSON(n.mark))}};Bt.jsonID(`addNodeMark`,Gt);var Kt=class e extends Bt{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return Vt.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.removeFromSet(t.marks));return Vt.fromReplace(e,this.pos,this.pos+1,new E(w.from(n),0,+!t.isLeaf))}invert(e){let t=e.nodeAt(this.pos);return!t||!this.mark.isInSet(t.marks)?this:new Gt(this.pos,this.mark)}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new e(n.pos,this.mark)}toJSON(){return{stepType:`removeNodeMark`,pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for RemoveNodeMarkStep.fromJSON`);return new e(n.pos,t.markFromJSON(n.mark))}};Bt.jsonID(`removeNodeMark`,Kt);var qt=class e extends Bt{constructor(e,t,n,r=!1){super(),this.from=e,this.to=t,this.slice=n,this.structure=r}apply(e){return this.structure&&Yt(e,this.from,this.to)?Vt.fail(`Structure replace would overwrite content`):Vt.fromReplace(e,this.from,this.to,this.slice)}getMap(){return new Lt([this.from,this.to-this.from,this.slice.size])}invert(t){return new e(this.from,this.from+this.slice.size,t.slice(this.from,this.to))}map(t){let n=t.mapResult(this.to,-1),r=this.from==this.to&&e.MAP_BIAS<0?n:t.mapResult(this.from,1);return r.deletedAcross&&n.deletedAcross?null:new e(r.pos,Math.max(r.pos,n.pos),this.slice,this.structure)}merge(t){if(!(t instanceof e)||t.structure||this.structure)return null;if(this.from+this.slice.size==t.from&&!this.slice.openEnd&&!t.slice.openStart){let n=this.slice.size+t.slice.size==0?E.empty:new E(this.slice.content.append(t.slice.content),this.slice.openStart,t.slice.openEnd);return new e(this.from,this.to+(t.to-t.from),n,this.structure)}else if(t.to==this.from&&!this.slice.openStart&&!t.slice.openEnd){let n=this.slice.size+t.slice.size==0?E.empty:new E(t.slice.content.append(this.slice.content),t.slice.openStart,this.slice.openEnd);return new e(t.from,this.to,n,this.structure)}else return null}toJSON(){let e={stepType:`replace`,from:this.from,to:this.to};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for ReplaceStep.fromJSON`);return new e(n.from,n.to,E.fromJSON(t,n.slice),!!n.structure)}};qt.MAP_BIAS=1,Bt.jsonID(`replace`,qt);var Jt=class e extends Bt{constructor(e,t,n,r,i,a,o=!1){super(),this.from=e,this.to=t,this.gapFrom=n,this.gapTo=r,this.slice=i,this.insert=a,this.structure=o}apply(e){if(this.structure&&(Yt(e,this.from,this.gapFrom)||Yt(e,this.gapTo,this.to)))return Vt.fail(`Structure gap-replace would overwrite content`);let t=e.slice(this.gapFrom,this.gapTo);if(t.openStart||t.openEnd)return Vt.fail(`Gap is not a flat range`);let n=this.slice.insertAt(this.insert,t.content);return n?Vt.fromReplace(e,this.from,this.to,n):Vt.fail(`Content does not fit in gap`)}getMap(){return new Lt([this.from,this.gapFrom-this.from,this.insert,this.gapTo,this.to-this.gapTo,this.slice.size-this.insert])}invert(t){let n=this.gapTo-this.gapFrom;return new e(this.from,this.from+this.slice.size+n,this.from+this.insert,this.from+this.insert+n,t.slice(this.from,this.to).removeBetween(this.gapFrom-this.from,this.gapTo-this.from),this.gapFrom-this.from,this.structure)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1),i=this.from==this.gapFrom?n.pos:t.map(this.gapFrom,-1),a=this.to==this.gapTo?r.pos:t.map(this.gapTo,1);return n.deletedAcross&&r.deletedAcross||i<n.pos||a>r.pos?null:new e(n.pos,r.pos,i,a,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:`replaceAround`,from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`||typeof n.gapFrom!=`number`||typeof n.gapTo!=`number`||typeof n.insert!=`number`)throw RangeError(`Invalid input for ReplaceAroundStep.fromJSON`);return new e(n.from,n.to,n.gapFrom,n.gapTo,E.fromJSON(t,n.slice),n.insert,!!n.structure)}};Bt.jsonID(`replaceAround`,Jt);function Yt(e,t,n){let r=e.resolve(t),i=n-t,a=r.depth;for(;i>0&&a>0&&r.indexAfter(a)==r.node(a).childCount;)a--,i--;if(i>0){let e=r.node(a).maybeChild(r.indexAfter(a));for(;i>0;){if(!e||e.isLeaf)return!0;e=e.firstChild,i--}}return!1}function Xt(e,t,n,r){let i=[],a=[],o,s;e.doc.nodesBetween(t,n,(e,c,l)=>{if(!e.isInline)return;let u=e.marks;if(!r.isInSet(u)&&l.type.allowsMarkType(r.type)){let l=Math.max(c,t),d=Math.min(c+e.nodeSize,n),f=r.addToSet(u);for(let e=0;e<u.length;e++)u[e].isInSet(f)||(o&&o.to==l&&o.mark.eq(u[e])?o.to=d:i.push(o=new Wt(l,d,u[e])));s&&s.to==l?s.to=d:a.push(s=new Ut(l,d,r))}}),i.forEach(t=>e.step(t)),a.forEach(t=>e.step(t))}function Zt(e,t,n,r){let i=[],a=0;e.doc.nodesBetween(t,n,(e,o)=>{if(!e.isInline)return;a++;let s=null;if(r instanceof tt){let t=e.marks,n;for(;n=r.isInSet(t);)(s||=[]).push(n),t=n.removeFromSet(t)}else r?r.isInSet(e.marks)&&(s=[r]):s=e.marks;if(s&&s.length){let r=Math.min(o+e.nodeSize,n);for(let e=0;e<s.length;e++){let n=s[e],c;for(let e=0;e<i.length;e++){let t=i[e];t.step==a-1&&n.eq(i[e].style)&&(c=t)}c?(c.to=r,c.step=a):i.push({style:n,from:Math.max(o,t),to:r,step:a})}}}),i.forEach(t=>e.step(new Wt(t.from,t.to,t.style)))}function Qt(e,t,n,r=n.contentMatch,i=!0){let a=e.doc.nodeAt(t),o=[],s=t+1;for(let t=0;t<a.childCount;t++){let c=a.child(t),l=s+c.nodeSize,u=r.matchType(c.type);if(!u)o.push(new qt(s,l,E.empty));else{r=u;for(let t=0;t<c.marks.length;t++)n.allowsMarkType(c.marks[t].type)||e.step(new Wt(s,l,c.marks[t]));if(i&&c.isText&&n.whitespace!=`pre`){let e,t=/\r?\n|\r/g,r;for(;e=t.exec(c.text);)r||=new E(w.from(n.schema.text(` `,n.allowedMarks(c.marks))),0,0),o.push(new qt(s+e.index,s+e.index+e[0].length,r))}}s=l}if(!r.validEnd){let t=r.fillBefore(w.empty,!0);e.replace(s,s,new E(t,0,0))}for(let t=o.length-1;t>=0;t--)e.step(o[t])}function $t(e,t,n){return(t==0||e.canReplace(t,e.childCount))&&(n==e.childCount||e.canReplace(0,n))}function en(e){let t=e.parent.content.cutByIndex(e.startIndex,e.endIndex);for(let n=e.depth,r=0,i=0;;--n){let a=e.$from.node(n),o=e.$from.index(n)+r,s=e.$to.indexAfter(n)-i;if(n<e.depth&&a.canReplace(o,s,t))return n;if(n==0||a.type.spec.isolating||!$t(a,o,s))break;o&&(r=1),s<a.childCount&&(i=1)}return null}function tn(e,t,n){let{$from:r,$to:i,depth:a}=t,o=r.before(a+1),s=i.after(a+1),c=o,l=s,u=w.empty,d=0;for(let e=a,t=!1;e>n;e--)t||r.index(e)>0?(t=!0,u=w.from(r.node(e).copy(u)),d++):c--;let f=w.empty,p=0;for(let e=a,t=!1;e>n;e--)t||i.after(e+1)<i.end(e)?(t=!0,f=w.from(i.node(e).copy(f)),p++):l++;e.step(new Jt(c,l,o,s,new E(u.append(f),d,p),u.size-d,!0))}function nn(e,t,n=null,r=e){let i=an(e,t),a=i&&on(r,t);return a?i.map(rn).concat({type:t,attrs:n}).concat(a.map(rn)):null}function rn(e){return{type:e,attrs:null}}function an(e,t){let{parent:n,startIndex:r,endIndex:i}=e,a=n.contentMatchAt(r).findWrapping(t);if(!a)return null;let o=a.length?a[0]:t;return n.canReplaceWith(r,i,o)?a:null}function on(e,t){let{parent:n,startIndex:r,endIndex:i}=e,a=n.child(r),o=t.contentMatch.findWrapping(a.type);if(!o)return null;let s=(o.length?o[o.length-1]:t).contentMatch;for(let e=r;s&&e<i;e++)s=s.matchType(n.child(e).type);return!s||!s.validEnd?null:o}function sn(e,t,n){let r=w.empty;for(let e=n.length-1;e>=0;e--){if(r.size){let t=n[e].type.contentMatch.matchFragment(r);if(!t||!t.validEnd)throw RangeError(`Wrapper type given to Transform.wrap does not form valid content of its parent wrapper`)}r=w.from(n[e].type.create(n[e].attrs,r))}let i=t.start,a=t.end;e.step(new Jt(i,a,i,a,new E(r,0,0),n.length,!0))}function cn(e,t,n,r,i){if(!r.isTextblock)throw RangeError(`Type given to setBlockType should be a textblock`);let a=e.steps.length;e.doc.nodesBetween(t,n,(t,n)=>{let o=typeof i==`function`?i(t):i;if(t.isTextblock&&!t.hasMarkup(r,o)&&dn(e.doc,e.mapping.slice(a).map(n),r)){let i=null;if(r.schema.linebreakReplacement){let e=r.whitespace==`pre`,t=!!r.contentMatch.matchType(r.schema.linebreakReplacement);e&&!t?i=!1:!e&&t&&(i=!0)}i===!1&&un(e,t,n,a),Qt(e,e.mapping.slice(a).map(n,1),r,void 0,i===null);let s=e.mapping.slice(a),c=s.map(n,1),l=s.map(n+t.nodeSize,1);return e.step(new Jt(c,l,c+1,l-1,new E(w.from(r.create(o,null,t.marks)),0,0),1,!0)),i===!0&&ln(e,t,n,a),!1}})}function ln(e,t,n,r){t.forEach((i,a)=>{if(i.isText){let o,s=/\r?\n|\r/g;for(;o=s.exec(i.text);){let i=e.mapping.slice(r).map(n+1+a+o.index);e.replaceWith(i,i+1,t.type.schema.linebreakReplacement.create())}}})}function un(e,t,n,r){t.forEach((i,a)=>{if(i.type==i.type.schema.linebreakReplacement){let i=e.mapping.slice(r).map(n+1+a);e.replaceWith(i,i+1,t.type.schema.text(`