@notectl/core 2.2.1 → 2.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1280) hide show
  1. package/README.md +2 -0
  2. package/dist/chunks/AlignmentPlugin-h6sx-yIf.mjs +2 -0
  3. package/dist/chunks/AlignmentPlugin-h6sx-yIf.mjs.map +1 -0
  4. package/dist/chunks/AttrRegistry-DcDVyzLm.mjs +2 -0
  5. package/dist/chunks/AttrRegistry-DcDVyzLm.mjs.map +1 -0
  6. package/dist/chunks/AttributedMarkCommands-D4W2Jgpj.mjs +2 -0
  7. package/dist/chunks/AttributedMarkCommands-D4W2Jgpj.mjs.map +1 -0
  8. package/dist/chunks/BidiIsolationPlugin-Bm3h9J15.mjs +2 -0
  9. package/dist/chunks/BidiIsolationPlugin-Bm3h9J15.mjs.map +1 -0
  10. package/dist/chunks/BlockInsertion-6rR9tIGP.mjs +2 -0
  11. package/dist/chunks/BlockInsertion-6rR9tIGP.mjs.map +1 -0
  12. package/dist/chunks/BlockTypePickerRegistry-BTET9jM-.mjs +2 -0
  13. package/dist/chunks/BlockTypePickerRegistry-BTET9jM-.mjs.map +1 -0
  14. package/dist/chunks/BlockquotePlugin-CxrCA0vY.mjs +2 -0
  15. package/dist/chunks/BlockquotePlugin-CxrCA0vY.mjs.map +1 -0
  16. package/dist/chunks/CaretNavigationPlugin-Bb7W_FMg.mjs +2 -0
  17. package/dist/chunks/CaretNavigationPlugin-Bb7W_FMg.mjs.map +1 -0
  18. package/dist/chunks/CodeBlockPlugin-CcB0WaIz.mjs +2 -0
  19. package/dist/chunks/CodeBlockPlugin-CcB0WaIz.mjs.map +1 -0
  20. package/dist/chunks/ColorGrid-CXRdpP_n.mjs +2 -0
  21. package/dist/chunks/ColorGrid-CXRdpP_n.mjs.map +1 -0
  22. package/dist/chunks/ColorPickerPopup-C_74bqid.mjs +2 -0
  23. package/dist/chunks/ColorPickerPopup-C_74bqid.mjs.map +1 -0
  24. package/dist/chunks/ColorValidation-DAijTjG9.mjs +2 -0
  25. package/dist/chunks/ColorValidation-DAijTjG9.mjs.map +1 -0
  26. package/dist/chunks/Commands-BIIpx_Zd.mjs +2 -0
  27. package/dist/chunks/Commands-BIIpx_Zd.mjs.map +1 -0
  28. package/dist/chunks/Decoration-ZeyVfwJB.mjs +2 -0
  29. package/dist/chunks/Decoration-ZeyVfwJB.mjs.map +1 -0
  30. package/dist/chunks/DirectionDetection-C7XE0nxW.mjs +2 -0
  31. package/dist/chunks/DirectionDetection-C7XE0nxW.mjs.map +1 -0
  32. package/dist/chunks/DirectionIcons-Bbawl9ei.mjs +2 -0
  33. package/dist/chunks/DirectionIcons-Bbawl9ei.mjs.map +1 -0
  34. package/dist/chunks/Document-r7vLOAGA.mjs +2 -0
  35. package/dist/chunks/Document-r7vLOAGA.mjs.map +1 -0
  36. package/dist/chunks/DocumentParser-CcTSeT1B.mjs +2 -0
  37. package/dist/chunks/DocumentParser-CcTSeT1B.mjs.map +1 -0
  38. package/dist/chunks/DomUtils-Bf7JLFlx.mjs +2 -0
  39. package/dist/chunks/DomUtils-Bf7JLFlx.mjs.map +1 -0
  40. package/dist/chunks/FontPlugin-1VYDwETg.mjs +2 -0
  41. package/dist/chunks/FontPlugin-1VYDwETg.mjs.map +1 -0
  42. package/dist/chunks/FontSizePlugin-L1uDVsKY.mjs +2 -0
  43. package/dist/chunks/FontSizePlugin-L1uDVsKY.mjs.map +1 -0
  44. package/dist/chunks/FormulaPlugin-66Cc9sH2.mjs +2 -0
  45. package/dist/chunks/FormulaPlugin-66Cc9sH2.mjs.map +1 -0
  46. package/dist/chunks/GapCursorNavigation-ycNzuQVH.mjs +2 -0
  47. package/dist/chunks/GapCursorNavigation-ycNzuQVH.mjs.map +1 -0
  48. package/dist/chunks/GapCursorPlugin-B29ieXel.mjs +2 -0
  49. package/dist/chunks/GapCursorPlugin-B29ieXel.mjs.map +1 -0
  50. package/dist/chunks/HTMLUtils-C6B4UT00.mjs +2 -0
  51. package/dist/chunks/HTMLUtils-C6B4UT00.mjs.map +1 -0
  52. package/dist/chunks/HardBreakPlugin-9DOyCyyM.mjs +2 -0
  53. package/dist/chunks/HardBreakPlugin-9DOyCyyM.mjs.map +1 -0
  54. package/dist/chunks/HeadingPlugin-SICF6Tm0.mjs +2 -0
  55. package/dist/chunks/HeadingPlugin-SICF6Tm0.mjs.map +1 -0
  56. package/dist/chunks/HighlightPlugin-B3b_qe68.mjs +2 -0
  57. package/dist/chunks/HighlightPlugin-B3b_qe68.mjs.map +1 -0
  58. package/dist/chunks/HorizontalRulePlugin-BrFlrpmb.mjs +2 -0
  59. package/dist/chunks/HorizontalRulePlugin-BrFlrpmb.mjs.map +1 -0
  60. package/dist/chunks/ImagePlugin-eRVtFFou.mjs +2 -0
  61. package/dist/chunks/ImagePlugin-eRVtFFou.mjs.map +1 -0
  62. package/dist/chunks/InlineCodePlugin-Cj1EZ3x2.mjs +2 -0
  63. package/dist/chunks/InlineCodePlugin-Cj1EZ3x2.mjs.map +1 -0
  64. package/dist/chunks/InlineStyleMarkSpec-4R6DC7ij.mjs +2 -0
  65. package/dist/chunks/InlineStyleMarkSpec-4R6DC7ij.mjs.map +1 -0
  66. package/dist/chunks/KeyboardNav-D0my3wuy.mjs +2 -0
  67. package/dist/chunks/KeyboardNav-D0my3wuy.mjs.map +1 -0
  68. package/dist/chunks/LinkPlugin-B_ysjORS.mjs +2 -0
  69. package/dist/chunks/LinkPlugin-B_ysjORS.mjs.map +1 -0
  70. package/dist/chunks/ListPlugin-C0BV8CnQ.mjs +2 -0
  71. package/dist/chunks/ListPlugin-C0BV8CnQ.mjs.map +1 -0
  72. package/dist/chunks/NavigationQueries-Bt4zZ17v.mjs +2 -0
  73. package/dist/chunks/NavigationQueries-Bt4zZ17v.mjs.map +1 -0
  74. package/dist/chunks/NodeResolver-ChgLF_IP.mjs +2 -0
  75. package/dist/chunks/NodeResolver-ChgLF_IP.mjs.map +1 -0
  76. package/dist/chunks/NodeSelectionCommands-Dj4VxLdD.mjs +2 -0
  77. package/dist/chunks/NodeSelectionCommands-Dj4VxLdD.mjs.map +1 -0
  78. package/dist/chunks/NodeSpecPatching-B_yLknTl.mjs +2 -0
  79. package/dist/chunks/NodeSpecPatching-B_yLknTl.mjs.map +1 -0
  80. package/dist/chunks/Platform-ByobkiCc.mjs +2 -0
  81. package/dist/chunks/Platform-ByobkiCc.mjs.map +1 -0
  82. package/dist/chunks/PluginHelpers-D4quRJ5a.mjs +2 -0
  83. package/dist/chunks/PluginHelpers-D4quRJ5a.mjs.map +1 -0
  84. package/dist/chunks/PopupKeyboardPatterns-tUrT9TyV.mjs +2 -0
  85. package/dist/chunks/PopupKeyboardPatterns-tUrT9TyV.mjs.map +1 -0
  86. package/dist/chunks/PopupManager-CyOfZUab.mjs +2 -0
  87. package/dist/chunks/PopupManager-CyOfZUab.mjs.map +1 -0
  88. package/dist/chunks/PopupPositioning-DtUrY9bh.mjs +2 -0
  89. package/dist/chunks/PopupPositioning-DtUrY9bh.mjs.map +1 -0
  90. package/dist/chunks/PrintPlugin-CXDFFzWB.mjs +2 -0
  91. package/dist/chunks/PrintPlugin-CXDFFzWB.mjs.map +1 -0
  92. package/dist/chunks/PrintTypes-WdtgSj74.mjs +2 -0
  93. package/dist/chunks/PrintTypes-WdtgSj74.mjs.map +1 -0
  94. package/dist/chunks/RangeIterator-o8v3msQe.mjs +2 -0
  95. package/dist/chunks/RangeIterator-o8v3msQe.mjs.map +1 -0
  96. package/dist/chunks/Selection-HYoVFpAx.mjs +2 -0
  97. package/dist/chunks/Selection-HYoVFpAx.mjs.map +1 -0
  98. package/dist/chunks/SelectionSync-BSHIw1EE.mjs +2 -0
  99. package/dist/chunks/SelectionSync-BSHIw1EE.mjs.map +1 -0
  100. package/dist/chunks/ShortcutFormatting-TwiufqeV.mjs +2 -0
  101. package/dist/chunks/ShortcutFormatting-TwiufqeV.mjs.map +1 -0
  102. package/dist/chunks/SimpleMark-Bdqjcz0G.mjs +2 -0
  103. package/dist/chunks/SimpleMark-Bdqjcz0G.mjs.map +1 -0
  104. package/dist/chunks/SmartPastePlugin-BhkoH03E.mjs +2 -0
  105. package/dist/chunks/SmartPastePlugin-BhkoH03E.mjs.map +1 -0
  106. package/dist/chunks/StrikethroughPlugin-DRuwEZhu.mjs +2 -0
  107. package/dist/chunks/StrikethroughPlugin-DRuwEZhu.mjs.map +1 -0
  108. package/dist/chunks/StyleRuntime-BAutwDZT.mjs +2 -0
  109. package/dist/chunks/StyleRuntime-BAutwDZT.mjs.map +1 -0
  110. package/dist/chunks/SuperSubPlugin-IZ_x8GS-.mjs +2 -0
  111. package/dist/chunks/SuperSubPlugin-IZ_x8GS-.mjs.map +1 -0
  112. package/dist/chunks/SyntaxTokenTypes-BUCOMtL8.mjs +2 -0
  113. package/dist/chunks/SyntaxTokenTypes-BUCOMtL8.mjs.map +1 -0
  114. package/dist/chunks/TablePlugin-CRp4qSZE.mjs +2 -0
  115. package/dist/chunks/TablePlugin-CRp4qSZE.mjs.map +1 -0
  116. package/dist/chunks/TextColorPlugin-CViEiYZk.mjs +2 -0
  117. package/dist/chunks/TextColorPlugin-CViEiYZk.mjs.map +1 -0
  118. package/dist/chunks/TextDirectionAutoPlugin-CzWJjrvG.mjs +2 -0
  119. package/dist/chunks/TextDirectionAutoPlugin-CzWJjrvG.mjs.map +1 -0
  120. package/dist/chunks/TextDirectionPlugin-CQGkaS2s.mjs +2 -0
  121. package/dist/chunks/TextDirectionPlugin-CQGkaS2s.mjs.map +1 -0
  122. package/dist/chunks/TextDirectionService-OFOU6r_s.mjs +2 -0
  123. package/dist/chunks/TextDirectionService-OFOU6r_s.mjs.map +1 -0
  124. package/dist/chunks/TextFormattingPlugin-CpyZgtLi.mjs +2 -0
  125. package/dist/chunks/TextFormattingPlugin-CpyZgtLi.mjs.map +1 -0
  126. package/dist/chunks/ToolbarPlugin-B5UUc6dY.mjs +2 -0
  127. package/dist/chunks/ToolbarPlugin-B5UUc6dY.mjs.map +1 -0
  128. package/dist/chunks/TypeBrands-Ch9856Gb.mjs +2 -0
  129. package/dist/chunks/TypeBrands-Ch9856Gb.mjs.map +1 -0
  130. package/dist/chunks/TypedKeys-CA4bfw9O.mjs +2 -0
  131. package/dist/chunks/TypedKeys-CA4bfw9O.mjs.map +1 -0
  132. package/dist/chunks/VideoPlugin-mXIDODzC.mjs +2 -0
  133. package/dist/chunks/VideoPlugin-mXIDODzC.mjs.map +1 -0
  134. package/dist/chunks/WordBoundary-DxeMBRyP.mjs +2 -0
  135. package/dist/chunks/WordBoundary-DxeMBRyP.mjs.map +1 -0
  136. package/dist/chunks/XmlDetector-D7TQpw-e.mjs +2 -0
  137. package/dist/chunks/XmlDetector-D7TQpw-e.mjs.map +1 -0
  138. package/dist/chunks/XmlPatterns-RN32-0ob.mjs +2 -0
  139. package/dist/chunks/XmlPatterns-RN32-0ob.mjs.map +1 -0
  140. package/dist/chunks/XmlSupport-BYiRwlkK.mjs +2 -0
  141. package/dist/chunks/XmlSupport-BYiRwlkK.mjs.map +1 -0
  142. package/dist/chunks/ar--Isa9OHJ.mjs +2 -0
  143. package/dist/chunks/ar--Isa9OHJ.mjs.map +1 -0
  144. package/dist/chunks/ar--O0A9OTR.mjs +2 -0
  145. package/dist/chunks/ar--O0A9OTR.mjs.map +1 -0
  146. package/dist/chunks/ar-0g2bmXTn.mjs +2 -0
  147. package/dist/chunks/ar-0g2bmXTn.mjs.map +1 -0
  148. package/dist/chunks/ar-4b8e2YSc.mjs +2 -0
  149. package/dist/chunks/ar-4b8e2YSc.mjs.map +1 -0
  150. package/dist/chunks/ar-B03uY4xr.mjs +2 -0
  151. package/dist/chunks/ar-B03uY4xr.mjs.map +1 -0
  152. package/dist/chunks/ar-BAfInw85.mjs +2 -0
  153. package/dist/chunks/ar-BAfInw85.mjs.map +1 -0
  154. package/dist/chunks/ar-BRX5E_Pw.mjs +2 -0
  155. package/dist/chunks/ar-BRX5E_Pw.mjs.map +1 -0
  156. package/dist/chunks/ar-BTShmP2E.mjs +2 -0
  157. package/dist/chunks/ar-BTShmP2E.mjs.map +1 -0
  158. package/dist/chunks/ar-BWOue6jG.mjs +2 -0
  159. package/dist/chunks/ar-BWOue6jG.mjs.map +1 -0
  160. package/dist/chunks/ar-Bdmunk5h.mjs +2 -0
  161. package/dist/chunks/ar-Bdmunk5h.mjs.map +1 -0
  162. package/dist/chunks/ar-BwaoCUVN.mjs +2 -0
  163. package/dist/chunks/ar-BwaoCUVN.mjs.map +1 -0
  164. package/dist/chunks/ar-BzqAYGER.mjs +2 -0
  165. package/dist/chunks/ar-BzqAYGER.mjs.map +1 -0
  166. package/dist/chunks/ar-C9lO1jsY.mjs +2 -0
  167. package/dist/chunks/ar-C9lO1jsY.mjs.map +1 -0
  168. package/dist/chunks/ar-CMXjVzFx.mjs +2 -0
  169. package/dist/chunks/ar-CMXjVzFx.mjs.map +1 -0
  170. package/dist/chunks/ar-CR6UdFL9.mjs +2 -0
  171. package/dist/chunks/ar-CR6UdFL9.mjs.map +1 -0
  172. package/dist/chunks/ar-CrOb0jL2.mjs +2 -0
  173. package/dist/chunks/ar-CrOb0jL2.mjs.map +1 -0
  174. package/dist/chunks/ar-Ctrv6cIi.mjs +2 -0
  175. package/dist/chunks/ar-Ctrv6cIi.mjs.map +1 -0
  176. package/dist/chunks/ar-Cy_77yRf.mjs +2 -0
  177. package/dist/chunks/ar-Cy_77yRf.mjs.map +1 -0
  178. package/dist/chunks/ar-D1jFXqLJ.mjs +2 -0
  179. package/dist/chunks/ar-D1jFXqLJ.mjs.map +1 -0
  180. package/dist/chunks/ar-DahJwMI9.mjs +2 -0
  181. package/dist/chunks/ar-DahJwMI9.mjs.map +1 -0
  182. package/dist/chunks/ar-Dcl3kgtd.mjs +2 -0
  183. package/dist/chunks/ar-Dcl3kgtd.mjs.map +1 -0
  184. package/dist/chunks/ar-Dx2lO0Nm.mjs +2 -0
  185. package/dist/chunks/ar-Dx2lO0Nm.mjs.map +1 -0
  186. package/dist/chunks/ar-NV_puwI2.mjs +2 -0
  187. package/dist/chunks/ar-NV_puwI2.mjs.map +1 -0
  188. package/dist/chunks/ar-Uzo1Azdw.mjs +2 -0
  189. package/dist/chunks/ar-Uzo1Azdw.mjs.map +1 -0
  190. package/dist/chunks/ar-XmSFrtmd.mjs +2 -0
  191. package/dist/chunks/ar-XmSFrtmd.mjs.map +1 -0
  192. package/dist/chunks/ar-jbplYWkC.mjs +2 -0
  193. package/dist/chunks/ar-jbplYWkC.mjs.map +1 -0
  194. package/dist/chunks/ar-sGZ-oZqB.mjs +2 -0
  195. package/dist/chunks/ar-sGZ-oZqB.mjs.map +1 -0
  196. package/dist/chunks/color-picker-C9B2rYw-.mjs +2 -0
  197. package/dist/chunks/color-picker-C9B2rYw-.mjs.map +1 -0
  198. package/dist/chunks/de-B8-w9gPi.mjs +2 -0
  199. package/dist/chunks/de-B8-w9gPi.mjs.map +1 -0
  200. package/dist/chunks/de-B9zSHWqY.mjs +2 -0
  201. package/dist/chunks/de-B9zSHWqY.mjs.map +1 -0
  202. package/dist/chunks/de-BX4y4PlH.mjs +2 -0
  203. package/dist/chunks/de-BX4y4PlH.mjs.map +1 -0
  204. package/dist/chunks/de-BXQBXxFJ.mjs +2 -0
  205. package/dist/chunks/de-BXQBXxFJ.mjs.map +1 -0
  206. package/dist/chunks/de-BcPntcnr.mjs +2 -0
  207. package/dist/chunks/de-BcPntcnr.mjs.map +1 -0
  208. package/dist/chunks/de-BdD3DpUB.mjs +2 -0
  209. package/dist/chunks/de-BdD3DpUB.mjs.map +1 -0
  210. package/dist/chunks/de-Bwxlcuee.mjs +2 -0
  211. package/dist/chunks/de-Bwxlcuee.mjs.map +1 -0
  212. package/dist/chunks/de-BxQIt_1Y.mjs +2 -0
  213. package/dist/chunks/de-BxQIt_1Y.mjs.map +1 -0
  214. package/dist/chunks/de-C--bRmjW.mjs +2 -0
  215. package/dist/chunks/de-C--bRmjW.mjs.map +1 -0
  216. package/dist/chunks/de-C-Yf378-.mjs +2 -0
  217. package/dist/chunks/de-C-Yf378-.mjs.map +1 -0
  218. package/dist/chunks/de-C7uehgMu.mjs +2 -0
  219. package/dist/chunks/de-C7uehgMu.mjs.map +1 -0
  220. package/dist/chunks/de-C9ZhDqPi.mjs +2 -0
  221. package/dist/chunks/de-C9ZhDqPi.mjs.map +1 -0
  222. package/dist/chunks/de-CHcv_Vmf.mjs +2 -0
  223. package/dist/chunks/de-CHcv_Vmf.mjs.map +1 -0
  224. package/dist/chunks/de-CTzAMkXC.mjs +2 -0
  225. package/dist/chunks/de-CTzAMkXC.mjs.map +1 -0
  226. package/dist/chunks/de-CaeEIyzV.mjs +2 -0
  227. package/dist/chunks/de-CaeEIyzV.mjs.map +1 -0
  228. package/dist/chunks/de-DHs9i4af.mjs +2 -0
  229. package/dist/chunks/de-DHs9i4af.mjs.map +1 -0
  230. package/dist/chunks/de-DN-e6G5A.mjs +2 -0
  231. package/dist/chunks/de-DN-e6G5A.mjs.map +1 -0
  232. package/dist/chunks/de-DViI26lG.mjs +2 -0
  233. package/dist/chunks/de-DViI26lG.mjs.map +1 -0
  234. package/dist/chunks/de-DY3obIAF.mjs +2 -0
  235. package/dist/chunks/de-DY3obIAF.mjs.map +1 -0
  236. package/dist/chunks/de-DcMhfRBu.mjs +2 -0
  237. package/dist/chunks/de-DcMhfRBu.mjs.map +1 -0
  238. package/dist/chunks/de-DiPz7abS.mjs +2 -0
  239. package/dist/chunks/de-DiPz7abS.mjs.map +1 -0
  240. package/dist/chunks/de-Dl4QFHMa.mjs +2 -0
  241. package/dist/chunks/de-Dl4QFHMa.mjs.map +1 -0
  242. package/dist/chunks/de-JhGflzS5.mjs +2 -0
  243. package/dist/chunks/de-JhGflzS5.mjs.map +1 -0
  244. package/dist/chunks/de-XCCpWyg0.mjs +2 -0
  245. package/dist/chunks/de-XCCpWyg0.mjs.map +1 -0
  246. package/dist/chunks/de-e6J6nvAD.mjs +2 -0
  247. package/dist/chunks/de-e6J6nvAD.mjs.map +1 -0
  248. package/dist/chunks/de-i95F9SDy.mjs +2 -0
  249. package/dist/chunks/de-i95F9SDy.mjs.map +1 -0
  250. package/dist/chunks/de-uKR7koQe.mjs +2 -0
  251. package/dist/chunks/de-uKR7koQe.mjs.map +1 -0
  252. package/dist/chunks/es-B0Za939C.mjs +2 -0
  253. package/dist/chunks/es-B0Za939C.mjs.map +1 -0
  254. package/dist/chunks/es-B8K3Yvf3.mjs +2 -0
  255. package/dist/chunks/es-B8K3Yvf3.mjs.map +1 -0
  256. package/dist/chunks/es-BIXm2Coj.mjs +2 -0
  257. package/dist/chunks/es-BIXm2Coj.mjs.map +1 -0
  258. package/dist/chunks/es-BJHF95J_.mjs +2 -0
  259. package/dist/chunks/es-BJHF95J_.mjs.map +1 -0
  260. package/dist/chunks/es-BMm9kqjC.mjs +2 -0
  261. package/dist/chunks/es-BMm9kqjC.mjs.map +1 -0
  262. package/dist/chunks/es-BQweZX6P.mjs +2 -0
  263. package/dist/chunks/es-BQweZX6P.mjs.map +1 -0
  264. package/dist/chunks/es-BdpTTRuX.mjs +2 -0
  265. package/dist/chunks/es-BdpTTRuX.mjs.map +1 -0
  266. package/dist/chunks/es-Bv7bDbMp.mjs +2 -0
  267. package/dist/chunks/es-Bv7bDbMp.mjs.map +1 -0
  268. package/dist/chunks/es-C7uVqFYr.mjs +2 -0
  269. package/dist/chunks/es-C7uVqFYr.mjs.map +1 -0
  270. package/dist/chunks/es-CCQFu1t1.mjs +2 -0
  271. package/dist/chunks/es-CCQFu1t1.mjs.map +1 -0
  272. package/dist/chunks/es-CM55WeEN.mjs +2 -0
  273. package/dist/chunks/es-CM55WeEN.mjs.map +1 -0
  274. package/dist/chunks/es-CUKJujcb.mjs +2 -0
  275. package/dist/chunks/es-CUKJujcb.mjs.map +1 -0
  276. package/dist/chunks/es-CXuMz87y.mjs +2 -0
  277. package/dist/chunks/es-CXuMz87y.mjs.map +1 -0
  278. package/dist/chunks/es-CgMfhkJJ.mjs +2 -0
  279. package/dist/chunks/es-CgMfhkJJ.mjs.map +1 -0
  280. package/dist/chunks/es-CtOtKQCP.mjs +2 -0
  281. package/dist/chunks/es-CtOtKQCP.mjs.map +1 -0
  282. package/dist/chunks/es-DD01rZ6N.mjs +2 -0
  283. package/dist/chunks/es-DD01rZ6N.mjs.map +1 -0
  284. package/dist/chunks/es-DDoqchUq.mjs +2 -0
  285. package/dist/chunks/es-DDoqchUq.mjs.map +1 -0
  286. package/dist/chunks/es-DFUVd7eO.mjs +2 -0
  287. package/dist/chunks/es-DFUVd7eO.mjs.map +1 -0
  288. package/dist/chunks/es-DFokqQst.mjs +2 -0
  289. package/dist/chunks/es-DFokqQst.mjs.map +1 -0
  290. package/dist/chunks/es-DHxdoEzR.mjs +2 -0
  291. package/dist/chunks/es-DHxdoEzR.mjs.map +1 -0
  292. package/dist/chunks/es-DehVGwQ8.mjs +2 -0
  293. package/dist/chunks/es-DehVGwQ8.mjs.map +1 -0
  294. package/dist/chunks/es-DrJyl38L.mjs +2 -0
  295. package/dist/chunks/es-DrJyl38L.mjs.map +1 -0
  296. package/dist/chunks/es-fTW0TkYV.mjs +2 -0
  297. package/dist/chunks/es-fTW0TkYV.mjs.map +1 -0
  298. package/dist/chunks/es-kfKiqpyD.mjs +2 -0
  299. package/dist/chunks/es-kfKiqpyD.mjs.map +1 -0
  300. package/dist/chunks/es-nRLq7bgP.mjs +2 -0
  301. package/dist/chunks/es-nRLq7bgP.mjs.map +1 -0
  302. package/dist/chunks/es-paXY7HFt.mjs +2 -0
  303. package/dist/chunks/es-paXY7HFt.mjs.map +1 -0
  304. package/dist/chunks/es-xuahrvJN.mjs +2 -0
  305. package/dist/chunks/es-xuahrvJN.mjs.map +1 -0
  306. package/dist/chunks/fonts-DQC6Uj4r.mjs +2 -0
  307. package/dist/chunks/fonts-DQC6Uj4r.mjs.map +1 -0
  308. package/dist/chunks/fr-0qEo3bRP.mjs +2 -0
  309. package/dist/chunks/fr-0qEo3bRP.mjs.map +1 -0
  310. package/dist/chunks/fr-5HkMazAf.mjs +2 -0
  311. package/dist/chunks/fr-5HkMazAf.mjs.map +1 -0
  312. package/dist/chunks/fr-B9pBLaVx.mjs +2 -0
  313. package/dist/chunks/fr-B9pBLaVx.mjs.map +1 -0
  314. package/dist/chunks/fr-BRXUnq3R.mjs +2 -0
  315. package/dist/chunks/fr-BRXUnq3R.mjs.map +1 -0
  316. package/dist/chunks/fr-BSUKEtTk.mjs +2 -0
  317. package/dist/chunks/fr-BSUKEtTk.mjs.map +1 -0
  318. package/dist/chunks/fr-BaXKyPmX.mjs +2 -0
  319. package/dist/chunks/fr-BaXKyPmX.mjs.map +1 -0
  320. package/dist/chunks/fr-BeRlON1t.mjs +2 -0
  321. package/dist/chunks/fr-BeRlON1t.mjs.map +1 -0
  322. package/dist/chunks/fr-Bg937iAy.mjs +2 -0
  323. package/dist/chunks/fr-Bg937iAy.mjs.map +1 -0
  324. package/dist/chunks/fr-BwWrFThE.mjs +2 -0
  325. package/dist/chunks/fr-BwWrFThE.mjs.map +1 -0
  326. package/dist/chunks/fr-C3EKRThN.mjs +2 -0
  327. package/dist/chunks/fr-C3EKRThN.mjs.map +1 -0
  328. package/dist/chunks/fr-CKjH6tJI.mjs +2 -0
  329. package/dist/chunks/fr-CKjH6tJI.mjs.map +1 -0
  330. package/dist/chunks/fr-CQs0-pNX.mjs +2 -0
  331. package/dist/chunks/fr-CQs0-pNX.mjs.map +1 -0
  332. package/dist/chunks/fr-C_2i5Ono.mjs +2 -0
  333. package/dist/chunks/fr-C_2i5Ono.mjs.map +1 -0
  334. package/dist/chunks/fr-CfhyYN-t.mjs +2 -0
  335. package/dist/chunks/fr-CfhyYN-t.mjs.map +1 -0
  336. package/dist/chunks/fr-D0MDdoir.mjs +2 -0
  337. package/dist/chunks/fr-D0MDdoir.mjs.map +1 -0
  338. package/dist/chunks/fr-D5ulA3Z6.mjs +2 -0
  339. package/dist/chunks/fr-D5ulA3Z6.mjs.map +1 -0
  340. package/dist/chunks/fr-DEZ_oxzS.mjs +2 -0
  341. package/dist/chunks/fr-DEZ_oxzS.mjs.map +1 -0
  342. package/dist/chunks/fr-DciSEykY.mjs +2 -0
  343. package/dist/chunks/fr-DciSEykY.mjs.map +1 -0
  344. package/dist/chunks/fr-DiDhVhyV.mjs +2 -0
  345. package/dist/chunks/fr-DiDhVhyV.mjs.map +1 -0
  346. package/dist/chunks/fr-DjMZ-3K5.mjs +2 -0
  347. package/dist/chunks/fr-DjMZ-3K5.mjs.map +1 -0
  348. package/dist/chunks/fr-DtzIu6tU.mjs +2 -0
  349. package/dist/chunks/fr-DtzIu6tU.mjs.map +1 -0
  350. package/dist/chunks/fr-F2ZrfVaF.mjs +2 -0
  351. package/dist/chunks/fr-F2ZrfVaF.mjs.map +1 -0
  352. package/dist/chunks/fr-KXmbys88.mjs +2 -0
  353. package/dist/chunks/fr-KXmbys88.mjs.map +1 -0
  354. package/dist/chunks/fr-SbpHNrQ-.mjs +2 -0
  355. package/dist/chunks/fr-SbpHNrQ-.mjs.map +1 -0
  356. package/dist/chunks/fr-ZsRdLuys.mjs +2 -0
  357. package/dist/chunks/fr-ZsRdLuys.mjs.map +1 -0
  358. package/dist/chunks/fr-eC0UdAPu.mjs +2 -0
  359. package/dist/chunks/fr-eC0UdAPu.mjs.map +1 -0
  360. package/dist/chunks/fr-fshsDD66.mjs +2 -0
  361. package/dist/chunks/fr-fshsDD66.mjs.map +1 -0
  362. package/dist/chunks/full-CHkwduuY.mjs +2 -0
  363. package/dist/chunks/full-CHkwduuY.mjs.map +1 -0
  364. package/dist/chunks/hi-4CiAKVjT.mjs +2 -0
  365. package/dist/chunks/hi-4CiAKVjT.mjs.map +1 -0
  366. package/dist/chunks/hi-B-ZuX4aN.mjs +2 -0
  367. package/dist/chunks/hi-B-ZuX4aN.mjs.map +1 -0
  368. package/dist/chunks/hi-B2YB3Bo4.mjs +2 -0
  369. package/dist/chunks/hi-B2YB3Bo4.mjs.map +1 -0
  370. package/dist/chunks/hi-B2uhiPCN.mjs +2 -0
  371. package/dist/chunks/hi-B2uhiPCN.mjs.map +1 -0
  372. package/dist/chunks/hi-B5cl8TWK.mjs +2 -0
  373. package/dist/chunks/hi-B5cl8TWK.mjs.map +1 -0
  374. package/dist/chunks/hi-BNJIGWQQ.mjs +2 -0
  375. package/dist/chunks/hi-BNJIGWQQ.mjs.map +1 -0
  376. package/dist/chunks/hi-BOMkDPqC.mjs +2 -0
  377. package/dist/chunks/hi-BOMkDPqC.mjs.map +1 -0
  378. package/dist/chunks/hi-Bl-yeeOI.mjs +2 -0
  379. package/dist/chunks/hi-Bl-yeeOI.mjs.map +1 -0
  380. package/dist/chunks/hi-Bu799xIO.mjs +2 -0
  381. package/dist/chunks/hi-Bu799xIO.mjs.map +1 -0
  382. package/dist/chunks/hi-By8YwVIX.mjs +2 -0
  383. package/dist/chunks/hi-By8YwVIX.mjs.map +1 -0
  384. package/dist/chunks/hi-BzbMD_cP.mjs +2 -0
  385. package/dist/chunks/hi-BzbMD_cP.mjs.map +1 -0
  386. package/dist/chunks/hi-C2jEsf8v.mjs +2 -0
  387. package/dist/chunks/hi-C2jEsf8v.mjs.map +1 -0
  388. package/dist/chunks/hi-C9fvG91d.mjs +2 -0
  389. package/dist/chunks/hi-C9fvG91d.mjs.map +1 -0
  390. package/dist/chunks/hi-CTWubxLY.mjs +2 -0
  391. package/dist/chunks/hi-CTWubxLY.mjs.map +1 -0
  392. package/dist/chunks/hi-CoclKAUM.mjs +2 -0
  393. package/dist/chunks/hi-CoclKAUM.mjs.map +1 -0
  394. package/dist/chunks/hi-CrmakMVj.mjs +2 -0
  395. package/dist/chunks/hi-CrmakMVj.mjs.map +1 -0
  396. package/dist/chunks/hi-DWX6k5ZD.mjs +2 -0
  397. package/dist/chunks/hi-DWX6k5ZD.mjs.map +1 -0
  398. package/dist/chunks/hi-DY55FuDK.mjs +2 -0
  399. package/dist/chunks/hi-DY55FuDK.mjs.map +1 -0
  400. package/dist/chunks/hi-DsdXcOB6.mjs +2 -0
  401. package/dist/chunks/hi-DsdXcOB6.mjs.map +1 -0
  402. package/dist/chunks/hi-Dt89SxNy.mjs +2 -0
  403. package/dist/chunks/hi-Dt89SxNy.mjs.map +1 -0
  404. package/dist/chunks/hi-J8ErB5nB.mjs +2 -0
  405. package/dist/chunks/hi-J8ErB5nB.mjs.map +1 -0
  406. package/dist/chunks/hi-L6pJxZam.mjs +2 -0
  407. package/dist/chunks/hi-L6pJxZam.mjs.map +1 -0
  408. package/dist/chunks/hi-SECtQQzq.mjs +2 -0
  409. package/dist/chunks/hi-SECtQQzq.mjs.map +1 -0
  410. package/dist/chunks/hi-aH9HZG23.mjs +2 -0
  411. package/dist/chunks/hi-aH9HZG23.mjs.map +1 -0
  412. package/dist/chunks/hi-j3TDLMYd.mjs +2 -0
  413. package/dist/chunks/hi-j3TDLMYd.mjs.map +1 -0
  414. package/dist/chunks/hi-l6DA-aOw.mjs +2 -0
  415. package/dist/chunks/hi-l6DA-aOw.mjs.map +1 -0
  416. package/dist/chunks/hi-uACJUw53.mjs +2 -0
  417. package/dist/chunks/hi-uACJUw53.mjs.map +1 -0
  418. package/dist/chunks/minimal-D5v-raei.mjs +2 -0
  419. package/dist/chunks/minimal-D5v-raei.mjs.map +1 -0
  420. package/dist/chunks/pt-5VeuNDd2.mjs +2 -0
  421. package/dist/chunks/pt-5VeuNDd2.mjs.map +1 -0
  422. package/dist/chunks/pt-BCXgUDiU.mjs +2 -0
  423. package/dist/chunks/pt-BCXgUDiU.mjs.map +1 -0
  424. package/dist/chunks/pt-BDam9cDu.mjs +2 -0
  425. package/dist/chunks/pt-BDam9cDu.mjs.map +1 -0
  426. package/dist/chunks/pt-Bb908r0n.mjs +2 -0
  427. package/dist/chunks/pt-Bb908r0n.mjs.map +1 -0
  428. package/dist/chunks/pt-BkpVtod-.mjs +2 -0
  429. package/dist/chunks/pt-BkpVtod-.mjs.map +1 -0
  430. package/dist/chunks/pt-BlFAJZo7.mjs +2 -0
  431. package/dist/chunks/pt-BlFAJZo7.mjs.map +1 -0
  432. package/dist/chunks/pt-Bu7Mbz67.mjs +2 -0
  433. package/dist/chunks/pt-Bu7Mbz67.mjs.map +1 -0
  434. package/dist/chunks/pt-C8sOyw0V.mjs +2 -0
  435. package/dist/chunks/pt-C8sOyw0V.mjs.map +1 -0
  436. package/dist/chunks/pt-CEUgbrii.mjs +2 -0
  437. package/dist/chunks/pt-CEUgbrii.mjs.map +1 -0
  438. package/dist/chunks/pt-CMrFpUWS.mjs +2 -0
  439. package/dist/chunks/pt-CMrFpUWS.mjs.map +1 -0
  440. package/dist/chunks/pt-CMx2wPPY.mjs +2 -0
  441. package/dist/chunks/pt-CMx2wPPY.mjs.map +1 -0
  442. package/dist/chunks/pt-CR4j8gtE.mjs +2 -0
  443. package/dist/chunks/pt-CR4j8gtE.mjs.map +1 -0
  444. package/dist/chunks/pt-Cc4zysaT.mjs +2 -0
  445. package/dist/chunks/pt-Cc4zysaT.mjs.map +1 -0
  446. package/dist/chunks/pt-Cv6q7x5x.mjs +2 -0
  447. package/dist/chunks/pt-Cv6q7x5x.mjs.map +1 -0
  448. package/dist/chunks/pt-DFKJVh7k.mjs +2 -0
  449. package/dist/chunks/pt-DFKJVh7k.mjs.map +1 -0
  450. package/dist/chunks/pt-DYMyMgKQ.mjs +2 -0
  451. package/dist/chunks/pt-DYMyMgKQ.mjs.map +1 -0
  452. package/dist/chunks/pt-D__tcM2T.mjs +2 -0
  453. package/dist/chunks/pt-D__tcM2T.mjs.map +1 -0
  454. package/dist/chunks/pt-Dg2ctkug.mjs +2 -0
  455. package/dist/chunks/pt-Dg2ctkug.mjs.map +1 -0
  456. package/dist/chunks/pt-DgfMoLWR.mjs +2 -0
  457. package/dist/chunks/pt-DgfMoLWR.mjs.map +1 -0
  458. package/dist/chunks/pt-DmN9u3NX.mjs +2 -0
  459. package/dist/chunks/pt-DmN9u3NX.mjs.map +1 -0
  460. package/dist/chunks/pt-GqLw5tN0.mjs +2 -0
  461. package/dist/chunks/pt-GqLw5tN0.mjs.map +1 -0
  462. package/dist/chunks/pt-Hy-0Xnnc.mjs +2 -0
  463. package/dist/chunks/pt-Hy-0Xnnc.mjs.map +1 -0
  464. package/dist/chunks/pt-OXa_IR4Q.mjs +2 -0
  465. package/dist/chunks/pt-OXa_IR4Q.mjs.map +1 -0
  466. package/dist/chunks/pt-UPF7DBlz.mjs +2 -0
  467. package/dist/chunks/pt-UPF7DBlz.mjs.map +1 -0
  468. package/dist/chunks/pt-_qxIe7zX.mjs +2 -0
  469. package/dist/chunks/pt-_qxIe7zX.mjs.map +1 -0
  470. package/dist/chunks/pt-paXY7HFt.mjs +2 -0
  471. package/dist/chunks/pt-paXY7HFt.mjs.map +1 -0
  472. package/dist/chunks/pt-zMHcNGPk.mjs +2 -0
  473. package/dist/chunks/pt-zMHcNGPk.mjs.map +1 -0
  474. package/dist/chunks/ru-4g_qsaLr.mjs +2 -0
  475. package/dist/chunks/ru-4g_qsaLr.mjs.map +1 -0
  476. package/dist/chunks/ru-B1m8J9dl.mjs +2 -0
  477. package/dist/chunks/ru-B1m8J9dl.mjs.map +1 -0
  478. package/dist/chunks/ru-BFpEOrVp.mjs +2 -0
  479. package/dist/chunks/ru-BFpEOrVp.mjs.map +1 -0
  480. package/dist/chunks/ru-BNPUT-3S.mjs +2 -0
  481. package/dist/chunks/ru-BNPUT-3S.mjs.map +1 -0
  482. package/dist/chunks/ru-BotG0MFT.mjs +2 -0
  483. package/dist/chunks/ru-BotG0MFT.mjs.map +1 -0
  484. package/dist/chunks/ru-BxySx7an.mjs +2 -0
  485. package/dist/chunks/ru-BxySx7an.mjs.map +1 -0
  486. package/dist/chunks/ru-C-APN_dm.mjs +2 -0
  487. package/dist/chunks/ru-C-APN_dm.mjs.map +1 -0
  488. package/dist/chunks/ru-C9yFslEG.mjs +2 -0
  489. package/dist/chunks/ru-C9yFslEG.mjs.map +1 -0
  490. package/dist/chunks/ru-CkG_bpfo.mjs +2 -0
  491. package/dist/chunks/ru-CkG_bpfo.mjs.map +1 -0
  492. package/dist/chunks/ru-Cs8KCNyq.mjs +2 -0
  493. package/dist/chunks/ru-Cs8KCNyq.mjs.map +1 -0
  494. package/dist/chunks/ru-CvDl-yEd.mjs +2 -0
  495. package/dist/chunks/ru-CvDl-yEd.mjs.map +1 -0
  496. package/dist/chunks/ru-CwyPz2Va.mjs +2 -0
  497. package/dist/chunks/ru-CwyPz2Va.mjs.map +1 -0
  498. package/dist/chunks/ru-D53d-_UB.mjs +2 -0
  499. package/dist/chunks/ru-D53d-_UB.mjs.map +1 -0
  500. package/dist/chunks/ru-DJMpeuey.mjs +2 -0
  501. package/dist/chunks/ru-DJMpeuey.mjs.map +1 -0
  502. package/dist/chunks/ru-DSRv3_Rg.mjs +2 -0
  503. package/dist/chunks/ru-DSRv3_Rg.mjs.map +1 -0
  504. package/dist/chunks/ru-DV-lgEtM.mjs +2 -0
  505. package/dist/chunks/ru-DV-lgEtM.mjs.map +1 -0
  506. package/dist/chunks/ru-DiwQV30V.mjs +2 -0
  507. package/dist/chunks/ru-DiwQV30V.mjs.map +1 -0
  508. package/dist/chunks/ru-DkW9XZFy.mjs +2 -0
  509. package/dist/chunks/ru-DkW9XZFy.mjs.map +1 -0
  510. package/dist/chunks/ru-DyCTlhjg.mjs +2 -0
  511. package/dist/chunks/ru-DyCTlhjg.mjs.map +1 -0
  512. package/dist/chunks/ru-QGX8lOTs.mjs +2 -0
  513. package/dist/chunks/ru-QGX8lOTs.mjs.map +1 -0
  514. package/dist/chunks/ru-QcTo2yoL.mjs +2 -0
  515. package/dist/chunks/ru-QcTo2yoL.mjs.map +1 -0
  516. package/dist/chunks/ru-Y11wuxOB.mjs +2 -0
  517. package/dist/chunks/ru-Y11wuxOB.mjs.map +1 -0
  518. package/dist/chunks/ru-Yngw7nFP.mjs +2 -0
  519. package/dist/chunks/ru-Yngw7nFP.mjs.map +1 -0
  520. package/dist/chunks/ru-d68SZpEe.mjs +2 -0
  521. package/dist/chunks/ru-d68SZpEe.mjs.map +1 -0
  522. package/dist/chunks/ru-k7o3Qks3.mjs +2 -0
  523. package/dist/chunks/ru-k7o3Qks3.mjs.map +1 -0
  524. package/dist/chunks/ru-l73diFXn.mjs +2 -0
  525. package/dist/chunks/ru-l73diFXn.mjs.map +1 -0
  526. package/dist/chunks/ru-q8kz-237.mjs +2 -0
  527. package/dist/chunks/ru-q8kz-237.mjs.map +1 -0
  528. package/dist/chunks/src-gVRDR_79.mjs +2 -0
  529. package/dist/chunks/src-gVRDR_79.mjs.map +1 -0
  530. package/dist/chunks/zh-BGYJXxVl.mjs +2 -0
  531. package/dist/chunks/zh-BGYJXxVl.mjs.map +1 -0
  532. package/dist/chunks/zh-BP97XjlS.mjs +2 -0
  533. package/dist/chunks/zh-BP97XjlS.mjs.map +1 -0
  534. package/dist/chunks/zh-BQ73oqxc.mjs +2 -0
  535. package/dist/chunks/zh-BQ73oqxc.mjs.map +1 -0
  536. package/dist/chunks/zh-BQqf3wJZ.mjs +2 -0
  537. package/dist/chunks/zh-BQqf3wJZ.mjs.map +1 -0
  538. package/dist/chunks/zh-Baxh6v0j.mjs +2 -0
  539. package/dist/chunks/zh-Baxh6v0j.mjs.map +1 -0
  540. package/dist/chunks/zh-BjoyjClN.mjs +2 -0
  541. package/dist/chunks/zh-BjoyjClN.mjs.map +1 -0
  542. package/dist/chunks/zh-BvuAbM2S.mjs +2 -0
  543. package/dist/chunks/zh-BvuAbM2S.mjs.map +1 -0
  544. package/dist/chunks/zh-C-wHnDo5.mjs +2 -0
  545. package/dist/chunks/zh-C-wHnDo5.mjs.map +1 -0
  546. package/dist/chunks/zh-C7iCgCRP.mjs +2 -0
  547. package/dist/chunks/zh-C7iCgCRP.mjs.map +1 -0
  548. package/dist/chunks/zh-CRsDvfPR.mjs +2 -0
  549. package/dist/chunks/zh-CRsDvfPR.mjs.map +1 -0
  550. package/dist/chunks/zh-CWGAPVei.mjs +2 -0
  551. package/dist/chunks/zh-CWGAPVei.mjs.map +1 -0
  552. package/dist/chunks/zh-CWIzJcXi.mjs +2 -0
  553. package/dist/chunks/zh-CWIzJcXi.mjs.map +1 -0
  554. package/dist/chunks/zh-CYV-db-K.mjs +2 -0
  555. package/dist/chunks/zh-CYV-db-K.mjs.map +1 -0
  556. package/dist/chunks/zh-CnW44JEw.mjs +2 -0
  557. package/dist/chunks/zh-CnW44JEw.mjs.map +1 -0
  558. package/dist/chunks/zh-D1HSmSOf.mjs +2 -0
  559. package/dist/chunks/zh-D1HSmSOf.mjs.map +1 -0
  560. package/dist/chunks/zh-DWN1Jqn3.mjs +2 -0
  561. package/dist/chunks/zh-DWN1Jqn3.mjs.map +1 -0
  562. package/dist/chunks/zh-DYD476c5.mjs +2 -0
  563. package/dist/chunks/zh-DYD476c5.mjs.map +1 -0
  564. package/dist/chunks/zh-DdzgYD7k.mjs +2 -0
  565. package/dist/chunks/zh-DdzgYD7k.mjs.map +1 -0
  566. package/dist/chunks/zh-DeZP08HI.mjs +2 -0
  567. package/dist/chunks/zh-DeZP08HI.mjs.map +1 -0
  568. package/dist/chunks/zh-DgSmvLyw.mjs +2 -0
  569. package/dist/chunks/zh-DgSmvLyw.mjs.map +1 -0
  570. package/dist/chunks/zh-DlVfQn4z.mjs +2 -0
  571. package/dist/chunks/zh-DlVfQn4z.mjs.map +1 -0
  572. package/dist/chunks/zh-DuucmOns.mjs +2 -0
  573. package/dist/chunks/zh-DuucmOns.mjs.map +1 -0
  574. package/dist/chunks/zh-Oj-qSUEp.mjs +2 -0
  575. package/dist/chunks/zh-Oj-qSUEp.mjs.map +1 -0
  576. package/dist/chunks/zh-YfuE_m2y.mjs +2 -0
  577. package/dist/chunks/zh-YfuE_m2y.mjs.map +1 -0
  578. package/dist/chunks/zh-dGSDBBzb.mjs +2 -0
  579. package/dist/chunks/zh-dGSDBBzb.mjs.map +1 -0
  580. package/dist/chunks/zh-ikm3rSTR.mjs +2 -0
  581. package/dist/chunks/zh-ikm3rSTR.mjs.map +1 -0
  582. package/dist/chunks/zh-oZl1P_p0.mjs +2 -0
  583. package/dist/chunks/zh-oZl1P_p0.mjs.map +1 -0
  584. package/dist/commands/BlockInsertion.d.ts +49 -2
  585. package/dist/commands/BlockInsertion.d.ts.map +1 -1
  586. package/dist/commands/Commands.d.ts.map +1 -1
  587. package/dist/commands/NodeSelectionCommands.d.ts +10 -2
  588. package/dist/commands/NodeSelectionCommands.d.ts.map +1 -1
  589. package/dist/editor/styles/list.d.ts +1 -1
  590. package/dist/editor/styles/list.d.ts.map +1 -1
  591. package/dist/fonts.mjs +1 -1
  592. package/dist/full.mjs +1 -1
  593. package/dist/html.mjs +1 -1
  594. package/dist/index.d.ts +1 -1
  595. package/dist/index.d.ts.map +1 -1
  596. package/dist/input/KeyDescriptor.d.ts +40 -0
  597. package/dist/input/KeyDescriptor.d.ts.map +1 -0
  598. package/dist/input/KeyboardHandler.d.ts +17 -5
  599. package/dist/input/KeyboardHandler.d.ts.map +1 -1
  600. package/dist/input/PasteHTMLHandler.d.ts.map +1 -1
  601. package/dist/input/PasteRichBlockHandler.d.ts +22 -3
  602. package/dist/input/PasteRichBlockHandler.d.ts.map +1 -1
  603. package/dist/model/Document.d.ts +2 -2
  604. package/dist/model/Document.d.ts.map +1 -1
  605. package/dist/notectl-core.mjs +1 -1
  606. package/dist/notectl-core.umd.js +1 -1
  607. package/dist/notectl-core.umd.js.map +1 -1
  608. package/dist/plugins/alignment.mjs +1 -1
  609. package/dist/plugins/bidi-isolation.mjs +1 -1
  610. package/dist/plugins/blockquote.mjs +1 -1
  611. package/dist/plugins/caret-navigation.mjs +1 -1
  612. package/dist/plugins/code-block.mjs +1 -1
  613. package/dist/plugins/font-size.mjs +1 -1
  614. package/dist/plugins/font.mjs +1 -1
  615. package/dist/plugins/formula/DisplayMathNodeSpec.d.ts.map +1 -1
  616. package/dist/plugins/formula/FormulaCommands.d.ts +14 -0
  617. package/dist/plugins/formula/FormulaCommands.d.ts.map +1 -1
  618. package/dist/plugins/formula/FormulaEditorMount.d.ts.map +1 -1
  619. package/dist/plugins/formula/FormulaLocale.d.ts +7 -1
  620. package/dist/plugins/formula/FormulaLocale.d.ts.map +1 -1
  621. package/dist/plugins/formula/FormulaPasteInterceptor.d.ts +12 -3
  622. package/dist/plugins/formula/FormulaPasteInterceptor.d.ts.map +1 -1
  623. package/dist/plugins/formula/FormulaSerialization.d.ts +17 -0
  624. package/dist/plugins/formula/FormulaSerialization.d.ts.map +1 -0
  625. package/dist/plugins/formula/FormulaStyles.d.ts +1 -1
  626. package/dist/plugins/formula/FormulaStyles.d.ts.map +1 -1
  627. package/dist/plugins/formula/InlineMathNodeSpec.d.ts.map +1 -1
  628. package/dist/plugins/formula/locales/ar.d.ts.map +1 -1
  629. package/dist/plugins/formula/locales/de.d.ts.map +1 -1
  630. package/dist/plugins/formula/locales/es.d.ts.map +1 -1
  631. package/dist/plugins/formula/locales/fr.d.ts.map +1 -1
  632. package/dist/plugins/formula/locales/hi.d.ts.map +1 -1
  633. package/dist/plugins/formula/locales/pt.d.ts.map +1 -1
  634. package/dist/plugins/formula/locales/ru.d.ts.map +1 -1
  635. package/dist/plugins/formula/locales/zh.d.ts.map +1 -1
  636. package/dist/plugins/formula/math-field/MathPalette.d.ts.map +1 -1
  637. package/dist/plugins/formula/math-field/MathPaletteData.d.ts +7 -1
  638. package/dist/plugins/formula/math-field/MathPaletteData.d.ts.map +1 -1
  639. package/dist/plugins/formula/mathml/MathMLDocument.d.ts +13 -0
  640. package/dist/plugins/formula/mathml/MathMLDocument.d.ts.map +1 -1
  641. package/dist/plugins/formula.mjs +1 -1
  642. package/dist/plugins/gap-cursor.mjs +1 -1
  643. package/dist/plugins/hard-break.mjs +1 -1
  644. package/dist/plugins/heading.mjs +1 -1
  645. package/dist/plugins/highlight.mjs +1 -1
  646. package/dist/plugins/horizontal-rule.mjs +1 -1
  647. package/dist/plugins/image.mjs +1 -1
  648. package/dist/plugins/inline-code.mjs +1 -1
  649. package/dist/plugins/language.mjs +1 -1
  650. package/dist/plugins/link.mjs +1 -1
  651. package/dist/plugins/list/ListCommands.d.ts +16 -3
  652. package/dist/plugins/list/ListCommands.d.ts.map +1 -1
  653. package/dist/plugins/list/ListLocale.d.ts +6 -0
  654. package/dist/plugins/list/ListLocale.d.ts.map +1 -1
  655. package/dist/plugins/list/ListMarker.d.ts +14 -0
  656. package/dist/plugins/list/ListMarker.d.ts.map +1 -0
  657. package/dist/plugins/list/ListPlugin.d.ts.map +1 -1
  658. package/dist/plugins/list/locales/ar.d.ts.map +1 -1
  659. package/dist/plugins/list/locales/de.d.ts.map +1 -1
  660. package/dist/plugins/list/locales/es.d.ts.map +1 -1
  661. package/dist/plugins/list/locales/fr.d.ts.map +1 -1
  662. package/dist/plugins/list/locales/hi.d.ts.map +1 -1
  663. package/dist/plugins/list/locales/pt.d.ts.map +1 -1
  664. package/dist/plugins/list/locales/ru.d.ts.map +1 -1
  665. package/dist/plugins/list/locales/zh.d.ts.map +1 -1
  666. package/dist/plugins/list.mjs +1 -1
  667. package/dist/plugins/print.mjs +1 -1
  668. package/dist/plugins/shared.mjs +1 -1
  669. package/dist/plugins/smart-paste.mjs +1 -1
  670. package/dist/plugins/strikethrough.mjs +1 -1
  671. package/dist/plugins/super-sub.mjs +1 -1
  672. package/dist/plugins/table/TableCommands.d.ts.map +1 -1
  673. package/dist/plugins/table.mjs +1 -1
  674. package/dist/plugins/text-color.mjs +1 -1
  675. package/dist/plugins/text-direction-auto.mjs +1 -1
  676. package/dist/plugins/text-direction.mjs +1 -1
  677. package/dist/plugins/text-formatting.mjs +1 -1
  678. package/dist/plugins/toolbar/ToolbarPopupController.d.ts.map +1 -1
  679. package/dist/plugins/toolbar.mjs +1 -1
  680. package/dist/plugins/video/VideoCommands.d.ts.map +1 -1
  681. package/dist/plugins/video.mjs +1 -1
  682. package/dist/presets/full.mjs +1 -1
  683. package/dist/presets/minimal.mjs +1 -1
  684. package/dist/presets.mjs +1 -1
  685. package/dist/state/InlineContentOps.d.ts +5 -3
  686. package/dist/state/InlineContentOps.d.ts.map +1 -1
  687. package/dist/state/StepInversion.d.ts.map +1 -1
  688. package/dist/state/StepMaps.d.ts.map +1 -1
  689. package/dist/state/Steps.d.ts +20 -3
  690. package/dist/state/Steps.d.ts.map +1 -1
  691. package/dist/state/TransactionBuilder.d.ts +3 -3
  692. package/dist/state/TransactionBuilder.d.ts.map +1 -1
  693. package/dist/test/TestUtils.d.ts +2 -0
  694. package/dist/test/TestUtils.d.ts.map +1 -1
  695. package/dist/view/SelectionSync.d.ts.map +1 -1
  696. package/package.json +2 -2
  697. package/dist/chunks/AlignmentPlugin-BLzRjrUl.mjs +0 -2
  698. package/dist/chunks/AlignmentPlugin-BLzRjrUl.mjs.map +0 -1
  699. package/dist/chunks/AttrRegistry-CRnXTPha.mjs +0 -2
  700. package/dist/chunks/AttrRegistry-CRnXTPha.mjs.map +0 -1
  701. package/dist/chunks/AttributedMarkCommands-CxhdUsuE.mjs +0 -2
  702. package/dist/chunks/AttributedMarkCommands-CxhdUsuE.mjs.map +0 -1
  703. package/dist/chunks/BidiIsolationPlugin-DNPXe5ga.mjs +0 -2
  704. package/dist/chunks/BidiIsolationPlugin-DNPXe5ga.mjs.map +0 -1
  705. package/dist/chunks/BlockInsertion-C7jFEeYB.mjs +0 -2
  706. package/dist/chunks/BlockInsertion-C7jFEeYB.mjs.map +0 -1
  707. package/dist/chunks/BlockTypePickerRegistry-U4uY7-lN.mjs +0 -2
  708. package/dist/chunks/BlockTypePickerRegistry-U4uY7-lN.mjs.map +0 -1
  709. package/dist/chunks/BlockquotePlugin-YgXcV4mT.mjs +0 -2
  710. package/dist/chunks/BlockquotePlugin-YgXcV4mT.mjs.map +0 -1
  711. package/dist/chunks/CaretNavigationPlugin-P6OYaTSq.mjs +0 -2
  712. package/dist/chunks/CaretNavigationPlugin-P6OYaTSq.mjs.map +0 -1
  713. package/dist/chunks/CodeBlockPlugin-ChPv3Edf.mjs +0 -2
  714. package/dist/chunks/CodeBlockPlugin-ChPv3Edf.mjs.map +0 -1
  715. package/dist/chunks/ColorGrid-D5-teEjD.mjs +0 -2
  716. package/dist/chunks/ColorGrid-D5-teEjD.mjs.map +0 -1
  717. package/dist/chunks/ColorPickerPopup-_Gp09pdx.mjs +0 -2
  718. package/dist/chunks/ColorPickerPopup-_Gp09pdx.mjs.map +0 -1
  719. package/dist/chunks/ColorValidation-okAvytHQ.mjs +0 -2
  720. package/dist/chunks/ColorValidation-okAvytHQ.mjs.map +0 -1
  721. package/dist/chunks/CommandHelpers-NV80Ff1G.mjs +0 -2
  722. package/dist/chunks/CommandHelpers-NV80Ff1G.mjs.map +0 -1
  723. package/dist/chunks/Commands-ixGhPiRG.mjs +0 -2
  724. package/dist/chunks/Commands-ixGhPiRG.mjs.map +0 -1
  725. package/dist/chunks/Decoration-DZK7hrL1.mjs +0 -2
  726. package/dist/chunks/Decoration-DZK7hrL1.mjs.map +0 -1
  727. package/dist/chunks/DirectionDetection-7HmMUZrx.mjs +0 -2
  728. package/dist/chunks/DirectionDetection-7HmMUZrx.mjs.map +0 -1
  729. package/dist/chunks/DirectionIcons-DhRvPVoz.mjs +0 -2
  730. package/dist/chunks/DirectionIcons-DhRvPVoz.mjs.map +0 -1
  731. package/dist/chunks/Document-znhIcvM9.mjs +0 -2
  732. package/dist/chunks/Document-znhIcvM9.mjs.map +0 -1
  733. package/dist/chunks/DocumentParser-DCjOW3us.mjs +0 -2
  734. package/dist/chunks/DocumentParser-DCjOW3us.mjs.map +0 -1
  735. package/dist/chunks/DomUtils-RKbAVBQz.mjs +0 -2
  736. package/dist/chunks/DomUtils-RKbAVBQz.mjs.map +0 -1
  737. package/dist/chunks/FontPlugin-COYtG1Uo.mjs +0 -2
  738. package/dist/chunks/FontPlugin-COYtG1Uo.mjs.map +0 -1
  739. package/dist/chunks/FontSizePlugin-CLcfdTm3.mjs +0 -2
  740. package/dist/chunks/FontSizePlugin-CLcfdTm3.mjs.map +0 -1
  741. package/dist/chunks/FormulaPlugin-DphHU4Rn.mjs +0 -2
  742. package/dist/chunks/FormulaPlugin-DphHU4Rn.mjs.map +0 -1
  743. package/dist/chunks/GapCursorNavigation-Bkuu_Ek8.mjs +0 -2
  744. package/dist/chunks/GapCursorNavigation-Bkuu_Ek8.mjs.map +0 -1
  745. package/dist/chunks/GapCursorPlugin-CRDmQEi1.mjs +0 -2
  746. package/dist/chunks/GapCursorPlugin-CRDmQEi1.mjs.map +0 -1
  747. package/dist/chunks/HTMLUtils-brwcaufP.mjs +0 -2
  748. package/dist/chunks/HTMLUtils-brwcaufP.mjs.map +0 -1
  749. package/dist/chunks/HardBreakPlugin-Cr6dMQ-H.mjs +0 -2
  750. package/dist/chunks/HardBreakPlugin-Cr6dMQ-H.mjs.map +0 -1
  751. package/dist/chunks/HeadingPlugin-3NL4ARPp.mjs +0 -2
  752. package/dist/chunks/HeadingPlugin-3NL4ARPp.mjs.map +0 -1
  753. package/dist/chunks/HighlightPlugin-dHxnAuoW.mjs +0 -2
  754. package/dist/chunks/HighlightPlugin-dHxnAuoW.mjs.map +0 -1
  755. package/dist/chunks/HorizontalRulePlugin-BYPaI4TR.mjs +0 -2
  756. package/dist/chunks/HorizontalRulePlugin-BYPaI4TR.mjs.map +0 -1
  757. package/dist/chunks/ImagePlugin-kgokm-a1.mjs +0 -2
  758. package/dist/chunks/ImagePlugin-kgokm-a1.mjs.map +0 -1
  759. package/dist/chunks/InlineCodePlugin-Bl1jyDwk.mjs +0 -2
  760. package/dist/chunks/InlineCodePlugin-Bl1jyDwk.mjs.map +0 -1
  761. package/dist/chunks/InlineStyleMarkSpec-Cc-b1tlm.mjs +0 -2
  762. package/dist/chunks/InlineStyleMarkSpec-Cc-b1tlm.mjs.map +0 -1
  763. package/dist/chunks/KeyboardNav-DZXdTg-_.mjs +0 -2
  764. package/dist/chunks/KeyboardNav-DZXdTg-_.mjs.map +0 -1
  765. package/dist/chunks/LinkPlugin-Dmcfo3On.mjs +0 -2
  766. package/dist/chunks/LinkPlugin-Dmcfo3On.mjs.map +0 -1
  767. package/dist/chunks/ListPlugin-Ch-5CsFc.mjs +0 -2
  768. package/dist/chunks/ListPlugin-Ch-5CsFc.mjs.map +0 -1
  769. package/dist/chunks/NavigationQueries-3zTaNBlp.mjs +0 -2
  770. package/dist/chunks/NavigationQueries-3zTaNBlp.mjs.map +0 -1
  771. package/dist/chunks/NodeResolver-BplmzA7c.mjs +0 -2
  772. package/dist/chunks/NodeResolver-BplmzA7c.mjs.map +0 -1
  773. package/dist/chunks/NodeSelectionCommands-dUmbRoZ2.mjs +0 -2
  774. package/dist/chunks/NodeSelectionCommands-dUmbRoZ2.mjs.map +0 -1
  775. package/dist/chunks/NodeSpecPatching-DToX09gc.mjs +0 -2
  776. package/dist/chunks/NodeSpecPatching-DToX09gc.mjs.map +0 -1
  777. package/dist/chunks/Platform-wPvKFB9m.mjs +0 -2
  778. package/dist/chunks/Platform-wPvKFB9m.mjs.map +0 -1
  779. package/dist/chunks/PluginHelpers-C3aCCGfX.mjs +0 -2
  780. package/dist/chunks/PluginHelpers-C3aCCGfX.mjs.map +0 -1
  781. package/dist/chunks/PopupKeyboardPatterns-ZdAQB78m.mjs +0 -2
  782. package/dist/chunks/PopupKeyboardPatterns-ZdAQB78m.mjs.map +0 -1
  783. package/dist/chunks/PopupManager-DsT1uRWi.mjs +0 -2
  784. package/dist/chunks/PopupManager-DsT1uRWi.mjs.map +0 -1
  785. package/dist/chunks/PopupPositioning-BEnz90Oh.mjs +0 -2
  786. package/dist/chunks/PopupPositioning-BEnz90Oh.mjs.map +0 -1
  787. package/dist/chunks/PrintPlugin-Bq-Z14K1.mjs +0 -2
  788. package/dist/chunks/PrintPlugin-Bq-Z14K1.mjs.map +0 -1
  789. package/dist/chunks/PrintTypes-DA0Cc--M.mjs +0 -2
  790. package/dist/chunks/PrintTypes-DA0Cc--M.mjs.map +0 -1
  791. package/dist/chunks/RangeIterator-Cl4_k8cx.mjs +0 -2
  792. package/dist/chunks/RangeIterator-Cl4_k8cx.mjs.map +0 -1
  793. package/dist/chunks/Selection-aeiSsvhe.mjs +0 -2
  794. package/dist/chunks/Selection-aeiSsvhe.mjs.map +0 -1
  795. package/dist/chunks/SelectionSync-DCJpNFat.mjs +0 -2
  796. package/dist/chunks/SelectionSync-DCJpNFat.mjs.map +0 -1
  797. package/dist/chunks/ShortcutFormatting-DZK70CN9.mjs +0 -2
  798. package/dist/chunks/ShortcutFormatting-DZK70CN9.mjs.map +0 -1
  799. package/dist/chunks/SimpleMark-CezTJnXh.mjs +0 -2
  800. package/dist/chunks/SimpleMark-CezTJnXh.mjs.map +0 -1
  801. package/dist/chunks/SmartPastePlugin-DlApY6Vw.mjs +0 -2
  802. package/dist/chunks/SmartPastePlugin-DlApY6Vw.mjs.map +0 -1
  803. package/dist/chunks/StrikethroughPlugin-BuFDABvz.mjs +0 -2
  804. package/dist/chunks/StrikethroughPlugin-BuFDABvz.mjs.map +0 -1
  805. package/dist/chunks/StyleRuntime-Bwde5icB.mjs +0 -2
  806. package/dist/chunks/StyleRuntime-Bwde5icB.mjs.map +0 -1
  807. package/dist/chunks/SuperSubPlugin-CiLJ7i4s.mjs +0 -2
  808. package/dist/chunks/SuperSubPlugin-CiLJ7i4s.mjs.map +0 -1
  809. package/dist/chunks/SyntaxTokenTypes-C9dGwufi.mjs +0 -2
  810. package/dist/chunks/SyntaxTokenTypes-C9dGwufi.mjs.map +0 -1
  811. package/dist/chunks/TablePlugin-5ru-y-YX.mjs +0 -2
  812. package/dist/chunks/TablePlugin-5ru-y-YX.mjs.map +0 -1
  813. package/dist/chunks/TextColorPlugin-Vz-Nz8aH.mjs +0 -2
  814. package/dist/chunks/TextColorPlugin-Vz-Nz8aH.mjs.map +0 -1
  815. package/dist/chunks/TextDirectionAutoPlugin-Behl6KMe.mjs +0 -2
  816. package/dist/chunks/TextDirectionAutoPlugin-Behl6KMe.mjs.map +0 -1
  817. package/dist/chunks/TextDirectionPlugin-C3h1n-aA.mjs +0 -2
  818. package/dist/chunks/TextDirectionPlugin-C3h1n-aA.mjs.map +0 -1
  819. package/dist/chunks/TextDirectionService-DRfeQnF6.mjs +0 -2
  820. package/dist/chunks/TextDirectionService-DRfeQnF6.mjs.map +0 -1
  821. package/dist/chunks/TextFormattingPlugin-D_nRMeBn.mjs +0 -2
  822. package/dist/chunks/TextFormattingPlugin-D_nRMeBn.mjs.map +0 -1
  823. package/dist/chunks/ToolbarPlugin-CSMSgjPM.mjs +0 -2
  824. package/dist/chunks/ToolbarPlugin-CSMSgjPM.mjs.map +0 -1
  825. package/dist/chunks/TypeBrands-BZDKMjR-.mjs +0 -2
  826. package/dist/chunks/TypeBrands-BZDKMjR-.mjs.map +0 -1
  827. package/dist/chunks/TypedKeys-E3jOGByL.mjs +0 -2
  828. package/dist/chunks/TypedKeys-E3jOGByL.mjs.map +0 -1
  829. package/dist/chunks/VideoPlugin-BUCGIYXr.mjs +0 -2
  830. package/dist/chunks/VideoPlugin-BUCGIYXr.mjs.map +0 -1
  831. package/dist/chunks/WordBoundary-CYDAtEks.mjs +0 -2
  832. package/dist/chunks/WordBoundary-CYDAtEks.mjs.map +0 -1
  833. package/dist/chunks/XmlDetector-DxBGXqua.mjs +0 -2
  834. package/dist/chunks/XmlDetector-DxBGXqua.mjs.map +0 -1
  835. package/dist/chunks/XmlPatterns-BiHS8w3k.mjs +0 -2
  836. package/dist/chunks/XmlPatterns-BiHS8w3k.mjs.map +0 -1
  837. package/dist/chunks/XmlSupport-B_F65M8G.mjs +0 -2
  838. package/dist/chunks/XmlSupport-B_F65M8G.mjs.map +0 -1
  839. package/dist/chunks/ar-B38MlRRN.mjs +0 -2
  840. package/dist/chunks/ar-B38MlRRN.mjs.map +0 -1
  841. package/dist/chunks/ar-BIeE0C5A.mjs +0 -2
  842. package/dist/chunks/ar-BIeE0C5A.mjs.map +0 -1
  843. package/dist/chunks/ar-BK0rFxF_.mjs +0 -2
  844. package/dist/chunks/ar-BK0rFxF_.mjs.map +0 -1
  845. package/dist/chunks/ar-BK4O36ep.mjs +0 -2
  846. package/dist/chunks/ar-BK4O36ep.mjs.map +0 -1
  847. package/dist/chunks/ar-BNUWuZe3.mjs +0 -2
  848. package/dist/chunks/ar-BNUWuZe3.mjs.map +0 -1
  849. package/dist/chunks/ar-BSXH8acw.mjs +0 -2
  850. package/dist/chunks/ar-BSXH8acw.mjs.map +0 -1
  851. package/dist/chunks/ar-BY8yNlGe.mjs +0 -2
  852. package/dist/chunks/ar-BY8yNlGe.mjs.map +0 -1
  853. package/dist/chunks/ar-BgHkduPE.mjs +0 -2
  854. package/dist/chunks/ar-BgHkduPE.mjs.map +0 -1
  855. package/dist/chunks/ar-BnfWtLhK.mjs +0 -2
  856. package/dist/chunks/ar-BnfWtLhK.mjs.map +0 -1
  857. package/dist/chunks/ar-BwCPhCf6.mjs +0 -2
  858. package/dist/chunks/ar-BwCPhCf6.mjs.map +0 -1
  859. package/dist/chunks/ar-Bymjd9Z_.mjs +0 -2
  860. package/dist/chunks/ar-Bymjd9Z_.mjs.map +0 -1
  861. package/dist/chunks/ar-CKPpdJ7F.mjs +0 -2
  862. package/dist/chunks/ar-CKPpdJ7F.mjs.map +0 -1
  863. package/dist/chunks/ar-C_ir5Uf4.mjs +0 -2
  864. package/dist/chunks/ar-C_ir5Uf4.mjs.map +0 -1
  865. package/dist/chunks/ar-CkE6GDVA.mjs +0 -2
  866. package/dist/chunks/ar-CkE6GDVA.mjs.map +0 -1
  867. package/dist/chunks/ar-ClgA1KQM.mjs +0 -2
  868. package/dist/chunks/ar-ClgA1KQM.mjs.map +0 -1
  869. package/dist/chunks/ar-Cm1DOK74.mjs +0 -2
  870. package/dist/chunks/ar-Cm1DOK74.mjs.map +0 -1
  871. package/dist/chunks/ar-CseGhQtS.mjs +0 -2
  872. package/dist/chunks/ar-CseGhQtS.mjs.map +0 -1
  873. package/dist/chunks/ar-D0bqkviV.mjs +0 -2
  874. package/dist/chunks/ar-D0bqkviV.mjs.map +0 -1
  875. package/dist/chunks/ar-D5d185g0.mjs +0 -2
  876. package/dist/chunks/ar-D5d185g0.mjs.map +0 -1
  877. package/dist/chunks/ar-DSwUyX47.mjs +0 -2
  878. package/dist/chunks/ar-DSwUyX47.mjs.map +0 -1
  879. package/dist/chunks/ar-DfSNWZX7.mjs +0 -2
  880. package/dist/chunks/ar-DfSNWZX7.mjs.map +0 -1
  881. package/dist/chunks/ar-Dghtfs46.mjs +0 -2
  882. package/dist/chunks/ar-Dghtfs46.mjs.map +0 -1
  883. package/dist/chunks/ar-DvNKBrJd.mjs +0 -2
  884. package/dist/chunks/ar-DvNKBrJd.mjs.map +0 -1
  885. package/dist/chunks/ar-KNULRI8r.mjs +0 -2
  886. package/dist/chunks/ar-KNULRI8r.mjs.map +0 -1
  887. package/dist/chunks/ar-NtGRavHz.mjs +0 -2
  888. package/dist/chunks/ar-NtGRavHz.mjs.map +0 -1
  889. package/dist/chunks/ar-Y9KjJLX8.mjs +0 -2
  890. package/dist/chunks/ar-Y9KjJLX8.mjs.map +0 -1
  891. package/dist/chunks/ar-odM5gkvw.mjs +0 -2
  892. package/dist/chunks/ar-odM5gkvw.mjs.map +0 -1
  893. package/dist/chunks/color-picker-C89H4SVX.mjs +0 -2
  894. package/dist/chunks/color-picker-C89H4SVX.mjs.map +0 -1
  895. package/dist/chunks/de-B1TXiyll.mjs +0 -2
  896. package/dist/chunks/de-B1TXiyll.mjs.map +0 -1
  897. package/dist/chunks/de-BDRaxLyi.mjs +0 -2
  898. package/dist/chunks/de-BDRaxLyi.mjs.map +0 -1
  899. package/dist/chunks/de-BGOpZ8Ls.mjs +0 -2
  900. package/dist/chunks/de-BGOpZ8Ls.mjs.map +0 -1
  901. package/dist/chunks/de-BfZ5qXWz.mjs +0 -2
  902. package/dist/chunks/de-BfZ5qXWz.mjs.map +0 -1
  903. package/dist/chunks/de-BibufNIa.mjs +0 -2
  904. package/dist/chunks/de-BibufNIa.mjs.map +0 -1
  905. package/dist/chunks/de-BkZqCmzL.mjs +0 -2
  906. package/dist/chunks/de-BkZqCmzL.mjs.map +0 -1
  907. package/dist/chunks/de-BzRd2oyR.mjs +0 -2
  908. package/dist/chunks/de-BzRd2oyR.mjs.map +0 -1
  909. package/dist/chunks/de-C4gnHDmk.mjs +0 -2
  910. package/dist/chunks/de-C4gnHDmk.mjs.map +0 -1
  911. package/dist/chunks/de-C4iw9SEp.mjs +0 -2
  912. package/dist/chunks/de-C4iw9SEp.mjs.map +0 -1
  913. package/dist/chunks/de-CLWzcDoW.mjs +0 -2
  914. package/dist/chunks/de-CLWzcDoW.mjs.map +0 -1
  915. package/dist/chunks/de-Cbv0otYM.mjs +0 -2
  916. package/dist/chunks/de-Cbv0otYM.mjs.map +0 -1
  917. package/dist/chunks/de-Cinp7zmo.mjs +0 -2
  918. package/dist/chunks/de-Cinp7zmo.mjs.map +0 -1
  919. package/dist/chunks/de-CvnyjI_X.mjs +0 -2
  920. package/dist/chunks/de-CvnyjI_X.mjs.map +0 -1
  921. package/dist/chunks/de-DCx3Shj3.mjs +0 -2
  922. package/dist/chunks/de-DCx3Shj3.mjs.map +0 -1
  923. package/dist/chunks/de-Dav2GzjV.mjs +0 -2
  924. package/dist/chunks/de-Dav2GzjV.mjs.map +0 -1
  925. package/dist/chunks/de-Dc7GRbWc.mjs +0 -2
  926. package/dist/chunks/de-Dc7GRbWc.mjs.map +0 -1
  927. package/dist/chunks/de-DdntlpT3.mjs +0 -2
  928. package/dist/chunks/de-DdntlpT3.mjs.map +0 -1
  929. package/dist/chunks/de-DefykdF-.mjs +0 -2
  930. package/dist/chunks/de-DefykdF-.mjs.map +0 -1
  931. package/dist/chunks/de-DfQQIP8Y.mjs +0 -2
  932. package/dist/chunks/de-DfQQIP8Y.mjs.map +0 -1
  933. package/dist/chunks/de-DkcKDkbA.mjs +0 -2
  934. package/dist/chunks/de-DkcKDkbA.mjs.map +0 -1
  935. package/dist/chunks/de-DqGfLfeV.mjs +0 -2
  936. package/dist/chunks/de-DqGfLfeV.mjs.map +0 -1
  937. package/dist/chunks/de-DudqIJho.mjs +0 -2
  938. package/dist/chunks/de-DudqIJho.mjs.map +0 -1
  939. package/dist/chunks/de-LCXA2xWj.mjs +0 -2
  940. package/dist/chunks/de-LCXA2xWj.mjs.map +0 -1
  941. package/dist/chunks/de-YygmrxGp.mjs +0 -2
  942. package/dist/chunks/de-YygmrxGp.mjs.map +0 -1
  943. package/dist/chunks/de-asI3UlFG.mjs +0 -2
  944. package/dist/chunks/de-asI3UlFG.mjs.map +0 -1
  945. package/dist/chunks/de-kvMvD3AJ.mjs +0 -2
  946. package/dist/chunks/de-kvMvD3AJ.mjs.map +0 -1
  947. package/dist/chunks/de-pnfTnS03.mjs +0 -2
  948. package/dist/chunks/de-pnfTnS03.mjs.map +0 -1
  949. package/dist/chunks/es-4tbAR0If.mjs +0 -2
  950. package/dist/chunks/es-4tbAR0If.mjs.map +0 -1
  951. package/dist/chunks/es-B9z2Xwj0.mjs +0 -2
  952. package/dist/chunks/es-B9z2Xwj0.mjs.map +0 -1
  953. package/dist/chunks/es-BJxjRQSg.mjs +0 -2
  954. package/dist/chunks/es-BJxjRQSg.mjs.map +0 -1
  955. package/dist/chunks/es-BSyxBRjn.mjs +0 -2
  956. package/dist/chunks/es-BSyxBRjn.mjs.map +0 -1
  957. package/dist/chunks/es-Bcpq2xfU.mjs +0 -2
  958. package/dist/chunks/es-Bcpq2xfU.mjs.map +0 -1
  959. package/dist/chunks/es-BhUjc8mO.mjs +0 -2
  960. package/dist/chunks/es-BhUjc8mO.mjs.map +0 -1
  961. package/dist/chunks/es-Bm7hoJSI.mjs +0 -2
  962. package/dist/chunks/es-Bm7hoJSI.mjs.map +0 -1
  963. package/dist/chunks/es-C0E-lFIC.mjs +0 -2
  964. package/dist/chunks/es-C0E-lFIC.mjs.map +0 -1
  965. package/dist/chunks/es-C2wBBQ7N.mjs +0 -2
  966. package/dist/chunks/es-C2wBBQ7N.mjs.map +0 -1
  967. package/dist/chunks/es-C9vhYpfP.mjs +0 -2
  968. package/dist/chunks/es-C9vhYpfP.mjs.map +0 -1
  969. package/dist/chunks/es-Cgslt0Hp.mjs +0 -2
  970. package/dist/chunks/es-Cgslt0Hp.mjs.map +0 -1
  971. package/dist/chunks/es-CksXDFxg.mjs +0 -2
  972. package/dist/chunks/es-CksXDFxg.mjs.map +0 -1
  973. package/dist/chunks/es-CnQUZlfY.mjs +0 -2
  974. package/dist/chunks/es-CnQUZlfY.mjs.map +0 -1
  975. package/dist/chunks/es-CrRNOn2Q.mjs +0 -2
  976. package/dist/chunks/es-CrRNOn2Q.mjs.map +0 -1
  977. package/dist/chunks/es-D0427MIH.mjs +0 -2
  978. package/dist/chunks/es-D0427MIH.mjs.map +0 -1
  979. package/dist/chunks/es-D19xfXus.mjs +0 -2
  980. package/dist/chunks/es-D19xfXus.mjs.map +0 -1
  981. package/dist/chunks/es-Dk6lCcOt.mjs +0 -2
  982. package/dist/chunks/es-Dk6lCcOt.mjs.map +0 -1
  983. package/dist/chunks/es-Dls_xPCW.mjs +0 -2
  984. package/dist/chunks/es-Dls_xPCW.mjs.map +0 -1
  985. package/dist/chunks/es-DrcsyDvI.mjs +0 -2
  986. package/dist/chunks/es-DrcsyDvI.mjs.map +0 -1
  987. package/dist/chunks/es-DwKejbO9.mjs +0 -2
  988. package/dist/chunks/es-DwKejbO9.mjs.map +0 -1
  989. package/dist/chunks/es-NcrWuNe1.mjs +0 -2
  990. package/dist/chunks/es-NcrWuNe1.mjs.map +0 -1
  991. package/dist/chunks/es-RaZerssd.mjs +0 -2
  992. package/dist/chunks/es-RaZerssd.mjs.map +0 -1
  993. package/dist/chunks/es-TIjHCFNF.mjs +0 -2
  994. package/dist/chunks/es-TIjHCFNF.mjs.map +0 -1
  995. package/dist/chunks/es-eZcDkBb-.mjs +0 -2
  996. package/dist/chunks/es-eZcDkBb-.mjs.map +0 -1
  997. package/dist/chunks/es-j_-KW9-4.mjs +0 -2
  998. package/dist/chunks/es-j_-KW9-4.mjs.map +0 -1
  999. package/dist/chunks/es-kGLwn8EB.mjs +0 -2
  1000. package/dist/chunks/es-kGLwn8EB.mjs.map +0 -1
  1001. package/dist/chunks/es-qQRDC0Ge.mjs +0 -2
  1002. package/dist/chunks/es-qQRDC0Ge.mjs.map +0 -1
  1003. package/dist/chunks/fonts-ZXAIMT3b.mjs +0 -2
  1004. package/dist/chunks/fonts-ZXAIMT3b.mjs.map +0 -1
  1005. package/dist/chunks/fr-B27zAq0X.mjs +0 -2
  1006. package/dist/chunks/fr-B27zAq0X.mjs.map +0 -1
  1007. package/dist/chunks/fr-BEd3ZHO4.mjs +0 -2
  1008. package/dist/chunks/fr-BEd3ZHO4.mjs.map +0 -1
  1009. package/dist/chunks/fr-BHXLpdaH.mjs +0 -2
  1010. package/dist/chunks/fr-BHXLpdaH.mjs.map +0 -1
  1011. package/dist/chunks/fr-BKu4eU3V.mjs +0 -2
  1012. package/dist/chunks/fr-BKu4eU3V.mjs.map +0 -1
  1013. package/dist/chunks/fr-BUrUZ5UQ.mjs +0 -2
  1014. package/dist/chunks/fr-BUrUZ5UQ.mjs.map +0 -1
  1015. package/dist/chunks/fr-BlqlUQ3b.mjs +0 -2
  1016. package/dist/chunks/fr-BlqlUQ3b.mjs.map +0 -1
  1017. package/dist/chunks/fr-BruEqDw1.mjs +0 -2
  1018. package/dist/chunks/fr-BruEqDw1.mjs.map +0 -1
  1019. package/dist/chunks/fr-BwuuFBkA.mjs +0 -2
  1020. package/dist/chunks/fr-BwuuFBkA.mjs.map +0 -1
  1021. package/dist/chunks/fr-C2lLh5Ti.mjs +0 -2
  1022. package/dist/chunks/fr-C2lLh5Ti.mjs.map +0 -1
  1023. package/dist/chunks/fr-C7N2_AlK.mjs +0 -2
  1024. package/dist/chunks/fr-C7N2_AlK.mjs.map +0 -1
  1025. package/dist/chunks/fr-COfd6sLW.mjs +0 -2
  1026. package/dist/chunks/fr-COfd6sLW.mjs.map +0 -1
  1027. package/dist/chunks/fr-COx4cSxc.mjs +0 -2
  1028. package/dist/chunks/fr-COx4cSxc.mjs.map +0 -1
  1029. package/dist/chunks/fr-CX37XjPO.mjs +0 -2
  1030. package/dist/chunks/fr-CX37XjPO.mjs.map +0 -1
  1031. package/dist/chunks/fr-CYn6fMiH.mjs +0 -2
  1032. package/dist/chunks/fr-CYn6fMiH.mjs.map +0 -1
  1033. package/dist/chunks/fr-CbsiyDEa.mjs +0 -2
  1034. package/dist/chunks/fr-CbsiyDEa.mjs.map +0 -1
  1035. package/dist/chunks/fr-CcZiELJY.mjs +0 -2
  1036. package/dist/chunks/fr-CcZiELJY.mjs.map +0 -1
  1037. package/dist/chunks/fr-CeHzUPVT.mjs +0 -2
  1038. package/dist/chunks/fr-CeHzUPVT.mjs.map +0 -1
  1039. package/dist/chunks/fr-Cv73J4QZ.mjs +0 -2
  1040. package/dist/chunks/fr-Cv73J4QZ.mjs.map +0 -1
  1041. package/dist/chunks/fr-DDLuorz7.mjs +0 -2
  1042. package/dist/chunks/fr-DDLuorz7.mjs.map +0 -1
  1043. package/dist/chunks/fr-DMA4CAyo.mjs +0 -2
  1044. package/dist/chunks/fr-DMA4CAyo.mjs.map +0 -1
  1045. package/dist/chunks/fr-DNJuGtO1.mjs +0 -2
  1046. package/dist/chunks/fr-DNJuGtO1.mjs.map +0 -1
  1047. package/dist/chunks/fr-DQOE8O6_.mjs +0 -2
  1048. package/dist/chunks/fr-DQOE8O6_.mjs.map +0 -1
  1049. package/dist/chunks/fr-DXjOwGew.mjs +0 -2
  1050. package/dist/chunks/fr-DXjOwGew.mjs.map +0 -1
  1051. package/dist/chunks/fr-DilrEvE_.mjs +0 -2
  1052. package/dist/chunks/fr-DilrEvE_.mjs.map +0 -1
  1053. package/dist/chunks/fr-P7iY3ntE.mjs +0 -2
  1054. package/dist/chunks/fr-P7iY3ntE.mjs.map +0 -1
  1055. package/dist/chunks/fr-ViUNGo_J.mjs +0 -2
  1056. package/dist/chunks/fr-ViUNGo_J.mjs.map +0 -1
  1057. package/dist/chunks/fr-gdIyLcGC.mjs +0 -2
  1058. package/dist/chunks/fr-gdIyLcGC.mjs.map +0 -1
  1059. package/dist/chunks/full-h88Sb2MR.mjs +0 -2
  1060. package/dist/chunks/full-h88Sb2MR.mjs.map +0 -1
  1061. package/dist/chunks/hi-BC82Jxjl.mjs +0 -2
  1062. package/dist/chunks/hi-BC82Jxjl.mjs.map +0 -1
  1063. package/dist/chunks/hi-BCTarnem.mjs +0 -2
  1064. package/dist/chunks/hi-BCTarnem.mjs.map +0 -1
  1065. package/dist/chunks/hi-BMStjhJF.mjs +0 -2
  1066. package/dist/chunks/hi-BMStjhJF.mjs.map +0 -1
  1067. package/dist/chunks/hi-BQ2Fyx7t.mjs +0 -2
  1068. package/dist/chunks/hi-BQ2Fyx7t.mjs.map +0 -1
  1069. package/dist/chunks/hi-Bg4-z2Os.mjs +0 -2
  1070. package/dist/chunks/hi-Bg4-z2Os.mjs.map +0 -1
  1071. package/dist/chunks/hi-BgqI_gOH.mjs +0 -2
  1072. package/dist/chunks/hi-BgqI_gOH.mjs.map +0 -1
  1073. package/dist/chunks/hi-CEPSeUBX.mjs +0 -2
  1074. package/dist/chunks/hi-CEPSeUBX.mjs.map +0 -1
  1075. package/dist/chunks/hi-CRaZj5Uo.mjs +0 -2
  1076. package/dist/chunks/hi-CRaZj5Uo.mjs.map +0 -1
  1077. package/dist/chunks/hi-CT0uK1Me.mjs +0 -2
  1078. package/dist/chunks/hi-CT0uK1Me.mjs.map +0 -1
  1079. package/dist/chunks/hi-CnIpMd8L.mjs +0 -2
  1080. package/dist/chunks/hi-CnIpMd8L.mjs.map +0 -1
  1081. package/dist/chunks/hi-CnSv0JhL.mjs +0 -2
  1082. package/dist/chunks/hi-CnSv0JhL.mjs.map +0 -1
  1083. package/dist/chunks/hi-DLLBZu67.mjs +0 -2
  1084. package/dist/chunks/hi-DLLBZu67.mjs.map +0 -1
  1085. package/dist/chunks/hi-DMg_aiSR.mjs +0 -2
  1086. package/dist/chunks/hi-DMg_aiSR.mjs.map +0 -1
  1087. package/dist/chunks/hi-DWwLzOX5.mjs +0 -2
  1088. package/dist/chunks/hi-DWwLzOX5.mjs.map +0 -1
  1089. package/dist/chunks/hi-D_4Xi4Nv.mjs +0 -2
  1090. package/dist/chunks/hi-D_4Xi4Nv.mjs.map +0 -1
  1091. package/dist/chunks/hi-D_Jtykmj.mjs +0 -2
  1092. package/dist/chunks/hi-D_Jtykmj.mjs.map +0 -1
  1093. package/dist/chunks/hi-Da5pRz8E.mjs +0 -2
  1094. package/dist/chunks/hi-Da5pRz8E.mjs.map +0 -1
  1095. package/dist/chunks/hi-DqL20WmM.mjs +0 -2
  1096. package/dist/chunks/hi-DqL20WmM.mjs.map +0 -1
  1097. package/dist/chunks/hi-DwQopxRg.mjs +0 -2
  1098. package/dist/chunks/hi-DwQopxRg.mjs.map +0 -1
  1099. package/dist/chunks/hi-IuMohSSw.mjs +0 -2
  1100. package/dist/chunks/hi-IuMohSSw.mjs.map +0 -1
  1101. package/dist/chunks/hi-PUX7dDPm.mjs +0 -2
  1102. package/dist/chunks/hi-PUX7dDPm.mjs.map +0 -1
  1103. package/dist/chunks/hi-RmfZAmwT.mjs +0 -2
  1104. package/dist/chunks/hi-RmfZAmwT.mjs.map +0 -1
  1105. package/dist/chunks/hi-UIBrTEVu.mjs +0 -2
  1106. package/dist/chunks/hi-UIBrTEVu.mjs.map +0 -1
  1107. package/dist/chunks/hi-_SjWnfeh.mjs +0 -2
  1108. package/dist/chunks/hi-_SjWnfeh.mjs.map +0 -1
  1109. package/dist/chunks/hi-dV2GZgH_.mjs +0 -2
  1110. package/dist/chunks/hi-dV2GZgH_.mjs.map +0 -1
  1111. package/dist/chunks/hi-ehh5oKz3.mjs +0 -2
  1112. package/dist/chunks/hi-ehh5oKz3.mjs.map +0 -1
  1113. package/dist/chunks/hi-yXnRBFJK.mjs +0 -2
  1114. package/dist/chunks/hi-yXnRBFJK.mjs.map +0 -1
  1115. package/dist/chunks/minimal-a40NeBQ_.mjs +0 -2
  1116. package/dist/chunks/minimal-a40NeBQ_.mjs.map +0 -1
  1117. package/dist/chunks/pt-2a8Oto6x.mjs +0 -2
  1118. package/dist/chunks/pt-2a8Oto6x.mjs.map +0 -1
  1119. package/dist/chunks/pt-ALzIyTiI.mjs +0 -2
  1120. package/dist/chunks/pt-ALzIyTiI.mjs.map +0 -1
  1121. package/dist/chunks/pt-B2hMlTc6.mjs +0 -2
  1122. package/dist/chunks/pt-B2hMlTc6.mjs.map +0 -1
  1123. package/dist/chunks/pt-BCIkSb0w.mjs +0 -2
  1124. package/dist/chunks/pt-BCIkSb0w.mjs.map +0 -1
  1125. package/dist/chunks/pt-BFotmq5x.mjs +0 -2
  1126. package/dist/chunks/pt-BFotmq5x.mjs.map +0 -1
  1127. package/dist/chunks/pt-BM7OScX6.mjs +0 -2
  1128. package/dist/chunks/pt-BM7OScX6.mjs.map +0 -1
  1129. package/dist/chunks/pt-BM7zXWxW.mjs +0 -2
  1130. package/dist/chunks/pt-BM7zXWxW.mjs.map +0 -1
  1131. package/dist/chunks/pt-BchCuzFq.mjs +0 -2
  1132. package/dist/chunks/pt-BchCuzFq.mjs.map +0 -1
  1133. package/dist/chunks/pt-BmcHFWoR.mjs +0 -2
  1134. package/dist/chunks/pt-BmcHFWoR.mjs.map +0 -1
  1135. package/dist/chunks/pt-C53W99RV.mjs +0 -2
  1136. package/dist/chunks/pt-C53W99RV.mjs.map +0 -1
  1137. package/dist/chunks/pt-CORQy8qv.mjs +0 -2
  1138. package/dist/chunks/pt-CORQy8qv.mjs.map +0 -1
  1139. package/dist/chunks/pt-CUPKr943.mjs +0 -2
  1140. package/dist/chunks/pt-CUPKr943.mjs.map +0 -1
  1141. package/dist/chunks/pt-CYkKDsLa.mjs +0 -2
  1142. package/dist/chunks/pt-CYkKDsLa.mjs.map +0 -1
  1143. package/dist/chunks/pt-Cd_SXHKt.mjs +0 -2
  1144. package/dist/chunks/pt-Cd_SXHKt.mjs.map +0 -1
  1145. package/dist/chunks/pt-CjN3Oq-6.mjs +0 -2
  1146. package/dist/chunks/pt-CjN3Oq-6.mjs.map +0 -1
  1147. package/dist/chunks/pt-CrKrgktr.mjs +0 -2
  1148. package/dist/chunks/pt-CrKrgktr.mjs.map +0 -1
  1149. package/dist/chunks/pt-Crmbkj0e.mjs +0 -2
  1150. package/dist/chunks/pt-Crmbkj0e.mjs.map +0 -1
  1151. package/dist/chunks/pt-D19IWOM_.mjs +0 -2
  1152. package/dist/chunks/pt-D19IWOM_.mjs.map +0 -1
  1153. package/dist/chunks/pt-D6zY7l2E.mjs +0 -2
  1154. package/dist/chunks/pt-D6zY7l2E.mjs.map +0 -1
  1155. package/dist/chunks/pt-DA5hufLZ.mjs +0 -2
  1156. package/dist/chunks/pt-DA5hufLZ.mjs.map +0 -1
  1157. package/dist/chunks/pt-DEfBqu-c.mjs +0 -2
  1158. package/dist/chunks/pt-DEfBqu-c.mjs.map +0 -1
  1159. package/dist/chunks/pt-DG3rw6nK.mjs +0 -2
  1160. package/dist/chunks/pt-DG3rw6nK.mjs.map +0 -1
  1161. package/dist/chunks/pt-DRoAHNZi.mjs +0 -2
  1162. package/dist/chunks/pt-DRoAHNZi.mjs.map +0 -1
  1163. package/dist/chunks/pt-Eml9QiUL.mjs +0 -2
  1164. package/dist/chunks/pt-Eml9QiUL.mjs.map +0 -1
  1165. package/dist/chunks/pt-Haa3wVmA.mjs +0 -2
  1166. package/dist/chunks/pt-Haa3wVmA.mjs.map +0 -1
  1167. package/dist/chunks/pt-aj7zOxTg.mjs +0 -2
  1168. package/dist/chunks/pt-aj7zOxTg.mjs.map +0 -1
  1169. package/dist/chunks/pt-l6dTmkQk.mjs +0 -2
  1170. package/dist/chunks/pt-l6dTmkQk.mjs.map +0 -1
  1171. package/dist/chunks/ru--JPEpdcJ.mjs +0 -2
  1172. package/dist/chunks/ru--JPEpdcJ.mjs.map +0 -1
  1173. package/dist/chunks/ru-B76ORyqe.mjs +0 -2
  1174. package/dist/chunks/ru-B76ORyqe.mjs.map +0 -1
  1175. package/dist/chunks/ru-BDQ62WuE.mjs +0 -2
  1176. package/dist/chunks/ru-BDQ62WuE.mjs.map +0 -1
  1177. package/dist/chunks/ru-BQ6W3lwr.mjs +0 -2
  1178. package/dist/chunks/ru-BQ6W3lwr.mjs.map +0 -1
  1179. package/dist/chunks/ru-BQpaitci.mjs +0 -2
  1180. package/dist/chunks/ru-BQpaitci.mjs.map +0 -1
  1181. package/dist/chunks/ru-Bm9VwJLu.mjs +0 -2
  1182. package/dist/chunks/ru-Bm9VwJLu.mjs.map +0 -1
  1183. package/dist/chunks/ru-BnNdik6i.mjs +0 -2
  1184. package/dist/chunks/ru-BnNdik6i.mjs.map +0 -1
  1185. package/dist/chunks/ru-Bo4am8cd.mjs +0 -2
  1186. package/dist/chunks/ru-Bo4am8cd.mjs.map +0 -1
  1187. package/dist/chunks/ru-C1k56xWQ.mjs +0 -2
  1188. package/dist/chunks/ru-C1k56xWQ.mjs.map +0 -1
  1189. package/dist/chunks/ru-C4rnSQlI.mjs +0 -2
  1190. package/dist/chunks/ru-C4rnSQlI.mjs.map +0 -1
  1191. package/dist/chunks/ru-CKM3t1sv.mjs +0 -2
  1192. package/dist/chunks/ru-CKM3t1sv.mjs.map +0 -1
  1193. package/dist/chunks/ru-CO6eCsxU.mjs +0 -2
  1194. package/dist/chunks/ru-CO6eCsxU.mjs.map +0 -1
  1195. package/dist/chunks/ru-CTaYpQ9_.mjs +0 -2
  1196. package/dist/chunks/ru-CTaYpQ9_.mjs.map +0 -1
  1197. package/dist/chunks/ru-CdY8d80t.mjs +0 -2
  1198. package/dist/chunks/ru-CdY8d80t.mjs.map +0 -1
  1199. package/dist/chunks/ru-CsDtaWRd.mjs +0 -2
  1200. package/dist/chunks/ru-CsDtaWRd.mjs.map +0 -1
  1201. package/dist/chunks/ru-Cy_4nn8h.mjs +0 -2
  1202. package/dist/chunks/ru-Cy_4nn8h.mjs.map +0 -1
  1203. package/dist/chunks/ru-DACtjNuJ.mjs +0 -2
  1204. package/dist/chunks/ru-DACtjNuJ.mjs.map +0 -1
  1205. package/dist/chunks/ru-DN6yN_w9.mjs +0 -2
  1206. package/dist/chunks/ru-DN6yN_w9.mjs.map +0 -1
  1207. package/dist/chunks/ru-DThFtd76.mjs +0 -2
  1208. package/dist/chunks/ru-DThFtd76.mjs.map +0 -1
  1209. package/dist/chunks/ru-Dd_P7hP7.mjs +0 -2
  1210. package/dist/chunks/ru-Dd_P7hP7.mjs.map +0 -1
  1211. package/dist/chunks/ru-Dhuxwzwy.mjs +0 -2
  1212. package/dist/chunks/ru-Dhuxwzwy.mjs.map +0 -1
  1213. package/dist/chunks/ru-Dn6UDGIG.mjs +0 -2
  1214. package/dist/chunks/ru-Dn6UDGIG.mjs.map +0 -1
  1215. package/dist/chunks/ru-DojHc5wu.mjs +0 -2
  1216. package/dist/chunks/ru-DojHc5wu.mjs.map +0 -1
  1217. package/dist/chunks/ru-DyWzWBjV.mjs +0 -2
  1218. package/dist/chunks/ru-DyWzWBjV.mjs.map +0 -1
  1219. package/dist/chunks/ru-NBxCkjlP.mjs +0 -2
  1220. package/dist/chunks/ru-NBxCkjlP.mjs.map +0 -1
  1221. package/dist/chunks/ru-_MQaVHam.mjs +0 -2
  1222. package/dist/chunks/ru-_MQaVHam.mjs.map +0 -1
  1223. package/dist/chunks/ru-wv17PPrd.mjs +0 -2
  1224. package/dist/chunks/ru-wv17PPrd.mjs.map +0 -1
  1225. package/dist/chunks/src-ooaZ_Egu.mjs +0 -2
  1226. package/dist/chunks/src-ooaZ_Egu.mjs.map +0 -1
  1227. package/dist/chunks/zh-2-Y3Limy.mjs +0 -2
  1228. package/dist/chunks/zh-2-Y3Limy.mjs.map +0 -1
  1229. package/dist/chunks/zh-B02VPMqX.mjs +0 -2
  1230. package/dist/chunks/zh-B02VPMqX.mjs.map +0 -1
  1231. package/dist/chunks/zh-BYjLBWWN.mjs +0 -2
  1232. package/dist/chunks/zh-BYjLBWWN.mjs.map +0 -1
  1233. package/dist/chunks/zh-Bt2ZdHcS.mjs +0 -2
  1234. package/dist/chunks/zh-Bt2ZdHcS.mjs.map +0 -1
  1235. package/dist/chunks/zh-BuN_C4o-.mjs +0 -2
  1236. package/dist/chunks/zh-BuN_C4o-.mjs.map +0 -1
  1237. package/dist/chunks/zh-CA3BDj0Y.mjs +0 -2
  1238. package/dist/chunks/zh-CA3BDj0Y.mjs.map +0 -1
  1239. package/dist/chunks/zh-CHuGP7RS.mjs +0 -2
  1240. package/dist/chunks/zh-CHuGP7RS.mjs.map +0 -1
  1241. package/dist/chunks/zh-CIPsF5P8.mjs +0 -2
  1242. package/dist/chunks/zh-CIPsF5P8.mjs.map +0 -1
  1243. package/dist/chunks/zh-C_YS18re.mjs +0 -2
  1244. package/dist/chunks/zh-C_YS18re.mjs.map +0 -1
  1245. package/dist/chunks/zh-CfMPFWUg.mjs +0 -2
  1246. package/dist/chunks/zh-CfMPFWUg.mjs.map +0 -1
  1247. package/dist/chunks/zh-CfjCcBIB.mjs +0 -2
  1248. package/dist/chunks/zh-CfjCcBIB.mjs.map +0 -1
  1249. package/dist/chunks/zh-CqQph809.mjs +0 -2
  1250. package/dist/chunks/zh-CqQph809.mjs.map +0 -1
  1251. package/dist/chunks/zh-Cxe42GC5.mjs +0 -2
  1252. package/dist/chunks/zh-Cxe42GC5.mjs.map +0 -1
  1253. package/dist/chunks/zh-CyMU2cTf.mjs +0 -2
  1254. package/dist/chunks/zh-CyMU2cTf.mjs.map +0 -1
  1255. package/dist/chunks/zh-Cynz1sBa.mjs +0 -2
  1256. package/dist/chunks/zh-Cynz1sBa.mjs.map +0 -1
  1257. package/dist/chunks/zh-DRKs6Q0a.mjs +0 -2
  1258. package/dist/chunks/zh-DRKs6Q0a.mjs.map +0 -1
  1259. package/dist/chunks/zh-DTuIJjx6.mjs +0 -2
  1260. package/dist/chunks/zh-DTuIJjx6.mjs.map +0 -1
  1261. package/dist/chunks/zh-DTz9l6mp.mjs +0 -2
  1262. package/dist/chunks/zh-DTz9l6mp.mjs.map +0 -1
  1263. package/dist/chunks/zh-DZwjiJmn.mjs +0 -2
  1264. package/dist/chunks/zh-DZwjiJmn.mjs.map +0 -1
  1265. package/dist/chunks/zh-D_VJDQl4.mjs +0 -2
  1266. package/dist/chunks/zh-D_VJDQl4.mjs.map +0 -1
  1267. package/dist/chunks/zh-Dt20Om7Z.mjs +0 -2
  1268. package/dist/chunks/zh-Dt20Om7Z.mjs.map +0 -1
  1269. package/dist/chunks/zh-SgsZ9f-W.mjs +0 -2
  1270. package/dist/chunks/zh-SgsZ9f-W.mjs.map +0 -1
  1271. package/dist/chunks/zh-XR7Ls7m-.mjs +0 -2
  1272. package/dist/chunks/zh-XR7Ls7m-.mjs.map +0 -1
  1273. package/dist/chunks/zh-aXPI9lKF.mjs +0 -2
  1274. package/dist/chunks/zh-aXPI9lKF.mjs.map +0 -1
  1275. package/dist/chunks/zh-cLXIKkZQ.mjs +0 -2
  1276. package/dist/chunks/zh-cLXIKkZQ.mjs.map +0 -1
  1277. package/dist/chunks/zh-cZUtN871.mjs +0 -2
  1278. package/dist/chunks/zh-cZUtN871.mjs.map +0 -1
  1279. package/dist/chunks/zh-hcdnCGUp.mjs +0 -2
  1280. package/dist/chunks/zh-hcdnCGUp.mjs.map +0 -1
