@blade-hq/agent-react 2612.0.0-beta.3 → 2612.0.0-beta.30

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 (1189) hide show
  1. package/README.md +22 -0
  2. package/dist/chat/AgentLoopBlock.d.ts +0 -2
  3. package/dist/chat/AssistantTurnBlock.d.ts +1 -9
  4. package/dist/chat/AttachmentPreviewDialog.d.ts +0 -1
  5. package/dist/chat/ChatLoadingIndicator.d.ts +7 -0
  6. package/dist/chat/ChatPanel.d.ts +1 -3
  7. package/dist/chat/ContextAttachmentPills.d.ts +4 -0
  8. package/dist/chat/CurrentPlanPanel.d.ts +0 -3
  9. package/dist/chat/FileDeliveryCards.d.ts +0 -4
  10. package/dist/chat/FinalArtifactCards.d.ts +0 -1
  11. package/dist/chat/LightComposer.d.ts +1 -1
  12. package/dist/chat/LiteMessageList.d.ts +1 -3
  13. package/dist/chat/MessageFileAttachmentList.d.ts +0 -5
  14. package/dist/chat/SessionReplayBar.d.ts +0 -1
  15. package/dist/chat/TextAttachmentPills.d.ts +0 -3
  16. package/dist/chat/TurnNavRail.d.ts +0 -3
  17. package/dist/chat/WorkflowRunBlock.d.ts +18 -4
  18. package/dist/chat/ai-elements/reasoning.d.ts +4 -4
  19. package/dist/chat/ai-elements/shimmer.d.ts +0 -4
  20. package/dist/chat/customization.d.ts +1 -5
  21. package/dist/chat/index.d.ts +1 -4
  22. package/dist/chat/lib/citations.d.ts +5 -22
  23. package/dist/chat/markdown/MarkdownContent.d.ts +3 -0
  24. package/dist/chat/message-list-blocks.d.ts +0 -1
  25. package/dist/chat/runtime/actions.d.ts +4 -3
  26. package/dist/chat/runtime/background-task-dismissals.d.ts +0 -1
  27. package/dist/chat/runtime/composer-channels.d.ts +4 -3
  28. package/dist/chat/runtime/input-cache-reset.d.ts +1 -6
  29. package/dist/chat/runtime/input-history-storage.d.ts +2 -0
  30. package/dist/chat/runtime/input-services.d.ts +0 -6
  31. package/dist/chat/runtime/session-source.d.ts +0 -5
  32. package/dist/chat/runtime/use-chat-actions.d.ts +0 -4
  33. package/dist/{chat-OCLOVB3H.css → chat-IHPRU35X.css} +5 -18
  34. package/dist/chat.css +5 -18
  35. package/dist/{chunk-5J54S5BK.js → chunk-M5NAFIU4.js} +1935 -1772
  36. package/dist/chunk-M5NAFIU4.js.map +1 -0
  37. package/dist/{chunk-WCMGQJLE.js → chunk-PHWYZP6F.js} +3 -8
  38. package/dist/chunk-PHWYZP6F.js.map +1 -0
  39. package/dist/{chunk-FQQJP2GJ.js → chunk-XTYNDVUV.js} +791 -826
  40. package/dist/chunk-XTYNDVUV.js.map +1 -0
  41. package/dist/components/ChatInput.d.ts +4 -16
  42. package/dist/components/LlmAdvancedSettings.d.ts +0 -1
  43. package/dist/components/PlanUpdateBlock.d.ts +0 -1
  44. package/dist/components/TopicAssetSubmitDialog.d.ts +14 -0
  45. package/dist/components/plugin-connector.d.ts +1 -0
  46. package/dist/embed/blade-chat-element.d.ts +0 -8
  47. package/dist/embed/entry.d.ts +7 -19
  48. package/dist/hooks/use-message-pin.d.ts +1 -1
  49. package/dist/host.d.ts +0 -4
  50. package/dist/index.d.ts +2 -0
  51. package/dist/index.js +8 -4
  52. package/dist/internal.d.ts +4 -2
  53. package/dist/internal.js +14 -51
  54. package/dist/internal.js.map +1 -1
  55. package/dist/lib/message-shortcuts.d.ts +5 -0
  56. package/dist/rich-input/ChatInput.d.ts +1 -1
  57. package/dist/rich-input/ConnectButton.d.ts +0 -2
  58. package/dist/rich-input/FileCompletionMenu.d.ts +7 -11
  59. package/dist/rich-input/SkillStatusBar.d.ts +1 -9
  60. package/dist/rich-input/extensions/plugin-mention.d.ts +15 -0
  61. package/dist/rich-input/extensions/skill-mention.d.ts +3 -21
  62. package/dist/rich-input/extensions/topic-asset-mention.d.ts +13 -0
  63. package/dist/rich-input/index.d.ts +6 -3
  64. package/dist/rich-input/lib/composer-content.d.ts +15 -21
  65. package/dist/rich-input/lib/input-history-document.d.ts +3 -0
  66. package/dist/rich-input/lib/plugin-suggestions.d.ts +7 -0
  67. package/dist/rich-input/lib/reference-candidates.d.ts +26 -0
  68. package/dist/rich-input/lib/skill-suggestions.d.ts +1 -1
  69. package/dist/rich-input/lib/topic-asset-suggestions.d.ts +6 -0
  70. package/dist/rich-input/lib/user-home.d.ts +0 -17
  71. package/dist/rich-input/services.d.ts +2 -3
  72. package/dist/rich-input/use-input-history.d.ts +8 -8
  73. package/dist/rich-input/use-reference-candidates.d.ts +8 -0
  74. package/dist/rich-input/voice/VoiceWaveform.d.ts +0 -3
  75. package/dist/rich-input.js +4949 -4920
  76. package/dist/rich-input.js.map +1 -1
  77. package/dist/style.css +16 -55
  78. package/dist/style.full.css +23 -77
  79. package/node_modules/@floating-ui/core/LICENSE +20 -0
  80. package/node_modules/@floating-ui/core/README.md +4 -0
  81. package/node_modules/@floating-ui/core/dist/floating-ui.core.browser.min.mjs +1 -0
  82. package/node_modules/@floating-ui/core/dist/floating-ui.core.browser.mjs +1184 -0
  83. package/node_modules/@floating-ui/core/dist/floating-ui.core.d.mts +531 -0
  84. package/node_modules/@floating-ui/core/dist/floating-ui.core.d.ts +531 -0
  85. package/node_modules/@floating-ui/core/dist/floating-ui.core.esm.js +1058 -0
  86. package/node_modules/@floating-ui/core/dist/floating-ui.core.mjs +1058 -0
  87. package/node_modules/@floating-ui/core/dist/floating-ui.core.umd.js +1203 -0
  88. package/node_modules/@floating-ui/core/dist/floating-ui.core.umd.min.js +1 -0
  89. package/node_modules/@floating-ui/core/package.json +63 -0
  90. package/node_modules/@floating-ui/dom/LICENSE +20 -0
  91. package/node_modules/@floating-ui/dom/README.md +4 -0
  92. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs +1 -0
  93. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.mjs +956 -0
  94. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.mts +358 -0
  95. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.ts +358 -0
  96. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js +781 -0
  97. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs +781 -0
  98. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.js +975 -0
  99. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.min.js +1 -0
  100. package/node_modules/@floating-ui/dom/package.json +71 -0
  101. package/node_modules/@floating-ui/utils/LICENSE +20 -0
  102. package/node_modules/@floating-ui/utils/README.md +4 -0
  103. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.mts +103 -0
  104. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.ts +103 -0
  105. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.mts +47 -0
  106. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.ts +47 -0
  107. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.esm.js +165 -0
  108. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs +165 -0
  109. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.umd.js +192 -0
  110. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.umd.min.js +1 -0
  111. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.esm.js +136 -0
  112. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs +136 -0
  113. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.umd.js +167 -0
  114. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.umd.min.js +1 -0
  115. package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.d.ts +47 -0
  116. package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.esm.js +165 -0
  117. package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.umd.js +192 -0
  118. package/node_modules/@floating-ui/utils/dom/package.json +6 -0
  119. package/node_modules/@floating-ui/utils/package.json +70 -0
  120. package/node_modules/@radix-ui/primitive/LICENSE +21 -0
  121. package/node_modules/@radix-ui/primitive/README.md +3 -0
  122. package/node_modules/@radix-ui/primitive/dist/index.d.mts +20 -0
  123. package/node_modules/@radix-ui/primitive/dist/index.d.ts +20 -0
  124. package/node_modules/@radix-ui/primitive/dist/index.js +76 -0
  125. package/node_modules/@radix-ui/primitive/dist/index.js.map +7 -0
  126. package/node_modules/@radix-ui/primitive/dist/index.mjs +53 -0
  127. package/node_modules/@radix-ui/primitive/dist/index.mjs.map +7 -0
  128. package/node_modules/@radix-ui/primitive/package.json +47 -0
  129. package/node_modules/@radix-ui/react-collapsible/LICENSE +21 -0
  130. package/node_modules/@radix-ui/react-collapsible/README.md +3 -0
  131. package/node_modules/@radix-ui/react-collapsible/dist/index.d.mts +33 -0
  132. package/node_modules/@radix-ui/react-collapsible/dist/index.d.ts +33 -0
  133. package/node_modules/@radix-ui/react-collapsible/dist/index.js +187 -0
  134. package/node_modules/@radix-ui/react-collapsible/dist/index.js.map +7 -0
  135. package/node_modules/@radix-ui/react-collapsible/dist/index.mjs +155 -0
  136. package/node_modules/@radix-ui/react-collapsible/dist/index.mjs.map +7 -0
  137. package/node_modules/@radix-ui/react-collapsible/package.json +75 -0
  138. package/node_modules/@radix-ui/react-compose-refs/README.md +13 -0
  139. package/node_modules/@radix-ui/react-compose-refs/dist/index.d.mts +15 -0
  140. package/node_modules/@radix-ui/react-compose-refs/dist/index.d.ts +15 -0
  141. package/node_modules/@radix-ui/react-compose-refs/dist/index.js +74 -0
  142. package/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +7 -0
  143. package/node_modules/@radix-ui/react-compose-refs/dist/index.mjs +41 -0
  144. package/node_modules/@radix-ui/react-compose-refs/dist/index.mjs.map +7 -0
  145. package/node_modules/@radix-ui/react-compose-refs/package.json +75 -0
  146. package/node_modules/@radix-ui/react-context/README.md +13 -0
  147. package/node_modules/@radix-ui/react-context/dist/index.d.mts +21 -0
  148. package/node_modules/@radix-ui/react-context/dist/index.d.ts +21 -0
  149. package/node_modules/@radix-ui/react-context/dist/index.js +114 -0
  150. package/node_modules/@radix-ui/react-context/dist/index.js.map +7 -0
  151. package/node_modules/@radix-ui/react-context/dist/index.mjs +81 -0
  152. package/node_modules/@radix-ui/react-context/dist/index.mjs.map +7 -0
  153. package/node_modules/@radix-ui/react-context/package.json +75 -0
  154. package/node_modules/@radix-ui/react-id/README.md +13 -0
  155. package/node_modules/@radix-ui/react-id/dist/index.d.mts +3 -0
  156. package/node_modules/@radix-ui/react-id/dist/index.d.ts +3 -0
  157. package/node_modules/@radix-ui/react-id/dist/index.js +49 -0
  158. package/node_modules/@radix-ui/react-id/dist/index.js.map +7 -0
  159. package/node_modules/@radix-ui/react-id/dist/index.mjs +16 -0
  160. package/node_modules/@radix-ui/react-id/dist/index.mjs.map +7 -0
  161. package/node_modules/@radix-ui/react-id/package.json +78 -0
  162. package/node_modules/@radix-ui/react-presence/LICENSE +21 -0
  163. package/node_modules/@radix-ui/react-presence/README.md +3 -0
  164. package/node_modules/@radix-ui/react-presence/dist/index.d.mts +12 -0
  165. package/node_modules/@radix-ui/react-presence/dist/index.d.ts +12 -0
  166. package/node_modules/@radix-ui/react-presence/dist/index.js +171 -0
  167. package/node_modules/@radix-ui/react-presence/dist/index.js.map +7 -0
  168. package/node_modules/@radix-ui/react-presence/dist/index.mjs +139 -0
  169. package/node_modules/@radix-ui/react-presence/dist/index.mjs.map +7 -0
  170. package/node_modules/@radix-ui/react-presence/package.json +69 -0
  171. package/node_modules/@radix-ui/react-primitive/LICENSE +21 -0
  172. package/node_modules/@radix-ui/react-primitive/README.md +3 -0
  173. package/node_modules/@radix-ui/react-primitive/dist/index.d.mts +52 -0
  174. package/node_modules/@radix-ui/react-primitive/dist/index.d.ts +52 -0
  175. package/node_modules/@radix-ui/react-primitive/dist/index.js +80 -0
  176. package/node_modules/@radix-ui/react-primitive/dist/index.js.map +7 -0
  177. package/node_modules/@radix-ui/react-primitive/dist/index.mjs +47 -0
  178. package/node_modules/@radix-ui/react-primitive/dist/index.mjs.map +7 -0
  179. package/node_modules/@radix-ui/react-primitive/package.json +68 -0
  180. package/node_modules/@radix-ui/react-slot/LICENSE +21 -0
  181. package/node_modules/@radix-ui/react-slot/README.md +3 -0
  182. package/node_modules/@radix-ui/react-slot/dist/index.d.mts +17 -0
  183. package/node_modules/@radix-ui/react-slot/dist/index.d.ts +17 -0
  184. package/node_modules/@radix-ui/react-slot/dist/index.js +138 -0
  185. package/node_modules/@radix-ui/react-slot/dist/index.js.map +7 -0
  186. package/node_modules/@radix-ui/react-slot/dist/index.mjs +105 -0
  187. package/node_modules/@radix-ui/react-slot/dist/index.mjs.map +7 -0
  188. package/node_modules/@radix-ui/react-slot/package.json +63 -0
  189. package/node_modules/@radix-ui/react-use-controllable-state/LICENSE +21 -0
  190. package/node_modules/@radix-ui/react-use-controllable-state/README.md +3 -0
  191. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.d.mts +40 -0
  192. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.d.ts +40 -0
  193. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +169 -0
  194. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +7 -0
  195. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs +136 -0
  196. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs.map +7 -0
  197. package/node_modules/@radix-ui/react-use-controllable-state/package.json +64 -0
  198. package/node_modules/@radix-ui/react-use-effect-event/LICENSE +21 -0
  199. package/node_modules/@radix-ui/react-use-effect-event/README.md +5 -0
  200. package/node_modules/@radix-ui/react-use-effect-event/dist/index.d.mts +8 -0
  201. package/node_modules/@radix-ui/react-use-effect-event/dist/index.d.ts +8 -0
  202. package/node_modules/@radix-ui/react-use-effect-event/dist/index.js +60 -0
  203. package/node_modules/@radix-ui/react-use-effect-event/dist/index.js.map +7 -0
  204. package/node_modules/@radix-ui/react-use-effect-event/dist/index.mjs +27 -0
  205. package/node_modules/@radix-ui/react-use-effect-event/dist/index.mjs.map +7 -0
  206. package/node_modules/@radix-ui/react-use-effect-event/package.json +65 -0
  207. package/node_modules/@radix-ui/react-use-effect-event/src/index.ts +1 -0
  208. package/node_modules/@radix-ui/react-use-effect-event/src/use-effect-event.tsx +36 -0
  209. package/node_modules/@radix-ui/react-use-layout-effect/README.md +13 -0
  210. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.d.mts +12 -0
  211. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.d.ts +12 -0
  212. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +41 -0
  213. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +7 -0
  214. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs +8 -0
  215. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs.map +7 -0
  216. package/node_modules/@radix-ui/react-use-layout-effect/package.json +75 -0
  217. package/node_modules/@remirror/core-constants/LICENSE +21 -0
  218. package/node_modules/@remirror/core-constants/dist/_tsup-dts-rollup.d.cts +612 -0
  219. package/node_modules/@remirror/core-constants/dist/_tsup-dts-rollup.d.ts +612 -0
  220. package/node_modules/@remirror/core-constants/dist/remirror-core-constants.cjs +314 -0
  221. package/node_modules/@remirror/core-constants/dist/remirror-core-constants.d.cts +20 -0
  222. package/node_modules/@remirror/core-constants/dist/remirror-core-constants.d.ts +20 -0
  223. package/node_modules/@remirror/core-constants/dist/remirror-core-constants.js +269 -0
  224. package/node_modules/@remirror/core-constants/dist-types/core-constants.d.ts +431 -0
  225. package/node_modules/@remirror/core-constants/dist-types/error-constants.d.ts +119 -0
  226. package/node_modules/@remirror/core-constants/dist-types/index.d.ts +2 -0
  227. package/node_modules/@remirror/core-constants/dist-types/tsconfig.tsbuildinfo +1 -0
  228. package/node_modules/@remirror/core-constants/package.json +45 -0
  229. package/node_modules/@remirror/core-constants/readme.md +17 -0
  230. package/node_modules/@tiptap/core/LICENSE.md +21 -0
  231. package/node_modules/@tiptap/core/README.md +18 -0
  232. package/node_modules/@tiptap/core/dist/index.cjs +7126 -0
  233. package/node_modules/@tiptap/core/dist/index.cjs.map +1 -0
  234. package/node_modules/@tiptap/core/dist/index.d.cts +4954 -0
  235. package/node_modules/@tiptap/core/dist/index.d.ts +4954 -0
  236. package/node_modules/@tiptap/core/dist/index.js +6992 -0
  237. package/node_modules/@tiptap/core/dist/index.js.map +1 -0
  238. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.cjs +56 -0
  239. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.cjs.map +1 -0
  240. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.d.cts +23 -0
  241. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.d.ts +23 -0
  242. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.js +26 -0
  243. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.js.map +1 -0
  244. package/node_modules/@tiptap/core/jsx-dev-runtime/index.cjs +1 -0
  245. package/node_modules/@tiptap/core/jsx-dev-runtime/index.d.cts +1 -0
  246. package/node_modules/@tiptap/core/jsx-dev-runtime/index.d.ts +1 -0
  247. package/node_modules/@tiptap/core/jsx-dev-runtime/index.js +1 -0
  248. package/node_modules/@tiptap/core/jsx-runtime/index.cjs +1 -0
  249. package/node_modules/@tiptap/core/jsx-runtime/index.d.cts +1 -0
  250. package/node_modules/@tiptap/core/jsx-runtime/index.d.ts +1 -0
  251. package/node_modules/@tiptap/core/jsx-runtime/index.js +1 -0
  252. package/node_modules/@tiptap/core/package.json +70 -0
  253. package/node_modules/@tiptap/core/src/CommandManager.ts +138 -0
  254. package/node_modules/@tiptap/core/src/Editor.ts +806 -0
  255. package/node_modules/@tiptap/core/src/EventEmitter.ts +58 -0
  256. package/node_modules/@tiptap/core/src/Extendable.ts +602 -0
  257. package/node_modules/@tiptap/core/src/Extension.ts +55 -0
  258. package/node_modules/@tiptap/core/src/ExtensionManager.ts +440 -0
  259. package/node_modules/@tiptap/core/src/InputRule.ts +290 -0
  260. package/node_modules/@tiptap/core/src/Mark.ts +211 -0
  261. package/node_modules/@tiptap/core/src/MarkView.ts +122 -0
  262. package/node_modules/@tiptap/core/src/Node.ts +377 -0
  263. package/node_modules/@tiptap/core/src/NodePos.ts +257 -0
  264. package/node_modules/@tiptap/core/src/NodeView.ts +339 -0
  265. package/node_modules/@tiptap/core/src/PasteRule.ts +373 -0
  266. package/node_modules/@tiptap/core/src/Tracker.ts +36 -0
  267. package/node_modules/@tiptap/core/src/__tests__/transformPastedHTML.test.ts +575 -0
  268. package/node_modules/@tiptap/core/src/commands/blur.ts +29 -0
  269. package/node_modules/@tiptap/core/src/commands/clearContent.ts +25 -0
  270. package/node_modules/@tiptap/core/src/commands/clearNodes.ts +57 -0
  271. package/node_modules/@tiptap/core/src/commands/command.ts +22 -0
  272. package/node_modules/@tiptap/core/src/commands/createParagraphNear.ts +21 -0
  273. package/node_modules/@tiptap/core/src/commands/cut.ts +36 -0
  274. package/node_modules/@tiptap/core/src/commands/deleteCurrentNode.ts +44 -0
  275. package/node_modules/@tiptap/core/src/commands/deleteNode.ts +41 -0
  276. package/node_modules/@tiptap/core/src/commands/deleteRange.ts +26 -0
  277. package/node_modules/@tiptap/core/src/commands/deleteSelection.ts +21 -0
  278. package/node_modules/@tiptap/core/src/commands/enter.ts +19 -0
  279. package/node_modules/@tiptap/core/src/commands/exitCode.ts +21 -0
  280. package/node_modules/@tiptap/core/src/commands/extendMarkRange.ts +51 -0
  281. package/node_modules/@tiptap/core/src/commands/first.ts +26 -0
  282. package/node_modules/@tiptap/core/src/commands/focus.ts +108 -0
  283. package/node_modules/@tiptap/core/src/commands/forEach.ts +24 -0
  284. package/node_modules/@tiptap/core/src/commands/index.ts +57 -0
  285. package/node_modules/@tiptap/core/src/commands/insertContent.ts +46 -0
  286. package/node_modules/@tiptap/core/src/commands/insertContentAt.ts +212 -0
  287. package/node_modules/@tiptap/core/src/commands/join.ts +69 -0
  288. package/node_modules/@tiptap/core/src/commands/joinItemBackward.ts +37 -0
  289. package/node_modules/@tiptap/core/src/commands/joinItemForward.ts +37 -0
  290. package/node_modules/@tiptap/core/src/commands/joinTextblockBackward.ts +20 -0
  291. package/node_modules/@tiptap/core/src/commands/joinTextblockForward.ts +20 -0
  292. package/node_modules/@tiptap/core/src/commands/keyboardShortcut.ts +100 -0
  293. package/node_modules/@tiptap/core/src/commands/lift.ts +34 -0
  294. package/node_modules/@tiptap/core/src/commands/liftEmptyBlock.ts +21 -0
  295. package/node_modules/@tiptap/core/src/commands/liftListItem.ts +26 -0
  296. package/node_modules/@tiptap/core/src/commands/newlineInCode.ts +21 -0
  297. package/node_modules/@tiptap/core/src/commands/resetAttributes.ts +73 -0
  298. package/node_modules/@tiptap/core/src/commands/scrollIntoView.ts +23 -0
  299. package/node_modules/@tiptap/core/src/commands/selectAll.ts +27 -0
  300. package/node_modules/@tiptap/core/src/commands/selectNodeBackward.ts +21 -0
  301. package/node_modules/@tiptap/core/src/commands/selectNodeForward.ts +21 -0
  302. package/node_modules/@tiptap/core/src/commands/selectParentNode.ts +21 -0
  303. package/node_modules/@tiptap/core/src/commands/selectTextblockEnd.ts +23 -0
  304. package/node_modules/@tiptap/core/src/commands/selectTextblockStart.ts +23 -0
  305. package/node_modules/@tiptap/core/src/commands/setContent.ts +76 -0
  306. package/node_modules/@tiptap/core/src/commands/setMark.ts +118 -0
  307. package/node_modules/@tiptap/core/src/commands/setMeta.ts +25 -0
  308. package/node_modules/@tiptap/core/src/commands/setNode.ts +57 -0
  309. package/node_modules/@tiptap/core/src/commands/setNodeSelection.ts +31 -0
  310. package/node_modules/@tiptap/core/src/commands/setTextDirection.ts +51 -0
  311. package/node_modules/@tiptap/core/src/commands/setTextSelection.ts +35 -0
  312. package/node_modules/@tiptap/core/src/commands/sinkListItem.ts +26 -0
  313. package/node_modules/@tiptap/core/src/commands/splitBlock.ts +115 -0
  314. package/node_modules/@tiptap/core/src/commands/splitListItem.ts +149 -0
  315. package/node_modules/@tiptap/core/src/commands/toggleList.ts +159 -0
  316. package/node_modules/@tiptap/core/src/commands/toggleMark.ts +51 -0
  317. package/node_modules/@tiptap/core/src/commands/toggleNode.ts +47 -0
  318. package/node_modules/@tiptap/core/src/commands/toggleWrap.ts +32 -0
  319. package/node_modules/@tiptap/core/src/commands/undoInputRule.ts +49 -0
  320. package/node_modules/@tiptap/core/src/commands/unsetAllMarks.ts +32 -0
  321. package/node_modules/@tiptap/core/src/commands/unsetMark.ts +65 -0
  322. package/node_modules/@tiptap/core/src/commands/unsetTextDirection.ts +51 -0
  323. package/node_modules/@tiptap/core/src/commands/updateAttributes.ts +150 -0
  324. package/node_modules/@tiptap/core/src/commands/wrapIn.ts +27 -0
  325. package/node_modules/@tiptap/core/src/commands/wrapInList.ts +27 -0
  326. package/node_modules/@tiptap/core/src/extensions/clipboardTextSerializer.ts +44 -0
  327. package/node_modules/@tiptap/core/src/extensions/commands.ts +14 -0
  328. package/node_modules/@tiptap/core/src/extensions/delete.ts +89 -0
  329. package/node_modules/@tiptap/core/src/extensions/drop.ts +26 -0
  330. package/node_modules/@tiptap/core/src/extensions/editable.ts +18 -0
  331. package/node_modules/@tiptap/core/src/extensions/focusEvents.ts +41 -0
  332. package/node_modules/@tiptap/core/src/extensions/index.ts +10 -0
  333. package/node_modules/@tiptap/core/src/extensions/keymap.ts +160 -0
  334. package/node_modules/@tiptap/core/src/extensions/paste.ts +25 -0
  335. package/node_modules/@tiptap/core/src/extensions/tabindex.ts +18 -0
  336. package/node_modules/@tiptap/core/src/extensions/textDirection.ts +86 -0
  337. package/node_modules/@tiptap/core/src/helpers/MappablePosition.ts +66 -0
  338. package/node_modules/@tiptap/core/src/helpers/combineTransactionSteps.ts +21 -0
  339. package/node_modules/@tiptap/core/src/helpers/createChainableState.ts +39 -0
  340. package/node_modules/@tiptap/core/src/helpers/createDocument.ts +24 -0
  341. package/node_modules/@tiptap/core/src/helpers/createNodeFromContent.ts +119 -0
  342. package/node_modules/@tiptap/core/src/helpers/defaultBlockAt.ts +18 -0
  343. package/node_modules/@tiptap/core/src/helpers/findChildren.ts +24 -0
  344. package/node_modules/@tiptap/core/src/helpers/findChildrenInRange.ts +36 -0
  345. package/node_modules/@tiptap/core/src/helpers/findParentNode.ts +18 -0
  346. package/node_modules/@tiptap/core/src/helpers/findParentNodeClosestToPos.ts +37 -0
  347. package/node_modules/@tiptap/core/src/helpers/flattenExtensions.ts +30 -0
  348. package/node_modules/@tiptap/core/src/helpers/generateHTML.ts +18 -0
  349. package/node_modules/@tiptap/core/src/helpers/generateJSON.ts +18 -0
  350. package/node_modules/@tiptap/core/src/helpers/generateText.ts +34 -0
  351. package/node_modules/@tiptap/core/src/helpers/getAttributes.ts +29 -0
  352. package/node_modules/@tiptap/core/src/helpers/getAttributesFromExtensions.ts +122 -0
  353. package/node_modules/@tiptap/core/src/helpers/getChangedRanges.ts +85 -0
  354. package/node_modules/@tiptap/core/src/helpers/getDebugJSON.ts +54 -0
  355. package/node_modules/@tiptap/core/src/helpers/getExtensionField.ts +32 -0
  356. package/node_modules/@tiptap/core/src/helpers/getHTMLFromFragment.ts +13 -0
  357. package/node_modules/@tiptap/core/src/helpers/getMarkAttributes.ts +30 -0
  358. package/node_modules/@tiptap/core/src/helpers/getMarkRange.ts +90 -0
  359. package/node_modules/@tiptap/core/src/helpers/getMarkType.ts +13 -0
  360. package/node_modules/@tiptap/core/src/helpers/getMarksBetween.ts +44 -0
  361. package/node_modules/@tiptap/core/src/helpers/getNodeAtPosition.ts +29 -0
  362. package/node_modules/@tiptap/core/src/helpers/getNodeAttributes.ts +22 -0
  363. package/node_modules/@tiptap/core/src/helpers/getNodeType.ts +13 -0
  364. package/node_modules/@tiptap/core/src/helpers/getRenderedAttributes.ts +23 -0
  365. package/node_modules/@tiptap/core/src/helpers/getSchema.ts +12 -0
  366. package/node_modules/@tiptap/core/src/helpers/getSchemaByResolvedExtensions.ts +183 -0
  367. package/node_modules/@tiptap/core/src/helpers/getSchemaTypeByName.ts +11 -0
  368. package/node_modules/@tiptap/core/src/helpers/getSchemaTypeNameByName.ts +19 -0
  369. package/node_modules/@tiptap/core/src/helpers/getSplittedAttributes.ts +28 -0
  370. package/node_modules/@tiptap/core/src/helpers/getText.ts +28 -0
  371. package/node_modules/@tiptap/core/src/helpers/getTextBetween.ts +52 -0
  372. package/node_modules/@tiptap/core/src/helpers/getTextContentFromNodes.ts +29 -0
  373. package/node_modules/@tiptap/core/src/helpers/getTextSerializersFromSchema.ts +16 -0
  374. package/node_modules/@tiptap/core/src/helpers/index.ts +55 -0
  375. package/node_modules/@tiptap/core/src/helpers/injectExtensionAttributesToParseRule.ts +47 -0
  376. package/node_modules/@tiptap/core/src/helpers/isActive.ts +23 -0
  377. package/node_modules/@tiptap/core/src/helpers/isAtEndOfNode.ts +29 -0
  378. package/node_modules/@tiptap/core/src/helpers/isAtStartOfNode.ts +11 -0
  379. package/node_modules/@tiptap/core/src/helpers/isExtensionRulesEnabled.ts +13 -0
  380. package/node_modules/@tiptap/core/src/helpers/isList.ts +27 -0
  381. package/node_modules/@tiptap/core/src/helpers/isMarkActive.ts +94 -0
  382. package/node_modules/@tiptap/core/src/helpers/isNodeActive.ts +51 -0
  383. package/node_modules/@tiptap/core/src/helpers/isNodeEmpty.ts +62 -0
  384. package/node_modules/@tiptap/core/src/helpers/isNodeSelection.ts +5 -0
  385. package/node_modules/@tiptap/core/src/helpers/isTextSelection.ts +5 -0
  386. package/node_modules/@tiptap/core/src/helpers/posToDOMRect.ts +35 -0
  387. package/node_modules/@tiptap/core/src/helpers/resolveExtensions.ts +25 -0
  388. package/node_modules/@tiptap/core/src/helpers/resolveFocusPosition.ts +31 -0
  389. package/node_modules/@tiptap/core/src/helpers/rewriteUnknownContent.ts +149 -0
  390. package/node_modules/@tiptap/core/src/helpers/selectionToInsertionEnd.ts +29 -0
  391. package/node_modules/@tiptap/core/src/helpers/sortExtensions.ts +26 -0
  392. package/node_modules/@tiptap/core/src/helpers/splitExtensions.ts +16 -0
  393. package/node_modules/@tiptap/core/src/index.ts +28 -0
  394. package/node_modules/@tiptap/core/src/inputRules/index.ts +5 -0
  395. package/node_modules/@tiptap/core/src/inputRules/markInputRule.ts +68 -0
  396. package/node_modules/@tiptap/core/src/inputRules/nodeInputRule.ts +73 -0
  397. package/node_modules/@tiptap/core/src/inputRules/textInputRule.ts +35 -0
  398. package/node_modules/@tiptap/core/src/inputRules/textblockTypeInputRule.ts +35 -0
  399. package/node_modules/@tiptap/core/src/inputRules/wrappingInputRule.ts +82 -0
  400. package/node_modules/@tiptap/core/src/jsx-runtime.ts +65 -0
  401. package/node_modules/@tiptap/core/src/lib/ResizableNodeView.ts +1060 -0
  402. package/node_modules/@tiptap/core/src/lib/index.ts +1 -0
  403. package/node_modules/@tiptap/core/src/pasteRules/index.ts +3 -0
  404. package/node_modules/@tiptap/core/src/pasteRules/markPasteRule.ts +71 -0
  405. package/node_modules/@tiptap/core/src/pasteRules/nodePasteRule.ts +44 -0
  406. package/node_modules/@tiptap/core/src/pasteRules/textPasteRule.ts +34 -0
  407. package/node_modules/@tiptap/core/src/style.ts +71 -0
  408. package/node_modules/@tiptap/core/src/types.ts +1058 -0
  409. package/node_modules/@tiptap/core/src/utilities/callOrReturn.ts +21 -0
  410. package/node_modules/@tiptap/core/src/utilities/canInsertNode.ts +30 -0
  411. package/node_modules/@tiptap/core/src/utilities/createStyleTag.ts +21 -0
  412. package/node_modules/@tiptap/core/src/utilities/deleteProps.ts +16 -0
  413. package/node_modules/@tiptap/core/src/utilities/elementFromString.ts +27 -0
  414. package/node_modules/@tiptap/core/src/utilities/escapeForRegEx.ts +4 -0
  415. package/node_modules/@tiptap/core/src/utilities/findDuplicates.ts +8 -0
  416. package/node_modules/@tiptap/core/src/utilities/fromString.ts +19 -0
  417. package/node_modules/@tiptap/core/src/utilities/index.ts +26 -0
  418. package/node_modules/@tiptap/core/src/utilities/isAndroid.ts +3 -0
  419. package/node_modules/@tiptap/core/src/utilities/isEmptyObject.ts +3 -0
  420. package/node_modules/@tiptap/core/src/utilities/isFirefox.ts +11 -0
  421. package/node_modules/@tiptap/core/src/utilities/isFunction.ts +4 -0
  422. package/node_modules/@tiptap/core/src/utilities/isMacOS.ts +3 -0
  423. package/node_modules/@tiptap/core/src/utilities/isNumber.ts +3 -0
  424. package/node_modules/@tiptap/core/src/utilities/isPlainObject.ts +13 -0
  425. package/node_modules/@tiptap/core/src/utilities/isRegExp.ts +3 -0
  426. package/node_modules/@tiptap/core/src/utilities/isSafari.ts +11 -0
  427. package/node_modules/@tiptap/core/src/utilities/isString.ts +3 -0
  428. package/node_modules/@tiptap/core/src/utilities/isiOS.ts +7 -0
  429. package/node_modules/@tiptap/core/src/utilities/markdown/attributeUtils.ts +130 -0
  430. package/node_modules/@tiptap/core/src/utilities/markdown/createAtomBlockMarkdownSpec.ts +141 -0
  431. package/node_modules/@tiptap/core/src/utilities/markdown/createBlockMarkdownSpec.ts +225 -0
  432. package/node_modules/@tiptap/core/src/utilities/markdown/createInlineMarkdownSpec.ts +282 -0
  433. package/node_modules/@tiptap/core/src/utilities/markdown/index.ts +13 -0
  434. package/node_modules/@tiptap/core/src/utilities/markdown/parseIndentedBlocks.ts +194 -0
  435. package/node_modules/@tiptap/core/src/utilities/markdown/renderNestedMarkdownContent.ts +96 -0
  436. package/node_modules/@tiptap/core/src/utilities/mergeAttributes.ts +109 -0
  437. package/node_modules/@tiptap/core/src/utilities/mergeDeep.ts +17 -0
  438. package/node_modules/@tiptap/core/src/utilities/minMax.ts +3 -0
  439. package/node_modules/@tiptap/core/src/utilities/objectIncludes.ts +30 -0
  440. package/node_modules/@tiptap/core/src/utilities/removeDuplicates.ts +13 -0
  441. package/node_modules/@tiptap/extension-bubble-menu/LICENSE.md +21 -0
  442. package/node_modules/@tiptap/extension-bubble-menu/README.md +18 -0
  443. package/node_modules/@tiptap/extension-bubble-menu/dist/index.cjs +462 -0
  444. package/node_modules/@tiptap/extension-bubble-menu/dist/index.cjs.map +1 -0
  445. package/node_modules/@tiptap/extension-bubble-menu/dist/index.d.cts +169 -0
  446. package/node_modules/@tiptap/extension-bubble-menu/dist/index.d.ts +169 -0
  447. package/node_modules/@tiptap/extension-bubble-menu/dist/index.js +443 -0
  448. package/node_modules/@tiptap/extension-bubble-menu/dist/index.js.map +1 -0
  449. package/node_modules/@tiptap/extension-bubble-menu/package.json +54 -0
  450. package/node_modules/@tiptap/extension-bubble-menu/src/bubble-menu-plugin.ts +650 -0
  451. package/node_modules/@tiptap/extension-bubble-menu/src/bubble-menu.ts +50 -0
  452. package/node_modules/@tiptap/extension-bubble-menu/src/index.ts +6 -0
  453. package/node_modules/@tiptap/extension-floating-menu/LICENSE.md +21 -0
  454. package/node_modules/@tiptap/extension-floating-menu/README.md +18 -0
  455. package/node_modules/@tiptap/extension-floating-menu/dist/index.cjs +380 -0
  456. package/node_modules/@tiptap/extension-floating-menu/dist/index.cjs.map +1 -0
  457. package/node_modules/@tiptap/extension-floating-menu/dist/index.d.cts +179 -0
  458. package/node_modules/@tiptap/extension-floating-menu/dist/index.d.ts +179 -0
  459. package/node_modules/@tiptap/extension-floating-menu/dist/index.js +361 -0
  460. package/node_modules/@tiptap/extension-floating-menu/dist/index.js.map +1 -0
  461. package/node_modules/@tiptap/extension-floating-menu/package.json +53 -0
  462. package/node_modules/@tiptap/extension-floating-menu/src/floating-menu-plugin.ts +525 -0
  463. package/node_modules/@tiptap/extension-floating-menu/src/floating-menu.ts +77 -0
  464. package/node_modules/@tiptap/extension-floating-menu/src/index.ts +6 -0
  465. package/node_modules/@tiptap/extension-mention/LICENSE.md +21 -0
  466. package/node_modules/@tiptap/extension-mention/README.md +18 -0
  467. package/node_modules/@tiptap/extension-mention/dist/index.cjs +277 -0
  468. package/node_modules/@tiptap/extension-mention/dist/index.cjs.map +1 -0
  469. package/node_modules/@tiptap/extension-mention/dist/index.d.cts +93 -0
  470. package/node_modules/@tiptap/extension-mention/dist/index.d.ts +93 -0
  471. package/node_modules/@tiptap/extension-mention/dist/index.js +250 -0
  472. package/node_modules/@tiptap/extension-mention/dist/index.js.map +1 -0
  473. package/node_modules/@tiptap/extension-mention/package.json +52 -0
  474. package/node_modules/@tiptap/extension-mention/src/index.ts +5 -0
  475. package/node_modules/@tiptap/extension-mention/src/mention.ts +357 -0
  476. package/node_modules/@tiptap/extension-mention/src/utils/get-default-suggestion-attributes.ts +89 -0
  477. package/node_modules/@tiptap/pm/LICENSE.md +21 -0
  478. package/node_modules/@tiptap/pm/README.md +22 -0
  479. package/node_modules/@tiptap/pm/changeset/index.ts +1 -0
  480. package/node_modules/@tiptap/pm/collab/index.ts +1 -0
  481. package/node_modules/@tiptap/pm/commands/index.ts +1 -0
  482. package/node_modules/@tiptap/pm/dist/changeset/index.cjs +2 -0
  483. package/node_modules/@tiptap/pm/dist/changeset/index.d.cts +18 -0
  484. package/node_modules/@tiptap/pm/dist/changeset/index.d.ts +18 -0
  485. package/node_modules/@tiptap/pm/dist/changeset/index.js +2 -0
  486. package/node_modules/@tiptap/pm/dist/collab/index.cjs +2 -0
  487. package/node_modules/@tiptap/pm/dist/collab/index.d.cts +1 -0
  488. package/node_modules/@tiptap/pm/dist/collab/index.d.ts +1 -0
  489. package/node_modules/@tiptap/pm/dist/collab/index.js +2 -0
  490. package/node_modules/@tiptap/pm/dist/commands/index.cjs +2 -0
  491. package/node_modules/@tiptap/pm/dist/commands/index.d.cts +1 -0
  492. package/node_modules/@tiptap/pm/dist/commands/index.d.ts +1 -0
  493. package/node_modules/@tiptap/pm/dist/commands/index.js +2 -0
  494. package/node_modules/@tiptap/pm/dist/dropcursor/index.cjs +2 -0
  495. package/node_modules/@tiptap/pm/dist/dropcursor/index.d.cts +1 -0
  496. package/node_modules/@tiptap/pm/dist/dropcursor/index.d.ts +1 -0
  497. package/node_modules/@tiptap/pm/dist/dropcursor/index.js +2 -0
  498. package/node_modules/@tiptap/pm/dist/gapcursor/index.cjs +2 -0
  499. package/node_modules/@tiptap/pm/dist/gapcursor/index.d.cts +1 -0
  500. package/node_modules/@tiptap/pm/dist/gapcursor/index.d.ts +1 -0
  501. package/node_modules/@tiptap/pm/dist/gapcursor/index.js +2 -0
  502. package/node_modules/@tiptap/pm/dist/history/index.cjs +2 -0
  503. package/node_modules/@tiptap/pm/dist/history/index.d.cts +1 -0
  504. package/node_modules/@tiptap/pm/dist/history/index.d.ts +1 -0
  505. package/node_modules/@tiptap/pm/dist/history/index.js +2 -0
  506. package/node_modules/@tiptap/pm/dist/inputrules/index.cjs +2 -0
  507. package/node_modules/@tiptap/pm/dist/inputrules/index.d.cts +1 -0
  508. package/node_modules/@tiptap/pm/dist/inputrules/index.d.ts +1 -0
  509. package/node_modules/@tiptap/pm/dist/inputrules/index.js +2 -0
  510. package/node_modules/@tiptap/pm/dist/keymap/index.cjs +2 -0
  511. package/node_modules/@tiptap/pm/dist/keymap/index.d.cts +1 -0
  512. package/node_modules/@tiptap/pm/dist/keymap/index.d.ts +1 -0
  513. package/node_modules/@tiptap/pm/dist/keymap/index.js +2 -0
  514. package/node_modules/@tiptap/pm/dist/markdown/index.cjs +2 -0
  515. package/node_modules/@tiptap/pm/dist/markdown/index.d.cts +1 -0
  516. package/node_modules/@tiptap/pm/dist/markdown/index.d.ts +1 -0
  517. package/node_modules/@tiptap/pm/dist/markdown/index.js +2 -0
  518. package/node_modules/@tiptap/pm/dist/menu/index.cjs +2 -0
  519. package/node_modules/@tiptap/pm/dist/menu/index.d.cts +1 -0
  520. package/node_modules/@tiptap/pm/dist/menu/index.d.ts +1 -0
  521. package/node_modules/@tiptap/pm/dist/menu/index.js +2 -0
  522. package/node_modules/@tiptap/pm/dist/model/index.cjs +2 -0
  523. package/node_modules/@tiptap/pm/dist/model/index.d.cts +1 -0
  524. package/node_modules/@tiptap/pm/dist/model/index.d.ts +1 -0
  525. package/node_modules/@tiptap/pm/dist/model/index.js +2 -0
  526. package/node_modules/@tiptap/pm/dist/schema-basic/index.cjs +2 -0
  527. package/node_modules/@tiptap/pm/dist/schema-basic/index.d.cts +1 -0
  528. package/node_modules/@tiptap/pm/dist/schema-basic/index.d.ts +1 -0
  529. package/node_modules/@tiptap/pm/dist/schema-basic/index.js +2 -0
  530. package/node_modules/@tiptap/pm/dist/schema-list/index.cjs +2 -0
  531. package/node_modules/@tiptap/pm/dist/schema-list/index.d.cts +1 -0
  532. package/node_modules/@tiptap/pm/dist/schema-list/index.d.ts +1 -0
  533. package/node_modules/@tiptap/pm/dist/schema-list/index.js +2 -0
  534. package/node_modules/@tiptap/pm/dist/state/index.cjs +2 -0
  535. package/node_modules/@tiptap/pm/dist/state/index.d.cts +1 -0
  536. package/node_modules/@tiptap/pm/dist/state/index.d.ts +1 -0
  537. package/node_modules/@tiptap/pm/dist/state/index.js +2 -0
  538. package/node_modules/@tiptap/pm/dist/tables/index.cjs +2 -0
  539. package/node_modules/@tiptap/pm/dist/tables/index.d.cts +1 -0
  540. package/node_modules/@tiptap/pm/dist/tables/index.d.ts +1 -0
  541. package/node_modules/@tiptap/pm/dist/tables/index.js +2 -0
  542. package/node_modules/@tiptap/pm/dist/trailing-node/index.cjs +2 -0
  543. package/node_modules/@tiptap/pm/dist/trailing-node/index.d.cts +1 -0
  544. package/node_modules/@tiptap/pm/dist/trailing-node/index.d.ts +1 -0
  545. package/node_modules/@tiptap/pm/dist/trailing-node/index.js +2 -0
  546. package/node_modules/@tiptap/pm/dist/transform/index.cjs +2 -0
  547. package/node_modules/@tiptap/pm/dist/transform/index.d.cts +1 -0
  548. package/node_modules/@tiptap/pm/dist/transform/index.d.ts +1 -0
  549. package/node_modules/@tiptap/pm/dist/transform/index.js +2 -0
  550. package/node_modules/@tiptap/pm/dist/view/index.cjs +2 -0
  551. package/node_modules/@tiptap/pm/dist/view/index.d.cts +1 -0
  552. package/node_modules/@tiptap/pm/dist/view/index.d.ts +1 -0
  553. package/node_modules/@tiptap/pm/dist/view/index.js +2 -0
  554. package/node_modules/@tiptap/pm/dropcursor/index.ts +1 -0
  555. package/node_modules/@tiptap/pm/gapcursor/index.ts +1 -0
  556. package/node_modules/@tiptap/pm/history/index.ts +1 -0
  557. package/node_modules/@tiptap/pm/inputrules/index.ts +1 -0
  558. package/node_modules/@tiptap/pm/keymap/index.ts +1 -0
  559. package/node_modules/@tiptap/pm/markdown/index.ts +1 -0
  560. package/node_modules/@tiptap/pm/menu/index.ts +1 -0
  561. package/node_modules/@tiptap/pm/model/index.ts +1 -0
  562. package/node_modules/@tiptap/pm/package.json +211 -0
  563. package/node_modules/@tiptap/pm/schema-basic/index.ts +1 -0
  564. package/node_modules/@tiptap/pm/schema-list/index.ts +1 -0
  565. package/node_modules/@tiptap/pm/state/index.ts +1 -0
  566. package/node_modules/@tiptap/pm/tables/index.ts +1 -0
  567. package/node_modules/@tiptap/pm/trailing-node/index.ts +1 -0
  568. package/node_modules/@tiptap/pm/transform/index.ts +1 -0
  569. package/node_modules/@tiptap/pm/view/index.ts +1 -0
  570. package/node_modules/@tiptap/react/LICENSE.md +21 -0
  571. package/node_modules/@tiptap/react/README.md +18 -0
  572. package/node_modules/@tiptap/react/dist/index.cjs +1195 -0
  573. package/node_modules/@tiptap/react/dist/index.cjs.map +1 -0
  574. package/node_modules/@tiptap/react/dist/index.d.cts +534 -0
  575. package/node_modules/@tiptap/react/dist/index.d.ts +534 -0
  576. package/node_modules/@tiptap/react/dist/index.js +1131 -0
  577. package/node_modules/@tiptap/react/dist/index.js.map +1 -0
  578. package/node_modules/@tiptap/react/dist/menus/index.cjs +499 -0
  579. package/node_modules/@tiptap/react/dist/menus/index.cjs.map +1 -0
  580. package/node_modules/@tiptap/react/dist/menus/index.d.cts +19 -0
  581. package/node_modules/@tiptap/react/dist/menus/index.d.ts +19 -0
  582. package/node_modules/@tiptap/react/dist/menus/index.js +461 -0
  583. package/node_modules/@tiptap/react/dist/menus/index.js.map +1 -0
  584. package/node_modules/@tiptap/react/package.json +76 -0
  585. package/node_modules/@tiptap/react/src/Context.tsx +60 -0
  586. package/node_modules/@tiptap/react/src/Editor.ts +13 -0
  587. package/node_modules/@tiptap/react/src/EditorContent.tsx +229 -0
  588. package/node_modules/@tiptap/react/src/NodeViewContent.tsx +30 -0
  589. package/node_modules/@tiptap/react/src/NodeViewWrapper.tsx +27 -0
  590. package/node_modules/@tiptap/react/src/ReactMarkViewRenderer.tsx +106 -0
  591. package/node_modules/@tiptap/react/src/ReactNodeViewRenderer.tsx +387 -0
  592. package/node_modules/@tiptap/react/src/ReactRenderer.tsx +282 -0
  593. package/node_modules/@tiptap/react/src/Tiptap.tsx +224 -0
  594. package/node_modules/@tiptap/react/src/index.ts +13 -0
  595. package/node_modules/@tiptap/react/src/menus/BubbleMenu.spec.ts +174 -0
  596. package/node_modules/@tiptap/react/src/menus/BubbleMenu.tsx +153 -0
  597. package/node_modules/@tiptap/react/src/menus/FloatingMenu.spec.ts +164 -0
  598. package/node_modules/@tiptap/react/src/menus/FloatingMenu.tsx +137 -0
  599. package/node_modules/@tiptap/react/src/menus/getAutoPluginKey.ts +5 -0
  600. package/node_modules/@tiptap/react/src/menus/index.ts +2 -0
  601. package/node_modules/@tiptap/react/src/menus/useMenuElementProps.ts +354 -0
  602. package/node_modules/@tiptap/react/src/types.ts +6 -0
  603. package/node_modules/@tiptap/react/src/useEditor.ts +382 -0
  604. package/node_modules/@tiptap/react/src/useEditorState.ts +173 -0
  605. package/node_modules/@tiptap/react/src/useReactNodeView.ts +28 -0
  606. package/node_modules/@tiptap/suggestion/LICENSE.md +21 -0
  607. package/node_modules/@tiptap/suggestion/README.md +18 -0
  608. package/node_modules/@tiptap/suggestion/dist/index.cjs +369 -0
  609. package/node_modules/@tiptap/suggestion/dist/index.cjs.map +1 -0
  610. package/node_modules/@tiptap/suggestion/dist/index.d.cts +213 -0
  611. package/node_modules/@tiptap/suggestion/dist/index.d.ts +213 -0
  612. package/node_modules/@tiptap/suggestion/dist/index.js +339 -0
  613. package/node_modules/@tiptap/suggestion/dist/index.js.map +1 -0
  614. package/node_modules/@tiptap/suggestion/package.json +50 -0
  615. package/node_modules/@tiptap/suggestion/src/__tests__/suggestion.test.ts +127 -0
  616. package/node_modules/@tiptap/suggestion/src/findSuggestionMatch.ts +79 -0
  617. package/node_modules/@tiptap/suggestion/src/index.ts +8 -0
  618. package/node_modules/@tiptap/suggestion/src/suggestion.ts +585 -0
  619. package/node_modules/@types/linkify-it/LICENSE +21 -0
  620. package/node_modules/@types/linkify-it/README.md +15 -0
  621. package/node_modules/@types/linkify-it/build/index.cjs.d.ts +178 -0
  622. package/node_modules/@types/linkify-it/index.d.mts +174 -0
  623. package/node_modules/@types/linkify-it/index.d.ts +3 -0
  624. package/node_modules/@types/linkify-it/package.json +50 -0
  625. package/node_modules/@types/markdown-it/LICENSE +21 -0
  626. package/node_modules/@types/markdown-it/README.md +15 -0
  627. package/node_modules/@types/markdown-it/dist/index.cjs.d.ts +1236 -0
  628. package/node_modules/@types/markdown-it/dist/markdown-it.d.ts +5 -0
  629. package/node_modules/@types/markdown-it/dist/markdown-it.min.d.ts +5 -0
  630. package/node_modules/@types/markdown-it/index.d.mts +1 -0
  631. package/node_modules/@types/markdown-it/index.d.ts +3 -0
  632. package/node_modules/@types/markdown-it/lib/common/html_blocks.d.mts +7 -0
  633. package/node_modules/@types/markdown-it/lib/common/html_re.d.mts +2 -0
  634. package/node_modules/@types/markdown-it/lib/common/utils.d.mts +62 -0
  635. package/node_modules/@types/markdown-it/lib/helpers/index.d.mts +5 -0
  636. package/node_modules/@types/markdown-it/lib/helpers/parse_link_destination.d.mts +7 -0
  637. package/node_modules/@types/markdown-it/lib/helpers/parse_link_label.d.mts +3 -0
  638. package/node_modules/@types/markdown-it/lib/helpers/parse_link_title.d.mts +29 -0
  639. package/node_modules/@types/markdown-it/lib/index.d.mts +404 -0
  640. package/node_modules/@types/markdown-it/lib/parser_block.d.mts +25 -0
  641. package/node_modules/@types/markdown-it/lib/parser_core.d.mts +18 -0
  642. package/node_modules/@types/markdown-it/lib/parser_inline.d.mts +38 -0
  643. package/node_modules/@types/markdown-it/lib/renderer.d.mts +96 -0
  644. package/node_modules/@types/markdown-it/lib/ruler.d.mts +158 -0
  645. package/node_modules/@types/markdown-it/lib/rules_block/state_block.d.mts +124 -0
  646. package/node_modules/@types/markdown-it/lib/rules_core/state_core.d.mts +18 -0
  647. package/node_modules/@types/markdown-it/lib/rules_inline/state_inline.d.mts +73 -0
  648. package/node_modules/@types/markdown-it/lib/token.d.mts +108 -0
  649. package/node_modules/@types/markdown-it/package.json +54 -0
  650. package/node_modules/@types/mdurl/LICENSE +21 -0
  651. package/node_modules/@types/mdurl/README.md +15 -0
  652. package/node_modules/@types/mdurl/build/index.cjs.d.ts +52 -0
  653. package/node_modules/@types/mdurl/index.d.mts +6 -0
  654. package/node_modules/@types/mdurl/index.d.ts +3 -0
  655. package/node_modules/@types/mdurl/lib/decode.d.mts +10 -0
  656. package/node_modules/@types/mdurl/lib/encode.d.mts +15 -0
  657. package/node_modules/@types/mdurl/lib/format.d.mts +3 -0
  658. package/node_modules/@types/mdurl/lib/parse.d.mts +18 -0
  659. package/node_modules/@types/mdurl/package.json +36 -0
  660. package/node_modules/@types/use-sync-external-store/LICENSE +21 -0
  661. package/node_modules/@types/use-sync-external-store/README.md +15 -0
  662. package/node_modules/@types/use-sync-external-store/index.d.ts +5 -0
  663. package/node_modules/@types/use-sync-external-store/package.json +30 -0
  664. package/node_modules/@types/use-sync-external-store/shim/index.d.ts +1 -0
  665. package/node_modules/@types/use-sync-external-store/shim/with-selector.d.ts +1 -0
  666. package/node_modules/@types/use-sync-external-store/with-selector.d.ts +7 -0
  667. package/node_modules/argparse/LICENSE +254 -0
  668. package/node_modules/argparse/README.md +84 -0
  669. package/node_modules/argparse/argparse.js +3707 -0
  670. package/node_modules/argparse/lib/sub.js +67 -0
  671. package/node_modules/argparse/lib/textwrap.js +440 -0
  672. package/node_modules/argparse/package.json +31 -0
  673. package/node_modules/crelt/LICENSE +19 -0
  674. package/node_modules/crelt/README.md +23 -0
  675. package/node_modules/crelt/dist/index.cjs +31 -0
  676. package/node_modules/crelt/dist/index.d.cts +4 -0
  677. package/node_modules/crelt/index.d.ts +4 -0
  678. package/node_modules/crelt/index.js +28 -0
  679. package/node_modules/crelt/package.json +35 -0
  680. package/node_modules/crelt/rollup.config.js +13 -0
  681. package/node_modules/entities/LICENSE +11 -0
  682. package/node_modules/entities/lib/decode.d.ts +211 -0
  683. package/node_modules/entities/lib/decode.d.ts.map +1 -0
  684. package/node_modules/entities/lib/decode.js +536 -0
  685. package/node_modules/entities/lib/decode.js.map +1 -0
  686. package/node_modules/entities/lib/decode_codepoint.d.ts +19 -0
  687. package/node_modules/entities/lib/decode_codepoint.d.ts.map +1 -0
  688. package/node_modules/entities/lib/decode_codepoint.js +76 -0
  689. package/node_modules/entities/lib/decode_codepoint.js.map +1 -0
  690. package/node_modules/entities/lib/encode.d.ts +22 -0
  691. package/node_modules/entities/lib/encode.d.ts.map +1 -0
  692. package/node_modules/entities/lib/encode.js +77 -0
  693. package/node_modules/entities/lib/encode.js.map +1 -0
  694. package/node_modules/entities/lib/escape.d.ts +43 -0
  695. package/node_modules/entities/lib/escape.d.ts.map +1 -0
  696. package/node_modules/entities/lib/escape.js +122 -0
  697. package/node_modules/entities/lib/escape.js.map +1 -0
  698. package/node_modules/entities/lib/esm/decode.d.ts +211 -0
  699. package/node_modules/entities/lib/esm/decode.d.ts.map +1 -0
  700. package/node_modules/entities/lib/esm/decode.js +496 -0
  701. package/node_modules/entities/lib/esm/decode.js.map +1 -0
  702. package/node_modules/entities/lib/esm/decode_codepoint.d.ts +19 -0
  703. package/node_modules/entities/lib/esm/decode_codepoint.d.ts.map +1 -0
  704. package/node_modules/entities/lib/esm/decode_codepoint.js +71 -0
  705. package/node_modules/entities/lib/esm/decode_codepoint.js.map +1 -0
  706. package/node_modules/entities/lib/esm/encode.d.ts +22 -0
  707. package/node_modules/entities/lib/esm/encode.d.ts.map +1 -0
  708. package/node_modules/entities/lib/esm/encode.js +69 -0
  709. package/node_modules/entities/lib/esm/encode.js.map +1 -0
  710. package/node_modules/entities/lib/esm/escape.d.ts +43 -0
  711. package/node_modules/entities/lib/esm/escape.d.ts.map +1 -0
  712. package/node_modules/entities/lib/esm/escape.js +116 -0
  713. package/node_modules/entities/lib/esm/escape.js.map +1 -0
  714. package/node_modules/entities/lib/esm/generated/decode-data-html.d.ts +3 -0
  715. package/node_modules/entities/lib/esm/generated/decode-data-html.d.ts.map +1 -0
  716. package/node_modules/entities/lib/esm/generated/decode-data-html.js +7 -0
  717. package/node_modules/entities/lib/esm/generated/decode-data-html.js.map +1 -0
  718. package/node_modules/entities/lib/esm/generated/decode-data-xml.d.ts +3 -0
  719. package/node_modules/entities/lib/esm/generated/decode-data-xml.d.ts.map +1 -0
  720. package/node_modules/entities/lib/esm/generated/decode-data-xml.js +7 -0
  721. package/node_modules/entities/lib/esm/generated/decode-data-xml.js.map +1 -0
  722. package/node_modules/entities/lib/esm/generated/encode-html.d.ts +8 -0
  723. package/node_modules/entities/lib/esm/generated/encode-html.d.ts.map +1 -0
  724. package/node_modules/entities/lib/esm/generated/encode-html.js +10 -0
  725. package/node_modules/entities/lib/esm/generated/encode-html.js.map +1 -0
  726. package/node_modules/entities/lib/esm/index.d.ts +96 -0
  727. package/node_modules/entities/lib/esm/index.d.ts.map +1 -0
  728. package/node_modules/entities/lib/esm/index.js +99 -0
  729. package/node_modules/entities/lib/esm/index.js.map +1 -0
  730. package/node_modules/entities/lib/esm/package.json +1 -0
  731. package/node_modules/entities/lib/generated/decode-data-html.d.ts +3 -0
  732. package/node_modules/entities/lib/generated/decode-data-html.d.ts.map +1 -0
  733. package/node_modules/entities/lib/generated/decode-data-html.js +9 -0
  734. package/node_modules/entities/lib/generated/decode-data-html.js.map +1 -0
  735. package/node_modules/entities/lib/generated/decode-data-xml.d.ts +3 -0
  736. package/node_modules/entities/lib/generated/decode-data-xml.d.ts.map +1 -0
  737. package/node_modules/entities/lib/generated/decode-data-xml.js +9 -0
  738. package/node_modules/entities/lib/generated/decode-data-xml.js.map +1 -0
  739. package/node_modules/entities/lib/generated/encode-html.d.ts +8 -0
  740. package/node_modules/entities/lib/generated/encode-html.d.ts.map +1 -0
  741. package/node_modules/entities/lib/generated/encode-html.js +12 -0
  742. package/node_modules/entities/lib/generated/encode-html.js.map +1 -0
  743. package/node_modules/entities/lib/index.d.ts +96 -0
  744. package/node_modules/entities/lib/index.d.ts.map +1 -0
  745. package/node_modules/entities/lib/index.js +126 -0
  746. package/node_modules/entities/lib/index.js.map +1 -0
  747. package/node_modules/entities/package.json +90 -0
  748. package/node_modules/entities/readme.md +122 -0
  749. package/node_modules/escape-string-regexp/index.d.ts +18 -0
  750. package/node_modules/escape-string-regexp/index.js +13 -0
  751. package/node_modules/escape-string-regexp/license +9 -0
  752. package/node_modules/escape-string-regexp/package.json +38 -0
  753. package/node_modules/escape-string-regexp/readme.md +34 -0
  754. package/node_modules/fast-equals/LICENSE +21 -0
  755. package/node_modules/fast-equals/README.md +477 -0
  756. package/node_modules/fast-equals/dist/cjs/comparator.d.cts +60 -0
  757. package/node_modules/fast-equals/dist/cjs/equals.d.cts +62 -0
  758. package/node_modules/fast-equals/dist/cjs/index.cjs +653 -0
  759. package/node_modules/fast-equals/dist/cjs/index.cjs.map +1 -0
  760. package/node_modules/fast-equals/dist/cjs/index.d.cts +66 -0
  761. package/node_modules/fast-equals/dist/cjs/internalTypes.d.cts +178 -0
  762. package/node_modules/fast-equals/dist/cjs/utils.d.cts +33 -0
  763. package/node_modules/fast-equals/dist/es/comparator.d.mts +60 -0
  764. package/node_modules/fast-equals/dist/es/equals.d.mts +62 -0
  765. package/node_modules/fast-equals/dist/es/index.d.mts +66 -0
  766. package/node_modules/fast-equals/dist/es/index.mjs +642 -0
  767. package/node_modules/fast-equals/dist/es/index.mjs.map +1 -0
  768. package/node_modules/fast-equals/dist/es/internalTypes.d.mts +178 -0
  769. package/node_modules/fast-equals/dist/es/utils.d.mts +33 -0
  770. package/node_modules/fast-equals/dist/umd/comparator.d.ts +26 -0
  771. package/node_modules/fast-equals/dist/umd/equals.d.ts +62 -0
  772. package/node_modules/fast-equals/dist/umd/index.d.ts +47 -0
  773. package/node_modules/fast-equals/dist/umd/index.js +659 -0
  774. package/node_modules/fast-equals/dist/umd/index.js.map +1 -0
  775. package/node_modules/fast-equals/dist/umd/internalTypes.d.ts +159 -0
  776. package/node_modules/fast-equals/dist/umd/utils.d.ts +28 -0
  777. package/node_modules/fast-equals/index.d.ts +260 -0
  778. package/node_modules/fast-equals/package.json +113 -0
  779. package/node_modules/linkify-it/LICENSE +22 -0
  780. package/node_modules/linkify-it/README.md +196 -0
  781. package/node_modules/linkify-it/build/index.cjs.js +832 -0
  782. package/node_modules/linkify-it/index.mjs +642 -0
  783. package/node_modules/linkify-it/lib/re.mjs +189 -0
  784. package/node_modules/linkify-it/package.json +58 -0
  785. package/node_modules/markdown-it/LICENSE +22 -0
  786. package/node_modules/markdown-it/README.md +324 -0
  787. package/node_modules/markdown-it/bin/markdown-it.mjs +107 -0
  788. package/node_modules/markdown-it/dist/index.cjs.js +5547 -0
  789. package/node_modules/markdown-it/dist/markdown-it.js +6969 -0
  790. package/node_modules/markdown-it/dist/markdown-it.min.js +2 -0
  791. package/node_modules/markdown-it/index.mjs +1 -0
  792. package/node_modules/markdown-it/lib/common/html_blocks.mjs +67 -0
  793. package/node_modules/markdown-it/lib/common/html_re.mjs +25 -0
  794. package/node_modules/markdown-it/lib/common/utils.mjs +304 -0
  795. package/node_modules/markdown-it/lib/helpers/index.mjs +11 -0
  796. package/node_modules/markdown-it/lib/helpers/parse_link_destination.mjs +77 -0
  797. package/node_modules/markdown-it/lib/helpers/parse_link_label.mjs +49 -0
  798. package/node_modules/markdown-it/lib/helpers/parse_link_title.mjs +66 -0
  799. package/node_modules/markdown-it/lib/index.mjs +565 -0
  800. package/node_modules/markdown-it/lib/parser_block.mjs +134 -0
  801. package/node_modules/markdown-it/lib/parser_core.mjs +62 -0
  802. package/node_modules/markdown-it/lib/parser_inline.mjs +197 -0
  803. package/node_modules/markdown-it/lib/presets/commonmark.mjs +88 -0
  804. package/node_modules/markdown-it/lib/presets/default.mjs +47 -0
  805. package/node_modules/markdown-it/lib/presets/zero.mjs +70 -0
  806. package/node_modules/markdown-it/lib/renderer.mjs +322 -0
  807. package/node_modules/markdown-it/lib/ruler.mjs +340 -0
  808. package/node_modules/markdown-it/lib/rules_block/blockquote.mjs +209 -0
  809. package/node_modules/markdown-it/lib/rules_block/code.mjs +30 -0
  810. package/node_modules/markdown-it/lib/rules_block/fence.mjs +94 -0
  811. package/node_modules/markdown-it/lib/rules_block/heading.mjs +51 -0
  812. package/node_modules/markdown-it/lib/rules_block/hr.mjs +40 -0
  813. package/node_modules/markdown-it/lib/rules_block/html_block.mjs +69 -0
  814. package/node_modules/markdown-it/lib/rules_block/lheading.mjs +82 -0
  815. package/node_modules/markdown-it/lib/rules_block/list.mjs +331 -0
  816. package/node_modules/markdown-it/lib/rules_block/paragraph.mjs +46 -0
  817. package/node_modules/markdown-it/lib/rules_block/reference.mjs +212 -0
  818. package/node_modules/markdown-it/lib/rules_block/state_block.mjs +220 -0
  819. package/node_modules/markdown-it/lib/rules_block/table.mjs +228 -0
  820. package/node_modules/markdown-it/lib/rules_core/block.mjs +13 -0
  821. package/node_modules/markdown-it/lib/rules_core/inline.mjs +11 -0
  822. package/node_modules/markdown-it/lib/rules_core/linkify.mjs +134 -0
  823. package/node_modules/markdown-it/lib/rules_core/normalize.mjs +17 -0
  824. package/node_modules/markdown-it/lib/rules_core/replacements.mjs +101 -0
  825. package/node_modules/markdown-it/lib/rules_core/smartquotes.mjs +193 -0
  826. package/node_modules/markdown-it/lib/rules_core/state_core.mjs +17 -0
  827. package/node_modules/markdown-it/lib/rules_core/text_join.mjs +43 -0
  828. package/node_modules/markdown-it/lib/rules_inline/autolink.mjs +72 -0
  829. package/node_modules/markdown-it/lib/rules_inline/backticks.mjs +60 -0
  830. package/node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs +124 -0
  831. package/node_modules/markdown-it/lib/rules_inline/emphasis.mjs +123 -0
  832. package/node_modules/markdown-it/lib/rules_inline/entity.mjs +51 -0
  833. package/node_modules/markdown-it/lib/rules_inline/escape.mjs +69 -0
  834. package/node_modules/markdown-it/lib/rules_inline/fragments_join.mjs +38 -0
  835. package/node_modules/markdown-it/lib/rules_inline/html_inline.mjs +50 -0
  836. package/node_modules/markdown-it/lib/rules_inline/image.mjs +138 -0
  837. package/node_modules/markdown-it/lib/rules_inline/link.mjs +139 -0
  838. package/node_modules/markdown-it/lib/rules_inline/linkify.mjs +63 -0
  839. package/node_modules/markdown-it/lib/rules_inline/newline.mjs +42 -0
  840. package/node_modules/markdown-it/lib/rules_inline/state_inline.mjs +123 -0
  841. package/node_modules/markdown-it/lib/rules_inline/strikethrough.mjs +127 -0
  842. package/node_modules/markdown-it/lib/rules_inline/text.mjs +86 -0
  843. package/node_modules/markdown-it/lib/token.mjs +191 -0
  844. package/node_modules/markdown-it/package.json +92 -0
  845. package/node_modules/mdurl/LICENSE +45 -0
  846. package/node_modules/mdurl/README.md +102 -0
  847. package/node_modules/mdurl/build/index.cjs.js +534 -0
  848. package/node_modules/mdurl/index.mjs +11 -0
  849. package/node_modules/mdurl/lib/decode.mjs +112 -0
  850. package/node_modules/mdurl/lib/encode.mjs +89 -0
  851. package/node_modules/mdurl/lib/format.mjs +21 -0
  852. package/node_modules/mdurl/lib/parse.mjs +308 -0
  853. package/node_modules/mdurl/package.json +37 -0
  854. package/node_modules/orderedmap/LICENSE +19 -0
  855. package/node_modules/orderedmap/README.md +69 -0
  856. package/node_modules/orderedmap/dist/index.cjs +139 -0
  857. package/node_modules/orderedmap/dist/index.d.cts +33 -0
  858. package/node_modules/orderedmap/dist/index.d.ts +33 -0
  859. package/node_modules/orderedmap/dist/index.js +137 -0
  860. package/node_modules/orderedmap/package.json +39 -0
  861. package/node_modules/prosemirror-changeset/CHANGELOG.md +147 -0
  862. package/node_modules/prosemirror-changeset/LICENSE +19 -0
  863. package/node_modules/prosemirror-changeset/README.md +175 -0
  864. package/node_modules/prosemirror-changeset/dist/index.cjs +585 -0
  865. package/node_modules/prosemirror-changeset/dist/index.d.cts +186 -0
  866. package/node_modules/prosemirror-changeset/dist/index.d.ts +186 -0
  867. package/node_modules/prosemirror-changeset/dist/index.js +715 -0
  868. package/node_modules/prosemirror-changeset/package.json +40 -0
  869. package/node_modules/prosemirror-changeset/src/README.md +32 -0
  870. package/node_modules/prosemirror-changeset/src/change.ts +189 -0
  871. package/node_modules/prosemirror-changeset/src/changeset.ts +212 -0
  872. package/node_modules/prosemirror-changeset/src/diff.ts +151 -0
  873. package/node_modules/prosemirror-changeset/src/simplify.ts +132 -0
  874. package/node_modules/prosemirror-changeset/test/test-changed-range.ts +48 -0
  875. package/node_modules/prosemirror-changeset/test/test-changes.ts +211 -0
  876. package/node_modules/prosemirror-changeset/test/test-diff.ts +69 -0
  877. package/node_modules/prosemirror-changeset/test/test-merge.ts +56 -0
  878. package/node_modules/prosemirror-changeset/test/test-simplify.ts +71 -0
  879. package/node_modules/prosemirror-collab/.tern-project +8 -0
  880. package/node_modules/prosemirror-collab/CHANGELOG.md +77 -0
  881. package/node_modules/prosemirror-collab/CONTRIBUTING.md +104 -0
  882. package/node_modules/prosemirror-collab/LICENSE +19 -0
  883. package/node_modules/prosemirror-collab/README.md +28 -0
  884. package/node_modules/prosemirror-collab/dist/index.cjs +155 -0
  885. package/node_modules/prosemirror-collab/dist/index.d.cts +60 -0
  886. package/node_modules/prosemirror-collab/dist/index.d.ts +60 -0
  887. package/node_modules/prosemirror-collab/dist/index.js +156 -0
  888. package/node_modules/prosemirror-collab/package.json +40 -0
  889. package/node_modules/prosemirror-collab/src/README.md +11 -0
  890. package/node_modules/prosemirror-collab/src/collab.ts +184 -0
  891. package/node_modules/prosemirror-commands/.tern-project +8 -0
  892. package/node_modules/prosemirror-commands/CHANGELOG.md +322 -0
  893. package/node_modules/prosemirror-commands/CONTRIBUTING.md +104 -0
  894. package/node_modules/prosemirror-commands/LICENSE +19 -0
  895. package/node_modules/prosemirror-commands/README.md +28 -0
  896. package/node_modules/prosemirror-commands/dist/index.cjs +687 -0
  897. package/node_modules/prosemirror-commands/dist/index.d.cts +215 -0
  898. package/node_modules/prosemirror-commands/dist/index.d.ts +215 -0
  899. package/node_modules/prosemirror-commands/dist/index.js +850 -0
  900. package/node_modules/prosemirror-commands/package.json +39 -0
  901. package/node_modules/prosemirror-commands/src/README.md +40 -0
  902. package/node_modules/prosemirror-commands/src/commands.ts +783 -0
  903. package/node_modules/prosemirror-dropcursor/CHANGELOG.md +137 -0
  904. package/node_modules/prosemirror-dropcursor/CONTRIBUTING.md +100 -0
  905. package/node_modules/prosemirror-dropcursor/LICENSE +19 -0
  906. package/node_modules/prosemirror-dropcursor/README.md +50 -0
  907. package/node_modules/prosemirror-dropcursor/dist/index.cjs +185 -0
  908. package/node_modules/prosemirror-dropcursor/dist/index.d.cts +38 -0
  909. package/node_modules/prosemirror-dropcursor/dist/index.d.ts +38 -0
  910. package/node_modules/prosemirror-dropcursor/dist/index.js +146 -0
  911. package/node_modules/prosemirror-dropcursor/package.json +38 -0
  912. package/node_modules/prosemirror-dropcursor/src/dropcursor.ts +170 -0
  913. package/node_modules/prosemirror-gapcursor/CHANGELOG.md +122 -0
  914. package/node_modules/prosemirror-gapcursor/CONTRIBUTING.md +104 -0
  915. package/node_modules/prosemirror-gapcursor/LICENSE +19 -0
  916. package/node_modules/prosemirror-gapcursor/README.md +31 -0
  917. package/node_modules/prosemirror-gapcursor/dist/index.cjs +239 -0
  918. package/node_modules/prosemirror-gapcursor/dist/index.d.cts +31 -0
  919. package/node_modules/prosemirror-gapcursor/dist/index.d.ts +31 -0
  920. package/node_modules/prosemirror-gapcursor/dist/index.js +239 -0
  921. package/node_modules/prosemirror-gapcursor/package.json +43 -0
  922. package/node_modules/prosemirror-gapcursor/src/README.md +21 -0
  923. package/node_modules/prosemirror-gapcursor/src/gapcursor.ts +141 -0
  924. package/node_modules/prosemirror-gapcursor/src/index.ts +91 -0
  925. package/node_modules/prosemirror-gapcursor/style/gapcursor.css +25 -0
  926. package/node_modules/prosemirror-history/.tern-project +8 -0
  927. package/node_modules/prosemirror-history/CHANGELOG.md +170 -0
  928. package/node_modules/prosemirror-history/CONTRIBUTING.md +104 -0
  929. package/node_modules/prosemirror-history/LICENSE +19 -0
  930. package/node_modules/prosemirror-history/README.md +27 -0
  931. package/node_modules/prosemirror-history/dist/index.cjs +382 -0
  932. package/node_modules/prosemirror-history/dist/index.d.cts +64 -0
  933. package/node_modules/prosemirror-history/dist/index.d.ts +64 -0
  934. package/node_modules/prosemirror-history/dist/index.js +453 -0
  935. package/node_modules/prosemirror-history/package.json +40 -0
  936. package/node_modules/prosemirror-history/src/README.md +23 -0
  937. package/node_modules/prosemirror-history/src/history.ts +465 -0
  938. package/node_modules/prosemirror-inputrules/.tern-project +8 -0
  939. package/node_modules/prosemirror-inputrules/CHANGELOG.md +127 -0
  940. package/node_modules/prosemirror-inputrules/CONTRIBUTING.md +104 -0
  941. package/node_modules/prosemirror-inputrules/LICENSE +19 -0
  942. package/node_modules/prosemirror-inputrules/README.md +29 -0
  943. package/node_modules/prosemirror-inputrules/dist/index.cjs +194 -0
  944. package/node_modules/prosemirror-inputrules/dist/index.d.cts +131 -0
  945. package/node_modules/prosemirror-inputrules/dist/index.d.ts +131 -0
  946. package/node_modules/prosemirror-inputrules/dist/index.js +239 -0
  947. package/node_modules/prosemirror-inputrules/package.json +36 -0
  948. package/node_modules/prosemirror-inputrules/src/README.md +23 -0
  949. package/node_modules/prosemirror-inputrules/src/index.ts +4 -0
  950. package/node_modules/prosemirror-inputrules/src/inputrules.ts +167 -0
  951. package/node_modules/prosemirror-inputrules/src/rulebuilders.ts +59 -0
  952. package/node_modules/prosemirror-inputrules/src/rules.ts +17 -0
  953. package/node_modules/prosemirror-keymap/.tern-project +8 -0
  954. package/node_modules/prosemirror-keymap/CHANGELOG.md +104 -0
  955. package/node_modules/prosemirror-keymap/CONTRIBUTING.md +104 -0
  956. package/node_modules/prosemirror-keymap/LICENSE +19 -0
  957. package/node_modules/prosemirror-keymap/README.md +27 -0
  958. package/node_modules/prosemirror-keymap/dist/index.cjs +65 -0
  959. package/node_modules/prosemirror-keymap/dist/index.d.cts +47 -0
  960. package/node_modules/prosemirror-keymap/dist/index.d.ts +47 -0
  961. package/node_modules/prosemirror-keymap/dist/index.js +128 -0
  962. package/node_modules/prosemirror-keymap/package.json +38 -0
  963. package/node_modules/prosemirror-keymap/src/README.md +5 -0
  964. package/node_modules/prosemirror-keymap/src/keymap.ts +105 -0
  965. package/node_modules/prosemirror-markdown/.tern-project +8 -0
  966. package/node_modules/prosemirror-markdown/CHANGELOG.md +311 -0
  967. package/node_modules/prosemirror-markdown/CONTRIBUTING.md +100 -0
  968. package/node_modules/prosemirror-markdown/LICENSE +19 -0
  969. package/node_modules/prosemirror-markdown/README.md +276 -0
  970. package/node_modules/prosemirror-markdown/dist/index.cjs +966 -0
  971. package/node_modules/prosemirror-markdown/dist/index.d.cts +335 -0
  972. package/node_modules/prosemirror-markdown/dist/index.d.ts +335 -0
  973. package/node_modules/prosemirror-markdown/dist/index.js +878 -0
  974. package/node_modules/prosemirror-markdown/package.json +40 -0
  975. package/node_modules/prosemirror-markdown/src/README.md +42 -0
  976. package/node_modules/prosemirror-markdown/src/from_markdown.ts +272 -0
  977. package/node_modules/prosemirror-markdown/src/index.ts +5 -0
  978. package/node_modules/prosemirror-markdown/src/schema.ts +156 -0
  979. package/node_modules/prosemirror-markdown/src/to_markdown.ts +483 -0
  980. package/node_modules/prosemirror-menu/.tern-project +8 -0
  981. package/node_modules/prosemirror-menu/CHANGELOG.md +107 -0
  982. package/node_modules/prosemirror-menu/CONTRIBUTING.md +100 -0
  983. package/node_modules/prosemirror-menu/LICENSE +19 -0
  984. package/node_modules/prosemirror-menu/README.md +235 -0
  985. package/node_modules/prosemirror-menu/dist/index.cjs +798 -0
  986. package/node_modules/prosemirror-menu/dist/index.d.cts +281 -0
  987. package/node_modules/prosemirror-menu/dist/index.d.ts +281 -0
  988. package/node_modules/prosemirror-menu/dist/index.js +795 -0
  989. package/node_modules/prosemirror-menu/package.json +42 -0
  990. package/node_modules/prosemirror-menu/src/README.md +60 -0
  991. package/node_modules/prosemirror-menu/src/icons.ts +53 -0
  992. package/node_modules/prosemirror-menu/src/index.ts +4 -0
  993. package/node_modules/prosemirror-menu/src/menu.ts +628 -0
  994. package/node_modules/prosemirror-menu/src/menubar.ts +210 -0
  995. package/node_modules/prosemirror-menu/style/menu.css +169 -0
  996. package/node_modules/prosemirror-model/.tern-project +8 -0
  997. package/node_modules/prosemirror-model/CHANGELOG.md +730 -0
  998. package/node_modules/prosemirror-model/CONTRIBUTING.md +104 -0
  999. package/node_modules/prosemirror-model/LICENSE +19 -0
  1000. package/node_modules/prosemirror-model/README.md +29 -0
  1001. package/node_modules/prosemirror-model/dist/index.cjs +2898 -0
  1002. package/node_modules/prosemirror-model/dist/index.d.cts +1679 -0
  1003. package/node_modules/prosemirror-model/dist/index.d.ts +1679 -0
  1004. package/node_modules/prosemirror-model/dist/index.js +3464 -0
  1005. package/node_modules/prosemirror-model/package.json +38 -0
  1006. package/node_modules/prosemirror-model/src/README.md +62 -0
  1007. package/node_modules/prosemirror-model/src/comparedeep.ts +15 -0
  1008. package/node_modules/prosemirror-model/src/content.ts +413 -0
  1009. package/node_modules/prosemirror-model/src/diff.ts +52 -0
  1010. package/node_modules/prosemirror-model/src/dom.ts +1 -0
  1011. package/node_modules/prosemirror-model/src/fragment.ts +268 -0
  1012. package/node_modules/prosemirror-model/src/from_dom.ts +848 -0
  1013. package/node_modules/prosemirror-model/src/index.ts +11 -0
  1014. package/node_modules/prosemirror-model/src/mark.ts +111 -0
  1015. package/node_modules/prosemirror-model/src/node.ts +402 -0
  1016. package/node_modules/prosemirror-model/src/replace.ts +225 -0
  1017. package/node_modules/prosemirror-model/src/resolvedpos.ts +289 -0
  1018. package/node_modules/prosemirror-model/src/schema.ts +705 -0
  1019. package/node_modules/prosemirror-model/src/to_dom.ts +238 -0
  1020. package/node_modules/prosemirror-schema-basic/.tern-project +8 -0
  1021. package/node_modules/prosemirror-schema-basic/CHANGELOG.md +81 -0
  1022. package/node_modules/prosemirror-schema-basic/CONTRIBUTING.md +100 -0
  1023. package/node_modules/prosemirror-schema-basic/LICENSE +19 -0
  1024. package/node_modules/prosemirror-schema-basic/README.md +28 -0
  1025. package/node_modules/prosemirror-schema-basic/dist/index.cjs +246 -0
  1026. package/node_modules/prosemirror-schema-basic/dist/index.d.cts +87 -0
  1027. package/node_modules/prosemirror-schema-basic/dist/index.d.ts +87 -0
  1028. package/node_modules/prosemirror-schema-basic/dist/index.js +183 -0
  1029. package/node_modules/prosemirror-schema-basic/package.json +37 -0
  1030. package/node_modules/prosemirror-schema-basic/src/README.md +8 -0
  1031. package/node_modules/prosemirror-schema-basic/src/schema-basic.ts +166 -0
  1032. package/node_modules/prosemirror-schema-list/.tern-project +8 -0
  1033. package/node_modules/prosemirror-schema-list/CHANGELOG.md +140 -0
  1034. package/node_modules/prosemirror-schema-list/CONTRIBUTING.md +100 -0
  1035. package/node_modules/prosemirror-schema-list/LICENSE +19 -0
  1036. package/node_modules/prosemirror-schema-list/README.md +28 -0
  1037. package/node_modules/prosemirror-schema-list/dist/index.cjs +253 -0
  1038. package/node_modules/prosemirror-schema-list/dist/index.d.cts +71 -0
  1039. package/node_modules/prosemirror-schema-list/dist/index.d.ts +71 -0
  1040. package/node_modules/prosemirror-schema-list/dist/index.js +289 -0
  1041. package/node_modules/prosemirror-schema-list/package.json +40 -0
  1042. package/node_modules/prosemirror-schema-list/src/README.md +29 -0
  1043. package/node_modules/prosemirror-schema-list/src/schema-list.ts +267 -0
  1044. package/node_modules/prosemirror-state/.tern-project +8 -0
  1045. package/node_modules/prosemirror-state/CHANGELOG.md +296 -0
  1046. package/node_modules/prosemirror-state/CONTRIBUTING.md +104 -0
  1047. package/node_modules/prosemirror-state/LICENSE +19 -0
  1048. package/node_modules/prosemirror-state/README.md +28 -0
  1049. package/node_modules/prosemirror-state/dist/index.cjs +884 -0
  1050. package/node_modules/prosemirror-state/dist/index.d.cts +709 -0
  1051. package/node_modules/prosemirror-state/dist/index.d.ts +709 -0
  1052. package/node_modules/prosemirror-state/dist/index.js +1002 -0
  1053. package/node_modules/prosemirror-state/package.json +39 -0
  1054. package/node_modules/prosemirror-state/src/README.md +42 -0
  1055. package/node_modules/prosemirror-state/src/index.ts +7 -0
  1056. package/node_modules/prosemirror-state/src/plugin.ts +142 -0
  1057. package/node_modules/prosemirror-state/src/selection.ts +462 -0
  1058. package/node_modules/prosemirror-state/src/state.ts +266 -0
  1059. package/node_modules/prosemirror-state/src/transaction.ts +215 -0
  1060. package/node_modules/prosemirror-tables/LICENSE +19 -0
  1061. package/node_modules/prosemirror-tables/README.md +254 -0
  1062. package/node_modules/prosemirror-tables/dist/index.cjs +2683 -0
  1063. package/node_modules/prosemirror-tables/dist/index.d.cts +751 -0
  1064. package/node_modules/prosemirror-tables/dist/index.d.cts.map +1 -0
  1065. package/node_modules/prosemirror-tables/dist/index.d.ts +751 -0
  1066. package/node_modules/prosemirror-tables/dist/index.d.ts.map +1 -0
  1067. package/node_modules/prosemirror-tables/dist/index.js +2626 -0
  1068. package/node_modules/prosemirror-tables/dist/index.js.map +1 -0
  1069. package/node_modules/prosemirror-tables/package.json +80 -0
  1070. package/node_modules/prosemirror-tables/style/tables.css +48 -0
  1071. package/node_modules/prosemirror-trailing-node/LICENSE +21 -0
  1072. package/node_modules/prosemirror-trailing-node/dist/_tsup-dts-rollup.d.cts +41 -0
  1073. package/node_modules/prosemirror-trailing-node/dist/_tsup-dts-rollup.d.ts +41 -0
  1074. package/node_modules/prosemirror-trailing-node/dist/prosemirror-trailing-node.cjs +70 -0
  1075. package/node_modules/prosemirror-trailing-node/dist/prosemirror-trailing-node.d.cts +2 -0
  1076. package/node_modules/prosemirror-trailing-node/dist/prosemirror-trailing-node.d.ts +2 -0
  1077. package/node_modules/prosemirror-trailing-node/dist/prosemirror-trailing-node.js +43 -0
  1078. package/node_modules/prosemirror-trailing-node/dist-types/index.d.ts +2 -0
  1079. package/node_modules/prosemirror-trailing-node/dist-types/trailing-node-plugin.d.ts +33 -0
  1080. package/node_modules/prosemirror-trailing-node/dist-types/tsconfig.tsbuildinfo +1 -0
  1081. package/node_modules/prosemirror-trailing-node/package.json +57 -0
  1082. package/node_modules/prosemirror-trailing-node/readme.md +55 -0
  1083. package/node_modules/prosemirror-transform/.tern-project +8 -0
  1084. package/node_modules/prosemirror-transform/CHANGELOG.md +502 -0
  1085. package/node_modules/prosemirror-transform/CONTRIBUTING.md +104 -0
  1086. package/node_modules/prosemirror-transform/LICENSE +19 -0
  1087. package/node_modules/prosemirror-transform/README.md +29 -0
  1088. package/node_modules/prosemirror-transform/dist/index.cjs +1888 -0
  1089. package/node_modules/prosemirror-transform/dist/index.d.cts +847 -0
  1090. package/node_modules/prosemirror-transform/dist/index.d.ts +847 -0
  1091. package/node_modules/prosemirror-transform/dist/index.js +2181 -0
  1092. package/node_modules/prosemirror-transform/package.json +37 -0
  1093. package/node_modules/prosemirror-transform/src/README.md +59 -0
  1094. package/node_modules/prosemirror-transform/src/attr_step.ts +98 -0
  1095. package/node_modules/prosemirror-transform/src/index.ts +11 -0
  1096. package/node_modules/prosemirror-transform/src/map.ts +284 -0
  1097. package/node_modules/prosemirror-transform/src/mark.ts +106 -0
  1098. package/node_modules/prosemirror-transform/src/mark_step.ts +224 -0
  1099. package/node_modules/prosemirror-transform/src/replace.ts +460 -0
  1100. package/node_modules/prosemirror-transform/src/replace_step.ts +178 -0
  1101. package/node_modules/prosemirror-transform/src/step.ts +97 -0
  1102. package/node_modules/prosemirror-transform/src/structure.ts +349 -0
  1103. package/node_modules/prosemirror-transform/src/transform.ts +271 -0
  1104. package/node_modules/prosemirror-view/.tern-project +8 -0
  1105. package/node_modules/prosemirror-view/CHANGELOG.md +2447 -0
  1106. package/node_modules/prosemirror-view/CONTRIBUTING.md +104 -0
  1107. package/node_modules/prosemirror-view/LICENSE +19 -0
  1108. package/node_modules/prosemirror-view/README.md +28 -0
  1109. package/node_modules/prosemirror-view/dist/index.cjs +5381 -0
  1110. package/node_modules/prosemirror-view/dist/index.d.cts +904 -0
  1111. package/node_modules/prosemirror-view/dist/index.d.ts +904 -0
  1112. package/node_modules/prosemirror-view/dist/index.js +5900 -0
  1113. package/node_modules/prosemirror-view/package.json +43 -0
  1114. package/node_modules/prosemirror-view/src/README.md +38 -0
  1115. package/node_modules/prosemirror-view/src/browser.ts +24 -0
  1116. package/node_modules/prosemirror-view/src/capturekeys.ts +345 -0
  1117. package/node_modules/prosemirror-view/src/clipboard.ts +263 -0
  1118. package/node_modules/prosemirror-view/src/decoration.ts +793 -0
  1119. package/node_modules/prosemirror-view/src/dom.ts +159 -0
  1120. package/node_modules/prosemirror-view/src/domchange.ts +383 -0
  1121. package/node_modules/prosemirror-view/src/domcoords.ts +515 -0
  1122. package/node_modules/prosemirror-view/src/domobserver.ts +392 -0
  1123. package/node_modules/prosemirror-view/src/index.ts +825 -0
  1124. package/node_modules/prosemirror-view/src/input.ts +830 -0
  1125. package/node_modules/prosemirror-view/src/selection.ts +216 -0
  1126. package/node_modules/prosemirror-view/src/viewdesc.ts +1590 -0
  1127. package/node_modules/prosemirror-view/style/prosemirror.css +54 -0
  1128. package/node_modules/punycode.js/LICENSE-MIT.txt +20 -0
  1129. package/node_modules/punycode.js/README.md +148 -0
  1130. package/node_modules/punycode.js/package.json +58 -0
  1131. package/node_modules/punycode.js/punycode.es6.js +444 -0
  1132. package/node_modules/punycode.js/punycode.js +443 -0
  1133. package/node_modules/rope-sequence/LICENSE +19 -0
  1134. package/node_modules/rope-sequence/README.md +63 -0
  1135. package/node_modules/rope-sequence/dist/index.cjs +209 -0
  1136. package/node_modules/rope-sequence/dist/index.d.cts +11 -0
  1137. package/node_modules/rope-sequence/dist/index.d.ts +11 -0
  1138. package/node_modules/rope-sequence/dist/index.js +207 -0
  1139. package/node_modules/rope-sequence/index.js +190 -0
  1140. package/node_modules/rope-sequence/package.json +34 -0
  1141. package/node_modules/rope-sequence/test.js +78 -0
  1142. package/node_modules/uc.micro/LICENSE.txt +20 -0
  1143. package/node_modules/uc.micro/README.md +14 -0
  1144. package/node_modules/uc.micro/build/index.cjs.js +20 -0
  1145. package/node_modules/uc.micro/categories/Cc/regex.mjs +1 -0
  1146. package/node_modules/uc.micro/categories/Cf/regex.mjs +1 -0
  1147. package/node_modules/uc.micro/categories/P/regex.mjs +1 -0
  1148. package/node_modules/uc.micro/categories/S/regex.mjs +1 -0
  1149. package/node_modules/uc.micro/categories/Z/regex.mjs +1 -0
  1150. package/node_modules/uc.micro/index.mjs +8 -0
  1151. package/node_modules/uc.micro/package.json +37 -0
  1152. package/node_modules/uc.micro/properties/Any/regex.mjs +1 -0
  1153. package/node_modules/use-sync-external-store/LICENSE +21 -0
  1154. package/node_modules/use-sync-external-store/README.md +5 -0
  1155. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +97 -0
  1156. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js +85 -0
  1157. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +95 -0
  1158. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.development.js +88 -0
  1159. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.production.js +59 -0
  1160. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +66 -0
  1161. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js +96 -0
  1162. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js +84 -0
  1163. package/node_modules/use-sync-external-store/cjs/use-sync-external-store.development.js +27 -0
  1164. package/node_modules/use-sync-external-store/cjs/use-sync-external-store.production.js +13 -0
  1165. package/node_modules/use-sync-external-store/index.js +7 -0
  1166. package/node_modules/use-sync-external-store/package.json +43 -0
  1167. package/node_modules/use-sync-external-store/shim/index.js +7 -0
  1168. package/node_modules/use-sync-external-store/shim/index.native.js +7 -0
  1169. package/node_modules/use-sync-external-store/shim/with-selector.js +7 -0
  1170. package/node_modules/use-sync-external-store/with-selector.js +7 -0
  1171. package/node_modules/w3c-keyname/.tern-port +1 -0
  1172. package/node_modules/w3c-keyname/LICENSE +19 -0
  1173. package/node_modules/w3c-keyname/README.md +18 -0
  1174. package/node_modules/w3c-keyname/index.cjs +127 -0
  1175. package/node_modules/w3c-keyname/index.d.cts +5 -0
  1176. package/node_modules/w3c-keyname/index.d.ts +5 -0
  1177. package/node_modules/w3c-keyname/index.js +119 -0
  1178. package/node_modules/w3c-keyname/package.json +37 -0
  1179. package/package.json +120 -3
  1180. package/public-api.md +24 -3
  1181. package/dist/chat/tool-renderers/KbSearchRenderer.d.ts +0 -2
  1182. package/dist/chat/tool-renderers/kb-search-result.d.ts +0 -19
  1183. package/dist/chunk-5J54S5BK.js.map +0 -1
  1184. package/dist/chunk-FQQJP2GJ.js.map +0 -1
  1185. package/dist/chunk-WCMGQJLE.js.map +0 -1
  1186. package/dist/lib/agent-computer-command.d.ts +0 -34
  1187. package/dist/rich-input/extensions/kb-mention.d.ts +0 -18
  1188. package/dist/rich-input/extensions/workflow-mention.d.ts +0 -10
  1189. package/dist/rich-input/lib/kb-suggestions.d.ts +0 -37