@@ -1,2 +0,0 @@
1
- import{f as n,g as t,h as o,n as e}from"./Document-znhIcvM9.mjs";import{i as r,n as i,r as l,t as c}from"./WordBoundary-CYDAtEks.mjs";import{o as a,u as s}from"./Selection-aeiSsvhe.mjs";import{r as u}from"./DomUtils-RKbAVBQz.mjs";import{i as f,n as d,r as h}from"./GapCursorNavigation-Bkuu_Ek8.mjs";import{a as m,i as w,t as g}from"./NavigationQueries-3zTaNBlp.mjs";import{r as k,t as b}from"./Platform-wPvKFB9m.mjs";import{a as I,i as p,n as v,t as y}from"./SelectionSync-DCJpNFat.mjs";import{a as x,s as B}from"./PluginHelpers-C3aCCGfX.mjs";function C(n){const t=n.selection;if(!s(t))return null;const o=a(t)?t.anchor.blockId:t.head.blockId;return 0===(a(t)?t.anchor.offset:t.head.offset)?null:h(n,o,0)}function M(t){const o=t.selection;if(!s(o))return null;const e=a(o)?o.anchor.blockId:o.head.blockId,r=t.getBlock(e);if(!r)return null;const i=n(r);return(a(o)?o.anchor.offset:o.head.offset)===i?null:h(t,e,i)}function A(n){const t=n.selection;return s(t)?{blockId:t.head.blockId,offset:t.head.offset}:null}function S(n,t,o){const e=n.getBlockOrder(),r=e.indexOf(t);if(r<0)return null;const i="forward"===o?r+1:r-1;return i<0||i>=e.length?null:e[i]??null}function E(r){const i=r.selection;if(!s(i))return null;if(!a(i))return h(r,i.head.blockId,i.head.offset);const c=i.anchor.blockId,u=r.getBlock(c);if(!u)return null;const d=i.anchor.offset;if(d<n(u))return"inline"===t(u,d)?.kind?h(r,c,d+1):h(r,c,d+(l(o(u),e(u,d))||1));const m=S(r,c,"forward");return m&&g(r,c,m)?w(r,m)?f(r,m):h(r,m,0):null}function V(i){const l=i.selection;if(!s(l))return null;if(!a(l))return h(i,l.head.blockId,l.head.offset);const c=l.anchor.blockId,u=i.getBlock(c);if(!u)return null;const d=l.anchor.offset;if(d>0)return"inline"===t(u,d-1)?.kind?h(i,c,d-1):h(i,c,d-(r(o(u),e(u,d))||1));const m=S(i,c,"backward");if(!m)return null;if(!g(i,c,m))return null;if(w(i,m))return f(i,m);const k=i.getBlock(m);return k?h(i,m,n(k)):null}function N(n){const t=n.selection;if(!s(t))return null;const o=n.getBlockOrder()[0];return o?w(n,o)?f(n,o):h(n,o,0):null}function T(t){const o=t.selection;if(!s(o))return null;const e=t.getBlockOrder(),r=e[e.length-1];if(!r)return null;if(w(t,r))return f(t,r);const i=t.getBlock(r);return i?h(t,r,n(i)):null}function j(r){const i=A(r);if(!i)return null;const c=r.selection;if(!s(c))return null;const a=r.getBlock(i.blockId);if(!a)return null;const u=n(a);if(i.offset<u){const n="inline"===t(a,i.offset)?.kind?1:l(o(a),e(a,i.offset))||1;return d(r,c.anchor.blockId,c.anchor.offset,i.blockId,i.offset+n)}const f=S(r,i.blockId,"forward");return f&&g(r,i.blockId,f)?d(r,c.anchor.blockId,c.anchor.offset,f,0):null}function O(i){const l=A(i);if(!l)return null;const c=i.selection;if(!s(c))return null;if(l.offset>0){const n=i.getBlock(l.blockId);if(!n)return null;const a="inline"===t(n,l.offset-1)?.kind?1:r(o(n),e(n,l.offset))||1;return d(i,c.anchor.blockId,c.anchor.offset,l.blockId,l.offset-a)}const a=S(i,l.blockId,"backward");if(!a)return null;if(!g(i,l.blockId,a))return null;const u=i.getBlock(a);return u?d(i,c.anchor.blockId,c.anchor.offset,a,n(u)):null}function R(n){const t=A(n);if(!t)return null;const o=n.selection;return s(o)?0===t.offset?null:d(n,o.anchor.blockId,o.anchor.offset,t.blockId,0):null}function H(t){const o=A(t);if(!o)return null;const e=t.selection;if(!s(e))return null;const r=t.getBlock(o.blockId);if(!r)return null;const i=n(r);return o.offset===i?null:d(t,e.anchor.blockId,e.anchor.offset,o.blockId,i)}function L(n){const t=n.selection;if(!s(t))return null;const o=n.getBlockOrder()[0];return o?t.head.blockId===o&&0===t.head.offset?null:d(n,t.anchor.blockId,t.anchor.offset,o,0):null}function D(t){const o=t.selection;if(!s(o))return null;const e=t.getBlockOrder(),r=e[e.length-1];if(!r)return null;const i=t.getBlock(r);if(!i)return null;const l=n(i);return o.head.blockId===r&&o.head.offset===l?null:d(t,o.anchor.blockId,o.anchor.offset,r,l)}function P(n,t,o){if("caretPositionFromPoint"in n){const e=n.caretPositionFromPoint(t,o);if(e)return{node:e.offsetNode,offset:e.offset}}if("caretRangeFromPoint"in n){const e=n.caretRangeFromPoint(t,o);if(e)return{node:e.startContainer,offset:e.startOffset}}return null}function z(n,t,o,e){return P(n,t,o)??(e&&n!==e?P(e,t,o):null)}function F(t,o,e,r){const i=o.selection;if(!s(i))return!1;if(!a(i))return!1;const l=o.getBlock(i.anchor.blockId);if(!l)return!1;const c=i.anchor.offset,f=n(l),d=t.querySelector(`[data-block-id="${i.anchor.blockId}"]`),h=d instanceof HTMLElement&&"rtl"===b(d);if("left"===e)return h?c===f:0===c;if("right"===e)return h?0===c:c===f;if("up"===e&&0===c)return!0;if("down"===e&&c===f)return!0;const m=v();return m&&m.modify?function(n,t,o,e){const r=p(n,t);if(!r)return!1;const i=e??_(t,n),l="up"===o?"backward":"forward";try{t.modify("move",l,"line");const o=p(n,t);if(!o)return!1;if(u(n,r.focusNode)!==u(n,o.focusNode))return!0;if(o.anchorNode===r.anchorNode&&o.anchorOffset===r.anchorOffset&&o.focusNode===r.focusNode&&o.focusOffset===r.focusOffset)return!0;if(i){const o=_(t,n);if(o&&Math.abs(o.top-i.top)<1)return!0}return!1}finally{try{t.setBaseAndExtent(r.anchorNode,r.anchorOffset,r.focusNode,r.focusOffset)}catch{}}}(t,m,e,r):"up"===e?0===c:c===f}function q(t,o){const e=K(t,o);if(!e)return null;if(e.isVoid)return f(t,e.targetId);const r=t.getBlock(e.targetId);if(!r)return null;const i="right"===o||"down"===o?0:n(r);return h(t,e.targetId,i)}function $(t,o,e,r){const i=K(o,e);if(!i)return null;if(i.isVoid)return f(o,i.targetId);const l=o.getBlock(i.targetId);if(!l)return null;const c=n(l);if(null!==r){const n=function(n,t,o,e){const r=n.querySelector(`[data-block-id="${t}"]`);if(!r)return null;const i=r.getBoundingClientRect(),l=function(n,t,o){if(!(n instanceof HTMLElement))return"down"===o?t.top+2:t.bottom-2;const e=getComputedStyle(n),r=Number.parseFloat(e.paddingTop)||0,i=Number.parseFloat(e.paddingBottom)||0;return"down"===o?t.top+r+2:t.bottom-i-2}(r,i,o),c=Math.min(Math.max(e,i.left),i.right-1),a=z(n.getRootNode(),c,l,n.ownerDocument);if(!a)return null;if(!r.contains(a.node))return null;const s=y(n,a.node,a.offset);return s?s.blockId!==t?null:s:null}(t,i.targetId,e,r);if(n)return h(o,n.blockId,n.offset)}if(s(o.selection)&&a(o.selection)){const n=o.selection.anchor.offset,t=Math.min(n,c);return h(o,i.targetId,t)}const u="down"===e?0:c;return h(o,i.targetId,u)}function U(n,o){if("up"===o||"down"===o)return null;const e=n.selection;if(!s(e))return null;if(!a(e))return null;const r=e.anchor.blockId,i=n.getBlock(r);if(!i)return null;const l=e.anchor.offset;return"right"===o?function(n,o,e,r){const i=t(e,r);return i&&"inline"===i.kind?h(n,o,r+1):null}(n,r,i,l):function(n,o,e,r){if(0===r)return null;const i=t(e,r-1);return i&&"inline"===i.kind?h(n,o,r-1):null}(n,r,i,l)}function _(n,t){if(n.rangeCount>0){const o=n.getRangeAt(0);if(!t||t.contains(o.startContainer)){const n=o.getClientRects();if(n.length>0)return n[0]??null;const t=o.getBoundingClientRect();if(t.height>0)return t}}if(t){const o=p(t,n);if(o)try{const n=document.createRange();n.setStart(o.anchorNode,o.anchorOffset),n.setEnd(o.focusNode,o.focusOffset);const t=n.getClientRects();return t.length>0?t[0]??null:n.getBoundingClientRect()}catch{}}return null}function K(n,t){const o=n.selection;if(!s(o))return null;const e="right"===t||"down"===t;return m(n,o.anchor.blockId,e)}function Q(n,t,o,e){return J(n,t,"move",o,e)}function G(n,t,o,e){return J(n,t,"extend",o,e)}function J(o,e,r,i,l){const c=e.selection;if(!s(c))return null;const a="move"===r?W:X,u=v();if(!u?.modify)return a(e,i,l);const m=p(o,u);if(!m)return a(e,i,l);try{u.modify(r,i,l);const a=I(o);if(!a)return null;const s="move"===r?c.anchor.blockId:c.head.blockId,m="move"===r?a.anchor:a.head,k=m.blockId;if(k!==s&&!g(e,s,k))return null;let b=m.offset;const p=e.getBlock(k);return p&&"inline"===t(p,b)?.kind&&"forward"===i&&(b=Math.min(b+1,n(p))),"move"===r?w(e,k)?f(e,k):h(e,k,b):d(e,c.anchor.blockId,c.anchor.offset,k,b)}finally{try{u.setBaseAndExtent(m.anchorNode,m.anchorOffset,m.focusNode,m.focusOffset)}catch{}}}function W(t,o,e){return"word"===e?function(t,o){const e=t.selection;if(!s(e))return null;const r=a(e)?e.anchor.blockId:e.head.blockId,l=a(e)?e.anchor.offset:e.head.offset,u=t.getBlock(r);if(!u)return null;const d="forward"===o?i(u,l):c(u,l);return d===l?function(t,o,e){const r=m(t,o,"forward"===e);if(!r)return null;if(r.isVoid)return f(t,r.targetId);const i=t.getBlock(r.targetId);if(!i)return null;const l="forward"===e?0:n(i);return h(t,r.targetId,l)}(t,r,o):h(t,r,d)}(t,o):"lineboundary"===e?"forward"===o?M(t):C(t):q(t,"forward"===o?"down":"up")}function X(t,o,e){const r=t.selection;if(!s(r))return null;const l=r.head,a=t.getBlock(l.blockId);if(!a)return null;let u=l.offset;if("word"===e)u="forward"===o?i(a,l.offset):c(a,l.offset);else{if("lineboundary"!==e){const e=m(t,l.blockId,"forward"===o);if(!e)return null;if(e.isVoid)return null;const i=t.getBlock(e.targetId);if(!i)return null;const c="forward"===o?0:n(i);return d(t,r.anchor.blockId,r.anchor.offset,e.targetId,c)}u="forward"===o?n(a):0}return d(t,r.anchor.blockId,r.anchor.offset,l.blockId,u)}function Y(n,t){return Q(n,t,"forward","word")}function Z(n,t){return Q(n,t,"backward","word")}function nn(n,t){return Q(n,t,"backward","lineboundary")}function tn(n,t){return Q(n,t,"forward","lineboundary")}function on(n,t){return Q(n,t,"backward","line")}function en(n,t){return Q(n,t,"forward","line")}function rn(n,t){return G(n,t,"forward","word")}function ln(n,t){return G(n,t,"backward","word")}function cn(n,t){return G(n,t,"backward","lineboundary")}function an(n,t){return G(n,t,"forward","lineboundary")}function sn(n,t){return G(n,t,"backward","line")}function un(n,t){return G(n,t,"forward","line")}var fn={paragraph:"Paragraph",heading1:"Heading 1",heading2:"Heading 2",heading3:"Heading 3",heading4:"Heading 4",heading5:"Heading 5",heading6:"Heading 6",codeBlock:"Code Block",blockquote:"Block Quote",listItem:"List Item",horizontalRule:"Horizontal Rule",image:"Image",table:"Table"},dn={paragraph:"paragraph",code_block:"codeBlock",blockquote:"blockquote",list_item:"listItem",horizontal_rule:"horizontalRule",image:"image",table:"table"},hn=/* @__PURE__ */Object.assign({"./locales/ar.ts":()=>import("./ar-BNUWuZe3.mjs"),"./locales/de.ts":()=>import("./de-CLWzcDoW.mjs"),"./locales/es.ts":()=>import("./es-TIjHCFNF.mjs"),"./locales/fr.ts":()=>import("./fr-C7N2_AlK.mjs"),"./locales/hi.ts":()=>import("./hi-CnSv0JhL.mjs"),"./locales/pt.ts":()=>import("./pt-BFotmq5x.mjs"),"./locales/ru.ts":()=>import("./ru-_MQaVHam.mjs"),"./locales/zh.ts":()=>import("./zh-Cxe42GC5.mjs")});async function mn(n){return B(hn,n,fn)}var wn={"word:forward":Y,"word:backward":Z,"lineboundary:forward":tn,"lineboundary:backward":nn,"line:forward":en,"line:backward":on},gn={"word:forward":rn,"word:backward":ln,"lineboundary:forward":an,"lineboundary:backward":cn,"line:forward":un,"line:backward":sn},kn=class{id="caret-navigation";name="Caret Navigation";priority=4;context=null;lastAnnouncedBlockId=null;announceTimer=null;announce=null;locale=fn;async init(n){this.locale=await x(n,void 0,fn,mn),this.context=n,this.announce=t=>n.announce(t);const t=k(),o={"Shift-ArrowRight":()=>this.extendCharacterVisual("right"),"Shift-ArrowLeft":()=>this.extendCharacterVisual("left"),"Shift-ArrowUp":()=>this.viewExtendCommand("backward","line"),"Shift-ArrowDown":()=>this.viewExtendCommand("forward","line"),...t?{"Alt-ArrowRight":()=>this.viewMoveVisual("right","word"),"Alt-ArrowLeft":()=>this.viewMoveVisual("left","word"),"Shift-Alt-ArrowRight":()=>this.viewExtendVisual("right","word"),"Shift-Alt-ArrowLeft":()=>this.viewExtendVisual("left","word")}:{"Mod-ArrowRight":()=>this.viewMoveVisual("right","word"),"Mod-ArrowLeft":()=>this.viewMoveVisual("left","word"),"Mod-Shift-ArrowRight":()=>this.viewExtendVisual("right","word"),"Mod-Shift-ArrowLeft":()=>this.viewExtendVisual("left","word")},...t?{"Mod-ArrowLeft":()=>this.viewMoveVisual("left","lineboundary"),"Mod-ArrowRight":()=>this.viewMoveVisual("right","lineboundary"),"Mod-Shift-ArrowLeft":()=>this.viewExtendVisual("left","lineboundary"),"Mod-Shift-ArrowRight":()=>this.viewExtendVisual("right","lineboundary")}:{Home:()=>this.viewMoveCommand("backward","lineboundary"),End:()=>this.viewMoveCommand("forward","lineboundary"),"Shift-Home":()=>this.viewExtendCommand("backward","lineboundary"),"Shift-End":()=>this.viewExtendCommand("forward","lineboundary")},...t?{"Mod-ArrowUp":()=>this.modelCommand(N),"Mod-ArrowDown":()=>this.modelCommand(T),"Mod-Shift-ArrowUp":()=>this.modelCommand(L),"Mod-Shift-ArrowDown":()=>this.modelCommand(D)}:{"Mod-Home":()=>this.modelCommand(N),"Mod-End":()=>this.modelCommand(T),"Mod-Shift-Home":()=>this.modelCommand(L),"Mod-Shift-End":()=>this.modelCommand(D)}};n.registerKeymap(o,{priority:"navigation"})}onStateChange(n,t,o){const e=t.selection;if(!a(e)||!s(e))return null!==this.announceTimer&&(clearTimeout(this.announceTimer),this.announceTimer=null),void(this.lastAnnouncedBlockId=null);const r=e.anchor.blockId;r!==this.lastAnnouncedBlockId&&(null!==this.lastAnnouncedBlockId?(this.lastAnnouncedBlockId=r,null!==this.announceTimer&&clearTimeout(this.announceTimer),this.announceTimer=setTimeout(()=>{if(this.announceTimer=null,this.context?.hasAnnouncement())return;const n=t.getBlock(r);if(!n)return;const o=function(n,t,o){if("heading"===t&&o?.level){const t=`heading${o.level}`;if(t in n)return n[t]}const e=dn[t];return e?n[e]:t}(this.locale,n.type,n.attrs);this.announce?.(o)},150)):this.lastAnnouncedBlockId=r)}destroy(){null!==this.announceTimer&&clearTimeout(this.announceTimer),this.announceTimer=null,this.announce=null,this.context=null}modelCommand(n){if(!this.context)return!1;const t=n(this.context.getState());return!!t&&(this.context.dispatch(t),!0)}extendCharacterVisual(n){if(!this.context)return!1;const t=this.context.getState(),o="forward"===this.resolveLogicalHorizontalDirection(t,n)?j(t):O(t);return!!o&&(this.context.dispatch(o),!0)}viewMoveCommand(n,t){return this.dispatchViewCommand(wn,n,t)}viewMoveVisual(n,t){if(!this.context)return!1;const o=this.resolveLogicalHorizontalDirection(this.context.getState(),n);return this.viewMoveCommand(o,t)}viewExtendCommand(n,t){return this.dispatchViewCommand(gn,n,t)}dispatchViewCommand(n,t,o){if(!this.context)return!1;const e=n[`${o}:${t}`];if(!e)return!1;const r=e(this.context.getContainer(),this.context.getState());return!!r&&(this.context.dispatch(r),!0)}viewExtendVisual(n,t){if(!this.context)return!1;const o=this.resolveLogicalHorizontalDirection(this.context.getState(),n);return this.viewExtendCommand(o,t)}resolveLogicalHorizontalDirection(n,t){const o=n.selection;if(!s(o))return"left"===t?"backward":"forward";const e=this.context?.getContainer();if(!e)return"left"===t?"backward":"forward";const r=e.querySelector(`[data-block-id="${o.head.blockId}"]`);return r instanceof HTMLElement&&"rtl"===b(r)?"left"===t?"forward":"backward":"left"===t?"backward":"forward"}};export{V as A,z as C,R as D,H as E,C as F,T as M,N,D as O,M as P,U as S,j as T,Q as _,sn as a,q as b,ln as c,on as d,tn as f,G as g,Y as h,un as i,E as j,L as k,rn as l,Z as m,fn as n,an as o,nn as p,mn as r,cn as s,kn as t,en as u,F as v,O as w,$ as x,_ as y};
2
- //# sourceMappingURL=CaretNavigationPlugin-P6OYaTSq.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CaretNavigationPlugin-P6OYaTSq.mjs","names":[],"sources":["../../src/state/BlockBoundaryMovement.ts","../../src/commands/MovementCommands.ts","../../src/view/DomPointUtils.ts","../../src/view/CaretNavigation.ts","../../src/view/ViewMovementCommands.ts","../../src/plugins/caret-navigation/CaretNavigationLocale.ts","../../src/plugins/caret-navigation/CaretNavigationPlugin.ts"],"sourcesContent":["/**\n * Block boundary movement: pure state-level functions for moving\n * the cursor to the start or end of the current block.\n *\n * These only depend on model/ and state/ types, so they belong\n * at the state layer rather than in commands/.\n */\n\nimport { getBlockLength } from '../model/Document.js';\nimport { isCollapsed, isTextSelection } from '../model/Selection.js';\nimport type { BlockId } from '../model/TypeBrands.js';\nimport type { EditorState } from './EditorState.js';\nimport { moveTx } from './SelectionTransactions.js';\nimport type { Transaction } from './Transaction.js';\n\n/** Moves the cursor to the start of the current block. */\nexport function moveToBlockStart(state: EditorState): Transaction | null {\n\tconst sel = state.selection;\n\tif (!isTextSelection(sel)) return null;\n\n\tconst blockId: BlockId = isCollapsed(sel) ? sel.anchor.blockId : sel.head.blockId;\n\tconst offset: number = isCollapsed(sel) ? sel.anchor.offset : sel.head.offset;\n\n\tif (offset === 0) return null;\n\treturn moveTx(state, blockId, 0);\n}\n\n/** Moves the cursor to the end of the current block. */\nexport function moveToBlockEnd(state: EditorState): Transaction | null {\n\tconst sel = state.selection;\n\tif (!isTextSelection(sel)) return null;\n\n\tconst blockId: BlockId = isCollapsed(sel) ? sel.anchor.blockId : sel.head.blockId;\n\tconst block = state.getBlock(blockId);\n\tif (!block) return null;\n\n\tconst blockLen: number = getBlockLength(block);\n\tconst offset: number = isCollapsed(sel) ? sel.anchor.offset : sel.head.offset;\n\n\tif (offset === blockLen) return null;\n\treturn moveTx(state, blockId, blockLen);\n}\n","/**\n * Model-based movement commands for programmatic cursor navigation.\n *\n * All functions are pure: they take an EditorState and return a Transaction\n * or `null` (when the movement is not applicable). None touch the DOM.\n *\n * Move commands produce a collapsed cursor. Extend commands keep the anchor\n * and move the head, producing a range selection. All clear storedMarks.\n */\n\nimport {\n\tblockOffsetToTextOffset,\n\tgetBlockLength,\n\tgetBlockText,\n\tgetContentAtOffset,\n} from '../model/Document.js';\nimport { nextGraphemeSize, prevGraphemeSize } from '../model/GraphemeUtils.js';\nimport { isCollapsed, isTextSelection } from '../model/Selection.js';\nimport type { BlockId } from '../model/TypeBrands.js';\nimport type { EditorState } from '../state/EditorState.js';\nimport { canCrossBlockBoundary, isVoidBlock } from '../state/NavigationQueries.js';\nimport { extendTx, moveTx, nodeSelTx } from '../state/SelectionTransactions.js';\nimport type { Transaction } from '../state/Transaction.js';\n\n// Re-export block boundary movement from state layer\nexport { moveToBlockEnd, moveToBlockStart } from '../state/BlockBoundaryMovement.js';\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\n/** Resolves the effective head position from any text selection. */\nfunction resolveHead(state: EditorState): { blockId: BlockId; offset: number } | null {\n\tconst sel = state.selection;\n\tif (!isTextSelection(sel)) return null;\n\treturn { blockId: sel.head.blockId, offset: sel.head.offset };\n}\n\n/** Returns the adjacent block ID in the given direction, or `null`. */\nfunction adjacentBlockId(\n\tstate: EditorState,\n\tcurrentBlockId: BlockId,\n\tdirection: 'forward' | 'backward',\n): BlockId | null {\n\tconst blockOrder: readonly BlockId[] = state.getBlockOrder();\n\tconst idx: number = blockOrder.indexOf(currentBlockId);\n\tif (idx < 0) return null;\n\tconst targetIdx: number = direction === 'forward' ? idx + 1 : idx - 1;\n\tif (targetIdx < 0 || targetIdx >= blockOrder.length) return null;\n\treturn blockOrder[targetIdx] ?? null;\n}\n\n// ---------------------------------------------------------------------------\n// Character Movement\n// ---------------------------------------------------------------------------\n\n/** Moves the cursor one character forward, skipping InlineNodes atomically. */\nexport function moveCharacterForward(state: EditorState): Transaction | null {\n\tconst sel = state.selection;\n\tif (!isTextSelection(sel)) return null;\n\n\t// If range selection, collapse to head\n\tif (!isCollapsed(sel)) {\n\t\treturn moveTx(state, sel.head.blockId, sel.head.offset);\n\t}\n\n\tconst blockId: BlockId = sel.anchor.blockId;\n\tconst block = state.getBlock(blockId);\n\tif (!block) return null;\n\n\tconst offset: number = sel.anchor.offset;\n\tconst blockLen: number = getBlockLength(block);\n\n\tif (offset < blockLen) {\n\t\t// InlineNode: skip atomically (+1)\n\t\tconst content = getContentAtOffset(block, offset);\n\t\tif (content?.kind === 'inline') {\n\t\t\treturn moveTx(state, blockId, offset + 1);\n\t\t}\n\t\t// Text: advance by one grapheme cluster\n\t\tconst text: string = getBlockText(block);\n\t\tconst textOffset: number = blockOffsetToTextOffset(block, offset);\n\t\tconst step: number = nextGraphemeSize(text, textOffset) || 1;\n\t\treturn moveTx(state, blockId, offset + step);\n\t}\n\n\t// At block end → cross-block\n\tconst nextId: BlockId | null = adjacentBlockId(state, blockId, 'forward');\n\tif (!nextId) return null;\n\tif (!canCrossBlockBoundary(state, blockId, nextId)) return null;\n\n\tif (isVoidBlock(state, nextId)) return nodeSelTx(state, nextId);\n\n\treturn moveTx(state, nextId, 0);\n}\n\n/** Moves the cursor one character backward, skipping InlineNodes atomically. */\nexport function moveCharacterBackward(state: EditorState): Transaction | null {\n\tconst sel = state.selection;\n\tif (!isTextSelection(sel)) return null;\n\n\t// If range selection, collapse to head\n\tif (!isCollapsed(sel)) {\n\t\treturn moveTx(state, sel.head.blockId, sel.head.offset);\n\t}\n\n\tconst blockId: BlockId = sel.anchor.blockId;\n\tconst block = state.getBlock(blockId);\n\tif (!block) return null;\n\n\tconst offset: number = sel.anchor.offset;\n\n\tif (offset > 0) {\n\t\t// InlineNode: skip atomically (-1)\n\t\tconst content = getContentAtOffset(block, offset - 1);\n\t\tif (content?.kind === 'inline') {\n\t\t\treturn moveTx(state, blockId, offset - 1);\n\t\t}\n\t\t// Text: retreat by one grapheme cluster\n\t\tconst text: string = getBlockText(block);\n\t\tconst textOffset: number = blockOffsetToTextOffset(block, offset);\n\t\tconst step: number = prevGraphemeSize(text, textOffset) || 1;\n\t\treturn moveTx(state, blockId, offset - step);\n\t}\n\n\t// At block start → cross-block\n\tconst prevId: BlockId | null = adjacentBlockId(state, blockId, 'backward');\n\tif (!prevId) return null;\n\tif (!canCrossBlockBoundary(state, blockId, prevId)) return null;\n\n\tif (isVoidBlock(state, prevId)) return nodeSelTx(state, prevId);\n\n\tconst prevBlock = state.getBlock(prevId);\n\tif (!prevBlock) return null;\n\treturn moveTx(state, prevId, getBlockLength(prevBlock));\n}\n\n// ---------------------------------------------------------------------------\n// Document Boundary Movement\n// ---------------------------------------------------------------------------\n\n/** Moves the cursor to the beginning of the document. */\nexport function moveToDocumentStart(state: EditorState): Transaction | null {\n\tconst sel = state.selection;\n\tif (!isTextSelection(sel)) return null;\n\n\tconst blockOrder: readonly BlockId[] = state.getBlockOrder();\n\tconst firstId: BlockId | undefined = blockOrder[0];\n\tif (!firstId) return null;\n\n\tif (isVoidBlock(state, firstId)) return nodeSelTx(state, firstId);\n\n\treturn moveTx(state, firstId, 0);\n}\n\n/** Moves the cursor to the end of the document. */\nexport function moveToDocumentEnd(state: EditorState): Transaction | null {\n\tconst sel = state.selection;\n\tif (!isTextSelection(sel)) return null;\n\n\tconst blockOrder: readonly BlockId[] = state.getBlockOrder();\n\tconst lastId: BlockId | undefined = blockOrder[blockOrder.length - 1];\n\tif (!lastId) return null;\n\n\tif (isVoidBlock(state, lastId)) return nodeSelTx(state, lastId);\n\n\tconst lastBlock = state.getBlock(lastId);\n\tif (!lastBlock) return null;\n\treturn moveTx(state, lastId, getBlockLength(lastBlock));\n}\n\n// ---------------------------------------------------------------------------\n// Extend (Selection Extension) Commands\n// ---------------------------------------------------------------------------\n\n/** Extends the selection one character forward. */\nexport function extendCharacterForward(state: EditorState): Transaction | null {\n\tconst head = resolveHead(state);\n\tif (!head) return null;\n\n\tconst sel = state.selection;\n\tif (!isTextSelection(sel)) return null;\n\n\tconst block = state.getBlock(head.blockId);\n\tif (!block) return null;\n\n\tconst blockLen: number = getBlockLength(block);\n\n\tif (head.offset < blockLen) {\n\t\tconst content = getContentAtOffset(block, head.offset);\n\t\tconst step: number =\n\t\t\tcontent?.kind === 'inline'\n\t\t\t\t? 1\n\t\t\t\t: nextGraphemeSize(getBlockText(block), blockOffsetToTextOffset(block, head.offset)) || 1;\n\t\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, head.blockId, head.offset + step);\n\t}\n\n\t// Cross-block\n\tconst nextId: BlockId | null = adjacentBlockId(state, head.blockId, 'forward');\n\tif (!nextId) return null;\n\tif (!canCrossBlockBoundary(state, head.blockId, nextId)) return null;\n\n\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, nextId, 0);\n}\n\n/** Extends the selection one character backward. */\nexport function extendCharacterBackward(state: EditorState): Transaction | null {\n\tconst head = resolveHead(state);\n\tif (!head) return null;\n\n\tconst sel = state.selection;\n\tif (!isTextSelection(sel)) return null;\n\n\tif (head.offset > 0) {\n\t\tconst block = state.getBlock(head.blockId);\n\t\tif (!block) return null;\n\t\tconst content = getContentAtOffset(block, head.offset - 1);\n\t\tconst step: number =\n\t\t\tcontent?.kind === 'inline'\n\t\t\t\t? 1\n\t\t\t\t: prevGraphemeSize(getBlockText(block), blockOffsetToTextOffset(block, head.offset)) || 1;\n\t\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, head.blockId, head.offset - step);\n\t}\n\n\t// Cross-block\n\tconst prevId: BlockId | null = adjacentBlockId(state, head.blockId, 'backward');\n\tif (!prevId) return null;\n\tif (!canCrossBlockBoundary(state, head.blockId, prevId)) return null;\n\n\tconst prevBlock = state.getBlock(prevId);\n\tif (!prevBlock) return null;\n\n\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, prevId, getBlockLength(prevBlock));\n}\n\n/** Extends the selection to the start of the current block. */\nexport function extendToBlockStart(state: EditorState): Transaction | null {\n\tconst head = resolveHead(state);\n\tif (!head) return null;\n\n\tconst sel = state.selection;\n\tif (!isTextSelection(sel)) return null;\n\n\tif (head.offset === 0) return null;\n\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, head.blockId, 0);\n}\n\n/** Extends the selection to the end of the current block. */\nexport function extendToBlockEnd(state: EditorState): Transaction | null {\n\tconst head = resolveHead(state);\n\tif (!head) return null;\n\n\tconst sel = state.selection;\n\tif (!isTextSelection(sel)) return null;\n\n\tconst block = state.getBlock(head.blockId);\n\tif (!block) return null;\n\n\tconst blockLen: number = getBlockLength(block);\n\tif (head.offset === blockLen) return null;\n\n\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, head.blockId, blockLen);\n}\n\n/** Extends the selection to the start of the document. */\nexport function extendToDocumentStart(state: EditorState): Transaction | null {\n\tconst sel = state.selection;\n\tif (!isTextSelection(sel)) return null;\n\n\tconst blockOrder: readonly BlockId[] = state.getBlockOrder();\n\tconst firstId: BlockId | undefined = blockOrder[0];\n\tif (!firstId) return null;\n\n\t// No-op if head is already at document start\n\tif (sel.head.blockId === firstId && sel.head.offset === 0) return null;\n\n\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, firstId, 0);\n}\n\n/** Extends the selection to the end of the document. */\nexport function extendToDocumentEnd(state: EditorState): Transaction | null {\n\tconst sel = state.selection;\n\tif (!isTextSelection(sel)) return null;\n\n\tconst blockOrder: readonly BlockId[] = state.getBlockOrder();\n\tconst lastId: BlockId | undefined = blockOrder[blockOrder.length - 1];\n\tif (!lastId) return null;\n\n\tconst lastBlock = state.getBlock(lastId);\n\tif (!lastBlock) return null;\n\n\tconst lastBlockLen: number = getBlockLength(lastBlock);\n\n\t// No-op if head is already at document end\n\tif (sel.head.blockId === lastId && sel.head.offset === lastBlockLen) return null;\n\n\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, lastId, lastBlockLen);\n}\n","/**\n * Utilities for resolving a DOM position from screen coordinates.\n *\n * Provides a fallback chain: `caretPositionFromPoint` → `caretRangeFromPoint`\n * → document fallback (when root is a ShadowRoot).\n */\n\n/** Result of resolving a DOM position from screen coordinates. */\nexport interface DomPoint {\n\treadonly node: Node;\n\treadonly offset: number;\n}\n\n/**\n * Tries `caretPositionFromPoint` (standard) then `caretRangeFromPoint`\n * (WebKit fallback) on a single target to resolve a DOM position.\n */\nfunction tryCaretFromPoint(target: Document | ShadowRoot, x: number, y: number): DomPoint | null {\n\tif ('caretPositionFromPoint' in target) {\n\t\tconst cp = (target as Document).caretPositionFromPoint(x, y);\n\t\tif (cp) {\n\t\t\treturn { node: cp.offsetNode, offset: cp.offset };\n\t\t}\n\t}\n\n\tif ('caretRangeFromPoint' in target) {\n\t\tconst range = (target as Document).caretRangeFromPoint(x, y);\n\t\tif (range) {\n\t\t\treturn { node: range.startContainer, offset: range.startOffset };\n\t\t}\n\t}\n\n\treturn null;\n}\n\n/**\n * Resolves a DOM position from screen coordinates using the best available API.\n *\n * Tries the given root first, then falls back to the ownerDocument when the\n * root is a ShadowRoot and the first attempt returned nothing.\n */\nexport function domPositionFromPoint(\n\troot: Document | ShadowRoot,\n\tx: number,\n\ty: number,\n\townerDoc?: Document,\n): DomPoint | null {\n\treturn (\n\t\ttryCaretFromPoint(root, x, y) ??\n\t\t(ownerDoc && root !== ownerDoc ? tryCaretFromPoint(ownerDoc, x, y) : null)\n\t);\n}\n","/**\n * Caret navigation utilities for layout-aware cursor movement.\n *\n * Provides `endOfTextblock()` for detecting visual block boundaries,\n * `navigateAcrossBlocks()` for cross-block cursor transitions, and\n * `navigateVerticalWithGoalColumn()` for column-preserving vertical nav.\n */\n\nimport { type BlockNode, getBlockLength, getContentAtOffset } from '../model/Document.js';\nimport { isCollapsed, isTextSelection } from '../model/Selection.js';\nimport type { BlockId } from '../model/TypeBrands.js';\nimport { getTextDirection } from '../platform/Platform.js';\nimport type { EditorState } from '../state/EditorState.js';\nimport { type AdjacentBlock, resolveAdjacentBlock } from '../state/NavigationQueries.js';\nimport { moveTx, nodeSelTx } from '../state/SelectionTransactions.js';\nimport type { Transaction } from '../state/Transaction.js';\nimport { domPositionFromPoint } from './DomPointUtils.js';\nimport { findBlockAncestor } from './DomUtils.js';\nimport type { SelectionEndpoints } from './SelectionSync.js';\nimport { domPositionToState, getSelection, readDOMSelectionEndpoints } from './SelectionSync.js';\n\nexport { navigateFromGapCursor } from './GapCursorNavigation.js';\n\n/** Inset in pixels from block edge for vertical goal-column probing. */\nconst BLOCK_EDGE_INSET_PX = 2;\n\n/** Minimum vertical movement (pixels) for a Selection.modify probe to be considered a real move. */\nconst VERTICAL_MOVEMENT_THRESHOLD_PX = 1;\n\nexport type CaretDirection = 'left' | 'right' | 'up' | 'down';\n\n/**\n * Checks whether the cursor is at the visual edge of its text block.\n *\n * For horizontal directions (left/right), uses a pure offset check.\n * For vertical directions (up/down), tries `Selection.modify` probing\n * to detect visual line boundaries, falling back to offset heuristic.\n *\n * An optional `caretRect` parameter avoids redundant `getBoundingClientRect`\n * calls when the caller already measured the caret position.\n */\nexport function endOfTextblock(\n\tcontainer: HTMLElement,\n\tstate: EditorState,\n\tdirection: CaretDirection,\n\tcaretRect?: DOMRect | null,\n): boolean {\n\tconst sel = state.selection;\n\n\tif (!isTextSelection(sel)) return false;\n\tif (!isCollapsed(sel)) return false;\n\n\tconst block = state.getBlock(sel.anchor.blockId);\n\tif (!block) return false;\n\n\tconst offset: number = sel.anchor.offset;\n\tconst blockLength: number = getBlockLength(block);\n\n\t// Horizontal: direction-aware offset check\n\tconst blockEl: Element | null = container.querySelector(\n\t\t`[data-block-id=\"${sel.anchor.blockId}\"]`,\n\t);\n\tconst isRtl: boolean = blockEl instanceof HTMLElement && getTextDirection(blockEl) === 'rtl';\n\n\tif (direction === 'left') return isRtl ? offset === blockLength : offset === 0;\n\tif (direction === 'right') return isRtl ? offset === 0 : offset === blockLength;\n\n\t// Vertical: quick offset check first\n\tif (direction === 'up' && offset === 0) return true;\n\tif (direction === 'down' && offset === blockLength) return true;\n\n\t// Vertical: try Selection.modify probing for multi-line blocks\n\tconst domSel: globalThis.Selection | null = getSelection();\n\tif (!domSel || !domSel.modify) {\n\t\t// Fallback: offset heuristic (no Selection.modify in test environments)\n\t\treturn direction === 'up' ? offset === 0 : offset === blockLength;\n\t}\n\n\treturn probeVerticalBoundary(container, domSel, direction, caretRect);\n}\n\n/**\n * Creates a transaction to move the cursor to an adjacent block.\n *\n * Returns `null` if navigation is not possible (document boundary,\n * isolating boundary, or no adjacent block).\n */\nexport function navigateAcrossBlocks(\n\tstate: EditorState,\n\tdirection: CaretDirection,\n): Transaction | null {\n\tconst target: AdjacentBlock | null = resolveNavigationTarget(state, direction);\n\tif (!target) return null;\n\n\tif (target.isVoid) return nodeSelTx(state, target.targetId);\n\n\t// Target is text → collapsed selection at start or end\n\tconst targetBlock = state.getBlock(target.targetId);\n\tif (!targetBlock) return null;\n\n\tconst targetOffset: number =\n\t\tdirection === 'right' || direction === 'down' ? 0 : getBlockLength(targetBlock);\n\n\treturn moveTx(state, target.targetId, targetOffset);\n}\n\n/**\n * Navigates vertically using a goal column for visual column preservation.\n *\n * Uses `caretPositionFromPoint` / `caretRangeFromPoint` to find the offset\n * in the target block that is closest to the given goalColumn X coordinate.\n * Falls back to start/end offset when goal column positioning is unavailable.\n */\nexport function navigateVerticalWithGoalColumn(\n\tcontainer: HTMLElement,\n\tstate: EditorState,\n\tdirection: 'up' | 'down',\n\tgoalColumn: number | null,\n): Transaction | null {\n\tconst target: AdjacentBlock | null = resolveNavigationTarget(state, direction);\n\tif (!target) return null;\n\n\t// Void → NodeSelection (goalColumn irrelevant)\n\tif (target.isVoid) return nodeSelTx(state, target.targetId);\n\n\tconst targetBlock = state.getBlock(target.targetId);\n\tif (!targetBlock) return null;\n\tconst blockLen: number = getBlockLength(targetBlock);\n\n\t// Try to resolve position using goalColumn\n\tif (goalColumn !== null) {\n\t\tconst position = resolveGoalColumnPosition(container, target.targetId, direction, goalColumn);\n\t\tif (position) return moveTx(state, position.blockId, position.offset);\n\t}\n\n\t// Offset-clamp fallback: preserve the absolute character offset, clamped to\n\t// the target block length. This handles cases where DOM-based goal column\n\t// resolution fails (e.g. Shadow DOM <li> elements) by keeping the cursor\n\t// at the same character column when possible.\n\tif (isTextSelection(state.selection) && isCollapsed(state.selection)) {\n\t\tconst sourceOffset: number = state.selection.anchor.offset;\n\t\tconst clampedOffset: number = Math.min(sourceOffset, blockLen);\n\t\treturn moveTx(state, target.targetId, clampedOffset);\n\t}\n\n\t// Final fallback: start (down) or end (up)\n\tconst fallbackOffset: number = direction === 'down' ? 0 : blockLen;\n\treturn moveTx(state, target.targetId, fallbackOffset);\n}\n\n/**\n * Skips over an InlineNode atomically when arrowing left/right.\n *\n * Returns a transaction moving the cursor past the InlineNode,\n * or `null` if the adjacent content is not an InlineNode (or\n * the direction is vertical).\n */\nexport function skipInlineNode(state: EditorState, direction: CaretDirection): Transaction | null {\n\tif (direction === 'up' || direction === 'down') return null;\n\n\tconst sel = state.selection;\n\tif (!isTextSelection(sel)) return null;\n\tif (!isCollapsed(sel)) return null;\n\n\tconst blockId: BlockId = sel.anchor.blockId;\n\tconst block = state.getBlock(blockId);\n\tif (!block) return null;\n\n\tconst offset: number = sel.anchor.offset;\n\n\treturn direction === 'right'\n\t\t? skipInlineNodeRight(state, blockId, block, offset)\n\t\t: skipInlineNodeLeft(state, blockId, block, offset);\n}\n\nfunction skipInlineNodeRight(\n\tstate: EditorState,\n\tblockId: BlockId,\n\tblock: BlockNode,\n\toffset: number,\n): Transaction | null {\n\tconst content = getContentAtOffset(block, offset);\n\tif (!content || content.kind !== 'inline') return null;\n\treturn moveTx(state, blockId, offset + 1);\n}\n\nfunction skipInlineNodeLeft(\n\tstate: EditorState,\n\tblockId: BlockId,\n\tblock: BlockNode,\n\toffset: number,\n): Transaction | null {\n\tif (offset === 0) return null;\n\tconst content = getContentAtOffset(block, offset - 1);\n\tif (!content || content.kind !== 'inline') return null;\n\treturn moveTx(state, blockId, offset - 1);\n}\n\n/**\n * Returns the bounding rect of the current caret position, or null.\n *\n * When `container` is provided, validates that `getRangeAt(0)` is inside\n * the container before using its rects. In Shadow DOM, `getRangeAt(0)` may\n * return a cross-boundary range whose rects reflect the shadow host position\n * rather than the actual caret position (e.g. inside `<li>` elements).\n * Falls back to composed selection endpoints via `readDOMSelectionEndpoints()`.\n */\nexport function getCaretRectFromSelection(\n\tdomSel: globalThis.Selection,\n\tcontainer?: HTMLElement,\n): DOMRect | null {\n\t// Standard path: use getRangeAt(0) directly, but only if the range\n\t// is inside the container (avoids cross-boundary rects in Shadow DOM)\n\tif (domSel.rangeCount > 0) {\n\t\tconst range: Range = domSel.getRangeAt(0);\n\t\tconst rangeInContainer: boolean = !container || container.contains(range.startContainer);\n\n\t\tif (rangeInContainer) {\n\t\t\tconst rects: DOMRectList = range.getClientRects();\n\t\t\tif (rects.length > 0) return rects[0] ?? null;\n\t\t\tconst rect: DOMRect = range.getBoundingClientRect();\n\t\t\tif (rect.height > 0) return rect;\n\t\t}\n\t}\n\n\t// Composed endpoint path: handles Shadow DOM cases where getRangeAt(0)\n\t// crosses the shadow boundary (e.g. <li> elements in wrapper <ul>/<ol>)\n\tif (container) {\n\t\tconst endpoints: SelectionEndpoints | null = readDOMSelectionEndpoints(container, domSel);\n\t\tif (endpoints) {\n\t\t\ttry {\n\t\t\t\tconst range: Range = document.createRange();\n\t\t\t\trange.setStart(endpoints.anchorNode, endpoints.anchorOffset);\n\t\t\t\trange.setEnd(endpoints.focusNode, endpoints.focusOffset);\n\t\t\t\tconst rects: DOMRectList = range.getClientRects();\n\t\t\t\tif (rects.length > 0) return rects[0] ?? null;\n\t\t\t\treturn range.getBoundingClientRect();\n\t\t\t} catch {\n\t\t\t\t// Unable to create range from endpoints\n\t\t\t}\n\t\t}\n\t}\n\n\treturn null;\n}\n\n// ---------------------------------------------------------------------------\n// Internal helpers\n// ---------------------------------------------------------------------------\n\n/**\n * Resolves the adjacent block in the given direction for cross-block navigation.\n * Performs boundary checks, isolating checks, and void detection.\n */\nfunction resolveNavigationTarget(\n\tstate: EditorState,\n\tdirection: CaretDirection,\n): AdjacentBlock | null {\n\tconst sel = state.selection;\n\tif (!isTextSelection(sel)) return null;\n\tconst forward: boolean = direction === 'right' || direction === 'down';\n\treturn resolveAdjacentBlock(state, sel.anchor.blockId, forward);\n}\n\n/**\n * Computes the Y coordinate for vertical goal-column probing.\n *\n * Uses the block element's computed padding to ensure the probe point\n * lands inside the text content area, not in the padding zone.\n * Firefox's `caretPositionFromPoint` returns the end-of-text position\n * when probing in the padding area below the content, which breaks\n * ArrowUp column preservation.\n */\nfunction computeProbeY(blockEl: Element, rect: DOMRect, direction: 'up' | 'down'): number {\n\tif (!(blockEl instanceof HTMLElement)) {\n\t\treturn direction === 'down'\n\t\t\t? rect.top + BLOCK_EDGE_INSET_PX\n\t\t\t: rect.bottom - BLOCK_EDGE_INSET_PX;\n\t}\n\n\tconst style: CSSStyleDeclaration = getComputedStyle(blockEl);\n\tconst paddingTop: number = Number.parseFloat(style.paddingTop) || 0;\n\tconst paddingBottom: number = Number.parseFloat(style.paddingBottom) || 0;\n\n\treturn direction === 'down'\n\t\t? rect.top + paddingTop + BLOCK_EDGE_INSET_PX\n\t\t: rect.bottom - paddingBottom - BLOCK_EDGE_INSET_PX;\n}\n\n/**\n * Resolves an editor position in the target block by using the goalColumn\n * X coordinate and `caretPositionFromPoint` / `caretRangeFromPoint`.\n *\n * Returns `null` when the point-to-caret API is unavailable, when the\n * resolved DOM node falls outside the target block, or when the resulting\n * position doesn't belong to the target block — triggering the fallback\n * (block-end for up, block-start for down) in `navigateVerticalWithGoalColumn`.\n */\nfunction resolveGoalColumnPosition(\n\tcontainer: HTMLElement,\n\ttargetId: BlockId,\n\tdirection: 'up' | 'down',\n\tgoalColumn: number,\n): { blockId: BlockId; offset: number } | null {\n\tconst blockEl: Element | null = container.querySelector(`[data-block-id=\"${targetId}\"]`);\n\tif (!blockEl) return null;\n\n\tconst rect: DOMRect = blockEl.getBoundingClientRect();\n\tconst y: number = computeProbeY(blockEl, rect, direction);\n\t// Clamp goalColumn within the block's horizontal bounds to avoid\n\t// caretPositionFromPoint returning unexpected results for out-of-bounds X.\n\tconst clampedX: number = Math.min(Math.max(goalColumn, rect.left), rect.right - 1);\n\n\tconst root: Document | ShadowRoot = container.getRootNode() as Document | ShadowRoot;\n\tconst domPoint = domPositionFromPoint(root, clampedX, y, container.ownerDocument);\n\tif (!domPoint) return null;\n\n\t// Verify the DOM node is inside the target block\n\tif (!blockEl.contains(domPoint.node)) return null;\n\n\tconst position = domPositionToState(container, domPoint.node, domPoint.offset);\n\tif (!position) return null;\n\n\t// Ensure the resolved position is in the target block\n\tif (position.blockId !== targetId) return null;\n\n\treturn position;\n}\n\n/**\n * Probes whether the cursor is at the top/bottom visual line of a block.\n *\n * Strategy:\n * 1. `Selection.modify('move', direction, 'line')` — moves one visual line.\n * 2. If the cursor left the block or didn't move, it's at the boundary.\n * 3. Cross-check with `getBoundingClientRect`: compare the caret rect before\n * and after the probe. If the vertical position didn't change, the probe\n * hit the block edge even though `Selection.modify` reported movement\n * (can happen with certain inline element layouts).\n *\n * Original DOM selection is always restored before returning.\n */\nfunction probeVerticalBoundary(\n\tcontainer: HTMLElement,\n\tdomSel: globalThis.Selection,\n\tdirection: 'up' | 'down',\n\tpreReadRect?: DOMRect | null,\n): boolean {\n\t// Save original DOM selection (using composed ranges for Shadow DOM)\n\tconst origEndpoints: SelectionEndpoints | null = readDOMSelectionEndpoints(container, domSel);\n\n\t// Cannot determine position → safe default: not at boundary (let browser handle)\n\tif (!origEndpoints) return false;\n\n\tconst origRect: DOMRect | null = preReadRect ?? getCaretRectFromSelection(domSel, container);\n\tconst dirStr: string = direction === 'up' ? 'backward' : 'forward';\n\n\ttry {\n\t\tdomSel.modify('move', dirStr, 'line');\n\n\t\t// Read post-modify endpoints via composed ranges\n\t\tconst postEndpoints: SelectionEndpoints | null = readDOMSelectionEndpoints(container, domSel);\n\t\tif (!postEndpoints) return false;\n\n\t\t// Check if the new position is still within the same block\n\t\tconst origBlock: HTMLElement | null = findBlockAncestor(container, origEndpoints.focusNode);\n\t\tconst newBlock: HTMLElement | null = findBlockAncestor(container, postEndpoints.focusNode);\n\n\t\t// Moved to a different block → definitely at boundary\n\t\tif (origBlock !== newBlock) return true;\n\n\t\t// Selection didn't move at all → at boundary\n\t\tconst didNotMove: boolean =\n\t\t\tpostEndpoints.anchorNode === origEndpoints.anchorNode &&\n\t\t\tpostEndpoints.anchorOffset === origEndpoints.anchorOffset &&\n\t\t\tpostEndpoints.focusNode === origEndpoints.focusNode &&\n\t\t\tpostEndpoints.focusOffset === origEndpoints.focusOffset;\n\t\tif (didNotMove) return true;\n\n\t\t// Cross-check with getBoundingClientRect: if vertical position unchanged,\n\t\t// the probe was a no-op visually (edge case with inline elements)\n\t\tif (origRect) {\n\t\t\tconst newRect: DOMRect | null = getCaretRectFromSelection(domSel, container);\n\t\t\tif (newRect) {\n\t\t\t\tconst verticalDelta: number = Math.abs(newRect.top - origRect.top);\n\t\t\t\tif (verticalDelta < VERTICAL_MOVEMENT_THRESHOLD_PX) return true;\n\t\t\t}\n\t\t}\n\n\t\t// Stayed in same block and moved vertically → not at boundary\n\t\treturn false;\n\t} finally {\n\t\t// Restore original selection\n\t\ttry {\n\t\t\tdomSel.setBaseAndExtent(\n\t\t\t\torigEndpoints.anchorNode,\n\t\t\t\torigEndpoints.anchorOffset,\n\t\t\t\torigEndpoints.focusNode,\n\t\t\t\torigEndpoints.focusOffset,\n\t\t\t);\n\t\t} catch {\n\t\t\t// Selection restore may fail if DOM changed\n\t\t}\n\t}\n}\n","/**\n * View-based movement commands that use the browser's `Selection.modify()` API\n * for word, line-boundary, and line granularity movement.\n *\n * Falls back to model-based commands when `Selection.modify` is unavailable\n * (e.g. in happy-dom test environments).\n */\n\nimport { getBlockLength, getContentAtOffset } from '../model/Document.js';\nimport { isCollapsed, isTextSelection } from '../model/Selection.js';\nimport type { BlockId } from '../model/TypeBrands.js';\nimport { findWordBoundaryBackward, findWordBoundaryForward } from '../model/WordBoundary.js';\nimport { moveToBlockEnd, moveToBlockStart } from '../state/BlockBoundaryMovement.js';\nimport type { EditorState } from '../state/EditorState.js';\nimport {\n\tcanCrossBlockBoundary,\n\tisVoidBlock,\n\tresolveAdjacentBlock,\n} from '../state/NavigationQueries.js';\nimport { extendTx, moveTx, nodeSelTx } from '../state/SelectionTransactions.js';\nimport type { Transaction } from '../state/Transaction.js';\nimport { navigateAcrossBlocks } from './CaretNavigation.js';\nimport type { SelectionEndpoints } from './SelectionSync.js';\nimport { getSelection, readDOMSelectionEndpoints, readSelectionFromDOM } from './SelectionSync.js';\n\ntype Direction = 'forward' | 'backward';\ntype Granularity = 'word' | 'lineboundary' | 'line';\n\n// ---------------------------------------------------------------------------\n// Core view movement\n// ---------------------------------------------------------------------------\n\n/**\n * Moves the cursor using `Selection.modify('move', direction, granularity)`.\n * Falls back to model-based movement when the API is unavailable.\n */\nexport function viewMove(\n\tcontainer: HTMLElement,\n\tstate: EditorState,\n\tdirection: Direction,\n\tgranularity: Granularity,\n): Transaction | null {\n\treturn viewModifySelection(container, state, 'move', direction, granularity);\n}\n\n/**\n * Extends the selection using `Selection.modify('extend', direction, granularity)`.\n * Falls back to model-based extension when the API is unavailable.\n */\nexport function viewExtend(\n\tcontainer: HTMLElement,\n\tstate: EditorState,\n\tdirection: Direction,\n\tgranularity: Granularity,\n): Transaction | null {\n\treturn viewModifySelection(container, state, 'extend', direction, granularity);\n}\n\n/**\n * Shared implementation for viewMove and viewExtend.\n * Uses Selection.modify() with save/restore of DOM selection,\n * with fallback to model-based movement.\n */\nfunction viewModifySelection(\n\tcontainer: HTMLElement,\n\tstate: EditorState,\n\tmode: 'move' | 'extend',\n\tdirection: Direction,\n\tgranularity: Granularity,\n): Transaction | null {\n\tconst sel = state.selection;\n\tif (!isTextSelection(sel)) return null;\n\n\tconst fallback = mode === 'move' ? fallbackMove : fallbackExtend;\n\n\tconst domSel: globalThis.Selection | null = getSelection();\n\tif (!domSel?.modify) {\n\t\treturn fallback(state, direction, granularity);\n\t}\n\n\tconst origEndpoints: SelectionEndpoints | null = readDOMSelectionEndpoints(container, domSel);\n\tif (!origEndpoints) return fallback(state, direction, granularity);\n\n\ttry {\n\t\tdomSel.modify(mode, direction, granularity);\n\n\t\tconst newSel = readSelectionFromDOM(container);\n\t\tif (!newSel) return null;\n\n\t\t// For move: check anchor; for extend: check head\n\t\tconst oldBlockId: BlockId = mode === 'move' ? sel.anchor.blockId : sel.head.blockId;\n\t\tconst newPosition = mode === 'move' ? newSel.anchor : newSel.head;\n\t\tconst newBlockId: BlockId = newPosition.blockId;\n\n\t\tif (newBlockId !== oldBlockId && !canCrossBlockBoundary(state, oldBlockId, newBlockId)) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet newOffset: number = newPosition.offset;\n\n\t\t// InlineNode boundary correction\n\t\tconst block = state.getBlock(newBlockId);\n\t\tif (block) {\n\t\t\tconst content = getContentAtOffset(block, newOffset);\n\t\t\tif (content?.kind === 'inline' && direction === 'forward') {\n\t\t\t\tnewOffset = Math.min(newOffset + 1, getBlockLength(block));\n\t\t\t}\n\t\t}\n\n\t\tif (mode === 'move') {\n\t\t\tif (isVoidBlock(state, newBlockId)) return nodeSelTx(state, newBlockId);\n\t\t\treturn moveTx(state, newBlockId, newOffset);\n\t\t}\n\n\t\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, newBlockId, newOffset);\n\t} finally {\n\t\ttry {\n\t\t\tdomSel.setBaseAndExtent(\n\t\t\t\torigEndpoints.anchorNode,\n\t\t\t\torigEndpoints.anchorOffset,\n\t\t\t\torigEndpoints.focusNode,\n\t\t\t\torigEndpoints.focusOffset,\n\t\t\t);\n\t\t} catch {\n\t\t\t// Restore may fail if DOM changed\n\t\t}\n\t}\n}\n\n// ---------------------------------------------------------------------------\n// Fallback (model-based) when Selection.modify is unavailable\n// ---------------------------------------------------------------------------\n\nfunction fallbackMove(\n\tstate: EditorState,\n\tdirection: Direction,\n\tgranularity: Granularity,\n): Transaction | null {\n\tif (granularity === 'word') {\n\t\treturn fallbackWordMove(state, direction);\n\t}\n\tif (granularity === 'lineboundary') {\n\t\treturn direction === 'forward' ? moveToBlockEnd(state) : moveToBlockStart(state);\n\t}\n\t// granularity === 'line' → cross-block\n\tconst caretDir = direction === 'forward' ? 'down' : 'up';\n\treturn navigateAcrossBlocks(state, caretDir);\n}\n\nfunction fallbackExtend(\n\tstate: EditorState,\n\tdirection: Direction,\n\tgranularity: Granularity,\n): Transaction | null {\n\tconst sel = state.selection;\n\tif (!isTextSelection(sel)) return null;\n\n\tconst head = sel.head;\n\tconst block = state.getBlock(head.blockId);\n\tif (!block) return null;\n\n\tlet newOffset: number = head.offset;\n\n\tif (granularity === 'word') {\n\t\tnewOffset =\n\t\t\tdirection === 'forward'\n\t\t\t\t? findWordBoundaryForward(block, head.offset)\n\t\t\t\t: findWordBoundaryBackward(block, head.offset);\n\t} else if (granularity === 'lineboundary') {\n\t\tnewOffset = direction === 'forward' ? getBlockLength(block) : 0;\n\t} else {\n\t\t// line: extend to next block boundary\n\t\tconst adj = resolveAdjacentBlock(state, head.blockId, direction === 'forward');\n\t\tif (!adj) return null;\n\t\t// Cannot extend a text selection into a void block\n\t\tif (adj.isVoid) return null;\n\n\t\tconst targetBlock = state.getBlock(adj.targetId);\n\t\tif (!targetBlock) return null;\n\n\t\tconst targetOffset: number = direction === 'forward' ? 0 : getBlockLength(targetBlock);\n\t\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, adj.targetId, targetOffset);\n\t}\n\n\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, head.blockId, newOffset);\n}\n\nfunction fallbackWordMove(state: EditorState, direction: Direction): Transaction | null {\n\tconst sel = state.selection;\n\tif (!isTextSelection(sel)) return null;\n\n\tconst blockId: BlockId = isCollapsed(sel) ? sel.anchor.blockId : sel.head.blockId;\n\tconst offset: number = isCollapsed(sel) ? sel.anchor.offset : sel.head.offset;\n\tconst block = state.getBlock(blockId);\n\tif (!block) return null;\n\n\tconst newOffset: number =\n\t\tdirection === 'forward'\n\t\t\t? findWordBoundaryForward(block, offset)\n\t\t\t: findWordBoundaryBackward(block, offset);\n\n\tif (newOffset === offset) {\n\t\t// At block boundary — try crossing blocks\n\t\treturn fallbackCrossBlock(state, blockId, direction);\n\t}\n\n\treturn moveTx(state, blockId, newOffset);\n}\n\n/**\n * Crosses a block boundary from `blockId` in the given direction.\n * Checks `canCrossBlockBoundary` and handles void blocks (→ NodeSelection).\n */\nfunction fallbackCrossBlock(\n\tstate: EditorState,\n\tblockId: BlockId,\n\tdirection: Direction,\n): Transaction | null {\n\tconst adj = resolveAdjacentBlock(state, blockId, direction === 'forward');\n\tif (!adj) return null;\n\n\tif (adj.isVoid) return nodeSelTx(state, adj.targetId);\n\n\tconst targetBlock = state.getBlock(adj.targetId);\n\tif (!targetBlock) return null;\n\n\tconst targetOffset: number = direction === 'forward' ? 0 : getBlockLength(targetBlock);\n\treturn moveTx(state, adj.targetId, targetOffset);\n}\n\n// ---------------------------------------------------------------------------\n// Convenience wrappers\n// ---------------------------------------------------------------------------\n\n/** Moves the cursor one word forward. */\nexport function moveWordForward(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewMove(container, state, 'forward', 'word');\n}\n\n/** Moves the cursor one word backward. */\nexport function moveWordBackward(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewMove(container, state, 'backward', 'word');\n}\n\n/** Moves the cursor to the start of the line (visual). */\nexport function moveToLineStart(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewMove(container, state, 'backward', 'lineboundary');\n}\n\n/** Moves the cursor to the end of the line (visual). */\nexport function moveToLineEnd(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewMove(container, state, 'forward', 'lineboundary');\n}\n\n/** Moves the cursor one visual line up. */\nexport function moveLineUp(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewMove(container, state, 'backward', 'line');\n}\n\n/** Moves the cursor one visual line down. */\nexport function moveLineDown(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewMove(container, state, 'forward', 'line');\n}\n\n/** Extends the selection one word forward. */\nexport function extendWordForward(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewExtend(container, state, 'forward', 'word');\n}\n\n/** Extends the selection one word backward. */\nexport function extendWordBackward(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewExtend(container, state, 'backward', 'word');\n}\n\n/** Extends the selection to the start of the line. */\nexport function extendToLineStart(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewExtend(container, state, 'backward', 'lineboundary');\n}\n\n/** Extends the selection to the end of the line. */\nexport function extendToLineEnd(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewExtend(container, state, 'forward', 'lineboundary');\n}\n\n/** Extends the selection one visual line up. */\nexport function extendLineUp(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewExtend(container, state, 'backward', 'line');\n}\n\n/** Extends the selection one visual line down. */\nexport function extendLineDown(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewExtend(container, state, 'forward', 'line');\n}\n","/** Locale interface and default English locale for the CaretNavigationPlugin. */\n\nimport { type LocaleModuleMap, loadLocaleModule } from '../shared/LocaleLoader.js';\n\n// --- Locale Interface ---\n\nexport interface CaretNavigationLocale {\n\treadonly paragraph: string;\n\treadonly heading1: string;\n\treadonly heading2: string;\n\treadonly heading3: string;\n\treadonly heading4: string;\n\treadonly heading5: string;\n\treadonly heading6: string;\n\treadonly codeBlock: string;\n\treadonly blockquote: string;\n\treadonly listItem: string;\n\treadonly horizontalRule: string;\n\treadonly image: string;\n\treadonly table: string;\n}\n\n// --- Default English Locale ---\n\nexport const CARET_NAVIGATION_LOCALE_EN: CaretNavigationLocale = {\n\tparagraph: 'Paragraph',\n\theading1: 'Heading 1',\n\theading2: 'Heading 2',\n\theading3: 'Heading 3',\n\theading4: 'Heading 4',\n\theading5: 'Heading 5',\n\theading6: 'Heading 6',\n\tcodeBlock: 'Code Block',\n\tblockquote: 'Block Quote',\n\tlistItem: 'List Item',\n\thorizontalRule: 'Horizontal Rule',\n\timage: 'Image',\n\ttable: 'Table',\n};\n\n// --- Block Type → Locale Key Mapping ---\n\nconst BLOCK_TYPE_KEY_MAP: Readonly<Record<string, keyof CaretNavigationLocale>> = {\n\tparagraph: 'paragraph',\n\tcode_block: 'codeBlock',\n\tblockquote: 'blockquote',\n\tlist_item: 'listItem',\n\thorizontal_rule: 'horizontalRule',\n\timage: 'image',\n\ttable: 'table',\n};\n\n/** Resolves a block type + attrs to a localized label string. */\nexport function resolveBlockLabel(\n\tlocale: CaretNavigationLocale,\n\ttypeName: string,\n\tattrs?: Record<string, unknown>,\n): string {\n\tif (typeName === 'heading' && attrs?.level) {\n\t\tconst key = `heading${attrs.level}` as keyof CaretNavigationLocale;\n\t\tif (key in locale) return locale[key];\n\t}\n\tconst key: keyof CaretNavigationLocale | undefined = BLOCK_TYPE_KEY_MAP[typeName];\n\treturn key ? locale[key] : typeName;\n}\n\n// --- Lazy Locale Loader ---\n\nconst localeModules: LocaleModuleMap<CaretNavigationLocale> = import.meta.glob<{\n\tdefault: CaretNavigationLocale;\n}>('./locales/*.ts', { eager: false });\n\nexport async function loadCaretNavigationLocale(lang: string): Promise<CaretNavigationLocale> {\n\treturn loadLocaleModule(localeModules, lang, CARET_NAVIGATION_LOCALE_EN);\n}\n","/**\n * CaretNavigationPlugin: registers platform-aware keymaps for all\n * programmatic movement commands (character, word, line, document).\n *\n * Movement priorities use 'navigation' to match GapCursorPlugin.\n * Also announces block-type changes to screen readers on cross-block navigation.\n */\n\nimport {\n\textendCharacterBackward,\n\textendCharacterForward,\n\textendToDocumentEnd,\n\textendToDocumentStart,\n\tmoveToDocumentEnd,\n\tmoveToDocumentStart,\n} from '../../commands/MovementCommands.js';\nimport { isCollapsed, isTextSelection } from '../../model/Selection.js';\nimport type { BlockId } from '../../model/TypeBrands.js';\nimport { getTextDirection, isMac } from '../../platform/Platform.js';\nimport type { EditorState } from '../../state/EditorState.js';\nimport type { Transaction } from '../../state/Transaction.js';\nimport {\n\textendLineDown,\n\textendLineUp,\n\textendToLineEnd,\n\textendToLineStart,\n\textendWordBackward,\n\textendWordForward,\n\tmoveLineDown,\n\tmoveLineUp,\n\tmoveToLineEnd,\n\tmoveToLineStart,\n\tmoveWordBackward,\n\tmoveWordForward,\n} from '../../view/ViewMovementCommands.js';\nimport type { Plugin, PluginContext } from '../Plugin.js';\nimport { resolveLocale } from '../shared/PluginHelpers.js';\nimport {\n\tCARET_NAVIGATION_LOCALE_EN,\n\ttype CaretNavigationLocale,\n\tloadCaretNavigationLocale,\n\tresolveBlockLabel,\n} from './CaretNavigationLocale.js';\n\ntype ViewCommandFn = (container: HTMLElement, state: EditorState) => Transaction | null;\ntype ViewCommandKey = `${'word' | 'lineboundary' | 'line'}:${'forward' | 'backward'}`;\ntype ViewCommandLookup = Readonly<Record<ViewCommandKey, ViewCommandFn>>;\n\nconst VIEW_MOVE_FNS: ViewCommandLookup = {\n\t'word:forward': moveWordForward,\n\t'word:backward': moveWordBackward,\n\t'lineboundary:forward': moveToLineEnd,\n\t'lineboundary:backward': moveToLineStart,\n\t'line:forward': moveLineDown,\n\t'line:backward': moveLineUp,\n};\n\nconst VIEW_EXTEND_FNS: ViewCommandLookup = {\n\t'word:forward': extendWordForward,\n\t'word:backward': extendWordBackward,\n\t'lineboundary:forward': extendToLineEnd,\n\t'lineboundary:backward': extendToLineStart,\n\t'line:forward': extendLineDown,\n\t'line:backward': extendLineUp,\n};\n\n/** Debounce delay for block-type announcements (ms). */\nconst ANNOUNCE_DEBOUNCE_MS = 150;\n\nexport class CaretNavigationPlugin implements Plugin {\n\treadonly id = 'caret-navigation';\n\treadonly name = 'Caret Navigation';\n\treadonly priority = 4;\n\n\tprivate context: PluginContext | null = null;\n\tprivate lastAnnouncedBlockId: BlockId | null = null;\n\tprivate announceTimer: ReturnType<typeof setTimeout> | null = null;\n\tprivate announce: ((text: string) => void) | null = null;\n\tprivate locale: CaretNavigationLocale = CARET_NAVIGATION_LOCALE_EN;\n\n\tasync init(context: PluginContext): Promise<void> {\n\t\tthis.locale = await resolveLocale(\n\t\t\tcontext,\n\t\t\tundefined,\n\t\t\tCARET_NAVIGATION_LOCALE_EN,\n\t\t\tloadCaretNavigationLocale,\n\t\t);\n\n\t\tthis.context = context;\n\t\tthis.announce = (text: string) => context.announce(text);\n\t\tconst mac: boolean = isMac();\n\n\t\tconst keymap: Record<string, () => boolean> = {\n\t\t\t// --- Character movement (no modifier) ---\n\t\t\t// Handled natively by browser for basic cases, but Shift+Arrow\n\t\t\t// needs programmatic extend to correctly clear storedMarks.\n\n\t\t\t// --- Character extend ---\n\t\t\t'Shift-ArrowRight': () => this.extendCharacterVisual('right'),\n\t\t\t'Shift-ArrowLeft': () => this.extendCharacterVisual('left'),\n\n\t\t\t// --- Line extend ---\n\t\t\t'Shift-ArrowUp': () => this.viewExtendCommand('backward', 'line'),\n\t\t\t'Shift-ArrowDown': () => this.viewExtendCommand('forward', 'line'),\n\n\t\t\t// --- Word movement (platform-aware) ---\n\t\t\t...(mac\n\t\t\t\t? {\n\t\t\t\t\t\t'Alt-ArrowRight': () => this.viewMoveVisual('right', 'word'),\n\t\t\t\t\t\t'Alt-ArrowLeft': () => this.viewMoveVisual('left', 'word'),\n\t\t\t\t\t\t'Shift-Alt-ArrowRight': () => this.viewExtendVisual('right', 'word'),\n\t\t\t\t\t\t'Shift-Alt-ArrowLeft': () => this.viewExtendVisual('left', 'word'),\n\t\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t\t'Mod-ArrowRight': () => this.viewMoveVisual('right', 'word'),\n\t\t\t\t\t\t'Mod-ArrowLeft': () => this.viewMoveVisual('left', 'word'),\n\t\t\t\t\t\t'Mod-Shift-ArrowRight': () => this.viewExtendVisual('right', 'word'),\n\t\t\t\t\t\t'Mod-Shift-ArrowLeft': () => this.viewExtendVisual('left', 'word'),\n\t\t\t\t\t}),\n\n\t\t\t// --- Line boundary movement (platform-aware) ---\n\t\t\t...(mac\n\t\t\t\t? {\n\t\t\t\t\t\t'Mod-ArrowLeft': () => this.viewMoveVisual('left', 'lineboundary'),\n\t\t\t\t\t\t'Mod-ArrowRight': () => this.viewMoveVisual('right', 'lineboundary'),\n\t\t\t\t\t\t'Mod-Shift-ArrowLeft': () => this.viewExtendVisual('left', 'lineboundary'),\n\t\t\t\t\t\t'Mod-Shift-ArrowRight': () => this.viewExtendVisual('right', 'lineboundary'),\n\t\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t\tHome: () => this.viewMoveCommand('backward', 'lineboundary'),\n\t\t\t\t\t\tEnd: () => this.viewMoveCommand('forward', 'lineboundary'),\n\t\t\t\t\t\t'Shift-Home': () => this.viewExtendCommand('backward', 'lineboundary'),\n\t\t\t\t\t\t'Shift-End': () => this.viewExtendCommand('forward', 'lineboundary'),\n\t\t\t\t\t}),\n\n\t\t\t// --- Document boundary movement (platform-aware) ---\n\t\t\t...(mac\n\t\t\t\t? {\n\t\t\t\t\t\t'Mod-ArrowUp': () => this.modelCommand(moveToDocumentStart),\n\t\t\t\t\t\t'Mod-ArrowDown': () => this.modelCommand(moveToDocumentEnd),\n\t\t\t\t\t\t'Mod-Shift-ArrowUp': () => this.modelCommand(extendToDocumentStart),\n\t\t\t\t\t\t'Mod-Shift-ArrowDown': () => this.modelCommand(extendToDocumentEnd),\n\t\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t\t'Mod-Home': () => this.modelCommand(moveToDocumentStart),\n\t\t\t\t\t\t'Mod-End': () => this.modelCommand(moveToDocumentEnd),\n\t\t\t\t\t\t'Mod-Shift-Home': () => this.modelCommand(extendToDocumentStart),\n\t\t\t\t\t\t'Mod-Shift-End': () => this.modelCommand(extendToDocumentEnd),\n\t\t\t\t\t}),\n\t\t};\n\n\t\tcontext.registerKeymap(keymap, { priority: 'navigation' });\n\t}\n\n\t/** Announces block-type on cross-block cursor movement (debounced). */\n\tonStateChange(_oldState: EditorState, newState: EditorState, _tr: Transaction): void {\n\t\tconst newSel = newState.selection;\n\n\t\t// Only announce for collapsed text selections\n\t\tif (!isCollapsed(newSel) || !isTextSelection(newSel)) {\n\t\t\tif (this.announceTimer !== null) {\n\t\t\t\tclearTimeout(this.announceTimer);\n\t\t\t\tthis.announceTimer = null;\n\t\t\t}\n\t\t\tthis.lastAnnouncedBlockId = null;\n\t\t\treturn;\n\t\t}\n\n\t\tconst newBlockId: BlockId = newSel.anchor.blockId;\n\t\tif (newBlockId === this.lastAnnouncedBlockId) return;\n\n\t\t// First observed block (initial focus) — remember but don't announce\n\t\tif (this.lastAnnouncedBlockId === null) {\n\t\t\tthis.lastAnnouncedBlockId = newBlockId;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.lastAnnouncedBlockId = newBlockId;\n\n\t\t// Debounce rapid navigation\n\t\tif (this.announceTimer !== null) clearTimeout(this.announceTimer);\n\t\tthis.announceTimer = setTimeout(() => {\n\t\t\tthis.announceTimer = null;\n\t\t\t// Skip if another plugin already announced (e.g. CodeBlockPlugin's \"Left code block\")\n\t\t\tif (this.context?.hasAnnouncement()) return;\n\t\t\tconst block = newState.getBlock(newBlockId);\n\t\t\tif (!block) return;\n\t\t\tconst label: string = resolveBlockLabel(\n\t\t\t\tthis.locale,\n\t\t\t\tblock.type,\n\t\t\t\tblock.attrs as Record<string, unknown> | undefined,\n\t\t\t);\n\t\t\tthis.announce?.(label);\n\t\t}, ANNOUNCE_DEBOUNCE_MS);\n\t}\n\n\tdestroy(): void {\n\t\tif (this.announceTimer !== null) clearTimeout(this.announceTimer);\n\t\tthis.announceTimer = null;\n\t\tthis.announce = null;\n\t\tthis.context = null;\n\t}\n\n\t/** Dispatches a model-based movement command (no DOM needed). */\n\tprivate modelCommand(fn: (state: EditorState) => Transaction | null): boolean {\n\t\tif (!this.context) return false;\n\t\tconst tr: Transaction | null = fn(this.context.getState());\n\t\tif (tr) {\n\t\t\tthis.context.dispatch(tr);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/** Extends selection by one character based on visual left/right intent. */\n\tprivate extendCharacterVisual(visual: 'left' | 'right'): boolean {\n\t\tif (!this.context) return false;\n\t\tconst state: EditorState = this.context.getState();\n\t\tconst dir: 'forward' | 'backward' = this.resolveLogicalHorizontalDirection(state, visual);\n\t\tconst tr: Transaction | null =\n\t\t\tdir === 'forward' ? extendCharacterForward(state) : extendCharacterBackward(state);\n\t\tif (tr) {\n\t\t\tthis.context.dispatch(tr);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/** Dispatches a view-based movement command (uses container + Selection.modify). */\n\tprivate viewMoveCommand(\n\t\tdirection: 'forward' | 'backward',\n\t\tgranularity: 'word' | 'lineboundary' | 'line',\n\t): boolean {\n\t\treturn this.dispatchViewCommand(VIEW_MOVE_FNS, direction, granularity);\n\t}\n\n\t/** Dispatches a view-based move command with visual direction mapping for RTL. */\n\tprivate viewMoveVisual(visual: 'left' | 'right', granularity: 'word' | 'lineboundary'): boolean {\n\t\tif (!this.context) return false;\n\t\tconst dir: 'forward' | 'backward' = this.resolveLogicalHorizontalDirection(\n\t\t\tthis.context.getState(),\n\t\t\tvisual,\n\t\t);\n\t\treturn this.viewMoveCommand(dir, granularity);\n\t}\n\n\t/** Dispatches a view-based extend command. */\n\tprivate viewExtendCommand(\n\t\tdirection: 'forward' | 'backward',\n\t\tgranularity: 'word' | 'lineboundary' | 'line',\n\t): boolean {\n\t\treturn this.dispatchViewCommand(VIEW_EXTEND_FNS, direction, granularity);\n\t}\n\n\tprivate dispatchViewCommand(\n\t\tlookup: ViewCommandLookup,\n\t\tdirection: 'forward' | 'backward',\n\t\tgranularity: 'word' | 'lineboundary' | 'line',\n\t): boolean {\n\t\tif (!this.context) return false;\n\t\tconst fn: ViewCommandFn | undefined = lookup[`${granularity}:${direction}`];\n\t\tif (!fn) return false;\n\t\tconst tr: Transaction | null = fn(this.context.getContainer(), this.context.getState());\n\t\tif (tr) {\n\t\t\tthis.context.dispatch(tr);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/** Dispatches a view-based extend command with visual direction mapping for RTL. */\n\tprivate viewExtendVisual(\n\t\tvisual: 'left' | 'right',\n\t\tgranularity: 'word' | 'lineboundary',\n\t): boolean {\n\t\tif (!this.context) return false;\n\t\tconst dir: 'forward' | 'backward' = this.resolveLogicalHorizontalDirection(\n\t\t\tthis.context.getState(),\n\t\t\tvisual,\n\t\t);\n\t\treturn this.viewExtendCommand(dir, granularity);\n\t}\n\n\t/**\n\t * Resolves logical movement direction from visual left/right intent.\n\t * In RTL blocks, visual directions are mirrored in offset space.\n\t */\n\tprivate resolveLogicalHorizontalDirection(\n\t\tstate: EditorState,\n\t\tvisual: 'left' | 'right',\n\t): 'forward' | 'backward' {\n\t\tconst sel = state.selection;\n\t\tif (!isTextSelection(sel)) {\n\t\t\treturn visual === 'left' ? 'backward' : 'forward';\n\t\t}\n\t\tconst container: HTMLElement | undefined = this.context?.getContainer();\n\t\tif (!container) return visual === 'left' ? 'backward' : 'forward';\n\t\tconst blockEl: Element | null = container.querySelector(\n\t\t\t`[data-block-id=\"${sel.head.blockId}\"]`,\n\t\t);\n\t\tconst isRtl: boolean = blockEl instanceof HTMLElement && getTextDirection(blockEl) === 'rtl';\n\t\tif (!isRtl) return visual === 'left' ? 'backward' : 'forward';\n\t\treturn visual === 'left' ? 'forward' : 'backward';\n\t}\n}\n"],"mappings":"+hBAgBA,SAAgB,EAAiB,GAChC,MAAM,EAAM,EAAM,UAClB,IAAK,EAAgB,GAAM,OAAO,KAElC,MAAM,EAAmB,EAAY,GAAO,EAAI,OAAO,QAAU,EAAI,KAAK,QAG1E,OAAe,KAFQ,EAAY,GAAO,EAAI,OAAO,OAAS,EAAI,KAAK,QAE9C,KAClB,EAAO,EAAO,EAAS,GAI/B,SAAgB,EAAe,GAC9B,MAAM,EAAM,EAAM,UAClB,IAAK,EAAgB,GAAM,OAAO,KAElC,MAAM,EAAmB,EAAY,GAAO,EAAI,OAAO,QAAU,EAAI,KAAK,QACpE,EAAQ,EAAM,SAAS,GAC7B,IAAK,EAAO,OAAO,KAEnB,MAAM,EAAmB,EAAe,GAGxC,OAFuB,EAAY,GAAO,EAAI,OAAO,OAAS,EAAI,KAAK,UAExD,EAAiB,KACzB,EAAO,EAAO,EAAS,GCR/B,SAAS,EAAY,GACpB,MAAM,EAAM,EAAM,UAClB,OAAK,EAAgB,GACd,CAAE,QAAS,EAAI,KAAK,QAAS,OAAQ,EAAI,KAAK,QADnB,KAKnC,SAAS,EACR,EACA,EACA,GAEA,MAAM,EAAiC,EAAM,gBACvC,EAAc,EAAW,QAAQ,GACvC,GAAI,EAAM,EAAG,OAAO,KACpB,MAAM,EAAkC,YAAd,EAA0B,EAAM,EAAI,EAAM,EACpE,OAAI,EAAY,GAAK,GAAa,EAAW,OAAe,KACrD,EAAW,IAAc,KAQjC,SAAgB,EAAqB,GACpC,MAAM,EAAM,EAAM,UAClB,IAAK,EAAgB,GAAM,OAAO,KAGlC,IAAK,EAAY,GAChB,OAAO,EAAO,EAAO,EAAI,KAAK,QAAS,EAAI,KAAK,QAGjD,MAAM,EAAmB,EAAI,OAAO,QAC9B,EAAQ,EAAM,SAAS,GAC7B,IAAK,EAAO,OAAO,KAEnB,MAAM,EAAiB,EAAI,OAAO,OAGlC,GAAI,EAFqB,EAAe,GAKvC,MAAsB,WADN,EAAmB,EAAO,IAC7B,KACL,EAAO,EAAO,EAAS,EAAS,GAMjC,EAAO,EAAO,EAAS,GADT,EAFA,EAAa,GACP,EAAwB,EAAO,KACC,IAK5D,MAAM,EAAyB,EAAgB,EAAO,EAAS,WAC/D,OAAK,GACA,EAAsB,EAAO,EAAS,GAEvC,EAAY,EAAO,GAAgB,EAAU,EAAO,GAEjD,EAAO,EAAO,EAAQ,GALT,KASrB,SAAgB,EAAsB,GACrC,MAAM,EAAM,EAAM,UAClB,IAAK,EAAgB,GAAM,OAAO,KAGlC,IAAK,EAAY,GAChB,OAAO,EAAO,EAAO,EAAI,KAAK,QAAS,EAAI,KAAK,QAGjD,MAAM,EAAmB,EAAI,OAAO,QAC9B,EAAQ,EAAM,SAAS,GAC7B,IAAK,EAAO,OAAO,KAEnB,MAAM,EAAiB,EAAI,OAAO,OAElC,GAAI,EAAS,EAGZ,MAAsB,WADN,EAAmB,EAAO,EAAS,IACtC,KACL,EAAO,EAAO,EAAS,EAAS,GAMjC,EAAO,EAAO,EAAS,GADT,EAFA,EAAa,GACP,EAAwB,EAAO,KACC,IAK5D,MAAM,EAAyB,EAAgB,EAAO,EAAS,YAC/D,IAAK,EAAQ,OAAO,KACpB,IAAK,EAAsB,EAAO,EAAS,GAAS,OAAO,KAE3D,GAAI,EAAY,EAAO,GAAS,OAAO,EAAU,EAAO,GAExD,MAAM,EAAY,EAAM,SAAS,GACjC,OAAK,EACE,EAAO,EAAO,EAAQ,EAAe,IADrB,KASxB,SAAgB,EAAoB,GACnC,MAAM,EAAM,EAAM,UAClB,IAAK,EAAgB,GAAM,OAAO,KAGlC,MAAM,EADiC,EAAM,gBACG,GAChD,OAAK,EAED,EAAY,EAAO,GAAiB,EAAU,EAAO,GAElD,EAAO,EAAO,EAAS,GAJT,KAQtB,SAAgB,EAAkB,GACjC,MAAM,EAAM,EAAM,UAClB,IAAK,EAAgB,GAAM,OAAO,KAElC,MAAM,EAAiC,EAAM,gBACvC,EAA8B,EAAW,EAAW,OAAS,GACnE,IAAK,EAAQ,OAAO,KAEpB,GAAI,EAAY,EAAO,GAAS,OAAO,EAAU,EAAO,GAExD,MAAM,EAAY,EAAM,SAAS,GACjC,OAAK,EACE,EAAO,EAAO,EAAQ,EAAe,IADrB,KASxB,SAAgB,EAAuB,GACtC,MAAM,EAAO,EAAY,GACzB,IAAK,EAAM,OAAO,KAElB,MAAM,EAAM,EAAM,UAClB,IAAK,EAAgB,GAAM,OAAO,KAElC,MAAM,EAAQ,EAAM,SAAS,EAAK,SAClC,IAAK,EAAO,OAAO,KAEnB,MAAM,EAAmB,EAAe,GAExC,GAAI,EAAK,OAAS,EAAU,CAE3B,MAAM,EACa,WAFH,EAAmB,EAAO,EAAK,SAErC,KACN,EACA,EAAiB,EAAa,GAAQ,EAAwB,EAAO,EAAK,UAAY,EAC1F,OAAO,EAAS,EAAO,EAAI,OAAO,QAAS,EAAI,OAAO,OAAQ,EAAK,QAAS,EAAK,OAAS,GAI3F,MAAM,EAAyB,EAAgB,EAAO,EAAK,QAAS,WACpE,OAAK,GACA,EAAsB,EAAO,EAAK,QAAS,GAEzC,EAAS,EAAO,EAAI,OAAO,QAAS,EAAI,OAAO,OAAQ,EAAQ,GAHlD,KAOrB,SAAgB,EAAwB,GACvC,MAAM,EAAO,EAAY,GACzB,IAAK,EAAM,OAAO,KAElB,MAAM,EAAM,EAAM,UAClB,IAAK,EAAgB,GAAM,OAAO,KAElC,GAAI,EAAK,OAAS,EAAG,CACpB,MAAM,EAAQ,EAAM,SAAS,EAAK,SAClC,IAAK,EAAO,OAAO,KAEnB,MAAM,EACa,WAFH,EAAmB,EAAO,EAAK,OAAS,IAE9C,KACN,EACA,EAAiB,EAAa,GAAQ,EAAwB,EAAO,EAAK,UAAY,EAC1F,OAAO,EAAS,EAAO,EAAI,OAAO,QAAS,EAAI,OAAO,OAAQ,EAAK,QAAS,EAAK,OAAS,GAI3F,MAAM,EAAyB,EAAgB,EAAO,EAAK,QAAS,YACpE,IAAK,EAAQ,OAAO,KACpB,IAAK,EAAsB,EAAO,EAAK,QAAS,GAAS,OAAO,KAEhE,MAAM,EAAY,EAAM,SAAS,GACjC,OAAK,EAEE,EAAS,EAAO,EAAI,OAAO,QAAS,EAAI,OAAO,OAAQ,EAAQ,EAAe,IAF9D,KAMxB,SAAgB,EAAmB,GAClC,MAAM,EAAO,EAAY,GACzB,IAAK,EAAM,OAAO,KAElB,MAAM,EAAM,EAAM,UAClB,OAAK,EAAgB,GAED,IAAhB,EAAK,OAAqB,KACvB,EAAS,EAAO,EAAI,OAAO,QAAS,EAAI,OAAO,OAAQ,EAAK,QAAS,GAH1C,KAOnC,SAAgB,EAAiB,GAChC,MAAM,EAAO,EAAY,GACzB,IAAK,EAAM,OAAO,KAElB,MAAM,EAAM,EAAM,UAClB,IAAK,EAAgB,GAAM,OAAO,KAElC,MAAM,EAAQ,EAAM,SAAS,EAAK,SAClC,IAAK,EAAO,OAAO,KAEnB,MAAM,EAAmB,EAAe,GACxC,OAAI,EAAK,SAAW,EAAiB,KAE9B,EAAS,EAAO,EAAI,OAAO,QAAS,EAAI,OAAO,OAAQ,EAAK,QAAS,GAI7E,SAAgB,EAAsB,GACrC,MAAM,EAAM,EAAM,UAClB,IAAK,EAAgB,GAAM,OAAO,KAGlC,MAAM,EADiC,EAAM,gBACG,GAChD,OAAK,EAGD,EAAI,KAAK,UAAY,GAA+B,IAApB,EAAI,KAAK,OAAqB,KAE3D,EAAS,EAAO,EAAI,OAAO,QAAS,EAAI,OAAO,OAAQ,EAAS,GALlD,KAStB,SAAgB,EAAoB,GACnC,MAAM,EAAM,EAAM,UAClB,IAAK,EAAgB,GAAM,OAAO,KAElC,MAAM,EAAiC,EAAM,gBACvC,EAA8B,EAAW,EAAW,OAAS,GACnE,IAAK,EAAQ,OAAO,KAEpB,MAAM,EAAY,EAAM,SAAS,GACjC,IAAK,EAAW,OAAO,KAEvB,MAAM,EAAuB,EAAe,GAG5C,OAAI,EAAI,KAAK,UAAY,GAAU,EAAI,KAAK,SAAW,EAAqB,KAErE,EAAS,EAAO,EAAI,OAAO,QAAS,EAAI,OAAO,OAAQ,EAAQ,GCvRvE,SAAS,EAAkB,EAA+B,EAAW,GACpE,GAAI,2BAA4B,EAAQ,CACvC,MAAM,EAAM,EAAoB,uBAAuB,EAAG,GAC1D,GAAI,EACH,MAAO,CAAE,KAAM,EAAG,WAAY,OAAQ,EAAG,QAI3C,GAAI,wBAAyB,EAAQ,CACpC,MAAM,EAAS,EAAoB,oBAAoB,EAAG,GAC1D,GAAI,EACH,MAAO,CAAE,KAAM,EAAM,eAAgB,OAAQ,EAAM,aAIrD,OAAO,KASR,SAAgB,EACf,EACA,EACA,EACA,GAEA,OACC,EAAkB,EAAM,EAAG,KAC1B,GAAY,IAAS,EAAW,EAAkB,EAAU,EAAG,GAAK,MCRvE,SAAgB,EACf,EACA,EACA,EACA,GAEA,MAAM,EAAM,EAAM,UAElB,IAAK,EAAgB,GAAM,OAAO,EAClC,IAAK,EAAY,GAAM,OAAO,EAE9B,MAAM,EAAQ,EAAM,SAAS,EAAI,OAAO,SACxC,IAAK,EAAO,OAAO,EAEnB,MAAM,EAAiB,EAAI,OAAO,OAC5B,EAAsB,EAAe,GAGrC,EAA0B,EAAU,cACzC,mBAAmB,EAAI,OAAO,aAEzB,EAAiB,aAAmB,aAA6C,QAA9B,EAAiB,GAE1E,GAAkB,SAAd,EAAsB,OAAO,EAAQ,IAAW,EAAyB,IAAX,EAClE,GAAkB,UAAd,EAAuB,OAAO,EAAmB,IAAX,EAAe,IAAW,EAGpE,GAAkB,OAAd,GAAiC,IAAX,EAAc,OAAO,EAC/C,GAAkB,SAAd,GAAwB,IAAW,EAAa,OAAO,EAG3D,MAAM,EAAsC,IAC5C,OAAK,GAAW,EAAO,OA6QxB,SACC,EACA,EACA,EACA,GAGA,MAAM,EAA2C,EAA0B,EAAW,GAGtF,IAAK,EAAe,OAAO,EAE3B,MAAM,EAA2B,GAAe,EAA0B,EAAQ,GAC5E,EAA+B,OAAd,EAAqB,WAAa,UAEzD,IACC,EAAO,OAAO,OAAQ,EAAQ,QAG9B,MAAM,EAA2C,EAA0B,EAAW,GACtF,IAAK,EAAe,OAAO,EAO3B,GAJsC,EAAkB,EAAW,EAAc,aAC5C,EAAkB,EAAW,EAAc,WAGpD,OAAO,EAQnC,GAJC,EAAc,aAAe,EAAc,YAC3C,EAAc,eAAiB,EAAc,cAC7C,EAAc,YAAc,EAAc,WAC1C,EAAc,cAAgB,EAAc,YAC7B,OAAO,EAIvB,GAAI,EAAU,CACb,MAAM,EAA0B,EAA0B,EAAQ,GAClE,GAAI,GAC2B,KAAK,IAAI,EAAQ,IAAM,EAAS,KArW3B,EAsWiB,OAAO,EAK7D,OAAO,UAGP,IACC,EAAO,iBACN,EAAc,WACd,EAAc,aACd,EAAc,UACd,EAAc,mBAER,GAlUF,CAAsB,EAAW,EAAQ,EAAW,GAHrC,OAAd,EAAgC,IAAX,EAAe,IAAW,EAYxD,SAAgB,EACf,EACA,GAEA,MAAM,EAA+B,EAAwB,EAAO,GACpE,IAAK,EAAQ,OAAO,KAEpB,GAAI,EAAO,OAAQ,OAAO,EAAU,EAAO,EAAO,UAGlD,MAAM,EAAc,EAAM,SAAS,EAAO,UAC1C,IAAK,EAAa,OAAO,KAEzB,MAAM,EACS,UAAd,GAAuC,SAAd,EAAuB,EAAI,EAAe,GAEpE,OAAO,EAAO,EAAO,EAAO,SAAU,GAUvC,SAAgB,EACf,EACA,EACA,EACA,GAEA,MAAM,EAA+B,EAAwB,EAAO,GACpE,IAAK,EAAQ,OAAO,KAGpB,GAAI,EAAO,OAAQ,OAAO,EAAU,EAAO,EAAO,UAElD,MAAM,EAAc,EAAM,SAAS,EAAO,UAC1C,IAAK,EAAa,OAAO,KACzB,MAAM,EAAmB,EAAe,GAGxC,GAAmB,OAAf,EAAqB,CACxB,MAAM,EAuKR,SACC,EACA,EACA,EACA,GAEA,MAAM,EAA0B,EAAU,cAAc,mBAAmB,OAC3E,IAAK,EAAS,OAAO,KAErB,MAAM,EAAgB,EAAQ,wBACxB,EAnCP,SAAuB,EAAkB,EAAe,GACvD,KAAM,aAAmB,aACxB,MAAqB,SAAd,EACJ,EAAK,IA5PkB,EA6PvB,EAAK,OA7PkB,EAgQ3B,MAAM,EAA6B,iBAAiB,GAC9C,EAAqB,OAAO,WAAW,EAAM,aAAe,EAC5D,EAAwB,OAAO,WAAW,EAAM,gBAAkB,EAExE,MAAqB,SAAd,EACJ,EAAK,IAAM,EArQa,EAsQxB,EAAK,OAAS,EAtQU,EA4RT,CAAc,EAAS,EAAM,GAGzC,EAAmB,KAAK,IAAI,KAAK,IAAI,EAAY,EAAK,MAAO,EAAK,MAAQ,GAG1E,EAAW,EADmB,EAAU,cACF,EAAU,EAAG,EAAU,eACnE,IAAK,EAAU,OAAO,KAGtB,IAAK,EAAQ,SAAS,EAAS,MAAO,OAAO,KAE7C,MAAM,EAAW,EAAmB,EAAW,EAAS,KAAM,EAAS,QACvE,OAAK,EAGD,EAAS,UAAY,EAAiB,KAEnC,EALe,KA9LJ,CAA0B,EAAW,EAAO,SAAU,EAAW,GAClF,GAAI,EAAU,OAAO,EAAO,EAAO,EAAS,QAAS,EAAS,QAO/D,GAAI,EAAgB,EAAM,YAAc,EAAY,EAAM,WAAY,CACrE,MAAM,EAAuB,EAAM,UAAU,OAAO,OAC9C,EAAwB,KAAK,IAAI,EAAc,GACrD,OAAO,EAAO,EAAO,EAAO,SAAU,GAIvC,MAAM,EAAuC,SAAd,EAAuB,EAAI,EAC1D,OAAO,EAAO,EAAO,EAAO,SAAU,GAUvC,SAAgB,EAAe,EAAoB,GAClD,GAAkB,OAAd,GAAoC,SAAd,EAAsB,OAAO,KAEvD,MAAM,EAAM,EAAM,UAClB,IAAK,EAAgB,GAAM,OAAO,KAClC,IAAK,EAAY,GAAM,OAAO,KAE9B,MAAM,EAAmB,EAAI,OAAO,QAC9B,EAAQ,EAAM,SAAS,GAC7B,IAAK,EAAO,OAAO,KAEnB,MAAM,EAAiB,EAAI,OAAO,OAElC,MAAqB,UAAd,EAKR,SACC,EACA,EACA,EACA,GAEA,MAAM,EAAU,EAAmB,EAAO,GAC1C,OAAK,GAA4B,WAAjB,EAAQ,KACjB,EAAO,EAAO,EAAS,EAAS,GADW,KAX/C,CAAoB,EAAO,EAAS,EAAO,GAe/C,SACC,EACA,EACA,EACA,GAEA,GAAe,IAAX,EAAc,OAAO,KACzB,MAAM,EAAU,EAAmB,EAAO,EAAS,GACnD,OAAK,GAA4B,WAAjB,EAAQ,KACjB,EAAO,EAAO,EAAS,EAAS,GADW,KAtB/C,CAAmB,EAAO,EAAS,EAAO,GAmC9C,SAAgB,EACf,EACA,GAIA,GAAI,EAAO,WAAa,EAAG,CAC1B,MAAM,EAAe,EAAO,WAAW,GAGvC,IAFmC,GAAa,EAAU,SAAS,EAAM,gBAEnD,CACrB,MAAM,EAAqB,EAAM,iBACjC,GAAI,EAAM,OAAS,EAAG,OAAO,EAAM,IAAM,KACzC,MAAM,EAAgB,EAAM,wBAC5B,GAAI,EAAK,OAAS,EAAG,OAAO,GAM9B,GAAI,EAAW,CACd,MAAM,EAAuC,EAA0B,EAAW,GAClF,GAAI,EACH,IACC,MAAM,EAAe,SAAS,cAC9B,EAAM,SAAS,EAAU,WAAY,EAAU,cAC/C,EAAM,OAAO,EAAU,UAAW,EAAU,aAC5C,MAAM,EAAqB,EAAM,iBACjC,OAAI,EAAM,OAAS,EAAU,EAAM,IAAM,KAClC,EAAM,8BACN,EAMV,OAAO,KAWR,SAAS,EACR,EACA,GAEA,MAAM,EAAM,EAAM,UAClB,IAAK,EAAgB,GAAM,OAAO,KAClC,MAAM,EAAiC,UAAd,GAAuC,SAAd,EAClD,OAAO,EAAqB,EAAO,EAAI,OAAO,QAAS,GCjOxD,SAAgB,EACf,EACA,EACA,EACA,GAEA,OAAO,EAAoB,EAAW,EAAO,OAAQ,EAAW,GAOjE,SAAgB,EACf,EACA,EACA,EACA,GAEA,OAAO,EAAoB,EAAW,EAAO,SAAU,EAAW,GAQnE,SAAS,EACR,EACA,EACA,EACA,EACA,GAEA,MAAM,EAAM,EAAM,UAClB,IAAK,EAAgB,GAAM,OAAO,KAElC,MAAM,EAAoB,SAAT,EAAkB,EAAe,EAE5C,EAAsC,IAC5C,IAAK,GAAQ,OACZ,OAAO,EAAS,EAAO,EAAW,GAGnC,MAAM,EAA2C,EAA0B,EAAW,GACtF,IAAK,EAAe,OAAO,EAAS,EAAO,EAAW,GAEtD,IACC,EAAO,OAAO,EAAM,EAAW,GAE/B,MAAM,EAAS,EAAqB,GACpC,IAAK,EAAQ,OAAO,KAGpB,MAAM,EAA+B,SAAT,EAAkB,EAAI,OAAO,QAAU,EAAI,KAAK,QACtE,EAAuB,SAAT,EAAkB,EAAO,OAAS,EAAO,KACvD,EAAsB,EAAY,QAExC,GAAI,IAAe,IAAe,EAAsB,EAAO,EAAY,GAC1E,OAAO,KAGR,IAAI,EAAoB,EAAY,OAGpC,MAAM,EAAQ,EAAM,SAAS,GAQ7B,OAPI,GAEmB,WADN,EAAmB,EAAO,IAC7B,MAAmC,YAAd,IACjC,EAAY,KAAK,IAAI,EAAY,EAAG,EAAe,KAIxC,SAAT,EACC,EAAY,EAAO,GAAoB,EAAU,EAAO,GACrD,EAAO,EAAO,EAAY,GAG3B,EAAS,EAAO,EAAI,OAAO,QAAS,EAAI,OAAO,OAAQ,EAAY,WAE1E,IACC,EAAO,iBACN,EAAc,WACd,EAAc,aACd,EAAc,UACd,EAAc,mBAER,GAUV,SAAS,EACR,EACA,EACA,GAEA,MAAoB,SAAhB,EAiDL,SAA0B,EAAoB,GAC7C,MAAM,EAAM,EAAM,UAClB,IAAK,EAAgB,GAAM,OAAO,KAElC,MAAM,EAAmB,EAAY,GAAO,EAAI,OAAO,QAAU,EAAI,KAAK,QACpE,EAAiB,EAAY,GAAO,EAAI,OAAO,OAAS,EAAI,KAAK,OACjE,EAAQ,EAAM,SAAS,GAC7B,IAAK,EAAO,OAAO,KAEnB,MAAM,EACS,YAAd,EACG,EAAwB,EAAO,GAC/B,EAAyB,EAAO,GAEpC,OAAI,IAAc,EAYnB,SACC,EACA,EACA,GAEA,MAAM,EAAM,EAAqB,EAAO,EAAuB,YAAd,GACjD,IAAK,EAAK,OAAO,KAEjB,GAAI,EAAI,OAAQ,OAAO,EAAU,EAAO,EAAI,UAE5C,MAAM,EAAc,EAAM,SAAS,EAAI,UACvC,IAAK,EAAa,OAAO,KAEzB,MAAM,EAAqC,YAAd,EAA0B,EAAI,EAAe,GAC1E,OAAO,EAAO,EAAO,EAAI,SAAU,GAxB3B,CAAmB,EAAO,EAAS,GAGpC,EAAO,EAAO,EAAS,GAnEtB,CAAiB,EAAO,GAEZ,iBAAhB,EACkB,YAAd,EAA0B,EAAe,GAAS,EAAiB,GAIpE,EAAqB,EADG,YAAd,EAA0B,OAAS,MAIrD,SAAS,EACR,EACA,EACA,GAEA,MAAM,EAAM,EAAM,UAClB,IAAK,EAAgB,GAAM,OAAO,KAElC,MAAM,EAAO,EAAI,KACX,EAAQ,EAAM,SAAS,EAAK,SAClC,IAAK,EAAO,OAAO,KAEnB,IAAI,EAAoB,EAAK,OAE7B,GAAoB,SAAhB,EACH,EACe,YAAd,EACG,EAAwB,EAAO,EAAK,QACpC,EAAyB,EAAO,EAAK,gBACf,iBAAhB,EAEJ,CAEN,MAAM,EAAM,EAAqB,EAAO,EAAK,QAAuB,YAAd,GACtD,IAAK,EAAK,OAAO,KAEjB,GAAI,EAAI,OAAQ,OAAO,KAEvB,MAAM,EAAc,EAAM,SAAS,EAAI,UACvC,IAAK,EAAa,OAAO,KAEzB,MAAM,EAAqC,YAAd,EAA0B,EAAI,EAAe,GAC1E,OAAO,EAAS,EAAO,EAAI,OAAO,QAAS,EAAI,OAAO,OAAQ,EAAI,SAAU,GAZ5E,EAA0B,YAAd,EAA0B,EAAe,GAAS,EAe/D,OAAO,EAAS,EAAO,EAAI,OAAO,QAAS,EAAI,OAAO,OAAQ,EAAK,QAAS,GAmD7E,SAAgB,EAAgB,EAAwB,GACvD,OAAO,EAAS,EAAW,EAAO,UAAW,QAI9C,SAAgB,EAAiB,EAAwB,GACxD,OAAO,EAAS,EAAW,EAAO,WAAY,QAI/C,SAAgB,GAAgB,EAAwB,GACvD,OAAO,EAAS,EAAW,EAAO,WAAY,gBAI/C,SAAgB,GAAc,EAAwB,GACrD,OAAO,EAAS,EAAW,EAAO,UAAW,gBAI9C,SAAgB,GAAW,EAAwB,GAClD,OAAO,EAAS,EAAW,EAAO,WAAY,QAI/C,SAAgB,GAAa,EAAwB,GACpD,OAAO,EAAS,EAAW,EAAO,UAAW,QAI9C,SAAgB,GAAkB,EAAwB,GACzD,OAAO,EAAW,EAAW,EAAO,UAAW,QAIhD,SAAgB,GAAmB,EAAwB,GAC1D,OAAO,EAAW,EAAW,EAAO,WAAY,QAIjD,SAAgB,GAAkB,EAAwB,GACzD,OAAO,EAAW,EAAW,EAAO,WAAY,gBAIjD,SAAgB,GAAgB,EAAwB,GACvD,OAAO,EAAW,EAAW,EAAO,UAAW,gBAIhD,SAAgB,GAAa,EAAwB,GACpD,OAAO,EAAW,EAAW,EAAO,WAAY,QAIjD,SAAgB,GAAe,EAAwB,GACtD,OAAO,EAAW,EAAW,EAAO,UAAW,QC3QhD,IAAa,GAAoD,CAChE,UAAW,YACX,SAAU,YACV,SAAU,YACV,SAAU,YACV,SAAU,YACV,SAAU,YACV,SAAU,YACV,UAAW,aACX,WAAY,cACZ,SAAU,YACV,eAAgB,kBAChB,MAAO,QACP,MAAO,SAKF,GAA4E,CACjF,UAAW,YACX,WAAY,YACZ,WAAY,aACZ,UAAW,WACX,gBAAiB,iBACjB,MAAO,QACP,MAAO,SAmBF,kBAAwD,OAAA,OAAA,CAAA,kBAAA,IAAA,OAAA,qBAAA,kBAAA,IAAA,OAAA,qBAAA,kBAAA,IAAA,OAAA,qBAAA,kBAAA,IAAA,OAAA,qBAAA,kBAAA,IAAA,OAAA,qBAAA,kBAAA,IAAA,OAAA,qBAAA,kBAAA,IAAA,OAAA,qBAAA,kBAAA,IAAA,OAAA,uBAI9D,eAAsB,GAA0B,GAC/C,OAAO,EAAiB,GAAe,EAAM,ICzB9C,IAAM,GAAmC,CACxC,eAAgB,EAChB,gBAAiB,EACjB,uBAAwB,GACxB,wBAAyB,GACzB,eAAgB,GAChB,gBAAiB,IAGZ,GAAqC,CAC1C,eAAgB,GAChB,gBAAiB,GACjB,uBAAwB,GACxB,wBAAyB,GACzB,eAAgB,GAChB,gBAAiB,IAML,GAAb,MACC,GAAc,mBACd,KAAgB,mBAChB,SAAoB,EAEpB,QAAwC,KACxC,qBAA+C,KAC/C,cAA8D,KAC9D,SAAoD,KACpD,OAAwC,GAExC,UAAM,CAAK,GACV,KAAK,aAAe,EACnB,OACA,EACA,GACA,IAGD,KAAK,QAAU,EACf,KAAK,SAAY,GAAiB,EAAQ,SAAS,GACnD,MAAM,EAAe,IAEf,EAAwC,CAM7C,mBAAA,IAA0B,KAAK,sBAAsB,SACrD,kBAAA,IAAyB,KAAK,sBAAsB,QAGpD,gBAAA,IAAuB,KAAK,kBAAkB,WAAY,QAC1D,kBAAA,IAAyB,KAAK,kBAAkB,UAAW,WAGvD,EACD,CACA,iBAAA,IAAwB,KAAK,eAAe,QAAS,QACrD,gBAAA,IAAuB,KAAK,eAAe,OAAQ,QACnD,uBAAA,IAA8B,KAAK,iBAAiB,QAAS,QAC7D,sBAAA,IAA6B,KAAK,iBAAiB,OAAQ,SAE3D,CACA,iBAAA,IAAwB,KAAK,eAAe,QAAS,QACrD,gBAAA,IAAuB,KAAK,eAAe,OAAQ,QACnD,uBAAA,IAA8B,KAAK,iBAAiB,QAAS,QAC7D,sBAAA,IAA6B,KAAK,iBAAiB,OAAQ,YAI1D,EACD,CACA,gBAAA,IAAuB,KAAK,eAAe,OAAQ,gBACnD,iBAAA,IAAwB,KAAK,eAAe,QAAS,gBACrD,sBAAA,IAA6B,KAAK,iBAAiB,OAAQ,gBAC3D,uBAAA,IAA8B,KAAK,iBAAiB,QAAS,iBAE7D,CACA,KAAA,IAAY,KAAK,gBAAgB,WAAY,gBAC7C,IAAA,IAAW,KAAK,gBAAgB,UAAW,gBAC3C,aAAA,IAAoB,KAAK,kBAAkB,WAAY,gBACvD,YAAA,IAAmB,KAAK,kBAAkB,UAAW,oBAIpD,EACD,CACA,cAAA,IAAqB,KAAK,aAAa,GACvC,gBAAA,IAAuB,KAAK,aAAa,GACzC,oBAAA,IAA2B,KAAK,aAAa,GAC7C,sBAAA,IAA6B,KAAK,aAAa,IAE/C,CACA,WAAA,IAAkB,KAAK,aAAa,GACpC,UAAA,IAAiB,KAAK,aAAa,GACnC,iBAAA,IAAwB,KAAK,aAAa,GAC1C,gBAAA,IAAuB,KAAK,aAAa,KAI7C,EAAQ,eAAe,EAAQ,CAAE,SAAU,eAI5C,aAAA,CAAc,EAAwB,EAAuB,GAC5D,MAAM,EAAS,EAAS,UAGxB,IAAK,EAAY,KAAY,EAAgB,GAM5C,OAL2B,OAAvB,KAAK,gBACR,aAAa,KAAK,eAClB,KAAK,cAAgB,WAEtB,KAAK,qBAAuB,MAI7B,MAAM,EAAsB,EAAO,OAAO,QACtC,IAAe,KAAK,uBAGU,OAA9B,KAAK,sBAKT,KAAK,qBAAuB,EAGD,OAAvB,KAAK,eAAwB,aAAa,KAAK,eACnD,KAAK,cAAgB,WAAA,KAGpB,GAFA,KAAK,cAAgB,KAEjB,KAAK,SAAS,kBAAmB,OACrC,MAAM,EAAQ,EAAS,SAAS,GAChC,IAAK,EAAO,OACZ,MAAM,EDtIT,SACC,EACA,EACA,GAEA,GAAiB,YAAb,GAA0B,GAAO,MAAO,CAC3C,MAAM,EAAM,UAAU,EAAM,QAC5B,GAAI,KAAO,EAAQ,OAAO,EAAO,GAElC,MAAM,EAA+C,GAAmB,GACxE,OAAO,EAAM,EAAO,GAAO,EC4HH,CACrB,KAAK,OACL,EAAM,KACN,EAAM,OAEP,KAAK,WAAW,IA7HU,MA0G1B,KAAK,qBAAuB,GAuB9B,OAAA,GAC4B,OAAvB,KAAK,eAAwB,aAAa,KAAK,eACnD,KAAK,cAAgB,KACrB,KAAK,SAAW,KAChB,KAAK,QAAU,KAIhB,YAAA,CAAqB,GACpB,IAAK,KAAK,QAAS,OAAO,EAC1B,MAAM,EAAyB,EAAG,KAAK,QAAQ,YAC/C,QAAI,IACH,KAAK,QAAQ,SAAS,IACf,GAMT,qBAAA,CAA8B,GAC7B,IAAK,KAAK,QAAS,OAAO,EAC1B,MAAM,EAAqB,KAAK,QAAQ,WAElC,EACG,YAF2B,KAAK,kCAAkC,EAAO,GAE7D,EAAuB,GAAS,EAAwB,GAC7E,QAAI,IACH,KAAK,QAAQ,SAAS,IACf,GAMT,eAAA,CACC,EACA,GAEA,OAAO,KAAK,oBAAoB,GAAe,EAAW,GAI3D,cAAA,CAAuB,EAA0B,GAChD,IAAK,KAAK,QAAS,OAAO,EAC1B,MAAM,EAA8B,KAAK,kCACxC,KAAK,QAAQ,WACb,GAED,OAAO,KAAK,gBAAgB,EAAK,GAIlC,iBAAA,CACC,EACA,GAEA,OAAO,KAAK,oBAAoB,GAAiB,EAAW,GAG7D,mBAAA,CACC,EACA,EACA,GAEA,IAAK,KAAK,QAAS,OAAO,EAC1B,MAAM,EAAgC,EAAO,GAAG,KAAe,KAC/D,IAAK,EAAI,OAAO,EAChB,MAAM,EAAyB,EAAG,KAAK,QAAQ,eAAgB,KAAK,QAAQ,YAC5E,QAAI,IACH,KAAK,QAAQ,SAAS,IACf,GAMT,gBAAA,CACC,EACA,GAEA,IAAK,KAAK,QAAS,OAAO,EAC1B,MAAM,EAA8B,KAAK,kCACxC,KAAK,QAAQ,WACb,GAED,OAAO,KAAK,kBAAkB,EAAK,GAOpC,iCAAA,CACC,EACA,GAEA,MAAM,EAAM,EAAM,UAClB,IAAK,EAAgB,GACpB,MAAkB,SAAX,EAAoB,WAAa,UAEzC,MAAM,EAAqC,KAAK,SAAS,eACzD,IAAK,EAAW,MAAkB,SAAX,EAAoB,WAAa,UACxD,MAAM,EAA0B,EAAU,cACzC,mBAAmB,EAAI,KAAK,aAG7B,OADuB,aAAmB,aAA6C,QAA9B,EAAiB,GAExD,SAAX,EAAoB,UAAY,WADT,SAAX,EAAoB,WAAa"}
@@ -1,2 +0,0 @@
1
- import{S as t,T as e,a as n,f as o,h as r,l as c,v as s}from"./Document-znhIcvM9.mjs";import{a as i,d as a,i as l,o as d,s as u,t as g,u as p}from"./Selection-aeiSsvhe.mjs";import{t as f}from"./Commands-ixGhPiRG.mjs";import{a as h}from"./TypeBrands-BZDKMjR-.mjs";import{n as k}from"./DomUtils-RKbAVBQz.mjs";import{r as b}from"./HTMLUtils-brwcaufP.mjs";import{r as m}from"./NodeResolver-BplmzA7c.mjs";import{i as v,r as x,t as C}from"./Decoration-DZK7hrL1.mjs";import{n as y,o as S,r as w,s as _,t as I}from"./CommandHelpers-NV80Ff1G.mjs";import{s as B}from"./StyleRuntime-Bwde5icB.mjs";import{n as A}from"./TypedKeys-E3jOGByL.mjs";import{t as T}from"./SyntaxTokenTypes-C9dGwufi.mjs";import{a as L,s as M}from"./PluginHelpers-C3aCCGfX.mjs";import{t as O}from"./ShortcutFormatting-DZK70CN9.mjs";import{t as P}from"./PopupManager-DsT1uRWi.mjs";import{c as N,l as j}from"./XmlDetector-DxBGXqua.mjs";import{a as E,r as z,s as $,t as q}from"./XmlSupport-B_F65M8G.mjs";import{n as D}from"./PopupKeyboardPatterns-ZdAQB78m.mjs";var H=`\n/* Code Block — uses theme custom properties */\n.notectl-code-block {\n\tposition: relative;\n\tmargin: 8px 0;\n\tborder-radius: 6px;\n\tbackground: var(--notectl-code-block-bg);\n\tcolor: var(--notectl-code-block-color);\n\tfont-family: 'SF Mono', 'Fira Code', 'Cascadia Code', Menlo, Consolas, monospace;\n\tfont-size: 14px;\n\tline-height: 1.5;\n\toverflow: hidden;\n}\n\n.notectl-code-block__header {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 6px 12px;\n\tbackground: var(--notectl-code-block-header-bg);\n\tborder-bottom: 1px solid var(--notectl-code-block-header-border);\n\tfont-size: 12px;\n\tcolor: var(--notectl-code-block-header-color);\n\tuser-select: none;\n}\n\n.notectl-code-block__language-btn {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 4px;\n\tborder: none;\n\tborder-radius: 4px;\n\tbackground: transparent;\n\tcolor: var(--notectl-code-block-header-color);\n\tcursor: pointer;\n\tpadding: 2px 6px;\n\tfont-size: inherit;\n\tfont-family: inherit;\n\ttransition: background 0.15s;\n}\n\n.notectl-code-block__language-btn:hover {\n\tbackground: rgba(128, 128, 128, 0.15);\n}\n\n.notectl-code-block__language-btn:focus-visible {\n\toutline: 2px solid var(--notectl-primary);\n\toutline-offset: 1px;\n}\n\n.notectl-code-block__language {\n\tfont-weight: 500;\n\tletter-spacing: 0.02em;\n}\n\n.notectl-code-block__chevron {\n\tdisplay: inline-flex;\n\talign-items: center;\n\topacity: 0.6;\n}\n\n.notectl-code-block__actions {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 2px;\n}\n\n.notectl-code-block__copy,\n.notectl-code-block__delete {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 24px;\n\theight: 24px;\n\tborder: none;\n\tborder-radius: 4px;\n\tbackground: transparent;\n\tcolor: var(--notectl-code-block-header-color);\n\tcursor: pointer;\n\tpadding: 0;\n\ttransition: background 0.15s, color 0.15s;\n}\n\n.notectl-code-block__copy:hover,\n.notectl-code-block__delete:hover {\n\tbackground: rgba(128, 128, 128, 0.15);\n\tcolor: var(--notectl-code-block-color);\n}\n\n.notectl-code-block__copy svg,\n.notectl-code-block__delete svg {\n\tfill: currentColor;\n}\n\n.notectl-code-block__content {\n\tdisplay: block;\n\tpadding: 12px 16px;\n\twhite-space: pre-wrap;\n\tword-wrap: break-word;\n\ttab-size: 4;\n\t-moz-tab-size: 4;\n\toutline: none;\n\tmin-height: 1.5em;\n}\n\n.notectl-code-block--selected {\n\toutline: 2px solid var(--notectl-primary);\n\toutline-offset: 2px;\n}\n\n.notectl-code-block__esc-hint {\n\tdisplay: none;\n\tposition: absolute;\n\tbottom: 4px;\n\tinset-inline-end: 8px;\n\tfont-size: 11px;\n\tcolor: var(--notectl-code-block-header-color);\n\topacity: 0.5;\n\tpointer-events: none;\n\tuser-select: none;\n\tfont-family: system-ui, sans-serif;\n}\n\n.notectl-code-block--focused .notectl-code-block__esc-hint {\n\tdisplay: block;\n}\n\n/* Language picker popup */\n.notectl-language-picker {\n\tmin-width: 120px;\n\tmax-height: 200px;\n\toverflow-y: auto;\n\tpadding: 4px;\n\tbackground: var(--notectl-surface-raised, #fff);\n\tborder: 1px solid var(--notectl-border, #e0e0e0);\n\tborder-radius: 6px;\n\tbox-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);\n}\n\n.notectl-language-picker__option {\n\tpadding: 6px 10px;\n\tborder-radius: 4px;\n\tcursor: pointer;\n\tfont-size: 13px;\n\tcolor: var(--notectl-fg, #333);\n\twhite-space: nowrap;\n}\n\n.notectl-language-picker__option:hover {\n\tbackground: rgba(128, 128, 128, 0.1);\n}\n\n.notectl-language-picker__option:focus {\n\toutline: none;\n\tbackground: rgba(128, 128, 128, 0.15);\n}\n\n.notectl-language-picker__option[aria-selected="true"] {\n\tfont-weight: 600;\n\tcolor: var(--notectl-primary, #2563eb);\n}\n\n/* Syntax highlighting token classes — generated from canonical token type list */\n${T.map(t=>`.notectl-token--${t} {\n\tcolor: var(--notectl-code-token-${t});\n\tfont-style: var(--notectl-code-token-${t}-font-style, inherit);\n\tfont-weight: var(--notectl-code-token-${t}-font-weight, inherit);\n}`).join("\n")}\n`,R=[{open:"(",close:")",kind:"bracket"},{open:"[",close:"]",kind:"bracket"},{open:"{",close:"}",kind:"bracket"},{open:'"',close:'"',kind:"quote"},{open:"'",close:"'",kind:"quote"},{open:"`",close:"`",kind:"quote"}],V=new Map(R.map(t=>[t.open,t])),F=new Map(R.filter(t=>"bracket"===t.kind).map(t=>[t.close,t]));var K=new Set(["{","[","("]),W={"}":"{","]":"[",")":"("};function U(t,e){const n=t.lastIndexOf("\n",e-1)+1,o=t.indexOf("\n",e);return{start:n,end:-1===o?t.length:o}}function X(t,e){const{start:n,end:o}=U(t,e);let r=n;for(;r<o;){const e=t[r];if(" "!==e&&"\t"!==e)break;r++}return t.slice(n,r)}function Q(t,e){return t?" ".repeat(e):"\t"}function Z(t,e,n){if(0===t.length)return{removed:"",rest:t};if(!e&&"\t"===t[0])return{removed:"\t",rest:t.slice(1)};let o=0;for(;o<n&&" "===t[o];)o++;return{removed:t.slice(0,o),rest:t.slice(o)}}var G=class{buckets=/* @__PURE__ */new Map;push(t,e){const n=this.buckets.get(t.blockId)??[];n.push({pos:t,char:e}),this.buckets.set(t.blockId,n)}take(t,e){const n=this.buckets.get(t);if(n)for(let o=n.length-1;o>=0;o--){const r=n[o];if(r&&r.pos.offset===e)return n.splice(o,1),0===n.length&&this.buckets.delete(t),r}}peek(t,e){const n=this.buckets.get(t);if(n)for(let o=n.length-1;o>=0;o--){const t=n[o];if(t&&t.pos.offset===e)return t}}clearBlock(t){this.buckets.delete(t)}clear(){this.buckets.clear()}sizeForBlock(t){return this.buckets.get(t)?.length??0}get size(){let t=0;for(const e of this.buckets.values())t+=e.length;return t}migrate(t){if(t.isEmpty)return;const e=/* @__PURE__ */new Map;for(const n of this.buckets.values())for(const o of n){const n=t.mapResult(o.pos,1);if(n.deleted)continue;const r={pos:n.pos,char:o.char},c=n.pos.blockId,s=e.get(c)??[];s.push(r),e.set(c,s)}this.buckets.clear();for(const[n,o]of e)this.buckets.set(n,o)}static makePos(t,e){return l(t,e)}},J=class{resolvedIndent;resolvedPairing;getTokenAt;getCompositionState;pairs=new G;pendingPairOps=[];constructor(t){this.resolvedIndent=t.resolvedIndent,this.resolvedPairing=t.resolvedPairing,this.getTokenAt=t.getTokenAt,this.getCompositionState=t.getCompositionState}get pairStack(){return this.pairs}clear(){this.pairs.clear(),this.pendingPairOps.length=0}syncOnStateChange(t,e){this.pairs.size>0&&!e.mapping.isEmpty&&this.pairs.migrate(e.mapping);for(const n of this.pendingPairOps)"push"===n.kind?this.pairs.push(l(n.blockId,n.offset),n.char):this.pairs.take(n.blockId,n.offset);this.pendingPairOps.length=0;for(const n of e.steps){if("setBlockType"!==n.type)continue;const e=t.getBlock(n.blockId);e&&"code_block"===e.type||this.pairs.clearBlock(n.blockId)}}handleTextInput=(t,e)=>{this.pendingPairOps.length=0;const n=this.getCompositionState();if(!n)return null;if(n.isComposing)return null;if(!p(e.selection))return null;if(1!==t.length)return null;const o=e.selection,c=e.getBlock(o.anchor.blockId);if(!c||"code_block"!==c.type)return null;const s=this.tryDedentOnCloseBracket(e,c,t);if(s)return s;const i=function(t){const{state:e,char:n,config:o}=t;if(!p(e.selection))return{kind:"passthrough"};const c=e.selection,s=V.get(n);if(s&&!d(c)&&function(t,e){switch(e.surround){case"never":return!1;case"brackets":return"bracket"===t.kind;case"quotes":return"quote"===t.kind;case"languageDefined":return!0}}(s,o)){const e=function(t,e,n){const{state:o}=n,r=a(e,o.getBlockOrder());return r.from.blockId!==r.to.blockId||r.from.blockId!==n.blockId?null:{kind:"wrap",open:t.open,close:t.close}}(s,c,t);if(e)return e}return d(c)?o.overtype&&function(t,e){if(!function(t){const e=V.get(t);return"quote"===e?.kind?e:F.get(t)}(e))return!1;const n=t.state.selection;if(!p(n))return!1;const o=r(t.block),c=n.anchor.offset;if(o[c]!==e)return!1;const s=t.pairStack.peek(t.blockId,c);return Boolean(s&&s.char===e)}(t,n)?{kind:"overtype"}:s&&function(t,e){const n="quote"===t.kind?e.config.quotes:e.config.brackets;if("never"===n)return!1;const o=e.state.selection;if(!p(o))return!0;const c=r(e.block),s=o.anchor.offset;if("quote"===t.kind&&"'"===t.open&&function(t,e){if(e<=0)return!1;const n=t[e-1];return!!n&&/[A-Za-z0-9_]/.test(n)}(c,s))return!1;if("always"===n)return!0;if("beforeWhitespace"===n)return function(t,e){if(e>=t.length)return!0;const n=t[e];return!n||!!/\s/.test(n)||!!F.has(n)}(c,s);if("quote"===t.kind){const t=e.getTokenAt(e.blockId,s);return!t||"string"!==t.type&&"comment"!==t.type}return!0}(s,t)?{kind:"pair",close:s.close}:{kind:"passthrough"}:{kind:"passthrough"}}({state:e,block:c,blockId:o.anchor.blockId,char:t,config:this.resolvedPairing,pairStack:this.pairs,getTokenAt:this.getTokenAt});switch(i.kind){case"pair":return this.buildAutoPairTransaction(e,o.anchor.blockId,i.close,t);case"overtype":return this.buildOvertypeTransaction(e,o.anchor.blockId);case"wrap":return this.buildWrapTransaction(e,o.anchor.blockId,i.open,i.close);case"passthrough":return null}};tryDedentOnCloseBracket(t,e,n){if("brackets"!==this.resolvedIndent.mode)return null;if("}"!==n&&"]"!==n&&")"!==n)return null;const o=t.selection;if(!p(o)||!d(o))return null;const c=r(e),s=o.anchor.offset;if(!function(t,e){const{start:n}=U(t,e);for(let o=n;o<e;o++){const e=t[o];if(" "!==e&&"\t"!==e)return!1}return!0}(c,s))return null;const{start:i}=U(c,s);if(i===s)return null;const a=o.anchor.blockId,l=this.findTrackedCloseAfter(c,s,n,a);if(null!==l)return t.transaction("input").deleteTextAt(a,i,l).setSelection(g(a,i+1)).build();const u=Z(c.slice(i,s),this.resolvedIndent.useSpaces,this.resolvedIndent.spaceCount);if(0===u.removed.length)return null;const f=s-u.removed.length;return t.transaction("input").deleteTextAt(a,f,s).insertText(a,f,n,[]).setSelection(g(a,f+1)).build()}findTrackedCloseAfter(t,e,n,o){for(let r=e;r<t.length;r++){const e=t[r];if(" "!==e&&"\t"!==e&&"\n"!==e){if(e===n){const t=this.pairs.peek(o,r);if(t&&t.char===n)return r}return null}}return null}buildAutoPairTransaction(t,e,n,o){const r=t.selection;if(!p(r))throw new Error("buildAutoPairTransaction requires a text selection");const c=r.anchor.offset,s=`${o}${n}`,i=t.transaction("input").insertText(e,c,s,[]).setSelection(g(e,c+1)).build();return this.pendingPairOps.push({kind:"push",blockId:e,offset:c+1,char:n}),i}buildOvertypeTransaction(t,e){const n=t.selection;if(!p(n))throw new Error("buildOvertypeTransaction requires a text selection");const o=n.anchor.offset;return this.pendingPairOps.push({kind:"take",blockId:e,offset:o}),t.transaction("input").setSelection(g(e,o+1)).build()}buildWrapTransaction(t,e,n,o){const r=t.selection;if(!p(r))throw new Error("buildWrapTransaction requires a text selection");const c=function(t,e){const n=a(t,e);return{fromOffset:n.from.offset,toOffset:n.to.offset}}(r,t.getBlockOrder()),s=a(r,t.getBlockOrder()).from===r.anchor,i=c.fromOffset+1,l=c.toOffset+1,d=s?i:l,u=s?l:i;return t.transaction("input").insertText(e,c.toOffset,o,[]).insertText(e,c.fromOffset,n,[]).setSelection({anchor:{blockId:e,offset:d},head:{blockId:e,offset:u}}).build()}};function Y(t,e){const n=t.getState();if(!p(n.selection))return!1;const o=n.selection,r=n.getBlock(o.anchor.blockId);return!(!r||"code_block"!==r.type)&&e({state:n,sel:o,block:r,blockId:o.anchor.blockId,offset:o.anchor.offset})}function tt(t,e,n,o){const s={Enter:()=>function(t,e){return Y(t,({state:n,block:o,blockId:s,offset:i})=>{if(!d(n.selection))return!1;const a=r(o);if(a.endsWith("\n")&&i===a.length)return function(t,e,n){const o=t.getState(),r=n.length-1,s=c(),i=o.transaction("input").deleteTextAt(e,r,n.length).splitBlock(e,r,s).setBlockType(s,h("paragraph")).setSelection(g(s,0)).build();return t.dispatch(i),!0}(t,s,a);const l=Q(e.indent.useSpaces,e.indent.spaceCount);if("brackets"===e.indent.mode&&function(t,e){return function(t,e){if(e<=0||e>=t.length)return!1;const n=t[e-1],o=t[e];return!(!n||!o)&&W[o]===n}(t,e)}(a,i)){const e=X(a,i),o=`\n${e}${l}\n${e}`,r=i+1+e.length+l.length,c=n.transaction("input").insertText(s,i,o,[]).setSelection(g(s,r)).build();return t.dispatch(c),!0}const u=`\n${function(t,e,n,o){if("none"===n)return"";const r=X(t,e);return"keep"===n?r:function(t,e){const n=function(t,e){const{start:n}=U(t,e);for(let o=e-1;o>=n;o--){const e=t[o];if(e&&" "!==e&&"\t"!==e)return e}return""}(t,e);return K.has(n)}(t,e)?r+o:r}(a,i,e.indent.mode,l)}`,p=n.transaction("input").insertText(s,i,u,[]).setSelection(g(s,i+u.length)).build();return t.dispatch(p),!0})}(t,o),Backspace:()=>function(t,e){return Y(t,({state:n,block:o,blockId:c,offset:s})=>{if(!d(n.selection))return!1;if(e.pairing.deletePair&&s>0){const i=r(o),a=i[s-1],l=i[s];if(a&&l&&function(t,e){switch(t){case"(":return")"===e;case"[":return"]"===e;case"{":return"}"===e;case'"':case"'":case"`":return e===t;default:return!1}}(a,l)){const o=e.pairStack.peek(c,s);if(o&&o.char===l){const e=n.transaction("input").deleteTextAt(c,s-1,s+1).setSelection(g(c,s-1)).build();return t.dispatch(e),!0}}}if(0!==s)return!1;const i=n.transaction("input").setBlockType(c,h("paragraph")).setSelection(n.selection).build();return t.dispatch(i),!0})}(t,o),Tab:()=>function(t,e){return Y(t,({state:n,sel:o,block:c,blockId:s,offset:l})=>{const p=Q(e.indent.useSpaces,e.indent.spaceCount);if(d(o)){const e=n.transaction("input").insertText(s,l,p,[]).setSelection(g(s,l+p.length)).build();return t.dispatch(e),!0}if(o.anchor.blockId!==s||o.head.blockId!==s)return!1;const f=r(c),h=a(o,n.getBlockOrder()),k=h.from.offset,b=h.to.offset;if(!f.slice(k,b).includes("\n")){const e=n.transaction("input").deleteTextAt(s,k,b).insertText(s,k,p,[]).setSelection(g(s,k+p.length)).build();return t.dispatch(e),!0}const m=function(t,e,n,o){const r=t.lastIndexOf("\n",e-1)+1,c=[];let s=0,i=r;for(;i<n;){c.push({offset:i,text:o}),s++;const e=t.indexOf("\n",i);if(-1===e||e>=n)break;i=e+1}return{inserts:c,totalInserted:s*o.length,lineCount:s,lineStart:r}}(f,k,b,p),v=n.transaction("input");for(let t=m.inserts.length-1;t>=0;t--){const e=m.inserts[t];e&&v.insertText(s,e.offset,e.text,[])}const x=u(o,n.getBlockOrder()),C=m.lineStart,y=b+m.totalInserted,S=x?C:y,w=x?y:C;return v.setSelection(i({blockId:s,offset:S},{blockId:s,offset:w})),t.dispatch(v.build()),m.lineCount>=2&&t.announce(e.locale().indentedNLines(m.lineCount)),!0})}(t,o),"Shift-Tab":()=>function(t,e){return Y(t,({state:n,sel:o,block:c,blockId:s,offset:l})=>{const g=r(c);if(d(o))return et(t,n,s,l,g,e);if(o.anchor.blockId!==s||o.head.blockId!==s)return!1;const p=a(o,n.getBlockOrder()),f=p.from.offset,h=p.to.offset;if(!g.slice(f,h).includes("\n"))return et(t,n,s,l,g,e);const k=function(t,e,n,o,r){const c=t.lastIndexOf("\n",e-1)+1,s=[];let i=0,a=0,l=c;for(;l<n;){a++;const e=Z(t.slice(l),o,r);e.removed.length>0&&(s.push({from:l,to:l+e.removed.length}),i+=e.removed.length);const c=t.indexOf("\n",l);if(-1===c||c>=n)break;l=c+1}return{deletes:s,totalRemoved:i,lineCount:a,lineStart:c}}(g,f,h,e.indent.useSpaces,e.indent.spaceCount);if(0===k.totalRemoved)return!0;const b=n.transaction("input");for(let t=k.deletes.length-1;t>=0;t--){const e=k.deletes[t];e&&b.deleteTextAt(s,e.from,e.to)}const m=u(o,n.getBlockOrder()),v=k.lineStart,x=h-k.totalRemoved,C=m?v:Math.max(v,x),y=m?Math.max(v,x):v;return b.setSelection(i({blockId:s,offset:C},{blockId:s,offset:y})),t.dispatch(b.build()),k.lineCount>=2&&t.announce(e.locale().dedentedNLines(k.lineCount)),!0})}(t,o),Escape:()=>nt(t),ArrowDown:()=>function(t){return Y(t,({state:e,block:n,blockId:o,offset:c})=>!!d(e.selection)&&-1===r(n).indexOf("\n",c)&&(rt(t,e,o),!0))}(t),ArrowUp:()=>function(t){return Y(t,({state:e,block:n,blockId:o,offset:c})=>{if(!d(e.selection))return!1;const s=r(n).indexOf("\n");return!(-1!==s&&c>s)&&ct(t,e,o)})}(t),ArrowRight:()=>function(t){return Y(t,({state:e,block:n,blockId:o,offset:c})=>!!d(e.selection)&&c===r(n).length&&(rt(t,e,o),!0))}(t),ArrowLeft:()=>function(t){return Y(t,({state:e,blockId:n,offset:o})=>!!d(e.selection)&&0===o&&ct(t,e,n))}(t)},{insertAfter:l,toggle:p}=n;l&&(s[l]=()=>function(t){return Y(t,({blockId:e})=>(ot(t,e),!0))}(t)),p&&(s[p]=()=>t.executeCommand("toggleCodeBlock")),t.registerKeymap(s,{priority:"context"})}function et(t,e,n,o,r,c){const{start:s}=U(r,o),i=Z(r.slice(s),c.indent.useSpaces,c.indent.spaceCount);if(0===i.removed.length)return!0;const a=e.transaction("input").deleteTextAt(n,s,s+i.removed.length).setSelection(g(n,Math.max(s,o-i.removed.length))).build();return t.dispatch(a),!0}function nt(t){return Y(t,({state:e,blockId:n})=>(rt(t,e,n),!0))}function ot(t,e){const n=t.getState(),r=n.getBlock(e);if(!r)return;const s=o(r),i=c(),a=n.transaction("command").splitBlock(e,s,i).setBlockType(i,h("paragraph")).setSelection(g(i,0)).build();t.dispatch(a)}function rt(t,e,n){const o=e.getBlockOrder(),r=o.indexOf(n);if(r<o.length-1){const n=o[r+1],c=e.transaction("command").setSelection(g(n,0)).build();return void t.dispatch(c)}ot(t,n)}function ct(t,e,n){const r=e.getBlockOrder(),c=r.indexOf(n);if(c<=0)return!1;const s=r[c-1],i=e.getBlock(s),a=i?o(i):0,l=e.transaction("command").setSelection(g(s,a)).build();return t.dispatch(l),!0}function st(t,n){const r=t.getState(),c=r.selection;if(!p(c))return!1;const i=r.getBlock(c.anchor.blockId);if(!i||"code_block"===i.type)return!1;const a={language:n.defaultLanguage??"",backgroundColor:""},l=r.transaction("command");return function(t,n){if(0===o(n))return;const r=s(n);let c=0;for(const o of r)if(e(o)){if(o.text.length>0)for(const e of o.marks)t.removeMark(n.id,c,c+o.text.length,e);c+=o.text.length}else c+=1}(l,i),l.setBlockType(c.anchor.blockId,h("code_block"),a).setSelection(g(c.anchor.blockId,0)),t.dispatch(l.build()),!0}function it(e,o){const r=m(e.doc,o);if(!r)return null;const s=w(r),i=_(e,s),a=S(i,o);if(a<0)return null;const l=e.transaction("command");if(1===i.length){const t=c();return l.insertNode(s,0,n(t)),l.removeNode(s,1),l.setSelection(g(t,0)),l.build()}l.removeNode(s,a);const d=function(e,o,r,s){const i=r[s-1];if(i&&t(i)){const t=I(e,i.id,"end");if(t)return t}const a=r[s+1];if(a&&t(a)){const t=I(e,a.id,"start");if(t)return t}const l=r[s],d=y(e,"start",l&&t(l)?l.id:void 0);if(d)return d;const u=c();return o.insertNode([],0,n(u)),g(u,0)}(e,l,i,a);return l.setSelection(d),l.build()}var at=class{bundles=/* @__PURE__ */new Map;listeners=[];register(t){this.bundles.set(t.id,t);for(const e of this.listeners)e(t)}onRegister(t){this.listeners.push(t);for(const e of this.bundles.values())t(e)}get(t){return this.bundles.get(t)}getAll(){return[...this.bundles.values()]}},lt={insertAfter:"Mod-Enter",toggle:"Mod-Shift-M"},dt={defaultLanguage:"",useSpaces:!1,spaceCount:2,showCopyButton:!0},ut=new A("codeBlock"),gt=new A("syntaxHighlighter"),pt=class{languageMap=/* @__PURE__ */new Map;constructor(t){if(t)for(const e of t)this.registerLanguageInternal(e)}registerLanguage(t){this.registerLanguageInternal(t)}tokenize(t,e){const n=this.languageMap.get(e.toLowerCase());if(!n)return[];const o=[];for(const r of N(t,n))o.push({from:r.from,to:r.to,type:r.type});return o}getSupportedLanguages(){const t=/* @__PURE__ */new Set;for(const e of this.languageMap.values()){t.add(e.name);for(const n of e.aliases)t.add(n)}return[...t]}registerLanguageInternal(t){this.languageMap.set(t.name.toLowerCase(),t);for(const e of t.aliases)this.languageMap.set(e.toLowerCase(),t)}},ft={label:"Code Block",tooltip:t=>t?`Code Block (${t})`:"Code Block",enteredCodeBlock:"Entered code block. Press Escape to exit.",leftCodeBlock:"Left code block.",copyCodeAria:"Copy code",escToExit:"Esc to exit",codeBlockAriaLabel:t=>`${t} code block. Press Escape to exit.`,copiedToClipboard:"Copied to clipboard",copyFailed:"Failed to copy code",deleteCodeBlockAria:"Delete code block",deletedCodeBlock:"Code block deleted",selectLanguageAria:"Select language",languageChanged:t=>`Language changed to ${t}`,plainText:"plain",indentedNLines:t=>1===t?"1 line indented":`${t} lines indented`,dedentedNLines:t=>1===t?"1 line dedented":`${t} lines dedented`},ht=/* @__PURE__ */Object.assign({"./locales/ar.ts":()=>import("./ar-D0bqkviV.mjs"),"./locales/de.ts":()=>import("./de-Cbv0otYM.mjs"),"./locales/es.ts":()=>import("./es-RaZerssd.mjs"),"./locales/fr.ts":()=>import("./fr-Cv73J4QZ.mjs"),"./locales/hi.ts":()=>import("./hi-Da5pRz8E.mjs"),"./locales/pt.ts":()=>import("./pt-B2hMlTc6.mjs"),"./locales/ru.ts":()=>import("./ru-CdY8d80t.mjs"),"./locales/zh.ts":()=>import("./zh-cZUtN871.mjs")});async function kt(t){return M(ht,t,ft)}var bt='[role="option"]';function mt(t,e,n,o){const r=document.createElement("div");r.className="notectl-language-picker__option",r.setAttribute("role","option"),r.setAttribute("data-language",n),r.setAttribute("aria-selected",String(o)),r.setAttribute("tabindex",o?"0":"-1"),r.textContent=e,t.appendChild(r)}function vt(t,e,n,o){const r=t.getState(),c=r.getBlock(e);if(!c||"code_block"!==c.type)return;const s=r.getNodePath(e);if(!s)return;const i={...c.attrs,[n]:o},a=r.transaction("command").setNodeAttr(s,i).build();t.dispatch(a)}var xt=class{entries=/* @__PURE__ */new Map;getTokens(t,e,n,o){const r=this.entries.get(t);if(r&&r.text===e&&r.language===n)return r.tokens;const c=o?.tokenize(e,n)??[];return this.entries.set(t,{text:e,language:n,tokens:c}),c}findTokenAt(t,e){const n=this.entries.get(t);if(!n)return;const o=n.tokens;let r=0,c=o.length-1;for(;r<=c;){const t=r+c>>>1,n=o[t];if(!n)return;if(e<n.from)c=t-1;else{if(!(e>=n.to))return n;r=t+1}}}retain(t){for(const e of this.entries.keys())t.has(e)||this.entries.delete(e)}clear(){this.entries.clear()}},Ct=class{id="code-block";name="Code Block";priority=36;config;resolvedIndent;resolvedPairing;resolvedKeymap;context=null;locale;highlighter=null;tokenCache=new xt;autoPair;constructor(t){this.config={...dt,...t},this.resolvedIndent=function(t){const e=t.indent?.useSpaces??t.useSpaces??false,n=t.indent?.spaceCount??t.spaceCount??2,o=Math.max(1,Math.min(16,Math.trunc(n)));return{mode:t.indent?.mode??"brackets",useSpaces:e,spaceCount:o}}(this.config),this.resolvedPairing=function(t){const e=t.pairing;return{brackets:e?.brackets??"languageDefined",quotes:e?.quotes??"languageDefined",overtype:e?.overtype??true,deletePair:e?.deletePair??true,surround:e?.surround??"languageDefined"}}(this.config),this.resolvedKeymap={...lt,...t?.keymap},this.autoPair=new J({resolvedIndent:this.resolvedIndent,resolvedPairing:this.resolvedPairing,getTokenAt:(t,e)=>this.tokenCache.findTokenAt(t,e),getCompositionState:()=>this.context?.getCompositionState()??null})}async init(t){this.locale=await L(t,this.config.locale,ft,kt),t.registerStyleSheet(H),this.context=t,this.highlighter=function(t,e,n){const o=e.highlighter??new pt,r=new at;return r.onRegister(t=>{t.highlighting&&o.registerLanguage&&(o.registerLanguage(t.highlighting),n.clear())}),t.registerService(j,r),r.register($),r.register(E),r.register(z),r.register(q),t.registerService(gt,{registerLanguage:t=>{o.registerLanguage?.(t),n.clear()},getSupportedLanguages:()=>o.getSupportedLanguages(),tokenize:(t,e)=>o.tokenize(t,e),getTokenAt:(t,e)=>n.findTokenAt(t,e)}),o}(t,this.config,this.tokenCache),function(t){t.registerNodeSpec({type:"code_block",group:"block",content:{allow:["text"]},selectable:!0,attrs:{language:{default:""},backgroundColor:{default:""}},toDOM(t){const e=k("pre",t.id);e.className="notectl-code-block",e.setAttribute("dir","ltr"),e.setAttribute("part","code-block");const n=document.createElement("code");return n.className="notectl-code-block__content",n.setAttribute("part","code-block-content"),e.appendChild(n),e},toHTML(t,e,n){const o=b(t.attrs?.language??""),r=b(t.attrs?.backgroundColor??""),c=o?` class="language-${o}"`:"";return`<pre dir="ltr"${r?n?.styleAttr(`background-color: ${r}`)??` style="background-color: ${r}"`:""}><code${c}>${e||""}</code></pre>`},parseHTML:[{tag:"pre",getAttrs(t){const e=t.querySelector("code"),n=e?.className.match(/language-(\S+)/)?.[1]??"";return{language:(e?.getAttribute("data-language")??"")||n}}}],sanitize:{tags:["pre","code"],attrs:["data-language","class","style"]}})}(t),this.registerNodeView(t),function(t,e){t.registerCommand("toggleCodeBlock",()=>function(t,e){const n=t.getState();if(!p(n.selection))return!1;const o=n.getBlock(n.selection.anchor.blockId);if(!o)return!1;if("code_block"===o.type){const e=n.transaction("command").setBlockType(n.selection.anchor.blockId,h("paragraph")).setSelection(n.selection).build();return t.dispatch(e),!0}return st(t,e)}(t,e)),t.registerCommand("insertCodeBlock",()=>st(t,e)),t.registerCommand("setCodeBlockLanguage",()=>!1),t.registerCommand("setCodeBlockBackground",()=>!1),t.registerCommand("exitCodeBlock",()=>nt(t)),t.registerCommand("deleteCodeBlock",()=>function(t){const e=t.getState();if(!p(e.selection))return!1;const n=e.getBlock(e.selection.anchor.blockId);if(!n||"code_block"!==n.type)return!1;const o=it(e,n.id);return!!o&&(t.dispatch(o),!0)}(t))}(t,this.config),tt(t,this.config,this.resolvedKeymap,{indent:this.resolvedIndent,pairing:this.resolvedPairing,pairStack:this.autoPair.pairStack,locale:()=>this.locale}),function(t){t.registerInputRule({pattern:/^```(\w*) $/,handler:(t,e,n,o)=>{const r=t.selection;if(!p(r))return null;if(!d(r))return null;const c=t.getBlock(r.anchor.blockId);if(!c||"paragraph"!==c.type)return null;const s={language:e[1]??"",backgroundColor:""};return t.transaction("input").deleteTextAt(r.anchor.blockId,n,n+e[0].length).setBlockType(r.anchor.blockId,h("code_block"),s).setSelection(g(r.anchor.blockId,0)).build()}})}(t),function(t,e,n){t.registerToolbarItem({id:"code_block",group:"block",icon:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z"/><path d="M11 14.17L8.83 12 11 9.83 9.59 8.41 6 12l3.59 3.59L11 14.17zm3.41 1.42L18 12l-3.59-3.59L13 9.83 15.17 12 13 14.17l1.41 1.42z"/></svg>',label:e.label,tooltip:e.tooltip(n?O(n):void 0),command:"toggleCodeBlock",isActive:t=>!!p(t.selection)&&"code_block"===t.getBlock(t.selection.anchor.blockId)?.type})}(t,this.locale,this.resolvedKeymap.toggle),function(t){t.registerMiddleware((t,e,n)=>{if(!t.steps.some(t=>"addMark"===t.type&&"code_block"===e.getBlock(t.blockId)?.type))return void n(t);const o=t.steps.filter(t=>"addMark"!==t.type||"code_block"!==e.getBlock(t.blockId)?.type);n({...t,steps:o})},{name:"code-block:mark-guard",priority:50})}(t),function(t,e,n){t.registerService(ut,{setLanguage(e,n){vt(t,e,"language",n)},getLanguage(t){const e=n();if(!e)return"";const o=e.getState().getBlock(t);return o&&"code_block"===o.type?o.attrs?.language??"":""},setBackground(e,n){vt(t,e,"backgroundColor",n)},getBackground(t){const e=n();if(!e)return"";const o=e.getState().getBlock(t);return o&&"code_block"===o.type?o.attrs?.backgroundColor??"":""},isCodeBlock(t){const e=n();return!!e&&"code_block"===e.getState().getBlock(t)?.type},getSupportedLanguages(){const t=e();return t?t.getSupportedLanguages():[]}})}(t,()=>this.highlighter,()=>this.context),function(t){t.registerPasteInterceptor((t,e,n)=>{if(!t)return null;if(!p(n.selection))return null;const o=n.getBlock(n.selection.anchor.blockId);if(!o||"code_block"!==o.type)return null;const r=n.transaction("paste");let c=n.selection.anchor.blockId,s=n.selection.anchor.offset;if(!d(n.selection)){const t=f(n,r);t&&(c=t,s=0)}return r.insertText(c,s,t,[]),r.setSelection(g(c,s+t.length)),r.build()},{name:"code-block:paste",priority:10})}(t),t.registerTextInputInterceptor(this.autoPair.handleTextInput,{name:"code-block:auto-pair",priority:10}),function(t){const e=t.getSchemaRegistry(),n=e.getNodeSpec("table_cell");if(!n?.content)return;const o=n.content.allow??[];o.includes("code_block")||(e.removeNodeSpec("table_cell"),e.registerNodeSpec({...n,content:{...n.content,allow:[...o,"code_block"]}}))}(t)}destroy(){this.context=null,this.highlighter=null,this.tokenCache.clear(),this.autoPair.clear()}onStateChange(t,e,n){if(this.autoPair.syncOnStateChange(e,n),!this.context)return;const o=p(t.selection)?t.selection.anchor.blockId:null,r=p(e.selection)?e.selection.anchor.blockId:null,c=o?t.getBlock(o):void 0,s=r?e.getBlock(r):void 0,i="code_block"===c?.type,a="code_block"===s?.type;!i&&a?this.context.announce(this.locale.enteredCodeBlock):i&&!a&&this.context.announce(this.locale.leftCodeBlock)}decorations(t){return function(t,e){const n=[],o=function(t){if(!p(t.selection))return null;const e=t.selection.anchor.blockId;return"code_block"===t.getBlock(e)?.type?e:null}(t);if(o&&n.push(v(o,{class:"notectl-code-block--focused"})),e.highlighter){const o=/* @__PURE__ */new Set;for(const c of t.getBlockOrder()){const s=t.getBlock(c);if(!s||"code_block"!==s.type)continue;const i=s.attrs?.language??"";if(!i)continue;const a=r(s);if(!a)continue;o.add(c);const l=e.tokenCache.getTokens(c,a,i,e.highlighter);for(const t of l)n.push(x(c,t.from,t.to,{class:`notectl-token--${t.type}`}))}e.tokenCache.retain(o)}return 0===n.length?C.empty:C.create(n)}(t,{highlighter:this.highlighter,tokenCache:this.tokenCache})}registerNodeView(t){const e=new P(t.getContainer()),n=this.highlighter,o={popupManager:e,getSupportedLanguages:()=>n?.getSupportedLanguages()??[]};t.registerNodeView("code_block",function(t,e=ft,n){return(o,c,s)=>{const i=document.createElement("pre");i.className="notectl-code-block",i.setAttribute("data-block-id",o.id),i.setAttribute("dir","ltr"),i.setAttribute("role","group"),i.setAttribute("aria-roledescription","code block"),i.setAttribute("part","code-block");const a=document.createElement("div");a.className="notectl-code-block__header",a.setAttribute("contenteditable","false"),a.setAttribute("part","code-block-header");const l=document.createElement("button");l.className="notectl-code-block__language-btn",l.type="button",l.setAttribute("aria-haspopup","listbox"),l.setAttribute("aria-expanded","false"),l.setAttribute("aria-label",e.selectLanguageAria);let d=null;!1!==t.showCopyButton&&(d=document.createElement("button"),d.className="notectl-code-block__copy",d.setAttribute("aria-label",e.copyCodeAria),d.setAttribute("data-notectl-no-print",""),d.type="button",d.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg>');const u=document.createElement("button");u.className="notectl-code-block__delete",u.setAttribute("aria-label",e.deleteCodeBlockAria),u.title=e.deleteCodeBlockAria,u.setAttribute("data-notectl-no-print",""),u.type="button",u.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14"><path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"/></svg>';const g=document.createElement("span");g.className="notectl-sr-only",g.setAttribute("aria-live","assertive"),g.setAttribute("aria-atomic","true");const p=document.createElement("div");p.className="notectl-code-block__actions",d&&p.appendChild(d),p.appendChild(u),a.appendChild(l),a.appendChild(p),a.appendChild(g);const f=document.createElement("code");f.className="notectl-code-block__content",f.setAttribute("part","code-block-content");const h=document.createElement("div");h.className="notectl-code-block__esc-hint",h.setAttribute("contenteditable","false"),h.setAttribute("aria-hidden","true"),h.setAttribute("data-notectl-no-print",""),h.textContent=e.escToExit,i.appendChild(a),i.appendChild(f),i.appendChild(h),t.background&&B(i,"--notectl-code-block-bg",t.background),t.headerBackground&&B(i,"--notectl-code-block-header-bg",t.headerBackground),t.textColor&&B(i,"--notectl-code-block-color",t.textColor),t.headerColor&&B(i,"--notectl-code-block-header-color",t.headerColor);let k=o.id;function b(t){const o=t.attrs?.language??"",r=o||e.plainText;l.innerHTML="";const c=document.createElement("span");if(c.className="notectl-code-block__language",c.textContent=r,l.appendChild(c),n){const t=document.createElement("span");t.className="notectl-code-block__chevron",t.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="10" height="10"><path d="M4 6l4 4 4-4" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>',l.appendChild(t)}i.setAttribute("aria-label",e.codeBlockAriaLabel(r)),o?f.setAttribute("data-language",o):f.removeAttribute("data-language"),B(i,"backgroundColor",(t.attrs?.backgroundColor??"")||"")}function m(t){g.textContent=t,setTimeout(()=>{g.textContent=""},1e3)}return b(o),d&&d.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation();const n=c().getBlock(k);n&&function(t){const e=globalThis.navigator?.clipboard;return e&&"function"==typeof e.writeText?e.writeText(t):Promise.reject(/* @__PURE__ */new Error("Clipboard API unavailable"))}(r(n)).then(()=>m(e.copiedToClipboard),()=>m(e.copyFailed))}),u.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation();const n=it(c(),k);n&&(g.textContent=e.deletedCodeBlock,s(n))}),n&&l.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation();const o=c().getBlock(k);if(!o)return;const r=o.attrs?.language??"";!function(t){const{anchor:e,languages:n,currentLanguage:o,onSelect:r,popupManager:c,locale:s}=t;c.open({anchor:e,ariaRole:"listbox",ariaLabel:s.selectLanguageAria,className:"notectl-language-picker",position:"below-start",restoreFocusTo:e,content(t,e){const c=o.toLowerCase();mt(t,s.plainText,"",""===c);const i=[...n].sort((t,e)=>t.localeCompare(e));for(const n of i)mt(t,n,n,c===n.toLowerCase());D({container:t,itemSelector:bt,onSelect(t){r(t.getAttribute("data-language")??""),e()},onClose(){e()}}),t.addEventListener("click",t=>{const n=t.target.closest(bt);n&&(r(n.getAttribute("data-language")??""),e())})},onClose(){e.setAttribute("aria-expanded","false")}}),e.setAttribute("aria-expanded","true")}({anchor:l,languages:n.getSupportedLanguages(),currentLanguage:r,locale:e,popupManager:n.popupManager,onSelect(t){if(t===r)return;const n=c(),o=n.getBlock(k);if(!o)return;const i=n.getNodePath(k);if(!i)return;const a={...o.attrs,language:t};s(n.transaction("command").setNodeAttr(i,a).build());const l=t||e.plainText;m(e.languageChanged(l))}})}),{dom:i,contentDOM:f,update:t=>"code_block"===t.type&&(k=t.id,i.setAttribute("data-block-id",t.id),b(t),!0),selectNode(){i.classList.add("notectl-code-block--selected")},deselectNode(){i.classList.remove("notectl-code-block--selected")},destroy(){}}}}(this.config,this.locale,o))}};export{ut as a,pt as i,ft as n,gt as o,kt as r,Ct as t};
2
- //# sourceMappingURL=CodeBlockPlugin-ChPv3Edf.mjs.map