@@ -1894,11 +1894,10 @@ var CirclePause = createLucideIcon("CirclePause", [
1894
1894
  ["line", { x1: "14", x2: "14", y1: "15", y2: "9", key: "h65svq" }]
1895
1895
  ]);
1896
1896
 
1897
- // ../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/circle-x.js
1898
- var CircleX = createLucideIcon("CircleX", [
1897
+ // ../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/circle-slash.js
1898
+ var CircleSlash = createLucideIcon("CircleSlash", [
1899
1899
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1900
- ["path", { d: "m15 9-6 6", key: "1uzhvr" }],
1901
- ["path", { d: "m9 9 6 6", key: "z0biqf" }]
1900
+ ["line", { x1: "9", x2: "15", y1: "15", y2: "9", key: "1dfufj" }]
1902
1901
  ]);
1903
1902
 
1904
1903
  // ../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/circle.js
@@ -2303,14 +2302,6 @@ var RefreshCcw = createLucideIcon("RefreshCcw", [
2303
2302
  ["path", { d: "M16 16h5v5", key: "ccwih5" }]
2304
2303
  ]);
2305
2304
 
2306
- // ../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/refresh-cw.js
2307
- var RefreshCw = createLucideIcon("RefreshCw", [
2308
- ["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
2309
- ["path", { d: "M21 3v5h-5", key: "1q7to0" }],
2310
- ["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }],
2311
- ["path", { d: "M8 16H3v5", key: "1cv678" }]
2312
- ]);
2313
-
2314
2305
  // ../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/rocket.js
2315
2306
  var Rocket = createLucideIcon("Rocket", [
2316
2307
  [
@@ -2429,13 +2420,6 @@ var TriangleAlert = createLucideIcon("TriangleAlert", [
2429
2420
  ["path", { d: "M12 17h.01", key: "p32p05" }]
2430
2421
  ]);
2431
2422
 
2432
- // ../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/workflow.js
2433
- var Workflow = createLucideIcon("Workflow", [
2434
- ["rect", { width: "8", height: "8", x: "3", y: "3", rx: "2", key: "by2w9f" }],
2435
- ["path", { d: "M7 11v4a2 2 0 0 0 2 2h4", key: "xkn7yn" }],
2436
- ["rect", { width: "8", height: "8", x: "13", y: "13", rx: "2", key: "1cgmvn" }]
2437
- ]);
2438
-
2439
2423
  // ../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/wrench.js
2440
2424
  var Wrench = createLucideIcon("Wrench", [
2441
2425
  [
@@ -2453,8 +2437,19 @@ var X = createLucideIcon("X", [
2453
2437
  ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
2454
2438
  ]);
2455
2439
 
2440
+ // ../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/zap.js
2441
+ var Zap = createLucideIcon("Zap", [
2442
+ [
2443
+ "path",
2444
+ {
2445
+ d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",
2446
+ key: "1xq2db"
2447
+ }
2448
+ ]
2449
+ ]);
2450
+
2456
2451
  // src/components/PlanUpdateBlock.tsx
2457
- import { useEffect as useEffect2, useRef as useRef2, useState as useState2 } from "react";
2452
+ import { useEffect, useRef, useState } from "react";
2458
2453
 
2459
2454
  // ../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
2460
2455
  function r(e2) {
@@ -5674,382 +5669,6 @@ async function copyToClipboard(text) {
5674
5669
  }
5675
5670
  }
5676
5671
 
5677
- // src/chat/lib/code-language.ts
5678
- var FILE_EXTENSION_ALIASES = {
5679
- ".bash": "bash",
5680
- ".css": "css",
5681
- ".go": "go",
5682
- ".htm": "html",
5683
- ".html": "html",
5684
- ".js": "javascript",
5685
- ".json": "json",
5686
- ".jsonc": "json",
5687
- ".jsx": "jsx",
5688
- ".md": "markdown",
5689
- ".mdx": "markdown",
5690
- ".py": "python",
5691
- ".rs": "rust",
5692
- ".scss": "css",
5693
- ".sh": "bash",
5694
- ".ts": "typescript",
5695
- ".tsx": "tsx",
5696
- ".yaml": "yaml",
5697
- ".yml": "yaml",
5698
- ".zsh": "bash"
5699
- };
5700
- function getCodeLanguageFromFilename(filePath) {
5701
- if (!filePath) return null;
5702
- const dotIndex = filePath.lastIndexOf(".");
5703
- if (dotIndex < 0) return null;
5704
- return FILE_EXTENSION_ALIASES[filePath.slice(dotIndex).toLowerCase()] ?? null;
5705
- }
5706
-
5707
- // src/chat/runtime/environment.tsx
5708
- import { createContext as createContext3, useContext as useContext3, useMemo as useMemo2 } from "react";
5709
-
5710
- // src/chat/runtime/session-source.tsx
5711
- import { createInitialSessionState } from "@blade-hq/agent-client/internal";
5712
- import {
5713
- createContext as createContext2,
5714
- useContext as useContext2,
5715
- useEffect,
5716
- useLayoutEffect,
5717
- useMemo,
5718
- useRef,
5719
- useState,
5720
- useSyncExternalStore
5721
- } from "react";
5722
- import { jsx as jsx2 } from "react/jsx-runtime";
5723
- var EMPTY_SOURCE = {
5724
- subscribe: () => () => {
5725
- },
5726
- getSession: () => void 0,
5727
- isHistoryLoading: () => false,
5728
- planRevealRevision: () => 0
5729
- };
5730
- var SessionSourceContext = createContext2(EMPTY_SOURCE);
5731
- function SessionSourceProvider({ source, children }) {
5732
- return /* @__PURE__ */ jsx2(SessionSourceContext.Provider, { value: source, children });
5733
- }
5734
- function useSessionSource() {
5735
- return useContext2(SessionSourceContext);
5736
- }
5737
- var SingleSessionSource = class {
5738
- session = null;
5739
- loading = false;
5740
- listeners = /* @__PURE__ */ new Set();
5741
- revisions = /* @__PURE__ */ new Map();
5742
- subscribe = (listener) => {
5743
- this.listeners.add(listener);
5744
- return () => {
5745
- this.listeners.delete(listener);
5746
- };
5747
- };
5748
- getSession = (sessionId) => {
5749
- const current = this.session;
5750
- return current && (!sessionId || current.sessionId === sessionId) ? current : void 0;
5751
- };
5752
- isHistoryLoading = (sessionId) => {
5753
- if (!this.session) return this.loading;
5754
- return (!sessionId || this.session.sessionId === sessionId) && this.loading;
5755
- };
5756
- planRevealRevision = (sessionId) => sessionId ? this.revisions.get(sessionId) ?? 0 : 0;
5757
- update(session, loading) {
5758
- if (this.session === session && this.loading === loading) return;
5759
- this.session = session;
5760
- this.loading = loading;
5761
- this.notify();
5762
- }
5763
- /** 只认实时成功的根回路 update_plan:历史加载与断线补数不算「新揭示」。 */
5764
- watchPlan(session) {
5765
- return session.on("toolResult", ({ toolCall, turn, source }) => {
5766
- if (source === "reconnect_replay" || (turn.loop_id || "root") !== "root" || toolCall.status !== "done" || !isPlanUpdateTool(toolCall) || !parsePlanUpdate(toolCall.arguments)) {
5767
- return;
5768
- }
5769
- this.revisions.set(session.sessionId, (this.revisions.get(session.sessionId) ?? 0) + 1);
5770
- this.notify();
5771
- });
5772
- }
5773
- notify() {
5774
- for (const listener of [...this.listeners]) listener();
5775
- }
5776
- };
5777
- function useSingleSessionSource(session, loading) {
5778
- const [source] = useState(() => new SingleSessionSource());
5779
- useLayoutEffect(() => {
5780
- source.update(session, loading);
5781
- }, [source, session, loading]);
5782
- useEffect(() => session ? source.watchPlan(session) : void 0, [source, session]);
5783
- return source;
5784
- }
5785
- var EMPTY_STATE = createInitialSessionState("");
5786
- var noopSubscribe = () => () => {
5787
- };
5788
- function useSessionHandle(sessionId) {
5789
- const source = useSessionSource();
5790
- return useSyncExternalStore(
5791
- source.subscribe,
5792
- () => source.getSession(sessionId) ?? null,
5793
- () => source.getSession(sessionId) ?? null
5794
- );
5795
- }
5796
- function useSessionState(sessionId, selector) {
5797
- const session = useSessionHandle(sessionId);
5798
- const selectorRef = useRef(selector);
5799
- selectorRef.current = selector;
5800
- const store = useMemo(() => {
5801
- let lastState = null;
5802
- let lastSelector = null;
5803
- let lastSelected;
5804
- const getSnapshot = () => {
5805
- const state = session ? session.getState() : EMPTY_STATE;
5806
- const current = selectorRef.current;
5807
- if (state !== lastState || current !== lastSelector) {
5808
- const next = current(state);
5809
- if (!(lastState !== null && Object.is(next, lastSelected))) lastSelected = next;
5810
- lastState = state;
5811
- lastSelector = current;
5812
- }
5813
- return lastSelected;
5814
- };
5815
- return {
5816
- subscribe: session ? (listener) => session.subscribe(listener) : noopSubscribe,
5817
- getSnapshot
5818
- };
5819
- }, [session]);
5820
- return useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);
5821
- }
5822
- function useIsSessionHistoryLoading(sessionId) {
5823
- const source = useSessionSource();
5824
- return useSyncExternalStore(
5825
- source.subscribe,
5826
- () => source.isHistoryLoading(sessionId),
5827
- () => source.isHistoryLoading(sessionId)
5828
- );
5829
- }
5830
- function usePlanRevealRevision(sessionId) {
5831
- const source = useSessionSource();
5832
- return useSyncExternalStore(
5833
- source.subscribe,
5834
- () => source.planRevealRevision(sessionId),
5835
- () => source.planRevealRevision(sessionId)
5836
- );
5837
- }
5838
- var CurrentChatSessionContext = createContext2(null);
5839
- function CurrentChatSessionProvider({ sessionId, children }) {
5840
- return /* @__PURE__ */ jsx2(CurrentChatSessionContext.Provider, { value: sessionId, children });
5841
- }
5842
- function useCurrentChatSessionId() {
5843
- return useContext2(CurrentChatSessionContext);
5844
- }
5845
-
5846
- // src/chat/runtime/environment.tsx
5847
- import { jsx as jsx3 } from "react/jsx-runtime";
5848
- var EMPTY_ENVIRONMENT = {};
5849
- var ChatEnvironmentContext = createContext3(EMPTY_ENVIRONMENT);
5850
- function ChatEnvironmentProvider({ value, children }) {
5851
- return /* @__PURE__ */ jsx3(ChatEnvironmentContext.Provider, { value, children });
5852
- }
5853
- function useChatEnvironment() {
5854
- return useContext3(ChatEnvironmentContext);
5855
- }
5856
- var NO_HIGHLIGHT = { highlightedHtml: null };
5857
- function usePlainCode() {
5858
- return NO_HIGHLIGHT;
5859
- }
5860
- function useHighlightedCode(code, language) {
5861
- const use = useChatEnvironment().useHighlightedCode ?? usePlainCode;
5862
- return use(code, language);
5863
- }
5864
- function useNoDetail() {
5865
- return null;
5866
- }
5867
- function useChatSessionDetail(sessionId) {
5868
- const use = useChatEnvironment().useSessionDetail ?? useNoDetail;
5869
- return use(sessionId);
5870
- }
5871
- function useShowTodo() {
5872
- return false;
5873
- }
5874
- function useHideTodo() {
5875
- const use = useChatEnvironment().useHideTodo ?? useShowTodo;
5876
- return use();
5877
- }
5878
- function useChatRenderMode() {
5879
- return useChatEnvironment().renderMode ?? "normal";
5880
- }
5881
- function notifyChat(environment, kind, message, options) {
5882
- if (environment.notify) environment.notify(kind, message, options);
5883
- else if (kind === "error") console.error(message);
5884
- }
5885
- function useComposerBridge(sessionId) {
5886
- const environment = useChatEnvironment();
5887
- const session = useSessionHandle(sessionId);
5888
- return useMemo2(
5889
- () => ({
5890
- appendText(text, separate = false) {
5891
- if (!sessionId) return;
5892
- if (environment.appendToComposer) environment.appendToComposer(sessionId, text, separate);
5893
- else session?.insertText(separate ? `
5894
-
5895
- ${text}` : text);
5896
- },
5897
- addContext(context) {
5898
- if (!sessionId) return;
5899
- if (environment.addComposerContext) environment.addComposerContext(sessionId, context);
5900
- else session?.attach(context.label, context.content);
5901
- }
5902
- }),
5903
- [environment, session, sessionId]
5904
- );
5905
- }
5906
- var NO_VIRTUAL_ITEMS = [];
5907
- var NO_VIRTUALIZER = {
5908
- getVirtualItems: () => NO_VIRTUAL_ITEMS,
5909
- getTotalSize: () => 0,
5910
- measureElement: () => {
5911
- },
5912
- scrollToIndex: () => {
5913
- },
5914
- getOffsetForIndex: () => void 0
5915
- };
5916
- function useNoVirtualizer() {
5917
- return NO_VIRTUALIZER;
5918
- }
5919
- function useChatVirtualizer(options) {
5920
- const injected = useChatEnvironment().useVirtualizer;
5921
- const use = injected ?? useNoVirtualizer;
5922
- const virtualizer = use(options);
5923
- return { virtualizer, enabled: Boolean(injected) };
5924
- }
5925
-
5926
- // src/chat/tool-renderers/shared.tsx
5927
- import { jsx as jsx4 } from "react/jsx-runtime";
5928
- function getResultText(result) {
5929
- if (typeof result === "string") return result;
5930
- if (Array.isArray(result)) {
5931
- const texts = result.filter(
5932
- (p2) => typeof p2 === "object" && p2 !== null && p2.type === "text" && typeof p2.text === "string"
5933
- ).map((p2) => p2.text);
5934
- return texts.length > 0 ? texts.join("\n") : null;
5935
- }
5936
- return result != null ? String(result) : null;
5937
- }
5938
- function getResultImages(result) {
5939
- if (!Array.isArray(result)) return [];
5940
- return result.filter(
5941
- (p2) => typeof p2 === "object" && p2 !== null && p2.type === "image_url" && typeof p2.image_url?.url === "string"
5942
- ).map((p2) => p2.image_url);
5943
- }
5944
- function parseJsonValue(value) {
5945
- if (!value) return null;
5946
- try {
5947
- return JSON.parse(value);
5948
- } catch {
5949
- return null;
5950
- }
5951
- }
5952
- function isPlainObject(value) {
5953
- return Boolean(value) && typeof value === "object" && !Array.isArray(value);
5954
- }
5955
- function getStringValue(data, key) {
5956
- const value = data?.[key];
5957
- return typeof value === "string" && value.trim() ? value.trim() : null;
5958
- }
5959
- function getNumberValue(data, key) {
5960
- const value = data?.[key];
5961
- return typeof value === "number" && Number.isFinite(value) ? value : null;
5962
- }
5963
- function getBooleanValue(data, key) {
5964
- return data?.[key] === true;
5965
- }
5966
- function extractErrorMessage(value) {
5967
- const text = typeof value === "string" ? value : getResultText(value);
5968
- if (!text?.trim()) return null;
5969
- const parsed = parseJsonValue(text);
5970
- if (!isPlainObject(parsed)) return null;
5971
- return typeof parsed.error === "string" && parsed.error.trim() ? parsed.error.trim() : null;
5972
- }
5973
- function getFileName(filePath) {
5974
- if (!filePath) return "\u672A\u547D\u540D\u6587\u4EF6";
5975
- return filePath.split(/[\\/]/).pop() ?? filePath;
5976
- }
5977
- function getCodeLanguage(filePath) {
5978
- return getCodeLanguageFromFilename(filePath);
5979
- }
5980
- function formatBytes(size4) {
5981
- if (typeof size4 !== "number" || !Number.isFinite(size4) || size4 < 0) return null;
5982
- if (size4 < 1024) return `${size4} B`;
5983
- if (size4 < 1024 * 1024) return `${(size4 / 1024).toFixed(1)} KB`;
5984
- return `${(size4 / (1024 * 1024)).toFixed(1)} MB`;
5985
- }
5986
- function CodePreview({
5987
- content,
5988
- filePath,
5989
- emptyLabel = "\uFF08\u6682\u65E0\u5185\u5BB9\uFF09",
5990
- className
5991
- }) {
5992
- const { highlightedHtml } = useHighlightedCode(content, getCodeLanguage(filePath));
5993
- if (!content.trim()) {
5994
- return /* @__PURE__ */ jsx4(
5995
- "pre",
5996
- {
5997
- className: cn(
5998
- "overflow-auto rounded-lg border border-[hsl(var(--border))]",
5999
- "bg-[hsl(var(--muted))]/35 p-3 font-mono text-[11px] text-[hsl(var(--muted-foreground))]",
6000
- className
6001
- ),
6002
- children: /* @__PURE__ */ jsx4("code", { children: emptyLabel })
6003
- }
6004
- );
6005
- }
6006
- return /* @__PURE__ */ jsx4(
6007
- "pre",
6008
- {
6009
- className: cn(
6010
- "overflow-auto rounded-lg border border-[hsl(var(--border))]",
6011
- "bg-[hsl(var(--muted))]/35 p-3 text-[11px]",
6012
- className
6013
- ),
6014
- children: highlightedHtml ? /* @__PURE__ */ jsx4(
6015
- "code",
6016
- {
6017
- className: "font-mono",
6018
- dangerouslySetInnerHTML: { __html: highlightedHtml }
6019
- }
6020
- ) : /* @__PURE__ */ jsx4("code", { className: "whitespace-pre-wrap break-words font-mono text-[hsl(var(--foreground))]", children: content })
6021
- }
6022
- );
6023
- }
6024
-
6025
- // src/chat/tool-renderers/kb-search-result.ts
6026
- function parseKbSearchResult(result) {
6027
- const value = parseJsonValue(getResultText(result));
6028
- if (!isPlainObject(value) || !Array.isArray(value.hits)) return null;
6029
- const hits = value.hits.filter(isPlainObject).map((hit, index2) => ({
6030
- n: typeof hit.n === "number" ? hit.n : index2 + 1,
6031
- kbName: getStringValue(hit, "kb_name") ?? "",
6032
- title: getStringValue(hit, "title") ?? getStringValue(hit, "path") ?? "\u672A\u547D\u540D\u6587\u6863",
6033
- path: getStringValue(hit, "path") ?? "",
6034
- page: typeof hit.page === "number" ? hit.page : null,
6035
- heading: getStringValue(hit, "heading"),
6036
- text: getStringValue(hit, "text") ?? "",
6037
- previewUrl: getStringValue(hit, "preview_url")
6038
- }));
6039
- return {
6040
- summary: getStringValue(value, "summary"),
6041
- query: getStringValue(value, "query"),
6042
- hits
6043
- };
6044
- }
6045
- function formatKbSearchLabel(result) {
6046
- const parsed = parseKbSearchResult(result);
6047
- if (!parsed) return null;
6048
- const names = [...new Set(parsed.hits.map((hit) => hit.kbName).filter(Boolean))];
6049
- const scope = names.length > 0 ? names.map((name) => `\u300A${name}\u300B`).join("") : "\u77E5\u8BC6\u5E93";
6050
- return `\u{1F50D} \u5728${scope}\u68C0\u7D22\u5230 ${parsed.hits.length} \u6761`;
6051
- }
6052
-
6053
5672
  // src/chat/display-utils.ts
6054
5673
  var TOOL_NAME_ALIASES = {
6055
5674
  agent: "Agent",
@@ -6064,7 +5683,6 @@ var TOOL_NAME_ALIASES = {
6064
5683
  finish_task: "FinishTask",
6065
5684
  glob: "Glob",
6066
5685
  grep: "Grep",
6067
- kb_search: "KbSearch",
6068
5686
  ls: "Ls",
6069
5687
  multi_edit: "MultiEdit",
6070
5688
  read: "Read",
@@ -6084,7 +5702,6 @@ var TOOL_DISPLAY_LABELS = {
6084
5702
  Ls: "\u5217\u51FA\u76EE\u5F55",
6085
5703
  Glob: "\u5339\u914D\u6587\u4EF6",
6086
5704
  Grep: "\u641C\u7D22\u6587\u672C",
6087
- KbSearch: "\u68C0\u7D22\u77E5\u8BC6\u5E93",
6088
5705
  WebSearch: "\u641C\u7D22\u7F51\u9875",
6089
5706
  WebFetch: "\u6574\u7406\u7F51\u9875\u5185\u5BB9",
6090
5707
  Agent: "\u6D3E\u751F\u5B50\u667A\u80FD\u4F53",
@@ -6122,7 +5739,7 @@ function safeParseJson(value) {
6122
5739
  return null;
6123
5740
  }
6124
5741
  }
6125
- function isPlainObject2(value) {
5742
+ function isPlainObject(value) {
6126
5743
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
6127
5744
  }
6128
5745
  function getStringArgValue(args, key) {
@@ -6134,7 +5751,7 @@ function getCommandDescription(args) {
6134
5751
  }
6135
5752
  function getToolDescription(toolCall) {
6136
5753
  const args = safeParseJson(toolCall.arguments);
6137
- if (!isPlainObject2(args)) return null;
5754
+ if (!isPlainObject(args)) return null;
6138
5755
  return getCommandDescription(args) || null;
6139
5756
  }
6140
5757
  function formatFileName(filePath) {
@@ -6192,12 +5809,6 @@ function getToolDisplayLabel(toolCall) {
6192
5809
  const title = args && typeof args.title === "string" ? args.title : "";
6193
5810
  return title ? `${baseLabel}\uFF1A${title}` : baseLabel;
6194
5811
  }
6195
- if (normalized === "KbSearch") {
6196
- const resultLabel = formatKbSearchLabel(toolCall.result);
6197
- if (resultLabel) return resultLabel;
6198
- const query = getStringArgValue(args, "query");
6199
- return query ? `${baseLabel}\uFF1A${query}` : baseLabel;
6200
- }
6201
5812
  return description || baseLabel;
6202
5813
  }
6203
5814
  function getToolTone(status) {
@@ -6234,7 +5845,7 @@ function extractToolFilePaths(toolCall) {
6234
5845
  for (const item of value) collect(item, depth + 1, allowPlainString);
6235
5846
  return;
6236
5847
  }
6237
- if (!isPlainObject2(value)) return;
5848
+ if (!isPlainObject(value)) return;
6238
5849
  for (const key of PRIORITY_FILE_KEYS) collect(value[key], depth + 1, true);
6239
5850
  for (const [key, nested] of Object.entries(value)) {
6240
5851
  if (!PRIORITY_FILE_KEYS.includes(key) && nested && typeof nested === "object") collect(nested, depth + 1, false);
@@ -6249,7 +5860,7 @@ function extractToolFilePaths(toolCall) {
6249
5860
  }
6250
5861
  } else if (Array.isArray(value)) {
6251
5862
  for (const item of value) collectPatchHeaders(item);
6252
- } else if (isPlainObject2(value)) {
5863
+ } else if (isPlainObject(value)) {
6253
5864
  for (const [key, nested] of Object.entries(value)) {
6254
5865
  if (key.toLowerCase().includes("patch") || key.toLowerCase().includes("diff")) collectPatchHeaders(nested);
6255
5866
  }
@@ -6273,7 +5884,7 @@ function getToolOutputTag(toolCall) {
6273
5884
  }
6274
5885
 
6275
5886
  // src/components/PlanUpdateBlock.tsx
6276
- import { jsx as jsx5, jsxs } from "react/jsx-runtime";
5887
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
6277
5888
  var PLAN_STEP_STATUSES = /* @__PURE__ */ new Set(["pending", "in_progress", "completed"]);
6278
5889
  var PLAN_AUTO_COLLAPSE_MS = 5e3;
6279
5890
  function isPlanUpdateTool(toolCall) {
@@ -6328,12 +5939,12 @@ function PlanStepIcon({
6328
5939
  running = false
6329
5940
  }) {
6330
5941
  if (status === "completed") {
6331
- return /* @__PURE__ */ jsx5(Check, { size: size4, strokeWidth: 2, className: "shrink-0 text-emerald-500" });
5942
+ return /* @__PURE__ */ jsx2(Check, { size: size4, strokeWidth: 2, className: "shrink-0 text-emerald-500" });
6332
5943
  }
6333
5944
  if (status === "in_progress") {
6334
- return running ? /* @__PURE__ */ jsx5(LoaderCircle, { size: size4, className: "shrink-0 animate-spin text-[hsl(var(--muted-foreground))]" }) : /* @__PURE__ */ jsx5(CircleDot, { size: size4, className: "shrink-0 text-amber-500" });
5945
+ return running ? /* @__PURE__ */ jsx2(LoaderCircle, { size: size4, className: "shrink-0 animate-spin text-[hsl(var(--muted-foreground))]" }) : /* @__PURE__ */ jsx2(CircleDot, { size: size4, className: "shrink-0 text-amber-500" });
6335
5946
  }
6336
- return /* @__PURE__ */ jsx5(Circle, { size: size4, className: "shrink-0 text-[hsl(var(--muted-foreground))]/60" });
5947
+ return /* @__PURE__ */ jsx2(Circle, { size: size4, className: "shrink-0 text-[hsl(var(--muted-foreground))]/60" });
6337
5948
  }
6338
5949
  function PlanUpdateBlock({
6339
5950
  toolCall,
@@ -6343,10 +5954,10 @@ function PlanUpdateBlock({
6343
5954
  }) {
6344
5955
  const updateKey = `${toolCall.id}:${toolCall.arguments}`;
6345
5956
  const revealKey = autoReveal ? updateKey : null;
6346
- const [collapsed, setCollapsed] = useState2(!autoReveal);
6347
- const collapseTimerRef = useRef2(null);
5957
+ const [collapsed, setCollapsed] = useState(!autoReveal);
5958
+ const collapseTimerRef = useRef(null);
6348
5959
  const data = parsePlanUpdate(toolCall.arguments);
6349
- useEffect2(() => {
5960
+ useEffect(() => {
6350
5961
  if (!revealKey) return;
6351
5962
  if (collapseTimerRef.current) clearTimeout(collapseTimerRef.current);
6352
5963
  setCollapsed(false);
@@ -6355,7 +5966,7 @@ function PlanUpdateBlock({
6355
5966
  collapseTimerRef.current = null;
6356
5967
  }, PLAN_AUTO_COLLAPSE_MS);
6357
5968
  }, [revealKey]);
6358
- useEffect2(
5969
+ useEffect(
6359
5970
  () => () => {
6360
5971
  if (collapseTimerRef.current) clearTimeout(collapseTimerRef.current);
6361
5972
  },
@@ -6384,20 +5995,20 @@ function PlanUpdateBlock({
6384
5995
  ),
6385
5996
  children: [
6386
5997
  collapsed && currentStep ? /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-1 items-center gap-1.5 text-xs text-[hsl(var(--foreground))]", children: [
6387
- /* @__PURE__ */ jsx5(PlanStepIcon, { status: currentStep.status, size: 14, running }),
6388
- /* @__PURE__ */ jsx5("span", { className: "truncate", children: currentStep.step }),
6389
- pausedAtCurrentStep ? /* @__PURE__ */ jsx5("span", { className: "shrink-0 text-[11px] text-amber-500", children: "\u5DF2\u6682\u505C" }) : null
5998
+ /* @__PURE__ */ jsx2(PlanStepIcon, { status: currentStep.status, size: 14, running }),
5999
+ /* @__PURE__ */ jsx2("span", { className: "truncate", children: currentStep.step }),
6000
+ pausedAtCurrentStep ? /* @__PURE__ */ jsx2("span", { className: "shrink-0 text-[11px] text-amber-500", children: "\u5DF2\u6682\u505C" }) : null
6390
6001
  ] }) : /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-1 items-center gap-1.5 text-[11px] text-[hsl(var(--muted-foreground))]", children: [
6391
- /* @__PURE__ */ jsx5(ListChecks, { size: 14, className: "shrink-0", "aria-hidden": "true" }),
6392
- /* @__PURE__ */ jsx5("span", { className: "truncate", children: "\u4EFB\u52A1\u8FDB\u5EA6" }),
6393
- pausedAtCurrentStep ? /* @__PURE__ */ jsx5("span", { className: "shrink-0 text-amber-500", children: "\u5DF2\u6682\u505C" }) : null
6002
+ /* @__PURE__ */ jsx2(ListChecks, { size: 14, className: "shrink-0", "aria-hidden": "true" }),
6003
+ /* @__PURE__ */ jsx2("span", { className: "truncate", children: "\u4EFB\u52A1\u8FDB\u5EA6" }),
6004
+ pausedAtCurrentStep ? /* @__PURE__ */ jsx2("span", { className: "shrink-0 text-amber-500", children: "\u5DF2\u6682\u505C" }) : null
6394
6005
  ] }),
6395
6006
  /* @__PURE__ */ jsxs("span", { className: "shrink-0 text-[11px] tabular-nums text-[hsl(var(--muted-foreground))]", children: [
6396
6007
  completed,
6397
6008
  "/",
6398
6009
  data.plan.length
6399
6010
  ] }),
6400
- /* @__PURE__ */ jsx5(
6011
+ /* @__PURE__ */ jsx2(
6401
6012
  ChevronDown,
6402
6013
  {
6403
6014
  size: 14,
@@ -6410,7 +6021,7 @@ function PlanUpdateBlock({
6410
6021
  ]
6411
6022
  }
6412
6023
  ),
6413
- /* @__PURE__ */ jsx5(
6024
+ /* @__PURE__ */ jsx2(
6414
6025
  "div",
6415
6026
  {
6416
6027
  "aria-hidden": collapsed,
@@ -6418,9 +6029,9 @@ function PlanUpdateBlock({
6418
6029
  "grid transition-[grid-template-rows,opacity] duration-300 ease-out motion-reduce:transition-none",
6419
6030
  collapsed ? "grid-rows-[0fr] opacity-0" : "grid-rows-[1fr] opacity-100"
6420
6031
  ),
6421
- children: /* @__PURE__ */ jsx5("div", { className: "min-h-0 overflow-hidden", children: /* @__PURE__ */ jsx5("div", { className: "flex max-h-40 flex-col gap-0.5 overflow-y-auto px-3 py-2", children: data.plan.length === 0 ? /* @__PURE__ */ jsx5("span", { className: "text-xs text-[hsl(var(--muted-foreground))]", children: "\u6682\u65E0\u4EFB\u52A1\u6B65\u9AA4" }) : data.plan.map((item, index2) => /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 py-0.5", children: [
6422
- /* @__PURE__ */ jsx5("span", { className: "mt-[3px] flex shrink-0", children: /* @__PURE__ */ jsx5(PlanStepIcon, { status: item.status, size: 14, running }) }),
6423
- /* @__PURE__ */ jsx5(
6032
+ children: /* @__PURE__ */ jsx2("div", { className: "min-h-0 overflow-hidden", children: /* @__PURE__ */ jsx2("div", { className: "flex max-h-40 flex-col gap-0.5 overflow-y-auto px-3 py-2", children: data.plan.length === 0 ? /* @__PURE__ */ jsx2("span", { className: "text-xs text-[hsl(var(--muted-foreground))]", children: "\u6682\u65E0\u4EFB\u52A1\u6B65\u9AA4" }) : data.plan.map((item, index2) => /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 py-0.5", children: [
6033
+ /* @__PURE__ */ jsx2("span", { className: "mt-[3px] flex shrink-0", children: /* @__PURE__ */ jsx2(PlanStepIcon, { status: item.status, size: 14, running }) }),
6034
+ /* @__PURE__ */ jsx2(
6424
6035
  "span",
6425
6036
  {
6426
6037
  className: cn(
@@ -6436,6 +6047,59 @@ function PlanUpdateBlock({
6436
6047
  ] });
6437
6048
  }
6438
6049
 
6050
+ // src/chat/runtime/input-history-storage.ts
6051
+ var generation = 0;
6052
+ function getInputHistoryGeneration() {
6053
+ return generation;
6054
+ }
6055
+
6056
+ // src/chat/runtime/input-cache-reset.ts
6057
+ var resetters = /* @__PURE__ */ new WeakMap();
6058
+ function onInputCachesReset(client, reset) {
6059
+ let set = resetters.get(client);
6060
+ if (!set) {
6061
+ set = /* @__PURE__ */ new Set();
6062
+ resetters.set(client, set);
6063
+ }
6064
+ set.add(reset);
6065
+ return () => {
6066
+ set.delete(reset);
6067
+ };
6068
+ }
6069
+
6070
+ // src/rich-input/lib/plugin-suggestions.ts
6071
+ var accountPreparation = /* @__PURE__ */ new WeakMap();
6072
+ var registeredClients = /* @__PURE__ */ new WeakSet();
6073
+ function pluginRefsForSend(refs, turns = []) {
6074
+ const latest = [...turns].reverse().find((turn) => turn.role === "user");
6075
+ return refs.length || latest?.refs?.length ? refs : void 0;
6076
+ }
6077
+ function prepareAccount(client) {
6078
+ if (!registeredClients.has(client)) {
6079
+ registeredClients.add(client);
6080
+ onInputCachesReset(client, () => accountPreparation.delete(client));
6081
+ }
6082
+ const current = accountPreparation.get(client);
6083
+ if (current && current.token === client.token) return current.ready;
6084
+ const ready = client.plugins.catalog().catch((error) => {
6085
+ accountPreparation.delete(client);
6086
+ throw error;
6087
+ });
6088
+ accountPreparation.set(client, { token: client.token, ready });
6089
+ return ready;
6090
+ }
6091
+ async function getPluginSuggestionItems(client, session, query, pendingPlugins = []) {
6092
+ if (!session && pendingPlugins.length === 0) return [];
6093
+ const path = session ? `/api/sessions/${encodeURIComponent(session)}/plugin-tools/mentions` : "/api/plugin-mentions/mentions";
6094
+ try {
6095
+ if (!session) await prepareAccount(client);
6096
+ const data = await client.json("POST", path, { arguments: { query, cursor: "" }, ...!session ? { plugin_selection: pendingPlugins } : {} });
6097
+ return [...data.items.map((item) => ({ ...item, kind: "plugin", name: item.label })), ...data.errors.map((message) => ({ kind: "pluginError", message }))];
6098
+ } catch {
6099
+ return [{ kind: "pluginError", message: "\u63D2\u4EF6\u6761\u76EE\u6682\u65F6\u65E0\u6CD5\u52A0\u8F7D\uFF0C\u8BF7\u91CD\u65B0\u8F93\u5165 @ \u91CD\u8BD5" }];
6100
+ }
6101
+ }
6102
+
6439
6103
  // ../../node_modules/.pnpm/@cfworker+json-schema@4.1.1/node_modules/@cfworker/json-schema/dist/esm/deep-compare-strict.js
6440
6104
  function deepCompareStrict(a, b) {
6441
6105
  const typeofa = typeof a;
@@ -7646,7 +7310,7 @@ function canExpand(schema, uiSchema = {}, formData) {
7646
7310
  }
7647
7311
 
7648
7312
  // ../../node_modules/.pnpm/@rjsf+utils@6.10.0_react@19.2.4/node_modules/@rjsf/utils/lib/isPlainObject.js
7649
- function isPlainObject3(thing) {
7313
+ function isPlainObject2(thing) {
7650
7314
  if (typeof thing !== "object" || thing === null) {
7651
7315
  return false;
7652
7316
  }
@@ -11540,7 +11204,7 @@ var ErrorSchemaBuilder = class {
11540
11204
 
11541
11205
  // ../../node_modules/.pnpm/@rjsf+utils@6.10.0_react@19.2.4/node_modules/@rjsf/utils/lib/getChangedFields.js
11542
11206
  function getChangedDescendants(a, b) {
11543
- if (isPlainObject3(a) && isPlainObject3(b)) {
11207
+ if (isPlainObject2(a) && isPlainObject2(b)) {
11544
11208
  return getChangedFields(a, b, true);
11545
11209
  }
11546
11210
  if (Array.isArray(a) && Array.isArray(b) && a.length === b.length) {
@@ -11558,10 +11222,10 @@ function getChangedFields(a, b, deep = false) {
11558
11222
  if (a === b) {
11559
11223
  return [];
11560
11224
  }
11561
- if (!isPlainObject3(a)) {
11562
- return isPlainObject3(b) ? Object.keys(b) : [];
11225
+ if (!isPlainObject2(a)) {
11226
+ return isPlainObject2(b) ? Object.keys(b) : [];
11563
11227
  }
11564
- if (!isPlainObject3(b)) {
11228
+ if (!isPlainObject2(b)) {
11565
11229
  return Object.keys(a);
11566
11230
  }
11567
11231
  const aKeys = Object.keys(a);
@@ -12152,7 +11816,7 @@ function errorsFrom(errorSchema, fieldPath) {
12152
11816
  const errorList = Array.isArray(errors) ? errors.map((message) => ({ property, message, stack: `${property} ${message}` })) : [];
12153
11817
  return Object.keys(errorSchema).reduce((currentList, key) => {
12154
11818
  const childSchema = errorSchema[key];
12155
- if (key !== ERRORS_KEY && isPlainObject3(childSchema)) {
11819
+ if (key !== ERRORS_KEY && isPlainObject2(childSchema)) {
12156
11820
  return currentList.concat(errorsFrom(childSchema, [...fieldPath, key]));
12157
11821
  }
12158
11822
  return currentList;
@@ -12174,7 +11838,7 @@ function toFieldPathId(fieldPath, globalFormOptions, parentPath, isMultiValue) {
12174
11838
 
12175
11839
  // ../../node_modules/.pnpm/@rjsf+utils@6.10.0_react@19.2.4/node_modules/@rjsf/utils/lib/useAltDateWidgetProps.js
12176
11840
  import { jsx as _jsx3 } from "react/jsx-runtime";
12177
- import { useCallback, useEffect as useEffect3, useMemo as useMemo3, useState as useState3 } from "react";
11841
+ import { useCallback, useEffect as useEffect2, useMemo, useState as useState2 } from "react";
12178
11842
  function readyForChange(state) {
12179
11843
  return Object.values(state).every((value) => value !== -1);
12180
11844
  }
@@ -12187,8 +11851,8 @@ function DateElement(props) {
12187
11851
  }
12188
11852
  function useAltDateWidgetProps(props) {
12189
11853
  const { time: time2 = false, disabled = false, readonly = false, options, onChange, value } = props;
12190
- const [state, setState] = useState3(parseDateString(value, time2));
12191
- useEffect3(() => {
11854
+ const [state, setState] = useState2(parseDateString(value, time2));
11855
+ useEffect2(() => {
12192
11856
  setState(parseDateString(value, time2));
12193
11857
  }, [time2, value]);
12194
11858
  const handleChange = useCallback((property, newValue) => {
@@ -12217,14 +11881,14 @@ function useAltDateWidgetProps(props) {
12217
11881
  const nextState = parseDateString((/* @__PURE__ */ new Date()).toJSON(), time2);
12218
11882
  onChange(toDateString(nextState, time2));
12219
11883
  }, [disabled, readonly, time2, onChange]);
12220
- const elements = useMemo3(() => getDateElementProps(state, time2, options.yearsRange, options.format), [state, time2, options.yearsRange, options.format]);
11884
+ const elements = useMemo(() => getDateElementProps(state, time2, options.yearsRange, options.format), [state, time2, options.yearsRange, options.format]);
12221
11885
  return { elements, handleChange, handleClear, handleSetNow };
12222
11886
  }
12223
11887
 
12224
11888
  // ../../node_modules/.pnpm/@rjsf+utils@6.10.0_react@19.2.4/node_modules/@rjsf/utils/lib/useDeepCompareMemo.js
12225
- import { useRef as useRef3 } from "react";
11889
+ import { useRef as useRef2 } from "react";
12226
11890
  function useDeepCompareMemo(newValue) {
12227
- const valueRef = useRef3(newValue);
11891
+ const valueRef = useRef2(newValue);
12228
11892
  if (!deepEquals_default(newValue, valueRef.current)) {
12229
11893
  valueRef.current = newValue;
12230
11894
  }
@@ -12232,7 +11896,7 @@ function useDeepCompareMemo(newValue) {
12232
11896
  }
12233
11897
 
12234
11898
  // ../../node_modules/.pnpm/@rjsf+utils@6.10.0_react@19.2.4/node_modules/@rjsf/utils/lib/useFileWidgetProps.js
12235
- import { useCallback as useCallback2, useMemo as useMemo4 } from "react";
11899
+ import { useCallback as useCallback2, useMemo as useMemo2 } from "react";
12236
11900
  function addNameToDataURL(dataURL, name) {
12237
11901
  return dataURL.replace(";base64", `;name=${encodeURIComponent(name)};base64`);
12238
11902
  }
@@ -12286,13 +11950,13 @@ function extractFileInfo(dataURLs) {
12286
11950
  }, []);
12287
11951
  }
12288
11952
  function useFileWidgetProps(value, onChange, multiple = false) {
12289
- const values = useMemo4(() => {
11953
+ const values = useMemo2(() => {
12290
11954
  if (multiple && value) {
12291
11955
  return Array.isArray(value) ? value : [value];
12292
11956
  }
12293
11957
  return [];
12294
11958
  }, [value, multiple]);
12295
- const filesInfo = useMemo4(() => Array.isArray(value) ? extractFileInfo(value) : extractFileInfo([value || ""]), [value]);
11959
+ const filesInfo = useMemo2(() => Array.isArray(value) ? extractFileInfo(value) : extractFileInfo([value || ""]), [value]);
12296
11960
  const handleChange = useCallback2(async (files) => {
12297
11961
  const filesInfoEvent = await processFiles(files);
12298
11962
  const newValue = filesInfoEvent.map((fileInfo) => fileInfo.dataURL || null);
@@ -12418,7 +12082,7 @@ var TranslatableString;
12418
12082
 
12419
12083
  // ../../node_modules/.pnpm/@rjsf+core@6.10.0_@rjsf+utils@6.10.0_react@19.2.4__react@19.2.4_vue@3.5.40_typescript@5.9.3_/node_modules/@rjsf/core/lib/components/fields/ArrayField.js
12420
12084
  import { jsx as _jsx4 } from "react/jsx-runtime";
12421
- import { memo, useCallback as useCallback3, useMemo as useMemo5, useRef as useRef4, useState as useState4 } from "react";
12085
+ import { memo, useCallback as useCallback3, useMemo as useMemo3, useRef as useRef3, useState as useState3 } from "react";
12422
12086
  var rowIdCounter = 0;
12423
12087
  function generateRowId() {
12424
12088
  rowIdCounter += 1;
@@ -12512,8 +12176,8 @@ function ArrayAsFiles(props) {
12512
12176
  function ArrayFieldItemInner(props) {
12513
12177
  const { itemKey, index: index2, name, disabled, hideError, readonly, registry, uiOptions, parentUiSchema, canAdd, canRemove = true, canMoveUp, canMoveDown, rawItemSchema, itemData, itemUiSchema, parentFieldPathId, itemErrorSchema, autofocus, onBlur, onFocus, onChange, rawErrors, totalItems, title, handleAddItem, handleCopyItem, handleRemoveItem, handleReorderItems } = props;
12514
12178
  const { schemaUtils, fields: { ArraySchemaField, SchemaField: SchemaField2 }, globalUiOptions, globalFormOptions } = registry;
12515
- const itemSchema = useMemo5(() => schemaUtils.retrieveSchema(rawItemSchema, itemData), [schemaUtils, rawItemSchema, itemData]);
12516
- const fieldPathId = useMemo5(() => toFieldPathId(index2, globalFormOptions, parentFieldPathId), [index2, globalFormOptions, parentFieldPathId]);
12179
+ const itemSchema = useMemo3(() => schemaUtils.retrieveSchema(rawItemSchema, itemData), [schemaUtils, rawItemSchema, itemData]);
12180
+ const fieldPathId = useMemo3(() => toFieldPathId(index2, globalFormOptions, parentFieldPathId), [index2, globalFormOptions, parentFieldPathId]);
12517
12181
  const ItemSchemaField = ArraySchemaField || SchemaField2;
12518
12182
  const ArrayFieldItemTemplate2 = getTemplate("ArrayFieldItemTemplate", registry, uiOptions);
12519
12183
  const displayLabel = schemaUtils.getDisplayLabel(itemSchema, itemUiSchema, globalUiOptions);
@@ -12587,13 +12251,13 @@ function NormalArray(props) {
12587
12251
  const fieldTitle = schema.title || title || name;
12588
12252
  const { schemaUtils, fields: fields2, formContext, globalUiOptions } = registry;
12589
12253
  const { OptionalDataControlsField: OptionalDataControlsField2 } = fields2;
12590
- const uiOptions = useMemo5(() => getUiOptions(uiSchema, globalUiOptions), [uiSchema, globalUiOptions]);
12591
- const schemaItems = useMemo5(() => isObject(schema.items) ? schema.items : {}, [schema.items]);
12592
- const itemsSchema = useMemo5(() => schemaUtils.retrieveSchema(schemaItems), [schemaUtils, schemaItems]);
12593
- const formData = useMemo5(() => keyedToPlainFormData(keyedFormData), [keyedFormData]);
12254
+ const uiOptions = useMemo3(() => getUiOptions(uiSchema, globalUiOptions), [uiSchema, globalUiOptions]);
12255
+ const schemaItems = useMemo3(() => isObject(schema.items) ? schema.items : {}, [schema.items]);
12256
+ const itemsSchema = useMemo3(() => schemaUtils.retrieveSchema(schemaItems), [schemaUtils, schemaItems]);
12257
+ const formData = useMemo3(() => keyedToPlainFormData(keyedFormData), [keyedFormData]);
12594
12258
  const renderOptionalField = shouldRenderOptionalField(registry, schema, required, uiSchema);
12595
12259
  const hasFormData = isFormDataAvailable(formDataFromProps);
12596
- const canAdd = useMemo5(() => canAddItem(registry, schema, formData, uiSchema) && (!renderOptionalField || hasFormData), [registry, schema, formData, uiSchema, renderOptionalField, hasFormData]);
12260
+ const canAdd = useMemo3(() => canAddItem(registry, schema, formData, uiSchema) && (!renderOptionalField || hasFormData), [registry, schema, formData, uiSchema, renderOptionalField, hasFormData]);
12597
12261
  const actualFormData = hasFormData ? keyedFormData : [];
12598
12262
  const extraClass = renderOptionalField ? " rjsf-optional-array-field" : "";
12599
12263
  const childFieldPathId = props.childFieldPathId ?? fieldPathId;
@@ -12660,11 +12324,11 @@ function FixedArray(props) {
12660
12324
  let { formData: items = [] } = props;
12661
12325
  const fieldTitle = schema.title || title || name;
12662
12326
  const { fields: fields2, formContext, globalUiOptions } = registry;
12663
- const uiOptions = useMemo5(() => getUiOptions(uiSchema, globalUiOptions), [uiSchema, globalUiOptions]);
12327
+ const uiOptions = useMemo3(() => getUiOptions(uiSchema, globalUiOptions), [uiSchema, globalUiOptions]);
12664
12328
  const { OptionalDataControlsField: OptionalDataControlsField2 } = fields2;
12665
12329
  const renderOptionalField = shouldRenderOptionalField(registry, schema, required, uiSchema);
12666
12330
  const hasFormData = isFormDataAvailable(formData);
12667
- const schemaItems = useMemo5(() => Array.isArray(schema.items) ? schema.items : [], [schema.items]);
12331
+ const schemaItems = useMemo3(() => Array.isArray(schema.items) ? schema.items : [], [schema.items]);
12668
12332
  const hasAdditionalItems = isObject(schema.additionalItems);
12669
12333
  const childFieldPathId = props.childFieldPathId ?? fieldPathId;
12670
12334
  if (items.length < schemaItems.length) {
@@ -12743,8 +12407,8 @@ function FixedArray(props) {
12743
12407
  return _jsx4(Template, { ...arrayProps });
12744
12408
  }
12745
12409
  function useKeyedFormData(formData = []) {
12746
- const newHash = useMemo5(() => hashObject(formData), [formData]);
12747
- const [state, setState] = useState4(() => ({
12410
+ const newHash = useMemo3(() => hashObject(formData), [formData]);
12411
+ const [state, setState] = useState3(() => ({
12748
12412
  formDataHash: newHash,
12749
12413
  keyedFormData: generateKeyedFormData(formData)
12750
12414
  }));
@@ -12771,9 +12435,9 @@ function ArrayField(props) {
12771
12435
  const { schema, uiSchema, errorSchema, fieldPathId, registry, formData, onChange } = props;
12772
12436
  const { globalFormOptions, schemaUtils, translateString } = registry;
12773
12437
  const { keyedFormData, updateKeyedFormData } = useKeyedFormData(formData);
12774
- const keyedFormDataRef = useRef4(keyedFormData);
12438
+ const keyedFormDataRef = useRef3(keyedFormData);
12775
12439
  keyedFormDataRef.current = keyedFormData;
12776
- const errorSchemaRef = useRef4(errorSchema);
12440
+ const errorSchemaRef = useRef3(errorSchema);
12777
12441
  errorSchemaRef.current = errorSchema;
12778
12442
  const childFieldPathId = props.childFieldPathId ?? fieldPathId;
12779
12443
  const handleAddItem = useCallback3((event, index2) => {
@@ -12991,9 +12655,9 @@ var BooleanField_default = BooleanField;
12991
12655
 
12992
12656
  // ../../node_modules/.pnpm/@rjsf+core@6.10.0_@rjsf+utils@6.10.0_react@19.2.4__react@19.2.4_vue@3.5.40_typescript@5.9.3_/node_modules/@rjsf/core/lib/components/fields/CyclicSchemaField.js
12993
12657
  import { jsx as _jsx6 } from "react/jsx-runtime";
12994
- import { useState as useState5 } from "react";
12658
+ import { useState as useState4 } from "react";
12995
12659
  function CyclicSchemaField(props) {
12996
- const [expanded, setExpanded] = useState5(false);
12660
+ const [expanded, setExpanded] = useState4(false);
12997
12661
  const { name, registry, schema, uiSchema, fieldPathId } = props;
12998
12662
  const { globalUiOptions } = registry;
12999
12663
  const uiOptions = getUiOptions(uiSchema, globalUiOptions);
@@ -13008,7 +12672,7 @@ function CyclicSchemaField(props) {
13008
12672
 
13009
12673
  // ../../node_modules/.pnpm/@rjsf+core@6.10.0_@rjsf+utils@6.10.0_react@19.2.4__react@19.2.4_vue@3.5.40_typescript@5.9.3_/node_modules/@rjsf/core/lib/components/fields/FallbackField.js
13010
12674
  import { jsx as _jsx7 } from "react/jsx-runtime";
13011
- import { useMemo as useMemo6, useState as useState6 } from "react";
12675
+ import { useMemo as useMemo4, useState as useState5 } from "react";
13012
12676
  function getFallbackTypeSelectionSchema(title) {
13013
12677
  return {
13014
12678
  type: "string",
@@ -13044,11 +12708,11 @@ function castToNewType(formData, newType) {
13044
12708
  function FallbackField(props) {
13045
12709
  const { id, formData, displayLabel = true, schema, name, uiSchema, required, disabled = false, readonly = false, onBlur, onFocus, registry, fieldPathId, onChange, errorSchema } = props;
13046
12710
  const { translateString, fields: fields2, globalFormOptions } = registry;
13047
- const [type, setType] = useState6(getTypeOfFormData(formData));
12711
+ const [type, setType] = useState5(getTypeOfFormData(formData));
13048
12712
  const uiOptions = getUiOptions(uiSchema);
13049
12713
  const typeSelectorInnerFieldPathId = useDeepCompareMemo(toFieldPathId("__internal_type_selector", globalFormOptions, fieldPathId));
13050
12714
  const schemaTitle = translateString(TranslatableString.Type);
13051
- const typesOptionSchema = useMemo6(() => getFallbackTypeSelectionSchema(schemaTitle), [schemaTitle]);
12715
+ const typesOptionSchema = useMemo4(() => getFallbackTypeSelectionSchema(schemaTitle), [schemaTitle]);
13052
12716
  const onTypeChange = (newType) => {
13053
12717
  if (newType != null) {
13054
12718
  setType(newType);
@@ -13135,7 +12799,7 @@ function conditionMatches(operator, datum, value = "$0m3tH1nG Un3xP3cT3d") {
13135
12799
  function findChildrenAndProps(layoutGridSchema, schemaKey, registry) {
13136
12800
  let gridProps = {};
13137
12801
  let children = layoutGridSchema[schemaKey];
13138
- if (isPlainObject3(children)) {
12802
+ if (isPlainObject2(children)) {
13139
12803
  const { children: elements, className: toMapClassNames, ...otherProps } = children;
13140
12804
  children = elements;
13141
12805
  if (toMapClassNames) {
@@ -13387,7 +13051,7 @@ function LayoutHeaderField(props) {
13387
13051
 
13388
13052
  // ../../node_modules/.pnpm/@rjsf+core@6.10.0_@rjsf+utils@6.10.0_react@19.2.4__react@19.2.4_vue@3.5.40_typescript@5.9.3_/node_modules/@rjsf/core/lib/components/fields/LayoutMultiSchemaField.js
13389
13053
  import { jsx as _jsx10 } from "react/jsx-runtime";
13390
- import { useState as useState7, useEffect as useEffect4 } from "react";
13054
+ import { useState as useState6, useEffect as useEffect3 } from "react";
13391
13055
  function getSelectedOption(options, selectorField, value) {
13392
13056
  const defaultValue = "!@#!@$@#$!@$#";
13393
13057
  const schemaOptions = options.map(({ schema }) => schema);
@@ -13414,7 +13078,7 @@ function computeEnumOptions(schema, options, schemaUtils, uiSchema, formData) {
13414
13078
  function LayoutMultiSchemaField(props) {
13415
13079
  const { name, baseType, disabled = false, formData, fieldPathId, onBlur, onChange, options, onFocus, registry, uiSchema, schema, autofocus, readonly, required, errorSchema, hideError = false } = props;
13416
13080
  const { widgets: widgets2, schemaUtils, globalUiOptions } = registry;
13417
- const [enumOptions, setEnumOptions] = useState7(computeEnumOptions(schema, options, schemaUtils, uiSchema, formData));
13081
+ const [enumOptions, setEnumOptions] = useState6(computeEnumOptions(schema, options, schemaUtils, uiSchema, formData));
13418
13082
  const id = fieldPathId[ID_KEY];
13419
13083
  const discriminator = getDiscriminatorFieldFromSchema(schema);
13420
13084
  const FieldErrorTemplate2 = getTemplate("FieldErrorTemplate", registry, options);
@@ -13423,7 +13087,7 @@ function LayoutMultiSchemaField(props) {
13423
13087
  const optionsHash = hashObject(options);
13424
13088
  const uiSchemaHash = uiSchema ? hashObject(uiSchema) : "";
13425
13089
  const formDataHash = formData ? hashObject(formData) : "";
13426
- useEffect4(() => {
13090
+ useEffect3(() => {
13427
13091
  setEnumOptions(computeEnumOptions(schema, options, schemaUtils, uiSchema, formData));
13428
13092
  }, [schemaHash, optionsHash, schemaUtils, uiSchemaHash, formDataHash]);
13429
13093
  const { widget = discriminator ? "radio" : "select", title = "", placeholder = "", optionsSchemaSelector: selectorField = discriminator, hideError: uiSchemaHideError, ...uiOptions } = getUiOptions(uiSchema);
@@ -13462,24 +13126,24 @@ function LayoutMultiSchemaField(props) {
13462
13126
 
13463
13127
  // ../../node_modules/.pnpm/@rjsf+core@6.10.0_@rjsf+utils@6.10.0_react@19.2.4__react@19.2.4_vue@3.5.40_typescript@5.9.3_/node_modules/@rjsf/core/lib/components/fields/MultiSchemaField.js
13464
13128
  import { jsx as _jsx11 } from "react/jsx-runtime";
13465
- import { useCallback as useCallback5, useEffect as useEffect5, useMemo as useMemo7, useRef as useRef5, useState as useState8 } from "react";
13129
+ import { useCallback as useCallback5, useEffect as useEffect4, useMemo as useMemo5, useRef as useRef4, useState as useState7 } from "react";
13466
13130
  function AnyOfField(props) {
13467
13131
  const { name, disabled = false, errorSchema, formData, fieldPathId, onBlur, onChange, onFocus, options, readonly, registry, required = false, schema, uiSchema } = props;
13468
13132
  const { schemaUtils } = registry;
13469
13133
  const formDataHash = hashObject(formData ?? null);
13470
- const retrievedOptions = useMemo7(
13134
+ const retrievedOptions = useMemo5(
13471
13135
  () => options.map((opt) => schemaUtils.retrieveSchema(opt, formData)),
13472
13136
  // oxlint-disable-next-line react-hooks/exhaustive-deps -- formDataHash is the value-stable proxy for formData
13473
13137
  [options, schemaUtils, formDataHash]
13474
13138
  );
13475
- const [selectedOption, setSelectedOption] = useState8(() => {
13139
+ const [selectedOption, setSelectedOption] = useState7(() => {
13476
13140
  const discriminator = getDiscriminatorFieldFromSchema(schema);
13477
13141
  return schemaUtils.getClosestMatchingOption(formData, retrievedOptions, 0, discriminator);
13478
13142
  });
13479
- const skipNextOptionRecalculation = useRef5(false);
13480
- const prevFormDataRef = useRef5(formData);
13481
- const prevFieldIdRef = useRef5(fieldPathId.$id);
13482
- useEffect5(() => {
13143
+ const skipNextOptionRecalculation = useRef4(false);
13144
+ const prevFormDataRef = useRef4(formData);
13145
+ const prevFieldIdRef = useRef4(fieldPathId.$id);
13146
+ useEffect4(() => {
13483
13147
  const prevFormData = prevFormDataRef.current;
13484
13148
  const prevFieldId = prevFieldIdRef.current;
13485
13149
  prevFormDataRef.current = formData;
@@ -13577,10 +13241,10 @@ function AnyOfField(props) {
13577
13241
  var MultiSchemaField_default = AnyOfField;
13578
13242
 
13579
13243
  // ../../node_modules/.pnpm/@rjsf+core@6.10.0_@rjsf+utils@6.10.0_react@19.2.4__react@19.2.4_vue@3.5.40_typescript@5.9.3_/node_modules/@rjsf/core/lib/components/fields/NullField.js
13580
- import { useEffect as useEffect6 } from "react";
13244
+ import { useEffect as useEffect5 } from "react";
13581
13245
  function NullField(props) {
13582
13246
  const { formData, onChange, fieldPathId } = props;
13583
- useEffect6(() => {
13247
+ useEffect5(() => {
13584
13248
  if (formData === void 0) {
13585
13249
  onChange(null, fieldPathId.path);
13586
13250
  }
@@ -13591,12 +13255,12 @@ var NullField_default = NullField;
13591
13255
 
13592
13256
  // ../../node_modules/.pnpm/@rjsf+core@6.10.0_@rjsf+utils@6.10.0_react@19.2.4__react@19.2.4_vue@3.5.40_typescript@5.9.3_/node_modules/@rjsf/core/lib/components/fields/NumberField.js
13593
13257
  import { jsx as _jsx12 } from "react/jsx-runtime";
13594
- import { useState as useState9, useCallback as useCallback6 } from "react";
13258
+ import { useState as useState8, useCallback as useCallback6 } from "react";
13595
13259
  var trailingCharMatcherWithPrefix = /\.([0-9]*0)*$/;
13596
13260
  var trailingCharMatcher = /[0.]0*$/;
13597
13261
  function NumberField(props) {
13598
13262
  const { registry, onChange, formData, value: initialValue } = props;
13599
- const [lastValue, setLastValue] = useState9(initialValue);
13263
+ const [lastValue, setLastValue] = useState8(initialValue);
13600
13264
  const { StringField: StringField2 } = registry.fields;
13601
13265
  const separator = getDecimalSeparator();
13602
13266
  const escapedSeparator = separator === "." ? "\\." : separator;
@@ -13631,7 +13295,7 @@ var NumberField_default = NumberField;
13631
13295
 
13632
13296
  // ../../node_modules/.pnpm/@rjsf+core@6.10.0_@rjsf+utils@6.10.0_react@19.2.4__react@19.2.4_vue@3.5.40_typescript@5.9.3_/node_modules/@rjsf/core/lib/components/fields/ObjectField.js
13633
13297
  import { jsx as _jsx13, jsxs as _jsxs } from "react/jsx-runtime";
13634
- import { memo as memo2, useCallback as useCallback7, useMemo as useMemo9, useRef as useRef7, useState as useState10 } from "react";
13298
+ import { memo as memo2, useCallback as useCallback7, useMemo as useMemo7, useRef as useRef6, useState as useState9 } from "react";
13635
13299
 
13636
13300
  // ../../node_modules/.pnpm/markdown-to-jsx@9.10.2_react@19.2.4_vue@3.5.40_typescript@5.9.3_/node_modules/markdown-to-jsx/dist/react.js
13637
13301
  import * as i0 from "react";
@@ -16766,7 +16430,7 @@ function getAdditionalPropertyOrder(schemaProperties) {
16766
16430
  }
16767
16431
  function ObjectFieldPropertyFn(props) {
16768
16432
  const { fieldPathId, schema, registry, uiSchema, errorSchema, formData, onChange, onBlur, onFocus, disabled, readonly, required, hideError, propertyName, handleKeyRename, handleRemoveProperty, addedByAdditionalProperties } = props;
16769
- const [wasPropertyKeyModified, setWasPropertyKeyModified] = useState10(false);
16433
+ const [wasPropertyKeyModified, setWasPropertyKeyModified] = useState9(false);
16770
16434
  const { globalFormOptions, fields: fields2 } = registry;
16771
16435
  const { SchemaField: SchemaField2 } = fields2;
16772
16436
  const innerFieldIdPathId = useDeepCompareMemo(toFieldPathId(propertyName, globalFormOptions, fieldPathId.path));
@@ -16797,15 +16461,15 @@ function ObjectField(props) {
16797
16461
  const { schema: rawSchema, uiSchema = {}, formData, errorSchema, fieldPathId, name, required = false, disabled, readonly, hideError, onBlur, onFocus, onChange, registry, title } = props;
16798
16462
  const { fields: fields2, schemaUtils, translateString, globalUiOptions } = registry;
16799
16463
  const { OptionalDataControlsField: OptionalDataControlsField2 } = fields2;
16800
- const formDataRef = useRef7(formData);
16464
+ const formDataRef = useRef6(formData);
16801
16465
  formDataRef.current = formData;
16802
- const schema = useMemo9(() => schemaUtils.retrieveSchema(rawSchema, formData, true), [schemaUtils, rawSchema, formData]);
16803
- const uiOptions = useMemo9(() => getUiOptions(uiSchema, globalUiOptions), [uiSchema, globalUiOptions]);
16804
- const schemaProperties = useMemo9(() => schema.properties ?? {}, [schema.properties]);
16466
+ const schema = useMemo7(() => schemaUtils.retrieveSchema(rawSchema, formData, true), [schemaUtils, rawSchema, formData]);
16467
+ const uiOptions = useMemo7(() => getUiOptions(uiSchema, globalUiOptions), [uiSchema, globalUiOptions]);
16468
+ const schemaProperties = useMemo7(() => schema.properties ?? {}, [schema.properties]);
16805
16469
  const childFieldPathId = props.childFieldPathId ?? fieldPathId;
16806
- const lastRenamedProperty = useRef7({ previousKey: "", currentKey: void 0 });
16807
- const [additionalPropertyOrder, setAdditionalPropertyOrder] = useState10(() => getAdditionalPropertyOrder(schemaProperties));
16808
- const definedPropertyOrder = useMemo9(() => {
16470
+ const lastRenamedProperty = useRef6({ previousKey: "", currentKey: void 0 });
16471
+ const [additionalPropertyOrder, setAdditionalPropertyOrder] = useState9(() => getAdditionalPropertyOrder(schemaProperties));
16472
+ const definedPropertyOrder = useMemo7(() => {
16809
16473
  const additionalPropertySet = new Set(getAdditionalPropertyOrder(schemaProperties));
16810
16474
  return Object.keys(schemaProperties).filter((property) => !additionalPropertySet.has(property));
16811
16475
  }, [schemaProperties]);
@@ -18759,7 +18423,7 @@ var Form = class _Form extends Component {
18759
18423
  };
18760
18424
 
18761
18425
  // src/components/SessionPluginConfigForm.tsx
18762
- import { isValidElement, useMemo as useMemo10, useState as useState11 } from "react";
18426
+ import { isValidElement, useMemo as useMemo8, useState as useState10 } from "react";
18763
18427
 
18764
18428
  // src/components/plugin-config-schema.ts
18765
18429
  function asSchema(value) {
@@ -18954,7 +18618,7 @@ function configDraftOperations(initial, values, retained, removed) {
18954
18618
  }
18955
18619
 
18956
18620
  // src/components/SessionPluginConfigForm.tsx
18957
- import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs2 } from "react/jsx-runtime";
18621
+ import { Fragment as Fragment2, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
18958
18622
  var defaults = getDefaultRegistry();
18959
18623
  var validator = {
18960
18624
  isValid(schema, data, rootSchema) {
@@ -19011,7 +18675,7 @@ function presentationSchema(schema) {
19011
18675
  }
19012
18676
  function ConfigMultiSchemaField(props) {
19013
18677
  return /* @__PURE__ */ jsxs2("div", { className: "rjsf-field", children: [
19014
- /* @__PURE__ */ jsx6("label", { htmlFor: isValidElement(props.selector) ? props.selector.props.id : void 0, children: "\u914D\u7F6E\u65B9\u5F0F" }),
18678
+ /* @__PURE__ */ jsx3("label", { htmlFor: isValidElement(props.selector) ? props.selector.props.id : void 0, children: "\u914D\u7F6E\u65B9\u5F0F" }),
19015
18679
  props.selector,
19016
18680
  props.optionSchemaField
19017
18681
  ] });
@@ -19039,12 +18703,12 @@ function ConfigSchemaField(inputProps) {
19039
18703
  const pointer = pointerOf(originalConfigPath(fieldPathId.path, context.removed));
19040
18704
  const originalMarker = [...context.retained].find(([, path2]) => path2 === pointer)?.[0];
19041
18705
  if (schema.const !== void 0 && schema.writeOnly !== true)
19042
- return /* @__PURE__ */ jsx6(Fragment2, { children: context.errors.filter((error) => error.path === pointer).map((error) => /* @__PURE__ */ jsx6("p", { role: "alert", children: error.message }, error.message)) });
18706
+ return /* @__PURE__ */ jsx3(Fragment2, { children: context.errors.filter((error) => error.path === pointer).map((error) => /* @__PURE__ */ jsx3("p", { role: "alert", children: error.message }, error.message)) });
19043
18707
  if (schema.writeOnly === true) {
19044
18708
  const kept = typeof formData === "string" && context.retained.has(formData);
19045
18709
  return /* @__PURE__ */ jsxs2("div", { className: "rjsf-field", children: [
19046
18710
  Array.isArray(schema.type) && schema.type.includes("null") ? /* @__PURE__ */ jsxs2("label", { children: [
19047
- /* @__PURE__ */ jsx6(
18711
+ /* @__PURE__ */ jsx3(
19048
18712
  "input",
19049
18713
  {
19050
18714
  type: "checkbox",
@@ -19056,8 +18720,8 @@ function ConfigSchemaField(inputProps) {
19056
18720
  schema.title ?? props.name,
19057
18721
  "\uFF1A\u7F6E\u4E3A\u7A7A\u503C"
19058
18722
  ] }) : null,
19059
- /* @__PURE__ */ jsx6("label", { htmlFor: fieldPathId.$id, "data-required": props.required, children: schema.title ?? props.name }),
19060
- /* @__PURE__ */ jsx6(
18723
+ /* @__PURE__ */ jsx3("label", { htmlFor: fieldPathId.$id, "data-required": props.required, children: schema.title ?? props.name }),
18724
+ /* @__PURE__ */ jsx3(
19061
18725
  "input",
19062
18726
  {
19063
18727
  id: fieldPathId.$id,
@@ -19070,8 +18734,8 @@ function ConfigSchemaField(inputProps) {
19070
18734
  onChange: (event) => onChange(event.target.value || originalMarker, fieldPathId.path)
19071
18735
  }
19072
18736
  ),
19073
- kept ? /* @__PURE__ */ jsx6("p", { children: "\u5DF2\u4FDD\u5B58\uFF0C\u7559\u7A7A\u4FDD\u6301\u4E0D\u53D8" }) : null,
19074
- formData !== void 0 ? /* @__PURE__ */ jsx6(
18737
+ kept ? /* @__PURE__ */ jsx3("p", { children: "\u5DF2\u4FDD\u5B58\uFF0C\u7559\u7A7A\u4FDD\u6301\u4E0D\u53D8" }) : null,
18738
+ formData !== void 0 ? /* @__PURE__ */ jsx3(
19075
18739
  "button",
19076
18740
  {
19077
18741
  type: "button",
@@ -19080,8 +18744,8 @@ function ConfigSchemaField(inputProps) {
19080
18744
  children: "\u6E05\u9664\u5DF2\u4FDD\u5B58\u7684\u503C"
19081
18745
  }
19082
18746
  ) : null,
19083
- schema.description ? /* @__PURE__ */ jsx6("p", { children: schema.description }) : null,
19084
- context.errors.filter((error) => error.path === pointer).map((error) => /* @__PURE__ */ jsx6("p", { role: "alert", children: error.message }, error.message))
18747
+ schema.description ? /* @__PURE__ */ jsx3("p", { children: schema.description }) : null,
18748
+ context.errors.filter((error) => error.path === pointer).map((error) => /* @__PURE__ */ jsx3("p", { role: "alert", children: error.message }, error.message))
19085
18749
  ] });
19086
18750
  }
19087
18751
  const types = Array.isArray(schema.type) ? schema.type : [schema.type];
@@ -19090,7 +18754,7 @@ function ConfigSchemaField(inputProps) {
19090
18754
  const inner = { ...schema, type: nonNull[0] };
19091
18755
  return /* @__PURE__ */ jsxs2("div", { className: "rjsf-field", children: [
19092
18756
  /* @__PURE__ */ jsxs2("label", { children: [
19093
- /* @__PURE__ */ jsx6(
18757
+ /* @__PURE__ */ jsx3(
19094
18758
  "input",
19095
18759
  {
19096
18760
  type: "checkbox",
@@ -19105,28 +18769,28 @@ function ConfigSchemaField(inputProps) {
19105
18769
  schema.title ?? props.name,
19106
18770
  "\uFF1A\u7F6E\u4E3A\u7A7A\u503C"
19107
18771
  ] }),
19108
- nonNull.length && formData !== null ? /* @__PURE__ */ jsx6(defaults.fields.SchemaField, { ...props, schema: inner }) : null
18772
+ nonNull.length && formData !== null ? /* @__PURE__ */ jsx3(defaults.fields.SchemaField, { ...props, schema: inner }) : null
19109
18773
  ] });
19110
18774
  }
19111
- return /* @__PURE__ */ jsx6(defaults.fields.SchemaField, { ...props });
18775
+ return /* @__PURE__ */ jsx3(defaults.fields.SchemaField, { ...props });
19112
18776
  }
19113
18777
  function ConfigFieldTemplate(props) {
19114
18778
  const pointer = pointerOf(
19115
18779
  originalConfigPath(props.fieldPathId.path, props.registry.formContext.removed)
19116
18780
  );
19117
18781
  return /* @__PURE__ */ jsxs2("div", { className: props.classNames, hidden: props.hidden, children: [
19118
- props.displayLabel ? /* @__PURE__ */ jsx6("label", { htmlFor: props.id, "data-required": props.required, children: props.label }) : null,
18782
+ props.displayLabel ? /* @__PURE__ */ jsx3("label", { htmlFor: props.id, "data-required": props.required, children: props.label }) : null,
19119
18783
  props.displayLabel ? props.description : null,
19120
18784
  props.children,
19121
18785
  props.help,
19122
- props.registry.formContext.errors.filter((error) => error.path === pointer).map((error) => /* @__PURE__ */ jsx6("p", { role: "alert", children: error.message }, error.message))
18786
+ props.registry.formContext.errors.filter((error) => error.path === pointer).map((error) => /* @__PURE__ */ jsx3("p", { role: "alert", children: error.message }, error.message))
19123
18787
  ] });
19124
18788
  }
19125
18789
  function ConfigArrayItem(props) {
19126
18790
  const { buttonsProps: buttons, registry } = props;
19127
18791
  return /* @__PURE__ */ jsxs2("div", { className: "rjsf-array-item", children: [
19128
18792
  props.children,
19129
- buttons.hasRemove ? /* @__PURE__ */ jsx6(
18793
+ buttons.hasRemove ? /* @__PURE__ */ jsx3(
19130
18794
  "button",
19131
18795
  {
19132
18796
  type: "button",
@@ -19141,7 +18805,7 @@ function ConfigArrayItem(props) {
19141
18805
  if (previous !== void 0) registry.formContext.removed.add(pointerOf(path));
19142
18806
  buttons.onRemoveItem(event);
19143
18807
  },
19144
- children: /* @__PURE__ */ jsx6(Trash2, { size: 14 })
18808
+ children: /* @__PURE__ */ jsx3(Trash2, { size: 14 })
19145
18809
  }
19146
18810
  ) : null
19147
18811
  ] });
@@ -19154,12 +18818,12 @@ function SessionPluginConfigForm({
19154
18818
  onSubmit,
19155
18819
  onCancel
19156
18820
  }) {
19157
- const [initial] = useState11(() => createConfigDraft(config));
19158
- const [values, setValues] = useState11(initial.values);
19159
- const [removed] = useState11(() => /* @__PURE__ */ new Set());
19160
- const [draftFailure, setDraftFailure] = useState11(null);
19161
- const support = useMemo10(() => formSupport(config.schema), [config.schema]);
19162
- const schema = useMemo10(() => {
18821
+ const [initial] = useState10(() => createConfigDraft(config));
18822
+ const [values, setValues] = useState10(initial.values);
18823
+ const [removed] = useState10(() => /* @__PURE__ */ new Set());
18824
+ const [draftFailure, setDraftFailure] = useState10(null);
18825
+ const support = useMemo8(() => formSupport(config.schema), [config.schema]);
18826
+ const schema = useMemo8(() => {
19163
18827
  try {
19164
18828
  return config.schema ? presentationSchema(config.schema) : null;
19165
18829
  } catch {
@@ -19176,11 +18840,11 @@ function SessionPluginConfigForm({
19176
18840
  };
19177
18841
  if (!schema || support)
19178
18842
  return /* @__PURE__ */ jsxs2("div", { className: "space-y-3 text-xs", children: [
19179
- /* @__PURE__ */ jsx6("p", { children: support ?? "\u914D\u7F6E\u58F0\u660E\u7684\u7EC4\u5408\u65E0\u6CD5\u5448\u73B0\uFF0C\u8BF7\u8054\u7CFB\u63D2\u4EF6\u63D0\u4F9B\u65B9" }),
19180
- /* @__PURE__ */ jsx6("button", { type: "button", onClick: onCancel, children: "\u5173\u95ED" })
18843
+ /* @__PURE__ */ jsx3("p", { children: support ?? "\u914D\u7F6E\u58F0\u660E\u7684\u7EC4\u5408\u65E0\u6CD5\u5448\u73B0\uFF0C\u8BF7\u8054\u7CFB\u63D2\u4EF6\u63D0\u4F9B\u65B9" }),
18844
+ /* @__PURE__ */ jsx3("button", { type: "button", onClick: onCancel, children: "\u5173\u95ED" })
19181
18845
  ] });
19182
18846
  return /* @__PURE__ */ jsxs2("div", { className: "blade-plugin-config text-xs", children: [
19183
- /* @__PURE__ */ jsx6("style", { children: `
18847
+ /* @__PURE__ */ jsx3("style", { children: `
19184
18848
  .blade-plugin-config .rjsf-field, .blade-plugin-config fieldset { min-width:0; margin:0 0 10px; padding:0; border:0 }
19185
18849
  .blade-plugin-config label, .blade-plugin-config legend { display:block; font-size:12px; font-weight:500; overflow-wrap:anywhere; margin-bottom:4px }
19186
18850
  .blade-plugin-config label[data-required=true]::after { content:' *'; color:hsl(var(--destructive)) }
@@ -19193,8 +18857,8 @@ function SessionPluginConfigForm({
19193
18857
  .blade-plugin-config button:disabled { opacity:.5 }
19194
18858
  .blade-plugin-config .control-label { display:block }
19195
18859
  ` }),
19196
- failure || draftFailure ? /* @__PURE__ */ jsx6("p", { role: "alert", children: failure ?? draftFailure }) : null,
19197
- /* @__PURE__ */ jsx6(
18860
+ failure || draftFailure ? /* @__PURE__ */ jsx3("p", { role: "alert", children: failure ?? draftFailure }) : null,
18861
+ /* @__PURE__ */ jsx3(
19198
18862
  Form,
19199
18863
  {
19200
18864
  schema,
@@ -19208,7 +18872,7 @@ function SessionPluginConfigForm({
19208
18872
  MultiSchemaFieldTemplate: ConfigMultiSchemaField,
19209
18873
  ButtonTemplates: {
19210
18874
  ...defaults.templates.ButtonTemplates,
19211
- AddButton: (props) => /* @__PURE__ */ jsx6(
18875
+ AddButton: (props) => /* @__PURE__ */ jsx3(
19212
18876
  "button",
19213
18877
  {
19214
18878
  type: "button",
@@ -19216,7 +18880,7 @@ function SessionPluginConfigForm({
19216
18880
  "aria-label": "\u6DFB\u52A0\u4E00\u9879",
19217
18881
  disabled: props.disabled,
19218
18882
  onClick: props.onClick,
19219
- children: /* @__PURE__ */ jsx6(Plus, { size: 14 })
18883
+ children: /* @__PURE__ */ jsx3(Plus, { size: 14 })
19220
18884
  }
19221
18885
  )
19222
18886
  }
@@ -19258,8 +18922,8 @@ function SessionPluginConfigForm({
19258
18922
  }
19259
18923
  },
19260
18924
  children: /* @__PURE__ */ jsxs2("div", { className: "flex justify-end gap-2", children: [
19261
- /* @__PURE__ */ jsx6("button", { type: "button", onClick: onCancel, children: "\u53D6\u6D88" }),
19262
- /* @__PURE__ */ jsx6("button", { type: "submit", disabled: submitting, children: submitting ? "\u4FDD\u5B58\u4E2D\u2026" : "\u4FDD\u5B58" })
18925
+ /* @__PURE__ */ jsx3("button", { type: "button", onClick: onCancel, children: "\u53D6\u6D88" }),
18926
+ /* @__PURE__ */ jsx3("button", { type: "submit", disabled: submitting, children: submitting ? "\u4FDD\u5B58\u4E2D\u2026" : "\u4FDD\u5B58" })
19263
18927
  ] })
19264
18928
  }
19265
18929
  )
@@ -19267,8 +18931,8 @@ function SessionPluginConfigForm({
19267
18931
  }
19268
18932
 
19269
18933
  // src/components/SessionPluginIcon.tsx
19270
- import { useEffect as useEffect7, useState as useState12 } from "react";
19271
- import { jsx as jsx7 } from "react/jsx-runtime";
18934
+ import { useEffect as useEffect6, useState as useState11 } from "react";
18935
+ import { jsx as jsx4 } from "react/jsx-runtime";
19272
18936
  function sessionPluginLabel(plugin) {
19273
18937
  const display = typeof plugin.display_name === "string" ? plugin.display_name.trim() : "";
19274
18938
  return display || plugin.name;
@@ -19293,9 +18957,9 @@ function iconBlob(client, sessionId, name, token) {
19293
18957
  return pending;
19294
18958
  }
19295
18959
  function SessionPluginIcon({ client, sessionId, plugin, size: size4 = 20, shape = "rounded", className }) {
19296
- const [url, setUrl] = useState12(null);
18960
+ const [url, setUrl] = useState11(null);
19297
18961
  const token = plugin.icon;
19298
- useEffect7(() => {
18962
+ useEffect6(() => {
19299
18963
  setUrl(null);
19300
18964
  if (!token) return;
19301
18965
  let alive = true;
@@ -19313,14 +18977,14 @@ function SessionPluginIcon({ client, sessionId, plugin, size: size4 = 20, shape
19313
18977
  const frame = `flex shrink-0 items-center justify-center overflow-hidden ${shape === "circle" ? "rounded-full" : "rounded"} ${className ?? ""}`;
19314
18978
  const frameStyle = { width: size4, height: size4 };
19315
18979
  if (!url) {
19316
- return /* @__PURE__ */ jsx7("span", { className: `${frame} bg-[hsl(var(--muted))] text-[hsl(var(--muted-foreground))]`, style: frameStyle, "data-plugin-icon": "placeholder", children: /* @__PURE__ */ jsx7(Puzzle, { "aria-hidden": true, size: Math.round(size4 * 0.7) }) });
18980
+ return /* @__PURE__ */ jsx4("span", { className: `${frame} bg-[hsl(var(--muted))] text-[hsl(var(--muted-foreground))]`, style: frameStyle, "data-plugin-icon": "placeholder", children: /* @__PURE__ */ jsx4(Puzzle, { "aria-hidden": true, size: Math.round(size4 * 0.7) }) });
19317
18981
  }
19318
- return /* @__PURE__ */ jsx7("span", { className: frame, style: frameStyle, "data-plugin-icon": "image", children: /* @__PURE__ */ jsx7("img", { src: url, alt: "", "aria-hidden": true, className: "h-full w-full object-cover", onError: () => setUrl(null) }) });
18982
+ return /* @__PURE__ */ jsx4("span", { className: frame, style: frameStyle, "data-plugin-icon": "image", children: /* @__PURE__ */ jsx4("img", { src: url, alt: "", "aria-hidden": true, className: "h-full w-full object-cover", onError: () => setUrl(null) }) });
19319
18983
  }
19320
18984
 
19321
18985
  // src/components/SessionPluginConfigDialog.tsx
19322
- import { useEffect as useEffect8, useRef as useRef8, useState as useState13 } from "react";
19323
- import { Fragment as Fragment3, jsx as jsx8, jsxs as jsxs3 } from "react/jsx-runtime";
18986
+ import { useEffect as useEffect7, useRef as useRef7, useState as useState12 } from "react";
18987
+ import { Fragment as Fragment3, jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
19324
18988
  async function readFailure(error) {
19325
18989
  const response = error?.response;
19326
18990
  if (!response || typeof response.json !== "function") {
@@ -19347,7 +19011,7 @@ function SessionPluginConfigDialog({
19347
19011
  plugin,
19348
19012
  ...props
19349
19013
  }) {
19350
- return /* @__PURE__ */ jsx8(
19014
+ return /* @__PURE__ */ jsx5(
19351
19015
  ConfigDialogState,
19352
19016
  {
19353
19017
  client,
@@ -19365,41 +19029,66 @@ function ConfigDialogState({
19365
19029
  onSaved,
19366
19030
  onClose
19367
19031
  }) {
19368
- const [config, setConfig] = useState13(null);
19369
- const [loading, setLoading] = useState13(true);
19370
- const [loadFailure, setLoadFailure] = useState13(null);
19371
- const [saving, setSaving] = useState13(false);
19372
- const [failure, setFailure] = useState13(null);
19373
- const [fieldErrors, setFieldErrors] = useState13([]);
19374
- const [formVersion, setFormVersion] = useState13(0);
19375
- const alive = useRef8(true);
19376
- const generation = useRef8(0);
19377
- const dialog = useRef8(null);
19378
- useEffect8(() => {
19032
+ const [host, setHost] = useState12(null);
19033
+ const [restarting, setRestarting] = useState12(false);
19034
+ const [scope, setScope] = useState12("personal");
19035
+ const waitingForHost = host?.state === "starting" || host?.state === "updating";
19036
+ useEffect7(() => {
19037
+ if (!waitingForHost) return;
19038
+ const abort = new AbortController();
19039
+ let timer;
19040
+ const refresh = async () => {
19041
+ try {
19042
+ const next = await client.sessions.getSessionPluginConfig(sessionId, plugin.name, { signal: abort.signal }, scope);
19043
+ if (!abort.signal.aborted) setHost(next.host ?? null);
19044
+ } catch {
19045
+ }
19046
+ if (!abort.signal.aborted) timer = setTimeout(refresh, 2e3);
19047
+ };
19048
+ timer = setTimeout(refresh, 2e3);
19049
+ return () => {
19050
+ abort.abort();
19051
+ clearTimeout(timer);
19052
+ };
19053
+ }, [client, sessionId, plugin.name, scope, waitingForHost]);
19054
+ const [canConfigureGlobal, setCanConfigureGlobal] = useState12(false);
19055
+ const [config, setConfig] = useState12(null);
19056
+ const [loading, setLoading] = useState12(true);
19057
+ const [loadFailure, setLoadFailure] = useState12(null);
19058
+ const [saving, setSaving] = useState12(false);
19059
+ const [failure, setFailure] = useState12(null);
19060
+ const [fieldErrors, setFieldErrors] = useState12([]);
19061
+ const [formVersion, setFormVersion] = useState12(0);
19062
+ const alive = useRef7(true);
19063
+ const generation2 = useRef7(0);
19064
+ const dialog = useRef7(null);
19065
+ useEffect7(() => {
19379
19066
  const element = dialog.current;
19380
19067
  if (!element || element.open) return;
19381
19068
  if (typeof element.showModal === "function") element.showModal();
19382
19069
  else element.setAttribute("open", "");
19383
19070
  }, []);
19384
19071
  const load = async () => {
19385
- const current = ++generation.current;
19072
+ const current = ++generation2.current;
19386
19073
  setLoading(true);
19387
19074
  setLoadFailure(null);
19388
19075
  try {
19389
- const { config: state } = await client.sessions.getSessionPluginConfig(sessionId, plugin.name);
19390
- if (!alive.current || generation.current !== current) return;
19076
+ const { config: state, can_configure_global, host: hostState } = await client.sessions.getSessionPluginConfig(sessionId, plugin.name, void 0, scope);
19077
+ if (!alive.current || generation2.current !== current) return;
19078
+ setCanConfigureGlobal(can_configure_global ?? false);
19079
+ setHost(hostState ?? null);
19391
19080
  setConfig(state);
19392
19081
  setFormVersion((value) => value + 1);
19393
19082
  } catch (error) {
19394
- if (!alive.current || generation.current !== current) return;
19083
+ if (!alive.current || generation2.current !== current) return;
19395
19084
  const detail = await readFailure(error);
19396
- if (!alive.current || generation.current !== current) return;
19085
+ if (!alive.current || generation2.current !== current) return;
19397
19086
  setLoadFailure(detail.message ?? "\u914D\u7F6E\u6682\u4E0D\u53EF\u7528");
19398
19087
  } finally {
19399
- if (alive.current && generation.current === current) setLoading(false);
19088
+ if (alive.current && generation2.current === current) setLoading(false);
19400
19089
  }
19401
19090
  };
19402
- useEffect8(() => {
19091
+ useEffect7(() => {
19403
19092
  alive.current = true;
19404
19093
  setConfig(null);
19405
19094
  setFailure(null);
@@ -19407,12 +19096,12 @@ function ConfigDialogState({
19407
19096
  void load();
19408
19097
  return () => {
19409
19098
  alive.current = false;
19410
- generation.current++;
19099
+ generation2.current++;
19411
19100
  };
19412
- }, [client, sessionId, plugin.name]);
19101
+ }, [client, sessionId, plugin.name, scope]);
19413
19102
  const save = async (draft) => {
19414
19103
  if (!config) return;
19415
- const current = generation.current;
19104
+ const current = generation2.current;
19416
19105
  setSaving(true);
19417
19106
  setFailure(null);
19418
19107
  setFieldErrors([]);
@@ -19424,16 +19113,18 @@ function ConfigDialogState({
19424
19113
  expected_revision: config.revision,
19425
19114
  set: draft.set,
19426
19115
  remove: draft.remove
19427
- }
19116
+ },
19117
+ void 0,
19118
+ scope
19428
19119
  );
19429
- if (!alive.current || generation.current !== current) return;
19120
+ if (!alive.current || generation2.current !== current) return;
19430
19121
  setConfig(state);
19431
19122
  setFormVersion((value) => value + 1);
19432
- onSaved?.(state);
19123
+ if (scope === "personal") onSaved?.(state);
19433
19124
  } catch (error) {
19434
- if (!alive.current || generation.current !== current) return;
19125
+ if (!alive.current || generation2.current !== current) return;
19435
19126
  const detail = await readFailure(error);
19436
- if (!alive.current || generation.current !== current) return;
19127
+ if (!alive.current || generation2.current !== current) return;
19437
19128
  setFailure(detail.message ?? "\u914D\u7F6E\u672A\u4FDD\u5B58\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5");
19438
19129
  setFieldErrors(detail.errors ?? []);
19439
19130
  if (detail.code === "plugin_config_conflict") await load();
@@ -19442,7 +19133,7 @@ function ConfigDialogState({
19442
19133
  }
19443
19134
  };
19444
19135
  return /* @__PURE__ */ jsxs3(Fragment3, { children: [
19445
- /* @__PURE__ */ jsx8("style", { children: ".blade-plugin-dialog::backdrop { background: rgb(0 0 0 / 40%); }" }),
19136
+ /* @__PURE__ */ jsx5("style", { children: ".blade-plugin-dialog::backdrop { background: rgb(0 0 0 / 40%); }" }),
19446
19137
  /* @__PURE__ */ jsxs3(
19447
19138
  "dialog",
19448
19139
  {
@@ -19469,8 +19160,8 @@ function ConfigDialogState({
19469
19160
  className: "blade-plugin-dialog max-h-[80vh] overflow-y-auto rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-4 text-[hsl(var(--popover-foreground))] shadow-lg",
19470
19161
  children: [
19471
19162
  /* @__PURE__ */ jsxs3("div", { className: "mb-3 flex items-center gap-2", children: [
19472
- /* @__PURE__ */ jsx8(SessionPluginIcon, { client, sessionId, plugin }),
19473
- /* @__PURE__ */ jsx8(
19163
+ /* @__PURE__ */ jsx5(SessionPluginIcon, { client, sessionId, plugin }),
19164
+ /* @__PURE__ */ jsx5(
19474
19165
  "span",
19475
19166
  {
19476
19167
  className: "min-w-0 flex-1 truncate text-sm font-medium",
@@ -19478,7 +19169,7 @@ function ConfigDialogState({
19478
19169
  children: sessionPluginLabel(plugin)
19479
19170
  }
19480
19171
  ),
19481
- /* @__PURE__ */ jsx8(
19172
+ /* @__PURE__ */ jsx5(
19482
19173
  "button",
19483
19174
  {
19484
19175
  type: "button",
@@ -19489,10 +19180,44 @@ function ConfigDialogState({
19489
19180
  }
19490
19181
  )
19491
19182
  ] }),
19492
- loading ? /* @__PURE__ */ jsx8("p", { className: "text-xs text-[hsl(var(--muted-foreground))]", children: "\u6B63\u5728\u8BFB\u53D6\u914D\u7F6E\u2026" }) : null,
19183
+ canConfigureGlobal ? /* @__PURE__ */ jsxs3("div", { className: "mb-3 flex gap-2 text-xs", children: [
19184
+ /* @__PURE__ */ jsx5("button", { type: "button", disabled: saving, "aria-pressed": scope === "personal", onClick: () => setScope("personal"), children: "\u6211\u7684\u767B\u5F55" }),
19185
+ /* @__PURE__ */ jsx5("button", { type: "button", disabled: saving, "aria-pressed": scope === "global", onClick: () => setScope("global"), children: "\u7EC4\u7EC7\u5171\u4EAB\u914D\u7F6E" })
19186
+ ] }) : null,
19187
+ host ? /* @__PURE__ */ jsxs3("div", { className: "mb-3 space-y-1 text-xs", children: [
19188
+ /* @__PURE__ */ jsxs3("p", { children: [
19189
+ "\u670D\u52A1\uFF1A",
19190
+ host.reason,
19191
+ " \xB7 \u5DF2\u6062\u590D ",
19192
+ host.restarts,
19193
+ " \u6B21"
19194
+ ] }),
19195
+ canConfigureGlobal ? /* @__PURE__ */ jsxs3(Fragment3, { children: [
19196
+ /* @__PURE__ */ jsxs3("p", { className: "break-all text-[hsl(var(--muted-foreground))]", children: [
19197
+ "\u5305\u6458\u8981\uFF1A",
19198
+ host.digest,
19199
+ " \xB7 \u914D\u7F6E\uFF1A",
19200
+ host.revision
19201
+ ] }),
19202
+ /* @__PURE__ */ jsx5("button", { type: "button", disabled: restarting || saving, onClick: () => {
19203
+ setRestarting(true);
19204
+ void client.sessions.restartSessionPluginHost(sessionId, plugin.name).then(() => load()).catch(() => setFailure("\u670D\u52A1\u6682\u65F6\u4E0D\u53EF\u7528\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5")).finally(() => {
19205
+ if (alive.current) setRestarting(false);
19206
+ });
19207
+ }, children: restarting ? "\u6B63\u5728\u91CD\u542F\u2026" : "\u91CD\u542F\u670D\u52A1" }),
19208
+ host.recent?.length ? /* @__PURE__ */ jsxs3("details", { children: [
19209
+ /* @__PURE__ */ jsx5("summary", { children: "\u6700\u8FD1\u6D3B\u52A8" }),
19210
+ host.recent.map((line, index2) => /* @__PURE__ */ jsx5("p", { children: line }, `${index2}-${line}`))
19211
+ ] }) : null
19212
+ ] }) : null
19213
+ ] }) : null,
19214
+ scope === "personal" && config?.auth_status === "expired" ? /* @__PURE__ */ jsx5("p", { className: "mb-2 text-xs", children: "\u767B\u5F55\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u91CD\u65B0\u586B\u5199" }) : null,
19215
+ scope === "personal" && config?.global_ready === false ? /* @__PURE__ */ jsx5("p", { className: "mb-2 text-xs", children: "\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u586B\u5199\u5171\u4EAB\u914D\u7F6E" }) : null,
19216
+ scope === "global" ? /* @__PURE__ */ jsx5("p", { className: "mb-2 text-xs", children: "\u5171\u4EAB\u5BC6\u94A5\u7528\u4E8E\u63D2\u4EF6\u670D\u52A1\u3002\u547D\u4EE4\u7C7B\u63D2\u4EF6\u7684\u6C99\u76D2\u4EE3\u7801\u53EF\u4EE5\u8BFB\u53D6\u5B83\uFF1B\u9700\u4FDD\u5BC6\u65F6\u8BF7\u4F7F\u7528\u6258\u7BA1\u670D\u52A1\u3002" }) : null,
19217
+ loading ? /* @__PURE__ */ jsx5("p", { className: "text-xs text-[hsl(var(--muted-foreground))]", children: "\u6B63\u5728\u8BFB\u53D6\u914D\u7F6E\u2026" }) : null,
19493
19218
  loadFailure ? /* @__PURE__ */ jsxs3("div", { className: "space-y-2 text-xs", children: [
19494
- /* @__PURE__ */ jsx8("p", { children: loadFailure }),
19495
- /* @__PURE__ */ jsx8(
19219
+ /* @__PURE__ */ jsx5("p", { children: loadFailure }),
19220
+ /* @__PURE__ */ jsx5(
19496
19221
  "button",
19497
19222
  {
19498
19223
  type: "button",
@@ -19502,7 +19227,7 @@ function ConfigDialogState({
19502
19227
  }
19503
19228
  )
19504
19229
  ] }) : null,
19505
- config && !loading ? /* @__PURE__ */ jsx8(
19230
+ config && !loading ? /* @__PURE__ */ jsx5(
19506
19231
  SessionPluginConfigForm,
19507
19232
  {
19508
19233
  config,
@@ -19521,17 +19246,16 @@ function ConfigDialogState({
19521
19246
  }
19522
19247
 
19523
19248
  // src/components/PluginConnectorList.tsx
19524
- import { jsx as jsx9, jsxs as jsxs4 } from "react/jsx-runtime";
19249
+ import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
19525
19250
  function PluginSwitch({
19526
19251
  label,
19527
19252
  checked,
19528
19253
  pending,
19529
19254
  disabled,
19530
- /** 首页的开关只是"这次输入的待选",不是"已经启用",措辞必须跟着分。 */
19531
19255
  draft = false,
19532
19256
  onToggle
19533
19257
  }) {
19534
- return /* @__PURE__ */ jsx9(
19258
+ return /* @__PURE__ */ jsx6(
19535
19259
  "button",
19536
19260
  {
19537
19261
  type: "button",
@@ -19541,12 +19265,12 @@ function PluginSwitch({
19541
19265
  disabled,
19542
19266
  onClick: () => onToggle(!checked),
19543
19267
  className: `relative inline-flex h-[18px] w-8 shrink-0 cursor-pointer items-center rounded-full border transition-colors disabled:cursor-not-allowed disabled:opacity-50 ${checked ? "border-transparent bg-[hsl(213_94%_55%)]" : "border-[hsl(var(--border))] bg-[hsl(var(--muted))]"}`,
19544
- children: /* @__PURE__ */ jsx9(
19268
+ children: /* @__PURE__ */ jsx6(
19545
19269
  "span",
19546
19270
  {
19547
19271
  "aria-hidden": "true",
19548
19272
  className: `pointer-events-none flex h-3.5 w-3.5 items-center justify-center rounded-full bg-white shadow transition-transform ${checked ? "translate-x-[16px]" : "translate-x-[2px]"}`,
19549
- children: pending ? /* @__PURE__ */ jsx9(LoaderCircle, { size: 9, className: "animate-spin text-[hsl(var(--muted-foreground))]" }) : null
19273
+ children: pending ? /* @__PURE__ */ jsx6(LoaderCircle, { size: 9, className: "animate-spin text-[hsl(var(--muted-foreground))]" }) : null
19550
19274
  }
19551
19275
  )
19552
19276
  }
@@ -19572,8 +19296,8 @@ function PluginConnectorList({
19572
19296
  }) {
19573
19297
  const configuringItem = configuring ? items.find((item) => item.name === configuring.name) ?? null : null;
19574
19298
  return /* @__PURE__ */ jsxs4("div", { className: "py-0.5", children: [
19575
- disabledReason ? /* @__PURE__ */ jsx9("div", { className: "px-3 py-1.5 text-[11px] text-[hsl(var(--muted-foreground))]", children: disabledReason }) : null,
19576
- items.length === 0 ? /* @__PURE__ */ jsx9("div", { className: "px-3 py-1.5 text-[11px] text-[hsl(var(--muted-foreground))]", children: unavailableText ?? emptyText }) : null,
19299
+ disabledReason ? /* @__PURE__ */ jsx6("div", { className: "px-3 py-1.5 text-[11px] text-[hsl(var(--muted-foreground))]", children: disabledReason }) : null,
19300
+ items.length === 0 ? /* @__PURE__ */ jsx6("div", { className: "px-3 py-1.5 text-[11px] text-[hsl(var(--muted-foreground))]", children: unavailableText ?? emptyText }) : null,
19577
19301
  items.map((item) => {
19578
19302
  const label = sessionPluginLabel(item);
19579
19303
  const actionable = !disabledReason && item.installed !== false || item.active;
@@ -19581,7 +19305,7 @@ function PluginConnectorList({
19581
19305
  const checked = item.active;
19582
19306
  return /* @__PURE__ */ jsxs4("div", { className: "group px-3 py-1", children: [
19583
19307
  /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-2", children: [
19584
- /* @__PURE__ */ jsx9(
19308
+ /* @__PURE__ */ jsx6(
19585
19309
  SessionPluginIcon,
19586
19310
  {
19587
19311
  client,
@@ -19589,8 +19313,9 @@ function PluginConnectorList({
19589
19313
  plugin: item
19590
19314
  }
19591
19315
  ),
19592
- /* @__PURE__ */ jsx9("span", { className: "min-w-0 flex-1 truncate text-[11px]", title: label, children: label }),
19593
- !draft && item.config === "configured" ? /* @__PURE__ */ jsx9(
19316
+ /* @__PURE__ */ jsx6("span", { className: "min-w-0 flex-1 truncate text-[11px]", title: label, children: label }),
19317
+ item.auth_status === "expired" || item.auth_status === "login_required" || item.auth_status === "unavailable" ? /* @__PURE__ */ jsx6("button", { type: "button", disabled: !sessionId || busy, onClick: () => onEditConfig(item), className: "shrink-0 text-[10px] underline", children: item.auth_status === "expired" ? "\u767B\u5F55\u5DF2\u8FC7\u671F" : item.auth_status === "unavailable" ? "\u6682\u65F6\u4E0D\u53EF\u7528" : "\u672A\u767B\u5F55" }) : null,
19318
+ !draft && item.config === "configured" ? /* @__PURE__ */ jsx6(
19594
19319
  "button",
19595
19320
  {
19596
19321
  type: "button",
@@ -19601,7 +19326,7 @@ function PluginConnectorList({
19601
19326
  children: "\u66F4\u65B0\u914D\u7F6E"
19602
19327
  }
19603
19328
  ) : null,
19604
- !draft && (item.config === "required" || item.config === "error") ? /* @__PURE__ */ jsx9(
19329
+ !draft && (item.config === "required" || item.config === "error") ? /* @__PURE__ */ jsx6(
19605
19330
  "button",
19606
19331
  {
19607
19332
  type: "button",
@@ -19612,7 +19337,7 @@ function PluginConnectorList({
19612
19337
  children: "\u586B\u5199\u914D\u7F6E"
19613
19338
  }
19614
19339
  ) : null,
19615
- /* @__PURE__ */ jsx9(
19340
+ /* @__PURE__ */ jsx6(
19616
19341
  PluginSwitch,
19617
19342
  {
19618
19343
  label,
@@ -19625,8 +19350,8 @@ function PluginConnectorList({
19625
19350
  )
19626
19351
  ] }),
19627
19352
  !draft && item.active && item.status !== "valid" && item.status !== "required" ? /* @__PURE__ */ jsxs4("div", { className: "mt-0.5 flex items-center gap-2 pl-7 text-[10px] text-[hsl(var(--muted-foreground))]", children: [
19628
- /* @__PURE__ */ jsx9("span", { children: item.reason || "\u63D2\u4EF6\u6682\u4E0D\u53EF\u7528" }),
19629
- /* @__PURE__ */ jsx9(
19353
+ /* @__PURE__ */ jsx6("span", { children: item.reason || "\u63D2\u4EF6\u6682\u4E0D\u53EF\u7528" }),
19354
+ /* @__PURE__ */ jsx6(
19630
19355
  "button",
19631
19356
  {
19632
19357
  type: "button",
@@ -19639,8 +19364,8 @@ function PluginConnectorList({
19639
19364
  ] }) : null
19640
19365
  ] }, item.name);
19641
19366
  }),
19642
- mutationError ? /* @__PURE__ */ jsx9("div", { className: "px-3 pt-1 text-[10px] text-[hsl(var(--destructive))]", children: "\u64CD\u4F5C\u672A\u5B8C\u6210\uFF0C\u8BF7\u91CD\u8BD5" }) : null,
19643
- configuring && configuringItem && sessionId ? /* @__PURE__ */ jsx9(
19367
+ mutationError ? /* @__PURE__ */ jsx6("div", { className: "px-3 pt-1 text-[10px] text-[hsl(var(--destructive))]", children: "\u64CD\u4F5C\u672A\u5B8C\u6210\uFF0C\u8BF7\u91CD\u8BD5" }) : null,
19368
+ configuring && configuringItem && sessionId ? /* @__PURE__ */ jsx6(
19644
19369
  SessionPluginConfigDialog,
19645
19370
  {
19646
19371
  client,
@@ -19661,6 +19386,7 @@ function catalogToConnectorItems(catalog) {
19661
19386
  icon: entry.icon,
19662
19387
  iconSource: "account",
19663
19388
  installed: entry.installed,
19389
+ auth_status: entry.auth_status,
19664
19390
  active: false,
19665
19391
  status: "not_prepared",
19666
19392
  projected: false
@@ -19690,6 +19416,7 @@ function mergeConnectorItems(sessionPlugins, catalog) {
19690
19416
  icon: entry.icon,
19691
19417
  iconSource: "account",
19692
19418
  installed: entry.installed,
19419
+ auth_status: entry.auth_status,
19693
19420
  active: plugin.active,
19694
19421
  status: plugin.status,
19695
19422
  reason: plugin.reason,
@@ -19707,29 +19434,29 @@ function filterConnectorItems(items, query) {
19707
19434
  }
19708
19435
 
19709
19436
  // src/components/use-session-plugin-activation.ts
19710
- import { useCallback as useCallback19, useEffect as useEffect9, useMemo as useMemo11, useRef as useRef9, useState as useState14 } from "react";
19437
+ import { useCallback as useCallback19, useEffect as useEffect8, useMemo as useMemo9, useRef as useRef8, useState as useState13 } from "react";
19711
19438
  function useSessionPluginActivation({
19712
19439
  client,
19713
19440
  sessionId,
19714
19441
  onChange
19715
19442
  }) {
19716
- const [plugins, setPlugins] = useState14([]);
19717
- const [catalog, setCatalog] = useState14(null);
19718
- const [loading, setLoading] = useState14(false);
19719
- const [listError, setListError] = useState14(false);
19720
- const [mutationError, setMutationError] = useState14(false);
19721
- const [inFlight, setInFlight] = useState14({});
19722
- const [configuring, setConfiguring] = useState14(null);
19723
- const alive = useRef9(true);
19724
- const generation = useRef9(0);
19725
- const mutationGenerations = useRef9(/* @__PURE__ */ new Map());
19726
- const desiredActivations = useRef9(/* @__PURE__ */ new Map());
19727
- const pendingMutations = useRef9(/* @__PURE__ */ new Map());
19728
- const submittedActivations = useRef9(/* @__PURE__ */ new Set());
19729
- const serverActive = useRef9(/* @__PURE__ */ new Set());
19730
- const lifetime = useRef9(0);
19731
- const request = useRef9(null);
19732
- const [desiredVersion, setDesiredVersion] = useState14(0);
19443
+ const [plugins, setPlugins] = useState13([]);
19444
+ const [catalog, setCatalog] = useState13(null);
19445
+ const [loading, setLoading] = useState13(false);
19446
+ const [listError, setListError] = useState13(false);
19447
+ const [mutationError, setMutationError] = useState13(false);
19448
+ const [inFlight, setInFlight] = useState13({});
19449
+ const [configuring, setConfiguring] = useState13(null);
19450
+ const alive = useRef8(true);
19451
+ const generation2 = useRef8(0);
19452
+ const mutationGenerations = useRef8(/* @__PURE__ */ new Map());
19453
+ const desiredActivations = useRef8(/* @__PURE__ */ new Map());
19454
+ const pendingMutations = useRef8(/* @__PURE__ */ new Map());
19455
+ const submittedActivations = useRef8(/* @__PURE__ */ new Set());
19456
+ const serverActive = useRef8(/* @__PURE__ */ new Set());
19457
+ const lifetime = useRef8(0);
19458
+ const request = useRef8(null);
19459
+ const [desiredVersion, setDesiredVersion] = useState13(0);
19733
19460
  const setDesired = useCallback19((name, value) => {
19734
19461
  if (value === null) {
19735
19462
  if (!desiredActivations.current.delete(name)) return;
@@ -19739,7 +19466,7 @@ function useSessionPluginActivation({
19739
19466
  }
19740
19467
  setDesiredVersion((version) => version + 1);
19741
19468
  }, []);
19742
- const items = useMemo11(() => {
19469
+ const items = useMemo9(() => {
19743
19470
  void desiredVersion;
19744
19471
  const merged = mergeConnectorItems(plugins, catalog);
19745
19472
  return merged.map((item) => {
@@ -19759,7 +19486,7 @@ function useSessionPluginActivation({
19759
19486
  return rest;
19760
19487
  });
19761
19488
  }, []);
19762
- useEffect9(() => {
19489
+ useEffect8(() => {
19763
19490
  alive.current = true;
19764
19491
  setPlugins([]);
19765
19492
  setCatalog(null);
@@ -19775,7 +19502,7 @@ function useSessionPluginActivation({
19775
19502
  return () => {
19776
19503
  alive.current = false;
19777
19504
  lifetime.current++;
19778
- generation.current++;
19505
+ generation2.current++;
19779
19506
  request.current?.abort();
19780
19507
  };
19781
19508
  }, [client]);
@@ -19784,7 +19511,7 @@ function useSessionPluginActivation({
19784
19511
  request.current?.abort();
19785
19512
  const controller = new AbortController();
19786
19513
  request.current = controller;
19787
- const current = ++generation.current;
19514
+ const current = ++generation2.current;
19788
19515
  setLoading(true);
19789
19516
  setListError(false);
19790
19517
  try {
@@ -19802,7 +19529,7 @@ function useSessionPluginActivation({
19802
19529
  }
19803
19530
  })
19804
19531
  );
19805
- if (alive.current && current === generation.current) {
19532
+ if (alive.current && current === generation2.current) {
19806
19533
  serverActive.current = new Set(withConfig.filter((item) => item.active).map((item) => item.name));
19807
19534
  setPlugins(withConfig.map((item) => {
19808
19535
  const desired = desiredActivations.current.get(item.name);
@@ -19810,9 +19537,9 @@ function useSessionPluginActivation({
19810
19537
  }));
19811
19538
  }
19812
19539
  } catch {
19813
- if (alive.current && current === generation.current && !controller.signal.aborted) setListError(true);
19540
+ if (alive.current && current === generation2.current && !controller.signal.aborted) setListError(true);
19814
19541
  } finally {
19815
- if (alive.current && current === generation.current) setLoading(false);
19542
+ if (alive.current && current === generation2.current) setLoading(false);
19816
19543
  }
19817
19544
  }, [client, sessionId]);
19818
19545
  const loadCatalog = useCallback19(async () => {
@@ -19874,112 +19601,341 @@ function useSessionPluginActivation({
19874
19601
  void load();
19875
19602
  }
19876
19603
  }
19877
- },
19878
- [client, finish, load, markInFlight, onChange, sessionId, setDesired]
19604
+ },
19605
+ [client, finish, load, markInFlight, onChange, sessionId, setDesired]
19606
+ );
19607
+ const enable = useCallback19(async (name) => {
19608
+ if (!alive.current) return;
19609
+ const startedAt = lifetime.current;
19610
+ const mutation = (mutationGenerations.current.get(name) ?? 0) + 1;
19611
+ mutationGenerations.current.set(name, mutation);
19612
+ pendingMutations.current.set(name, mutation);
19613
+ setDesired(name, true);
19614
+ setMutationError(false);
19615
+ markInFlight(name, true);
19616
+ request.current?.abort();
19617
+ generation2.current++;
19618
+ setLoading(false);
19619
+ let state;
19620
+ try {
19621
+ const result = await client.sessions.prepareSessionPluginConfig(sessionId, name);
19622
+ if (!alive.current || startedAt !== lifetime.current || mutation !== mutationGenerations.current.get(name)) return;
19623
+ state = result.config;
19624
+ } catch {
19625
+ if (!alive.current || startedAt !== lifetime.current || mutation !== mutationGenerations.current.get(name)) return;
19626
+ abandon(name);
19627
+ setMutationError(true);
19628
+ return;
19629
+ }
19630
+ if (state.state === "required") {
19631
+ pendingMutations.current.delete(name);
19632
+ markInFlight(name, false);
19633
+ setConfiguring({ name, pendingActivation: true });
19634
+ return;
19635
+ }
19636
+ if (state.state !== "configured" && state.state !== "not_required") {
19637
+ abandon(name);
19638
+ setMutationError(true);
19639
+ return;
19640
+ }
19641
+ setPlugins((current) => current.map((item) => item.name === name ? { ...item, config: state.state } : item));
19642
+ await commitActivation(name, true, mutation, startedAt);
19643
+ }, [abandon, client, commitActivation, markInFlight, sessionId, setDesired]);
19644
+ const disable = useCallback19((name) => {
19645
+ const startedAt = lifetime.current;
19646
+ request.current?.abort();
19647
+ generation2.current++;
19648
+ setLoading(false);
19649
+ if (!submittedActivations.current.has(name) && !serverActive.current.has(name)) {
19650
+ abandon(name);
19651
+ return;
19652
+ }
19653
+ const mutation = (mutationGenerations.current.get(name) ?? 0) + 1;
19654
+ mutationGenerations.current.set(name, mutation);
19655
+ pendingMutations.current.set(name, mutation);
19656
+ setDesired(name, false);
19657
+ setMutationError(false);
19658
+ markInFlight(name, true);
19659
+ void commitActivation(name, false, mutation, startedAt);
19660
+ }, [abandon, commitActivation, markInFlight, setDesired]);
19661
+ const toggle = useCallback19((item, next) => {
19662
+ if (next) void enable(item.name);
19663
+ else disable(item.name);
19664
+ }, [disable, enable]);
19665
+ const retry = useCallback19((item) => {
19666
+ void enable(item.name);
19667
+ }, [enable]);
19668
+ const editConfig = useCallback19((item) => {
19669
+ setConfiguring({ name: item.name, pendingActivation: false });
19670
+ }, []);
19671
+ const onConfigSaved = useCallback19((state) => {
19672
+ const target = configuring;
19673
+ if (!target) return;
19674
+ setConfiguring(null);
19675
+ void loadCatalog();
19676
+ setPlugins((current) => current.map((item) => item.name === target.name ? { ...item, config: state.state } : item));
19677
+ if (!target.pendingActivation || state.state !== "configured") {
19678
+ void load();
19679
+ return;
19680
+ }
19681
+ const startedAt = lifetime.current;
19682
+ const mutation = (mutationGenerations.current.get(target.name) ?? 0) + 1;
19683
+ mutationGenerations.current.set(target.name, mutation);
19684
+ pendingMutations.current.set(target.name, mutation);
19685
+ setDesired(target.name, true);
19686
+ markInFlight(target.name, true);
19687
+ void commitActivation(target.name, true, mutation, startedAt);
19688
+ }, [commitActivation, configuring, load, loadCatalog, markInFlight, setDesired]);
19689
+ const onConfigClose = useCallback19(() => {
19690
+ const target = configuring;
19691
+ if (!target) return;
19692
+ setConfiguring(null);
19693
+ if (target.pendingActivation) abandon(target.name);
19694
+ else void load();
19695
+ }, [abandon, configuring, load]);
19696
+ return {
19697
+ items,
19698
+ loading,
19699
+ listError,
19700
+ mutationError,
19701
+ inFlight,
19702
+ busy: Object.keys(inFlight).length > 0,
19703
+ configuring,
19704
+ reload,
19705
+ toggle,
19706
+ retry,
19707
+ editConfig,
19708
+ onConfigSaved,
19709
+ onConfigClose
19710
+ };
19711
+ }
19712
+
19713
+ // src/chat/runtime/session-source.tsx
19714
+ import { createInitialSessionState } from "@blade-hq/agent-client/internal";
19715
+ import {
19716
+ createContext as createContext3,
19717
+ useContext as useContext3,
19718
+ useEffect as useEffect9,
19719
+ useLayoutEffect,
19720
+ useMemo as useMemo10,
19721
+ useRef as useRef9,
19722
+ useState as useState14,
19723
+ useSyncExternalStore
19724
+ } from "react";
19725
+ import { jsx as jsx7 } from "react/jsx-runtime";
19726
+ var EMPTY_SOURCE = {
19727
+ subscribe: () => () => {
19728
+ },
19729
+ getSession: () => void 0,
19730
+ isHistoryLoading: () => false,
19731
+ planRevealRevision: () => 0
19732
+ };
19733
+ var SessionSourceContext = createContext3(EMPTY_SOURCE);
19734
+ function SessionSourceProvider({ source, children }) {
19735
+ return /* @__PURE__ */ jsx7(SessionSourceContext.Provider, { value: source, children });
19736
+ }
19737
+ function useSessionSource() {
19738
+ return useContext3(SessionSourceContext);
19739
+ }
19740
+ var SingleSessionSource = class {
19741
+ session = null;
19742
+ loading = false;
19743
+ listeners = /* @__PURE__ */ new Set();
19744
+ revisions = /* @__PURE__ */ new Map();
19745
+ subscribe = (listener) => {
19746
+ this.listeners.add(listener);
19747
+ return () => {
19748
+ this.listeners.delete(listener);
19749
+ };
19750
+ };
19751
+ getSession = (sessionId) => {
19752
+ const current = this.session;
19753
+ return current && (!sessionId || current.sessionId === sessionId) ? current : void 0;
19754
+ };
19755
+ isHistoryLoading = (sessionId) => {
19756
+ if (!this.session) return this.loading;
19757
+ return (!sessionId || this.session.sessionId === sessionId) && this.loading;
19758
+ };
19759
+ planRevealRevision = (sessionId) => sessionId ? this.revisions.get(sessionId) ?? 0 : 0;
19760
+ update(session, loading) {
19761
+ if (this.session === session && this.loading === loading) return;
19762
+ this.session = session;
19763
+ this.loading = loading;
19764
+ this.notify();
19765
+ }
19766
+ watchPlan(session) {
19767
+ return session.on("toolResult", ({ toolCall, turn, source }) => {
19768
+ if (source === "reconnect_replay" || (turn.loop_id || "root") !== "root" || toolCall.status !== "done" || !isPlanUpdateTool(toolCall) || !parsePlanUpdate(toolCall.arguments)) {
19769
+ return;
19770
+ }
19771
+ this.revisions.set(session.sessionId, (this.revisions.get(session.sessionId) ?? 0) + 1);
19772
+ this.notify();
19773
+ });
19774
+ }
19775
+ notify() {
19776
+ for (const listener of [...this.listeners]) listener();
19777
+ }
19778
+ };
19779
+ function useSingleSessionSource(session, loading) {
19780
+ const [source] = useState14(() => new SingleSessionSource());
19781
+ useLayoutEffect(() => {
19782
+ source.update(session, loading);
19783
+ }, [source, session, loading]);
19784
+ useEffect9(() => session ? source.watchPlan(session) : void 0, [source, session]);
19785
+ return source;
19786
+ }
19787
+ var EMPTY_STATE = createInitialSessionState("");
19788
+ var noopSubscribe = () => () => {
19789
+ };
19790
+ function useSessionHandle(sessionId) {
19791
+ const source = useSessionSource();
19792
+ return useSyncExternalStore(
19793
+ source.subscribe,
19794
+ () => source.getSession(sessionId) ?? null,
19795
+ () => source.getSession(sessionId) ?? null
19796
+ );
19797
+ }
19798
+ function useSessionState(sessionId, selector) {
19799
+ const session = useSessionHandle(sessionId);
19800
+ const selectorRef = useRef9(selector);
19801
+ selectorRef.current = selector;
19802
+ const store = useMemo10(() => {
19803
+ let lastState = null;
19804
+ let lastSelector = null;
19805
+ let lastSelected;
19806
+ const getSnapshot = () => {
19807
+ const state = session ? session.getState() : EMPTY_STATE;
19808
+ const current = selectorRef.current;
19809
+ if (state !== lastState || current !== lastSelector) {
19810
+ const next = current(state);
19811
+ if (!(lastState !== null && Object.is(next, lastSelected))) lastSelected = next;
19812
+ lastState = state;
19813
+ lastSelector = current;
19814
+ }
19815
+ return lastSelected;
19816
+ };
19817
+ return {
19818
+ subscribe: session ? (listener) => session.subscribe(listener) : noopSubscribe,
19819
+ getSnapshot
19820
+ };
19821
+ }, [session]);
19822
+ return useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);
19823
+ }
19824
+ function useIsSessionHistoryLoading(sessionId) {
19825
+ const source = useSessionSource();
19826
+ return useSyncExternalStore(
19827
+ source.subscribe,
19828
+ () => source.isHistoryLoading(sessionId),
19829
+ () => source.isHistoryLoading(sessionId)
19830
+ );
19831
+ }
19832
+ function usePlanRevealRevision(sessionId) {
19833
+ const source = useSessionSource();
19834
+ return useSyncExternalStore(
19835
+ source.subscribe,
19836
+ () => source.planRevealRevision(sessionId),
19837
+ () => source.planRevealRevision(sessionId)
19838
+ );
19839
+ }
19840
+ var CurrentChatSessionContext = createContext3(null);
19841
+ function CurrentChatSessionProvider({ sessionId, children }) {
19842
+ return /* @__PURE__ */ jsx7(CurrentChatSessionContext.Provider, { value: sessionId, children });
19843
+ }
19844
+ function useCurrentChatSessionId() {
19845
+ return useContext3(CurrentChatSessionContext);
19846
+ }
19847
+
19848
+ // src/chat/runtime/environment.tsx
19849
+ import { createContext as createContext4, useContext as useContext4, useMemo as useMemo11 } from "react";
19850
+ import { jsx as jsx8 } from "react/jsx-runtime";
19851
+ var EMPTY_ENVIRONMENT = {};
19852
+ var ChatEnvironmentContext = createContext4(EMPTY_ENVIRONMENT);
19853
+ function ChatEnvironmentProvider({ value, children }) {
19854
+ return /* @__PURE__ */ jsx8(ChatEnvironmentContext.Provider, { value, children });
19855
+ }
19856
+ function useChatEnvironment() {
19857
+ return useContext4(ChatEnvironmentContext);
19858
+ }
19859
+ var NO_HIGHLIGHT = { highlightedHtml: null };
19860
+ function usePlainCode() {
19861
+ return NO_HIGHLIGHT;
19862
+ }
19863
+ function useHighlightedCode(code, language) {
19864
+ const use = useChatEnvironment().useHighlightedCode ?? usePlainCode;
19865
+ return use(code, language);
19866
+ }
19867
+ function useNoDetail() {
19868
+ return null;
19869
+ }
19870
+ function useChatSessionDetail(sessionId) {
19871
+ const use = useChatEnvironment().useSessionDetail ?? useNoDetail;
19872
+ return use(sessionId);
19873
+ }
19874
+ function useShowTodo() {
19875
+ return false;
19876
+ }
19877
+ function useHideTodo() {
19878
+ const use = useChatEnvironment().useHideTodo ?? useShowTodo;
19879
+ return use();
19880
+ }
19881
+ function useChatRenderMode() {
19882
+ return useChatEnvironment().renderMode ?? "normal";
19883
+ }
19884
+ function notifyChat(environment, kind, message, options) {
19885
+ if (environment.notify) environment.notify(kind, message, options);
19886
+ else if (kind === "error") console.error(message);
19887
+ }
19888
+ function useComposerBridge(sessionId) {
19889
+ const environment = useChatEnvironment();
19890
+ const session = useSessionHandle(sessionId);
19891
+ return useMemo11(
19892
+ () => ({
19893
+ appendText(text, separate = false) {
19894
+ if (!sessionId) return;
19895
+ if (environment.appendToComposer) environment.appendToComposer(sessionId, text, separate);
19896
+ else session?.insertText(separate ? `
19897
+
19898
+ ${text}` : text);
19899
+ },
19900
+ addContext(context) {
19901
+ if (!sessionId) return;
19902
+ if (environment.addComposerContext) environment.addComposerContext(sessionId, context);
19903
+ else session?.attach(context.label, context.content);
19904
+ }
19905
+ }),
19906
+ [environment, session, sessionId]
19879
19907
  );
19880
- const enable = useCallback19(async (name) => {
19881
- if (!alive.current) return;
19882
- const startedAt = lifetime.current;
19883
- const mutation = (mutationGenerations.current.get(name) ?? 0) + 1;
19884
- mutationGenerations.current.set(name, mutation);
19885
- pendingMutations.current.set(name, mutation);
19886
- setDesired(name, true);
19887
- setMutationError(false);
19888
- markInFlight(name, true);
19889
- request.current?.abort();
19890
- generation.current++;
19891
- setLoading(false);
19892
- let state;
19893
- try {
19894
- const result = await client.sessions.prepareSessionPluginConfig(sessionId, name);
19895
- if (!alive.current || startedAt !== lifetime.current || mutation !== mutationGenerations.current.get(name)) return;
19896
- state = result.config;
19897
- } catch {
19898
- if (!alive.current || startedAt !== lifetime.current || mutation !== mutationGenerations.current.get(name)) return;
19899
- abandon(name);
19900
- setMutationError(true);
19901
- return;
19902
- }
19903
- if (state.state === "required") {
19904
- pendingMutations.current.delete(name);
19905
- markInFlight(name, false);
19906
- setConfiguring({ name, pendingActivation: true });
19907
- return;
19908
- }
19909
- if (state.state !== "configured" && state.state !== "not_required") {
19910
- abandon(name);
19911
- setMutationError(true);
19912
- return;
19913
- }
19914
- setPlugins((current) => current.map((item) => item.name === name ? { ...item, config: state.state } : item));
19915
- await commitActivation(name, true, mutation, startedAt);
19916
- }, [abandon, client, commitActivation, markInFlight, sessionId, setDesired]);
19917
- const disable = useCallback19((name) => {
19918
- const startedAt = lifetime.current;
19919
- request.current?.abort();
19920
- generation.current++;
19921
- setLoading(false);
19922
- if (!submittedActivations.current.has(name) && !serverActive.current.has(name)) {
19923
- abandon(name);
19924
- return;
19925
- }
19926
- const mutation = (mutationGenerations.current.get(name) ?? 0) + 1;
19927
- mutationGenerations.current.set(name, mutation);
19928
- pendingMutations.current.set(name, mutation);
19929
- setDesired(name, false);
19930
- setMutationError(false);
19931
- markInFlight(name, true);
19932
- void commitActivation(name, false, mutation, startedAt);
19933
- }, [abandon, commitActivation, markInFlight, setDesired]);
19934
- const toggle = useCallback19((item, next) => {
19935
- if (next) void enable(item.name);
19936
- else disable(item.name);
19937
- }, [disable, enable]);
19938
- const retry = useCallback19((item) => {
19939
- void enable(item.name);
19940
- }, [enable]);
19941
- const editConfig = useCallback19((item) => {
19942
- setConfiguring({ name: item.name, pendingActivation: false });
19943
- }, []);
19944
- const onConfigSaved = useCallback19((state) => {
19945
- const target = configuring;
19946
- if (!target) return;
19947
- setConfiguring(null);
19948
- setPlugins((current) => current.map((item) => item.name === target.name ? { ...item, config: state.state } : item));
19949
- if (!target.pendingActivation || state.state !== "configured") {
19950
- void load();
19951
- return;
19952
- }
19953
- const startedAt = lifetime.current;
19954
- const mutation = (mutationGenerations.current.get(target.name) ?? 0) + 1;
19955
- mutationGenerations.current.set(target.name, mutation);
19956
- pendingMutations.current.set(target.name, mutation);
19957
- setDesired(target.name, true);
19958
- markInFlight(target.name, true);
19959
- void commitActivation(target.name, true, mutation, startedAt);
19960
- }, [commitActivation, configuring, load, markInFlight, setDesired]);
19961
- const onConfigClose = useCallback19(() => {
19962
- const target = configuring;
19963
- if (!target) return;
19964
- setConfiguring(null);
19965
- if (target.pendingActivation) abandon(target.name);
19966
- else void load();
19967
- }, [abandon, configuring, load]);
19968
- return {
19969
- items,
19970
- loading,
19971
- listError,
19972
- mutationError,
19973
- inFlight,
19974
- busy: Object.keys(inFlight).length > 0,
19975
- configuring,
19976
- reload,
19977
- toggle,
19978
- retry,
19979
- editConfig,
19980
- onConfigSaved,
19981
- onConfigClose
19982
- };
19908
+ }
19909
+ var NO_VIRTUAL_ITEMS = [];
19910
+ var NO_VIRTUALIZER = {
19911
+ getVirtualItems: () => NO_VIRTUAL_ITEMS,
19912
+ getTotalSize: () => 0,
19913
+ measureElement: () => {
19914
+ },
19915
+ scrollToIndex: () => {
19916
+ },
19917
+ getOffsetForIndex: () => void 0
19918
+ };
19919
+ function useNoVirtualizer() {
19920
+ return NO_VIRTUALIZER;
19921
+ }
19922
+ function useChatVirtualizer(options) {
19923
+ const injected = useChatEnvironment().useVirtualizer;
19924
+ const use = injected ?? useNoVirtualizer;
19925
+ const virtualizer = use(options);
19926
+ return { virtualizer, enabled: Boolean(injected) };
19927
+ }
19928
+
19929
+ // src/lib/message-shortcuts.ts
19930
+ function usesCommandKey() {
19931
+ if (typeof navigator === "undefined") return false;
19932
+ return /Mac|iPhone|iPad|iPod/i.test(navigator.platform || navigator.userAgent);
19933
+ }
19934
+ function queueShortcutLabel() {
19935
+ return usesCommandKey() ? "\u2318 Enter" : "Ctrl Enter";
19936
+ }
19937
+ function isQueueShortcut(event) {
19938
+ return usesCommandKey() ? event.metaKey : event.ctrlKey;
19983
19939
  }
19984
19940
 
19985
19941
  // src/chat/runtime/actions.ts
@@ -20010,7 +19966,9 @@ function sendToSession(session, message, mode, askUserAnswer, extras = {}) {
20010
19966
  model: extras.model,
20011
19967
  thinkingOverride: extras.thinkingOverride,
20012
19968
  reasoningLevel: extras.reasoningLevel,
20013
- kbIds: extras.kbIds,
19969
+ refs: extras.refs,
19970
+ contextAttachments: extras.contextAttachments,
19971
+ topicAssetRefs: extras.topicAssetRefs,
20014
19972
  whatif: extras.whatif,
20015
19973
  replayDecision: extras.replayDecision,
20016
19974
  queueWhenRunning: extras.queueWhenRunning
@@ -20088,13 +20046,13 @@ function useComposedRefs(...refs) {
20088
20046
 
20089
20047
  // ../../node_modules/.pnpm/@radix-ui+react-context@1.1.2_@types+react@19.2.14_react@19.2.4/node_modules/@radix-ui/react-context/dist/index.mjs
20090
20048
  import * as React2 from "react";
20091
- import { jsx as jsx10 } from "react/jsx-runtime";
20049
+ import { jsx as jsx9 } from "react/jsx-runtime";
20092
20050
  function createContext22(rootComponentName, defaultContext) {
20093
20051
  const Context = React2.createContext(defaultContext);
20094
20052
  const Provider2 = (props) => {
20095
20053
  const { children, ...context } = props;
20096
20054
  const value = React2.useMemo(() => context, Object.values(context));
20097
- return /* @__PURE__ */ jsx10(Context.Provider, { value, children });
20055
+ return /* @__PURE__ */ jsx9(Context.Provider, { value, children });
20098
20056
  };
20099
20057
  Provider2.displayName = rootComponentName + "Provider";
20100
20058
  function useContext22(consumerName) {
@@ -20115,7 +20073,7 @@ function createContextScope(scopeName, createContextScopeDeps = []) {
20115
20073
  const { scope, children, ...context } = props;
20116
20074
  const Context = scope?.[scopeName]?.[index2] || BaseContext;
20117
20075
  const value = React2.useMemo(() => context, Object.values(context));
20118
- return /* @__PURE__ */ jsx10(Context.Provider, { value, children });
20076
+ return /* @__PURE__ */ jsx9(Context.Provider, { value, children });
20119
20077
  };
20120
20078
  Provider2.displayName = rootComponentName + "Provider";
20121
20079
  function useContext22(consumerName, scope) {
@@ -20172,7 +20130,7 @@ import * as ReactDOM from "react-dom";
20172
20130
 
20173
20131
  // ../../node_modules/.pnpm/@radix-ui+react-slot@1.2.3_@types+react@19.2.14_react@19.2.4/node_modules/@radix-ui/react-slot/dist/index.mjs
20174
20132
  import * as React3 from "react";
20175
- import { Fragment as Fragment22, jsx as jsx11 } from "react/jsx-runtime";
20133
+ import { Fragment as Fragment22, jsx as jsx10 } from "react/jsx-runtime";
20176
20134
  // @__NO_SIDE_EFFECTS__
20177
20135
  function createSlot(ownerName) {
20178
20136
  const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
@@ -20190,9 +20148,9 @@ function createSlot(ownerName) {
20190
20148
  return child;
20191
20149
  }
20192
20150
  });
20193
- return /* @__PURE__ */ jsx11(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
20151
+ return /* @__PURE__ */ jsx10(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
20194
20152
  }
20195
- return /* @__PURE__ */ jsx11(SlotClone, { ...slotProps, ref: forwardedRef, children });
20153
+ return /* @__PURE__ */ jsx10(SlotClone, { ...slotProps, ref: forwardedRef, children });
20196
20154
  });
20197
20155
  Slot22.displayName = `${ownerName}.Slot`;
20198
20156
  return Slot22;
@@ -20218,7 +20176,7 @@ var SLOTTABLE_IDENTIFIER = /* @__PURE__ */ Symbol("radix.slottable");
20218
20176
  // @__NO_SIDE_EFFECTS__
20219
20177
  function createSlottable(ownerName) {
20220
20178
  const Slottable2 = ({ children }) => {
20221
- return /* @__PURE__ */ jsx11(Fragment22, { children });
20179
+ return /* @__PURE__ */ jsx10(Fragment22, { children });
20222
20180
  };
20223
20181
  Slottable2.displayName = `${ownerName}.Slottable`;
20224
20182
  Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
@@ -20266,7 +20224,7 @@ function getElementRef(element) {
20266
20224
  }
20267
20225
 
20268
20226
  // ../../node_modules/.pnpm/@radix-ui+react-primitive@2.1.3_@types+react-dom@19.2.3_@types+react@19.2.14__@types+re_1181ea5061ec9212248424669240e4ec/node_modules/@radix-ui/react-primitive/dist/index.mjs
20269
- import { jsx as jsx12 } from "react/jsx-runtime";
20227
+ import { jsx as jsx11 } from "react/jsx-runtime";
20270
20228
  var NODES = [
20271
20229
  "a",
20272
20230
  "button",
@@ -20294,7 +20252,7 @@ var Primitive = NODES.reduce((primitive, node) => {
20294
20252
  if (typeof window !== "undefined") {
20295
20253
  window[/* @__PURE__ */ Symbol.for("radix-ui")] = true;
20296
20254
  }
20297
- return /* @__PURE__ */ jsx12(Comp, { ...primitiveProps, ref: forwardedRef });
20255
+ return /* @__PURE__ */ jsx11(Comp, { ...primitiveProps, ref: forwardedRef });
20298
20256
  });
20299
20257
  Node2.displayName = `Primitive.${node}`;
20300
20258
  return { ...primitive, [node]: Node2 };
@@ -20329,7 +20287,7 @@ function useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.docum
20329
20287
  }
20330
20288
 
20331
20289
  // ../../node_modules/.pnpm/@radix-ui+react-dismissable-layer@1.1.11_@types+react-dom@19.2.3_@types+react@19.2.14___3d3960154a4c07d09bb90cb341135fc5/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs
20332
- import { jsx as jsx13 } from "react/jsx-runtime";
20290
+ import { jsx as jsx12 } from "react/jsx-runtime";
20333
20291
  var DISMISSABLE_LAYER_NAME = "DismissableLayer";
20334
20292
  var CONTEXT_UPDATE = "dismissableLayer.update";
20335
20293
  var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
@@ -20417,7 +20375,7 @@ var DismissableLayer = React7.forwardRef(
20417
20375
  document.addEventListener(CONTEXT_UPDATE, handleUpdate);
20418
20376
  return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
20419
20377
  }, []);
20420
- return /* @__PURE__ */ jsx13(
20378
+ return /* @__PURE__ */ jsx12(
20421
20379
  Primitive.div,
20422
20380
  {
20423
20381
  ...layerProps,
@@ -20451,7 +20409,7 @@ var DismissableLayerBranch = React7.forwardRef((props, forwardedRef) => {
20451
20409
  };
20452
20410
  }
20453
20411
  }, [context.branches]);
20454
- return /* @__PURE__ */ jsx13(Primitive.div, { ...props, ref: composedRefs });
20412
+ return /* @__PURE__ */ jsx12(Primitive.div, { ...props, ref: composedRefs });
20455
20413
  });
20456
20414
  DismissableLayerBranch.displayName = BRANCH_NAME;
20457
20415
  function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {
@@ -20563,7 +20521,7 @@ function createFocusGuard() {
20563
20521
 
20564
20522
  // ../../node_modules/.pnpm/@radix-ui+react-focus-scope@1.1.7_@types+react-dom@19.2.3_@types+react@19.2.14__@types+_f62f3af4ca2ba305a7aecf04c8534604/node_modules/@radix-ui/react-focus-scope/dist/index.mjs
20565
20523
  import * as React9 from "react";
20566
- import { jsx as jsx14 } from "react/jsx-runtime";
20524
+ import { jsx as jsx13 } from "react/jsx-runtime";
20567
20525
  var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
20568
20526
  var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
20569
20527
  var EVENT_OPTIONS = { bubbles: false, cancelable: true };
@@ -20682,7 +20640,7 @@ var FocusScope = React9.forwardRef((props, forwardedRef) => {
20682
20640
  },
20683
20641
  [loop, trapped, focusScope.paused]
20684
20642
  );
20685
- return /* @__PURE__ */ jsx14(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
20643
+ return /* @__PURE__ */ jsx13(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
20686
20644
  });
20687
20645
  FocusScope.displayName = FOCUS_SCOPE_NAME;
20688
20646
  function focusFirst(candidates, { select = false } = {}) {
@@ -22717,11 +22675,11 @@ var arrow3 = (options, deps) => {
22717
22675
 
22718
22676
  // ../../node_modules/.pnpm/@radix-ui+react-arrow@1.1.7_@types+react-dom@19.2.3_@types+react@19.2.14__@types+react@_e05f2c19a58a99fddf374207b5e3778c/node_modules/@radix-ui/react-arrow/dist/index.mjs
22719
22677
  import * as React13 from "react";
22720
- import { jsx as jsx15 } from "react/jsx-runtime";
22678
+ import { jsx as jsx14 } from "react/jsx-runtime";
22721
22679
  var NAME = "Arrow";
22722
22680
  var Arrow = React13.forwardRef((props, forwardedRef) => {
22723
22681
  const { children, width = 10, height = 5, ...arrowProps } = props;
22724
- return /* @__PURE__ */ jsx15(
22682
+ return /* @__PURE__ */ jsx14(
22725
22683
  Primitive.svg,
22726
22684
  {
22727
22685
  ...arrowProps,
@@ -22730,7 +22688,7 @@ var Arrow = React13.forwardRef((props, forwardedRef) => {
22730
22688
  height,
22731
22689
  viewBox: "0 0 30 10",
22732
22690
  preserveAspectRatio: "none",
22733
- children: props.asChild ? children : /* @__PURE__ */ jsx15("polygon", { points: "0,0 30,0 15,10" })
22691
+ children: props.asChild ? children : /* @__PURE__ */ jsx14("polygon", { points: "0,0 30,0 15,10" })
22734
22692
  }
22735
22693
  );
22736
22694
  });
@@ -22775,14 +22733,14 @@ function useSize(element) {
22775
22733
  }
22776
22734
 
22777
22735
  // ../../node_modules/.pnpm/@radix-ui+react-popper@1.2.8_@types+react-dom@19.2.3_@types+react@19.2.14__@types+react_13e0521d8aea7ebfbfb8bee1fb615c05/node_modules/@radix-ui/react-popper/dist/index.mjs
22778
- import { jsx as jsx16 } from "react/jsx-runtime";
22736
+ import { jsx as jsx15 } from "react/jsx-runtime";
22779
22737
  var POPPER_NAME = "Popper";
22780
22738
  var [createPopperContext, createPopperScope] = createContextScope(POPPER_NAME);
22781
22739
  var [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);
22782
22740
  var Popper = (props) => {
22783
22741
  const { __scopePopper, children } = props;
22784
22742
  const [anchor, setAnchor] = React15.useState(null);
22785
- return /* @__PURE__ */ jsx16(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
22743
+ return /* @__PURE__ */ jsx15(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
22786
22744
  };
22787
22745
  Popper.displayName = POPPER_NAME;
22788
22746
  var ANCHOR_NAME = "PopperAnchor";
@@ -22800,7 +22758,7 @@ var PopperAnchor = React15.forwardRef(
22800
22758
  context.onAnchorChange(anchorRef.current);
22801
22759
  }
22802
22760
  });
22803
- return virtualRef ? null : /* @__PURE__ */ jsx16(Primitive.div, { ...anchorProps, ref: composedRefs });
22761
+ return virtualRef ? null : /* @__PURE__ */ jsx15(Primitive.div, { ...anchorProps, ref: composedRefs });
22804
22762
  }
22805
22763
  );
22806
22764
  PopperAnchor.displayName = ANCHOR_NAME;
@@ -22893,7 +22851,7 @@ var PopperContent = React15.forwardRef(
22893
22851
  useLayoutEffect22(() => {
22894
22852
  if (content) setContentZIndex(window.getComputedStyle(content).zIndex);
22895
22853
  }, [content]);
22896
- return /* @__PURE__ */ jsx16(
22854
+ return /* @__PURE__ */ jsx15(
22897
22855
  "div",
22898
22856
  {
22899
22857
  ref: refs.setFloating,
@@ -22917,7 +22875,7 @@ var PopperContent = React15.forwardRef(
22917
22875
  }
22918
22876
  },
22919
22877
  dir: props.dir,
22920
- children: /* @__PURE__ */ jsx16(
22878
+ children: /* @__PURE__ */ jsx15(
22921
22879
  PopperContentProvider,
22922
22880
  {
22923
22881
  scope: __scopePopper,
@@ -22926,7 +22884,7 @@ var PopperContent = React15.forwardRef(
22926
22884
  arrowX,
22927
22885
  arrowY,
22928
22886
  shouldHideArrow: cannotCenterArrow,
22929
- children: /* @__PURE__ */ jsx16(
22887
+ children: /* @__PURE__ */ jsx15(
22930
22888
  Primitive.div,
22931
22889
  {
22932
22890
  "data-side": placedSide,
@@ -22963,7 +22921,7 @@ var PopperArrow = React15.forwardRef(function PopperArrow2(props, forwardedRef)
22963
22921
  // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)
22964
22922
  // doesn't report size as we'd expect on SVG elements.
22965
22923
  // it reports their bounding box which is effectively the largest path inside the SVG.
22966
- /* @__PURE__ */ jsx16(
22924
+ /* @__PURE__ */ jsx15(
22967
22925
  "span",
22968
22926
  {
22969
22927
  ref: contentContext.onArrowChange,
@@ -22986,7 +22944,7 @@ var PopperArrow = React15.forwardRef(function PopperArrow2(props, forwardedRef)
22986
22944
  }[contentContext.placedSide],
22987
22945
  visibility: contentContext.shouldHideArrow ? "hidden" : void 0
22988
22946
  },
22989
- children: /* @__PURE__ */ jsx16(
22947
+ children: /* @__PURE__ */ jsx15(
22990
22948
  Root,
22991
22949
  {
22992
22950
  ...arrowProps,
@@ -23049,14 +23007,14 @@ var Arrow2 = PopperArrow;
23049
23007
  // ../../node_modules/.pnpm/@radix-ui+react-portal@1.1.9_@types+react-dom@19.2.3_@types+react@19.2.14__@types+react_7668895bec2444446faa4e0f4eb5244b/node_modules/@radix-ui/react-portal/dist/index.mjs
23050
23008
  import * as React16 from "react";
23051
23009
  import ReactDOM3 from "react-dom";
23052
- import { jsx as jsx17 } from "react/jsx-runtime";
23010
+ import { jsx as jsx16 } from "react/jsx-runtime";
23053
23011
  var PORTAL_NAME = "Portal";
23054
23012
  var Portal = React16.forwardRef((props, forwardedRef) => {
23055
23013
  const { container: containerProp, ...portalProps } = props;
23056
23014
  const [mounted, setMounted] = React16.useState(false);
23057
23015
  useLayoutEffect22(() => setMounted(true), []);
23058
23016
  const container = containerProp || mounted && globalThis?.document?.body;
23059
- return container ? ReactDOM3.createPortal(/* @__PURE__ */ jsx17(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
23017
+ return container ? ReactDOM3.createPortal(/* @__PURE__ */ jsx16(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
23060
23018
  });
23061
23019
  Portal.displayName = PORTAL_NAME;
23062
23020
 
@@ -24096,7 +24054,7 @@ ReactRemoveScroll.classNames = RemoveScroll.classNames;
24096
24054
  var Combination_default = ReactRemoveScroll;
24097
24055
 
24098
24056
  // ../../node_modules/.pnpm/@radix-ui+react-popover@1.1.15_@types+react-dom@19.2.3_@types+react@19.2.14__@types+rea_8b5332f8e883134e9d9ab2856fc4395d/node_modules/@radix-ui/react-popover/dist/index.mjs
24099
- import { jsx as jsx18 } from "react/jsx-runtime";
24057
+ import { jsx as jsx17 } from "react/jsx-runtime";
24100
24058
  var POPOVER_NAME = "Popover";
24101
24059
  var [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [
24102
24060
  createPopperScope
@@ -24121,7 +24079,7 @@ var Popover = (props) => {
24121
24079
  onChange: onOpenChange,
24122
24080
  caller: POPOVER_NAME
24123
24081
  });
24124
- return /* @__PURE__ */ jsx18(Root2, { ...popperScope, children: /* @__PURE__ */ jsx18(
24082
+ return /* @__PURE__ */ jsx17(Root2, { ...popperScope, children: /* @__PURE__ */ jsx17(
24125
24083
  PopoverProvider,
24126
24084
  {
24127
24085
  scope: __scopePopover,
@@ -24150,7 +24108,7 @@ var PopoverAnchor = React28.forwardRef(
24150
24108
  onCustomAnchorAdd();
24151
24109
  return () => onCustomAnchorRemove();
24152
24110
  }, [onCustomAnchorAdd, onCustomAnchorRemove]);
24153
- return /* @__PURE__ */ jsx18(Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });
24111
+ return /* @__PURE__ */ jsx17(Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });
24154
24112
  }
24155
24113
  );
24156
24114
  PopoverAnchor.displayName = ANCHOR_NAME2;
@@ -24161,7 +24119,7 @@ var PopoverTrigger = React28.forwardRef(
24161
24119
  const context = usePopoverContext(TRIGGER_NAME, __scopePopover);
24162
24120
  const popperScope = usePopperScope(__scopePopover);
24163
24121
  const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
24164
- const trigger = /* @__PURE__ */ jsx18(
24122
+ const trigger = /* @__PURE__ */ jsx17(
24165
24123
  Primitive.button,
24166
24124
  {
24167
24125
  type: "button",
@@ -24174,7 +24132,7 @@ var PopoverTrigger = React28.forwardRef(
24174
24132
  onClick: composeEventHandlers(props.onClick, context.onOpenToggle)
24175
24133
  }
24176
24134
  );
24177
- return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx18(Anchor, { asChild: true, ...popperScope, children: trigger });
24135
+ return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx17(Anchor, { asChild: true, ...popperScope, children: trigger });
24178
24136
  }
24179
24137
  );
24180
24138
  PopoverTrigger.displayName = TRIGGER_NAME;
@@ -24185,7 +24143,7 @@ var [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME2, {
24185
24143
  var PopoverPortal = (props) => {
24186
24144
  const { __scopePopover, forceMount, children, container } = props;
24187
24145
  const context = usePopoverContext(PORTAL_NAME2, __scopePopover);
24188
- return /* @__PURE__ */ jsx18(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx18(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx18(Portal, { asChild: true, container, children }) }) });
24146
+ return /* @__PURE__ */ jsx17(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx17(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx17(Portal, { asChild: true, container, children }) }) });
24189
24147
  };
24190
24148
  PopoverPortal.displayName = PORTAL_NAME2;
24191
24149
  var CONTENT_NAME2 = "PopoverContent";
@@ -24194,7 +24152,7 @@ var PopoverContent = React28.forwardRef(
24194
24152
  const portalContext = usePortalContext(CONTENT_NAME2, props.__scopePopover);
24195
24153
  const { forceMount = portalContext.forceMount, ...contentProps } = props;
24196
24154
  const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
24197
- return /* @__PURE__ */ jsx18(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx18(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx18(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });
24155
+ return /* @__PURE__ */ jsx17(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx17(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx17(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });
24198
24156
  }
24199
24157
  );
24200
24158
  PopoverContent.displayName = CONTENT_NAME2;
@@ -24209,7 +24167,7 @@ var PopoverContentModal = React28.forwardRef(
24209
24167
  const content = contentRef.current;
24210
24168
  if (content) return hideOthers(content);
24211
24169
  }, []);
24212
- return /* @__PURE__ */ jsx18(Combination_default, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx18(
24170
+ return /* @__PURE__ */ jsx17(Combination_default, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx17(
24213
24171
  PopoverContentImpl,
24214
24172
  {
24215
24173
  ...props,
@@ -24244,7 +24202,7 @@ var PopoverContentNonModal = React28.forwardRef(
24244
24202
  const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
24245
24203
  const hasInteractedOutsideRef = React28.useRef(false);
24246
24204
  const hasPointerDownOutsideRef = React28.useRef(false);
24247
- return /* @__PURE__ */ jsx18(
24205
+ return /* @__PURE__ */ jsx17(
24248
24206
  PopoverContentImpl,
24249
24207
  {
24250
24208
  ...props,
@@ -24296,7 +24254,7 @@ var PopoverContentImpl = React28.forwardRef(
24296
24254
  const context = usePopoverContext(CONTENT_NAME2, __scopePopover);
24297
24255
  const popperScope = usePopperScope(__scopePopover);
24298
24256
  useFocusGuards();
24299
- return /* @__PURE__ */ jsx18(
24257
+ return /* @__PURE__ */ jsx17(
24300
24258
  FocusScope,
24301
24259
  {
24302
24260
  asChild: true,
@@ -24304,7 +24262,7 @@ var PopoverContentImpl = React28.forwardRef(
24304
24262
  trapped: trapFocus,
24305
24263
  onMountAutoFocus: onOpenAutoFocus,
24306
24264
  onUnmountAutoFocus: onCloseAutoFocus,
24307
- children: /* @__PURE__ */ jsx18(
24265
+ children: /* @__PURE__ */ jsx17(
24308
24266
  DismissableLayer,
24309
24267
  {
24310
24268
  asChild: true,
@@ -24314,7 +24272,7 @@ var PopoverContentImpl = React28.forwardRef(
24314
24272
  onPointerDownOutside,
24315
24273
  onFocusOutside,
24316
24274
  onDismiss: () => context.onOpenChange(false),
24317
- children: /* @__PURE__ */ jsx18(
24275
+ children: /* @__PURE__ */ jsx17(
24318
24276
  Content,
24319
24277
  {
24320
24278
  "data-state": getState(context.open),
@@ -24347,7 +24305,7 @@ var PopoverClose = React28.forwardRef(
24347
24305
  (props, forwardedRef) => {
24348
24306
  const { __scopePopover, ...closeProps } = props;
24349
24307
  const context = usePopoverContext(CLOSE_NAME, __scopePopover);
24350
- return /* @__PURE__ */ jsx18(
24308
+ return /* @__PURE__ */ jsx17(
24351
24309
  Primitive.button,
24352
24310
  {
24353
24311
  type: "button",
@@ -24364,7 +24322,7 @@ var PopoverArrow = React28.forwardRef(
24364
24322
  (props, forwardedRef) => {
24365
24323
  const { __scopePopover, ...arrowProps } = props;
24366
24324
  const popperScope = usePopperScope(__scopePopover);
24367
- return /* @__PURE__ */ jsx18(Arrow2, { ...popperScope, ...arrowProps, ref: forwardedRef });
24325
+ return /* @__PURE__ */ jsx17(Arrow2, { ...popperScope, ...arrowProps, ref: forwardedRef });
24368
24326
  }
24369
24327
  );
24370
24328
  PopoverArrow.displayName = ARROW_NAME2;
@@ -24400,7 +24358,7 @@ import * as React30 from "react";
24400
24358
 
24401
24359
  // ../../node_modules/.pnpm/@radix-ui+react-visually-hidden@1.2.3_@types+react-dom@19.2.3_@types+react@19.2.14__@ty_fa89646d7248b32d1762bf88948f6339/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs
24402
24360
  import * as React29 from "react";
24403
- import { jsx as jsx19 } from "react/jsx-runtime";
24361
+ import { jsx as jsx18 } from "react/jsx-runtime";
24404
24362
  var VISUALLY_HIDDEN_STYLES = Object.freeze({
24405
24363
  // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss
24406
24364
  position: "absolute",
@@ -24417,7 +24375,7 @@ var VISUALLY_HIDDEN_STYLES = Object.freeze({
24417
24375
  var NAME2 = "VisuallyHidden";
24418
24376
  var VisuallyHidden = React29.forwardRef(
24419
24377
  (props, forwardedRef) => {
24420
- return /* @__PURE__ */ jsx19(
24378
+ return /* @__PURE__ */ jsx18(
24421
24379
  Primitive.span,
24422
24380
  {
24423
24381
  ...props,
@@ -24431,7 +24389,7 @@ VisuallyHidden.displayName = NAME2;
24431
24389
  var Root3 = VisuallyHidden;
24432
24390
 
24433
24391
  // ../../node_modules/.pnpm/@radix-ui+react-tooltip@1.2.8_@types+react-dom@19.2.3_@types+react@19.2.14__@types+reac_9074d9fb06315b089b2bee17c4c65951/node_modules/@radix-ui/react-tooltip/dist/index.mjs
24434
- import { jsx as jsx20, jsxs as jsxs5 } from "react/jsx-runtime";
24392
+ import { jsx as jsx19, jsxs as jsxs5 } from "react/jsx-runtime";
24435
24393
  var [createTooltipContext, createTooltipScope] = createContextScope("Tooltip", [
24436
24394
  createPopperScope
24437
24395
  ]);
@@ -24455,7 +24413,7 @@ var TooltipProvider = (props) => {
24455
24413
  const skipDelayTimer = skipDelayTimerRef.current;
24456
24414
  return () => window.clearTimeout(skipDelayTimer);
24457
24415
  }, []);
24458
- return /* @__PURE__ */ jsx20(
24416
+ return /* @__PURE__ */ jsx19(
24459
24417
  TooltipProviderContextProvider,
24460
24418
  {
24461
24419
  scope: __scopeTooltip,
@@ -24546,7 +24504,7 @@ var Tooltip = (props) => {
24546
24504
  }
24547
24505
  };
24548
24506
  }, []);
24549
- return /* @__PURE__ */ jsx20(Root2, { ...popperScope, children: /* @__PURE__ */ jsx20(
24507
+ return /* @__PURE__ */ jsx19(Root2, { ...popperScope, children: /* @__PURE__ */ jsx19(
24550
24508
  TooltipContextProvider,
24551
24509
  {
24552
24510
  scope: __scopeTooltip,
@@ -24590,7 +24548,7 @@ var TooltipTrigger = React30.forwardRef(
24590
24548
  React30.useEffect(() => {
24591
24549
  return () => document.removeEventListener("pointerup", handlePointerUp);
24592
24550
  }, [handlePointerUp]);
24593
- return /* @__PURE__ */ jsx20(Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx20(
24551
+ return /* @__PURE__ */ jsx19(Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx19(
24594
24552
  Primitive.button,
24595
24553
  {
24596
24554
  "aria-describedby": context.open ? context.contentId : void 0,
@@ -24632,7 +24590,7 @@ var [PortalProvider2, usePortalContext2] = createTooltipContext(PORTAL_NAME3, {
24632
24590
  var TooltipPortal = (props) => {
24633
24591
  const { __scopeTooltip, forceMount, children, container } = props;
24634
24592
  const context = useTooltipContext(PORTAL_NAME3, __scopeTooltip);
24635
- return /* @__PURE__ */ jsx20(PortalProvider2, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx20(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx20(Portal, { asChild: true, container, children }) }) });
24593
+ return /* @__PURE__ */ jsx19(PortalProvider2, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx19(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx19(Portal, { asChild: true, container, children }) }) });
24636
24594
  };
24637
24595
  TooltipPortal.displayName = PORTAL_NAME3;
24638
24596
  var CONTENT_NAME3 = "TooltipContent";
@@ -24641,7 +24599,7 @@ var TooltipContent = React30.forwardRef(
24641
24599
  const portalContext = usePortalContext2(CONTENT_NAME3, props.__scopeTooltip);
24642
24600
  const { forceMount = portalContext.forceMount, side = "top", ...contentProps } = props;
24643
24601
  const context = useTooltipContext(CONTENT_NAME3, props.__scopeTooltip);
24644
- return /* @__PURE__ */ jsx20(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx20(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx20(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });
24602
+ return /* @__PURE__ */ jsx19(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx19(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx19(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });
24645
24603
  }
24646
24604
  );
24647
24605
  var TooltipContentHoverable = React30.forwardRef((props, forwardedRef) => {
@@ -24703,7 +24661,7 @@ var TooltipContentHoverable = React30.forwardRef((props, forwardedRef) => {
24703
24661
  return () => document.removeEventListener("pointermove", handleTrackPointerGrace);
24704
24662
  }
24705
24663
  }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);
24706
- return /* @__PURE__ */ jsx20(TooltipContentImpl, { ...props, ref: composedRefs });
24664
+ return /* @__PURE__ */ jsx19(TooltipContentImpl, { ...props, ref: composedRefs });
24707
24665
  });
24708
24666
  var [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });
24709
24667
  var Slottable = createSlottable("TooltipContent");
@@ -24734,7 +24692,7 @@ var TooltipContentImpl = React30.forwardRef(
24734
24692
  return () => window.removeEventListener("scroll", handleScroll2, { capture: true });
24735
24693
  }
24736
24694
  }, [context.trigger, onClose]);
24737
- return /* @__PURE__ */ jsx20(
24695
+ return /* @__PURE__ */ jsx19(
24738
24696
  DismissableLayer,
24739
24697
  {
24740
24698
  asChild: true,
@@ -24762,8 +24720,8 @@ var TooltipContentImpl = React30.forwardRef(
24762
24720
  }
24763
24721
  },
24764
24722
  children: [
24765
- /* @__PURE__ */ jsx20(Slottable, { children }),
24766
- /* @__PURE__ */ jsx20(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx20(Root3, { id: context.contentId, role: "tooltip", children: ariaLabel || children }) })
24723
+ /* @__PURE__ */ jsx19(Slottable, { children }),
24724
+ /* @__PURE__ */ jsx19(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx19(Root3, { id: context.contentId, role: "tooltip", children: ariaLabel || children }) })
24767
24725
  ]
24768
24726
  }
24769
24727
  )
@@ -24781,7 +24739,7 @@ var TooltipArrow = React30.forwardRef(
24781
24739
  ARROW_NAME3,
24782
24740
  __scopeTooltip
24783
24741
  );
24784
- return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx20(Arrow2, { ...popperScope, ...arrowProps, ref: forwardedRef });
24742
+ return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx19(Arrow2, { ...popperScope, ...arrowProps, ref: forwardedRef });
24785
24743
  }
24786
24744
  );
24787
24745
  TooltipArrow.displayName = ARROW_NAME3;
@@ -24919,7 +24877,7 @@ __export(dist_exports6, {
24919
24877
  createCollapsibleScope: () => createCollapsibleScope
24920
24878
  });
24921
24879
  import * as React31 from "react";
24922
- import { jsx as jsx21 } from "react/jsx-runtime";
24880
+ import { jsx as jsx20 } from "react/jsx-runtime";
24923
24881
  var COLLAPSIBLE_NAME = "Collapsible";
24924
24882
  var [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);
24925
24883
  var [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);
@@ -24939,7 +24897,7 @@ var Collapsible = React31.forwardRef(
24939
24897
  onChange: onOpenChange,
24940
24898
  caller: COLLAPSIBLE_NAME
24941
24899
  });
24942
- return /* @__PURE__ */ jsx21(
24900
+ return /* @__PURE__ */ jsx20(
24943
24901
  CollapsibleProvider,
24944
24902
  {
24945
24903
  scope: __scopeCollapsible,
@@ -24947,7 +24905,7 @@ var Collapsible = React31.forwardRef(
24947
24905
  contentId: useId(),
24948
24906
  open,
24949
24907
  onOpenToggle: React31.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
24950
- children: /* @__PURE__ */ jsx21(
24908
+ children: /* @__PURE__ */ jsx20(
24951
24909
  Primitive.div,
24952
24910
  {
24953
24911
  "data-state": getState2(open),
@@ -24966,7 +24924,7 @@ var CollapsibleTrigger = React31.forwardRef(
24966
24924
  (props, forwardedRef) => {
24967
24925
  const { __scopeCollapsible, ...triggerProps } = props;
24968
24926
  const context = useCollapsibleContext(TRIGGER_NAME3, __scopeCollapsible);
24969
- return /* @__PURE__ */ jsx21(
24927
+ return /* @__PURE__ */ jsx20(
24970
24928
  Primitive.button,
24971
24929
  {
24972
24930
  type: "button",
@@ -24988,7 +24946,7 @@ var CollapsibleContent = React31.forwardRef(
24988
24946
  (props, forwardedRef) => {
24989
24947
  const { forceMount, ...contentProps } = props;
24990
24948
  const context = useCollapsibleContext(CONTENT_NAME4, props.__scopeCollapsible);
24991
- return /* @__PURE__ */ jsx21(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx21(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });
24949
+ return /* @__PURE__ */ jsx20(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx20(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });
24992
24950
  }
24993
24951
  );
24994
24952
  CollapsibleContent.displayName = CONTENT_NAME4;
@@ -25028,7 +24986,7 @@ var CollapsibleContentImpl = React31.forwardRef((props, forwardedRef) => {
25028
24986
  setIsPresent(present);
25029
24987
  }
25030
24988
  }, [context.open, present]);
25031
- return /* @__PURE__ */ jsx21(
24989
+ return /* @__PURE__ */ jsx20(
25032
24990
  Primitive.div,
25033
24991
  {
25034
24992
  "data-state": getState2(context.open),
@@ -25076,7 +25034,7 @@ __export(dist_exports7, {
25076
25034
  createDialogScope: () => createDialogScope
25077
25035
  });
25078
25036
  import * as React32 from "react";
25079
- import { Fragment as Fragment7, jsx as jsx22, jsxs as jsxs6 } from "react/jsx-runtime";
25037
+ import { Fragment as Fragment7, jsx as jsx21, jsxs as jsxs6 } from "react/jsx-runtime";
25080
25038
  var DIALOG_NAME = "Dialog";
25081
25039
  var [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);
25082
25040
  var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);
@@ -25097,7 +25055,7 @@ var Dialog = (props) => {
25097
25055
  onChange: onOpenChange,
25098
25056
  caller: DIALOG_NAME
25099
25057
  });
25100
- return /* @__PURE__ */ jsx22(
25058
+ return /* @__PURE__ */ jsx21(
25101
25059
  DialogProvider,
25102
25060
  {
25103
25061
  scope: __scopeDialog,
@@ -25121,7 +25079,7 @@ var DialogTrigger = React32.forwardRef(
25121
25079
  const { __scopeDialog, ...triggerProps } = props;
25122
25080
  const context = useDialogContext(TRIGGER_NAME4, __scopeDialog);
25123
25081
  const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
25124
- return /* @__PURE__ */ jsx22(
25082
+ return /* @__PURE__ */ jsx21(
25125
25083
  Primitive.button,
25126
25084
  {
25127
25085
  type: "button",
@@ -25144,7 +25102,7 @@ var [PortalProvider3, usePortalContext3] = createDialogContext(PORTAL_NAME4, {
25144
25102
  var DialogPortal = (props) => {
25145
25103
  const { __scopeDialog, forceMount, children, container } = props;
25146
25104
  const context = useDialogContext(PORTAL_NAME4, __scopeDialog);
25147
- return /* @__PURE__ */ jsx22(PortalProvider3, { scope: __scopeDialog, forceMount, children: React32.Children.map(children, (child) => /* @__PURE__ */ jsx22(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx22(Portal, { asChild: true, container, children: child }) })) });
25105
+ return /* @__PURE__ */ jsx21(PortalProvider3, { scope: __scopeDialog, forceMount, children: React32.Children.map(children, (child) => /* @__PURE__ */ jsx21(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx21(Portal, { asChild: true, container, children: child }) })) });
25148
25106
  };
25149
25107
  DialogPortal.displayName = PORTAL_NAME4;
25150
25108
  var OVERLAY_NAME = "DialogOverlay";
@@ -25153,7 +25111,7 @@ var DialogOverlay = React32.forwardRef(
25153
25111
  const portalContext = usePortalContext3(OVERLAY_NAME, props.__scopeDialog);
25154
25112
  const { forceMount = portalContext.forceMount, ...overlayProps } = props;
25155
25113
  const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);
25156
- return context.modal ? /* @__PURE__ */ jsx22(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx22(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;
25114
+ return context.modal ? /* @__PURE__ */ jsx21(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx21(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;
25157
25115
  }
25158
25116
  );
25159
25117
  DialogOverlay.displayName = OVERLAY_NAME;
@@ -25165,7 +25123,7 @@ var DialogOverlayImpl = React32.forwardRef(
25165
25123
  return (
25166
25124
  // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`
25167
25125
  // ie. when `Overlay` and `Content` are siblings
25168
- /* @__PURE__ */ jsx22(Combination_default, { as: Slot2, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx22(
25126
+ /* @__PURE__ */ jsx21(Combination_default, { as: Slot2, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx21(
25169
25127
  Primitive.div,
25170
25128
  {
25171
25129
  "data-state": getState3(context.open),
@@ -25183,7 +25141,7 @@ var DialogContent = React32.forwardRef(
25183
25141
  const portalContext = usePortalContext3(CONTENT_NAME5, props.__scopeDialog);
25184
25142
  const { forceMount = portalContext.forceMount, ...contentProps } = props;
25185
25143
  const context = useDialogContext(CONTENT_NAME5, props.__scopeDialog);
25186
- return /* @__PURE__ */ jsx22(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx22(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx22(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });
25144
+ return /* @__PURE__ */ jsx21(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx21(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx21(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });
25187
25145
  }
25188
25146
  );
25189
25147
  DialogContent.displayName = CONTENT_NAME5;
@@ -25196,7 +25154,7 @@ var DialogContentModal = React32.forwardRef(
25196
25154
  const content = contentRef.current;
25197
25155
  if (content) return hideOthers(content);
25198
25156
  }, []);
25199
- return /* @__PURE__ */ jsx22(
25157
+ return /* @__PURE__ */ jsx21(
25200
25158
  DialogContentImpl,
25201
25159
  {
25202
25160
  ...props,
@@ -25226,7 +25184,7 @@ var DialogContentNonModal = React32.forwardRef(
25226
25184
  const context = useDialogContext(CONTENT_NAME5, props.__scopeDialog);
25227
25185
  const hasInteractedOutsideRef = React32.useRef(false);
25228
25186
  const hasPointerDownOutsideRef = React32.useRef(false);
25229
- return /* @__PURE__ */ jsx22(
25187
+ return /* @__PURE__ */ jsx21(
25230
25188
  DialogContentImpl,
25231
25189
  {
25232
25190
  ...props,
@@ -25269,7 +25227,7 @@ var DialogContentImpl = React32.forwardRef(
25269
25227
  const composedRefs = useComposedRefs(forwardedRef, contentRef);
25270
25228
  useFocusGuards();
25271
25229
  return /* @__PURE__ */ jsxs6(Fragment7, { children: [
25272
- /* @__PURE__ */ jsx22(
25230
+ /* @__PURE__ */ jsx21(
25273
25231
  FocusScope,
25274
25232
  {
25275
25233
  asChild: true,
@@ -25277,7 +25235,7 @@ var DialogContentImpl = React32.forwardRef(
25277
25235
  trapped: trapFocus,
25278
25236
  onMountAutoFocus: onOpenAutoFocus,
25279
25237
  onUnmountAutoFocus: onCloseAutoFocus,
25280
- children: /* @__PURE__ */ jsx22(
25238
+ children: /* @__PURE__ */ jsx21(
25281
25239
  DismissableLayer,
25282
25240
  {
25283
25241
  role: "dialog",
@@ -25293,8 +25251,8 @@ var DialogContentImpl = React32.forwardRef(
25293
25251
  }
25294
25252
  ),
25295
25253
  /* @__PURE__ */ jsxs6(Fragment7, { children: [
25296
- /* @__PURE__ */ jsx22(TitleWarning, { titleId: context.titleId }),
25297
- /* @__PURE__ */ jsx22(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })
25254
+ /* @__PURE__ */ jsx21(TitleWarning, { titleId: context.titleId }),
25255
+ /* @__PURE__ */ jsx21(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })
25298
25256
  ] })
25299
25257
  ] });
25300
25258
  }
@@ -25304,7 +25262,7 @@ var DialogTitle = React32.forwardRef(
25304
25262
  (props, forwardedRef) => {
25305
25263
  const { __scopeDialog, ...titleProps } = props;
25306
25264
  const context = useDialogContext(TITLE_NAME, __scopeDialog);
25307
- return /* @__PURE__ */ jsx22(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });
25265
+ return /* @__PURE__ */ jsx21(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });
25308
25266
  }
25309
25267
  );
25310
25268
  DialogTitle.displayName = TITLE_NAME;
@@ -25313,7 +25271,7 @@ var DialogDescription = React32.forwardRef(
25313
25271
  (props, forwardedRef) => {
25314
25272
  const { __scopeDialog, ...descriptionProps } = props;
25315
25273
  const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);
25316
- return /* @__PURE__ */ jsx22(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });
25274
+ return /* @__PURE__ */ jsx21(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });
25317
25275
  }
25318
25276
  );
25319
25277
  DialogDescription.displayName = DESCRIPTION_NAME;
@@ -25322,7 +25280,7 @@ var DialogClose = React32.forwardRef(
25322
25280
  (props, forwardedRef) => {
25323
25281
  const { __scopeDialog, ...closeProps } = props;
25324
25282
  const context = useDialogContext(CLOSE_NAME2, __scopeDialog);
25325
- return /* @__PURE__ */ jsx22(
25283
+ return /* @__PURE__ */ jsx21(
25326
25284
  Primitive.button,
25327
25285
  {
25328
25286
  type: "button",
@@ -26571,18 +26529,21 @@ var cn2 = /* @__PURE__ */ wrapClsx(instance.mergeString, instance);
26571
26529
  var twMerge2 = instance.merge;
26572
26530
 
26573
26531
  // ../ui/src/components/dialog.tsx
26574
- import { jsx as jsx23, jsxs as jsxs7 } from "react/jsx-runtime";
26532
+ import { jsx as jsx22, jsxs as jsxs7 } from "react/jsx-runtime";
26575
26533
  function Dialog2({
26576
26534
  ...props
26577
26535
  }) {
26578
- return /* @__PURE__ */ jsx23(dist_exports7.Root, { "data-slot": "dialog", ...props });
26536
+ return /* @__PURE__ */ jsx22(dist_exports7.Root, { "data-slot": "dialog", ...props });
26579
26537
  }
26580
26538
  function DialogClose2({
26581
26539
  ...props
26582
26540
  }) {
26583
- return /* @__PURE__ */ jsx23(dist_exports7.Close, { "data-slot": "dialog-close", ...props });
26541
+ return /* @__PURE__ */ jsx22(dist_exports7.Close, { "data-slot": "dialog-close", ...props });
26584
26542
  }
26585
26543
 
26544
+ // ../ui/src/composites/dialog.tsx
26545
+ import { forwardRef as forwardRef17 } from "react";
26546
+
26586
26547
  // ../ui/src/lib/shadow-focus.ts
26587
26548
  var TABBABLE = [
26588
26549
  "a[href]",
@@ -26617,14 +26578,12 @@ function loopTabInShadowRoot(event) {
26617
26578
  }
26618
26579
 
26619
26580
  // ../ui/src/composites/dialog.tsx
26620
- import { jsx as jsx24, jsxs as jsxs8 } from "react/jsx-runtime";
26621
- function DialogOverlay2({
26622
- className,
26623
- ...props
26624
- }) {
26625
- return /* @__PURE__ */ jsx24(
26581
+ import { jsx as jsx23, jsxs as jsxs8 } from "react/jsx-runtime";
26582
+ var DialogOverlay2 = forwardRef17(function DialogOverlay3({ className, ...props }, ref) {
26583
+ return /* @__PURE__ */ jsx23(
26626
26584
  dist_exports7.Overlay,
26627
26585
  {
26586
+ ref,
26628
26587
  "data-slot": "dialog-overlay",
26629
26588
  className: cn2(
26630
26589
  "fixed inset-0 z-50 bg-black/45 backdrop-blur-sm duration-(--motion-duration-fast) data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0",
@@ -26633,7 +26592,7 @@ function DialogOverlay2({
26633
26592
  ...props
26634
26593
  }
26635
26594
  );
26636
- }
26595
+ });
26637
26596
  function DialogContent2({
26638
26597
  className,
26639
26598
  children,
@@ -26644,7 +26603,7 @@ function DialogContent2({
26644
26603
  }) {
26645
26604
  const overlayRoot = useOverlayRoot();
26646
26605
  return /* @__PURE__ */ jsxs8(dist_exports7.Portal, { "data-slot": "dialog-portal", container: overlayRoot, children: [
26647
- /* @__PURE__ */ jsx24(DialogOverlay2, { className: overlayClassName }),
26606
+ /* @__PURE__ */ jsx23(DialogOverlay2, { className: overlayClassName }),
26648
26607
  /* @__PURE__ */ jsxs8(
26649
26608
  dist_exports7.Content,
26650
26609
  {
@@ -26666,8 +26625,8 @@ function DialogContent2({
26666
26625
  "data-slot": "dialog-close",
26667
26626
  className: "absolute top-4 right-4 rounded-[8px] p-2 text-[hsl(var(--muted-foreground))] opacity-90 transition-colors hover:bg-[hsl(var(--accent))] hover:opacity-100 focus:outline-none disabled:pointer-events-none",
26668
26627
  children: [
26669
- /* @__PURE__ */ jsx24(X, { size: 16 }),
26670
- /* @__PURE__ */ jsx24("span", { className: "sr-only", children: "\u5173\u95ED" })
26628
+ /* @__PURE__ */ jsx23(X, { size: 16 }),
26629
+ /* @__PURE__ */ jsx23("span", { className: "sr-only", children: "\u5173\u95ED" })
26671
26630
  ]
26672
26631
  }
26673
26632
  )
@@ -26677,7 +26636,7 @@ function DialogContent2({
26677
26636
  ] });
26678
26637
  }
26679
26638
  function DialogTitle2({ className, ...props }) {
26680
- return /* @__PURE__ */ jsx24(
26639
+ return /* @__PURE__ */ jsx23(
26681
26640
  dist_exports7.Title,
26682
26641
  {
26683
26642
  "data-slot": "dialog-title",
@@ -26686,6 +26645,19 @@ function DialogTitle2({ className, ...props }) {
26686
26645
  }
26687
26646
  );
26688
26647
  }
26648
+ function DialogDescription2({
26649
+ className,
26650
+ ...props
26651
+ }) {
26652
+ return /* @__PURE__ */ jsx23(
26653
+ dist_exports7.Description,
26654
+ {
26655
+ "data-slot": "dialog-description",
26656
+ className: cn2("text-sm text-[hsl(var(--muted-foreground))]", className),
26657
+ ...props
26658
+ }
26659
+ );
26660
+ }
26689
26661
 
26690
26662
  // src/chat/chat-theme.tsx
26691
26663
  var NEUTRAL = {
@@ -26750,7 +26722,7 @@ export {
26750
26722
  CircleAlert,
26751
26723
  CircleCheck,
26752
26724
  CirclePause,
26753
- CircleX,
26725
+ CircleSlash,
26754
26726
  Copy,
26755
26727
  Download,
26756
26728
  Earth,
@@ -26790,7 +26762,6 @@ export {
26790
26762
  Plug,
26791
26763
  Plus,
26792
26764
  RefreshCcw,
26793
- RefreshCw,
26794
26765
  Rocket,
26795
26766
  RotateCcw,
26796
26767
  Scissors,
@@ -26803,32 +26774,11 @@ export {
26803
26774
  Terminal,
26804
26775
  Trash2,
26805
26776
  TriangleAlert,
26806
- Workflow,
26807
26777
  Wrench,
26808
26778
  X,
26779
+ Zap,
26809
26780
  cn,
26810
26781
  copyToClipboard,
26811
- ChatEnvironmentProvider,
26812
- useChatEnvironment,
26813
- useHighlightedCode,
26814
- useChatSessionDetail,
26815
- useHideTodo,
26816
- useChatRenderMode,
26817
- notifyChat,
26818
- useComposerBridge,
26819
- useChatVirtualizer,
26820
- getResultText,
26821
- getResultImages,
26822
- parseJsonValue,
26823
- isPlainObject,
26824
- getStringValue,
26825
- getNumberValue,
26826
- getBooleanValue,
26827
- extractErrorMessage,
26828
- getFileName,
26829
- formatBytes,
26830
- CodePreview,
26831
- parseKbSearchResult,
26832
26782
  getToolDescription,
26833
26783
  formatToolFileName,
26834
26784
  formatToolName,
@@ -26852,6 +26802,21 @@ export {
26852
26802
  usePlanRevealRevision,
26853
26803
  CurrentChatSessionProvider,
26854
26804
  useCurrentChatSessionId,
26805
+ ChatEnvironmentProvider,
26806
+ useChatEnvironment,
26807
+ useHighlightedCode,
26808
+ useChatSessionDetail,
26809
+ useHideTodo,
26810
+ useChatRenderMode,
26811
+ notifyChat,
26812
+ useComposerBridge,
26813
+ useChatVirtualizer,
26814
+ getInputHistoryGeneration,
26815
+ onInputCachesReset,
26816
+ pluginRefsForSend,
26817
+ getPluginSuggestionItems,
26818
+ queueShortcutLabel,
26819
+ isQueueShortcut,
26855
26820
  sendToSession,
26856
26821
  useControllableState,
26857
26822
  dist_exports6 as dist_exports,
@@ -26869,6 +26834,7 @@ export {
26869
26834
  DialogClose2 as DialogClose,
26870
26835
  DialogContent2 as DialogContent,
26871
26836
  DialogTitle2 as DialogTitle,
26837
+ DialogDescription2 as DialogDescription,
26872
26838
  chatTone,
26873
26839
  useEffectEvent2 as useEffectEvent,
26874
26840
  SessionPluginConfigForm,
@@ -26916,7 +26882,7 @@ lucide-react/dist/esm/icons/circle-alert.js:
26916
26882
  lucide-react/dist/esm/icons/circle-check.js:
26917
26883
  lucide-react/dist/esm/icons/circle-dot.js:
26918
26884
  lucide-react/dist/esm/icons/circle-pause.js:
26919
- lucide-react/dist/esm/icons/circle-x.js:
26885
+ lucide-react/dist/esm/icons/circle-slash.js:
26920
26886
  lucide-react/dist/esm/icons/circle.js:
26921
26887
  lucide-react/dist/esm/icons/copy.js:
26922
26888
  lucide-react/dist/esm/icons/download.js:
@@ -26959,7 +26925,6 @@ lucide-react/dist/esm/icons/plug.js:
26959
26925
  lucide-react/dist/esm/icons/plus.js:
26960
26926
  lucide-react/dist/esm/icons/puzzle.js:
26961
26927
  lucide-react/dist/esm/icons/refresh-ccw.js:
26962
- lucide-react/dist/esm/icons/refresh-cw.js:
26963
26928
  lucide-react/dist/esm/icons/rocket.js:
26964
26929
  lucide-react/dist/esm/icons/rotate-ccw.js:
26965
26930
  lucide-react/dist/esm/icons/scissors.js:
@@ -26972,9 +26937,9 @@ lucide-react/dist/esm/icons/square.js:
26972
26937
  lucide-react/dist/esm/icons/terminal.js:
26973
26938
  lucide-react/dist/esm/icons/trash-2.js:
26974
26939
  lucide-react/dist/esm/icons/triangle-alert.js:
26975
- lucide-react/dist/esm/icons/workflow.js:
26976
26940
  lucide-react/dist/esm/icons/wrench.js:
26977
26941
  lucide-react/dist/esm/icons/x.js:
26942
+ lucide-react/dist/esm/icons/zap.js:
26978
26943
  lucide-react/dist/esm/lucide-react.js:
26979
26944
  (**
26980
26945
  * @license lucide-react v0.468.0 - ISC
@@ -26983,4 +26948,4 @@ lucide-react/dist/esm/lucide-react.js:
26983
26948
  * See the LICENSE file in the root directory of this source tree.
26984
26949
  *)
26985
26950
  */
26986
- //# sourceMappingURL=chunk-FQQJP2GJ.js.map
26951
+ //# sourceMappingURL=chunk-XTYNDVUV.js.map