markdown-flow-ui 0.1.81-beta.11 → 0.1.81-beta.13

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 (1624) hide show
  1. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js.map +1 -0
  2. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js.map +1 -0
  3. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js.map +1 -0
  4. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js.map +1 -0
  5. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/classCallCheck.js.map +1 -0
  6. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/createClass.js.map +1 -0
  7. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/createSuper.js.map +1 -0
  8. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/defineProperty.js.map +1 -0
  9. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -0
  10. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js.map +1 -0
  11. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/inherits.js.map +1 -0
  12. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js.map +1 -0
  13. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/iterableToArray.js.map +1 -0
  14. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js.map +1 -0
  15. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js.map +1 -0
  16. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js.map +1 -0
  17. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/objectSpread2.js.map +1 -0
  18. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js.map +1 -0
  19. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -0
  20. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js.map +1 -0
  21. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js.map +1 -0
  22. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/slicedToArray.js.map +1 -0
  23. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js.map +1 -0
  24. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -0
  25. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js.map +1 -0
  26. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/typeof.js.map +1 -0
  27. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js.map +1 -0
  28. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@braintree_sanitize-url@7.1.1/node_modules/@braintree/sanitize-url/dist/index.js +1 -1
  29. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@chevrotain_regexp-to-ast@11.0.3/node_modules/@chevrotain/regexp-to-ast/lib/src/regexp-parser.js +8 -1
  30. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@chevrotain_regexp-to-ast@11.0.3/node_modules/@chevrotain/regexp-to-ast/lib/src/regexp-parser.js.map +1 -1
  31. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_autocomplete@6.19.1/node_modules/@codemirror/autocomplete/dist/index.js +1372 -0
  32. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_autocomplete@6.19.1/node_modules/@codemirror/autocomplete/dist/index.js.map +1 -0
  33. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_commands@6.10.0/node_modules/@codemirror/commands/dist/index.js +839 -0
  34. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_commands@6.10.0/node_modules/@codemirror/commands/dist/index.js.map +1 -0
  35. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_lang-css@6.3.1/node_modules/@codemirror/lang-css/dist/index.js +4 -4
  36. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_lang-html@6.4.11/node_modules/@codemirror/lang-html/dist/index.js +6 -6
  37. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_lang-html@6.4.11/node_modules/@codemirror/lang-html/dist/index.js.map +1 -1
  38. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_lang-javascript@6.2.4/node_modules/@codemirror/lang-javascript/dist/index.js +9 -9
  39. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_lang-markdown@6.5.0/node_modules/@codemirror/lang-markdown/dist/index.js +9 -9
  40. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_language@6.11.3/node_modules/@codemirror/language/dist/index.js +1368 -0
  41. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_language@6.11.3/node_modules/@codemirror/language/dist/index.js.map +1 -0
  42. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_lint@6.9.1/node_modules/@codemirror/lint/dist/index.js +469 -0
  43. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_lint@6.9.1/node_modules/@codemirror/lint/dist/index.js.map +1 -0
  44. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_search@6.5.11/node_modules/@codemirror/search/dist/index.js +873 -0
  45. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_search@6.5.11/node_modules/@codemirror/search/dist/index.js.map +1 -0
  46. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_state@6.5.2/node_modules/@codemirror/state/dist/index.js +2640 -0
  47. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_state@6.5.2/node_modules/@codemirror/state/dist/index.js.map +1 -0
  48. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_theme-one-dark@6.1.3/node_modules/@codemirror/theme-one-dark/dist/index.js +2 -2
  49. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_view@6.38.6/node_modules/@codemirror/view/dist/index.js +7205 -0
  50. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_view@6.38.6/node_modules/@codemirror/view/dist/index.js.map +1 -0
  51. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@floating-ui_core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.js +7 -7
  52. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@floating-ui_dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +3 -3
  53. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@floating-ui_react-dom@2.1.6_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +209 -0
  54. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@floating-ui_react-dom@2.1.6_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js.map +1 -0
  55. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.0.2/node_modules/@iconify/utils/lib/customisations/defaults.js.map +1 -0
  56. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.0.2/node_modules/@iconify/utils/lib/icon/defaults.js.map +1 -0
  57. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.0.2/node_modules/@iconify/utils/lib/icon/merge.js.map +1 -0
  58. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.0.2/node_modules/@iconify/utils/lib/icon/name.js.map +1 -0
  59. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.0.2/node_modules/@iconify/utils/lib/icon/transformations.js.map +1 -0
  60. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.0.2/node_modules/@iconify/utils/lib/icon-set/get-icon.js.map +1 -0
  61. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.0.2/node_modules/@iconify/utils/lib/icon-set/tree.js.map +1 -0
  62. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.0.2/node_modules/@iconify/utils/lib/svg/build.js.map +1 -0
  63. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.0.2/node_modules/@iconify/utils/lib/svg/defs.js.map +1 -0
  64. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.0.2/node_modules/@iconify/utils/lib/svg/html.js.map +1 -0
  65. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.0.2/node_modules/@iconify/utils/lib/svg/id.js +17 -0
  66. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.0.2/node_modules/@iconify/utils/lib/svg/id.js.map +1 -0
  67. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.0.2/node_modules/@iconify/utils/lib/svg/size.js.map +1 -0
  68. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@lezer_common@1.3.0/node_modules/@lezer/common/dist/index.js +1677 -0
  69. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@lezer_common@1.3.0/node_modules/@lezer/common/dist/index.js.map +1 -0
  70. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@lezer_css@1.3.0/node_modules/@lezer/css/dist/index.js +1 -1
  71. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@lezer_highlight@1.2.3/node_modules/@lezer/highlight/dist/index.js +1 -1
  72. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@lezer_html@1.3.12/node_modules/@lezer/html/dist/index.js +281 -0
  73. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@lezer_html@1.3.12/node_modules/@lezer/html/dist/index.js.map +1 -0
  74. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@lezer_javascript@1.5.4/node_modules/@lezer/javascript/dist/index.js +1 -1
  75. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@lezer_lr@1.4.2/node_modules/@lezer/lr/dist/index.js +1310 -0
  76. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@lezer_lr@1.4.2/node_modules/@lezer/lr/dist/index.js.map +1 -0
  77. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@lezer_markdown@1.5.1/node_modules/@lezer/markdown/dist/index.js +1609 -0
  78. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@lezer_markdown@1.5.1/node_modules/@lezer/markdown/dist/index.js.map +1 -0
  79. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@mermaid-js_parser@0.6.3/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/architecture-U656AL7Q.js +3 -4
  80. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@mermaid-js_parser@0.6.3/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/architecture-U656AL7Q.js.map +1 -1
  81. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@mermaid-js_parser@0.6.3/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-FPAJGGOC.js +6 -3
  82. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@mermaid-js_parser@0.6.3/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-FPAJGGOC.js.map +1 -1
  83. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@mermaid-js_parser@0.6.3/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/gitGraph-F6HP7TQM.js +2 -3
  84. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@mermaid-js_parser@0.6.3/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/gitGraph-F6HP7TQM.js.map +1 -1
  85. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@mermaid-js_parser@0.6.3/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/info-NVLQJR56.js +3 -4
  86. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@mermaid-js_parser@0.6.3/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/info-NVLQJR56.js.map +1 -1
  87. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@mermaid-js_parser@0.6.3/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/packet-BFZMPI3H.js +3 -4
  88. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@mermaid-js_parser@0.6.3/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/packet-BFZMPI3H.js.map +1 -1
  89. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@mermaid-js_parser@0.6.3/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/pie-7BOR55EZ.js +3 -4
  90. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@mermaid-js_parser@0.6.3/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/pie-7BOR55EZ.js.map +1 -1
  91. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@mermaid-js_parser@0.6.3/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/radar-NHE76QYJ.js +3 -4
  92. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@mermaid-js_parser@0.6.3/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/radar-NHE76QYJ.js.map +1 -1
  93. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@mermaid-js_parser@0.6.3/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/treemap-KMMF4GRG.js +3 -4
  94. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@mermaid-js_parser@0.6.3/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/treemap-KMMF4GRG.js.map +1 -1
  95. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-arrow@1.1.7_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@1_bf1a4f717ce2834281285c7fb481fd0e/node_modules/@radix-ui/react-arrow/dist/index.js +25 -0
  96. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-arrow@1.1.7_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@1_bf1a4f717ce2834281285c7fb481fd0e/node_modules/@radix-ui/react-arrow/dist/index.js.map +1 -0
  97. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-compose-refs@1.1.2_@types_react@19.2.2_react@19.0.1/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +1 -0
  98. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-context@1.1.2_@types_react@19.2.2_react@19.0.1/node_modules/@radix-ui/react-context/dist/index.js.map +1 -0
  99. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-dialog@1.1.15_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react_47bb8d90b09b6a0ef5443ddd7a1cb20c/node_modules/@radix-ui/react-dialog/dist/index.js +257 -0
  100. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-dialog@1.1.15_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react_47bb8d90b09b6a0ef5443ddd7a1cb20c/node_modules/@radix-ui/react-dialog/dist/index.js.map +1 -0
  101. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-dismissable-layer@1.1.11_@types_react-dom@19.2.2_@types_react@19.2.2__@_5d3fb48453fc38cdae025c7e3bb290da/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +128 -0
  102. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-dismissable-layer@1.1.11_@types_react-dom@19.2.2_@types_react@19.2.2__@_5d3fb48453fc38cdae025c7e3bb290da/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +1 -0
  103. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-focus-guards@1.1.3_@types_react@19.2.2_react@19.0.1/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +1 -0
  104. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-focus-scope@1.1.7_@types_react-dom@19.2.2_@types_react@19.2.2__@types_r_524adb8e959e6da7de8216d918d22757/node_modules/@radix-ui/react-focus-scope/dist/index.js +137 -0
  105. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-focus-scope@1.1.7_@types_react-dom@19.2.2_@types_react@19.2.2__@types_r_524adb8e959e6da7de8216d918d22757/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +1 -0
  106. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-id@1.1.1_@types_react@19.2.2_react@19.0.1/node_modules/@radix-ui/react-id/dist/index.js +14 -0
  107. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-id@1.1.1_@types_react@19.2.2_react@19.0.1/node_modules/@radix-ui/react-id/dist/index.js.map +1 -0
  108. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-popover@1.1.15_@types_react-dom@19.2.2_@types_react@19.2.2__@types_reac_8bb39231b9016d6b34e9b18a0c110d28/node_modules/@radix-ui/react-popover/dist/index.js +240 -0
  109. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-popover@1.1.15_@types_react-dom@19.2.2_@types_react@19.2.2__@types_reac_8bb39231b9016d6b34e9b18a0c110d28/node_modules/@radix-ui/react-popover/dist/index.js.map +1 -0
  110. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-popper@1.2.8_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@_1254e94e239022935f919a81f9837693/node_modules/@radix-ui/react-popper/dist/index.js +220 -0
  111. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-popper@1.2.8_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@_1254e94e239022935f919a81f9837693/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -0
  112. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-portal@1.1.9_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@_4d75d9d32bf99277fbce1a108cff4186/node_modules/@radix-ui/react-portal/dist/index.js +16 -0
  113. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-portal@1.1.9_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@_4d75d9d32bf99277fbce1a108cff4186/node_modules/@radix-ui/react-portal/dist/index.js.map +1 -0
  114. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-presence@1.1.5_@types_react-dom@19.2.2_@types_react@19.2.2__@types_reac_31aefa366e4cf435aa4b7de783673380/node_modules/@radix-ui/react-presence/dist/index.js +71 -0
  115. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-presence@1.1.5_@types_react-dom@19.2.2_@types_react@19.2.2__@types_reac_31aefa366e4cf435aa4b7de783673380/node_modules/@radix-ui/react-presence/dist/index.js.map +1 -0
  116. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-primitive@2.1.3_@types_react-dom@19.2.2_@types_react@19.2.2__@types_rea_00af32bda16a46fe589a45019fcdf1ad/node_modules/@radix-ui/react-primitive/dist/index.js +37 -0
  117. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-primitive@2.1.3_@types_react-dom@19.2.2_@types_react@19.2.2__@types_rea_00af32bda16a46fe589a45019fcdf1ad/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -0
  118. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-slot@1.2.3_@types_react@19.2.2_react@19.0.1/node_modules/@radix-ui/react-slot/dist/index.js +59 -0
  119. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-slot@1.2.3_@types_react@19.2.2_react@19.0.1/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -0
  120. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-tooltip@1.2.8_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react_92ca0e8eb679cc72ab4a25efff226577/node_modules/@radix-ui/react-tooltip/dist/index.js +339 -0
  121. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-tooltip@1.2.8_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react_92ca0e8eb679cc72ab4a25efff226577/node_modules/@radix-ui/react-tooltip/dist/index.js.map +1 -0
  122. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-use-callback-ref@1.1.1_@types_react@19.2.2_react@19.0.1/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +1 -0
  123. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-use-controllable-state@1.2.2_@types_react@19.2.2_react@19.0.1/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +53 -0
  124. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-use-controllable-state@1.2.2_@types_react@19.2.2_react@19.0.1/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +1 -0
  125. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-use-escape-keydown@1.1.1_@types_react@19.2.2_react@19.0.1/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +15 -0
  126. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-use-escape-keydown@1.1.1_@types_react@19.2.2_react@19.0.1/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +1 -0
  127. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-use-layout-effect@1.1.1_@types_react@19.2.2_react@19.0.1/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +1 -0
  128. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-use-size@1.1.1_@types_react@19.2.2_react@19.0.1/node_modules/@radix-ui/react-use-size/dist/index.js +28 -0
  129. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-use-size@1.1.1_@types_react@19.2.2_react@19.0.1/node_modules/@radix-ui/react-use-size/dist/index.js.map +1 -0
  130. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-visually-hidden@1.2.3_@types_react-dom@19.2.2_@types_react@19.2.2__@typ_c4b893710cd4c3783a1c16f2f922eecb/node_modules/@radix-ui/react-visually-hidden/dist/index.js +33 -0
  131. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-visually-hidden@1.2.3_@types_react-dom@19.2.2_@types_react@19.2.2__@typ_c4b893710cd4c3783a1c16f2f922eecb/node_modules/@radix-ui/react-visually-hidden/dist/index.js.map +1 -0
  132. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_codemirror-extensions-basic-setup@4.25.2_@codemirror_autocomplete@6.19.1_@codemirr_0d986396e3f5c364c67ed0da6439556e/node_modules/@uiw/codemirror-extensions-basic-setup/esm/index.js +22 -0
  133. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_codemirror-extensions-basic-setup@4.25.2_@codemirror_autocomplete@6.19.1_@codemirr_0d986396e3f5c364c67ed0da6439556e/node_modules/@uiw/codemirror-extensions-basic-setup/esm/index.js.map +1 -0
  134. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_react-codemirror@4.25.2_@babel_runtime@7.28.4_@codemirror_autocomplete@6.19.1_@cod_3434c6a3f0eb7fac49dbaa3a471d1162/node_modules/@uiw/react-codemirror/esm/getDefaultExtensions.js +40 -0
  135. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_react-codemirror@4.25.2_@babel_runtime@7.28.4_@codemirror_autocomplete@6.19.1_@cod_3434c6a3f0eb7fac49dbaa3a471d1162/node_modules/@uiw/react-codemirror/esm/getDefaultExtensions.js.map +1 -0
  136. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_react-codemirror@4.25.2_@babel_runtime@7.28.4_@codemirror_autocomplete@6.19.1_@cod_3434c6a3f0eb7fac49dbaa3a471d1162/node_modules/@uiw/react-codemirror/esm/index.js +85 -0
  137. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_react-codemirror@4.25.2_@babel_runtime@7.28.4_@codemirror_autocomplete@6.19.1_@cod_3434c6a3f0eb7fac49dbaa3a471d1162/node_modules/@uiw/react-codemirror/esm/index.js.map +1 -0
  138. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_react-codemirror@4.25.2_@babel_runtime@7.28.4_@codemirror_autocomplete@6.19.1_@cod_3434c6a3f0eb7fac49dbaa3a471d1162/node_modules/@uiw/react-codemirror/esm/theme/light.js +12 -0
  139. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_react-codemirror@4.25.2_@babel_runtime@7.28.4_@codemirror_autocomplete@6.19.1_@cod_3434c6a3f0eb7fac49dbaa3a471d1162/node_modules/@uiw/react-codemirror/esm/theme/light.js.map +1 -0
  140. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_react-codemirror@4.25.2_@babel_runtime@7.28.4_@codemirror_autocomplete@6.19.1_@cod_3434c6a3f0eb7fac49dbaa3a471d1162/node_modules/@uiw/react-codemirror/esm/timeoutLatch.js.map +1 -0
  141. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_react-codemirror@4.25.2_@babel_runtime@7.28.4_@codemirror_autocomplete@6.19.1_@cod_3434c6a3f0eb7fac49dbaa3a471d1162/node_modules/@uiw/react-codemirror/esm/useCodeMirror.js +130 -0
  142. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_react-codemirror@4.25.2_@babel_runtime@7.28.4_@codemirror_autocomplete@6.19.1_@cod_3434c6a3f0eb7fac49dbaa3a471d1162/node_modules/@uiw/react-codemirror/esm/useCodeMirror.js.map +1 -0
  143. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_react-codemirror@4.25.2_@babel_runtime@7.28.4_@codemirror_autocomplete@6.19.1_@cod_3434c6a3f0eb7fac49dbaa3a471d1162/node_modules/@uiw/react-codemirror/esm/utils.js.map +1 -0
  144. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/chevrotain-allstar@0.3.1_chevrotain@11.0.3/node_modules/chevrotain-allstar/lib/all-star-lookahead.js +8 -8
  145. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/chevrotain-allstar@0.3.1_chevrotain@11.0.3/node_modules/chevrotain-allstar/lib/atn.js +2 -2
  146. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/chevrotain-allstar@0.3.1_chevrotain@11.0.3/node_modules/chevrotain-allstar/lib/dfa.js +1 -1
  147. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/errors_public.js +1 -1
  148. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/checks.js +15 -15
  149. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/interpreter.js +1 -1
  150. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/lookahead.js +1 -1
  151. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/rest.js +1 -1
  152. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/scan/lexer.js +8 -8
  153. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/scan/lexer_public.js +14 -14
  154. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/scan/reg_exp.js +3 -3
  155. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js +6 -1
  156. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js.map +1 -1
  157. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js +8 -7
  158. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js.map +1 -1
  159. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/cose-base@1.0.3/node_modules/cose-base/cose-base.js +6 -6
  160. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/cytoscape-cose-bilkent@4.1.0_cytoscape@3.33.1/node_modules/cytoscape-cose-bilkent/cytoscape-cose-bilkent.js +2 -2
  161. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/cytoscape@3.33.1/node_modules/cytoscape/dist/cytoscape.esm.js +46 -15
  162. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/cytoscape@3.33.1/node_modules/cytoscape/dist/cytoscape.esm.js.map +1 -1
  163. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/lab.js +5 -4
  164. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/defaultLocale.js +16 -0
  165. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/defaultLocale.js.map +1 -0
  166. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/exponent.js.map +1 -0
  167. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatDecimal.js +16 -0
  168. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatDecimal.js.map +1 -0
  169. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatGroup.js.map +1 -0
  170. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatNumerals.js.map +1 -0
  171. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatPrefixAuto.js +13 -0
  172. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatPrefixAuto.js.map +1 -0
  173. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatRounded.js.map +1 -0
  174. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatSpecifier.js.map +1 -0
  175. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatTrim.js.map +1 -0
  176. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatTypes.js.map +1 -0
  177. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/identity.js.map +1 -0
  178. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/locale.js +69 -0
  179. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/locale.js.map +1 -0
  180. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/precisionFixed.js.map +1 -0
  181. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/precisionPrefix.js.map +1 -0
  182. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/precisionRound.js.map +1 -0
  183. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/ordinal.js +1 -1
  184. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/ordinal.js.map +1 -1
  185. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/tickFormat.js +5 -5
  186. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/defaultLocale.js +3 -2
  187. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/locale.js +14 -14
  188. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/transition.js +4 -4
  189. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/interpolate.js +3 -3
  190. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/acyclic.js +2 -2
  191. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/add-border-segments.js +1 -1
  192. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/coordinate-system.js +1 -1
  193. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/greedy-fas.js +5 -5
  194. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/layout.js +7 -7
  195. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/nesting-graph.js +4 -4
  196. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/normalize.js +1 -1
  197. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/order/add-subgraph-constraints.js +1 -1
  198. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/order/barycenter.js +2 -2
  199. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/order/build-layer-graph.js +3 -3
  200. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/order/cross-count.js +5 -5
  201. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/order/index.js +4 -4
  202. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/order/init-order.js +7 -7
  203. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/order/resolve-conflicts.js +5 -5
  204. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/order/sort-subgraph.js +4 -4
  205. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/order/sort.js +4 -4
  206. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/parent-dummy-chains.js +1 -1
  207. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/position/bk.js +14 -14
  208. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/position/index.js +4 -4
  209. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/rank/feasible-tree.js +2 -2
  210. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/rank/network-simplex.js +4 -4
  211. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/rank/util.js +3 -3
  212. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/dagre/util.js +8 -8
  213. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/graphlib/alg/dfs.js +2 -2
  214. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/graphlib/graph.js +10 -10
  215. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dagre-d3-es@7.0.13/node_modules/dagre-d3-es/src/graphlib/json.js +3 -3
  216. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/dayjs.min.js.map +1 -0
  217. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/plugin/advancedFormat.js.map +1 -0
  218. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/plugin/customParseFormat.js +128 -0
  219. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/plugin/customParseFormat.js.map +1 -0
  220. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/plugin/isoWeek.js +34 -0
  221. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/plugin/isoWeek.js.map +1 -0
  222. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/decode-named-character-reference@1.2.0/node_modules/decode-named-character-reference/index.dom.js +15 -0
  223. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/decode-named-character-reference@1.2.0/node_modules/decode-named-character-reference/index.dom.js.map +1 -0
  224. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dompurify@3.3.0/node_modules/dompurify/dist/purify.es.js +554 -0
  225. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dompurify@3.3.0/node_modules/dompurify/dist/purify.es.js.map +1 -0
  226. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/hast-util-raw@9.1.0/node_modules/hast-util-raw/lib/index.js +2 -2
  227. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/hast-util-to-jsx-runtime@2.3.6/node_modules/hast-util-to-jsx-runtime/lib/index.js +1 -1
  228. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/hast-util-to-parse5@8.0.0/node_modules/hast-util-to-parse5/lib/index.js +119 -0
  229. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/hast-util-to-parse5@8.0.0/node_modules/hast-util-to-parse5/lib/index.js.map +1 -0
  230. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/highlight.js@11.11.1/node_modules/highlight.js/lib/core.js +1 -1
  231. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/highlight.js@11.11.1/node_modules/highlight.js/lib/core.js.map +1 -1
  232. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/inline-style-parser@0.2.4/node_modules/inline-style-parser/index.js +94 -0
  233. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/inline-style-parser@0.2.4/node_modules/inline-style-parser/index.js.map +1 -0
  234. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/katex@0.16.25/node_modules/katex/dist/katex.js +11689 -0
  235. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/katex@0.16.25/node_modules/katex/dist/katex.js.map +1 -0
  236. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/langium@3.3.1/node_modules/langium/lib/dependency-injection.js +2 -2
  237. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/langium@3.3.1/node_modules/langium/lib/dependency-injection.js.map +1 -1
  238. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/langium@3.3.1/node_modules/langium/lib/parser/langium-parser.js +1 -1
  239. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/langium@3.3.1/node_modules/langium/lib/parser/langium-parser.js.map +1 -1
  240. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/langium@3.3.1/node_modules/langium/lib/references/linker.js +1 -1
  241. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/langium@3.3.1/node_modules/langium/lib/references/linker.js.map +1 -1
  242. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/langium@3.3.1/node_modules/langium/lib/references/scope-computation.js.map +1 -1
  243. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/langium@3.3.1/node_modules/langium/lib/utils/promise-utils.js +1 -1
  244. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/langium@3.3.1/node_modules/langium/lib/utils/promise-utils.js.map +1 -1
  245. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/layout-base@1.0.2/node_modules/layout-base/layout-base.js +2 -2
  246. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/layout-base@2.0.1/node_modules/layout-base/layout-base.js +19 -19
  247. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignMergeValue.js.map +1 -0
  248. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseClone.js +55 -45
  249. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseClone.js.map +1 -1
  250. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseExtremum.js.map +1 -0
  251. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGt.js.map +1 -0
  252. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseLt.js.map +1 -0
  253. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMerge.js.map +1 -0
  254. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMergeDeep.js.map +1 -0
  255. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseOrderBy.js.map +1 -0
  256. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePick.js.map +1 -0
  257. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseRange.js.map +1 -0
  258. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSortBy.js.map +1 -0
  259. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUniq.js +22 -22
  260. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUniq.js.map +1 -1
  261. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseZipObject.js.map +1 -0
  262. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneBuffer.js +5 -3
  263. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneBuffer.js.map +1 -1
  264. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneDataView.js +4 -3
  265. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneDataView.js.map +1 -1
  266. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneTypedArray.js +5 -4
  267. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneTypedArray.js.map +1 -1
  268. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_compareAscending.js.map +1 -0
  269. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_compareMultiple.js.map +1 -0
  270. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createRange.js.map +1 -0
  271. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_flatRest.js.map +1 -0
  272. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneByTag.js +21 -21
  273. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneByTag.js.map +1 -1
  274. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_safeGet.js.map +1 -0
  275. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/cloneDeep.js.map +1 -0
  276. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/forIn.js.map +1 -0
  277. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/forOwn.js.map +1 -0
  278. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isPlainObject.js.map +1 -0
  279. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/mapValues.js.map +1 -0
  280. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/max.js.map +1 -0
  281. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/merge.js.map +1 -0
  282. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/min.js.map +1 -0
  283. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/minBy.js.map +1 -0
  284. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/pick.js.map +1 -0
  285. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/range.js.map +1 -0
  286. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/sortBy.js.map +1 -0
  287. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toPlainObject.js.map +1 -0
  288. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/union.js.map +1 -0
  289. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqBy.js.map +1 -0
  290. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqueId.js.map +1 -0
  291. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/zipObject.js.map +1 -0
  292. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/Icon.js +42 -0
  293. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/Icon.js.map +1 -0
  294. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/createLucideIcon.js +28 -0
  295. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/createLucideIcon.js.map +1 -0
  296. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/defaultAttributes.js +21 -0
  297. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/defaultAttributes.js.map +1 -0
  298. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/braces.js +25 -0
  299. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/braces.js.map +1 -0
  300. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/check.js +13 -0
  301. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/check.js.map +1 -0
  302. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/circle-check.js +16 -0
  303. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/circle-check.js.map +1 -0
  304. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/copy.js +16 -0
  305. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/copy.js.map +1 -0
  306. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/file-type.js +19 -0
  307. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/file-type.js.map +1 -0
  308. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/image.js +17 -0
  309. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/image.js.map +1 -0
  310. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/loader-circle.js +13 -0
  311. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/loader-circle.js.map +1 -0
  312. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/plus.js +16 -0
  313. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/plus.js.map +1 -0
  314. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/search.js +16 -0
  315. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/search.js.map +1 -0
  316. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/square-check.js +16 -0
  317. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/square-check.js.map +1 -0
  318. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/square-play.js +16 -0
  319. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/square-play.js.map +1 -0
  320. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/text-cursor-input.js +19 -0
  321. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/text-cursor-input.js.map +1 -0
  322. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/upload.js +17 -0
  323. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/upload.js.map +1 -0
  324. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/x.js +16 -0
  325. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/icons/x.js.map +1 -0
  326. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/shared/src/utils.js +25 -0
  327. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.0.1/node_modules/lucide-react/dist/esm/shared/src/utils.js.map +1 -0
  328. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/marked@16.4.1/node_modules/marked/lib/marked.esm.js +1088 -0
  329. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/marked@16.4.1/node_modules/marked/lib/marked.esm.js.map +1 -0
  330. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-from-markdown@2.0.2/node_modules/mdast-util-from-markdown/lib/index.js +1 -1
  331. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/footer.js.map +1 -0
  332. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js.map +1 -0
  333. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/break.js.map +1 -0
  334. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/code.js +16 -0
  335. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/code.js.map +1 -0
  336. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/delete.js.map +1 -0
  337. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js.map +1 -0
  338. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js.map +1 -0
  339. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/heading.js.map +1 -0
  340. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/html.js.map +1 -0
  341. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js.map +1 -0
  342. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/image.js.map +1 -0
  343. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/index.js.map +1 -0
  344. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js.map +1 -0
  345. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js.map +1 -0
  346. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/link.js.map +1 -0
  347. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/list-item.js.map +1 -0
  348. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/list.js.map +1 -0
  349. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js.map +1 -0
  350. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/root.js.map +1 -0
  351. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/strong.js.map +1 -0
  352. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js.map +1 -0
  353. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/table-row.js.map +1 -0
  354. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/table.js.map +1 -0
  355. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/text.js.map +1 -0
  356. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js.map +1 -0
  357. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/index.js.map +1 -0
  358. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/revert.js.map +1 -0
  359. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/state.js +105 -0
  360. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/state.js.map +1 -0
  361. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js +1 -1
  362. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/architectureDiagram-VXUJARFQ.js +831 -0
  363. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/architectureDiagram-VXUJARFQ.js.map +1 -0
  364. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/blockDiagram-VD42YOAC.js +2273 -0
  365. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/blockDiagram-VD42YOAC.js.map +1 -0
  366. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/c4Diagram-YG6GDRKO.js +1587 -0
  367. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/c4Diagram-YG6GDRKO.js.map +1 -0
  368. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-4BX2VUAB.js.map +1 -0
  369. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-55IACEB6.js.map +1 -0
  370. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-6MN3ZHY7.js +145 -0
  371. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-6MN3ZHY7.js.map +1 -0
  372. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ABZYJK2D.js +1442 -0
  373. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ABZYJK2D.js.map +1 -0
  374. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-AGHRB4JF.js.map +1 -0
  375. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ATLVNIR6.js.map +1 -0
  376. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-B4BG7PRW.js.map +1 -0
  377. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-CVBHYZKI.js.map +1 -0
  378. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-DI55MBZ5.js.map +1 -0
  379. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-EXTU4WIE.js.map +1 -0
  380. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-FMBD7UC4.js.map +1 -0
  381. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-HN2XXSSU.js.map +1 -0
  382. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-JA3XYJ7Z.js +275 -0
  383. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-JA3XYJ7Z.js.map +1 -0
  384. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-JZLCHNYA.js.map +1 -0
  385. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-MI3HLSF2.js +1420 -0
  386. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-MI3HLSF2.js.map +1 -0
  387. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-N4CR4FBY.js.map +1 -0
  388. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-QN33PNHL.js.map +1 -0
  389. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-QXUST7PY.js.map +1 -0
  390. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-QZHKN3VN.js.map +1 -0
  391. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-S3R3BYOJ.js +377 -0
  392. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-S3R3BYOJ.js.map +1 -0
  393. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-TZMSLE5B.js +67 -0
  394. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-TZMSLE5B.js.map +1 -0
  395. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-2ON5EDUG.js.map +1 -0
  396. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-v2-WZHVMYZB.js.map +1 -0
  397. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/cose-bilkent-S5V4N54A.js.map +1 -0
  398. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/dagre-6UL2VRFP.js.map +1 -0
  399. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/diagram-PSM6KHXK.js +324 -0
  400. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/diagram-PSM6KHXK.js.map +1 -0
  401. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/diagram-QEK2KX5R.js +221 -0
  402. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/diagram-QEK2KX5R.js.map +1 -0
  403. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/diagram-S2PKOQOG.js +146 -0
  404. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/diagram-S2PKOQOG.js.map +1 -0
  405. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/erDiagram-Q2GNP2WA.js +853 -0
  406. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/erDiagram-Q2GNP2WA.js.map +1 -0
  407. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/flowDiagram-NV44I4VS.js +1633 -0
  408. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/flowDiagram-NV44I4VS.js.map +1 -0
  409. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/ganttDiagram-LVOFAZNH.js +1445 -0
  410. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/ganttDiagram-LVOFAZNH.js.map +1 -0
  411. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/gitGraphDiagram-NY62KEGX.js +705 -0
  412. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/gitGraphDiagram-NY62KEGX.js.map +1 -0
  413. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/infoDiagram-ER5ION4S.js +28 -0
  414. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/infoDiagram-ER5ION4S.js.map +1 -0
  415. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/journeyDiagram-XKPGCS4Q.js.map +1 -0
  416. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/kanban-definition-3W4ZIXB7.js.map +1 -0
  417. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/mindmap-definition-VGOIOE7T.js.map +1 -0
  418. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/pieDiagram-ADFJNKIX.js.map +1 -0
  419. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/quadrantDiagram-AYHSOK5B.js +1027 -0
  420. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/quadrantDiagram-AYHSOK5B.js.map +1 -0
  421. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/requirementDiagram-UZGBJVZJ.js.map +1 -0
  422. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/sankeyDiagram-TZEHDZUN.js.map +1 -0
  423. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/sequenceDiagram-WL72ISMW.js +2519 -0
  424. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/sequenceDiagram-WL72ISMW.js.map +1 -0
  425. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-FKZM4ZOC.js.map +1 -0
  426. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-v2-4FDKWEC3.js.map +1 -0
  427. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/timeline-definition-IT6M3QCI.js.map +1 -0
  428. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/xychartDiagram-PRI3JC2R.js +1306 -0
  429. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/xychartDiagram-PRI3JC2R.js.map +1 -0
  430. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/mermaid.core.js +709 -0
  431. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/mermaid.core.js.map +1 -0
  432. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-reference.js +1 -1
  433. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/index.js +1 -1
  434. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/constructs.js +13 -13
  435. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/index.js +1 -1
  436. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/index.js +13 -0
  437. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/index.js.map +1 -0
  438. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/aria.js +62 -0
  439. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/aria.js.map +1 -0
  440. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/find.js +34 -0
  441. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/find.js.map +1 -0
  442. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/html.js +369 -0
  443. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/html.js.map +1 -0
  444. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/normalize.js +7 -0
  445. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/normalize.js.map +1 -0
  446. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/svg.js +567 -0
  447. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/svg.js.map +1 -0
  448. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/util/case-insensitive-transform.js +8 -0
  449. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/util/case-insensitive-transform.js.map +1 -0
  450. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/util/case-sensitive-transform.js +7 -0
  451. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/util/case-sensitive-transform.js.map +1 -0
  452. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/util/create.js +23 -0
  453. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/util/create.js.map +1 -0
  454. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/util/defined-info.js +28 -0
  455. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/util/defined-info.js.map +1 -0
  456. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/util/info.js +24 -0
  457. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/util/info.js.map +1 -0
  458. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/util/merge.js +12 -0
  459. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/util/merge.js.map +1 -0
  460. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/util/schema.js +18 -0
  461. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/util/schema.js.map +1 -0
  462. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/util/types.js +15 -0
  463. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/util/types.js.map +1 -0
  464. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/xlink.js +20 -0
  465. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/xlink.js.map +1 -0
  466. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/xml.js +12 -0
  467. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/xml.js.map +1 -0
  468. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/xmlns.js +12 -0
  469. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/property-information@6.5.0/node_modules/property-information/lib/xmlns.js.map +1 -0
  470. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-input@1.8.0_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-input/es/BaseInput.js +73 -0
  471. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-input@1.8.0_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-input/es/BaseInput.js.map +1 -0
  472. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-input@1.8.0_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-input/es/hooks/useCount.js +23 -0
  473. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-input@1.8.0_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-input/es/hooks/useCount.js.map +1 -0
  474. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-input@1.8.0_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-input/es/utils/commonUtils.js.map +1 -0
  475. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-resize-observer@1.4.3_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-resize-observer/es/Collection.js.map +1 -0
  476. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-resize-observer@1.4.3_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js +22 -0
  477. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-resize-observer@1.4.3_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js.map +1 -0
  478. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-resize-observer@1.4.3_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-resize-observer/es/SingleObserver/index.js +60 -0
  479. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-resize-observer@1.4.3_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-resize-observer/es/SingleObserver/index.js.map +1 -0
  480. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-resize-observer@1.4.3_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-resize-observer/es/index.js +25 -0
  481. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-resize-observer@1.4.3_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-resize-observer/es/index.js.map +1 -0
  482. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-resize-observer@1.4.3_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-resize-observer/es/utils/observerUtil.js.map +1 -0
  483. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-textarea@1.10.2_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-textarea/es/ResizableTextArea.js +69 -0
  484. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-textarea@1.10.2_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-textarea/es/ResizableTextArea.js.map +1 -0
  485. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-textarea@1.10.2_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-textarea/es/TextArea.js +125 -0
  486. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-textarea@1.10.2_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-textarea/es/TextArea.js.map +1 -0
  487. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-textarea@1.10.2_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-textarea/es/calculateNodeHeight.js.map +1 -0
  488. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-textarea@1.10.2_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-textarea/es/index.js +10 -0
  489. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/Children/toArray.js.map +1 -0
  490. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/Dom/canUseDom.js.map +1 -0
  491. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/Dom/findDOMNode.js +25 -0
  492. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/Dom/findDOMNode.js.map +1 -0
  493. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/React/isFragment.js +14 -0
  494. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/React/isFragment.js.map +1 -0
  495. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/hooks/useEvent.js.map +1 -0
  496. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/hooks/useLayoutEffect.js.map +1 -0
  497. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/hooks/useMemo.js.map +1 -0
  498. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/hooks/useMergedState.js +26 -0
  499. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/hooks/useMergedState.js.map +1 -0
  500. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/hooks/useState.js +18 -0
  501. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/hooks/useState.js.map +1 -0
  502. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/raf.js.map +1 -0
  503. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/ref.js +53 -0
  504. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/ref.js.map +1 -0
  505. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/warning.js.map +1 -0
  506. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-i18next@15.7.4_i18next@23.16.8_react-dom@19.0.1_react@19.0.1__react@19.0.1_typescript@5.9.3/node_modules/react-i18next/dist/es/context.js.map +1 -0
  507. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-i18next@15.7.4_i18next@23.16.8_react-dom@19.0.1_react@19.0.1__react@19.0.1_typescript@5.9.3/node_modules/react-i18next/dist/es/defaults.js.map +1 -0
  508. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-i18next@15.7.4_i18next@23.16.8_react-dom@19.0.1_react@19.0.1__react@19.0.1_typescript@5.9.3/node_modules/react-i18next/dist/es/i18nInstance.js.map +1 -0
  509. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-i18next@15.7.4_i18next@23.16.8_react-dom@19.0.1_react@19.0.1__react@19.0.1_typescript@5.9.3/node_modules/react-i18next/dist/es/initReactI18next.js.map +1 -0
  510. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-i18next@15.7.4_i18next@23.16.8_react-dom@19.0.1_react@19.0.1__react@19.0.1_typescript@5.9.3/node_modules/react-i18next/dist/es/unescape.js.map +1 -0
  511. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-i18next@15.7.4_i18next@23.16.8_react-dom@19.0.1_react@19.0.1__react@19.0.1_typescript@5.9.3/node_modules/react-i18next/dist/es/useTranslation.js +66 -0
  512. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-i18next@15.7.4_i18next@23.16.8_react-dom@19.0.1_react@19.0.1__react@19.0.1_typescript@5.9.3/node_modules/react-i18next/dist/es/useTranslation.js.map +1 -0
  513. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-i18next@15.7.4_i18next@23.16.8_react-dom@19.0.1_react@19.0.1__react@19.0.1_typescript@5.9.3/node_modules/react-i18next/dist/es/utils.js.map +1 -0
  514. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-is@18.3.1/node_modules/react-is/cjs/react-is.development.js +11 -2
  515. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-is@18.3.1/node_modules/react-is/cjs/react-is.development.js.map +1 -1
  516. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-is@18.3.1/node_modules/react-is/cjs/react-is.production.min.js +11 -2
  517. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-is@18.3.1/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
  518. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-is@18.3.1/node_modules/react-is/index.js +1 -1
  519. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-markdown@10.1.0_@types_react@19.2.2_react@19.0.1/node_modules/react-markdown/lib/index.js +103 -0
  520. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-markdown@10.1.0_@types_react@19.2.2_react@19.0.1/node_modules/react-markdown/lib/index.js.map +1 -0
  521. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types_react@19.2.2_react@19.0.1/node_modules/react-remove-scroll-bar/dist/es2015/component.js +72 -0
  522. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types_react@19.2.2_react@19.0.1/node_modules/react-remove-scroll-bar/dist/es2015/component.js.map +1 -0
  523. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types_react@19.2.2_react@19.0.1/node_modules/react-remove-scroll-bar/dist/es2015/constants.js.map +1 -0
  524. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types_react@19.2.2_react@19.0.1/node_modules/react-remove-scroll-bar/dist/es2015/utils.js.map +1 -0
  525. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.0.1/node_modules/react-remove-scroll/dist/es2015/Combination.js.map +1 -0
  526. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.0.1/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +113 -0
  527. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.0.1/node_modules/react-remove-scroll/dist/es2015/SideEffect.js.map +1 -0
  528. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.0.1/node_modules/react-remove-scroll/dist/es2015/UI.js +32 -0
  529. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.0.1/node_modules/react-remove-scroll/dist/es2015/UI.js.map +1 -0
  530. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.0.1/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js.map +1 -0
  531. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.0.1/node_modules/react-remove-scroll/dist/es2015/handleScroll.js.map +1 -0
  532. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.0.1/node_modules/react-remove-scroll/dist/es2015/medium.js +6 -0
  533. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.0.1/node_modules/react-remove-scroll/dist/es2015/medium.js.map +1 -0
  534. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.0.1/node_modules/react-remove-scroll/dist/es2015/sidecar.js +8 -0
  535. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.0.1/node_modules/react-remove-scroll/dist/es2015/sidecar.js.map +1 -0
  536. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-style-singleton@2.2.3_@types_react@19.2.2_react@19.0.1/node_modules/react-style-singleton/dist/es2015/component.js.map +1 -0
  537. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-style-singleton@2.2.3_@types_react@19.2.2_react@19.0.1/node_modules/react-style-singleton/dist/es2015/hook.js.map +1 -0
  538. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-style-singleton@2.2.3_@types_react@19.2.2_react@19.0.1/node_modules/react-style-singleton/dist/es2015/singleton.js.map +1 -0
  539. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react@19.0.1/node_modules/react/cjs/react-jsx-runtime.development.js +409 -0
  540. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react@19.0.1/node_modules/react/cjs/react-jsx-runtime.development.js.map +1 -0
  541. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react@19.0.1/node_modules/react/cjs/react-jsx-runtime.production.js +36 -0
  542. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react@19.0.1/node_modules/react/cjs/react-jsx-runtime.production.js.map +1 -0
  543. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react@19.0.1/node_modules/react/jsx-runtime.js.map +1 -0
  544. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rehype-highlight@7.0.2/node_modules/rehype-highlight/lib/index.js +1 -1
  545. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rehype-katex@7.0.1/node_modules/rehype-katex/lib/index.js +1 -1
  546. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/remark-flow@0.1.6/node_modules/remark-flow/dist/index.js.map +1 -1
  547. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/remark-flow@0.1.6/node_modules/remark-flow/dist/interaction-parser.js.map +1 -1
  548. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/remark-rehype@11.1.2/node_modules/remark-rehype/lib/index.js +1 -1
  549. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/style-mod@4.1.3/node_modules/style-mod/src/style-mod.js +1 -1
  550. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/style-mod@4.1.3/node_modules/style-mod/src/style-mod.js.map +1 -1
  551. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/style-to-js@1.1.18/node_modules/style-to-js/cjs/index.js +21 -0
  552. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/style-to-js@1.1.18/node_modules/style-to-js/cjs/index.js.map +1 -0
  553. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/style-to-js@1.1.18/node_modules/style-to-js/cjs/utilities.js.map +1 -0
  554. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/style-to-object@1.0.11/node_modules/style-to-object/cjs/index.js +29 -0
  555. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/style-to-object@1.0.11/node_modules/style-to-object/cjs/index.js.map +1 -0
  556. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/dist/bundle-mjs.js +2732 -0
  557. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
  558. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/ts-dedent@2.2.0/node_modules/ts-dedent/esm/index.js +15 -14
  559. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/unist-util-visit@5.0.0/node_modules/unist-util-visit/lib/index.js.map +1 -0
  560. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/use-callback-ref@1.3.3_@types_react@19.2.2_react@19.0.1/node_modules/use-callback-ref/dist/es2015/assignRef.js.map +1 -0
  561. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/use-callback-ref@1.3.3_@types_react@19.2.2_react@19.0.1/node_modules/use-callback-ref/dist/es2015/useMergeRef.js.map +1 -0
  562. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/use-callback-ref@1.3.3_@types_react@19.2.2_react@19.0.1/node_modules/use-callback-ref/dist/es2015/useRef.js.map +1 -0
  563. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/use-sidecar@1.1.3_@types_react@19.2.2_react@19.0.1/node_modules/use-sidecar/dist/es2015/exports.js.map +1 -0
  564. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/use-sidecar@1.1.3_@types_react@19.2.2_react@19.0.1/node_modules/use-sidecar/dist/es2015/medium.js.map +1 -0
  565. package/dist/_virtual/advancedFormat.js +1 -1
  566. package/dist/_virtual/customParseFormat.js +1 -1
  567. package/dist/_virtual/dayjs.min.js +1 -1
  568. package/dist/_virtual/index11.js +3 -2
  569. package/dist/_virtual/index11.js.map +1 -1
  570. package/dist/_virtual/index12.js +2 -3
  571. package/dist/_virtual/index12.js.map +1 -1
  572. package/dist/_virtual/index4.js +1 -1
  573. package/dist/_virtual/index5.js +3 -5
  574. package/dist/_virtual/index5.js.map +1 -1
  575. package/dist/_virtual/index7.js +5 -2
  576. package/dist/_virtual/index7.js.map +1 -1
  577. package/dist/_virtual/index8.js +2 -2
  578. package/dist/_virtual/index9.js +2 -3
  579. package/dist/_virtual/index9.js.map +1 -1
  580. package/dist/_virtual/isoWeek.js +1 -1
  581. package/dist/_virtual/jsx-runtime.js +1 -1
  582. package/dist/assets/markdown-flow-ui.css +10 -1
  583. package/dist/components/ContentRender/CodeBlock.js +2 -2
  584. package/dist/components/ContentRender/ContentRender.js +1 -1
  585. package/dist/components/ContentRender/IframeSandbox.js +9 -9
  586. package/dist/components/ContentRender/IframeSandbox.js.map +1 -1
  587. package/dist/components/ContentRender/plugins/MermaidChart.js +1 -1
  588. package/dist/components/ContentRender/utils/custom-variable-props.js +1 -1
  589. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.js +6 -6
  590. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.js +7 -7
  591. package/dist/components/MarkdownFlowEditor/components/ImageInject.js +3 -3
  592. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.js +1 -1
  593. package/dist/components/MarkdownFlowEditor/components/VariableSelect.js +5 -5
  594. package/dist/components/MarkdownFlowEditor/components/VideoInject.js +1 -1
  595. package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.js +1 -1
  596. package/dist/components/MarkdownFlowEditor/plugins/PlaceholderWidget.js +1 -1
  597. package/dist/components/MarkdownFlowEditor/plugins/SyntaxHighlighter.js +1 -1
  598. package/dist/components/MarkdownFlowEditor/plugins/VariablePlaceholder.js +1 -1
  599. package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.js +1 -1
  600. package/dist/components/ui/button.js +1 -1
  601. package/dist/components/ui/checkbox.js +1 -1
  602. package/dist/components/ui/dialog.js +2 -2
  603. package/dist/components/ui/inputGroup/button.js +1 -1
  604. package/dist/components/ui/inputGroup/input-group.d.ts +1 -1
  605. package/dist/components/ui/inputGroup/textarea.js +4 -4
  606. package/dist/components/ui/popover.js +1 -1
  607. package/dist/components/ui/tooltip.js +1 -1
  608. package/dist/lib/utils.js +1 -1
  609. package/dist/markdown-flow-ui-lib.css +1 -1
  610. package/package.json +4 -8
  611. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js.map +0 -1
  612. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js.map +0 -1
  613. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js.map +0 -1
  614. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js.map +0 -1
  615. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/classCallCheck.js.map +0 -1
  616. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/createClass.js.map +0 -1
  617. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/createSuper.js.map +0 -1
  618. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/defineProperty.js.map +0 -1
  619. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/extends.js.map +0 -1
  620. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js.map +0 -1
  621. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/inherits.js.map +0 -1
  622. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js.map +0 -1
  623. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/iterableToArray.js.map +0 -1
  624. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js.map +0 -1
  625. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js.map +0 -1
  626. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js.map +0 -1
  627. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/objectSpread2.js.map +0 -1
  628. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js.map +0 -1
  629. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +0 -1
  630. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js.map +0 -1
  631. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js.map +0 -1
  632. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/slicedToArray.js.map +0 -1
  633. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js.map +0 -1
  634. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +0 -1
  635. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js.map +0 -1
  636. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/typeof.js.map +0 -1
  637. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js.map +0 -1
  638. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_autocomplete@6.20.0/node_modules/@codemirror/autocomplete/dist/index.js +0 -1372
  639. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_autocomplete@6.20.0/node_modules/@codemirror/autocomplete/dist/index.js.map +0 -1
  640. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_commands@6.10.1/node_modules/@codemirror/commands/dist/index.js +0 -845
  641. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_commands@6.10.1/node_modules/@codemirror/commands/dist/index.js.map +0 -1
  642. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_language@6.12.1/node_modules/@codemirror/language/dist/index.js +0 -1368
  643. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_language@6.12.1/node_modules/@codemirror/language/dist/index.js.map +0 -1
  644. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_lint@6.9.2/node_modules/@codemirror/lint/dist/index.js +0 -478
  645. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_lint@6.9.2/node_modules/@codemirror/lint/dist/index.js.map +0 -1
  646. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_search@6.6.0/node_modules/@codemirror/search/dist/index.js +0 -840
  647. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_search@6.6.0/node_modules/@codemirror/search/dist/index.js.map +0 -1
  648. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_state@6.5.4/node_modules/@codemirror/state/dist/index.js +0 -2644
  649. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_state@6.5.4/node_modules/@codemirror/state/dist/index.js.map +0 -1
  650. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_view@6.39.11/node_modules/@codemirror/view/dist/index.js +0 -7366
  651. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@codemirror_view@6.39.11/node_modules/@codemirror/view/dist/index.js.map +0 -1
  652. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@floating-ui_react-dom@2.1.6_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +0 -209
  653. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@floating-ui_react-dom@2.1.6_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js.map +0 -1
  654. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.1.0/node_modules/@iconify/utils/lib/customisations/defaults.js.map +0 -1
  655. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.1.0/node_modules/@iconify/utils/lib/icon/defaults.js.map +0 -1
  656. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.1.0/node_modules/@iconify/utils/lib/icon/merge.js.map +0 -1
  657. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.1.0/node_modules/@iconify/utils/lib/icon/name.js.map +0 -1
  658. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.1.0/node_modules/@iconify/utils/lib/icon/transformations.js.map +0 -1
  659. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.1.0/node_modules/@iconify/utils/lib/icon-set/get-icon.js.map +0 -1
  660. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.1.0/node_modules/@iconify/utils/lib/icon-set/tree.js.map +0 -1
  661. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.1.0/node_modules/@iconify/utils/lib/svg/build.js.map +0 -1
  662. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.1.0/node_modules/@iconify/utils/lib/svg/defs.js.map +0 -1
  663. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.1.0/node_modules/@iconify/utils/lib/svg/html.js.map +0 -1
  664. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.1.0/node_modules/@iconify/utils/lib/svg/id.js +0 -21
  665. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.1.0/node_modules/@iconify/utils/lib/svg/id.js.map +0 -1
  666. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@iconify_utils@3.1.0/node_modules/@iconify/utils/lib/svg/size.js.map +0 -1
  667. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@lezer_common@1.5.0/node_modules/@lezer/common/dist/index.js +0 -1684
  668. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@lezer_common@1.5.0/node_modules/@lezer/common/dist/index.js.map +0 -1
  669. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@lezer_html@1.3.13/node_modules/@lezer/html/dist/index.js +0 -281
  670. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@lezer_html@1.3.13/node_modules/@lezer/html/dist/index.js.map +0 -1
  671. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@lezer_lr@1.4.7/node_modules/@lezer/lr/dist/index.js +0 -1308
  672. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@lezer_lr@1.4.7/node_modules/@lezer/lr/dist/index.js.map +0 -1
  673. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@lezer_markdown@1.6.3/node_modules/@lezer/markdown/dist/index.js +0 -1614
  674. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@lezer_markdown@1.6.3/node_modules/@lezer/markdown/dist/index.js.map +0 -1
  675. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-arrow@1.1.7_@types_react-dom@19.2.3_@types_react@19.2.9__@types_react@1_9b518b1eb63c26c9a3c904901d6351c2/node_modules/@radix-ui/react-arrow/dist/index.js +0 -25
  676. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-arrow@1.1.7_@types_react-dom@19.2.3_@types_react@19.2.9__@types_react@1_9b518b1eb63c26c9a3c904901d6351c2/node_modules/@radix-ui/react-arrow/dist/index.js.map +0 -1
  677. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-compose-refs@1.1.2_@types_react@19.2.9_react@19.1.2/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +0 -1
  678. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-context@1.1.2_@types_react@19.2.9_react@19.1.2/node_modules/@radix-ui/react-context/dist/index.js.map +0 -1
  679. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-dialog@1.1.15_@types_react-dom@19.2.3_@types_react@19.2.9__@types_react_3865df3a1f95940b518c4d0588dc419a/node_modules/@radix-ui/react-dialog/dist/index.js +0 -257
  680. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-dialog@1.1.15_@types_react-dom@19.2.3_@types_react@19.2.9__@types_react_3865df3a1f95940b518c4d0588dc419a/node_modules/@radix-ui/react-dialog/dist/index.js.map +0 -1
  681. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-dismissable-layer@1.1.11_@types_react-dom@19.2.3_@types_react@19.2.9__@_b756fd54e25853560099ebdba1d9c08c/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +0 -128
  682. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-dismissable-layer@1.1.11_@types_react-dom@19.2.3_@types_react@19.2.9__@_b756fd54e25853560099ebdba1d9c08c/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +0 -1
  683. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-focus-guards@1.1.3_@types_react@19.2.9_react@19.1.2/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +0 -1
  684. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-focus-scope@1.1.7_@types_react-dom@19.2.3_@types_react@19.2.9__@types_r_c4900bb3dcacbf57bcfea2a49f7b0307/node_modules/@radix-ui/react-focus-scope/dist/index.js +0 -137
  685. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-focus-scope@1.1.7_@types_react-dom@19.2.3_@types_react@19.2.9__@types_r_c4900bb3dcacbf57bcfea2a49f7b0307/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +0 -1
  686. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-id@1.1.1_@types_react@19.2.9_react@19.1.2/node_modules/@radix-ui/react-id/dist/index.js +0 -14
  687. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-id@1.1.1_@types_react@19.2.9_react@19.1.2/node_modules/@radix-ui/react-id/dist/index.js.map +0 -1
  688. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-popover@1.1.15_@types_react-dom@19.2.3_@types_react@19.2.9__@types_reac_40e9b1fcea5826dc2d9cb0a49c86a555/node_modules/@radix-ui/react-popover/dist/index.js +0 -240
  689. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-popover@1.1.15_@types_react-dom@19.2.3_@types_react@19.2.9__@types_reac_40e9b1fcea5826dc2d9cb0a49c86a555/node_modules/@radix-ui/react-popover/dist/index.js.map +0 -1
  690. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-popper@1.2.8_@types_react-dom@19.2.3_@types_react@19.2.9__@types_react@_66798607e40a491e85ad902965700ff1/node_modules/@radix-ui/react-popper/dist/index.js +0 -220
  691. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-popper@1.2.8_@types_react-dom@19.2.3_@types_react@19.2.9__@types_react@_66798607e40a491e85ad902965700ff1/node_modules/@radix-ui/react-popper/dist/index.js.map +0 -1
  692. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-portal@1.1.9_@types_react-dom@19.2.3_@types_react@19.2.9__@types_react@_ae74a0b21a7a671f5306399627131526/node_modules/@radix-ui/react-portal/dist/index.js +0 -16
  693. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-portal@1.1.9_@types_react-dom@19.2.3_@types_react@19.2.9__@types_react@_ae74a0b21a7a671f5306399627131526/node_modules/@radix-ui/react-portal/dist/index.js.map +0 -1
  694. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-presence@1.1.5_@types_react-dom@19.2.3_@types_react@19.2.9__@types_reac_318bdb72b04a93a904c6380d62e8af81/node_modules/@radix-ui/react-presence/dist/index.js +0 -71
  695. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-presence@1.1.5_@types_react-dom@19.2.3_@types_react@19.2.9__@types_reac_318bdb72b04a93a904c6380d62e8af81/node_modules/@radix-ui/react-presence/dist/index.js.map +0 -1
  696. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-primitive@2.1.3_@types_react-dom@19.2.3_@types_react@19.2.9__@types_rea_3c80ab89c378eaa802c1d35c06184ce7/node_modules/@radix-ui/react-primitive/dist/index.js +0 -37
  697. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-primitive@2.1.3_@types_react-dom@19.2.3_@types_react@19.2.9__@types_rea_3c80ab89c378eaa802c1d35c06184ce7/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -1
  698. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-slot@1.2.3_@types_react@19.2.9_react@19.1.2/node_modules/@radix-ui/react-slot/dist/index.js +0 -59
  699. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-slot@1.2.3_@types_react@19.2.9_react@19.1.2/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -1
  700. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-tooltip@1.2.8_@types_react-dom@19.2.3_@types_react@19.2.9__@types_react_421c67271da1a6a474ac08959878af0d/node_modules/@radix-ui/react-tooltip/dist/index.js +0 -339
  701. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-tooltip@1.2.8_@types_react-dom@19.2.3_@types_react@19.2.9__@types_react_421c67271da1a6a474ac08959878af0d/node_modules/@radix-ui/react-tooltip/dist/index.js.map +0 -1
  702. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-use-callback-ref@1.1.1_@types_react@19.2.9_react@19.1.2/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +0 -1
  703. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-use-controllable-state@1.2.2_@types_react@19.2.9_react@19.1.2/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +0 -53
  704. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-use-controllable-state@1.2.2_@types_react@19.2.9_react@19.1.2/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +0 -1
  705. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-use-escape-keydown@1.1.1_@types_react@19.2.9_react@19.1.2/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +0 -15
  706. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-use-escape-keydown@1.1.1_@types_react@19.2.9_react@19.1.2/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +0 -1
  707. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-use-layout-effect@1.1.1_@types_react@19.2.9_react@19.1.2/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +0 -1
  708. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-use-size@1.1.1_@types_react@19.2.9_react@19.1.2/node_modules/@radix-ui/react-use-size/dist/index.js +0 -28
  709. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-use-size@1.1.1_@types_react@19.2.9_react@19.1.2/node_modules/@radix-ui/react-use-size/dist/index.js.map +0 -1
  710. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-visually-hidden@1.2.3_@types_react-dom@19.2.3_@types_react@19.2.9__@typ_e2e45fd7022f5066be69e51ec4d3fca1/node_modules/@radix-ui/react-visually-hidden/dist/index.js +0 -33
  711. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@radix-ui_react-visually-hidden@1.2.3_@types_react-dom@19.2.3_@types_react@19.2.9__@typ_e2e45fd7022f5066be69e51ec4d3fca1/node_modules/@radix-ui/react-visually-hidden/dist/index.js.map +0 -1
  712. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_codemirror-extensions-basic-setup@4.25.4_@codemirror_autocomplete@6.20.0_@codemirr_2e969fddb859c2be1a8b63987ff1cf57/node_modules/@uiw/codemirror-extensions-basic-setup/esm/index.js +0 -22
  713. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_codemirror-extensions-basic-setup@4.25.4_@codemirror_autocomplete@6.20.0_@codemirr_2e969fddb859c2be1a8b63987ff1cf57/node_modules/@uiw/codemirror-extensions-basic-setup/esm/index.js.map +0 -1
  714. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_react-codemirror@4.25.4_@babel_runtime@7.28.6_@codemirror_autocomplete@6.20.0_@cod_5aa0930e9542fa1f0cad159ca60e9d87/node_modules/@uiw/react-codemirror/esm/getDefaultExtensions.js +0 -40
  715. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_react-codemirror@4.25.4_@babel_runtime@7.28.6_@codemirror_autocomplete@6.20.0_@cod_5aa0930e9542fa1f0cad159ca60e9d87/node_modules/@uiw/react-codemirror/esm/getDefaultExtensions.js.map +0 -1
  716. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_react-codemirror@4.25.4_@babel_runtime@7.28.6_@codemirror_autocomplete@6.20.0_@cod_5aa0930e9542fa1f0cad159ca60e9d87/node_modules/@uiw/react-codemirror/esm/index.js +0 -85
  717. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_react-codemirror@4.25.4_@babel_runtime@7.28.6_@codemirror_autocomplete@6.20.0_@cod_5aa0930e9542fa1f0cad159ca60e9d87/node_modules/@uiw/react-codemirror/esm/index.js.map +0 -1
  718. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_react-codemirror@4.25.4_@babel_runtime@7.28.6_@codemirror_autocomplete@6.20.0_@cod_5aa0930e9542fa1f0cad159ca60e9d87/node_modules/@uiw/react-codemirror/esm/theme/light.js +0 -12
  719. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_react-codemirror@4.25.4_@babel_runtime@7.28.6_@codemirror_autocomplete@6.20.0_@cod_5aa0930e9542fa1f0cad159ca60e9d87/node_modules/@uiw/react-codemirror/esm/theme/light.js.map +0 -1
  720. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_react-codemirror@4.25.4_@babel_runtime@7.28.6_@codemirror_autocomplete@6.20.0_@cod_5aa0930e9542fa1f0cad159ca60e9d87/node_modules/@uiw/react-codemirror/esm/timeoutLatch.js.map +0 -1
  721. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_react-codemirror@4.25.4_@babel_runtime@7.28.6_@codemirror_autocomplete@6.20.0_@cod_5aa0930e9542fa1f0cad159ca60e9d87/node_modules/@uiw/react-codemirror/esm/useCodeMirror.js +0 -130
  722. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_react-codemirror@4.25.4_@babel_runtime@7.28.6_@codemirror_autocomplete@6.20.0_@cod_5aa0930e9542fa1f0cad159ca60e9d87/node_modules/@uiw/react-codemirror/esm/useCodeMirror.js.map +0 -1
  723. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/@uiw_react-codemirror@4.25.4_@babel_runtime@7.28.6_@codemirror_autocomplete@6.20.0_@cod_5aa0930e9542fa1f0cad159ca60e9d87/node_modules/@uiw/react-codemirror/esm/utils.js.map +0 -1
  724. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/defaultLocale.js +0 -15
  725. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/defaultLocale.js.map +0 -1
  726. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/exponent.js.map +0 -1
  727. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatDecimal.js +0 -16
  728. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatDecimal.js.map +0 -1
  729. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatGroup.js.map +0 -1
  730. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatNumerals.js.map +0 -1
  731. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatPrefixAuto.js +0 -13
  732. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatPrefixAuto.js.map +0 -1
  733. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatRounded.js.map +0 -1
  734. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatSpecifier.js.map +0 -1
  735. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatTrim.js.map +0 -1
  736. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatTypes.js.map +0 -1
  737. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/identity.js.map +0 -1
  738. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/locale.js +0 -69
  739. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/locale.js.map +0 -1
  740. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/precisionFixed.js.map +0 -1
  741. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/precisionPrefix.js.map +0 -1
  742. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/precisionRound.js.map +0 -1
  743. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/dayjs.min.js.map +0 -1
  744. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/advancedFormat.js.map +0 -1
  745. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/customParseFormat.js +0 -128
  746. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/customParseFormat.js.map +0 -1
  747. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/duration.js +0 -137
  748. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/duration.js.map +0 -1
  749. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isoWeek.js +0 -34
  750. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isoWeek.js.map +0 -1
  751. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.dom.js +0 -11
  752. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.dom.js.map +0 -1
  753. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dompurify@3.3.1/node_modules/dompurify/dist/purify.es.js +0 -553
  754. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dompurify@3.3.1/node_modules/dompurify/dist/purify.es.js.map +0 -1
  755. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/hast-util-to-parse5@8.0.1/node_modules/hast-util-to-parse5/lib/index.js +0 -119
  756. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/hast-util-to-parse5@8.0.1/node_modules/hast-util-to-parse5/lib/index.js.map +0 -1
  757. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/inline-style-parser@0.2.7/node_modules/inline-style-parser/cjs/index.js +0 -94
  758. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/inline-style-parser@0.2.7/node_modules/inline-style-parser/cjs/index.js.map +0 -1
  759. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/katex@0.16.27/node_modules/katex/dist/katex.js +0 -11691
  760. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/katex@0.16.27/node_modules/katex/dist/katex.js.map +0 -1
  761. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_DataView.js +0 -7
  762. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_DataView.js.map +0 -1
  763. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Hash.js +0 -21
  764. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Hash.js.map +0 -1
  765. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_ListCache.js +0 -21
  766. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_ListCache.js.map +0 -1
  767. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Map.js +0 -7
  768. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Map.js.map +0 -1
  769. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_MapCache.js +0 -21
  770. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_MapCache.js.map +0 -1
  771. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Promise.js +0 -7
  772. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Promise.js.map +0 -1
  773. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Set.js +0 -7
  774. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Set.js.map +0 -1
  775. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_SetCache.js +0 -14
  776. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_SetCache.js.map +0 -1
  777. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Stack.js +0 -19
  778. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Stack.js.map +0 -1
  779. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Symbol.js +0 -6
  780. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Symbol.js.map +0 -1
  781. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Uint8Array.js +0 -6
  782. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Uint8Array.js.map +0 -1
  783. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_WeakMap.js +0 -7
  784. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_WeakMap.js.map +0 -1
  785. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_apply.js +0 -17
  786. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_apply.js.map +0 -1
  787. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayEach.js +0 -9
  788. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayEach.js.map +0 -1
  789. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayFilter.js +0 -11
  790. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayFilter.js.map +0 -1
  791. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayIncludes.js +0 -9
  792. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayIncludes.js.map +0 -1
  793. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayLikeKeys.js +0 -21
  794. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayLikeKeys.js.map +0 -1
  795. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayMap.js +0 -9
  796. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayMap.js.map +0 -1
  797. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayPush.js +0 -9
  798. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayPush.js.map +0 -1
  799. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayReduce.js +0 -10
  800. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayReduce.js.map +0 -1
  801. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arraySome.js +0 -10
  802. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arraySome.js.map +0 -1
  803. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_assignMergeValue.js.map +0 -1
  804. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_assignValue.js +0 -11
  805. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_assignValue.js.map +0 -1
  806. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_assocIndexOf.js +0 -11
  807. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_assocIndexOf.js.map +0 -1
  808. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseAssign.js +0 -9
  809. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseAssign.js.map +0 -1
  810. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseAssignIn.js +0 -9
  811. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseAssignIn.js.map +0 -1
  812. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseAssignValue.js +0 -13
  813. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseAssignValue.js.map +0 -1
  814. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseClone.js +0 -66
  815. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseClone.js.map +0 -1
  816. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseCreate.js +0 -18
  817. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseCreate.js.map +0 -1
  818. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseEach.js +0 -7
  819. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseEach.js.map +0 -1
  820. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseExtremum.js.map +0 -1
  821. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseFilter.js +0 -11
  822. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseFilter.js.map +0 -1
  823. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseFindIndex.js +0 -10
  824. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseFindIndex.js.map +0 -1
  825. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseFlatten.js +0 -14
  826. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseFlatten.js.map +0 -1
  827. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseFor.js +0 -6
  828. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseFor.js.map +0 -1
  829. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseForOwn.js +0 -9
  830. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseForOwn.js.map +0 -1
  831. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseGet.js +0 -12
  832. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseGet.js.map +0 -1
  833. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseGetAllKeys.js +0 -10
  834. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseGetAllKeys.js.map +0 -1
  835. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseGetTag.js +0 -11
  836. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseGetTag.js.map +0 -1
  837. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseGt.js.map +0 -1
  838. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseHas.js +0 -8
  839. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseHas.js.map +0 -1
  840. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseHasIn.js +0 -7
  841. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseHasIn.js.map +0 -1
  842. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIndexOf.js +0 -10
  843. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIndexOf.js.map +0 -1
  844. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsArguments.js +0 -10
  845. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsArguments.js.map +0 -1
  846. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsEqual.js +0 -9
  847. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsEqual.js.map +0 -1
  848. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsEqualDeep.js +0 -33
  849. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsEqualDeep.js.map +0 -1
  850. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsMap.js +0 -10
  851. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsMap.js.map +0 -1
  852. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsMatch.js +0 -30
  853. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsMatch.js.map +0 -1
  854. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsNaN.js +0 -7
  855. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsNaN.js.map +0 -1
  856. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsNative.js +0 -17
  857. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsNative.js.map +0 -1
  858. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsSet.js +0 -10
  859. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsSet.js.map +0 -1
  860. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsTypedArray.js +0 -13
  861. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsTypedArray.js.map +0 -1
  862. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIteratee.js +0 -12
  863. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIteratee.js.map +0 -1
  864. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseKeys.js +0 -15
  865. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseKeys.js.map +0 -1
  866. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseKeysIn.js +0 -16
  867. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseKeysIn.js.map +0 -1
  868. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseLt.js.map +0 -1
  869. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMap.js +0 -12
  870. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMap.js.map +0 -1
  871. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMatches.js +0 -13
  872. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMatches.js.map +0 -1
  873. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMatchesProperty.js +0 -18
  874. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMatchesProperty.js.map +0 -1
  875. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMerge.js.map +0 -1
  876. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMergeDeep.js.map +0 -1
  877. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseOrderBy.js.map +0 -1
  878. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_basePick.js.map +0 -1
  879. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_basePickBy.js +0 -14
  880. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_basePickBy.js.map +0 -1
  881. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseProperty.js +0 -9
  882. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseProperty.js.map +0 -1
  883. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_basePropertyDeep.js +0 -10
  884. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_basePropertyDeep.js.map +0 -1
  885. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseRange.js.map +0 -1
  886. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseReduce.js +0 -9
  887. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseReduce.js.map +0 -1
  888. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseRest.js +0 -10
  889. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseRest.js.map +0 -1
  890. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseSet.js +0 -25
  891. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseSet.js.map +0 -1
  892. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseSetToString.js +0 -15
  893. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseSetToString.js.map +0 -1
  894. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseSortBy.js.map +0 -1
  895. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseTimes.js +0 -9
  896. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseTimes.js.map +0 -1
  897. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseToString.js +0 -19
  898. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseToString.js.map +0 -1
  899. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseTrim.js +0 -9
  900. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseTrim.js.map +0 -1
  901. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseUnary.js +0 -9
  902. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseUnary.js.map +0 -1
  903. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseUniq.js +0 -31
  904. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseUniq.js.map +0 -1
  905. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseValues.js +0 -10
  906. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseValues.js.map +0 -1
  907. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseZipObject.js.map +0 -1
  908. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cacheHas.js +0 -7
  909. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cacheHas.js.map +0 -1
  910. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_castFunction.js +0 -8
  911. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_castFunction.js.map +0 -1
  912. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_castPath.js +0 -11
  913. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_castPath.js.map +0 -1
  914. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneArrayBuffer.js +0 -9
  915. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneArrayBuffer.js.map +0 -1
  916. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneBuffer.js +0 -12
  917. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneBuffer.js.map +0 -1
  918. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneDataView.js +0 -9
  919. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneDataView.js.map +0 -1
  920. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneRegExp.js +0 -9
  921. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneRegExp.js.map +0 -1
  922. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneSymbol.js +0 -9
  923. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneSymbol.js.map +0 -1
  924. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneTypedArray.js +0 -9
  925. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneTypedArray.js.map +0 -1
  926. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_compareAscending.js.map +0 -1
  927. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_compareMultiple.js.map +0 -1
  928. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copyArray.js +0 -10
  929. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copyArray.js.map +0 -1
  930. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copyObject.js +0 -15
  931. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copyObject.js.map +0 -1
  932. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copySymbols.js +0 -9
  933. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copySymbols.js.map +0 -1
  934. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copySymbolsIn.js +0 -9
  935. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copySymbolsIn.js.map +0 -1
  936. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_coreJsData.js +0 -6
  937. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_coreJsData.js.map +0 -1
  938. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createAssigner.js +0 -16
  939. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createAssigner.js.map +0 -1
  940. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createBaseEach.js +0 -16
  941. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createBaseEach.js.map +0 -1
  942. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createBaseFor.js +0 -14
  943. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createBaseFor.js.map +0 -1
  944. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createFind.js +0 -20
  945. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createFind.js.map +0 -1
  946. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createRange.js.map +0 -1
  947. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createSet.js +0 -10
  948. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createSet.js.map +0 -1
  949. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_defineProperty.js +0 -12
  950. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_defineProperty.js.map +0 -1
  951. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_equalArrays.js +0 -41
  952. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_equalArrays.js.map +0 -1
  953. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_equalByTag.js +0 -46
  954. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_equalByTag.js.map +0 -1
  955. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_equalObjects.js +0 -37
  956. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_equalObjects.js.map +0 -1
  957. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_flatRest.js.map +0 -1
  958. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_freeGlobal.js +0 -5
  959. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_freeGlobal.js.map +0 -1
  960. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getAllKeys.js +0 -10
  961. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getAllKeys.js.map +0 -1
  962. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getAllKeysIn.js +0 -10
  963. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getAllKeysIn.js.map +0 -1
  964. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getMapData.js +0 -9
  965. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getMapData.js.map +0 -1
  966. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getMatchData.js +0 -13
  967. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getMatchData.js.map +0 -1
  968. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getNative.js +0 -10
  969. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getNative.js.map +0 -1
  970. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getPrototype.js +0 -6
  971. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getPrototype.js.map +0 -1
  972. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getRawTag.js +0 -16
  973. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getRawTag.js.map +0 -1
  974. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getSymbols.js +0 -11
  975. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getSymbols.js.map +0 -1
  976. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getSymbolsIn.js +0 -13
  977. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getSymbolsIn.js.map +0 -1
  978. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getTag.js +0 -29
  979. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getTag.js.map +0 -1
  980. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getValue.js +0 -7
  981. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getValue.js.map +0 -1
  982. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hasPath.js +0 -20
  983. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hasPath.js.map +0 -1
  984. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashClear.js +0 -8
  985. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashClear.js.map +0 -1
  986. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashDelete.js +0 -8
  987. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashDelete.js.map +0 -1
  988. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashGet.js +0 -14
  989. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashGet.js.map +0 -1
  990. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashHas.js +0 -10
  991. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashHas.js.map +0 -1
  992. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashSet.js +0 -10
  993. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashSet.js.map +0 -1
  994. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_initCloneArray.js +0 -9
  995. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_initCloneArray.js.map +0 -1
  996. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_initCloneByTag.js +0 -43
  997. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_initCloneByTag.js.map +0 -1
  998. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_initCloneObject.js +0 -10
  999. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_initCloneObject.js.map +0 -1
  1000. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isFlattenable.js +0 -11
  1001. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isFlattenable.js.map +0 -1
  1002. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isIndex.js +0 -9
  1003. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isIndex.js.map +0 -1
  1004. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isIterateeCall.js +0 -14
  1005. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isIterateeCall.js.map +0 -1
  1006. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isKey.js +0 -13
  1007. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isKey.js.map +0 -1
  1008. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isKeyable.js +0 -8
  1009. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isKeyable.js.map +0 -1
  1010. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isMasked.js +0 -12
  1011. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isMasked.js.map +0 -1
  1012. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isPrototype.js +0 -9
  1013. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isPrototype.js.map +0 -1
  1014. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isStrictComparable.js +0 -8
  1015. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isStrictComparable.js.map +0 -1
  1016. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheClear.js +0 -7
  1017. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheClear.js.map +0 -1
  1018. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheDelete.js +0 -13
  1019. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheDelete.js.map +0 -1
  1020. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheGet.js +0 -9
  1021. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheGet.js.map +0 -1
  1022. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheHas.js +0 -8
  1023. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheHas.js.map +0 -1
  1024. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheSet.js +0 -9
  1025. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheSet.js.map +0 -1
  1026. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheClear.js +0 -14
  1027. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheClear.js.map +0 -1
  1028. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheDelete.js +0 -9
  1029. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheDelete.js.map +0 -1
  1030. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheGet.js +0 -8
  1031. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheGet.js.map +0 -1
  1032. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheHas.js +0 -8
  1033. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheHas.js.map +0 -1
  1034. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheSet.js +0 -9
  1035. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheSet.js.map +0 -1
  1036. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapToArray.js +0 -10
  1037. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapToArray.js.map +0 -1
  1038. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_matchesStrictComparable.js +0 -9
  1039. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_matchesStrictComparable.js.map +0 -1
  1040. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_memoizeCapped.js +0 -12
  1041. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_memoizeCapped.js.map +0 -1
  1042. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nativeCreate.js +0 -6
  1043. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nativeCreate.js.map +0 -1
  1044. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nativeKeys.js +0 -6
  1045. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nativeKeys.js.map +0 -1
  1046. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nativeKeysIn.js +0 -11
  1047. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nativeKeysIn.js.map +0 -1
  1048. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nodeUtil.js +0 -12
  1049. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nodeUtil.js.map +0 -1
  1050. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_objectToString.js +0 -8
  1051. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_objectToString.js.map +0 -1
  1052. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_overArg.js +0 -9
  1053. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_overArg.js.map +0 -1
  1054. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_overRest.js +0 -16
  1055. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_overRest.js.map +0 -1
  1056. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_root.js +0 -6
  1057. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_root.js.map +0 -1
  1058. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_safeGet.js.map +0 -1
  1059. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setCacheAdd.js +0 -8
  1060. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setCacheAdd.js.map +0 -1
  1061. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setCacheHas.js +0 -7
  1062. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setCacheHas.js.map +0 -1
  1063. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setToArray.js +0 -10
  1064. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setToArray.js.map +0 -1
  1065. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setToString.js +0 -7
  1066. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setToString.js.map +0 -1
  1067. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_shortOut.js +0 -17
  1068. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_shortOut.js.map +0 -1
  1069. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackClear.js +0 -8
  1070. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackClear.js.map +0 -1
  1071. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackDelete.js +0 -8
  1072. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackDelete.js.map +0 -1
  1073. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackGet.js +0 -7
  1074. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackGet.js.map +0 -1
  1075. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackHas.js +0 -7
  1076. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackHas.js.map +0 -1
  1077. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackSet.js +0 -18
  1078. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackSet.js.map +0 -1
  1079. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_strictIndexOf.js +0 -10
  1080. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_strictIndexOf.js.map +0 -1
  1081. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stringToPath.js +0 -11
  1082. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stringToPath.js.map +0 -1
  1083. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_toKey.js +0 -11
  1084. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_toKey.js.map +0 -1
  1085. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_toSource.js +0 -18
  1086. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_toSource.js.map +0 -1
  1087. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_trimmedEndIndex.js +0 -10
  1088. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_trimmedEndIndex.js.map +0 -1
  1089. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/clone.js +0 -9
  1090. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/clone.js.map +0 -1
  1091. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/cloneDeep.js.map +0 -1
  1092. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/constant.js +0 -9
  1093. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/constant.js.map +0 -1
  1094. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/defaults.js +0 -18
  1095. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/defaults.js.map +0 -1
  1096. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/eq.js +0 -7
  1097. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/eq.js.map +0 -1
  1098. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/filter.js +0 -12
  1099. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/filter.js.map +0 -1
  1100. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/find.js +0 -7
  1101. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/find.js.map +0 -1
  1102. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/findIndex.js +0 -15
  1103. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/findIndex.js.map +0 -1
  1104. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/flatMap.js +0 -9
  1105. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/flatMap.js.map +0 -1
  1106. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/flatten.js +0 -9
  1107. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/flatten.js.map +0 -1
  1108. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/forEach.js +0 -12
  1109. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/forEach.js.map +0 -1
  1110. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/forIn.js.map +0 -1
  1111. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/forOwn.js.map +0 -1
  1112. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/get.js +0 -9
  1113. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/get.js.map +0 -1
  1114. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/has.js +0 -9
  1115. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/has.js.map +0 -1
  1116. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/hasIn.js +0 -9
  1117. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/hasIn.js.map +0 -1
  1118. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/identity.js +0 -7
  1119. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/identity.js.map +0 -1
  1120. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArguments.js +0 -11
  1121. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArguments.js.map +0 -1
  1122. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArray.js +0 -5
  1123. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArray.js.map +0 -1
  1124. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArrayLike.js +0 -9
  1125. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArrayLike.js.map +0 -1
  1126. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArrayLikeObject.js +0 -9
  1127. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArrayLikeObject.js.map +0 -1
  1128. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isBuffer.js +0 -7
  1129. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isBuffer.js.map +0 -1
  1130. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isEmpty.js +0 -28
  1131. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isEmpty.js.map +0 -1
  1132. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isFunction.js +0 -13
  1133. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isFunction.js.map +0 -1
  1134. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isLength.js +0 -8
  1135. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isLength.js.map +0 -1
  1136. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isMap.js +0 -8
  1137. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isMap.js.map +0 -1
  1138. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isObject.js +0 -8
  1139. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isObject.js.map +0 -1
  1140. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isObjectLike.js +0 -7
  1141. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isObjectLike.js.map +0 -1
  1142. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isPlainObject.js.map +0 -1
  1143. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isSet.js +0 -8
  1144. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isSet.js.map +0 -1
  1145. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isSymbol.js +0 -10
  1146. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isSymbol.js.map +0 -1
  1147. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isTypedArray.js +0 -8
  1148. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isTypedArray.js.map +0 -1
  1149. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isUndefined.js +0 -7
  1150. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isUndefined.js.map +0 -1
  1151. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/keys.js +0 -10
  1152. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/keys.js.map +0 -1
  1153. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/keysIn.js +0 -10
  1154. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/keysIn.js.map +0 -1
  1155. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/last.js +0 -8
  1156. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/last.js.map +0 -1
  1157. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/map.js +0 -12
  1158. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/map.js.map +0 -1
  1159. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/mapValues.js.map +0 -1
  1160. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/max.js.map +0 -1
  1161. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/memoize.js +0 -19
  1162. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/memoize.js.map +0 -1
  1163. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/merge.js.map +0 -1
  1164. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/min.js.map +0 -1
  1165. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/minBy.js.map +0 -1
  1166. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/noop.js +0 -6
  1167. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/noop.js.map +0 -1
  1168. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/pick.js.map +0 -1
  1169. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/property.js +0 -11
  1170. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/property.js.map +0 -1
  1171. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/range.js.map +0 -1
  1172. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/reduce.js +0 -13
  1173. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/reduce.js.map +0 -1
  1174. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/sortBy.js.map +0 -1
  1175. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/stubArray.js +0 -7
  1176. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/stubArray.js.map +0 -1
  1177. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/stubFalse.js +0 -7
  1178. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/stubFalse.js.map +0 -1
  1179. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toFinite.js +0 -15
  1180. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toFinite.js.map +0 -1
  1181. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toInteger.js +0 -9
  1182. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toInteger.js.map +0 -1
  1183. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toNumber.js +0 -23
  1184. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toNumber.js.map +0 -1
  1185. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toPlainObject.js.map +0 -1
  1186. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toString.js +0 -8
  1187. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toString.js.map +0 -1
  1188. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/union.js.map +0 -1
  1189. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/uniqBy.js.map +0 -1
  1190. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/uniqueId.js.map +0 -1
  1191. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/values.js +0 -9
  1192. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/values.js.map +0 -1
  1193. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/zipObject.js.map +0 -1
  1194. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/Icon.js +0 -36
  1195. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/Icon.js.map +0 -1
  1196. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/createLucideIcon.js +0 -22
  1197. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/createLucideIcon.js.map +0 -1
  1198. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/defaultAttributes.js +0 -15
  1199. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/defaultAttributes.js.map +0 -1
  1200. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/braces.js +0 -19
  1201. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/braces.js.map +0 -1
  1202. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/check.js +0 -7
  1203. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/check.js.map +0 -1
  1204. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/circle-check.js +0 -10
  1205. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/circle-check.js.map +0 -1
  1206. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/copy.js +0 -10
  1207. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/copy.js.map +0 -1
  1208. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/file-type.js +0 -13
  1209. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/file-type.js.map +0 -1
  1210. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/image.js +0 -11
  1211. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/image.js.map +0 -1
  1212. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/loader-circle.js +0 -7
  1213. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/loader-circle.js.map +0 -1
  1214. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/plus.js +0 -10
  1215. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/plus.js.map +0 -1
  1216. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/search.js +0 -10
  1217. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/search.js.map +0 -1
  1218. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/square-check.js +0 -10
  1219. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/square-check.js.map +0 -1
  1220. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/square-play.js +0 -10
  1221. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/square-play.js.map +0 -1
  1222. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/text-cursor-input.js +0 -13
  1223. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/text-cursor-input.js.map +0 -1
  1224. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/upload.js +0 -11
  1225. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/upload.js.map +0 -1
  1226. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/x.js +0 -10
  1227. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/icons/x.js.map +0 -1
  1228. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/shared/src/utils.js +0 -19
  1229. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lucide-react@0.525.0_react@19.1.2/node_modules/lucide-react/dist/esm/shared/src/utils.js.map +0 -1
  1230. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/marked@16.4.2/node_modules/marked/lib/marked.esm.js +0 -1095
  1231. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/marked@16.4.2/node_modules/marked/lib/marked.esm.js.map +0 -1
  1232. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/footer.js.map +0 -1
  1233. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js.map +0 -1
  1234. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/break.js.map +0 -1
  1235. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/code.js +0 -16
  1236. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/code.js.map +0 -1
  1237. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/delete.js.map +0 -1
  1238. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js.map +0 -1
  1239. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js.map +0 -1
  1240. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/heading.js.map +0 -1
  1241. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/html.js.map +0 -1
  1242. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js.map +0 -1
  1243. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/image.js.map +0 -1
  1244. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/index.js.map +0 -1
  1245. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js.map +0 -1
  1246. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js.map +0 -1
  1247. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/link.js.map +0 -1
  1248. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/list-item.js.map +0 -1
  1249. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/list.js.map +0 -1
  1250. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js.map +0 -1
  1251. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/root.js.map +0 -1
  1252. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/strong.js.map +0 -1
  1253. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js.map +0 -1
  1254. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table-row.js.map +0 -1
  1255. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table.js.map +0 -1
  1256. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/text.js.map +0 -1
  1257. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js.map +0 -1
  1258. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/index.js.map +0 -1
  1259. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/revert.js.map +0 -1
  1260. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/state.js +0 -105
  1261. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/state.js.map +0 -1
  1262. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/architectureDiagram-VXUJARFQ.js +0 -831
  1263. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/architectureDiagram-VXUJARFQ.js.map +0 -1
  1264. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/blockDiagram-VD42YOAC.js +0 -2268
  1265. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/blockDiagram-VD42YOAC.js.map +0 -1
  1266. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/c4Diagram-YG6GDRKO.js +0 -1587
  1267. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/c4Diagram-YG6GDRKO.js.map +0 -1
  1268. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-4BX2VUAB.js.map +0 -1
  1269. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-55IACEB6.js.map +0 -1
  1270. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ABZYJK2D.js +0 -1442
  1271. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ABZYJK2D.js.map +0 -1
  1272. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-AGHRB4JF.js.map +0 -1
  1273. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ATLVNIR6.js.map +0 -1
  1274. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-B4BG7PRW.js.map +0 -1
  1275. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-CVBHYZKI.js.map +0 -1
  1276. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-DI55MBZ5.js.map +0 -1
  1277. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-EXTU4WIE.js.map +0 -1
  1278. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-FMBD7UC4.js.map +0 -1
  1279. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-HN2XXSSU.js.map +0 -1
  1280. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-JA3XYJ7Z.js +0 -275
  1281. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-JA3XYJ7Z.js.map +0 -1
  1282. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-JZLCHNYA.js.map +0 -1
  1283. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-MI3HLSF2.js +0 -1415
  1284. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-MI3HLSF2.js.map +0 -1
  1285. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-N4CR4FBY.js.map +0 -1
  1286. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-QN33PNHL.js.map +0 -1
  1287. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-QXUST7PY.js.map +0 -1
  1288. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-QZHKN3VN.js.map +0 -1
  1289. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-S3R3BYOJ.js +0 -377
  1290. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-S3R3BYOJ.js.map +0 -1
  1291. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-TZMSLE5B.js +0 -67
  1292. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-TZMSLE5B.js.map +0 -1
  1293. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-XAJISQIX.js +0 -145
  1294. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-XAJISQIX.js.map +0 -1
  1295. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-2ON5EDUG.js.map +0 -1
  1296. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-v2-WZHVMYZB.js.map +0 -1
  1297. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/cose-bilkent-S5V4N54A.js.map +0 -1
  1298. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/dagre-6UL2VRFP.js.map +0 -1
  1299. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/diagram-PSM6KHXK.js +0 -324
  1300. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/diagram-PSM6KHXK.js.map +0 -1
  1301. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/diagram-QEK2KX5R.js +0 -221
  1302. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/diagram-QEK2KX5R.js.map +0 -1
  1303. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/diagram-S2PKOQOG.js +0 -146
  1304. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/diagram-S2PKOQOG.js.map +0 -1
  1305. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/erDiagram-Q2GNP2WA.js +0 -853
  1306. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/erDiagram-Q2GNP2WA.js.map +0 -1
  1307. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/flowDiagram-NV44I4VS.js +0 -1633
  1308. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/flowDiagram-NV44I4VS.js.map +0 -1
  1309. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/ganttDiagram-JELNMOA3.js +0 -1477
  1310. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/ganttDiagram-JELNMOA3.js.map +0 -1
  1311. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/gitGraphDiagram-NY62KEGX.js +0 -705
  1312. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/gitGraphDiagram-NY62KEGX.js.map +0 -1
  1313. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/infoDiagram-WHAUD3N6.js +0 -28
  1314. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/infoDiagram-WHAUD3N6.js.map +0 -1
  1315. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/journeyDiagram-XKPGCS4Q.js.map +0 -1
  1316. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/kanban-definition-3W4ZIXB7.js.map +0 -1
  1317. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/mindmap-definition-VGOIOE7T.js.map +0 -1
  1318. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/pieDiagram-ADFJNKIX.js.map +0 -1
  1319. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/quadrantDiagram-AYHSOK5B.js +0 -1027
  1320. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/quadrantDiagram-AYHSOK5B.js.map +0 -1
  1321. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/requirementDiagram-UZGBJVZJ.js.map +0 -1
  1322. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/sankeyDiagram-TZEHDZUN.js.map +0 -1
  1323. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/sequenceDiagram-WL72ISMW.js +0 -2519
  1324. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/sequenceDiagram-WL72ISMW.js.map +0 -1
  1325. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-FKZM4ZOC.js.map +0 -1
  1326. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-v2-4FDKWEC3.js.map +0 -1
  1327. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/timeline-definition-IT6M3QCI.js.map +0 -1
  1328. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/xychartDiagram-PRI3JC2R.js +0 -1306
  1329. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/xychartDiagram-PRI3JC2R.js.map +0 -1
  1330. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/mermaid.core.js +0 -705
  1331. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/mermaid.core.js.map +0 -1
  1332. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-input@1.8.0_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-input/es/BaseInput.js +0 -73
  1333. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-input@1.8.0_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-input/es/BaseInput.js.map +0 -1
  1334. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-input@1.8.0_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-input/es/hooks/useCount.js +0 -23
  1335. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-input@1.8.0_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-input/es/hooks/useCount.js.map +0 -1
  1336. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-input@1.8.0_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-input/es/utils/commonUtils.js.map +0 -1
  1337. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-resize-observer@1.4.3_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-resize-observer/es/Collection.js.map +0 -1
  1338. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-resize-observer@1.4.3_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js +0 -22
  1339. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-resize-observer@1.4.3_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js.map +0 -1
  1340. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-resize-observer@1.4.3_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-resize-observer/es/SingleObserver/index.js +0 -60
  1341. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-resize-observer@1.4.3_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-resize-observer/es/SingleObserver/index.js.map +0 -1
  1342. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-resize-observer@1.4.3_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-resize-observer/es/index.js +0 -25
  1343. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-resize-observer@1.4.3_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-resize-observer/es/index.js.map +0 -1
  1344. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-resize-observer@1.4.3_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-resize-observer/es/utils/observerUtil.js.map +0 -1
  1345. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-textarea@1.10.2_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-textarea/es/ResizableTextArea.js +0 -69
  1346. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-textarea@1.10.2_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-textarea/es/ResizableTextArea.js.map +0 -1
  1347. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-textarea@1.10.2_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-textarea/es/TextArea.js +0 -125
  1348. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-textarea@1.10.2_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-textarea/es/TextArea.js.map +0 -1
  1349. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-textarea@1.10.2_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-textarea/es/calculateNodeHeight.js.map +0 -1
  1350. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-textarea@1.10.2_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-textarea/es/index.js +0 -10
  1351. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-util/es/Children/toArray.js.map +0 -1
  1352. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-util/es/Dom/canUseDom.js.map +0 -1
  1353. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-util/es/Dom/findDOMNode.js +0 -25
  1354. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-util/es/Dom/findDOMNode.js.map +0 -1
  1355. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-util/es/React/isFragment.js +0 -14
  1356. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-util/es/React/isFragment.js.map +0 -1
  1357. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-util/es/hooks/useEvent.js.map +0 -1
  1358. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-util/es/hooks/useLayoutEffect.js.map +0 -1
  1359. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-util/es/hooks/useMemo.js.map +0 -1
  1360. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-util/es/hooks/useMergedState.js +0 -26
  1361. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-util/es/hooks/useMergedState.js.map +0 -1
  1362. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-util/es/hooks/useState.js +0 -18
  1363. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-util/es/hooks/useState.js.map +0 -1
  1364. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-util/es/raf.js.map +0 -1
  1365. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-util/es/ref.js +0 -53
  1366. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-util/es/ref.js.map +0 -1
  1367. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/rc-util/es/warning.js.map +0 -1
  1368. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-dom@19.1.2_react@19.1.2/node_modules/react-dom/cjs/react-dom-client.development.js +0 -15280
  1369. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-dom@19.1.2_react@19.1.2/node_modules/react-dom/cjs/react-dom-client.development.js.map +0 -1
  1370. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-dom@19.1.2_react@19.1.2/node_modules/react-dom/cjs/react-dom-client.production.js +0 -9364
  1371. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-dom@19.1.2_react@19.1.2/node_modules/react-dom/cjs/react-dom-client.production.js.map +0 -1
  1372. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-dom@19.1.2_react@19.1.2/node_modules/react-dom/client.js +0 -24
  1373. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-dom@19.1.2_react@19.1.2/node_modules/react-dom/client.js.map +0 -1
  1374. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-i18next@15.7.4_i18next@23.16.8_react-dom@19.1.2_react@19.1.2__react@19.1.2_typescript@5.9.3/node_modules/react-i18next/dist/es/context.js.map +0 -1
  1375. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-i18next@15.7.4_i18next@23.16.8_react-dom@19.1.2_react@19.1.2__react@19.1.2_typescript@5.9.3/node_modules/react-i18next/dist/es/defaults.js.map +0 -1
  1376. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-i18next@15.7.4_i18next@23.16.8_react-dom@19.1.2_react@19.1.2__react@19.1.2_typescript@5.9.3/node_modules/react-i18next/dist/es/i18nInstance.js.map +0 -1
  1377. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-i18next@15.7.4_i18next@23.16.8_react-dom@19.1.2_react@19.1.2__react@19.1.2_typescript@5.9.3/node_modules/react-i18next/dist/es/initReactI18next.js.map +0 -1
  1378. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-i18next@15.7.4_i18next@23.16.8_react-dom@19.1.2_react@19.1.2__react@19.1.2_typescript@5.9.3/node_modules/react-i18next/dist/es/unescape.js.map +0 -1
  1379. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-i18next@15.7.4_i18next@23.16.8_react-dom@19.1.2_react@19.1.2__react@19.1.2_typescript@5.9.3/node_modules/react-i18next/dist/es/useTranslation.js +0 -66
  1380. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-i18next@15.7.4_i18next@23.16.8_react-dom@19.1.2_react@19.1.2__react@19.1.2_typescript@5.9.3/node_modules/react-i18next/dist/es/useTranslation.js.map +0 -1
  1381. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-i18next@15.7.4_i18next@23.16.8_react-dom@19.1.2_react@19.1.2__react@19.1.2_typescript@5.9.3/node_modules/react-i18next/dist/es/utils.js.map +0 -1
  1382. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-markdown@10.1.0_@types_react@19.2.9_react@19.1.2/node_modules/react-markdown/lib/index.js +0 -103
  1383. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-markdown@10.1.0_@types_react@19.2.9_react@19.1.2/node_modules/react-markdown/lib/index.js.map +0 -1
  1384. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types_react@19.2.9_react@19.1.2/node_modules/react-remove-scroll-bar/dist/es2015/component.js +0 -72
  1385. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types_react@19.2.9_react@19.1.2/node_modules/react-remove-scroll-bar/dist/es2015/component.js.map +0 -1
  1386. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types_react@19.2.9_react@19.1.2/node_modules/react-remove-scroll-bar/dist/es2015/constants.js.map +0 -1
  1387. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types_react@19.2.9_react@19.1.2/node_modules/react-remove-scroll-bar/dist/es2015/utils.js.map +0 -1
  1388. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.2_@types_react@19.2.9_react@19.1.2/node_modules/react-remove-scroll/dist/es2015/Combination.js.map +0 -1
  1389. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.2_@types_react@19.2.9_react@19.1.2/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +0 -116
  1390. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.2_@types_react@19.2.9_react@19.1.2/node_modules/react-remove-scroll/dist/es2015/SideEffect.js.map +0 -1
  1391. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.2_@types_react@19.2.9_react@19.1.2/node_modules/react-remove-scroll/dist/es2015/UI.js +0 -32
  1392. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.2_@types_react@19.2.9_react@19.1.2/node_modules/react-remove-scroll/dist/es2015/UI.js.map +0 -1
  1393. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.2_@types_react@19.2.9_react@19.1.2/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js.map +0 -1
  1394. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.2_@types_react@19.2.9_react@19.1.2/node_modules/react-remove-scroll/dist/es2015/handleScroll.js.map +0 -1
  1395. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.2_@types_react@19.2.9_react@19.1.2/node_modules/react-remove-scroll/dist/es2015/medium.js +0 -6
  1396. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.2_@types_react@19.2.9_react@19.1.2/node_modules/react-remove-scroll/dist/es2015/medium.js.map +0 -1
  1397. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.2_@types_react@19.2.9_react@19.1.2/node_modules/react-remove-scroll/dist/es2015/sidecar.js +0 -8
  1398. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-remove-scroll@2.7.2_@types_react@19.2.9_react@19.1.2/node_modules/react-remove-scroll/dist/es2015/sidecar.js.map +0 -1
  1399. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-style-singleton@2.2.3_@types_react@19.2.9_react@19.1.2/node_modules/react-style-singleton/dist/es2015/component.js.map +0 -1
  1400. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-style-singleton@2.2.3_@types_react@19.2.9_react@19.1.2/node_modules/react-style-singleton/dist/es2015/hook.js.map +0 -1
  1401. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react-style-singleton@2.2.3_@types_react@19.2.9_react@19.1.2/node_modules/react-style-singleton/dist/es2015/singleton.js.map +0 -1
  1402. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react@19.1.2/node_modules/react/cjs/react-jsx-runtime.development.js +0 -239
  1403. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react@19.1.2/node_modules/react/cjs/react-jsx-runtime.development.js.map +0 -1
  1404. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react@19.1.2/node_modules/react/cjs/react-jsx-runtime.production.js +0 -27
  1405. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react@19.1.2/node_modules/react/cjs/react-jsx-runtime.production.js.map +0 -1
  1406. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react@19.1.2/node_modules/react/jsx-runtime.js.map +0 -1
  1407. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/scheduler@0.26.0/node_modules/scheduler/cjs/scheduler.development.js +0 -228
  1408. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/scheduler@0.26.0/node_modules/scheduler/cjs/scheduler.development.js.map +0 -1
  1409. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/scheduler@0.26.0/node_modules/scheduler/cjs/scheduler.production.js +0 -225
  1410. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/scheduler@0.26.0/node_modules/scheduler/cjs/scheduler.production.js.map +0 -1
  1411. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/scheduler@0.26.0/node_modules/scheduler/index.js +0 -11
  1412. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/scheduler@0.26.0/node_modules/scheduler/index.js.map +0 -1
  1413. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/cjs/index.js +0 -21
  1414. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/cjs/index.js.map +0 -1
  1415. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/cjs/utilities.js.map +0 -1
  1416. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/style-to-object@1.0.14/node_modules/style-to-object/cjs/index.js +0 -29
  1417. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/style-to-object@1.0.14/node_modules/style-to-object/cjs/index.js.map +0 -1
  1418. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/tailwind-merge@3.4.0/node_modules/tailwind-merge/dist/bundle-mjs.js +0 -2766
  1419. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/tailwind-merge@3.4.0/node_modules/tailwind-merge/dist/bundle-mjs.js.map +0 -1
  1420. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/lib/index.js.map +0 -1
  1421. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/use-callback-ref@1.3.3_@types_react@19.2.9_react@19.1.2/node_modules/use-callback-ref/dist/es2015/assignRef.js.map +0 -1
  1422. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/use-callback-ref@1.3.3_@types_react@19.2.9_react@19.1.2/node_modules/use-callback-ref/dist/es2015/useMergeRef.js.map +0 -1
  1423. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/use-callback-ref@1.3.3_@types_react@19.2.9_react@19.1.2/node_modules/use-callback-ref/dist/es2015/useRef.js.map +0 -1
  1424. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/use-sidecar@1.1.3_@types_react@19.2.9_react@19.1.2/node_modules/use-sidecar/dist/es2015/exports.js.map +0 -1
  1425. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/use-sidecar@1.1.3_@types_react@19.2.9_react@19.1.2/node_modules/use-sidecar/dist/es2015/medium.js.map +0 -1
  1426. package/dist/_virtual/client.js +0 -6
  1427. package/dist/_virtual/client.js.map +0 -1
  1428. package/dist/_virtual/client2.js +0 -5
  1429. package/dist/_virtual/client2.js.map +0 -1
  1430. package/dist/_virtual/duration.js +0 -8
  1431. package/dist/_virtual/duration.js.map +0 -1
  1432. package/dist/_virtual/duration2.js +0 -5
  1433. package/dist/_virtual/duration2.js.map +0 -1
  1434. package/dist/_virtual/index13.js +0 -5
  1435. package/dist/_virtual/index13.js.map +0 -1
  1436. package/dist/_virtual/react-dom-client.development.js +0 -5
  1437. package/dist/_virtual/react-dom-client.development.js.map +0 -1
  1438. package/dist/_virtual/react-dom-client.production.js +0 -5
  1439. package/dist/_virtual/react-dom-client.production.js.map +0 -1
  1440. package/dist/_virtual/scheduler.development.js +0 -5
  1441. package/dist/_virtual/scheduler.development.js.map +0 -1
  1442. package/dist/_virtual/scheduler.production.js +0 -5
  1443. package/dist/_virtual/scheduler.production.js.map +0 -1
  1444. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +0 -0
  1445. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js +0 -0
  1446. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js +0 -0
  1447. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +0 -0
  1448. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +0 -0
  1449. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/createClass.js +0 -0
  1450. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/createSuper.js +0 -0
  1451. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/defineProperty.js +0 -0
  1452. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/extends.js +0 -0
  1453. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js +0 -0
  1454. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/inherits.js +0 -0
  1455. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js +0 -0
  1456. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/iterableToArray.js +0 -0
  1457. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js +0 -0
  1458. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js +0 -0
  1459. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js +0 -0
  1460. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/objectSpread2.js +0 -0
  1461. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js +0 -0
  1462. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +0 -0
  1463. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js +0 -0
  1464. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +0 -0
  1465. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/slicedToArray.js +0 -0
  1466. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js +0 -0
  1467. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +0 -0
  1468. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +0 -0
  1469. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/typeof.js +0 -0
  1470. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@babel_runtime@7.28.6 → @babel_runtime@7.28.4}/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +0 -0
  1471. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@iconify_utils@3.1.0 → @iconify_utils@3.0.2}/node_modules/@iconify/utils/lib/customisations/defaults.js +0 -0
  1472. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@iconify_utils@3.1.0 → @iconify_utils@3.0.2}/node_modules/@iconify/utils/lib/icon/defaults.js +0 -0
  1473. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@iconify_utils@3.1.0 → @iconify_utils@3.0.2}/node_modules/@iconify/utils/lib/icon/merge.js +0 -0
  1474. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@iconify_utils@3.1.0 → @iconify_utils@3.0.2}/node_modules/@iconify/utils/lib/icon/name.js +0 -0
  1475. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@iconify_utils@3.1.0 → @iconify_utils@3.0.2}/node_modules/@iconify/utils/lib/icon/transformations.js +0 -0
  1476. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@iconify_utils@3.1.0 → @iconify_utils@3.0.2}/node_modules/@iconify/utils/lib/icon-set/get-icon.js +0 -0
  1477. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@iconify_utils@3.1.0 → @iconify_utils@3.0.2}/node_modules/@iconify/utils/lib/icon-set/tree.js +0 -0
  1478. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@iconify_utils@3.1.0 → @iconify_utils@3.0.2}/node_modules/@iconify/utils/lib/svg/build.js +0 -0
  1479. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@iconify_utils@3.1.0 → @iconify_utils@3.0.2}/node_modules/@iconify/utils/lib/svg/defs.js +0 -0
  1480. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@iconify_utils@3.1.0 → @iconify_utils@3.0.2}/node_modules/@iconify/utils/lib/svg/html.js +0 -0
  1481. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@iconify_utils@3.1.0 → @iconify_utils@3.0.2}/node_modules/@iconify/utils/lib/svg/size.js +0 -0
  1482. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@radix-ui_react-compose-refs@1.1.2_@types_react@19.2.9_react@19.1.2 → @radix-ui_react-compose-refs@1.1.2_@types_react@19.2.2_react@19.0.1}/node_modules/@radix-ui/react-compose-refs/dist/index.js +0 -0
  1483. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@radix-ui_react-context@1.1.2_@types_react@19.2.9_react@19.1.2 → @radix-ui_react-context@1.1.2_@types_react@19.2.2_react@19.0.1}/node_modules/@radix-ui/react-context/dist/index.js +0 -0
  1484. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@radix-ui_react-focus-guards@1.1.3_@types_react@19.2.9_react@19.1.2 → @radix-ui_react-focus-guards@1.1.3_@types_react@19.2.2_react@19.0.1}/node_modules/@radix-ui/react-focus-guards/dist/index.js +0 -0
  1485. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@radix-ui_react-use-callback-ref@1.1.1_@types_react@19.2.9_react@19.1.2 → @radix-ui_react-use-callback-ref@1.1.1_@types_react@19.2.2_react@19.0.1}/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +0 -0
  1486. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@radix-ui_react-use-layout-effect@1.1.1_@types_react@19.2.9_react@19.1.2 → @radix-ui_react-use-layout-effect@1.1.1_@types_react@19.2.2_react@19.0.1}/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +0 -0
  1487. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@uiw_react-codemirror@4.25.4_@babel_runtime@7.28.6_@codemirror_autocomplete@6.20.0_@cod_5aa0930e9542fa1f0cad159ca60e9d87 → @uiw_react-codemirror@4.25.2_@babel_runtime@7.28.4_@codemirror_autocomplete@6.19.1_@cod_3434c6a3f0eb7fac49dbaa3a471d1162}/node_modules/@uiw/react-codemirror/esm/timeoutLatch.js +0 -0
  1488. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{@uiw_react-codemirror@4.25.4_@babel_runtime@7.28.6_@codemirror_autocomplete@6.20.0_@cod_5aa0930e9542fa1f0cad159ca60e9d87 → @uiw_react-codemirror@4.25.2_@babel_runtime@7.28.4_@codemirror_autocomplete@6.19.1_@cod_3434c6a3f0eb7fac49dbaa3a471d1162}/node_modules/@uiw/react-codemirror/esm/utils.js +0 -0
  1489. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{d3-format@3.1.2 → d3-format@3.1.0}/node_modules/d3-format/src/exponent.js +0 -0
  1490. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{d3-format@3.1.2 → d3-format@3.1.0}/node_modules/d3-format/src/formatGroup.js +0 -0
  1491. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{d3-format@3.1.2 → d3-format@3.1.0}/node_modules/d3-format/src/formatNumerals.js +0 -0
  1492. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{d3-format@3.1.2 → d3-format@3.1.0}/node_modules/d3-format/src/formatRounded.js +0 -0
  1493. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{d3-format@3.1.2 → d3-format@3.1.0}/node_modules/d3-format/src/formatSpecifier.js +0 -0
  1494. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{d3-format@3.1.2 → d3-format@3.1.0}/node_modules/d3-format/src/formatTrim.js +0 -0
  1495. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{d3-format@3.1.2 → d3-format@3.1.0}/node_modules/d3-format/src/formatTypes.js +0 -0
  1496. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{d3-format@3.1.2 → d3-format@3.1.0}/node_modules/d3-format/src/identity.js +0 -0
  1497. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{d3-format@3.1.2 → d3-format@3.1.0}/node_modules/d3-format/src/precisionFixed.js +0 -0
  1498. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{d3-format@3.1.2 → d3-format@3.1.0}/node_modules/d3-format/src/precisionPrefix.js +0 -0
  1499. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{d3-format@3.1.2 → d3-format@3.1.0}/node_modules/d3-format/src/precisionRound.js +0 -0
  1500. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{dayjs@1.11.19 → dayjs@1.11.18}/node_modules/dayjs/dayjs.min.js +0 -0
  1501. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{dayjs@1.11.19 → dayjs@1.11.18}/node_modules/dayjs/plugin/advancedFormat.js +0 -0
  1502. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/_assignMergeValue.js +0 -0
  1503. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/_baseExtremum.js +0 -0
  1504. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/_baseGt.js +0 -0
  1505. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/_baseLt.js +0 -0
  1506. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/_baseMerge.js +0 -0
  1507. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/_baseMergeDeep.js +0 -0
  1508. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/_baseOrderBy.js +0 -0
  1509. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/_basePick.js +0 -0
  1510. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/_baseRange.js +0 -0
  1511. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/_baseSortBy.js +0 -0
  1512. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/_baseZipObject.js +0 -0
  1513. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/_compareAscending.js +0 -0
  1514. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/_compareMultiple.js +0 -0
  1515. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/_createRange.js +0 -0
  1516. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/_flatRest.js +0 -0
  1517. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/_safeGet.js +0 -0
  1518. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/cloneDeep.js +0 -0
  1519. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/forIn.js +0 -0
  1520. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/forOwn.js +0 -0
  1521. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/isPlainObject.js +0 -0
  1522. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/mapValues.js +0 -0
  1523. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/max.js +0 -0
  1524. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/merge.js +0 -0
  1525. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/min.js +0 -0
  1526. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/minBy.js +0 -0
  1527. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/pick.js +0 -0
  1528. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/range.js +0 -0
  1529. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/sortBy.js +0 -0
  1530. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/toPlainObject.js +0 -0
  1531. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/union.js +0 -0
  1532. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/uniqBy.js +0 -0
  1533. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/uniqueId.js +0 -0
  1534. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{lodash-es@4.17.23 → lodash-es@4.17.21}/node_modules/lodash-es/zipObject.js +0 -0
  1535. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/footer.js +0 -0
  1536. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js +0 -0
  1537. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/break.js +0 -0
  1538. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/delete.js +0 -0
  1539. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js +0 -0
  1540. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js +0 -0
  1541. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/heading.js +0 -0
  1542. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/html.js +0 -0
  1543. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js +0 -0
  1544. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/image.js +0 -0
  1545. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/index.js +0 -0
  1546. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js +0 -0
  1547. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js +0 -0
  1548. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/link.js +0 -0
  1549. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/list-item.js +0 -0
  1550. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/list.js +0 -0
  1551. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js +0 -0
  1552. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/root.js +0 -0
  1553. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/strong.js +0 -0
  1554. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js +0 -0
  1555. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/table-row.js +0 -0
  1556. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/table.js +0 -0
  1557. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/text.js +0 -0
  1558. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js +0 -0
  1559. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/index.js +0 -0
  1560. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mdast-util-to-hast@13.2.1 → mdast-util-to-hast@13.2.0}/node_modules/mdast-util-to-hast/lib/revert.js +0 -0
  1561. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/chunk-4BX2VUAB.js +0 -0
  1562. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/chunk-55IACEB6.js +0 -0
  1563. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/chunk-AGHRB4JF.js +0 -0
  1564. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ATLVNIR6.js +0 -0
  1565. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/chunk-B4BG7PRW.js +0 -0
  1566. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/chunk-CVBHYZKI.js +0 -0
  1567. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/chunk-DI55MBZ5.js +0 -0
  1568. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/chunk-EXTU4WIE.js +0 -0
  1569. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/chunk-FMBD7UC4.js +0 -0
  1570. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/chunk-HN2XXSSU.js +0 -0
  1571. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/chunk-JZLCHNYA.js +0 -0
  1572. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/chunk-N4CR4FBY.js +0 -0
  1573. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/chunk-QN33PNHL.js +0 -0
  1574. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/chunk-QXUST7PY.js +0 -0
  1575. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/chunk-QZHKN3VN.js +0 -0
  1576. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-2ON5EDUG.js +0 -0
  1577. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-v2-WZHVMYZB.js +0 -0
  1578. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/cose-bilkent-S5V4N54A.js +0 -0
  1579. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/dagre-6UL2VRFP.js +0 -0
  1580. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/journeyDiagram-XKPGCS4Q.js +0 -0
  1581. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/kanban-definition-3W4ZIXB7.js +0 -0
  1582. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/mindmap-definition-VGOIOE7T.js +0 -0
  1583. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/pieDiagram-ADFJNKIX.js +0 -0
  1584. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/requirementDiagram-UZGBJVZJ.js +0 -0
  1585. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/sankeyDiagram-TZEHDZUN.js +0 -0
  1586. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-FKZM4ZOC.js +0 -0
  1587. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-v2-4FDKWEC3.js +0 -0
  1588. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{mermaid@11.12.2 → mermaid@11.12.1}/node_modules/mermaid/dist/chunks/mermaid.core/timeline-definition-IT6M3QCI.js +0 -0
  1589. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{rc-input@1.8.0_react-dom@19.1.2_react@19.1.2__react@19.1.2 → rc-input@1.8.0_react-dom@19.0.1_react@19.0.1__react@19.0.1}/node_modules/rc-input/es/utils/commonUtils.js +0 -0
  1590. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{rc-resize-observer@1.4.3_react-dom@19.1.2_react@19.1.2__react@19.1.2 → rc-resize-observer@1.4.3_react-dom@19.0.1_react@19.0.1__react@19.0.1}/node_modules/rc-resize-observer/es/Collection.js +0 -0
  1591. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{rc-resize-observer@1.4.3_react-dom@19.1.2_react@19.1.2__react@19.1.2 → rc-resize-observer@1.4.3_react-dom@19.0.1_react@19.0.1__react@19.0.1}/node_modules/rc-resize-observer/es/utils/observerUtil.js +0 -0
  1592. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{rc-textarea@1.10.2_react-dom@19.1.2_react@19.1.2__react@19.1.2 → rc-textarea@1.10.2_react-dom@19.0.1_react@19.0.1__react@19.0.1}/node_modules/rc-textarea/es/calculateNodeHeight.js +0 -0
  1593. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{rc-textarea@1.10.2_react-dom@19.1.2_react@19.1.2__react@19.1.2 → rc-textarea@1.10.2_react-dom@19.0.1_react@19.0.1__react@19.0.1}/node_modules/rc-textarea/es/index.js.map +0 -0
  1594. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2 → rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1}/node_modules/rc-util/es/Children/toArray.js +0 -0
  1595. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2 → rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1}/node_modules/rc-util/es/Dom/canUseDom.js +0 -0
  1596. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2 → rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1}/node_modules/rc-util/es/hooks/useEvent.js +0 -0
  1597. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2 → rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1}/node_modules/rc-util/es/hooks/useLayoutEffect.js +0 -0
  1598. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2 → rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1}/node_modules/rc-util/es/hooks/useMemo.js +0 -0
  1599. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2 → rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1}/node_modules/rc-util/es/raf.js +0 -0
  1600. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{rc-util@5.44.4_react-dom@19.1.2_react@19.1.2__react@19.1.2 → rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1}/node_modules/rc-util/es/warning.js +0 -0
  1601. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{react-i18next@15.7.4_i18next@23.16.8_react-dom@19.1.2_react@19.1.2__react@19.1.2_typescript@5.9.3 → react-i18next@15.7.4_i18next@23.16.8_react-dom@19.0.1_react@19.0.1__react@19.0.1_typescript@5.9.3}/node_modules/react-i18next/dist/es/context.js +0 -0
  1602. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{react-i18next@15.7.4_i18next@23.16.8_react-dom@19.1.2_react@19.1.2__react@19.1.2_typescript@5.9.3 → react-i18next@15.7.4_i18next@23.16.8_react-dom@19.0.1_react@19.0.1__react@19.0.1_typescript@5.9.3}/node_modules/react-i18next/dist/es/defaults.js +0 -0
  1603. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{react-i18next@15.7.4_i18next@23.16.8_react-dom@19.1.2_react@19.1.2__react@19.1.2_typescript@5.9.3 → react-i18next@15.7.4_i18next@23.16.8_react-dom@19.0.1_react@19.0.1__react@19.0.1_typescript@5.9.3}/node_modules/react-i18next/dist/es/i18nInstance.js +0 -0
  1604. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{react-i18next@15.7.4_i18next@23.16.8_react-dom@19.1.2_react@19.1.2__react@19.1.2_typescript@5.9.3 → react-i18next@15.7.4_i18next@23.16.8_react-dom@19.0.1_react@19.0.1__react@19.0.1_typescript@5.9.3}/node_modules/react-i18next/dist/es/initReactI18next.js +0 -0
  1605. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{react-i18next@15.7.4_i18next@23.16.8_react-dom@19.1.2_react@19.1.2__react@19.1.2_typescript@5.9.3 → react-i18next@15.7.4_i18next@23.16.8_react-dom@19.0.1_react@19.0.1__react@19.0.1_typescript@5.9.3}/node_modules/react-i18next/dist/es/unescape.js +0 -0
  1606. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{react-i18next@15.7.4_i18next@23.16.8_react-dom@19.1.2_react@19.1.2__react@19.1.2_typescript@5.9.3 → react-i18next@15.7.4_i18next@23.16.8_react-dom@19.0.1_react@19.0.1__react@19.0.1_typescript@5.9.3}/node_modules/react-i18next/dist/es/utils.js +0 -0
  1607. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{react-remove-scroll-bar@2.3.8_@types_react@19.2.9_react@19.1.2 → react-remove-scroll-bar@2.3.8_@types_react@19.2.2_react@19.0.1}/node_modules/react-remove-scroll-bar/dist/es2015/constants.js +0 -0
  1608. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{react-remove-scroll-bar@2.3.8_@types_react@19.2.9_react@19.1.2 → react-remove-scroll-bar@2.3.8_@types_react@19.2.2_react@19.0.1}/node_modules/react-remove-scroll-bar/dist/es2015/utils.js +0 -0
  1609. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{react-remove-scroll@2.7.2_@types_react@19.2.9_react@19.1.2 → react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.0.1}/node_modules/react-remove-scroll/dist/es2015/Combination.js +0 -0
  1610. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{react-remove-scroll@2.7.2_@types_react@19.2.9_react@19.1.2 → react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.0.1}/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js +0 -0
  1611. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{react-remove-scroll@2.7.2_@types_react@19.2.9_react@19.1.2 → react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.0.1}/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +0 -0
  1612. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{react-style-singleton@2.2.3_@types_react@19.2.9_react@19.1.2 → react-style-singleton@2.2.3_@types_react@19.2.2_react@19.0.1}/node_modules/react-style-singleton/dist/es2015/component.js +0 -0
  1613. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{react-style-singleton@2.2.3_@types_react@19.2.9_react@19.1.2 → react-style-singleton@2.2.3_@types_react@19.2.2_react@19.0.1}/node_modules/react-style-singleton/dist/es2015/hook.js +0 -0
  1614. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{react-style-singleton@2.2.3_@types_react@19.2.9_react@19.1.2 → react-style-singleton@2.2.3_@types_react@19.2.2_react@19.0.1}/node_modules/react-style-singleton/dist/es2015/singleton.js +0 -0
  1615. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{react@19.1.2 → react@19.0.1}/node_modules/react/jsx-runtime.js +0 -0
  1616. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{style-to-js@1.1.21 → style-to-js@1.1.18}/node_modules/style-to-js/cjs/utilities.js +0 -0
  1617. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{unist-util-visit@5.1.0 → unist-util-visit@5.0.0}/node_modules/unist-util-visit/index.js +0 -0
  1618. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{unist-util-visit@5.1.0 → unist-util-visit@5.0.0}/node_modules/unist-util-visit/index.js.map +0 -0
  1619. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{unist-util-visit@5.1.0 → unist-util-visit@5.0.0}/node_modules/unist-util-visit/lib/index.js +0 -0
  1620. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{use-callback-ref@1.3.3_@types_react@19.2.9_react@19.1.2 → use-callback-ref@1.3.3_@types_react@19.2.2_react@19.0.1}/node_modules/use-callback-ref/dist/es2015/assignRef.js +0 -0
  1621. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{use-callback-ref@1.3.3_@types_react@19.2.9_react@19.1.2 → use-callback-ref@1.3.3_@types_react@19.2.2_react@19.0.1}/node_modules/use-callback-ref/dist/es2015/useMergeRef.js +0 -0
  1622. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{use-callback-ref@1.3.3_@types_react@19.2.9_react@19.1.2 → use-callback-ref@1.3.3_@types_react@19.2.2_react@19.0.1}/node_modules/use-callback-ref/dist/es2015/useRef.js +0 -0
  1623. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{use-sidecar@1.1.3_@types_react@19.2.9_react@19.1.2 → use-sidecar@1.1.3_@types_react@19.2.2_react@19.0.1}/node_modules/use-sidecar/dist/es2015/exports.js +0 -0
  1624. /package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/{use-sidecar@1.1.3_@types_react@19.2.9_react@19.1.2 → use-sidecar@1.1.3_@types_react@19.2.2_react@19.0.1}/node_modules/use-sidecar/dist/es2015/medium.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../../../../../../node_modules/.pnpm/@codemirror+view@6.38.6/node_modules/@codemirror/view/dist/index.js"],"sourcesContent":["import { Text, RangeSet, MapMode, RangeValue, findClusterBreak, EditorSelection, Facet, StateEffect, ChangeSet, findColumn, CharCategory, EditorState, Annotation, Transaction, Prec, codePointAt, codePointSize, combineConfig, StateField, RangeSetBuilder, countColumn } from '@codemirror/state';\nimport { StyleModule } from 'style-mod';\nimport { keyName, base, shift } from 'w3c-keyname';\nimport elt from 'crelt';\n\nlet nav = typeof navigator != \"undefined\" ? navigator : { userAgent: \"\", vendor: \"\", platform: \"\" };\nlet doc = typeof document != \"undefined\" ? document : { documentElement: { style: {} } };\nconst ie_edge = /*@__PURE__*//Edge\\/(\\d+)/.exec(nav.userAgent);\nconst ie_upto10 = /*@__PURE__*//MSIE \\d/.test(nav.userAgent);\nconst ie_11up = /*@__PURE__*//Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(nav.userAgent);\nconst ie = !!(ie_upto10 || ie_11up || ie_edge);\nconst gecko = !ie && /*@__PURE__*//gecko\\/(\\d+)/i.test(nav.userAgent);\nconst chrome = !ie && /*@__PURE__*//Chrome\\/(\\d+)/.exec(nav.userAgent);\nconst webkit = \"webkitFontSmoothing\" in doc.documentElement.style;\nconst safari = !ie && /*@__PURE__*//Apple Computer/.test(nav.vendor);\nconst ios = safari && (/*@__PURE__*//Mobile\\/\\w+/.test(nav.userAgent) || nav.maxTouchPoints > 2);\nvar browser = {\n mac: ios || /*@__PURE__*//Mac/.test(nav.platform),\n windows: /*@__PURE__*//Win/.test(nav.platform),\n linux: /*@__PURE__*//Linux|X11/.test(nav.platform),\n ie,\n ie_version: ie_upto10 ? doc.documentMode || 6 : ie_11up ? +ie_11up[1] : ie_edge ? +ie_edge[1] : 0,\n gecko,\n gecko_version: gecko ? +(/*@__PURE__*//Firefox\\/(\\d+)/.exec(nav.userAgent) || [0, 0])[1] : 0,\n chrome: !!chrome,\n chrome_version: chrome ? +chrome[1] : 0,\n ios,\n android: /*@__PURE__*//Android\\b/.test(nav.userAgent),\n webkit,\n webkit_version: webkit ? +(/*@__PURE__*//\\bAppleWebKit\\/(\\d+)/.exec(nav.userAgent) || [0, 0])[1] : 0,\n safari,\n safari_version: safari ? +(/*@__PURE__*//\\bVersion\\/(\\d+(\\.\\d+)?)/.exec(nav.userAgent) || [0, 0])[1] : 0,\n tabSize: doc.documentElement.style.tabSize != null ? \"tab-size\" : \"-moz-tab-size\"\n};\n\nfunction getSelection(root) {\n let target;\n // Browsers differ on whether shadow roots have a getSelection\n // method. If it exists, use that, otherwise, call it on the\n // document.\n if (root.nodeType == 11) { // Shadow root\n target = root.getSelection ? root : root.ownerDocument;\n }\n else {\n target = root;\n }\n return target.getSelection();\n}\nfunction contains(dom, node) {\n return node ? dom == node || dom.contains(node.nodeType != 1 ? node.parentNode : node) : false;\n}\nfunction hasSelection(dom, selection) {\n if (!selection.anchorNode)\n return false;\n try {\n // Firefox will raise 'permission denied' errors when accessing\n // properties of `sel.anchorNode` when it's in a generated CSS\n // element.\n return contains(dom, selection.anchorNode);\n }\n catch (_) {\n return false;\n }\n}\nfunction clientRectsFor(dom) {\n if (dom.nodeType == 3)\n return textRange(dom, 0, dom.nodeValue.length).getClientRects();\n else if (dom.nodeType == 1)\n return dom.getClientRects();\n else\n return [];\n}\n// Scans forward and backward through DOM positions equivalent to the\n// given one to see if the two are in the same place (i.e. after a\n// text node vs at the end of that text node)\nfunction isEquivalentPosition(node, off, targetNode, targetOff) {\n return targetNode ? (scanFor(node, off, targetNode, targetOff, -1) ||\n scanFor(node, off, targetNode, targetOff, 1)) : false;\n}\nfunction domIndex(node) {\n for (var index = 0;; index++) {\n node = node.previousSibling;\n if (!node)\n return index;\n }\n}\nfunction isBlockElement(node) {\n return node.nodeType == 1 && /^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\\d|SECTION|PRE)$/.test(node.nodeName);\n}\nfunction scanFor(node, off, targetNode, targetOff, dir) {\n for (;;) {\n if (node == targetNode && off == targetOff)\n return true;\n if (off == (dir < 0 ? 0 : maxOffset(node))) {\n if (node.nodeName == \"DIV\")\n return false;\n let parent = node.parentNode;\n if (!parent || parent.nodeType != 1)\n return false;\n off = domIndex(node) + (dir < 0 ? 0 : 1);\n node = parent;\n }\n else if (node.nodeType == 1) {\n node = node.childNodes[off + (dir < 0 ? -1 : 0)];\n if (node.nodeType == 1 && node.contentEditable == \"false\")\n return false;\n off = dir < 0 ? maxOffset(node) : 0;\n }\n else {\n return false;\n }\n }\n}\nfunction maxOffset(node) {\n return node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length;\n}\nfunction flattenRect(rect, left) {\n let x = left ? rect.left : rect.right;\n return { left: x, right: x, top: rect.top, bottom: rect.bottom };\n}\nfunction windowRect(win) {\n let vp = win.visualViewport;\n if (vp)\n return {\n left: 0, right: vp.width,\n top: 0, bottom: vp.height\n };\n return { left: 0, right: win.innerWidth,\n top: 0, bottom: win.innerHeight };\n}\nfunction getScale(elt, rect) {\n let scaleX = rect.width / elt.offsetWidth;\n let scaleY = rect.height / elt.offsetHeight;\n if (scaleX > 0.995 && scaleX < 1.005 || !isFinite(scaleX) || Math.abs(rect.width - elt.offsetWidth) < 1)\n scaleX = 1;\n if (scaleY > 0.995 && scaleY < 1.005 || !isFinite(scaleY) || Math.abs(rect.height - elt.offsetHeight) < 1)\n scaleY = 1;\n return { scaleX, scaleY };\n}\nfunction scrollRectIntoView(dom, rect, side, x, y, xMargin, yMargin, ltr) {\n let doc = dom.ownerDocument, win = doc.defaultView || window;\n for (let cur = dom, stop = false; cur && !stop;) {\n if (cur.nodeType == 1) { // Element\n let bounding, top = cur == doc.body;\n let scaleX = 1, scaleY = 1;\n if (top) {\n bounding = windowRect(win);\n }\n else {\n if (/^(fixed|sticky)$/.test(getComputedStyle(cur).position))\n stop = true;\n if (cur.scrollHeight <= cur.clientHeight && cur.scrollWidth <= cur.clientWidth) {\n cur = cur.assignedSlot || cur.parentNode;\n continue;\n }\n let rect = cur.getBoundingClientRect();\n ({ scaleX, scaleY } = getScale(cur, rect));\n // Make sure scrollbar width isn't included in the rectangle\n bounding = { left: rect.left, right: rect.left + cur.clientWidth * scaleX,\n top: rect.top, bottom: rect.top + cur.clientHeight * scaleY };\n }\n let moveX = 0, moveY = 0;\n if (y == \"nearest\") {\n if (rect.top < bounding.top) {\n moveY = rect.top - (bounding.top + yMargin);\n if (side > 0 && rect.bottom > bounding.bottom + moveY)\n moveY = rect.bottom - bounding.bottom + yMargin;\n }\n else if (rect.bottom > bounding.bottom) {\n moveY = rect.bottom - bounding.bottom + yMargin;\n if (side < 0 && (rect.top - moveY) < bounding.top)\n moveY = rect.top - (bounding.top + yMargin);\n }\n }\n else {\n let rectHeight = rect.bottom - rect.top, boundingHeight = bounding.bottom - bounding.top;\n let targetTop = y == \"center\" && rectHeight <= boundingHeight ? rect.top + rectHeight / 2 - boundingHeight / 2 :\n y == \"start\" || y == \"center\" && side < 0 ? rect.top - yMargin :\n rect.bottom - boundingHeight + yMargin;\n moveY = targetTop - bounding.top;\n }\n if (x == \"nearest\") {\n if (rect.left < bounding.left) {\n moveX = rect.left - (bounding.left + xMargin);\n if (side > 0 && rect.right > bounding.right + moveX)\n moveX = rect.right - bounding.right + xMargin;\n }\n else if (rect.right > bounding.right) {\n moveX = rect.right - bounding.right + xMargin;\n if (side < 0 && rect.left < bounding.left + moveX)\n moveX = rect.left - (bounding.left + xMargin);\n }\n }\n else {\n let targetLeft = x == \"center\" ? rect.left + (rect.right - rect.left) / 2 - (bounding.right - bounding.left) / 2 :\n (x == \"start\") == ltr ? rect.left - xMargin :\n rect.right - (bounding.right - bounding.left) + xMargin;\n moveX = targetLeft - bounding.left;\n }\n if (moveX || moveY) {\n if (top) {\n win.scrollBy(moveX, moveY);\n }\n else {\n let movedX = 0, movedY = 0;\n if (moveY) {\n let start = cur.scrollTop;\n cur.scrollTop += moveY / scaleY;\n movedY = (cur.scrollTop - start) * scaleY;\n }\n if (moveX) {\n let start = cur.scrollLeft;\n cur.scrollLeft += moveX / scaleX;\n movedX = (cur.scrollLeft - start) * scaleX;\n }\n rect = { left: rect.left - movedX, top: rect.top - movedY,\n right: rect.right - movedX, bottom: rect.bottom - movedY };\n if (movedX && Math.abs(movedX - moveX) < 1)\n x = \"nearest\";\n if (movedY && Math.abs(movedY - moveY) < 1)\n y = \"nearest\";\n }\n }\n if (top)\n break;\n if (rect.top < bounding.top || rect.bottom > bounding.bottom ||\n rect.left < bounding.left || rect.right > bounding.right)\n rect = { left: Math.max(rect.left, bounding.left), right: Math.min(rect.right, bounding.right),\n top: Math.max(rect.top, bounding.top), bottom: Math.min(rect.bottom, bounding.bottom) };\n cur = cur.assignedSlot || cur.parentNode;\n }\n else if (cur.nodeType == 11) { // A shadow root\n cur = cur.host;\n }\n else {\n break;\n }\n }\n}\nfunction scrollableParents(dom) {\n let doc = dom.ownerDocument, x, y;\n for (let cur = dom.parentNode; cur;) {\n if (cur == doc.body || (x && y)) {\n break;\n }\n else if (cur.nodeType == 1) {\n if (!y && cur.scrollHeight > cur.clientHeight)\n y = cur;\n if (!x && cur.scrollWidth > cur.clientWidth)\n x = cur;\n cur = cur.assignedSlot || cur.parentNode;\n }\n else if (cur.nodeType == 11) {\n cur = cur.host;\n }\n else {\n break;\n }\n }\n return { x, y };\n}\nclass DOMSelectionState {\n constructor() {\n this.anchorNode = null;\n this.anchorOffset = 0;\n this.focusNode = null;\n this.focusOffset = 0;\n }\n eq(domSel) {\n return this.anchorNode == domSel.anchorNode && this.anchorOffset == domSel.anchorOffset &&\n this.focusNode == domSel.focusNode && this.focusOffset == domSel.focusOffset;\n }\n setRange(range) {\n let { anchorNode, focusNode } = range;\n // Clip offsets to node size to avoid crashes when Safari reports bogus offsets (#1152)\n this.set(anchorNode, Math.min(range.anchorOffset, anchorNode ? maxOffset(anchorNode) : 0), focusNode, Math.min(range.focusOffset, focusNode ? maxOffset(focusNode) : 0));\n }\n set(anchorNode, anchorOffset, focusNode, focusOffset) {\n this.anchorNode = anchorNode;\n this.anchorOffset = anchorOffset;\n this.focusNode = focusNode;\n this.focusOffset = focusOffset;\n }\n}\nlet preventScrollSupported = null;\n// Safari 26 breaks preventScroll support\nif (browser.safari && browser.safari_version >= 26)\n preventScrollSupported = false;\n// Feature-detects support for .focus({preventScroll: true}), and uses\n// a fallback kludge when not supported.\nfunction focusPreventScroll(dom) {\n if (dom.setActive)\n return dom.setActive(); // in IE\n if (preventScrollSupported)\n return dom.focus(preventScrollSupported);\n let stack = [];\n for (let cur = dom; cur; cur = cur.parentNode) {\n stack.push(cur, cur.scrollTop, cur.scrollLeft);\n if (cur == cur.ownerDocument)\n break;\n }\n dom.focus(preventScrollSupported == null ? {\n get preventScroll() {\n preventScrollSupported = { preventScroll: true };\n return true;\n }\n } : undefined);\n if (!preventScrollSupported) {\n preventScrollSupported = false;\n for (let i = 0; i < stack.length;) {\n let elt = stack[i++], top = stack[i++], left = stack[i++];\n if (elt.scrollTop != top)\n elt.scrollTop = top;\n if (elt.scrollLeft != left)\n elt.scrollLeft = left;\n }\n }\n}\nlet scratchRange;\nfunction textRange(node, from, to = from) {\n let range = scratchRange || (scratchRange = document.createRange());\n range.setEnd(node, to);\n range.setStart(node, from);\n return range;\n}\nfunction dispatchKey(elt, name, code, mods) {\n let options = { key: name, code: name, keyCode: code, which: code, cancelable: true };\n if (mods)\n ({ altKey: options.altKey, ctrlKey: options.ctrlKey, shiftKey: options.shiftKey, metaKey: options.metaKey } = mods);\n let down = new KeyboardEvent(\"keydown\", options);\n down.synthetic = true;\n elt.dispatchEvent(down);\n let up = new KeyboardEvent(\"keyup\", options);\n up.synthetic = true;\n elt.dispatchEvent(up);\n return down.defaultPrevented || up.defaultPrevented;\n}\nfunction getRoot(node) {\n while (node) {\n if (node && (node.nodeType == 9 || node.nodeType == 11 && node.host))\n return node;\n node = node.assignedSlot || node.parentNode;\n }\n return null;\n}\nfunction clearAttributes(node) {\n while (node.attributes.length)\n node.removeAttributeNode(node.attributes[0]);\n}\nfunction atElementStart(doc, selection) {\n let node = selection.focusNode, offset = selection.focusOffset;\n if (!node || selection.anchorNode != node || selection.anchorOffset != offset)\n return false;\n // Safari can report bogus offsets (#1152)\n offset = Math.min(offset, maxOffset(node));\n for (;;) {\n if (offset) {\n if (node.nodeType != 1)\n return false;\n let prev = node.childNodes[offset - 1];\n if (prev.contentEditable == \"false\")\n offset--;\n else {\n node = prev;\n offset = maxOffset(node);\n }\n }\n else if (node == doc) {\n return true;\n }\n else {\n offset = domIndex(node);\n node = node.parentNode;\n }\n }\n}\nfunction isScrolledToBottom(elt) {\n return elt.scrollTop > Math.max(1, elt.scrollHeight - elt.clientHeight - 4);\n}\nfunction textNodeBefore(startNode, startOffset) {\n for (let node = startNode, offset = startOffset;;) {\n if (node.nodeType == 3 && offset > 0) {\n return { node: node, offset: offset };\n }\n else if (node.nodeType == 1 && offset > 0) {\n if (node.contentEditable == \"false\")\n return null;\n node = node.childNodes[offset - 1];\n offset = maxOffset(node);\n }\n else if (node.parentNode && !isBlockElement(node)) {\n offset = domIndex(node);\n node = node.parentNode;\n }\n else {\n return null;\n }\n }\n}\nfunction textNodeAfter(startNode, startOffset) {\n for (let node = startNode, offset = startOffset;;) {\n if (node.nodeType == 3 && offset < node.nodeValue.length) {\n return { node: node, offset: offset };\n }\n else if (node.nodeType == 1 && offset < node.childNodes.length) {\n if (node.contentEditable == \"false\")\n return null;\n node = node.childNodes[offset];\n offset = 0;\n }\n else if (node.parentNode && !isBlockElement(node)) {\n offset = domIndex(node) + 1;\n node = node.parentNode;\n }\n else {\n return null;\n }\n }\n}\n\nclass DOMPos {\n constructor(node, offset, precise = true) {\n this.node = node;\n this.offset = offset;\n this.precise = precise;\n }\n static before(dom, precise) { return new DOMPos(dom.parentNode, domIndex(dom), precise); }\n static after(dom, precise) { return new DOMPos(dom.parentNode, domIndex(dom) + 1, precise); }\n}\nconst noChildren = [];\nclass ContentView {\n constructor() {\n this.parent = null;\n this.dom = null;\n this.flags = 2 /* ViewFlag.NodeDirty */;\n }\n get overrideDOMText() { return null; }\n get posAtStart() {\n return this.parent ? this.parent.posBefore(this) : 0;\n }\n get posAtEnd() {\n return this.posAtStart + this.length;\n }\n posBefore(view) {\n let pos = this.posAtStart;\n for (let child of this.children) {\n if (child == view)\n return pos;\n pos += child.length + child.breakAfter;\n }\n throw new RangeError(\"Invalid child in posBefore\");\n }\n posAfter(view) {\n return this.posBefore(view) + view.length;\n }\n sync(view, track) {\n if (this.flags & 2 /* ViewFlag.NodeDirty */) {\n let parent = this.dom;\n let prev = null, next;\n for (let child of this.children) {\n if (child.flags & 7 /* ViewFlag.Dirty */) {\n if (!child.dom && (next = prev ? prev.nextSibling : parent.firstChild)) {\n let contentView = ContentView.get(next);\n if (!contentView || !contentView.parent && contentView.canReuseDOM(child))\n child.reuseDOM(next);\n }\n child.sync(view, track);\n child.flags &= ~7 /* ViewFlag.Dirty */;\n }\n next = prev ? prev.nextSibling : parent.firstChild;\n if (track && !track.written && track.node == parent && next != child.dom)\n track.written = true;\n if (child.dom.parentNode == parent) {\n while (next && next != child.dom)\n next = rm$1(next);\n }\n else {\n parent.insertBefore(child.dom, next);\n }\n prev = child.dom;\n }\n next = prev ? prev.nextSibling : parent.firstChild;\n if (next && track && track.node == parent)\n track.written = true;\n while (next)\n next = rm$1(next);\n }\n else if (this.flags & 1 /* ViewFlag.ChildDirty */) {\n for (let child of this.children)\n if (child.flags & 7 /* ViewFlag.Dirty */) {\n child.sync(view, track);\n child.flags &= ~7 /* ViewFlag.Dirty */;\n }\n }\n }\n reuseDOM(_dom) { }\n localPosFromDOM(node, offset) {\n let after;\n if (node == this.dom) {\n after = this.dom.childNodes[offset];\n }\n else {\n let bias = maxOffset(node) == 0 ? 0 : offset == 0 ? -1 : 1;\n for (;;) {\n let parent = node.parentNode;\n if (parent == this.dom)\n break;\n if (bias == 0 && parent.firstChild != parent.lastChild) {\n if (node == parent.firstChild)\n bias = -1;\n else\n bias = 1;\n }\n node = parent;\n }\n if (bias < 0)\n after = node;\n else\n after = node.nextSibling;\n }\n if (after == this.dom.firstChild)\n return 0;\n while (after && !ContentView.get(after))\n after = after.nextSibling;\n if (!after)\n return this.length;\n for (let i = 0, pos = 0;; i++) {\n let child = this.children[i];\n if (child.dom == after)\n return pos;\n pos += child.length + child.breakAfter;\n }\n }\n domBoundsAround(from, to, offset = 0) {\n let fromI = -1, fromStart = -1, toI = -1, toEnd = -1;\n for (let i = 0, pos = offset, prevEnd = offset; i < this.children.length; i++) {\n let child = this.children[i], end = pos + child.length;\n if (pos < from && end > to)\n return child.domBoundsAround(from, to, pos);\n if (end >= from && fromI == -1) {\n fromI = i;\n fromStart = pos;\n }\n if (pos > to && child.dom.parentNode == this.dom) {\n toI = i;\n toEnd = prevEnd;\n break;\n }\n prevEnd = end;\n pos = end + child.breakAfter;\n }\n return { from: fromStart, to: toEnd < 0 ? offset + this.length : toEnd,\n startDOM: (fromI ? this.children[fromI - 1].dom.nextSibling : null) || this.dom.firstChild,\n endDOM: toI < this.children.length && toI >= 0 ? this.children[toI].dom : null };\n }\n markDirty(andParent = false) {\n this.flags |= 2 /* ViewFlag.NodeDirty */;\n this.markParentsDirty(andParent);\n }\n markParentsDirty(childList) {\n for (let parent = this.parent; parent; parent = parent.parent) {\n if (childList)\n parent.flags |= 2 /* ViewFlag.NodeDirty */;\n if (parent.flags & 1 /* ViewFlag.ChildDirty */)\n return;\n parent.flags |= 1 /* ViewFlag.ChildDirty */;\n childList = false;\n }\n }\n setParent(parent) {\n if (this.parent != parent) {\n this.parent = parent;\n if (this.flags & 7 /* ViewFlag.Dirty */)\n this.markParentsDirty(true);\n }\n }\n setDOM(dom) {\n if (this.dom == dom)\n return;\n if (this.dom)\n this.dom.cmView = null;\n this.dom = dom;\n dom.cmView = this;\n }\n get rootView() {\n for (let v = this;;) {\n let parent = v.parent;\n if (!parent)\n return v;\n v = parent;\n }\n }\n replaceChildren(from, to, children = noChildren) {\n this.markDirty();\n for (let i = from; i < to; i++) {\n let child = this.children[i];\n if (child.parent == this && children.indexOf(child) < 0)\n child.destroy();\n }\n if (children.length < 250)\n this.children.splice(from, to - from, ...children);\n else\n this.children = [].concat(this.children.slice(0, from), children, this.children.slice(to));\n for (let i = 0; i < children.length; i++)\n children[i].setParent(this);\n }\n ignoreMutation(_rec) { return false; }\n ignoreEvent(_event) { return false; }\n childCursor(pos = this.length) {\n return new ChildCursor(this.children, pos, this.children.length);\n }\n childPos(pos, bias = 1) {\n return this.childCursor().findPos(pos, bias);\n }\n toString() {\n let name = this.constructor.name.replace(\"View\", \"\");\n return name + (this.children.length ? \"(\" + this.children.join() + \")\" :\n this.length ? \"[\" + (name == \"Text\" ? this.text : this.length) + \"]\" : \"\") +\n (this.breakAfter ? \"#\" : \"\");\n }\n static get(node) { return node.cmView; }\n get isEditable() { return true; }\n get isWidget() { return false; }\n get isHidden() { return false; }\n merge(from, to, source, hasStart, openStart, openEnd) {\n return false;\n }\n become(other) { return false; }\n canReuseDOM(other) {\n return other.constructor == this.constructor && !((this.flags | other.flags) & 8 /* ViewFlag.Composition */);\n }\n // When this is a zero-length view with a side, this should return a\n // number <= 0 to indicate it is before its position, or a\n // number > 0 when after its position.\n getSide() { return 0; }\n destroy() {\n for (let child of this.children)\n if (child.parent == this)\n child.destroy();\n this.parent = null;\n }\n}\nContentView.prototype.breakAfter = 0;\n// Remove a DOM node and return its next sibling.\nfunction rm$1(dom) {\n let next = dom.nextSibling;\n dom.parentNode.removeChild(dom);\n return next;\n}\nclass ChildCursor {\n constructor(children, pos, i) {\n this.children = children;\n this.pos = pos;\n this.i = i;\n this.off = 0;\n }\n findPos(pos, bias = 1) {\n for (;;) {\n if (pos > this.pos || pos == this.pos &&\n (bias > 0 || this.i == 0 || this.children[this.i - 1].breakAfter)) {\n this.off = pos - this.pos;\n return this;\n }\n let next = this.children[--this.i];\n this.pos -= next.length + next.breakAfter;\n }\n }\n}\nfunction replaceRange(parent, fromI, fromOff, toI, toOff, insert, breakAtStart, openStart, openEnd) {\n let { children } = parent;\n let before = children.length ? children[fromI] : null;\n let last = insert.length ? insert[insert.length - 1] : null;\n let breakAtEnd = last ? last.breakAfter : breakAtStart;\n // Change within a single child\n if (fromI == toI && before && !breakAtStart && !breakAtEnd && insert.length < 2 &&\n before.merge(fromOff, toOff, insert.length ? last : null, fromOff == 0, openStart, openEnd))\n return;\n if (toI < children.length) {\n let after = children[toI];\n // Make sure the end of the child after the update is preserved in `after`\n if (after && (toOff < after.length || after.breakAfter && (last === null || last === void 0 ? void 0 : last.breakAfter))) {\n // If we're splitting a child, separate part of it to avoid that\n // being mangled when updating the child before the update.\n if (fromI == toI) {\n after = after.split(toOff);\n toOff = 0;\n }\n // If the element after the replacement should be merged with\n // the last replacing element, update `content`\n if (!breakAtEnd && last && after.merge(0, toOff, last, true, 0, openEnd)) {\n insert[insert.length - 1] = after;\n }\n else {\n // Remove the start of the after element, if necessary, and\n // add it to `content`.\n if (toOff || after.children.length && !after.children[0].length)\n after.merge(0, toOff, null, false, 0, openEnd);\n insert.push(after);\n }\n }\n else if (after === null || after === void 0 ? void 0 : after.breakAfter) {\n // The element at `toI` is entirely covered by this range.\n // Preserve its line break, if any.\n if (last)\n last.breakAfter = 1;\n else\n breakAtStart = 1;\n }\n // Since we've handled the next element from the current elements\n // now, make sure `toI` points after that.\n toI++;\n }\n if (before) {\n before.breakAfter = breakAtStart;\n if (fromOff > 0) {\n if (!breakAtStart && insert.length && before.merge(fromOff, before.length, insert[0], false, openStart, 0)) {\n before.breakAfter = insert.shift().breakAfter;\n }\n else if (fromOff < before.length || before.children.length && before.children[before.children.length - 1].length == 0) {\n before.merge(fromOff, before.length, null, false, openStart, 0);\n }\n fromI++;\n }\n }\n // Try to merge widgets on the boundaries of the replacement\n while (fromI < toI && insert.length) {\n if (children[toI - 1].become(insert[insert.length - 1])) {\n toI--;\n insert.pop();\n openEnd = insert.length ? 0 : openStart;\n }\n else if (children[fromI].become(insert[0])) {\n fromI++;\n insert.shift();\n openStart = insert.length ? 0 : openEnd;\n }\n else {\n break;\n }\n }\n if (!insert.length && fromI && toI < children.length && !children[fromI - 1].breakAfter &&\n children[toI].merge(0, 0, children[fromI - 1], false, openStart, openEnd))\n fromI--;\n if (fromI < toI || insert.length)\n parent.replaceChildren(fromI, toI, insert);\n}\nfunction mergeChildrenInto(parent, from, to, insert, openStart, openEnd) {\n let cur = parent.childCursor();\n let { i: toI, off: toOff } = cur.findPos(to, 1);\n let { i: fromI, off: fromOff } = cur.findPos(from, -1);\n let dLen = from - to;\n for (let view of insert)\n dLen += view.length;\n parent.length += dLen;\n replaceRange(parent, fromI, fromOff, toI, toOff, insert, 0, openStart, openEnd);\n}\n\nconst MaxJoinLen = 256;\nclass TextView extends ContentView {\n constructor(text) {\n super();\n this.text = text;\n }\n get length() { return this.text.length; }\n createDOM(textDOM) {\n this.setDOM(textDOM || document.createTextNode(this.text));\n }\n sync(view, track) {\n if (!this.dom)\n this.createDOM();\n if (this.dom.nodeValue != this.text) {\n if (track && track.node == this.dom)\n track.written = true;\n this.dom.nodeValue = this.text;\n }\n }\n reuseDOM(dom) {\n if (dom.nodeType == 3)\n this.createDOM(dom);\n }\n merge(from, to, source) {\n if ((this.flags & 8 /* ViewFlag.Composition */) ||\n source && (!(source instanceof TextView) ||\n this.length - (to - from) + source.length > MaxJoinLen ||\n (source.flags & 8 /* ViewFlag.Composition */)))\n return false;\n this.text = this.text.slice(0, from) + (source ? source.text : \"\") + this.text.slice(to);\n this.markDirty();\n return true;\n }\n split(from) {\n let result = new TextView(this.text.slice(from));\n this.text = this.text.slice(0, from);\n this.markDirty();\n result.flags |= this.flags & 8 /* ViewFlag.Composition */;\n return result;\n }\n localPosFromDOM(node, offset) {\n return node == this.dom ? offset : offset ? this.text.length : 0;\n }\n domAtPos(pos) { return new DOMPos(this.dom, pos); }\n domBoundsAround(_from, _to, offset) {\n return { from: offset, to: offset + this.length, startDOM: this.dom, endDOM: this.dom.nextSibling };\n }\n coordsAt(pos, side) {\n return textCoords(this.dom, pos, side);\n }\n}\nclass MarkView extends ContentView {\n constructor(mark, children = [], length = 0) {\n super();\n this.mark = mark;\n this.children = children;\n this.length = length;\n for (let ch of children)\n ch.setParent(this);\n }\n setAttrs(dom) {\n clearAttributes(dom);\n if (this.mark.class)\n dom.className = this.mark.class;\n if (this.mark.attrs)\n for (let name in this.mark.attrs)\n dom.setAttribute(name, this.mark.attrs[name]);\n return dom;\n }\n canReuseDOM(other) {\n return super.canReuseDOM(other) && !((this.flags | other.flags) & 8 /* ViewFlag.Composition */);\n }\n reuseDOM(node) {\n if (node.nodeName == this.mark.tagName.toUpperCase()) {\n this.setDOM(node);\n this.flags |= 4 /* ViewFlag.AttrsDirty */ | 2 /* ViewFlag.NodeDirty */;\n }\n }\n sync(view, track) {\n if (!this.dom)\n this.setDOM(this.setAttrs(document.createElement(this.mark.tagName)));\n else if (this.flags & 4 /* ViewFlag.AttrsDirty */)\n this.setAttrs(this.dom);\n super.sync(view, track);\n }\n merge(from, to, source, _hasStart, openStart, openEnd) {\n if (source && (!(source instanceof MarkView && source.mark.eq(this.mark)) ||\n (from && openStart <= 0) || (to < this.length && openEnd <= 0)))\n return false;\n mergeChildrenInto(this, from, to, source ? source.children.slice() : [], openStart - 1, openEnd - 1);\n this.markDirty();\n return true;\n }\n split(from) {\n let result = [], off = 0, detachFrom = -1, i = 0;\n for (let elt of this.children) {\n let end = off + elt.length;\n if (end > from)\n result.push(off < from ? elt.split(from - off) : elt);\n if (detachFrom < 0 && off >= from)\n detachFrom = i;\n off = end;\n i++;\n }\n let length = this.length - from;\n this.length = from;\n if (detachFrom > -1) {\n this.children.length = detachFrom;\n this.markDirty();\n }\n return new MarkView(this.mark, result, length);\n }\n domAtPos(pos) {\n return inlineDOMAtPos(this, pos);\n }\n coordsAt(pos, side) {\n return coordsInChildren(this, pos, side);\n }\n}\nfunction textCoords(text, pos, side) {\n let length = text.nodeValue.length;\n if (pos > length)\n pos = length;\n let from = pos, to = pos, flatten = 0;\n if (pos == 0 && side < 0 || pos == length && side >= 0) {\n if (!(browser.chrome || browser.gecko)) { // These browsers reliably return valid rectangles for empty ranges\n if (pos) {\n from--;\n flatten = 1;\n } // FIXME this is wrong in RTL text\n else if (to < length) {\n to++;\n flatten = -1;\n }\n }\n }\n else {\n if (side < 0)\n from--;\n else if (to < length)\n to++;\n }\n let rects = textRange(text, from, to).getClientRects();\n if (!rects.length)\n return null;\n let rect = rects[(flatten ? flatten < 0 : side >= 0) ? 0 : rects.length - 1];\n if (browser.safari && !flatten && rect.width == 0)\n rect = Array.prototype.find.call(rects, r => r.width) || rect;\n return flatten ? flattenRect(rect, flatten < 0) : rect || null;\n}\n// Also used for collapsed ranges that don't have a placeholder widget!\nclass WidgetView extends ContentView {\n static create(widget, length, side) {\n return new WidgetView(widget, length, side);\n }\n constructor(widget, length, side) {\n super();\n this.widget = widget;\n this.length = length;\n this.side = side;\n this.prevWidget = null;\n }\n split(from) {\n let result = WidgetView.create(this.widget, this.length - from, this.side);\n this.length -= from;\n return result;\n }\n sync(view) {\n if (!this.dom || !this.widget.updateDOM(this.dom, view)) {\n if (this.dom && this.prevWidget)\n this.prevWidget.destroy(this.dom);\n this.prevWidget = null;\n this.setDOM(this.widget.toDOM(view));\n if (!this.widget.editable)\n this.dom.contentEditable = \"false\";\n }\n }\n getSide() { return this.side; }\n merge(from, to, source, hasStart, openStart, openEnd) {\n if (source && (!(source instanceof WidgetView) || !this.widget.compare(source.widget) ||\n from > 0 && openStart <= 0 || to < this.length && openEnd <= 0))\n return false;\n this.length = from + (source ? source.length : 0) + (this.length - to);\n return true;\n }\n become(other) {\n if (other instanceof WidgetView && other.side == this.side &&\n this.widget.constructor == other.widget.constructor) {\n if (!this.widget.compare(other.widget))\n this.markDirty(true);\n if (this.dom && !this.prevWidget)\n this.prevWidget = this.widget;\n this.widget = other.widget;\n this.length = other.length;\n return true;\n }\n return false;\n }\n ignoreMutation() { return true; }\n ignoreEvent(event) { return this.widget.ignoreEvent(event); }\n get overrideDOMText() {\n if (this.length == 0)\n return Text.empty;\n let top = this;\n while (top.parent)\n top = top.parent;\n let { view } = top, text = view && view.state.doc, start = this.posAtStart;\n return text ? text.slice(start, start + this.length) : Text.empty;\n }\n domAtPos(pos) {\n return (this.length ? pos == 0 : this.side > 0)\n ? DOMPos.before(this.dom)\n : DOMPos.after(this.dom, pos == this.length);\n }\n domBoundsAround() { return null; }\n coordsAt(pos, side) {\n let custom = this.widget.coordsAt(this.dom, pos, side);\n if (custom)\n return custom;\n let rects = this.dom.getClientRects(), rect = null;\n if (!rects.length)\n return null;\n let fromBack = this.side ? this.side < 0 : pos > 0;\n for (let i = fromBack ? rects.length - 1 : 0;; i += (fromBack ? -1 : 1)) {\n rect = rects[i];\n if (pos > 0 ? i == 0 : i == rects.length - 1 || rect.top < rect.bottom)\n break;\n }\n return flattenRect(rect, !fromBack);\n }\n get isEditable() { return false; }\n get isWidget() { return true; }\n get isHidden() { return this.widget.isHidden; }\n destroy() {\n super.destroy();\n if (this.dom)\n this.widget.destroy(this.dom);\n }\n}\n// These are drawn around uneditable widgets to avoid a number of\n// browser bugs that show up when the cursor is directly next to\n// uneditable inline content.\nclass WidgetBufferView extends ContentView {\n constructor(side) {\n super();\n this.side = side;\n }\n get length() { return 0; }\n merge() { return false; }\n become(other) {\n return other instanceof WidgetBufferView && other.side == this.side;\n }\n split() { return new WidgetBufferView(this.side); }\n sync() {\n if (!this.dom) {\n let dom = document.createElement(\"img\");\n dom.className = \"cm-widgetBuffer\";\n dom.setAttribute(\"aria-hidden\", \"true\");\n this.setDOM(dom);\n }\n }\n getSide() { return this.side; }\n domAtPos(pos) { return this.side > 0 ? DOMPos.before(this.dom) : DOMPos.after(this.dom); }\n localPosFromDOM() { return 0; }\n domBoundsAround() { return null; }\n coordsAt(pos) {\n return this.dom.getBoundingClientRect();\n }\n get overrideDOMText() {\n return Text.empty;\n }\n get isHidden() { return true; }\n}\nTextView.prototype.children = WidgetView.prototype.children = WidgetBufferView.prototype.children = noChildren;\nfunction inlineDOMAtPos(parent, pos) {\n let dom = parent.dom, { children } = parent, i = 0;\n for (let off = 0; i < children.length; i++) {\n let child = children[i], end = off + child.length;\n if (end == off && child.getSide() <= 0)\n continue;\n if (pos > off && pos < end && child.dom.parentNode == dom)\n return child.domAtPos(pos - off);\n if (pos <= off)\n break;\n off = end;\n }\n for (let j = i; j > 0; j--) {\n let prev = children[j - 1];\n if (prev.dom.parentNode == dom)\n return prev.domAtPos(prev.length);\n }\n for (let j = i; j < children.length; j++) {\n let next = children[j];\n if (next.dom.parentNode == dom)\n return next.domAtPos(0);\n }\n return new DOMPos(dom, 0);\n}\n// Assumes `view`, if a mark view, has precisely 1 child.\nfunction joinInlineInto(parent, view, open) {\n let last, { children } = parent;\n if (open > 0 && view instanceof MarkView && children.length &&\n (last = children[children.length - 1]) instanceof MarkView && last.mark.eq(view.mark)) {\n joinInlineInto(last, view.children[0], open - 1);\n }\n else {\n children.push(view);\n view.setParent(parent);\n }\n parent.length += view.length;\n}\nfunction coordsInChildren(view, pos, side) {\n let before = null, beforePos = -1, after = null, afterPos = -1;\n function scan(view, pos) {\n for (let i = 0, off = 0; i < view.children.length && off <= pos; i++) {\n let child = view.children[i], end = off + child.length;\n if (end >= pos) {\n if (child.children.length) {\n scan(child, pos - off);\n }\n else if ((!after || after.isHidden && (side > 0 || onSameLine(after, child))) &&\n (end > pos || off == end && child.getSide() > 0)) {\n after = child;\n afterPos = pos - off;\n }\n else if (off < pos || (off == end && child.getSide() < 0) && !child.isHidden) {\n before = child;\n beforePos = pos - off;\n }\n }\n off = end;\n }\n }\n scan(view, pos);\n let target = (side < 0 ? before : after) || before || after;\n if (target)\n return target.coordsAt(Math.max(0, target == before ? beforePos : afterPos), side);\n return fallbackRect(view);\n}\nfunction fallbackRect(view) {\n let last = view.dom.lastChild;\n if (!last)\n return view.dom.getBoundingClientRect();\n let rects = clientRectsFor(last);\n return rects[rects.length - 1] || null;\n}\nfunction onSameLine(a, b) {\n let posA = a.coordsAt(0, 1), posB = b.coordsAt(0, 1);\n return posA && posB && posB.top < posA.bottom;\n}\n\nfunction combineAttrs(source, target) {\n for (let name in source) {\n if (name == \"class\" && target.class)\n target.class += \" \" + source.class;\n else if (name == \"style\" && target.style)\n target.style += \";\" + source.style;\n else\n target[name] = source[name];\n }\n return target;\n}\nconst noAttrs = /*@__PURE__*/Object.create(null);\nfunction attrsEq(a, b, ignore) {\n if (a == b)\n return true;\n if (!a)\n a = noAttrs;\n if (!b)\n b = noAttrs;\n let keysA = Object.keys(a), keysB = Object.keys(b);\n if (keysA.length - (ignore && keysA.indexOf(ignore) > -1 ? 1 : 0) !=\n keysB.length - (ignore && keysB.indexOf(ignore) > -1 ? 1 : 0))\n return false;\n for (let key of keysA) {\n if (key != ignore && (keysB.indexOf(key) == -1 || a[key] !== b[key]))\n return false;\n }\n return true;\n}\nfunction updateAttrs(dom, prev, attrs) {\n let changed = false;\n if (prev)\n for (let name in prev)\n if (!(attrs && name in attrs)) {\n changed = true;\n if (name == \"style\")\n dom.style.cssText = \"\";\n else\n dom.removeAttribute(name);\n }\n if (attrs)\n for (let name in attrs)\n if (!(prev && prev[name] == attrs[name])) {\n changed = true;\n if (name == \"style\")\n dom.style.cssText = attrs[name];\n else\n dom.setAttribute(name, attrs[name]);\n }\n return changed;\n}\nfunction getAttrs(dom) {\n let attrs = Object.create(null);\n for (let i = 0; i < dom.attributes.length; i++) {\n let attr = dom.attributes[i];\n attrs[attr.name] = attr.value;\n }\n return attrs;\n}\n\n/**\nWidgets added to the content are described by subclasses of this\nclass. Using a description object like that makes it possible to\ndelay creating of the DOM structure for a widget until it is\nneeded, and to avoid redrawing widgets even if the decorations\nthat define them are recreated.\n*/\nclass WidgetType {\n /**\n Compare this instance to another instance of the same type.\n (TypeScript can't express this, but only instances of the same\n specific class will be passed to this method.) This is used to\n avoid redrawing widgets when they are replaced by a new\n decoration of the same type. The default implementation just\n returns `false`, which will cause new instances of the widget to\n always be redrawn.\n */\n eq(widget) { return false; }\n /**\n Update a DOM element created by a widget of the same type (but\n different, non-`eq` content) to reflect this widget. May return\n true to indicate that it could update, false to indicate it\n couldn't (in which case the widget will be redrawn). The default\n implementation just returns false.\n */\n updateDOM(dom, view) { return false; }\n /**\n @internal\n */\n compare(other) {\n return this == other || this.constructor == other.constructor && this.eq(other);\n }\n /**\n The estimated height this widget will have, to be used when\n estimating the height of content that hasn't been drawn. May\n return -1 to indicate you don't know. The default implementation\n returns -1.\n */\n get estimatedHeight() { return -1; }\n /**\n For inline widgets that are displayed inline (as opposed to\n `inline-block`) and introduce line breaks (through `<br>` tags\n or textual newlines), this must indicate the amount of line\n breaks they introduce. Defaults to 0.\n */\n get lineBreaks() { return 0; }\n /**\n Can be used to configure which kinds of events inside the widget\n should be ignored by the editor. The default is to ignore all\n events.\n */\n ignoreEvent(event) { return true; }\n /**\n Override the way screen coordinates for positions at/in the\n widget are found. `pos` will be the offset into the widget, and\n `side` the side of the position that is being queried—less than\n zero for before, greater than zero for after, and zero for\n directly at that position.\n */\n coordsAt(dom, pos, side) { return null; }\n /**\n @internal\n */\n get isHidden() { return false; }\n /**\n @internal\n */\n get editable() { return false; }\n /**\n This is called when the an instance of the widget is removed\n from the editor view.\n */\n destroy(dom) { }\n}\n/**\nThe different types of blocks that can occur in an editor view.\n*/\nvar BlockType = /*@__PURE__*/(function (BlockType) {\n /**\n A line of text.\n */\n BlockType[BlockType[\"Text\"] = 0] = \"Text\";\n /**\n A block widget associated with the position after it.\n */\n BlockType[BlockType[\"WidgetBefore\"] = 1] = \"WidgetBefore\";\n /**\n A block widget associated with the position before it.\n */\n BlockType[BlockType[\"WidgetAfter\"] = 2] = \"WidgetAfter\";\n /**\n A block widget [replacing](https://codemirror.net/6/docs/ref/#view.Decoration^replace) a range of content.\n */\n BlockType[BlockType[\"WidgetRange\"] = 3] = \"WidgetRange\";\nreturn BlockType})(BlockType || (BlockType = {}));\n/**\nA decoration provides information on how to draw or style a piece\nof content. You'll usually use it wrapped in a\n[`Range`](https://codemirror.net/6/docs/ref/#state.Range), which adds a start and end position.\n@nonabstract\n*/\nclass Decoration extends RangeValue {\n constructor(\n /**\n @internal\n */\n startSide, \n /**\n @internal\n */\n endSide, \n /**\n @internal\n */\n widget, \n /**\n The config object used to create this decoration. You can\n include additional properties in there to store metadata about\n your decoration.\n */\n spec) {\n super();\n this.startSide = startSide;\n this.endSide = endSide;\n this.widget = widget;\n this.spec = spec;\n }\n /**\n @internal\n */\n get heightRelevant() { return false; }\n /**\n Create a mark decoration, which influences the styling of the\n content in its range. Nested mark decorations will cause nested\n DOM elements to be created. Nesting order is determined by\n precedence of the [facet](https://codemirror.net/6/docs/ref/#view.EditorView^decorations), with\n the higher-precedence decorations creating the inner DOM nodes.\n Such elements are split on line boundaries and on the boundaries\n of lower-precedence decorations.\n */\n static mark(spec) {\n return new MarkDecoration(spec);\n }\n /**\n Create a widget decoration, which displays a DOM element at the\n given position.\n */\n static widget(spec) {\n let side = Math.max(-10000, Math.min(10000, spec.side || 0)), block = !!spec.block;\n side += (block && !spec.inlineOrder)\n ? (side > 0 ? 300000000 /* Side.BlockAfter */ : -400000000 /* Side.BlockBefore */)\n : (side > 0 ? 100000000 /* Side.InlineAfter */ : -100000000 /* Side.InlineBefore */);\n return new PointDecoration(spec, side, side, block, spec.widget || null, false);\n }\n /**\n Create a replace decoration which replaces the given range with\n a widget, or simply hides it.\n */\n static replace(spec) {\n let block = !!spec.block, startSide, endSide;\n if (spec.isBlockGap) {\n startSide = -500000000 /* Side.GapStart */;\n endSide = 400000000 /* Side.GapEnd */;\n }\n else {\n let { start, end } = getInclusive(spec, block);\n startSide = (start ? (block ? -300000000 /* Side.BlockIncStart */ : -1 /* Side.InlineIncStart */) : 500000000 /* Side.NonIncStart */) - 1;\n endSide = (end ? (block ? 200000000 /* Side.BlockIncEnd */ : 1 /* Side.InlineIncEnd */) : -600000000 /* Side.NonIncEnd */) + 1;\n }\n return new PointDecoration(spec, startSide, endSide, block, spec.widget || null, true);\n }\n /**\n Create a line decoration, which can add DOM attributes to the\n line starting at the given position.\n */\n static line(spec) {\n return new LineDecoration(spec);\n }\n /**\n Build a [`DecorationSet`](https://codemirror.net/6/docs/ref/#view.DecorationSet) from the given\n decorated range or ranges. If the ranges aren't already sorted,\n pass `true` for `sort` to make the library sort them for you.\n */\n static set(of, sort = false) {\n return RangeSet.of(of, sort);\n }\n /**\n @internal\n */\n hasHeight() { return this.widget ? this.widget.estimatedHeight > -1 : false; }\n}\n/**\nThe empty set of decorations.\n*/\nDecoration.none = RangeSet.empty;\nclass MarkDecoration extends Decoration {\n constructor(spec) {\n let { start, end } = getInclusive(spec);\n super(start ? -1 /* Side.InlineIncStart */ : 500000000 /* Side.NonIncStart */, end ? 1 /* Side.InlineIncEnd */ : -600000000 /* Side.NonIncEnd */, null, spec);\n this.tagName = spec.tagName || \"span\";\n this.class = spec.class || \"\";\n this.attrs = spec.attributes || null;\n }\n eq(other) {\n var _a, _b;\n return this == other ||\n other instanceof MarkDecoration &&\n this.tagName == other.tagName &&\n (this.class || ((_a = this.attrs) === null || _a === void 0 ? void 0 : _a.class)) == (other.class || ((_b = other.attrs) === null || _b === void 0 ? void 0 : _b.class)) &&\n attrsEq(this.attrs, other.attrs, \"class\");\n }\n range(from, to = from) {\n if (from >= to)\n throw new RangeError(\"Mark decorations may not be empty\");\n return super.range(from, to);\n }\n}\nMarkDecoration.prototype.point = false;\nclass LineDecoration extends Decoration {\n constructor(spec) {\n super(-200000000 /* Side.Line */, -200000000 /* Side.Line */, null, spec);\n }\n eq(other) {\n return other instanceof LineDecoration &&\n this.spec.class == other.spec.class &&\n attrsEq(this.spec.attributes, other.spec.attributes);\n }\n range(from, to = from) {\n if (to != from)\n throw new RangeError(\"Line decoration ranges must be zero-length\");\n return super.range(from, to);\n }\n}\nLineDecoration.prototype.mapMode = MapMode.TrackBefore;\nLineDecoration.prototype.point = true;\nclass PointDecoration extends Decoration {\n constructor(spec, startSide, endSide, block, widget, isReplace) {\n super(startSide, endSide, widget, spec);\n this.block = block;\n this.isReplace = isReplace;\n this.mapMode = !block ? MapMode.TrackDel : startSide <= 0 ? MapMode.TrackBefore : MapMode.TrackAfter;\n }\n // Only relevant when this.block == true\n get type() {\n return this.startSide != this.endSide ? BlockType.WidgetRange\n : this.startSide <= 0 ? BlockType.WidgetBefore : BlockType.WidgetAfter;\n }\n get heightRelevant() {\n return this.block || !!this.widget && (this.widget.estimatedHeight >= 5 || this.widget.lineBreaks > 0);\n }\n eq(other) {\n return other instanceof PointDecoration &&\n widgetsEq(this.widget, other.widget) &&\n this.block == other.block &&\n this.startSide == other.startSide && this.endSide == other.endSide;\n }\n range(from, to = from) {\n if (this.isReplace && (from > to || (from == to && this.startSide > 0 && this.endSide <= 0)))\n throw new RangeError(\"Invalid range for replacement decoration\");\n if (!this.isReplace && to != from)\n throw new RangeError(\"Widget decorations can only have zero-length ranges\");\n return super.range(from, to);\n }\n}\nPointDecoration.prototype.point = true;\nfunction getInclusive(spec, block = false) {\n let { inclusiveStart: start, inclusiveEnd: end } = spec;\n if (start == null)\n start = spec.inclusive;\n if (end == null)\n end = spec.inclusive;\n return { start: start !== null && start !== void 0 ? start : block, end: end !== null && end !== void 0 ? end : block };\n}\nfunction widgetsEq(a, b) {\n return a == b || !!(a && b && a.compare(b));\n}\nfunction addRange(from, to, ranges, margin = 0) {\n let last = ranges.length - 1;\n if (last >= 0 && ranges[last] + margin >= from)\n ranges[last] = Math.max(ranges[last], to);\n else\n ranges.push(from, to);\n}\n\nclass LineView extends ContentView {\n constructor() {\n super(...arguments);\n this.children = [];\n this.length = 0;\n this.prevAttrs = undefined;\n this.attrs = null;\n this.breakAfter = 0;\n }\n // Consumes source\n merge(from, to, source, hasStart, openStart, openEnd) {\n if (source) {\n if (!(source instanceof LineView))\n return false;\n if (!this.dom)\n source.transferDOM(this); // Reuse source.dom when appropriate\n }\n if (hasStart)\n this.setDeco(source ? source.attrs : null);\n mergeChildrenInto(this, from, to, source ? source.children.slice() : [], openStart, openEnd);\n return true;\n }\n split(at) {\n let end = new LineView;\n end.breakAfter = this.breakAfter;\n if (this.length == 0)\n return end;\n let { i, off } = this.childPos(at);\n if (off) {\n end.append(this.children[i].split(off), 0);\n this.children[i].merge(off, this.children[i].length, null, false, 0, 0);\n i++;\n }\n for (let j = i; j < this.children.length; j++)\n end.append(this.children[j], 0);\n while (i > 0 && this.children[i - 1].length == 0)\n this.children[--i].destroy();\n this.children.length = i;\n this.markDirty();\n this.length = at;\n return end;\n }\n transferDOM(other) {\n if (!this.dom)\n return;\n this.markDirty();\n other.setDOM(this.dom);\n other.prevAttrs = this.prevAttrs === undefined ? this.attrs : this.prevAttrs;\n this.prevAttrs = undefined;\n this.dom = null;\n }\n setDeco(attrs) {\n if (!attrsEq(this.attrs, attrs)) {\n if (this.dom) {\n this.prevAttrs = this.attrs;\n this.markDirty();\n }\n this.attrs = attrs;\n }\n }\n append(child, openStart) {\n joinInlineInto(this, child, openStart);\n }\n // Only called when building a line view in ContentBuilder\n addLineDeco(deco) {\n let attrs = deco.spec.attributes, cls = deco.spec.class;\n if (attrs)\n this.attrs = combineAttrs(attrs, this.attrs || {});\n if (cls)\n this.attrs = combineAttrs({ class: cls }, this.attrs || {});\n }\n domAtPos(pos) {\n return inlineDOMAtPos(this, pos);\n }\n reuseDOM(node) {\n if (node.nodeName == \"DIV\") {\n this.setDOM(node);\n this.flags |= 4 /* ViewFlag.AttrsDirty */ | 2 /* ViewFlag.NodeDirty */;\n }\n }\n sync(view, track) {\n var _a;\n if (!this.dom) {\n this.setDOM(document.createElement(\"div\"));\n this.dom.className = \"cm-line\";\n this.prevAttrs = this.attrs ? null : undefined;\n }\n else if (this.flags & 4 /* ViewFlag.AttrsDirty */) {\n clearAttributes(this.dom);\n this.dom.className = \"cm-line\";\n this.prevAttrs = this.attrs ? null : undefined;\n }\n if (this.prevAttrs !== undefined) {\n updateAttrs(this.dom, this.prevAttrs, this.attrs);\n this.dom.classList.add(\"cm-line\");\n this.prevAttrs = undefined;\n }\n super.sync(view, track);\n let last = this.dom.lastChild;\n while (last && ContentView.get(last) instanceof MarkView)\n last = last.lastChild;\n if (!last || !this.length ||\n last.nodeName != \"BR\" && ((_a = ContentView.get(last)) === null || _a === void 0 ? void 0 : _a.isEditable) == false &&\n (!browser.ios || !this.children.some(ch => ch instanceof TextView))) {\n let hack = document.createElement(\"BR\");\n hack.cmIgnore = true;\n this.dom.appendChild(hack);\n }\n }\n measureTextSize() {\n if (this.children.length == 0 || this.length > 20)\n return null;\n let totalWidth = 0, textHeight;\n for (let child of this.children) {\n if (!(child instanceof TextView) || /[^ -~]/.test(child.text))\n return null;\n let rects = clientRectsFor(child.dom);\n if (rects.length != 1)\n return null;\n totalWidth += rects[0].width;\n textHeight = rects[0].height;\n }\n return !totalWidth ? null : {\n lineHeight: this.dom.getBoundingClientRect().height,\n charWidth: totalWidth / this.length,\n textHeight\n };\n }\n coordsAt(pos, side) {\n let rect = coordsInChildren(this, pos, side);\n // Correct rectangle height for empty lines when the returned\n // height is larger than the text height.\n if (!this.children.length && rect && this.parent) {\n let { heightOracle } = this.parent.view.viewState, height = rect.bottom - rect.top;\n if (Math.abs(height - heightOracle.lineHeight) < 2 && heightOracle.textHeight < height) {\n let dist = (height - heightOracle.textHeight) / 2;\n return { top: rect.top + dist, bottom: rect.bottom - dist, left: rect.left, right: rect.left };\n }\n }\n return rect;\n }\n become(other) {\n return other instanceof LineView && this.children.length == 0 && other.children.length == 0 &&\n attrsEq(this.attrs, other.attrs) && this.breakAfter == other.breakAfter;\n }\n covers() { return true; }\n static find(docView, pos) {\n for (let i = 0, off = 0; i < docView.children.length; i++) {\n let block = docView.children[i], end = off + block.length;\n if (end >= pos) {\n if (block instanceof LineView)\n return block;\n if (end > pos)\n break;\n }\n off = end + block.breakAfter;\n }\n return null;\n }\n}\nclass BlockWidgetView extends ContentView {\n constructor(widget, length, deco) {\n super();\n this.widget = widget;\n this.length = length;\n this.deco = deco;\n this.breakAfter = 0;\n this.prevWidget = null;\n }\n merge(from, to, source, _takeDeco, openStart, openEnd) {\n if (source && (!(source instanceof BlockWidgetView) || !this.widget.compare(source.widget) ||\n from > 0 && openStart <= 0 || to < this.length && openEnd <= 0))\n return false;\n this.length = from + (source ? source.length : 0) + (this.length - to);\n return true;\n }\n domAtPos(pos) {\n return pos == 0 ? DOMPos.before(this.dom) : DOMPos.after(this.dom, pos == this.length);\n }\n split(at) {\n let len = this.length - at;\n this.length = at;\n let end = new BlockWidgetView(this.widget, len, this.deco);\n end.breakAfter = this.breakAfter;\n return end;\n }\n get children() { return noChildren; }\n sync(view) {\n if (!this.dom || !this.widget.updateDOM(this.dom, view)) {\n if (this.dom && this.prevWidget)\n this.prevWidget.destroy(this.dom);\n this.prevWidget = null;\n this.setDOM(this.widget.toDOM(view));\n if (!this.widget.editable)\n this.dom.contentEditable = \"false\";\n }\n }\n get overrideDOMText() {\n return this.parent ? this.parent.view.state.doc.slice(this.posAtStart, this.posAtEnd) : Text.empty;\n }\n domBoundsAround() { return null; }\n become(other) {\n if (other instanceof BlockWidgetView &&\n other.widget.constructor == this.widget.constructor) {\n if (!other.widget.compare(this.widget))\n this.markDirty(true);\n if (this.dom && !this.prevWidget)\n this.prevWidget = this.widget;\n this.widget = other.widget;\n this.length = other.length;\n this.deco = other.deco;\n this.breakAfter = other.breakAfter;\n return true;\n }\n return false;\n }\n ignoreMutation() { return true; }\n ignoreEvent(event) { return this.widget.ignoreEvent(event); }\n get isEditable() { return false; }\n get isWidget() { return true; }\n coordsAt(pos, side) {\n let custom = this.widget.coordsAt(this.dom, pos, side);\n if (custom)\n return custom;\n if (this.widget instanceof BlockGapWidget)\n return null;\n return flattenRect(this.dom.getBoundingClientRect(), this.length ? pos == 0 : side <= 0);\n }\n destroy() {\n super.destroy();\n if (this.dom)\n this.widget.destroy(this.dom);\n }\n covers(side) {\n let { startSide, endSide } = this.deco;\n return startSide == endSide ? false : side < 0 ? startSide < 0 : endSide > 0;\n }\n}\nclass BlockGapWidget extends WidgetType {\n constructor(height) {\n super();\n this.height = height;\n }\n toDOM() {\n let elt = document.createElement(\"div\");\n elt.className = \"cm-gap\";\n this.updateDOM(elt);\n return elt;\n }\n eq(other) { return other.height == this.height; }\n updateDOM(elt) {\n elt.style.height = this.height + \"px\";\n return true;\n }\n get editable() { return true; }\n get estimatedHeight() { return this.height; }\n ignoreEvent() { return false; }\n}\n\nclass ContentBuilder {\n constructor(doc, pos, end, disallowBlockEffectsFor) {\n this.doc = doc;\n this.pos = pos;\n this.end = end;\n this.disallowBlockEffectsFor = disallowBlockEffectsFor;\n this.content = [];\n this.curLine = null;\n this.breakAtStart = 0;\n this.pendingBuffer = 0 /* Buf.No */;\n this.bufferMarks = [];\n // Set to false directly after a widget that covers the position after it\n this.atCursorPos = true;\n this.openStart = -1;\n this.openEnd = -1;\n this.text = \"\";\n this.textOff = 0;\n this.cursor = doc.iter();\n this.skip = pos;\n }\n posCovered() {\n if (this.content.length == 0)\n return !this.breakAtStart && this.doc.lineAt(this.pos).from != this.pos;\n let last = this.content[this.content.length - 1];\n return !(last.breakAfter || last instanceof BlockWidgetView && last.deco.endSide < 0);\n }\n getLine() {\n if (!this.curLine) {\n this.content.push(this.curLine = new LineView);\n this.atCursorPos = true;\n }\n return this.curLine;\n }\n flushBuffer(active = this.bufferMarks) {\n if (this.pendingBuffer) {\n this.curLine.append(wrapMarks(new WidgetBufferView(-1), active), active.length);\n this.pendingBuffer = 0 /* Buf.No */;\n }\n }\n addBlockWidget(view) {\n this.flushBuffer();\n this.curLine = null;\n this.content.push(view);\n }\n finish(openEnd) {\n if (this.pendingBuffer && openEnd <= this.bufferMarks.length)\n this.flushBuffer();\n else\n this.pendingBuffer = 0 /* Buf.No */;\n if (!this.posCovered() &&\n !(openEnd && this.content.length && this.content[this.content.length - 1] instanceof BlockWidgetView))\n this.getLine();\n }\n buildText(length, active, openStart) {\n while (length > 0) {\n if (this.textOff == this.text.length) {\n let { value, lineBreak, done } = this.cursor.next(this.skip);\n this.skip = 0;\n if (done)\n throw new Error(\"Ran out of text content when drawing inline views\");\n if (lineBreak) {\n if (!this.posCovered())\n this.getLine();\n if (this.content.length)\n this.content[this.content.length - 1].breakAfter = 1;\n else\n this.breakAtStart = 1;\n this.flushBuffer();\n this.curLine = null;\n this.atCursorPos = true;\n length--;\n continue;\n }\n else {\n this.text = value;\n this.textOff = 0;\n }\n }\n let remaining = Math.min(this.text.length - this.textOff, length);\n let take = Math.min(remaining, 512 /* T.Chunk */);\n this.flushBuffer(active.slice(active.length - openStart));\n this.getLine().append(wrapMarks(new TextView(this.text.slice(this.textOff, this.textOff + take)), active), openStart);\n this.atCursorPos = true;\n this.textOff += take;\n length -= take;\n openStart = remaining <= take ? 0 : active.length;\n }\n }\n span(from, to, active, openStart) {\n this.buildText(to - from, active, openStart);\n this.pos = to;\n if (this.openStart < 0)\n this.openStart = openStart;\n }\n point(from, to, deco, active, openStart, index) {\n if (this.disallowBlockEffectsFor[index] && deco instanceof PointDecoration) {\n if (deco.block)\n throw new RangeError(\"Block decorations may not be specified via plugins\");\n if (to > this.doc.lineAt(this.pos).to)\n throw new RangeError(\"Decorations that replace line breaks may not be specified via plugins\");\n }\n let len = to - from;\n if (deco instanceof PointDecoration) {\n if (deco.block) {\n if (deco.startSide > 0 && !this.posCovered())\n this.getLine();\n this.addBlockWidget(new BlockWidgetView(deco.widget || NullWidget.block, len, deco));\n }\n else {\n let view = WidgetView.create(deco.widget || NullWidget.inline, len, len ? 0 : deco.startSide);\n let cursorBefore = this.atCursorPos && !view.isEditable && openStart <= active.length &&\n (from < to || deco.startSide > 0);\n let cursorAfter = !view.isEditable && (from < to || openStart > active.length || deco.startSide <= 0);\n let line = this.getLine();\n if (this.pendingBuffer == 2 /* Buf.IfCursor */ && !cursorBefore && !view.isEditable)\n this.pendingBuffer = 0 /* Buf.No */;\n this.flushBuffer(active);\n if (cursorBefore) {\n line.append(wrapMarks(new WidgetBufferView(1), active), openStart);\n openStart = active.length + Math.max(0, openStart - active.length);\n }\n line.append(wrapMarks(view, active), openStart);\n this.atCursorPos = cursorAfter;\n this.pendingBuffer = !cursorAfter ? 0 /* Buf.No */ : from < to || openStart > active.length ? 1 /* Buf.Yes */ : 2 /* Buf.IfCursor */;\n if (this.pendingBuffer)\n this.bufferMarks = active.slice();\n }\n }\n else if (this.doc.lineAt(this.pos).from == this.pos) { // Line decoration\n this.getLine().addLineDeco(deco);\n }\n if (len) {\n // Advance the iterator past the replaced content\n if (this.textOff + len <= this.text.length) {\n this.textOff += len;\n }\n else {\n this.skip += len - (this.text.length - this.textOff);\n this.text = \"\";\n this.textOff = 0;\n }\n this.pos = to;\n }\n if (this.openStart < 0)\n this.openStart = openStart;\n }\n static build(text, from, to, decorations, dynamicDecorationMap) {\n let builder = new ContentBuilder(text, from, to, dynamicDecorationMap);\n builder.openEnd = RangeSet.spans(decorations, from, to, builder);\n if (builder.openStart < 0)\n builder.openStart = builder.openEnd;\n builder.finish(builder.openEnd);\n return builder;\n }\n}\nfunction wrapMarks(view, active) {\n for (let mark of active)\n view = new MarkView(mark, [view], view.length);\n return view;\n}\nclass NullWidget extends WidgetType {\n constructor(tag) {\n super();\n this.tag = tag;\n }\n eq(other) { return other.tag == this.tag; }\n toDOM() { return document.createElement(this.tag); }\n updateDOM(elt) { return elt.nodeName.toLowerCase() == this.tag; }\n get isHidden() { return true; }\n}\nNullWidget.inline = /*@__PURE__*/new NullWidget(\"span\");\nNullWidget.block = /*@__PURE__*/new NullWidget(\"div\");\n\n/**\nUsed to indicate [text direction](https://codemirror.net/6/docs/ref/#view.EditorView.textDirection).\n*/\nvar Direction = /*@__PURE__*/(function (Direction) {\n // (These are chosen to match the base levels, in bidi algorithm\n // terms, of spans in that direction.)\n /**\n Left-to-right.\n */\n Direction[Direction[\"LTR\"] = 0] = \"LTR\";\n /**\n Right-to-left.\n */\n Direction[Direction[\"RTL\"] = 1] = \"RTL\";\nreturn Direction})(Direction || (Direction = {}));\nconst LTR = Direction.LTR, RTL = Direction.RTL;\n// Decode a string with each type encoded as log2(type)\nfunction dec(str) {\n let result = [];\n for (let i = 0; i < str.length; i++)\n result.push(1 << +str[i]);\n return result;\n}\n// Character types for codepoints 0 to 0xf8\nconst LowTypes = /*@__PURE__*/dec(\"88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008\");\n// Character types for codepoints 0x600 to 0x6f9\nconst ArabicTypes = /*@__PURE__*/dec(\"4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333\");\nconst Brackets = /*@__PURE__*/Object.create(null), BracketStack = [];\n// There's a lot more in\n// https://www.unicode.org/Public/UCD/latest/ucd/BidiBrackets.txt,\n// which are left out to keep code size down.\nfor (let p of [\"()\", \"[]\", \"{}\"]) {\n let l = /*@__PURE__*/p.charCodeAt(0), r = /*@__PURE__*/p.charCodeAt(1);\n Brackets[l] = r;\n Brackets[r] = -l;\n}\nfunction charType(ch) {\n return ch <= 0xf7 ? LowTypes[ch] :\n 0x590 <= ch && ch <= 0x5f4 ? 2 /* T.R */ :\n 0x600 <= ch && ch <= 0x6f9 ? ArabicTypes[ch - 0x600] :\n 0x6ee <= ch && ch <= 0x8ac ? 4 /* T.AL */ :\n 0x2000 <= ch && ch <= 0x200c ? 256 /* T.NI */ :\n 0xfb50 <= ch && ch <= 0xfdff ? 4 /* T.AL */ : 1 /* T.L */;\n}\nconst BidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac\\ufb50-\\ufdff]/;\n/**\nRepresents a contiguous range of text that has a single direction\n(as in left-to-right or right-to-left).\n*/\nclass BidiSpan {\n /**\n The direction of this span.\n */\n get dir() { return this.level % 2 ? RTL : LTR; }\n /**\n @internal\n */\n constructor(\n /**\n The start of the span (relative to the start of the line).\n */\n from, \n /**\n The end of the span.\n */\n to, \n /**\n The [\"bidi\n level\"](https://unicode.org/reports/tr9/#Basic_Display_Algorithm)\n of the span (in this context, 0 means\n left-to-right, 1 means right-to-left, 2 means left-to-right\n number inside right-to-left text).\n */\n level) {\n this.from = from;\n this.to = to;\n this.level = level;\n }\n /**\n @internal\n */\n side(end, dir) { return (this.dir == dir) == end ? this.to : this.from; }\n /**\n @internal\n */\n forward(forward, dir) { return forward == (this.dir == dir); }\n /**\n @internal\n */\n static find(order, index, level, assoc) {\n let maybe = -1;\n for (let i = 0; i < order.length; i++) {\n let span = order[i];\n if (span.from <= index && span.to >= index) {\n if (span.level == level)\n return i;\n // When multiple spans match, if assoc != 0, take the one that\n // covers that side, otherwise take the one with the minimum\n // level.\n if (maybe < 0 || (assoc != 0 ? (assoc < 0 ? span.from < index : span.to > index) : order[maybe].level > span.level))\n maybe = i;\n }\n }\n if (maybe < 0)\n throw new RangeError(\"Index out of range\");\n return maybe;\n }\n}\nfunction isolatesEq(a, b) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++) {\n let iA = a[i], iB = b[i];\n if (iA.from != iB.from || iA.to != iB.to || iA.direction != iB.direction || !isolatesEq(iA.inner, iB.inner))\n return false;\n }\n return true;\n}\n// Reused array of character types\nconst types = [];\n// Fill in the character types (in `types`) from `from` to `to` and\n// apply W normalization rules.\nfunction computeCharTypes(line, rFrom, rTo, isolates, outerType) {\n for (let iI = 0; iI <= isolates.length; iI++) {\n let from = iI ? isolates[iI - 1].to : rFrom, to = iI < isolates.length ? isolates[iI].from : rTo;\n let prevType = iI ? 256 /* T.NI */ : outerType;\n // W1. Examine each non-spacing mark (NSM) in the level run, and\n // change the type of the NSM to the type of the previous\n // character. If the NSM is at the start of the level run, it will\n // get the type of sor.\n // W2. Search backwards from each instance of a European number\n // until the first strong type (R, L, AL, or sor) is found. If an\n // AL is found, change the type of the European number to Arabic\n // number.\n // W3. Change all ALs to R.\n // (Left after this: L, R, EN, AN, ET, CS, NI)\n for (let i = from, prev = prevType, prevStrong = prevType; i < to; i++) {\n let type = charType(line.charCodeAt(i));\n if (type == 512 /* T.NSM */)\n type = prev;\n else if (type == 8 /* T.EN */ && prevStrong == 4 /* T.AL */)\n type = 16 /* T.AN */;\n types[i] = type == 4 /* T.AL */ ? 2 /* T.R */ : type;\n if (type & 7 /* T.Strong */)\n prevStrong = type;\n prev = type;\n }\n // W5. A sequence of European terminators adjacent to European\n // numbers changes to all European numbers.\n // W6. Otherwise, separators and terminators change to Other\n // Neutral.\n // W7. Search backwards from each instance of a European number\n // until the first strong type (R, L, or sor) is found. If an L is\n // found, then change the type of the European number to L.\n // (Left after this: L, R, EN+AN, NI)\n for (let i = from, prev = prevType, prevStrong = prevType; i < to; i++) {\n let type = types[i];\n if (type == 128 /* T.CS */) {\n if (i < to - 1 && prev == types[i + 1] && (prev & 24 /* T.Num */))\n type = types[i] = prev;\n else\n types[i] = 256 /* T.NI */;\n }\n else if (type == 64 /* T.ET */) {\n let end = i + 1;\n while (end < to && types[end] == 64 /* T.ET */)\n end++;\n let replace = (i && prev == 8 /* T.EN */) || (end < rTo && types[end] == 8 /* T.EN */) ? (prevStrong == 1 /* T.L */ ? 1 /* T.L */ : 8 /* T.EN */) : 256 /* T.NI */;\n for (let j = i; j < end; j++)\n types[j] = replace;\n i = end - 1;\n }\n else if (type == 8 /* T.EN */ && prevStrong == 1 /* T.L */) {\n types[i] = 1 /* T.L */;\n }\n prev = type;\n if (type & 7 /* T.Strong */)\n prevStrong = type;\n }\n }\n}\n// Process brackets throughout a run sequence.\nfunction processBracketPairs(line, rFrom, rTo, isolates, outerType) {\n let oppositeType = outerType == 1 /* T.L */ ? 2 /* T.R */ : 1 /* T.L */;\n for (let iI = 0, sI = 0, context = 0; iI <= isolates.length; iI++) {\n let from = iI ? isolates[iI - 1].to : rFrom, to = iI < isolates.length ? isolates[iI].from : rTo;\n // N0. Process bracket pairs in an isolating run sequence\n // sequentially in the logical order of the text positions of the\n // opening paired brackets using the logic given below. Within this\n // scope, bidirectional types EN and AN are treated as R.\n for (let i = from, ch, br, type; i < to; i++) {\n // Keeps [startIndex, type, strongSeen] triples for each open\n // bracket on BracketStack.\n if (br = Brackets[ch = line.charCodeAt(i)]) {\n if (br < 0) { // Closing bracket\n for (let sJ = sI - 3; sJ >= 0; sJ -= 3) {\n if (BracketStack[sJ + 1] == -br) {\n let flags = BracketStack[sJ + 2];\n let type = (flags & 2 /* Bracketed.EmbedInside */) ? outerType :\n !(flags & 4 /* Bracketed.OppositeInside */) ? 0 :\n (flags & 1 /* Bracketed.OppositeBefore */) ? oppositeType : outerType;\n if (type)\n types[i] = types[BracketStack[sJ]] = type;\n sI = sJ;\n break;\n }\n }\n }\n else if (BracketStack.length == 189 /* Bracketed.MaxDepth */) {\n break;\n }\n else {\n BracketStack[sI++] = i;\n BracketStack[sI++] = ch;\n BracketStack[sI++] = context;\n }\n }\n else if ((type = types[i]) == 2 /* T.R */ || type == 1 /* T.L */) {\n let embed = type == outerType;\n context = embed ? 0 : 1 /* Bracketed.OppositeBefore */;\n for (let sJ = sI - 3; sJ >= 0; sJ -= 3) {\n let cur = BracketStack[sJ + 2];\n if (cur & 2 /* Bracketed.EmbedInside */)\n break;\n if (embed) {\n BracketStack[sJ + 2] |= 2 /* Bracketed.EmbedInside */;\n }\n else {\n if (cur & 4 /* Bracketed.OppositeInside */)\n break;\n BracketStack[sJ + 2] |= 4 /* Bracketed.OppositeInside */;\n }\n }\n }\n }\n }\n}\nfunction processNeutrals(rFrom, rTo, isolates, outerType) {\n for (let iI = 0, prev = outerType; iI <= isolates.length; iI++) {\n let from = iI ? isolates[iI - 1].to : rFrom, to = iI < isolates.length ? isolates[iI].from : rTo;\n // N1. A sequence of neutrals takes the direction of the\n // surrounding strong text if the text on both sides has the same\n // direction. European and Arabic numbers act as if they were R in\n // terms of their influence on neutrals. Start-of-level-run (sor)\n // and end-of-level-run (eor) are used at level run boundaries.\n // N2. Any remaining neutrals take the embedding direction.\n // (Left after this: L, R, EN+AN)\n for (let i = from; i < to;) {\n let type = types[i];\n if (type == 256 /* T.NI */) {\n let end = i + 1;\n for (;;) {\n if (end == to) {\n if (iI == isolates.length)\n break;\n end = isolates[iI++].to;\n to = iI < isolates.length ? isolates[iI].from : rTo;\n }\n else if (types[end] == 256 /* T.NI */) {\n end++;\n }\n else {\n break;\n }\n }\n let beforeL = prev == 1 /* T.L */;\n let afterL = (end < rTo ? types[end] : outerType) == 1 /* T.L */;\n let replace = beforeL == afterL ? (beforeL ? 1 /* T.L */ : 2 /* T.R */) : outerType;\n for (let j = end, jI = iI, fromJ = jI ? isolates[jI - 1].to : rFrom; j > i;) {\n if (j == fromJ) {\n j = isolates[--jI].from;\n fromJ = jI ? isolates[jI - 1].to : rFrom;\n }\n types[--j] = replace;\n }\n i = end;\n }\n else {\n prev = type;\n i++;\n }\n }\n }\n}\n// Find the contiguous ranges of character types in a given range, and\n// emit spans for them. Flip the order of the spans as appropriate\n// based on the level, and call through to compute the spans for\n// isolates at the proper point.\nfunction emitSpans(line, from, to, level, baseLevel, isolates, order) {\n let ourType = level % 2 ? 2 /* T.R */ : 1 /* T.L */;\n if ((level % 2) == (baseLevel % 2)) { // Same dir as base direction, don't flip\n for (let iCh = from, iI = 0; iCh < to;) {\n // Scan a section of characters in direction ourType, unless\n // there's another type of char right after iCh, in which case\n // we scan a section of other characters (which, if ourType ==\n // T.L, may contain both T.R and T.AN chars).\n let sameDir = true, isNum = false;\n if (iI == isolates.length || iCh < isolates[iI].from) {\n let next = types[iCh];\n if (next != ourType) {\n sameDir = false;\n isNum = next == 16 /* T.AN */;\n }\n }\n // Holds an array of isolates to pass to a recursive call if we\n // must recurse (to distinguish T.AN inside an RTL section in\n // LTR text), null if we can emit directly\n let recurse = !sameDir && ourType == 1 /* T.L */ ? [] : null;\n let localLevel = sameDir ? level : level + 1;\n let iScan = iCh;\n run: for (;;) {\n if (iI < isolates.length && iScan == isolates[iI].from) {\n if (isNum)\n break run;\n let iso = isolates[iI];\n // Scan ahead to verify that there is another char in this dir after the isolate(s)\n if (!sameDir)\n for (let upto = iso.to, jI = iI + 1;;) {\n if (upto == to)\n break run;\n if (jI < isolates.length && isolates[jI].from == upto)\n upto = isolates[jI++].to;\n else if (types[upto] == ourType)\n break run;\n else\n break;\n }\n iI++;\n if (recurse) {\n recurse.push(iso);\n }\n else {\n if (iso.from > iCh)\n order.push(new BidiSpan(iCh, iso.from, localLevel));\n let dirSwap = (iso.direction == LTR) != !(localLevel % 2);\n computeSectionOrder(line, dirSwap ? level + 1 : level, baseLevel, iso.inner, iso.from, iso.to, order);\n iCh = iso.to;\n }\n iScan = iso.to;\n }\n else if (iScan == to || (sameDir ? types[iScan] != ourType : types[iScan] == ourType)) {\n break;\n }\n else {\n iScan++;\n }\n }\n if (recurse)\n emitSpans(line, iCh, iScan, level + 1, baseLevel, recurse, order);\n else if (iCh < iScan)\n order.push(new BidiSpan(iCh, iScan, localLevel));\n iCh = iScan;\n }\n }\n else {\n // Iterate in reverse to flip the span order. Same code again, but\n // going from the back of the section to the front\n for (let iCh = to, iI = isolates.length; iCh > from;) {\n let sameDir = true, isNum = false;\n if (!iI || iCh > isolates[iI - 1].to) {\n let next = types[iCh - 1];\n if (next != ourType) {\n sameDir = false;\n isNum = next == 16 /* T.AN */;\n }\n }\n let recurse = !sameDir && ourType == 1 /* T.L */ ? [] : null;\n let localLevel = sameDir ? level : level + 1;\n let iScan = iCh;\n run: for (;;) {\n if (iI && iScan == isolates[iI - 1].to) {\n if (isNum)\n break run;\n let iso = isolates[--iI];\n // Scan ahead to verify that there is another char in this dir after the isolate(s)\n if (!sameDir)\n for (let upto = iso.from, jI = iI;;) {\n if (upto == from)\n break run;\n if (jI && isolates[jI - 1].to == upto)\n upto = isolates[--jI].from;\n else if (types[upto - 1] == ourType)\n break run;\n else\n break;\n }\n if (recurse) {\n recurse.push(iso);\n }\n else {\n if (iso.to < iCh)\n order.push(new BidiSpan(iso.to, iCh, localLevel));\n let dirSwap = (iso.direction == LTR) != !(localLevel % 2);\n computeSectionOrder(line, dirSwap ? level + 1 : level, baseLevel, iso.inner, iso.from, iso.to, order);\n iCh = iso.from;\n }\n iScan = iso.from;\n }\n else if (iScan == from || (sameDir ? types[iScan - 1] != ourType : types[iScan - 1] == ourType)) {\n break;\n }\n else {\n iScan--;\n }\n }\n if (recurse)\n emitSpans(line, iScan, iCh, level + 1, baseLevel, recurse, order);\n else if (iScan < iCh)\n order.push(new BidiSpan(iScan, iCh, localLevel));\n iCh = iScan;\n }\n }\n}\nfunction computeSectionOrder(line, level, baseLevel, isolates, from, to, order) {\n let outerType = (level % 2 ? 2 /* T.R */ : 1 /* T.L */);\n computeCharTypes(line, from, to, isolates, outerType);\n processBracketPairs(line, from, to, isolates, outerType);\n processNeutrals(from, to, isolates, outerType);\n emitSpans(line, from, to, level, baseLevel, isolates, order);\n}\nfunction computeOrder(line, direction, isolates) {\n if (!line)\n return [new BidiSpan(0, 0, direction == RTL ? 1 : 0)];\n if (direction == LTR && !isolates.length && !BidiRE.test(line))\n return trivialOrder(line.length);\n if (isolates.length)\n while (line.length > types.length)\n types[types.length] = 256 /* T.NI */; // Make sure types array has no gaps\n let order = [], level = direction == LTR ? 0 : 1;\n computeSectionOrder(line, level, level, isolates, 0, line.length, order);\n return order;\n}\nfunction trivialOrder(length) {\n return [new BidiSpan(0, length, 0)];\n}\nlet movedOver = \"\";\n// This implementation moves strictly visually, without concern for a\n// traversal visiting every logical position in the string. It will\n// still do so for simple input, but situations like multiple isolates\n// with the same level next to each other, or text going against the\n// main dir at the end of the line, will make some positions\n// unreachable with this motion. Each visible cursor position will\n// correspond to the lower-level bidi span that touches it.\n//\n// The alternative would be to solve an order globally for a given\n// line, making sure that it includes every position, but that would\n// require associating non-canonical (higher bidi span level)\n// positions with a given visual position, which is likely to confuse\n// people. (And would generally be a lot more complicated.)\nfunction moveVisually(line, order, dir, start, forward) {\n var _a;\n let startIndex = start.head - line.from;\n let spanI = BidiSpan.find(order, startIndex, (_a = start.bidiLevel) !== null && _a !== void 0 ? _a : -1, start.assoc);\n let span = order[spanI], spanEnd = span.side(forward, dir);\n // End of span\n if (startIndex == spanEnd) {\n let nextI = spanI += forward ? 1 : -1;\n if (nextI < 0 || nextI >= order.length)\n return null;\n span = order[spanI = nextI];\n startIndex = span.side(!forward, dir);\n spanEnd = span.side(forward, dir);\n }\n let nextIndex = findClusterBreak(line.text, startIndex, span.forward(forward, dir));\n if (nextIndex < span.from || nextIndex > span.to)\n nextIndex = spanEnd;\n movedOver = line.text.slice(Math.min(startIndex, nextIndex), Math.max(startIndex, nextIndex));\n let nextSpan = spanI == (forward ? order.length - 1 : 0) ? null : order[spanI + (forward ? 1 : -1)];\n if (nextSpan && nextIndex == spanEnd && nextSpan.level + (forward ? 0 : 1) < span.level)\n return EditorSelection.cursor(nextSpan.side(!forward, dir) + line.from, nextSpan.forward(forward, dir) ? 1 : -1, nextSpan.level);\n return EditorSelection.cursor(nextIndex + line.from, span.forward(forward, dir) ? -1 : 1, span.level);\n}\nfunction autoDirection(text, from, to) {\n for (let i = from; i < to; i++) {\n let type = charType(text.charCodeAt(i));\n if (type == 1 /* T.L */)\n return LTR;\n if (type == 2 /* T.R */ || type == 4 /* T.AL */)\n return RTL;\n }\n return LTR;\n}\n\nconst clickAddsSelectionRange = /*@__PURE__*/Facet.define();\nconst dragMovesSelection$1 = /*@__PURE__*/Facet.define();\nconst mouseSelectionStyle = /*@__PURE__*/Facet.define();\nconst exceptionSink = /*@__PURE__*/Facet.define();\nconst updateListener = /*@__PURE__*/Facet.define();\nconst inputHandler = /*@__PURE__*/Facet.define();\nconst focusChangeEffect = /*@__PURE__*/Facet.define();\nconst clipboardInputFilter = /*@__PURE__*/Facet.define();\nconst clipboardOutputFilter = /*@__PURE__*/Facet.define();\nconst perLineTextDirection = /*@__PURE__*/Facet.define({\n combine: values => values.some(x => x)\n});\nconst nativeSelectionHidden = /*@__PURE__*/Facet.define({\n combine: values => values.some(x => x)\n});\nconst scrollHandler = /*@__PURE__*/Facet.define();\nclass ScrollTarget {\n constructor(range, y = \"nearest\", x = \"nearest\", yMargin = 5, xMargin = 5, \n // This data structure is abused to also store precise scroll\n // snapshots, instead of a `scrollIntoView` request. When this\n // flag is `true`, `range` points at a position in the reference\n // line, `yMargin` holds the difference between the top of that\n // line and the top of the editor, and `xMargin` holds the\n // editor's `scrollLeft`.\n isSnapshot = false) {\n this.range = range;\n this.y = y;\n this.x = x;\n this.yMargin = yMargin;\n this.xMargin = xMargin;\n this.isSnapshot = isSnapshot;\n }\n map(changes) {\n return changes.empty ? this :\n new ScrollTarget(this.range.map(changes), this.y, this.x, this.yMargin, this.xMargin, this.isSnapshot);\n }\n clip(state) {\n return this.range.to <= state.doc.length ? this :\n new ScrollTarget(EditorSelection.cursor(state.doc.length), this.y, this.x, this.yMargin, this.xMargin, this.isSnapshot);\n }\n}\nconst scrollIntoView = /*@__PURE__*/StateEffect.define({ map: (t, ch) => t.map(ch) });\nconst setEditContextFormatting = /*@__PURE__*/StateEffect.define();\n/**\nLog or report an unhandled exception in client code. Should\nprobably only be used by extension code that allows client code to\nprovide functions, and calls those functions in a context where an\nexception can't be propagated to calling code in a reasonable way\n(for example when in an event handler).\n\nEither calls a handler registered with\n[`EditorView.exceptionSink`](https://codemirror.net/6/docs/ref/#view.EditorView^exceptionSink),\n`window.onerror`, if defined, or `console.error` (in which case\nit'll pass `context`, when given, as first argument).\n*/\nfunction logException(state, exception, context) {\n let handler = state.facet(exceptionSink);\n if (handler.length)\n handler[0](exception);\n else if (window.onerror && window.onerror(String(exception), context, undefined, undefined, exception)) ;\n else if (context)\n console.error(context + \":\", exception);\n else\n console.error(exception);\n}\nconst editable = /*@__PURE__*/Facet.define({ combine: values => values.length ? values[0] : true });\nlet nextPluginID = 0;\nconst viewPlugin = /*@__PURE__*/Facet.define({\n combine(plugins) {\n return plugins.filter((p, i) => {\n for (let j = 0; j < i; j++)\n if (plugins[j].plugin == p.plugin)\n return false;\n return true;\n });\n }\n});\n/**\nView plugins associate stateful values with a view. They can\ninfluence the way the content is drawn, and are notified of things\nthat happen in the view. They optionally take an argument, in\nwhich case you need to call [`of`](https://codemirror.net/6/docs/ref/#view.ViewPlugin.of) to create\nan extension for the plugin. When the argument type is undefined,\nyou can use the plugin instance as an extension directly.\n*/\nclass ViewPlugin {\n constructor(\n /**\n @internal\n */\n id, \n /**\n @internal\n */\n create, \n /**\n @internal\n */\n domEventHandlers, \n /**\n @internal\n */\n domEventObservers, buildExtensions) {\n this.id = id;\n this.create = create;\n this.domEventHandlers = domEventHandlers;\n this.domEventObservers = domEventObservers;\n this.baseExtensions = buildExtensions(this);\n this.extension = this.baseExtensions.concat(viewPlugin.of({ plugin: this, arg: undefined }));\n }\n /**\n Create an extension for this plugin with the given argument.\n */\n of(arg) {\n return this.baseExtensions.concat(viewPlugin.of({ plugin: this, arg }));\n }\n /**\n Define a plugin from a constructor function that creates the\n plugin's value, given an editor view.\n */\n static define(create, spec) {\n const { eventHandlers, eventObservers, provide, decorations: deco } = spec || {};\n return new ViewPlugin(nextPluginID++, create, eventHandlers, eventObservers, plugin => {\n let ext = [];\n if (deco)\n ext.push(decorations.of(view => {\n let pluginInst = view.plugin(plugin);\n return pluginInst ? deco(pluginInst) : Decoration.none;\n }));\n if (provide)\n ext.push(provide(plugin));\n return ext;\n });\n }\n /**\n Create a plugin for a class whose constructor takes a single\n editor view as argument.\n */\n static fromClass(cls, spec) {\n return ViewPlugin.define((view, arg) => new cls(view, arg), spec);\n }\n}\nclass PluginInstance {\n constructor(spec) {\n this.spec = spec;\n // When starting an update, all plugins have this field set to the\n // update object, indicating they need to be updated. When finished\n // updating, it is set to `null`. Retrieving a plugin that needs to\n // be updated with `view.plugin` forces an eager update.\n this.mustUpdate = null;\n // This is null when the plugin is initially created, but\n // initialized on the first update.\n this.value = null;\n }\n get plugin() { return this.spec && this.spec.plugin; }\n update(view) {\n if (!this.value) {\n if (this.spec) {\n try {\n this.value = this.spec.plugin.create(view, this.spec.arg);\n }\n catch (e) {\n logException(view.state, e, \"CodeMirror plugin crashed\");\n this.deactivate();\n }\n }\n }\n else if (this.mustUpdate) {\n let update = this.mustUpdate;\n this.mustUpdate = null;\n if (this.value.update) {\n try {\n this.value.update(update);\n }\n catch (e) {\n logException(update.state, e, \"CodeMirror plugin crashed\");\n if (this.value.destroy)\n try {\n this.value.destroy();\n }\n catch (_) { }\n this.deactivate();\n }\n }\n }\n return this;\n }\n destroy(view) {\n var _a;\n if ((_a = this.value) === null || _a === void 0 ? void 0 : _a.destroy) {\n try {\n this.value.destroy();\n }\n catch (e) {\n logException(view.state, e, \"CodeMirror plugin crashed\");\n }\n }\n }\n deactivate() {\n this.spec = this.value = null;\n }\n}\nconst editorAttributes = /*@__PURE__*/Facet.define();\nconst contentAttributes = /*@__PURE__*/Facet.define();\n// Provide decorations\nconst decorations = /*@__PURE__*/Facet.define();\nconst outerDecorations = /*@__PURE__*/Facet.define();\nconst atomicRanges = /*@__PURE__*/Facet.define();\nconst bidiIsolatedRanges = /*@__PURE__*/Facet.define();\nfunction getIsolatedRanges(view, line) {\n let isolates = view.state.facet(bidiIsolatedRanges);\n if (!isolates.length)\n return isolates;\n let sets = isolates.map(i => i instanceof Function ? i(view) : i);\n let result = [];\n RangeSet.spans(sets, line.from, line.to, {\n point() { },\n span(fromDoc, toDoc, active, open) {\n let from = fromDoc - line.from, to = toDoc - line.from;\n let level = result;\n for (let i = active.length - 1; i >= 0; i--, open--) {\n let direction = active[i].spec.bidiIsolate, update;\n if (direction == null)\n direction = autoDirection(line.text, from, to);\n if (open > 0 && level.length &&\n (update = level[level.length - 1]).to == from && update.direction == direction) {\n update.to = to;\n level = update.inner;\n }\n else {\n let add = { from, to, direction, inner: [] };\n level.push(add);\n level = add.inner;\n }\n }\n }\n });\n return result;\n}\nconst scrollMargins = /*@__PURE__*/Facet.define();\nfunction getScrollMargins(view) {\n let left = 0, right = 0, top = 0, bottom = 0;\n for (let source of view.state.facet(scrollMargins)) {\n let m = source(view);\n if (m) {\n if (m.left != null)\n left = Math.max(left, m.left);\n if (m.right != null)\n right = Math.max(right, m.right);\n if (m.top != null)\n top = Math.max(top, m.top);\n if (m.bottom != null)\n bottom = Math.max(bottom, m.bottom);\n }\n }\n return { left, right, top, bottom };\n}\nconst styleModule = /*@__PURE__*/Facet.define();\nclass ChangedRange {\n constructor(fromA, toA, fromB, toB) {\n this.fromA = fromA;\n this.toA = toA;\n this.fromB = fromB;\n this.toB = toB;\n }\n join(other) {\n return new ChangedRange(Math.min(this.fromA, other.fromA), Math.max(this.toA, other.toA), Math.min(this.fromB, other.fromB), Math.max(this.toB, other.toB));\n }\n addToSet(set) {\n let i = set.length, me = this;\n for (; i > 0; i--) {\n let range = set[i - 1];\n if (range.fromA > me.toA)\n continue;\n if (range.toA < me.fromA)\n break;\n me = me.join(range);\n set.splice(i - 1, 1);\n }\n set.splice(i, 0, me);\n return set;\n }\n static extendWithRanges(diff, ranges) {\n if (ranges.length == 0)\n return diff;\n let result = [];\n for (let dI = 0, rI = 0, posA = 0, posB = 0;; dI++) {\n let next = dI == diff.length ? null : diff[dI], off = posA - posB;\n let end = next ? next.fromB : 1e9;\n while (rI < ranges.length && ranges[rI] < end) {\n let from = ranges[rI], to = ranges[rI + 1];\n let fromB = Math.max(posB, from), toB = Math.min(end, to);\n if (fromB <= toB)\n new ChangedRange(fromB + off, toB + off, fromB, toB).addToSet(result);\n if (to > end)\n break;\n else\n rI += 2;\n }\n if (!next)\n return result;\n new ChangedRange(next.fromA, next.toA, next.fromB, next.toB).addToSet(result);\n posA = next.toA;\n posB = next.toB;\n }\n }\n}\n/**\nView [plugins](https://codemirror.net/6/docs/ref/#view.ViewPlugin) are given instances of this\nclass, which describe what happened, whenever the view is updated.\n*/\nclass ViewUpdate {\n constructor(\n /**\n The editor view that the update is associated with.\n */\n view, \n /**\n The new editor state.\n */\n state, \n /**\n The transactions involved in the update. May be empty.\n */\n transactions) {\n this.view = view;\n this.state = state;\n this.transactions = transactions;\n /**\n @internal\n */\n this.flags = 0;\n this.startState = view.state;\n this.changes = ChangeSet.empty(this.startState.doc.length);\n for (let tr of transactions)\n this.changes = this.changes.compose(tr.changes);\n let changedRanges = [];\n this.changes.iterChangedRanges((fromA, toA, fromB, toB) => changedRanges.push(new ChangedRange(fromA, toA, fromB, toB)));\n this.changedRanges = changedRanges;\n }\n /**\n @internal\n */\n static create(view, state, transactions) {\n return new ViewUpdate(view, state, transactions);\n }\n /**\n Tells you whether the [viewport](https://codemirror.net/6/docs/ref/#view.EditorView.viewport) or\n [visible ranges](https://codemirror.net/6/docs/ref/#view.EditorView.visibleRanges) changed in this\n update.\n */\n get viewportChanged() {\n return (this.flags & 4 /* UpdateFlag.Viewport */) > 0;\n }\n /**\n Returns true when\n [`viewportChanged`](https://codemirror.net/6/docs/ref/#view.ViewUpdate.viewportChanged) is true\n and the viewport change is not just the result of mapping it in\n response to document changes.\n */\n get viewportMoved() {\n return (this.flags & 8 /* UpdateFlag.ViewportMoved */) > 0;\n }\n /**\n Indicates whether the height of a block element in the editor\n changed in this update.\n */\n get heightChanged() {\n return (this.flags & 2 /* UpdateFlag.Height */) > 0;\n }\n /**\n Returns true when the document was modified or the size of the\n editor, or elements within the editor, changed.\n */\n get geometryChanged() {\n return this.docChanged || (this.flags & (16 /* UpdateFlag.Geometry */ | 2 /* UpdateFlag.Height */)) > 0;\n }\n /**\n True when this update indicates a focus change.\n */\n get focusChanged() {\n return (this.flags & 1 /* UpdateFlag.Focus */) > 0;\n }\n /**\n Whether the document changed in this update.\n */\n get docChanged() {\n return !this.changes.empty;\n }\n /**\n Whether the selection was explicitly set in this update.\n */\n get selectionSet() {\n return this.transactions.some(tr => tr.selection);\n }\n /**\n @internal\n */\n get empty() { return this.flags == 0 && this.transactions.length == 0; }\n}\n\nclass DocView extends ContentView {\n get length() { return this.view.state.doc.length; }\n constructor(view) {\n super();\n this.view = view;\n this.decorations = [];\n this.dynamicDecorationMap = [false];\n this.domChanged = null;\n this.hasComposition = null;\n this.markedForComposition = new Set;\n this.editContextFormatting = Decoration.none;\n this.lastCompositionAfterCursor = false;\n // Track a minimum width for the editor. When measuring sizes in\n // measureVisibleLineHeights, this is updated to point at the width\n // of a given element and its extent in the document. When a change\n // happens in that range, these are reset. That way, once we've seen\n // a line/element of a given length, we keep the editor wide enough\n // to fit at least that element, until it is changed, at which point\n // we forget it again.\n this.minWidth = 0;\n this.minWidthFrom = 0;\n this.minWidthTo = 0;\n // Track whether the DOM selection was set in a lossy way, so that\n // we don't mess it up when reading it back it\n this.impreciseAnchor = null;\n this.impreciseHead = null;\n this.forceSelection = false;\n // Used by the resize observer to ignore resizes that we caused\n // ourselves\n this.lastUpdate = Date.now();\n this.setDOM(view.contentDOM);\n this.children = [new LineView];\n this.children[0].setParent(this);\n this.updateDeco();\n this.updateInner([new ChangedRange(0, 0, 0, view.state.doc.length)], 0, null);\n }\n // Update the document view to a given state.\n update(update) {\n var _a;\n let changedRanges = update.changedRanges;\n if (this.minWidth > 0 && changedRanges.length) {\n if (!changedRanges.every(({ fromA, toA }) => toA < this.minWidthFrom || fromA > this.minWidthTo)) {\n this.minWidth = this.minWidthFrom = this.minWidthTo = 0;\n }\n else {\n this.minWidthFrom = update.changes.mapPos(this.minWidthFrom, 1);\n this.minWidthTo = update.changes.mapPos(this.minWidthTo, 1);\n }\n }\n this.updateEditContextFormatting(update);\n let readCompositionAt = -1;\n if (this.view.inputState.composing >= 0 && !this.view.observer.editContext) {\n if ((_a = this.domChanged) === null || _a === void 0 ? void 0 : _a.newSel)\n readCompositionAt = this.domChanged.newSel.head;\n else if (!touchesComposition(update.changes, this.hasComposition) && !update.selectionSet)\n readCompositionAt = update.state.selection.main.head;\n }\n let composition = readCompositionAt > -1 ? findCompositionRange(this.view, update.changes, readCompositionAt) : null;\n this.domChanged = null;\n if (this.hasComposition) {\n this.markedForComposition.clear();\n let { from, to } = this.hasComposition;\n changedRanges = new ChangedRange(from, to, update.changes.mapPos(from, -1), update.changes.mapPos(to, 1))\n .addToSet(changedRanges.slice());\n }\n this.hasComposition = composition ? { from: composition.range.fromB, to: composition.range.toB } : null;\n // When the DOM nodes around the selection are moved to another\n // parent, Chrome sometimes reports a different selection through\n // getSelection than the one that it actually shows to the user.\n // This forces a selection update when lines are joined to work\n // around that. Issue #54\n if ((browser.ie || browser.chrome) && !composition && update &&\n update.state.doc.lines != update.startState.doc.lines)\n this.forceSelection = true;\n let prevDeco = this.decorations, deco = this.updateDeco();\n let decoDiff = findChangedDeco(prevDeco, deco, update.changes);\n changedRanges = ChangedRange.extendWithRanges(changedRanges, decoDiff);\n if (!(this.flags & 7 /* ViewFlag.Dirty */) && changedRanges.length == 0) {\n return false;\n }\n else {\n this.updateInner(changedRanges, update.startState.doc.length, composition);\n if (update.transactions.length)\n this.lastUpdate = Date.now();\n return true;\n }\n }\n // Used by update and the constructor do perform the actual DOM\n // update\n updateInner(changes, oldLength, composition) {\n this.view.viewState.mustMeasureContent = true;\n this.updateChildren(changes, oldLength, composition);\n let { observer } = this.view;\n observer.ignore(() => {\n // Lock the height during redrawing, since Chrome sometimes\n // messes with the scroll position during DOM mutation (though\n // no relayout is triggered and I cannot imagine how it can\n // recompute the scroll position without a layout)\n this.dom.style.height = this.view.viewState.contentHeight / this.view.scaleY + \"px\";\n this.dom.style.flexBasis = this.minWidth ? this.minWidth + \"px\" : \"\";\n // Chrome will sometimes, when DOM mutations occur directly\n // around the selection, get confused and report a different\n // selection from the one it displays (issue #218). This tries\n // to detect that situation.\n let track = browser.chrome || browser.ios ? { node: observer.selectionRange.focusNode, written: false } : undefined;\n this.sync(this.view, track);\n this.flags &= ~7 /* ViewFlag.Dirty */;\n if (track && (track.written || observer.selectionRange.focusNode != track.node))\n this.forceSelection = true;\n this.dom.style.height = \"\";\n });\n this.markedForComposition.forEach(cView => cView.flags &= ~8 /* ViewFlag.Composition */);\n let gaps = [];\n if (this.view.viewport.from || this.view.viewport.to < this.view.state.doc.length)\n for (let child of this.children)\n if (child instanceof BlockWidgetView && child.widget instanceof BlockGapWidget)\n gaps.push(child.dom);\n observer.updateGaps(gaps);\n }\n updateChildren(changes, oldLength, composition) {\n let ranges = composition ? composition.range.addToSet(changes.slice()) : changes;\n let cursor = this.childCursor(oldLength);\n for (let i = ranges.length - 1;; i--) {\n let next = i >= 0 ? ranges[i] : null;\n if (!next)\n break;\n let { fromA, toA, fromB, toB } = next, content, breakAtStart, openStart, openEnd;\n if (composition && composition.range.fromB < toB && composition.range.toB > fromB) {\n let before = ContentBuilder.build(this.view.state.doc, fromB, composition.range.fromB, this.decorations, this.dynamicDecorationMap);\n let after = ContentBuilder.build(this.view.state.doc, composition.range.toB, toB, this.decorations, this.dynamicDecorationMap);\n breakAtStart = before.breakAtStart;\n openStart = before.openStart;\n openEnd = after.openEnd;\n let compLine = this.compositionView(composition);\n if (after.breakAtStart) {\n compLine.breakAfter = 1;\n }\n else if (after.content.length &&\n compLine.merge(compLine.length, compLine.length, after.content[0], false, after.openStart, 0)) {\n compLine.breakAfter = after.content[0].breakAfter;\n after.content.shift();\n }\n if (before.content.length &&\n compLine.merge(0, 0, before.content[before.content.length - 1], true, 0, before.openEnd)) {\n before.content.pop();\n }\n content = before.content.concat(compLine).concat(after.content);\n }\n else {\n ({ content, breakAtStart, openStart, openEnd } =\n ContentBuilder.build(this.view.state.doc, fromB, toB, this.decorations, this.dynamicDecorationMap));\n }\n let { i: toI, off: toOff } = cursor.findPos(toA, 1);\n let { i: fromI, off: fromOff } = cursor.findPos(fromA, -1);\n replaceRange(this, fromI, fromOff, toI, toOff, content, breakAtStart, openStart, openEnd);\n }\n if (composition)\n this.fixCompositionDOM(composition);\n }\n updateEditContextFormatting(update) {\n this.editContextFormatting = this.editContextFormatting.map(update.changes);\n for (let tr of update.transactions)\n for (let effect of tr.effects)\n if (effect.is(setEditContextFormatting)) {\n this.editContextFormatting = effect.value;\n }\n }\n compositionView(composition) {\n let cur = new TextView(composition.text.nodeValue);\n cur.flags |= 8 /* ViewFlag.Composition */;\n for (let { deco } of composition.marks)\n cur = new MarkView(deco, [cur], cur.length);\n let line = new LineView;\n line.append(cur, 0);\n return line;\n }\n fixCompositionDOM(composition) {\n let fix = (dom, cView) => {\n cView.flags |= 8 /* ViewFlag.Composition */ | (cView.children.some(c => c.flags & 7 /* ViewFlag.Dirty */) ? 1 /* ViewFlag.ChildDirty */ : 0);\n this.markedForComposition.add(cView);\n let prev = ContentView.get(dom);\n if (prev && prev != cView)\n prev.dom = null;\n cView.setDOM(dom);\n };\n let pos = this.childPos(composition.range.fromB, 1);\n let cView = this.children[pos.i];\n fix(composition.line, cView);\n for (let i = composition.marks.length - 1; i >= -1; i--) {\n pos = cView.childPos(pos.off, 1);\n cView = cView.children[pos.i];\n fix(i >= 0 ? composition.marks[i].node : composition.text, cView);\n }\n }\n // Sync the DOM selection to this.state.selection\n updateSelection(mustRead = false, fromPointer = false) {\n if (mustRead || !this.view.observer.selectionRange.focusNode)\n this.view.observer.readSelectionRange();\n let activeElt = this.view.root.activeElement, focused = activeElt == this.dom;\n let selectionNotFocus = !focused && !(this.view.state.facet(editable) || this.dom.tabIndex > -1) &&\n hasSelection(this.dom, this.view.observer.selectionRange) && !(activeElt && this.dom.contains(activeElt));\n if (!(focused || fromPointer || selectionNotFocus))\n return;\n let force = this.forceSelection;\n this.forceSelection = false;\n let main = this.view.state.selection.main;\n let anchor = this.moveToLine(this.domAtPos(main.anchor));\n let head = main.empty ? anchor : this.moveToLine(this.domAtPos(main.head));\n // Always reset on Firefox when next to an uneditable node to\n // avoid invisible cursor bugs (#111)\n if (browser.gecko && main.empty && !this.hasComposition && betweenUneditable(anchor)) {\n let dummy = document.createTextNode(\"\");\n this.view.observer.ignore(() => anchor.node.insertBefore(dummy, anchor.node.childNodes[anchor.offset] || null));\n anchor = head = new DOMPos(dummy, 0);\n force = true;\n }\n let domSel = this.view.observer.selectionRange;\n // If the selection is already here, or in an equivalent position, don't touch it\n if (force || !domSel.focusNode || (!isEquivalentPosition(anchor.node, anchor.offset, domSel.anchorNode, domSel.anchorOffset) ||\n !isEquivalentPosition(head.node, head.offset, domSel.focusNode, domSel.focusOffset)) && !this.suppressWidgetCursorChange(domSel, main)) {\n this.view.observer.ignore(() => {\n // Chrome Android will hide the virtual keyboard when tapping\n // inside an uneditable node, and not bring it back when we\n // move the cursor to its proper position. This tries to\n // restore the keyboard by cycling focus.\n if (browser.android && browser.chrome && this.dom.contains(domSel.focusNode) &&\n inUneditable(domSel.focusNode, this.dom)) {\n this.dom.blur();\n this.dom.focus({ preventScroll: true });\n }\n let rawSel = getSelection(this.view.root);\n if (!rawSel) ;\n else if (main.empty) {\n // Work around https://bugzilla.mozilla.org/show_bug.cgi?id=1612076\n if (browser.gecko) {\n let nextTo = nextToUneditable(anchor.node, anchor.offset);\n if (nextTo && nextTo != (1 /* NextTo.Before */ | 2 /* NextTo.After */)) {\n let text = (nextTo == 1 /* NextTo.Before */ ? textNodeBefore : textNodeAfter)(anchor.node, anchor.offset);\n if (text)\n anchor = new DOMPos(text.node, text.offset);\n }\n }\n rawSel.collapse(anchor.node, anchor.offset);\n if (main.bidiLevel != null && rawSel.caretBidiLevel !== undefined)\n rawSel.caretBidiLevel = main.bidiLevel;\n }\n else if (rawSel.extend) {\n // Selection.extend can be used to create an 'inverted' selection\n // (one where the focus is before the anchor), but not all\n // browsers support it yet.\n rawSel.collapse(anchor.node, anchor.offset);\n // Safari will ignore the call above when the editor is\n // hidden, and then raise an error on the call to extend\n // (#940).\n try {\n rawSel.extend(head.node, head.offset);\n }\n catch (_) { }\n }\n else {\n // Primitive (IE) way\n let range = document.createRange();\n if (main.anchor > main.head)\n [anchor, head] = [head, anchor];\n range.setEnd(head.node, head.offset);\n range.setStart(anchor.node, anchor.offset);\n rawSel.removeAllRanges();\n rawSel.addRange(range);\n }\n if (selectionNotFocus && this.view.root.activeElement == this.dom) {\n this.dom.blur();\n if (activeElt)\n activeElt.focus();\n }\n });\n this.view.observer.setSelectionRange(anchor, head);\n }\n this.impreciseAnchor = anchor.precise ? null : new DOMPos(domSel.anchorNode, domSel.anchorOffset);\n this.impreciseHead = head.precise ? null : new DOMPos(domSel.focusNode, domSel.focusOffset);\n }\n // If a zero-length widget is inserted next to the cursor during\n // composition, avoid moving it across it and disrupting the\n // composition.\n suppressWidgetCursorChange(sel, cursor) {\n return this.hasComposition && cursor.empty &&\n isEquivalentPosition(sel.focusNode, sel.focusOffset, sel.anchorNode, sel.anchorOffset) &&\n this.posFromDOM(sel.focusNode, sel.focusOffset) == cursor.head;\n }\n enforceCursorAssoc() {\n if (this.hasComposition)\n return;\n let { view } = this, cursor = view.state.selection.main;\n let sel = getSelection(view.root);\n let { anchorNode, anchorOffset } = view.observer.selectionRange;\n if (!sel || !cursor.empty || !cursor.assoc || !sel.modify)\n return;\n let line = LineView.find(this, cursor.head);\n if (!line)\n return;\n let lineStart = line.posAtStart;\n if (cursor.head == lineStart || cursor.head == lineStart + line.length)\n return;\n let before = this.coordsAt(cursor.head, -1), after = this.coordsAt(cursor.head, 1);\n if (!before || !after || before.bottom > after.top)\n return;\n let dom = this.domAtPos(cursor.head + cursor.assoc);\n sel.collapse(dom.node, dom.offset);\n sel.modify(\"move\", cursor.assoc < 0 ? \"forward\" : \"backward\", \"lineboundary\");\n // This can go wrong in corner cases like single-character lines,\n // so check and reset if necessary.\n view.observer.readSelectionRange();\n let newRange = view.observer.selectionRange;\n if (view.docView.posFromDOM(newRange.anchorNode, newRange.anchorOffset) != cursor.from)\n sel.collapse(anchorNode, anchorOffset);\n }\n // If a position is in/near a block widget, move it to a nearby text\n // line, since we don't want the cursor inside a block widget.\n moveToLine(pos) {\n // Block widgets will return positions before/after them, which\n // are thus directly in the document DOM element.\n let dom = this.dom, newPos;\n if (pos.node != dom)\n return pos;\n for (let i = pos.offset; !newPos && i < dom.childNodes.length; i++) {\n let view = ContentView.get(dom.childNodes[i]);\n if (view instanceof LineView)\n newPos = view.domAtPos(0);\n }\n for (let i = pos.offset - 1; !newPos && i >= 0; i--) {\n let view = ContentView.get(dom.childNodes[i]);\n if (view instanceof LineView)\n newPos = view.domAtPos(view.length);\n }\n return newPos ? new DOMPos(newPos.node, newPos.offset, true) : pos;\n }\n nearest(dom) {\n for (let cur = dom; cur;) {\n let domView = ContentView.get(cur);\n if (domView && domView.rootView == this)\n return domView;\n cur = cur.parentNode;\n }\n return null;\n }\n posFromDOM(node, offset) {\n let view = this.nearest(node);\n if (!view)\n throw new RangeError(\"Trying to find position for a DOM position outside of the document\");\n return view.localPosFromDOM(node, offset) + view.posAtStart;\n }\n domAtPos(pos) {\n let { i, off } = this.childCursor().findPos(pos, -1);\n for (; i < this.children.length - 1;) {\n let child = this.children[i];\n if (off < child.length || child instanceof LineView)\n break;\n i++;\n off = 0;\n }\n return this.children[i].domAtPos(off);\n }\n coordsAt(pos, side) {\n let best = null, bestPos = 0;\n for (let off = this.length, i = this.children.length - 1; i >= 0; i--) {\n let child = this.children[i], end = off - child.breakAfter, start = end - child.length;\n if (end < pos)\n break;\n if (start <= pos && (start < pos || child.covers(-1)) && (end > pos || child.covers(1)) &&\n (!best || child instanceof LineView && !(best instanceof LineView && side >= 0))) {\n best = child;\n bestPos = start;\n }\n else if (best && start == pos && end == pos && child instanceof BlockWidgetView && Math.abs(side) < 2) {\n if (child.deco.startSide < 0)\n break;\n else if (i)\n best = null;\n }\n off = start;\n }\n return best ? best.coordsAt(pos - bestPos, side) : null;\n }\n coordsForChar(pos) {\n let { i, off } = this.childPos(pos, 1), child = this.children[i];\n if (!(child instanceof LineView))\n return null;\n while (child.children.length) {\n let { i, off: childOff } = child.childPos(off, 1);\n for (;; i++) {\n if (i == child.children.length)\n return null;\n if ((child = child.children[i]).length)\n break;\n }\n off = childOff;\n }\n if (!(child instanceof TextView))\n return null;\n let end = findClusterBreak(child.text, off);\n if (end == off)\n return null;\n let rects = textRange(child.dom, off, end).getClientRects();\n for (let i = 0; i < rects.length; i++) {\n let rect = rects[i];\n if (i == rects.length - 1 || rect.top < rect.bottom && rect.left < rect.right)\n return rect;\n }\n return null;\n }\n measureVisibleLineHeights(viewport) {\n let result = [], { from, to } = viewport;\n let contentWidth = this.view.contentDOM.clientWidth;\n let isWider = contentWidth > Math.max(this.view.scrollDOM.clientWidth, this.minWidth) + 1;\n let widest = -1, ltr = this.view.textDirection == Direction.LTR;\n for (let pos = 0, i = 0; i < this.children.length; i++) {\n let child = this.children[i], end = pos + child.length;\n if (end > to)\n break;\n if (pos >= from) {\n let childRect = child.dom.getBoundingClientRect();\n result.push(childRect.height);\n if (isWider) {\n let last = child.dom.lastChild;\n let rects = last ? clientRectsFor(last) : [];\n if (rects.length) {\n let rect = rects[rects.length - 1];\n let width = ltr ? rect.right - childRect.left : childRect.right - rect.left;\n if (width > widest) {\n widest = width;\n this.minWidth = contentWidth;\n this.minWidthFrom = pos;\n this.minWidthTo = end;\n }\n }\n }\n }\n pos = end + child.breakAfter;\n }\n return result;\n }\n textDirectionAt(pos) {\n let { i } = this.childPos(pos, 1);\n return getComputedStyle(this.children[i].dom).direction == \"rtl\" ? Direction.RTL : Direction.LTR;\n }\n measureTextSize() {\n for (let child of this.children) {\n if (child instanceof LineView) {\n let measure = child.measureTextSize();\n if (measure)\n return measure;\n }\n }\n // If no workable line exists, force a layout of a measurable element\n let dummy = document.createElement(\"div\"), lineHeight, charWidth, textHeight;\n dummy.className = \"cm-line\";\n dummy.style.width = \"99999px\";\n dummy.style.position = \"absolute\";\n dummy.textContent = \"abc def ghi jkl mno pqr stu\";\n this.view.observer.ignore(() => {\n this.dom.appendChild(dummy);\n let rect = clientRectsFor(dummy.firstChild)[0];\n lineHeight = dummy.getBoundingClientRect().height;\n charWidth = rect ? rect.width / 27 : 7;\n textHeight = rect ? rect.height : lineHeight;\n dummy.remove();\n });\n return { lineHeight, charWidth, textHeight };\n }\n childCursor(pos = this.length) {\n // Move back to start of last element when possible, so that\n // `ChildCursor.findPos` doesn't have to deal with the edge case\n // of being after the last element.\n let i = this.children.length;\n if (i)\n pos -= this.children[--i].length;\n return new ChildCursor(this.children, pos, i);\n }\n computeBlockGapDeco() {\n let deco = [], vs = this.view.viewState;\n for (let pos = 0, i = 0;; i++) {\n let next = i == vs.viewports.length ? null : vs.viewports[i];\n let end = next ? next.from - 1 : this.length;\n if (end > pos) {\n let height = (vs.lineBlockAt(end).bottom - vs.lineBlockAt(pos).top) / this.view.scaleY;\n deco.push(Decoration.replace({\n widget: new BlockGapWidget(height),\n block: true,\n inclusive: true,\n isBlockGap: true,\n }).range(pos, end));\n }\n if (!next)\n break;\n pos = next.to + 1;\n }\n return Decoration.set(deco);\n }\n updateDeco() {\n let i = 1;\n let allDeco = this.view.state.facet(decorations).map(d => {\n let dynamic = this.dynamicDecorationMap[i++] = typeof d == \"function\";\n return dynamic ? d(this.view) : d;\n });\n let dynamicOuter = false, outerDeco = this.view.state.facet(outerDecorations).map((d, i) => {\n let dynamic = typeof d == \"function\";\n if (dynamic)\n dynamicOuter = true;\n return dynamic ? d(this.view) : d;\n });\n if (outerDeco.length) {\n this.dynamicDecorationMap[i++] = dynamicOuter;\n allDeco.push(RangeSet.join(outerDeco));\n }\n this.decorations = [\n this.editContextFormatting,\n ...allDeco,\n this.computeBlockGapDeco(),\n this.view.viewState.lineGapDeco\n ];\n while (i < this.decorations.length)\n this.dynamicDecorationMap[i++] = false;\n return this.decorations;\n }\n scrollIntoView(target) {\n if (target.isSnapshot) {\n let ref = this.view.viewState.lineBlockAt(target.range.head);\n this.view.scrollDOM.scrollTop = ref.top - target.yMargin;\n this.view.scrollDOM.scrollLeft = target.xMargin;\n return;\n }\n for (let handler of this.view.state.facet(scrollHandler)) {\n try {\n if (handler(this.view, target.range, target))\n return true;\n }\n catch (e) {\n logException(this.view.state, e, \"scroll handler\");\n }\n }\n let { range } = target;\n let rect = this.coordsAt(range.head, range.empty ? range.assoc : range.head > range.anchor ? -1 : 1), other;\n if (!rect)\n return;\n if (!range.empty && (other = this.coordsAt(range.anchor, range.anchor > range.head ? -1 : 1)))\n rect = { left: Math.min(rect.left, other.left), top: Math.min(rect.top, other.top),\n right: Math.max(rect.right, other.right), bottom: Math.max(rect.bottom, other.bottom) };\n let margins = getScrollMargins(this.view);\n let targetRect = {\n left: rect.left - margins.left, top: rect.top - margins.top,\n right: rect.right + margins.right, bottom: rect.bottom + margins.bottom\n };\n let { offsetWidth, offsetHeight } = this.view.scrollDOM;\n scrollRectIntoView(this.view.scrollDOM, targetRect, range.head < range.anchor ? -1 : 1, target.x, target.y, Math.max(Math.min(target.xMargin, offsetWidth), -offsetWidth), Math.max(Math.min(target.yMargin, offsetHeight), -offsetHeight), this.view.textDirection == Direction.LTR);\n }\n}\nfunction betweenUneditable(pos) {\n return pos.node.nodeType == 1 && pos.node.firstChild &&\n (pos.offset == 0 || pos.node.childNodes[pos.offset - 1].contentEditable == \"false\") &&\n (pos.offset == pos.node.childNodes.length || pos.node.childNodes[pos.offset].contentEditable == \"false\");\n}\nfunction findCompositionNode(view, headPos) {\n let sel = view.observer.selectionRange;\n if (!sel.focusNode)\n return null;\n let textBefore = textNodeBefore(sel.focusNode, sel.focusOffset);\n let textAfter = textNodeAfter(sel.focusNode, sel.focusOffset);\n let textNode = textBefore || textAfter;\n if (textAfter && textBefore && textAfter.node != textBefore.node) {\n let descAfter = ContentView.get(textAfter.node);\n if (!descAfter || descAfter instanceof TextView && descAfter.text != textAfter.node.nodeValue) {\n textNode = textAfter;\n }\n else if (view.docView.lastCompositionAfterCursor) {\n let descBefore = ContentView.get(textBefore.node);\n if (!(!descBefore || descBefore instanceof TextView && descBefore.text != textBefore.node.nodeValue))\n textNode = textAfter;\n }\n }\n view.docView.lastCompositionAfterCursor = textNode != textBefore;\n if (!textNode)\n return null;\n let from = headPos - textNode.offset;\n return { from, to: from + textNode.node.nodeValue.length, node: textNode.node };\n}\nfunction findCompositionRange(view, changes, headPos) {\n let found = findCompositionNode(view, headPos);\n if (!found)\n return null;\n let { node: textNode, from, to } = found, text = textNode.nodeValue;\n // Don't try to preserve multi-line compositions\n if (/[\\n\\r]/.test(text))\n return null;\n if (view.state.doc.sliceString(found.from, found.to) != text)\n return null;\n let inv = changes.invertedDesc;\n let range = new ChangedRange(inv.mapPos(from), inv.mapPos(to), from, to);\n let marks = [];\n for (let parent = textNode.parentNode;; parent = parent.parentNode) {\n let parentView = ContentView.get(parent);\n if (parentView instanceof MarkView)\n marks.push({ node: parent, deco: parentView.mark });\n else if (parentView instanceof LineView || parent.nodeName == \"DIV\" && parent.parentNode == view.contentDOM)\n return { range, text: textNode, marks, line: parent };\n else if (parent != view.contentDOM)\n marks.push({ node: parent, deco: new MarkDecoration({\n inclusive: true,\n attributes: getAttrs(parent),\n tagName: parent.tagName.toLowerCase()\n }) });\n else\n return null;\n }\n}\nfunction nextToUneditable(node, offset) {\n if (node.nodeType != 1)\n return 0;\n return (offset && node.childNodes[offset - 1].contentEditable == \"false\" ? 1 /* NextTo.Before */ : 0) |\n (offset < node.childNodes.length && node.childNodes[offset].contentEditable == \"false\" ? 2 /* NextTo.After */ : 0);\n}\nlet DecorationComparator$1 = class DecorationComparator {\n constructor() {\n this.changes = [];\n }\n compareRange(from, to) { addRange(from, to, this.changes); }\n comparePoint(from, to) { addRange(from, to, this.changes); }\n boundChange(pos) { addRange(pos, pos, this.changes); }\n};\nfunction findChangedDeco(a, b, diff) {\n let comp = new DecorationComparator$1;\n RangeSet.compare(a, b, diff, comp);\n return comp.changes;\n}\nfunction inUneditable(node, inside) {\n for (let cur = node; cur && cur != inside; cur = cur.assignedSlot || cur.parentNode) {\n if (cur.nodeType == 1 && cur.contentEditable == 'false') {\n return true;\n }\n }\n return false;\n}\nfunction touchesComposition(changes, composition) {\n let touched = false;\n if (composition)\n changes.iterChangedRanges((from, to) => {\n if (from < composition.to && to > composition.from)\n touched = true;\n });\n return touched;\n}\n\nfunction groupAt(state, pos, bias = 1) {\n let categorize = state.charCategorizer(pos);\n let line = state.doc.lineAt(pos), linePos = pos - line.from;\n if (line.length == 0)\n return EditorSelection.cursor(pos);\n if (linePos == 0)\n bias = 1;\n else if (linePos == line.length)\n bias = -1;\n let from = linePos, to = linePos;\n if (bias < 0)\n from = findClusterBreak(line.text, linePos, false);\n else\n to = findClusterBreak(line.text, linePos);\n let cat = categorize(line.text.slice(from, to));\n while (from > 0) {\n let prev = findClusterBreak(line.text, from, false);\n if (categorize(line.text.slice(prev, from)) != cat)\n break;\n from = prev;\n }\n while (to < line.length) {\n let next = findClusterBreak(line.text, to);\n if (categorize(line.text.slice(to, next)) != cat)\n break;\n to = next;\n }\n return EditorSelection.range(from + line.from, to + line.from);\n}\n// Search the DOM for the {node, offset} position closest to the given\n// coordinates. Very inefficient and crude, but can usually be avoided\n// by calling caret(Position|Range)FromPoint instead.\nfunction getdx(x, rect) {\n return rect.left > x ? rect.left - x : Math.max(0, x - rect.right);\n}\nfunction getdy(y, rect) {\n return rect.top > y ? rect.top - y : Math.max(0, y - rect.bottom);\n}\nfunction yOverlap(a, b) {\n return a.top < b.bottom - 1 && a.bottom > b.top + 1;\n}\nfunction upTop(rect, top) {\n return top < rect.top ? { top, left: rect.left, right: rect.right, bottom: rect.bottom } : rect;\n}\nfunction upBot(rect, bottom) {\n return bottom > rect.bottom ? { top: rect.top, left: rect.left, right: rect.right, bottom } : rect;\n}\nfunction domPosAtCoords(parent, x, y) {\n let closest, closestRect, closestX, closestY, closestOverlap = false;\n let above, below, aboveRect, belowRect;\n for (let child = parent.firstChild; child; child = child.nextSibling) {\n let rects = clientRectsFor(child);\n for (let i = 0; i < rects.length; i++) {\n let rect = rects[i];\n if (closestRect && yOverlap(closestRect, rect))\n rect = upTop(upBot(rect, closestRect.bottom), closestRect.top);\n let dx = getdx(x, rect), dy = getdy(y, rect);\n if (dx == 0 && dy == 0)\n return child.nodeType == 3 ? domPosInText(child, x, y) : domPosAtCoords(child, x, y);\n if (!closest || closestY > dy || closestY == dy && closestX > dx) {\n closest = child;\n closestRect = rect;\n closestX = dx;\n closestY = dy;\n closestOverlap = !dx ? true : x < rect.left ? i > 0 : i < rects.length - 1;\n }\n if (dx == 0) {\n if (y > rect.bottom && (!aboveRect || aboveRect.bottom < rect.bottom)) {\n above = child;\n aboveRect = rect;\n }\n else if (y < rect.top && (!belowRect || belowRect.top > rect.top)) {\n below = child;\n belowRect = rect;\n }\n }\n else if (aboveRect && yOverlap(aboveRect, rect)) {\n aboveRect = upBot(aboveRect, rect.bottom);\n }\n else if (belowRect && yOverlap(belowRect, rect)) {\n belowRect = upTop(belowRect, rect.top);\n }\n }\n }\n if (aboveRect && aboveRect.bottom >= y) {\n closest = above;\n closestRect = aboveRect;\n }\n else if (belowRect && belowRect.top <= y) {\n closest = below;\n closestRect = belowRect;\n }\n if (!closest)\n return { node: parent, offset: 0 };\n let clipX = Math.max(closestRect.left, Math.min(closestRect.right, x));\n if (closest.nodeType == 3)\n return domPosInText(closest, clipX, y);\n if (closestOverlap && closest.contentEditable != \"false\")\n return domPosAtCoords(closest, clipX, y);\n let offset = Array.prototype.indexOf.call(parent.childNodes, closest) +\n (x >= (closestRect.left + closestRect.right) / 2 ? 1 : 0);\n return { node: parent, offset };\n}\nfunction domPosInText(node, x, y) {\n let len = node.nodeValue.length;\n let closestOffset = -1, closestDY = 1e9, generalSide = 0;\n for (let i = 0; i < len; i++) {\n let rects = textRange(node, i, i + 1).getClientRects();\n for (let j = 0; j < rects.length; j++) {\n let rect = rects[j];\n if (rect.top == rect.bottom)\n continue;\n if (!generalSide)\n generalSide = x - rect.left;\n let dy = (rect.top > y ? rect.top - y : y - rect.bottom) - 1;\n if (rect.left - 1 <= x && rect.right + 1 >= x && dy < closestDY) {\n let right = x >= (rect.left + rect.right) / 2, after = right;\n if (browser.chrome || browser.gecko) {\n // Check for RTL on browsers that support getting client\n // rects for empty ranges.\n let rectBefore = textRange(node, i).getBoundingClientRect();\n if (rectBefore.left == rect.right)\n after = !right;\n }\n if (dy <= 0)\n return { node, offset: i + (after ? 1 : 0) };\n closestOffset = i + (after ? 1 : 0);\n closestDY = dy;\n }\n }\n }\n return { node, offset: closestOffset > -1 ? closestOffset : generalSide > 0 ? node.nodeValue.length : 0 };\n}\nfunction posAtCoords(view, coords, precise, bias = -1) {\n var _a, _b;\n let content = view.contentDOM.getBoundingClientRect(), docTop = content.top + view.viewState.paddingTop;\n let block, { docHeight } = view.viewState;\n let { x, y } = coords, yOffset = y - docTop;\n if (yOffset < 0)\n return 0;\n if (yOffset > docHeight)\n return view.state.doc.length;\n // Scan for a text block near the queried y position\n for (let halfLine = view.viewState.heightOracle.textHeight / 2, bounced = false;;) {\n block = view.elementAtHeight(yOffset);\n if (block.type == BlockType.Text)\n break;\n for (;;) {\n // Move the y position out of this block\n yOffset = bias > 0 ? block.bottom + halfLine : block.top - halfLine;\n if (yOffset >= 0 && yOffset <= docHeight)\n break;\n // If the document consists entirely of replaced widgets, we\n // won't find a text block, so return 0\n if (bounced)\n return precise ? null : 0;\n bounced = true;\n bias = -bias;\n }\n }\n y = docTop + yOffset;\n let lineStart = block.from;\n // If this is outside of the rendered viewport, we can't determine a position\n if (lineStart < view.viewport.from)\n return view.viewport.from == 0 ? 0 : precise ? null : posAtCoordsImprecise(view, content, block, x, y);\n if (lineStart > view.viewport.to)\n return view.viewport.to == view.state.doc.length ? view.state.doc.length :\n precise ? null : posAtCoordsImprecise(view, content, block, x, y);\n // Prefer ShadowRootOrDocument.elementFromPoint if present, fall back to document if not\n let doc = view.dom.ownerDocument;\n let root = view.root.elementFromPoint ? view.root : doc;\n let element = root.elementFromPoint(x, y);\n if (element && !view.contentDOM.contains(element))\n element = null;\n // If the element is unexpected, clip x at the sides of the content area and try again\n if (!element) {\n x = Math.max(content.left + 1, Math.min(content.right - 1, x));\n element = root.elementFromPoint(x, y);\n if (element && !view.contentDOM.contains(element))\n element = null;\n }\n // There's visible editor content under the point, so we can try\n // using caret(Position|Range)FromPoint as a shortcut\n let node, offset = -1;\n if (element && ((_a = view.docView.nearest(element)) === null || _a === void 0 ? void 0 : _a.isEditable) != false) {\n if (doc.caretPositionFromPoint) {\n let pos = doc.caretPositionFromPoint(x, y);\n if (pos)\n ({ offsetNode: node, offset } = pos);\n }\n else if (doc.caretRangeFromPoint) {\n let range = doc.caretRangeFromPoint(x, y);\n if (range)\n ({ startContainer: node, startOffset: offset } = range);\n }\n if (node && (!view.contentDOM.contains(node) ||\n browser.safari && isSuspiciousSafariCaretResult(node, offset, x) ||\n browser.chrome && isSuspiciousChromeCaretResult(node, offset, x)))\n node = undefined;\n // Chrome will return offsets into <input> elements without child\n // nodes, which will lead to a null deref below, so clip the\n // offset to the node size.\n if (node)\n offset = Math.min(maxOffset(node), offset);\n }\n // No luck, do our own (potentially expensive) search\n if (!node || !view.docView.dom.contains(node)) {\n let line = LineView.find(view.docView, lineStart);\n if (!line)\n return yOffset > block.top + block.height / 2 ? block.to : block.from;\n ({ node, offset } = domPosAtCoords(line.dom, x, y));\n }\n let nearest = view.docView.nearest(node);\n if (!nearest)\n return null;\n if (nearest.isWidget && ((_b = nearest.dom) === null || _b === void 0 ? void 0 : _b.nodeType) == 1) {\n let rect = nearest.dom.getBoundingClientRect();\n return coords.y < rect.top || coords.y <= rect.bottom && coords.x <= (rect.left + rect.right) / 2\n ? nearest.posAtStart : nearest.posAtEnd;\n }\n else {\n return nearest.localPosFromDOM(node, offset) + nearest.posAtStart;\n }\n}\nfunction posAtCoordsImprecise(view, contentRect, block, x, y) {\n let into = Math.round((x - contentRect.left) * view.defaultCharacterWidth);\n if (view.lineWrapping && block.height > view.defaultLineHeight * 1.5) {\n let textHeight = view.viewState.heightOracle.textHeight;\n let line = Math.floor((y - block.top - (view.defaultLineHeight - textHeight) * 0.5) / textHeight);\n into += line * view.viewState.heightOracle.lineLength;\n }\n let content = view.state.sliceDoc(block.from, block.to);\n return block.from + findColumn(content, into, view.state.tabSize);\n}\nfunction isEndOfLineBefore(node, offset, x) {\n let len, scan = node;\n if (node.nodeType != 3 || offset != (len = node.nodeValue.length))\n return false;\n for (;;) { // Check that there is no content after this node\n let next = scan.nextSibling;\n if (next) {\n if (next.nodeName == \"BR\")\n break;\n return false;\n }\n else {\n let parent = scan.parentNode;\n if (!parent || parent.nodeName == \"DIV\")\n break;\n scan = parent;\n }\n }\n return textRange(node, len - 1, len).getBoundingClientRect().right > x;\n}\n// In case of a high line height, Safari's caretRangeFromPoint treats\n// the space between lines as belonging to the last character of the\n// line before. This is used to detect such a result so that it can be\n// ignored (issue #401).\nfunction isSuspiciousSafariCaretResult(node, offset, x) {\n return isEndOfLineBefore(node, offset, x);\n}\n// Chrome will move positions between lines to the start of the next line\nfunction isSuspiciousChromeCaretResult(node, offset, x) {\n if (offset != 0)\n return isEndOfLineBefore(node, offset, x);\n for (let cur = node;;) {\n let parent = cur.parentNode;\n if (!parent || parent.nodeType != 1 || parent.firstChild != cur)\n return false;\n if (parent.classList.contains(\"cm-line\"))\n break;\n cur = parent;\n }\n let rect = node.nodeType == 1 ? node.getBoundingClientRect()\n : textRange(node, 0, Math.max(node.nodeValue.length, 1)).getBoundingClientRect();\n return x - rect.left > 5;\n}\nfunction blockAt(view, pos, side) {\n let line = view.lineBlockAt(pos);\n if (Array.isArray(line.type)) {\n let best;\n for (let l of line.type) {\n if (l.from > pos)\n break;\n if (l.to < pos)\n continue;\n if (l.from < pos && l.to > pos)\n return l;\n if (!best || (l.type == BlockType.Text && (best.type != l.type || (side < 0 ? l.from < pos : l.to > pos))))\n best = l;\n }\n return best || line;\n }\n return line;\n}\nfunction moveToLineBoundary(view, start, forward, includeWrap) {\n let line = blockAt(view, start.head, start.assoc || -1);\n let coords = !includeWrap || line.type != BlockType.Text || !(view.lineWrapping || line.widgetLineBreaks) ? null\n : view.coordsAtPos(start.assoc < 0 && start.head > line.from ? start.head - 1 : start.head);\n if (coords) {\n let editorRect = view.dom.getBoundingClientRect();\n let direction = view.textDirectionAt(line.from);\n let pos = view.posAtCoords({ x: forward == (direction == Direction.LTR) ? editorRect.right - 1 : editorRect.left + 1,\n y: (coords.top + coords.bottom) / 2 });\n if (pos != null)\n return EditorSelection.cursor(pos, forward ? -1 : 1);\n }\n return EditorSelection.cursor(forward ? line.to : line.from, forward ? -1 : 1);\n}\nfunction moveByChar(view, start, forward, by) {\n let line = view.state.doc.lineAt(start.head), spans = view.bidiSpans(line);\n let direction = view.textDirectionAt(line.from);\n for (let cur = start, check = null;;) {\n let next = moveVisually(line, spans, direction, cur, forward), char = movedOver;\n if (!next) {\n if (line.number == (forward ? view.state.doc.lines : 1))\n return cur;\n char = \"\\n\";\n line = view.state.doc.line(line.number + (forward ? 1 : -1));\n spans = view.bidiSpans(line);\n next = view.visualLineSide(line, !forward);\n }\n if (!check) {\n if (!by)\n return next;\n check = by(char);\n }\n else if (!check(char)) {\n return cur;\n }\n cur = next;\n }\n}\nfunction byGroup(view, pos, start) {\n let categorize = view.state.charCategorizer(pos);\n let cat = categorize(start);\n return (next) => {\n let nextCat = categorize(next);\n if (cat == CharCategory.Space)\n cat = nextCat;\n return cat == nextCat;\n };\n}\nfunction moveVertically(view, start, forward, distance) {\n let startPos = start.head, dir = forward ? 1 : -1;\n if (startPos == (forward ? view.state.doc.length : 0))\n return EditorSelection.cursor(startPos, start.assoc);\n let goal = start.goalColumn, startY;\n let rect = view.contentDOM.getBoundingClientRect();\n let startCoords = view.coordsAtPos(startPos, start.assoc || -1), docTop = view.documentTop;\n if (startCoords) {\n if (goal == null)\n goal = startCoords.left - rect.left;\n startY = dir < 0 ? startCoords.top : startCoords.bottom;\n }\n else {\n let line = view.viewState.lineBlockAt(startPos);\n if (goal == null)\n goal = Math.min(rect.right - rect.left, view.defaultCharacterWidth * (startPos - line.from));\n startY = (dir < 0 ? line.top : line.bottom) + docTop;\n }\n let resolvedGoal = rect.left + goal;\n let dist = distance !== null && distance !== void 0 ? distance : (view.viewState.heightOracle.textHeight >> 1);\n for (let extra = 0;; extra += 10) {\n let curY = startY + (dist + extra) * dir;\n let pos = posAtCoords(view, { x: resolvedGoal, y: curY }, false, dir);\n if (curY < rect.top || curY > rect.bottom || (dir < 0 ? pos < startPos : pos > startPos)) {\n let charRect = view.docView.coordsForChar(pos);\n let assoc = !charRect || curY < charRect.top ? -1 : 1;\n return EditorSelection.cursor(pos, assoc, undefined, goal);\n }\n }\n}\nfunction skipAtomicRanges(atoms, pos, bias) {\n for (;;) {\n let moved = 0;\n for (let set of atoms) {\n set.between(pos - 1, pos + 1, (from, to, value) => {\n if (pos > from && pos < to) {\n let side = moved || bias || (pos - from < to - pos ? -1 : 1);\n pos = side < 0 ? from : to;\n moved = side;\n }\n });\n }\n if (!moved)\n return pos;\n }\n}\nfunction skipAtomsForSelection(atoms, sel) {\n let ranges = null;\n for (let i = 0; i < sel.ranges.length; i++) {\n let range = sel.ranges[i], updated = null;\n if (range.empty) {\n let pos = skipAtomicRanges(atoms, range.from, 0);\n if (pos != range.from)\n updated = EditorSelection.cursor(pos, -1);\n }\n else {\n let from = skipAtomicRanges(atoms, range.from, -1);\n let to = skipAtomicRanges(atoms, range.to, 1);\n if (from != range.from || to != range.to)\n updated = EditorSelection.range(range.from == range.anchor ? from : to, range.from == range.head ? from : to);\n }\n if (updated) {\n if (!ranges)\n ranges = sel.ranges.slice();\n ranges[i] = updated;\n }\n }\n return ranges ? EditorSelection.create(ranges, sel.mainIndex) : sel;\n}\nfunction skipAtoms(view, oldPos, pos) {\n let newPos = skipAtomicRanges(view.state.facet(atomicRanges).map(f => f(view)), pos.from, oldPos.head > pos.from ? -1 : 1);\n return newPos == pos.from ? pos : EditorSelection.cursor(newPos, newPos < pos.from ? 1 : -1);\n}\n\nconst LineBreakPlaceholder = \"\\uffff\";\nclass DOMReader {\n constructor(points, state) {\n this.points = points;\n this.text = \"\";\n this.lineSeparator = state.facet(EditorState.lineSeparator);\n }\n append(text) {\n this.text += text;\n }\n lineBreak() {\n this.text += LineBreakPlaceholder;\n }\n readRange(start, end) {\n if (!start)\n return this;\n let parent = start.parentNode;\n for (let cur = start;;) {\n this.findPointBefore(parent, cur);\n let oldLen = this.text.length;\n this.readNode(cur);\n let next = cur.nextSibling;\n if (next == end)\n break;\n let view = ContentView.get(cur), nextView = ContentView.get(next);\n if ((view && nextView ? view.breakAfter :\n (view ? view.breakAfter : isBlockElement(cur)) ||\n (isBlockElement(next) && (cur.nodeName != \"BR\" || cur.cmIgnore) && this.text.length > oldLen)) &&\n !isEmptyToEnd(next, end))\n this.lineBreak();\n cur = next;\n }\n this.findPointBefore(parent, end);\n return this;\n }\n readTextNode(node) {\n let text = node.nodeValue;\n for (let point of this.points)\n if (point.node == node)\n point.pos = this.text.length + Math.min(point.offset, text.length);\n for (let off = 0, re = this.lineSeparator ? null : /\\r\\n?|\\n/g;;) {\n let nextBreak = -1, breakSize = 1, m;\n if (this.lineSeparator) {\n nextBreak = text.indexOf(this.lineSeparator, off);\n breakSize = this.lineSeparator.length;\n }\n else if (m = re.exec(text)) {\n nextBreak = m.index;\n breakSize = m[0].length;\n }\n this.append(text.slice(off, nextBreak < 0 ? text.length : nextBreak));\n if (nextBreak < 0)\n break;\n this.lineBreak();\n if (breakSize > 1)\n for (let point of this.points)\n if (point.node == node && point.pos > this.text.length)\n point.pos -= breakSize - 1;\n off = nextBreak + breakSize;\n }\n }\n readNode(node) {\n if (node.cmIgnore)\n return;\n let view = ContentView.get(node);\n let fromView = view && view.overrideDOMText;\n if (fromView != null) {\n this.findPointInside(node, fromView.length);\n for (let i = fromView.iter(); !i.next().done;) {\n if (i.lineBreak)\n this.lineBreak();\n else\n this.append(i.value);\n }\n }\n else if (node.nodeType == 3) {\n this.readTextNode(node);\n }\n else if (node.nodeName == \"BR\") {\n if (node.nextSibling)\n this.lineBreak();\n }\n else if (node.nodeType == 1) {\n this.readRange(node.firstChild, null);\n }\n }\n findPointBefore(node, next) {\n for (let point of this.points)\n if (point.node == node && node.childNodes[point.offset] == next)\n point.pos = this.text.length;\n }\n findPointInside(node, length) {\n for (let point of this.points)\n if (node.nodeType == 3 ? point.node == node : node.contains(point.node))\n point.pos = this.text.length + (isAtEnd(node, point.node, point.offset) ? length : 0);\n }\n}\nfunction isAtEnd(parent, node, offset) {\n for (;;) {\n if (!node || offset < maxOffset(node))\n return false;\n if (node == parent)\n return true;\n offset = domIndex(node) + 1;\n node = node.parentNode;\n }\n}\nfunction isEmptyToEnd(node, end) {\n let widgets;\n for (;; node = node.nextSibling) {\n if (node == end || !node)\n break;\n let view = ContentView.get(node);\n if (!((view === null || view === void 0 ? void 0 : view.isWidget) || node.cmIgnore))\n return false;\n if (view)\n (widgets || (widgets = [])).push(view);\n }\n if (widgets)\n for (let w of widgets) {\n let override = w.overrideDOMText;\n if (override === null || override === void 0 ? void 0 : override.length)\n return false;\n }\n return true;\n}\nclass DOMPoint {\n constructor(node, offset) {\n this.node = node;\n this.offset = offset;\n this.pos = -1;\n }\n}\n\nclass DOMChange {\n constructor(view, start, end, typeOver) {\n this.typeOver = typeOver;\n this.bounds = null;\n this.text = \"\";\n this.domChanged = start > -1;\n let { impreciseHead: iHead, impreciseAnchor: iAnchor } = view.docView;\n if (view.state.readOnly && start > -1) {\n // Ignore changes when the editor is read-only\n this.newSel = null;\n }\n else if (start > -1 && (this.bounds = view.docView.domBoundsAround(start, end, 0))) {\n let selPoints = iHead || iAnchor ? [] : selectionPoints(view);\n let reader = new DOMReader(selPoints, view.state);\n reader.readRange(this.bounds.startDOM, this.bounds.endDOM);\n this.text = reader.text;\n this.newSel = selectionFromPoints(selPoints, this.bounds.from);\n }\n else {\n let domSel = view.observer.selectionRange;\n let head = iHead && iHead.node == domSel.focusNode && iHead.offset == domSel.focusOffset ||\n !contains(view.contentDOM, domSel.focusNode)\n ? view.state.selection.main.head\n : view.docView.posFromDOM(domSel.focusNode, domSel.focusOffset);\n let anchor = iAnchor && iAnchor.node == domSel.anchorNode && iAnchor.offset == domSel.anchorOffset ||\n !contains(view.contentDOM, domSel.anchorNode)\n ? view.state.selection.main.anchor\n : view.docView.posFromDOM(domSel.anchorNode, domSel.anchorOffset);\n // iOS will refuse to select the block gaps when doing\n // select-all.\n // Chrome will put the selection *inside* them, confusing\n // posFromDOM\n let vp = view.viewport;\n if ((browser.ios || browser.chrome) && view.state.selection.main.empty && head != anchor &&\n (vp.from > 0 || vp.to < view.state.doc.length)) {\n let from = Math.min(head, anchor), to = Math.max(head, anchor);\n let offFrom = vp.from - from, offTo = vp.to - to;\n if ((offFrom == 0 || offFrom == 1 || from == 0) && (offTo == 0 || offTo == -1 || to == view.state.doc.length)) {\n head = 0;\n anchor = view.state.doc.length;\n }\n }\n this.newSel = EditorSelection.single(anchor, head);\n }\n }\n}\nfunction applyDOMChange(view, domChange) {\n let change;\n let { newSel } = domChange, sel = view.state.selection.main;\n let lastKey = view.inputState.lastKeyTime > Date.now() - 100 ? view.inputState.lastKeyCode : -1;\n if (domChange.bounds) {\n let { from, to } = domChange.bounds;\n let preferredPos = sel.from, preferredSide = null;\n // Prefer anchoring to end when Backspace is pressed (or, on\n // Android, when something was deleted)\n if (lastKey === 8 || browser.android && domChange.text.length < to - from) {\n preferredPos = sel.to;\n preferredSide = \"end\";\n }\n let diff = findDiff(view.state.doc.sliceString(from, to, LineBreakPlaceholder), domChange.text, preferredPos - from, preferredSide);\n if (diff) {\n // Chrome inserts two newlines when pressing shift-enter at the\n // end of a line. DomChange drops one of those.\n if (browser.chrome && lastKey == 13 &&\n diff.toB == diff.from + 2 && domChange.text.slice(diff.from, diff.toB) == LineBreakPlaceholder + LineBreakPlaceholder)\n diff.toB--;\n change = { from: from + diff.from, to: from + diff.toA,\n insert: Text.of(domChange.text.slice(diff.from, diff.toB).split(LineBreakPlaceholder)) };\n }\n }\n else if (newSel && (!view.hasFocus && view.state.facet(editable) || newSel.main.eq(sel))) {\n newSel = null;\n }\n if (!change && !newSel)\n return false;\n if (!change && domChange.typeOver && !sel.empty && newSel && newSel.main.empty) {\n // Heuristic to notice typing over a selected character\n change = { from: sel.from, to: sel.to, insert: view.state.doc.slice(sel.from, sel.to) };\n }\n else if ((browser.mac || browser.android) && change && change.from == change.to && change.from == sel.head - 1 &&\n /^\\. ?$/.test(change.insert.toString()) && view.contentDOM.getAttribute(\"autocorrect\") == \"off\") {\n // Detect insert-period-on-double-space Mac and Android behavior,\n // and transform it into a regular space insert.\n if (newSel && change.insert.length == 2)\n newSel = EditorSelection.single(newSel.main.anchor - 1, newSel.main.head - 1);\n change = { from: change.from, to: change.to, insert: Text.of([change.insert.toString().replace(\".\", \" \")]) };\n }\n else if (change && change.from >= sel.from && change.to <= sel.to &&\n (change.from != sel.from || change.to != sel.to) &&\n (sel.to - sel.from) - (change.to - change.from) <= 4) {\n // If the change is inside the selection and covers most of it,\n // assume it is a selection replace (with identical characters at\n // the start/end not included in the diff)\n change = {\n from: sel.from, to: sel.to,\n insert: view.state.doc.slice(sel.from, change.from).append(change.insert).append(view.state.doc.slice(change.to, sel.to))\n };\n }\n else if (browser.chrome && change && change.from == change.to && change.from == sel.head &&\n change.insert.toString() == \"\\n \" && view.lineWrapping) {\n // In Chrome, if you insert a space at the start of a wrapped\n // line, it will actually insert a newline and a space, causing a\n // bogus new line to be created in CodeMirror (#968)\n if (newSel)\n newSel = EditorSelection.single(newSel.main.anchor - 1, newSel.main.head - 1);\n change = { from: sel.from, to: sel.to, insert: Text.of([\" \"]) };\n }\n if (change) {\n return applyDOMChangeInner(view, change, newSel, lastKey);\n }\n else if (newSel && !newSel.main.eq(sel)) {\n let scrollIntoView = false, userEvent = \"select\";\n if (view.inputState.lastSelectionTime > Date.now() - 50) {\n if (view.inputState.lastSelectionOrigin == \"select\")\n scrollIntoView = true;\n userEvent = view.inputState.lastSelectionOrigin;\n if (userEvent == \"select.pointer\")\n newSel = skipAtomsForSelection(view.state.facet(atomicRanges).map(f => f(view)), newSel);\n }\n view.dispatch({ selection: newSel, scrollIntoView, userEvent });\n return true;\n }\n else {\n return false;\n }\n}\nfunction applyDOMChangeInner(view, change, newSel, lastKey = -1) {\n if (browser.ios && view.inputState.flushIOSKey(change))\n return true;\n let sel = view.state.selection.main;\n // Android browsers don't fire reasonable key events for enter,\n // backspace, or delete. So this detects changes that look like\n // they're caused by those keys, and reinterprets them as key\n // events. (Some of these keys are also handled by beforeinput\n // events and the pendingAndroidKey mechanism, but that's not\n // reliable in all situations.)\n if (browser.android &&\n ((change.to == sel.to &&\n // GBoard will sometimes remove a space it just inserted\n // after a completion when you press enter\n (change.from == sel.from || change.from == sel.from - 1 && view.state.sliceDoc(change.from, sel.from) == \" \") &&\n change.insert.length == 1 && change.insert.lines == 2 &&\n dispatchKey(view.contentDOM, \"Enter\", 13)) ||\n ((change.from == sel.from - 1 && change.to == sel.to && change.insert.length == 0 ||\n lastKey == 8 && change.insert.length < change.to - change.from && change.to > sel.head) &&\n dispatchKey(view.contentDOM, \"Backspace\", 8)) ||\n (change.from == sel.from && change.to == sel.to + 1 && change.insert.length == 0 &&\n dispatchKey(view.contentDOM, \"Delete\", 46))))\n return true;\n let text = change.insert.toString();\n if (view.inputState.composing >= 0)\n view.inputState.composing++;\n let defaultTr;\n let defaultInsert = () => defaultTr || (defaultTr = applyDefaultInsert(view, change, newSel));\n if (!view.state.facet(inputHandler).some(h => h(view, change.from, change.to, text, defaultInsert)))\n view.dispatch(defaultInsert());\n return true;\n}\nfunction applyDefaultInsert(view, change, newSel) {\n let tr, startState = view.state, sel = startState.selection.main, inAtomic = -1;\n if (change.from == change.to && change.from < sel.from || change.from > sel.to) {\n let side = change.from < sel.from ? -1 : 1, pos = side < 0 ? sel.from : sel.to;\n let moved = skipAtomicRanges(startState.facet(atomicRanges).map(f => f(view)), pos, side);\n if (change.from == moved)\n inAtomic = moved;\n }\n if (inAtomic > -1) {\n tr = {\n changes: change,\n selection: EditorSelection.cursor(change.from + change.insert.length, -1)\n };\n }\n else if (change.from >= sel.from && change.to <= sel.to && change.to - change.from >= (sel.to - sel.from) / 3 &&\n (!newSel || newSel.main.empty && newSel.main.from == change.from + change.insert.length) &&\n view.inputState.composing < 0) {\n let before = sel.from < change.from ? startState.sliceDoc(sel.from, change.from) : \"\";\n let after = sel.to > change.to ? startState.sliceDoc(change.to, sel.to) : \"\";\n tr = startState.replaceSelection(view.state.toText(before + change.insert.sliceString(0, undefined, view.state.lineBreak) + after));\n }\n else {\n let changes = startState.changes(change);\n let mainSel = newSel && newSel.main.to <= changes.newLength ? newSel.main : undefined;\n // Try to apply a composition change to all cursors\n if (startState.selection.ranges.length > 1 && view.inputState.composing >= 0 &&\n change.to <= sel.to && change.to >= sel.to - 10) {\n let replaced = view.state.sliceDoc(change.from, change.to);\n let compositionRange, composition = newSel && findCompositionNode(view, newSel.main.head);\n if (composition) {\n let dLen = change.insert.length - (change.to - change.from);\n compositionRange = { from: composition.from, to: composition.to - dLen };\n }\n else {\n compositionRange = view.state.doc.lineAt(sel.head);\n }\n let offset = sel.to - change.to, size = sel.to - sel.from;\n tr = startState.changeByRange(range => {\n if (range.from == sel.from && range.to == sel.to)\n return { changes, range: mainSel || range.map(changes) };\n let to = range.to - offset, from = to - replaced.length;\n if (range.to - range.from != size || view.state.sliceDoc(from, to) != replaced ||\n // Unfortunately, there's no way to make multiple\n // changes in the same node work without aborting\n // composition, so cursors in the composition range are\n // ignored.\n range.to >= compositionRange.from && range.from <= compositionRange.to)\n return { range };\n let rangeChanges = startState.changes({ from, to, insert: change.insert }), selOff = range.to - sel.to;\n return {\n changes: rangeChanges,\n range: !mainSel ? range.map(rangeChanges) :\n EditorSelection.range(Math.max(0, mainSel.anchor + selOff), Math.max(0, mainSel.head + selOff))\n };\n });\n }\n else {\n tr = {\n changes,\n selection: mainSel && startState.selection.replaceRange(mainSel)\n };\n }\n }\n let userEvent = \"input.type\";\n if (view.composing ||\n view.inputState.compositionPendingChange && view.inputState.compositionEndedAt > Date.now() - 50) {\n view.inputState.compositionPendingChange = false;\n userEvent += \".compose\";\n if (view.inputState.compositionFirstChange) {\n userEvent += \".start\";\n view.inputState.compositionFirstChange = false;\n }\n }\n return startState.update(tr, { userEvent, scrollIntoView: true });\n}\nfunction findDiff(a, b, preferredPos, preferredSide) {\n let minLen = Math.min(a.length, b.length);\n let from = 0;\n while (from < minLen && a.charCodeAt(from) == b.charCodeAt(from))\n from++;\n if (from == minLen && a.length == b.length)\n return null;\n let toA = a.length, toB = b.length;\n while (toA > 0 && toB > 0 && a.charCodeAt(toA - 1) == b.charCodeAt(toB - 1)) {\n toA--;\n toB--;\n }\n if (preferredSide == \"end\") {\n let adjust = Math.max(0, from - Math.min(toA, toB));\n preferredPos -= toA + adjust - from;\n }\n if (toA < from && a.length < b.length) {\n let move = preferredPos <= from && preferredPos >= toA ? from - preferredPos : 0;\n from -= move;\n toB = from + (toB - toA);\n toA = from;\n }\n else if (toB < from) {\n let move = preferredPos <= from && preferredPos >= toB ? from - preferredPos : 0;\n from -= move;\n toA = from + (toA - toB);\n toB = from;\n }\n return { from, toA, toB };\n}\nfunction selectionPoints(view) {\n let result = [];\n if (view.root.activeElement != view.contentDOM)\n return result;\n let { anchorNode, anchorOffset, focusNode, focusOffset } = view.observer.selectionRange;\n if (anchorNode) {\n result.push(new DOMPoint(anchorNode, anchorOffset));\n if (focusNode != anchorNode || focusOffset != anchorOffset)\n result.push(new DOMPoint(focusNode, focusOffset));\n }\n return result;\n}\nfunction selectionFromPoints(points, base) {\n if (points.length == 0)\n return null;\n let anchor = points[0].pos, head = points.length == 2 ? points[1].pos : anchor;\n return anchor > -1 && head > -1 ? EditorSelection.single(anchor + base, head + base) : null;\n}\n\nclass InputState {\n setSelectionOrigin(origin) {\n this.lastSelectionOrigin = origin;\n this.lastSelectionTime = Date.now();\n }\n constructor(view) {\n this.view = view;\n this.lastKeyCode = 0;\n this.lastKeyTime = 0;\n this.lastTouchTime = 0;\n this.lastFocusTime = 0;\n this.lastScrollTop = 0;\n this.lastScrollLeft = 0;\n // On iOS, some keys need to have their default behavior happen\n // (after which we retroactively handle them and reset the DOM) to\n // avoid messing up the virtual keyboard state.\n this.pendingIOSKey = undefined;\n /**\n When enabled (>-1), tab presses are not given to key handlers,\n leaving the browser's default behavior. If >0, the mode expires\n at that timestamp, and any other keypress clears it.\n Esc enables temporary tab focus mode for two seconds when not\n otherwise handled.\n */\n this.tabFocusMode = -1;\n this.lastSelectionOrigin = null;\n this.lastSelectionTime = 0;\n this.lastContextMenu = 0;\n this.scrollHandlers = [];\n this.handlers = Object.create(null);\n // -1 means not in a composition. Otherwise, this counts the number\n // of changes made during the composition. The count is used to\n // avoid treating the start state of the composition, before any\n // changes have been made, as part of the composition.\n this.composing = -1;\n // Tracks whether the next change should be marked as starting the\n // composition (null means no composition, true means next is the\n // first, false means first has already been marked for this\n // composition)\n this.compositionFirstChange = null;\n // End time of the previous composition\n this.compositionEndedAt = 0;\n // Used in a kludge to detect when an Enter keypress should be\n // considered part of the composition on Safari, which fires events\n // in the wrong order\n this.compositionPendingKey = false;\n // Used to categorize changes as part of a composition, even when\n // the mutation events fire shortly after the compositionend event\n this.compositionPendingChange = false;\n this.mouseSelection = null;\n // When a drag from the editor is active, this points at the range\n // being dragged.\n this.draggedContent = null;\n this.handleEvent = this.handleEvent.bind(this);\n this.notifiedFocused = view.hasFocus;\n // On Safari adding an input event handler somehow prevents an\n // issue where the composition vanishes when you press enter.\n if (browser.safari)\n view.contentDOM.addEventListener(\"input\", () => null);\n if (browser.gecko)\n firefoxCopyCutHack(view.contentDOM.ownerDocument);\n }\n handleEvent(event) {\n if (!eventBelongsToEditor(this.view, event) || this.ignoreDuringComposition(event))\n return;\n if (event.type == \"keydown\" && this.keydown(event))\n return;\n if (this.view.updateState != 0 /* UpdateState.Idle */)\n Promise.resolve().then(() => this.runHandlers(event.type, event));\n else\n this.runHandlers(event.type, event);\n }\n runHandlers(type, event) {\n let handlers = this.handlers[type];\n if (handlers) {\n for (let observer of handlers.observers)\n observer(this.view, event);\n for (let handler of handlers.handlers) {\n if (event.defaultPrevented)\n break;\n if (handler(this.view, event)) {\n event.preventDefault();\n break;\n }\n }\n }\n }\n ensureHandlers(plugins) {\n let handlers = computeHandlers(plugins), prev = this.handlers, dom = this.view.contentDOM;\n for (let type in handlers)\n if (type != \"scroll\") {\n let passive = !handlers[type].handlers.length;\n let exists = prev[type];\n if (exists && passive != !exists.handlers.length) {\n dom.removeEventListener(type, this.handleEvent);\n exists = null;\n }\n if (!exists)\n dom.addEventListener(type, this.handleEvent, { passive });\n }\n for (let type in prev)\n if (type != \"scroll\" && !handlers[type])\n dom.removeEventListener(type, this.handleEvent);\n this.handlers = handlers;\n }\n keydown(event) {\n // Must always run, even if a custom handler handled the event\n this.lastKeyCode = event.keyCode;\n this.lastKeyTime = Date.now();\n if (event.keyCode == 9 && this.tabFocusMode > -1 && (!this.tabFocusMode || Date.now() <= this.tabFocusMode))\n return true;\n if (this.tabFocusMode > 0 && event.keyCode != 27 && modifierCodes.indexOf(event.keyCode) < 0)\n this.tabFocusMode = -1;\n // Chrome for Android usually doesn't fire proper key events, but\n // occasionally does, usually surrounded by a bunch of complicated\n // composition changes. When an enter or backspace key event is\n // seen, hold off on handling DOM events for a bit, and then\n // dispatch it.\n if (browser.android && browser.chrome && !event.synthetic &&\n (event.keyCode == 13 || event.keyCode == 8)) {\n this.view.observer.delayAndroidKey(event.key, event.keyCode);\n return true;\n }\n // Preventing the default behavior of Enter on iOS makes the\n // virtual keyboard get stuck in the wrong (lowercase)\n // state. So we let it go through, and then, in\n // applyDOMChange, notify key handlers of it and reset to\n // the state they produce.\n let pending;\n if (browser.ios && !event.synthetic && !event.altKey && !event.metaKey &&\n ((pending = PendingKeys.find(key => key.keyCode == event.keyCode)) && !event.ctrlKey ||\n EmacsyPendingKeys.indexOf(event.key) > -1 && event.ctrlKey && !event.shiftKey)) {\n this.pendingIOSKey = pending || event;\n setTimeout(() => this.flushIOSKey(), 250);\n return true;\n }\n if (event.keyCode != 229)\n this.view.observer.forceFlush();\n return false;\n }\n flushIOSKey(change) {\n let key = this.pendingIOSKey;\n if (!key)\n return false;\n // This looks like an autocorrection before Enter\n if (key.key == \"Enter\" && change && change.from < change.to && /^\\S+$/.test(change.insert.toString()))\n return false;\n this.pendingIOSKey = undefined;\n return dispatchKey(this.view.contentDOM, key.key, key.keyCode, key instanceof KeyboardEvent ? key : undefined);\n }\n ignoreDuringComposition(event) {\n if (!/^key/.test(event.type) || event.synthetic)\n return false;\n if (this.composing > 0)\n return true;\n // See https://www.stum.de/2016/06/24/handling-ime-events-in-javascript/.\n // On some input method editors (IMEs), the Enter key is used to\n // confirm character selection. On Safari, when Enter is pressed,\n // compositionend and keydown events are sometimes emitted in the\n // wrong order. The key event should still be ignored, even when\n // it happens after the compositionend event.\n if (browser.safari && !browser.ios && this.compositionPendingKey && Date.now() - this.compositionEndedAt < 100) {\n this.compositionPendingKey = false;\n return true;\n }\n return false;\n }\n startMouseSelection(mouseSelection) {\n if (this.mouseSelection)\n this.mouseSelection.destroy();\n this.mouseSelection = mouseSelection;\n }\n update(update) {\n this.view.observer.update(update);\n if (this.mouseSelection)\n this.mouseSelection.update(update);\n if (this.draggedContent && update.docChanged)\n this.draggedContent = this.draggedContent.map(update.changes);\n if (update.transactions.length)\n this.lastKeyCode = this.lastSelectionTime = 0;\n }\n destroy() {\n if (this.mouseSelection)\n this.mouseSelection.destroy();\n }\n}\nfunction bindHandler(plugin, handler) {\n return (view, event) => {\n try {\n return handler.call(plugin, event, view);\n }\n catch (e) {\n logException(view.state, e);\n }\n };\n}\nfunction computeHandlers(plugins) {\n let result = Object.create(null);\n function record(type) {\n return result[type] || (result[type] = { observers: [], handlers: [] });\n }\n for (let plugin of plugins) {\n let spec = plugin.spec, handlers = spec && spec.plugin.domEventHandlers, observers = spec && spec.plugin.domEventObservers;\n if (handlers)\n for (let type in handlers) {\n let f = handlers[type];\n if (f)\n record(type).handlers.push(bindHandler(plugin.value, f));\n }\n if (observers)\n for (let type in observers) {\n let f = observers[type];\n if (f)\n record(type).observers.push(bindHandler(plugin.value, f));\n }\n }\n for (let type in handlers)\n record(type).handlers.push(handlers[type]);\n for (let type in observers)\n record(type).observers.push(observers[type]);\n return result;\n}\nconst PendingKeys = [\n { key: \"Backspace\", keyCode: 8, inputType: \"deleteContentBackward\" },\n { key: \"Enter\", keyCode: 13, inputType: \"insertParagraph\" },\n { key: \"Enter\", keyCode: 13, inputType: \"insertLineBreak\" },\n { key: \"Delete\", keyCode: 46, inputType: \"deleteContentForward\" }\n];\nconst EmacsyPendingKeys = \"dthko\";\n// Key codes for modifier keys\nconst modifierCodes = [16, 17, 18, 20, 91, 92, 224, 225];\nconst dragScrollMargin = 6;\nfunction dragScrollSpeed(dist) {\n return Math.max(0, dist) * 0.7 + 8;\n}\nfunction dist(a, b) {\n return Math.max(Math.abs(a.clientX - b.clientX), Math.abs(a.clientY - b.clientY));\n}\nclass MouseSelection {\n constructor(view, startEvent, style, mustSelect) {\n this.view = view;\n this.startEvent = startEvent;\n this.style = style;\n this.mustSelect = mustSelect;\n this.scrollSpeed = { x: 0, y: 0 };\n this.scrolling = -1;\n this.lastEvent = startEvent;\n this.scrollParents = scrollableParents(view.contentDOM);\n this.atoms = view.state.facet(atomicRanges).map(f => f(view));\n let doc = view.contentDOM.ownerDocument;\n doc.addEventListener(\"mousemove\", this.move = this.move.bind(this));\n doc.addEventListener(\"mouseup\", this.up = this.up.bind(this));\n this.extend = startEvent.shiftKey;\n this.multiple = view.state.facet(EditorState.allowMultipleSelections) && addsSelectionRange(view, startEvent);\n this.dragging = isInPrimarySelection(view, startEvent) && getClickType(startEvent) == 1 ? null : false;\n }\n start(event) {\n // When clicking outside of the selection, immediately apply the\n // effect of starting the selection\n if (this.dragging === false)\n this.select(event);\n }\n move(event) {\n if (event.buttons == 0)\n return this.destroy();\n if (this.dragging || this.dragging == null && dist(this.startEvent, event) < 10)\n return;\n this.select(this.lastEvent = event);\n let sx = 0, sy = 0;\n let left = 0, top = 0, right = this.view.win.innerWidth, bottom = this.view.win.innerHeight;\n if (this.scrollParents.x)\n ({ left, right } = this.scrollParents.x.getBoundingClientRect());\n if (this.scrollParents.y)\n ({ top, bottom } = this.scrollParents.y.getBoundingClientRect());\n let margins = getScrollMargins(this.view);\n if (event.clientX - margins.left <= left + dragScrollMargin)\n sx = -dragScrollSpeed(left - event.clientX);\n else if (event.clientX + margins.right >= right - dragScrollMargin)\n sx = dragScrollSpeed(event.clientX - right);\n if (event.clientY - margins.top <= top + dragScrollMargin)\n sy = -dragScrollSpeed(top - event.clientY);\n else if (event.clientY + margins.bottom >= bottom - dragScrollMargin)\n sy = dragScrollSpeed(event.clientY - bottom);\n this.setScrollSpeed(sx, sy);\n }\n up(event) {\n if (this.dragging == null)\n this.select(this.lastEvent);\n if (!this.dragging)\n event.preventDefault();\n this.destroy();\n }\n destroy() {\n this.setScrollSpeed(0, 0);\n let doc = this.view.contentDOM.ownerDocument;\n doc.removeEventListener(\"mousemove\", this.move);\n doc.removeEventListener(\"mouseup\", this.up);\n this.view.inputState.mouseSelection = this.view.inputState.draggedContent = null;\n }\n setScrollSpeed(sx, sy) {\n this.scrollSpeed = { x: sx, y: sy };\n if (sx || sy) {\n if (this.scrolling < 0)\n this.scrolling = setInterval(() => this.scroll(), 50);\n }\n else if (this.scrolling > -1) {\n clearInterval(this.scrolling);\n this.scrolling = -1;\n }\n }\n scroll() {\n let { x, y } = this.scrollSpeed;\n if (x && this.scrollParents.x) {\n this.scrollParents.x.scrollLeft += x;\n x = 0;\n }\n if (y && this.scrollParents.y) {\n this.scrollParents.y.scrollTop += y;\n y = 0;\n }\n if (x || y)\n this.view.win.scrollBy(x, y);\n if (this.dragging === false)\n this.select(this.lastEvent);\n }\n select(event) {\n let { view } = this, selection = skipAtomsForSelection(this.atoms, this.style.get(event, this.extend, this.multiple));\n if (this.mustSelect || !selection.eq(view.state.selection, this.dragging === false))\n this.view.dispatch({\n selection,\n userEvent: \"select.pointer\"\n });\n this.mustSelect = false;\n }\n update(update) {\n if (update.transactions.some(tr => tr.isUserEvent(\"input.type\")))\n this.destroy();\n else if (this.style.update(update))\n setTimeout(() => this.select(this.lastEvent), 20);\n }\n}\nfunction addsSelectionRange(view, event) {\n let facet = view.state.facet(clickAddsSelectionRange);\n return facet.length ? facet[0](event) : browser.mac ? event.metaKey : event.ctrlKey;\n}\nfunction dragMovesSelection(view, event) {\n let facet = view.state.facet(dragMovesSelection$1);\n return facet.length ? facet[0](event) : browser.mac ? !event.altKey : !event.ctrlKey;\n}\nfunction isInPrimarySelection(view, event) {\n let { main } = view.state.selection;\n if (main.empty)\n return false;\n // On boundary clicks, check whether the coordinates are inside the\n // selection's client rectangles\n let sel = getSelection(view.root);\n if (!sel || sel.rangeCount == 0)\n return true;\n let rects = sel.getRangeAt(0).getClientRects();\n for (let i = 0; i < rects.length; i++) {\n let rect = rects[i];\n if (rect.left <= event.clientX && rect.right >= event.clientX &&\n rect.top <= event.clientY && rect.bottom >= event.clientY)\n return true;\n }\n return false;\n}\nfunction eventBelongsToEditor(view, event) {\n if (!event.bubbles)\n return true;\n if (event.defaultPrevented)\n return false;\n for (let node = event.target, cView; node != view.contentDOM; node = node.parentNode)\n if (!node || node.nodeType == 11 || ((cView = ContentView.get(node)) && cView.ignoreEvent(event)))\n return false;\n return true;\n}\nconst handlers = /*@__PURE__*/Object.create(null);\nconst observers = /*@__PURE__*/Object.create(null);\n// This is very crude, but unfortunately both these browsers _pretend_\n// that they have a clipboard API—all the objects and methods are\n// there, they just don't work, and they are hard to test.\nconst brokenClipboardAPI = (browser.ie && browser.ie_version < 15) ||\n (browser.ios && browser.webkit_version < 604);\nfunction capturePaste(view) {\n let parent = view.dom.parentNode;\n if (!parent)\n return;\n let target = parent.appendChild(document.createElement(\"textarea\"));\n target.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n target.focus();\n setTimeout(() => {\n view.focus();\n target.remove();\n doPaste(view, target.value);\n }, 50);\n}\nfunction textFilter(state, facet, text) {\n for (let filter of state.facet(facet))\n text = filter(text, state);\n return text;\n}\nfunction doPaste(view, input) {\n input = textFilter(view.state, clipboardInputFilter, input);\n let { state } = view, changes, i = 1, text = state.toText(input);\n let byLine = text.lines == state.selection.ranges.length;\n let linewise = lastLinewiseCopy != null && state.selection.ranges.every(r => r.empty) && lastLinewiseCopy == text.toString();\n if (linewise) {\n let lastLine = -1;\n changes = state.changeByRange(range => {\n let line = state.doc.lineAt(range.from);\n if (line.from == lastLine)\n return { range };\n lastLine = line.from;\n let insert = state.toText((byLine ? text.line(i++).text : input) + state.lineBreak);\n return { changes: { from: line.from, insert },\n range: EditorSelection.cursor(range.from + insert.length) };\n });\n }\n else if (byLine) {\n changes = state.changeByRange(range => {\n let line = text.line(i++);\n return { changes: { from: range.from, to: range.to, insert: line.text },\n range: EditorSelection.cursor(range.from + line.length) };\n });\n }\n else {\n changes = state.replaceSelection(text);\n }\n view.dispatch(changes, {\n userEvent: \"input.paste\",\n scrollIntoView: true\n });\n}\nobservers.scroll = view => {\n view.inputState.lastScrollTop = view.scrollDOM.scrollTop;\n view.inputState.lastScrollLeft = view.scrollDOM.scrollLeft;\n};\nhandlers.keydown = (view, event) => {\n view.inputState.setSelectionOrigin(\"select\");\n if (event.keyCode == 27 && view.inputState.tabFocusMode != 0)\n view.inputState.tabFocusMode = Date.now() + 2000;\n return false;\n};\nobservers.touchstart = (view, e) => {\n view.inputState.lastTouchTime = Date.now();\n view.inputState.setSelectionOrigin(\"select.pointer\");\n};\nobservers.touchmove = view => {\n view.inputState.setSelectionOrigin(\"select.pointer\");\n};\nhandlers.mousedown = (view, event) => {\n view.observer.flush();\n if (view.inputState.lastTouchTime > Date.now() - 2000)\n return false; // Ignore touch interaction\n let style = null;\n for (let makeStyle of view.state.facet(mouseSelectionStyle)) {\n style = makeStyle(view, event);\n if (style)\n break;\n }\n if (!style && event.button == 0)\n style = basicMouseSelection(view, event);\n if (style) {\n let mustFocus = !view.hasFocus;\n view.inputState.startMouseSelection(new MouseSelection(view, event, style, mustFocus));\n if (mustFocus)\n view.observer.ignore(() => {\n focusPreventScroll(view.contentDOM);\n let active = view.root.activeElement;\n if (active && !active.contains(view.contentDOM))\n active.blur();\n });\n let mouseSel = view.inputState.mouseSelection;\n if (mouseSel) {\n mouseSel.start(event);\n return mouseSel.dragging === false;\n }\n }\n else {\n view.inputState.setSelectionOrigin(\"select.pointer\");\n }\n return false;\n};\nfunction rangeForClick(view, pos, bias, type) {\n if (type == 1) { // Single click\n return EditorSelection.cursor(pos, bias);\n }\n else if (type == 2) { // Double click\n return groupAt(view.state, pos, bias);\n }\n else { // Triple click\n let visual = LineView.find(view.docView, pos), line = view.state.doc.lineAt(visual ? visual.posAtEnd : pos);\n let from = visual ? visual.posAtStart : line.from, to = visual ? visual.posAtEnd : line.to;\n if (to < view.state.doc.length && to == line.to)\n to++;\n return EditorSelection.range(from, to);\n }\n}\nlet inside = (x, y, rect) => y >= rect.top && y <= rect.bottom && x >= rect.left && x <= rect.right;\n// Try to determine, for the given coordinates, associated with the\n// given position, whether they are related to the element before or\n// the element after the position.\nfunction findPositionSide(view, pos, x, y) {\n let line = LineView.find(view.docView, pos);\n if (!line)\n return 1;\n let off = pos - line.posAtStart;\n // Line boundaries point into the line\n if (off == 0)\n return 1;\n if (off == line.length)\n return -1;\n // Positions on top of an element point at that element\n let before = line.coordsAt(off, -1);\n if (before && inside(x, y, before))\n return -1;\n let after = line.coordsAt(off, 1);\n if (after && inside(x, y, after))\n return 1;\n // This is probably a line wrap point. Pick before if the point is\n // above its bottom.\n return before && before.bottom >= y ? -1 : 1;\n}\nfunction queryPos(view, event) {\n let pos = view.posAtCoords({ x: event.clientX, y: event.clientY }, false);\n return { pos, bias: findPositionSide(view, pos, event.clientX, event.clientY) };\n}\nconst BadMouseDetail = browser.ie && browser.ie_version <= 11;\nlet lastMouseDown = null, lastMouseDownCount = 0, lastMouseDownTime = 0;\nfunction getClickType(event) {\n if (!BadMouseDetail)\n return event.detail;\n let last = lastMouseDown, lastTime = lastMouseDownTime;\n lastMouseDown = event;\n lastMouseDownTime = Date.now();\n return lastMouseDownCount = !last || (lastTime > Date.now() - 400 && Math.abs(last.clientX - event.clientX) < 2 &&\n Math.abs(last.clientY - event.clientY) < 2) ? (lastMouseDownCount + 1) % 3 : 1;\n}\nfunction basicMouseSelection(view, event) {\n let start = queryPos(view, event), type = getClickType(event);\n let startSel = view.state.selection;\n return {\n update(update) {\n if (update.docChanged) {\n start.pos = update.changes.mapPos(start.pos);\n startSel = startSel.map(update.changes);\n }\n },\n get(event, extend, multiple) {\n let cur = queryPos(view, event), removed;\n let range = rangeForClick(view, cur.pos, cur.bias, type);\n if (start.pos != cur.pos && !extend) {\n let startRange = rangeForClick(view, start.pos, start.bias, type);\n let from = Math.min(startRange.from, range.from), to = Math.max(startRange.to, range.to);\n range = from < range.from ? EditorSelection.range(from, to) : EditorSelection.range(to, from);\n }\n if (extend)\n return startSel.replaceRange(startSel.main.extend(range.from, range.to));\n else if (multiple && type == 1 && startSel.ranges.length > 1 && (removed = removeRangeAround(startSel, cur.pos)))\n return removed;\n else if (multiple)\n return startSel.addRange(range);\n else\n return EditorSelection.create([range]);\n }\n };\n}\nfunction removeRangeAround(sel, pos) {\n for (let i = 0; i < sel.ranges.length; i++) {\n let { from, to } = sel.ranges[i];\n if (from <= pos && to >= pos)\n return EditorSelection.create(sel.ranges.slice(0, i).concat(sel.ranges.slice(i + 1)), sel.mainIndex == i ? 0 : sel.mainIndex - (sel.mainIndex > i ? 1 : 0));\n }\n return null;\n}\nhandlers.dragstart = (view, event) => {\n let { selection: { main: range } } = view.state;\n if (event.target.draggable) {\n let cView = view.docView.nearest(event.target);\n if (cView && cView.isWidget) {\n let from = cView.posAtStart, to = from + cView.length;\n if (from >= range.to || to <= range.from)\n range = EditorSelection.range(from, to);\n }\n }\n let { inputState } = view;\n if (inputState.mouseSelection)\n inputState.mouseSelection.dragging = true;\n inputState.draggedContent = range;\n if (event.dataTransfer) {\n event.dataTransfer.setData(\"Text\", textFilter(view.state, clipboardOutputFilter, view.state.sliceDoc(range.from, range.to)));\n event.dataTransfer.effectAllowed = \"copyMove\";\n }\n return false;\n};\nhandlers.dragend = view => {\n view.inputState.draggedContent = null;\n return false;\n};\nfunction dropText(view, event, text, direct) {\n text = textFilter(view.state, clipboardInputFilter, text);\n if (!text)\n return;\n let dropPos = view.posAtCoords({ x: event.clientX, y: event.clientY }, false);\n let { draggedContent } = view.inputState;\n let del = direct && draggedContent && dragMovesSelection(view, event)\n ? { from: draggedContent.from, to: draggedContent.to } : null;\n let ins = { from: dropPos, insert: text };\n let changes = view.state.changes(del ? [del, ins] : ins);\n view.focus();\n view.dispatch({\n changes,\n selection: { anchor: changes.mapPos(dropPos, -1), head: changes.mapPos(dropPos, 1) },\n userEvent: del ? \"move.drop\" : \"input.drop\"\n });\n view.inputState.draggedContent = null;\n}\nhandlers.drop = (view, event) => {\n if (!event.dataTransfer)\n return false;\n if (view.state.readOnly)\n return true;\n let files = event.dataTransfer.files;\n if (files && files.length) { // For a file drop, read the file's text.\n let text = Array(files.length), read = 0;\n let finishFile = () => {\n if (++read == files.length)\n dropText(view, event, text.filter(s => s != null).join(view.state.lineBreak), false);\n };\n for (let i = 0; i < files.length; i++) {\n let reader = new FileReader;\n reader.onerror = finishFile;\n reader.onload = () => {\n if (!/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(reader.result))\n text[i] = reader.result;\n finishFile();\n };\n reader.readAsText(files[i]);\n }\n return true;\n }\n else {\n let text = event.dataTransfer.getData(\"Text\");\n if (text) {\n dropText(view, event, text, true);\n return true;\n }\n }\n return false;\n};\nhandlers.paste = (view, event) => {\n if (view.state.readOnly)\n return true;\n view.observer.flush();\n let data = brokenClipboardAPI ? null : event.clipboardData;\n if (data) {\n doPaste(view, data.getData(\"text/plain\") || data.getData(\"text/uri-list\"));\n return true;\n }\n else {\n capturePaste(view);\n return false;\n }\n};\nfunction captureCopy(view, text) {\n // The extra wrapper is somehow necessary on IE/Edge to prevent the\n // content from being mangled when it is put onto the clipboard\n let parent = view.dom.parentNode;\n if (!parent)\n return;\n let target = parent.appendChild(document.createElement(\"textarea\"));\n target.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n target.value = text;\n target.focus();\n target.selectionEnd = text.length;\n target.selectionStart = 0;\n setTimeout(() => {\n target.remove();\n view.focus();\n }, 50);\n}\nfunction copiedRange(state) {\n let content = [], ranges = [], linewise = false;\n for (let range of state.selection.ranges)\n if (!range.empty) {\n content.push(state.sliceDoc(range.from, range.to));\n ranges.push(range);\n }\n if (!content.length) {\n // Nothing selected, do a line-wise copy\n let upto = -1;\n for (let { from } of state.selection.ranges) {\n let line = state.doc.lineAt(from);\n if (line.number > upto) {\n content.push(line.text);\n ranges.push({ from: line.from, to: Math.min(state.doc.length, line.to + 1) });\n }\n upto = line.number;\n }\n linewise = true;\n }\n return { text: textFilter(state, clipboardOutputFilter, content.join(state.lineBreak)), ranges, linewise };\n}\nlet lastLinewiseCopy = null;\nhandlers.copy = handlers.cut = (view, event) => {\n let { text, ranges, linewise } = copiedRange(view.state);\n if (!text && !linewise)\n return false;\n lastLinewiseCopy = linewise ? text : null;\n if (event.type == \"cut\" && !view.state.readOnly)\n view.dispatch({\n changes: ranges,\n scrollIntoView: true,\n userEvent: \"delete.cut\"\n });\n let data = brokenClipboardAPI ? null : event.clipboardData;\n if (data) {\n data.clearData();\n data.setData(\"text/plain\", text);\n return true;\n }\n else {\n captureCopy(view, text);\n return false;\n }\n};\nconst isFocusChange = /*@__PURE__*/Annotation.define();\nfunction focusChangeTransaction(state, focus) {\n let effects = [];\n for (let getEffect of state.facet(focusChangeEffect)) {\n let effect = getEffect(state, focus);\n if (effect)\n effects.push(effect);\n }\n return effects.length ? state.update({ effects, annotations: isFocusChange.of(true) }) : null;\n}\nfunction updateForFocusChange(view) {\n setTimeout(() => {\n let focus = view.hasFocus;\n if (focus != view.inputState.notifiedFocused) {\n let tr = focusChangeTransaction(view.state, focus);\n if (tr)\n view.dispatch(tr);\n else\n view.update([]);\n }\n }, 10);\n}\nobservers.focus = view => {\n view.inputState.lastFocusTime = Date.now();\n // When focusing reset the scroll position, move it back to where it was\n if (!view.scrollDOM.scrollTop && (view.inputState.lastScrollTop || view.inputState.lastScrollLeft)) {\n view.scrollDOM.scrollTop = view.inputState.lastScrollTop;\n view.scrollDOM.scrollLeft = view.inputState.lastScrollLeft;\n }\n updateForFocusChange(view);\n};\nobservers.blur = view => {\n view.observer.clearSelectionRange();\n updateForFocusChange(view);\n};\nobservers.compositionstart = observers.compositionupdate = view => {\n if (view.observer.editContext)\n return; // Composition handled by edit context\n if (view.inputState.compositionFirstChange == null)\n view.inputState.compositionFirstChange = true;\n if (view.inputState.composing < 0) {\n // FIXME possibly set a timeout to clear it again on Android\n view.inputState.composing = 0;\n }\n};\nobservers.compositionend = view => {\n if (view.observer.editContext)\n return; // Composition handled by edit context\n view.inputState.composing = -1;\n view.inputState.compositionEndedAt = Date.now();\n view.inputState.compositionPendingKey = true;\n view.inputState.compositionPendingChange = view.observer.pendingRecords().length > 0;\n view.inputState.compositionFirstChange = null;\n if (browser.chrome && browser.android) {\n // Delay flushing for a bit on Android because it'll often fire a\n // bunch of contradictory changes in a row at end of compositon\n view.observer.flushSoon();\n }\n else if (view.inputState.compositionPendingChange) {\n // If we found pending records, schedule a flush.\n Promise.resolve().then(() => view.observer.flush());\n }\n else {\n // Otherwise, make sure that, if no changes come in soon, the\n // composition view is cleared.\n setTimeout(() => {\n if (view.inputState.composing < 0 && view.docView.hasComposition)\n view.update([]);\n }, 50);\n }\n};\nobservers.contextmenu = view => {\n view.inputState.lastContextMenu = Date.now();\n};\nhandlers.beforeinput = (view, event) => {\n var _a, _b;\n // In EditContext mode, we must handle insertReplacementText events\n // directly, to make spell checking corrections work\n if (event.inputType == \"insertReplacementText\" && view.observer.editContext) {\n let text = (_a = event.dataTransfer) === null || _a === void 0 ? void 0 : _a.getData(\"text/plain\"), ranges = event.getTargetRanges();\n if (text && ranges.length) {\n let r = ranges[0];\n let from = view.posAtDOM(r.startContainer, r.startOffset), to = view.posAtDOM(r.endContainer, r.endOffset);\n applyDOMChangeInner(view, { from, to, insert: view.state.toText(text) }, null);\n return true;\n }\n }\n // Because Chrome Android doesn't fire useful key events, use\n // beforeinput to detect backspace (and possibly enter and delete,\n // but those usually don't even seem to fire beforeinput events at\n // the moment) and fake a key event for it.\n //\n // (preventDefault on beforeinput, though supported in the spec,\n // seems to do nothing at all on Chrome).\n let pending;\n if (browser.chrome && browser.android && (pending = PendingKeys.find(key => key.inputType == event.inputType))) {\n view.observer.delayAndroidKey(pending.key, pending.keyCode);\n if (pending.key == \"Backspace\" || pending.key == \"Delete\") {\n let startViewHeight = ((_b = window.visualViewport) === null || _b === void 0 ? void 0 : _b.height) || 0;\n setTimeout(() => {\n var _a;\n // Backspacing near uneditable nodes on Chrome Android sometimes\n // closes the virtual keyboard. This tries to crudely detect\n // that and refocus to get it back.\n if ((((_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.height) || 0) > startViewHeight + 10 && view.hasFocus) {\n view.contentDOM.blur();\n view.focus();\n }\n }, 100);\n }\n }\n if (browser.ios && event.inputType == \"deleteContentForward\") {\n // For some reason, DOM changes (and beforeinput) happen _before_\n // the key event for ctrl-d on iOS when using an external\n // keyboard.\n view.observer.flushSoon();\n }\n // Safari will occasionally forget to fire compositionend at the end of a dead-key composition\n if (browser.safari && event.inputType == \"insertText\" && view.inputState.composing >= 0) {\n setTimeout(() => observers.compositionend(view, event), 20);\n }\n return false;\n};\nconst appliedFirefoxHack = /*@__PURE__*/new Set;\n// In Firefox, when cut/copy handlers are added to the document, that\n// somehow avoids a bug where those events aren't fired when the\n// selection is empty. See https://github.com/codemirror/dev/issues/1082\n// and https://bugzilla.mozilla.org/show_bug.cgi?id=995961\nfunction firefoxCopyCutHack(doc) {\n if (!appliedFirefoxHack.has(doc)) {\n appliedFirefoxHack.add(doc);\n doc.addEventListener(\"copy\", () => { });\n doc.addEventListener(\"cut\", () => { });\n }\n}\n\nconst wrappingWhiteSpace = [\"pre-wrap\", \"normal\", \"pre-line\", \"break-spaces\"];\n// Used to track, during updateHeight, if any actual heights changed\nlet heightChangeFlag = false;\nfunction clearHeightChangeFlag() { heightChangeFlag = false; }\nclass HeightOracle {\n constructor(lineWrapping) {\n this.lineWrapping = lineWrapping;\n this.doc = Text.empty;\n this.heightSamples = {};\n this.lineHeight = 14; // The height of an entire line (line-height)\n this.charWidth = 7;\n this.textHeight = 14; // The height of the actual font (font-size)\n this.lineLength = 30;\n }\n heightForGap(from, to) {\n let lines = this.doc.lineAt(to).number - this.doc.lineAt(from).number + 1;\n if (this.lineWrapping)\n lines += Math.max(0, Math.ceil(((to - from) - (lines * this.lineLength * 0.5)) / this.lineLength));\n return this.lineHeight * lines;\n }\n heightForLine(length) {\n if (!this.lineWrapping)\n return this.lineHeight;\n let lines = 1 + Math.max(0, Math.ceil((length - this.lineLength) / Math.max(1, this.lineLength - 5)));\n return lines * this.lineHeight;\n }\n setDoc(doc) { this.doc = doc; return this; }\n mustRefreshForWrapping(whiteSpace) {\n return (wrappingWhiteSpace.indexOf(whiteSpace) > -1) != this.lineWrapping;\n }\n mustRefreshForHeights(lineHeights) {\n let newHeight = false;\n for (let i = 0; i < lineHeights.length; i++) {\n let h = lineHeights[i];\n if (h < 0) {\n i++;\n }\n else if (!this.heightSamples[Math.floor(h * 10)]) { // Round to .1 pixels\n newHeight = true;\n this.heightSamples[Math.floor(h * 10)] = true;\n }\n }\n return newHeight;\n }\n refresh(whiteSpace, lineHeight, charWidth, textHeight, lineLength, knownHeights) {\n let lineWrapping = wrappingWhiteSpace.indexOf(whiteSpace) > -1;\n let changed = Math.round(lineHeight) != Math.round(this.lineHeight) || this.lineWrapping != lineWrapping;\n this.lineWrapping = lineWrapping;\n this.lineHeight = lineHeight;\n this.charWidth = charWidth;\n this.textHeight = textHeight;\n this.lineLength = lineLength;\n if (changed) {\n this.heightSamples = {};\n for (let i = 0; i < knownHeights.length; i++) {\n let h = knownHeights[i];\n if (h < 0)\n i++;\n else\n this.heightSamples[Math.floor(h * 10)] = true;\n }\n }\n return changed;\n }\n}\n// This object is used by `updateHeight` to make DOM measurements\n// arrive at the right nides. The `heights` array is a sequence of\n// block heights, starting from position `from`.\nclass MeasuredHeights {\n constructor(from, heights) {\n this.from = from;\n this.heights = heights;\n this.index = 0;\n }\n get more() { return this.index < this.heights.length; }\n}\n/**\nRecord used to represent information about a block-level element\nin the editor view.\n*/\nclass BlockInfo {\n /**\n @internal\n */\n constructor(\n /**\n The start of the element in the document.\n */\n from, \n /**\n The length of the element.\n */\n length, \n /**\n The top position of the element (relative to the top of the\n document).\n */\n top, \n /**\n Its height.\n */\n height, \n /**\n @internal Weird packed field that holds an array of children\n for composite blocks, a decoration for block widgets, and a\n number indicating the amount of widget-create line breaks for\n text blocks.\n */\n _content) {\n this.from = from;\n this.length = length;\n this.top = top;\n this.height = height;\n this._content = _content;\n }\n /**\n The type of element this is. When querying lines, this may be\n an array of all the blocks that make up the line.\n */\n get type() {\n return typeof this._content == \"number\" ? BlockType.Text :\n Array.isArray(this._content) ? this._content : this._content.type;\n }\n /**\n The end of the element as a document position.\n */\n get to() { return this.from + this.length; }\n /**\n The bottom position of the element.\n */\n get bottom() { return this.top + this.height; }\n /**\n If this is a widget block, this will return the widget\n associated with it.\n */\n get widget() {\n return this._content instanceof PointDecoration ? this._content.widget : null;\n }\n /**\n If this is a textblock, this holds the number of line breaks\n that appear in widgets inside the block.\n */\n get widgetLineBreaks() {\n return typeof this._content == \"number\" ? this._content : 0;\n }\n /**\n @internal\n */\n join(other) {\n let content = (Array.isArray(this._content) ? this._content : [this])\n .concat(Array.isArray(other._content) ? other._content : [other]);\n return new BlockInfo(this.from, this.length + other.length, this.top, this.height + other.height, content);\n }\n}\nvar QueryType = /*@__PURE__*/(function (QueryType) {\n QueryType[QueryType[\"ByPos\"] = 0] = \"ByPos\";\n QueryType[QueryType[\"ByHeight\"] = 1] = \"ByHeight\";\n QueryType[QueryType[\"ByPosNoHeight\"] = 2] = \"ByPosNoHeight\";\nreturn QueryType})(QueryType || (QueryType = {}));\nconst Epsilon = 1e-3;\nclass HeightMap {\n constructor(length, // The number of characters covered\n height, // Height of this part of the document\n flags = 2 /* Flag.Outdated */) {\n this.length = length;\n this.height = height;\n this.flags = flags;\n }\n get outdated() { return (this.flags & 2 /* Flag.Outdated */) > 0; }\n set outdated(value) { this.flags = (value ? 2 /* Flag.Outdated */ : 0) | (this.flags & ~2 /* Flag.Outdated */); }\n setHeight(height) {\n if (this.height != height) {\n if (Math.abs(this.height - height) > Epsilon)\n heightChangeFlag = true;\n this.height = height;\n }\n }\n // Base case is to replace a leaf node, which simply builds a tree\n // from the new nodes and returns that (HeightMapBranch and\n // HeightMapGap override this to actually use from/to)\n replace(_from, _to, nodes) {\n return HeightMap.of(nodes);\n }\n // Again, these are base cases, and are overridden for branch and gap nodes.\n decomposeLeft(_to, result) { result.push(this); }\n decomposeRight(_from, result) { result.push(this); }\n applyChanges(decorations, oldDoc, oracle, changes) {\n let me = this, doc = oracle.doc;\n for (let i = changes.length - 1; i >= 0; i--) {\n let { fromA, toA, fromB, toB } = changes[i];\n let start = me.lineAt(fromA, QueryType.ByPosNoHeight, oracle.setDoc(oldDoc), 0, 0);\n let end = start.to >= toA ? start : me.lineAt(toA, QueryType.ByPosNoHeight, oracle, 0, 0);\n toB += end.to - toA;\n toA = end.to;\n while (i > 0 && start.from <= changes[i - 1].toA) {\n fromA = changes[i - 1].fromA;\n fromB = changes[i - 1].fromB;\n i--;\n if (fromA < start.from)\n start = me.lineAt(fromA, QueryType.ByPosNoHeight, oracle, 0, 0);\n }\n fromB += start.from - fromA;\n fromA = start.from;\n let nodes = NodeBuilder.build(oracle.setDoc(doc), decorations, fromB, toB);\n me = replace(me, me.replace(fromA, toA, nodes));\n }\n return me.updateHeight(oracle, 0);\n }\n static empty() { return new HeightMapText(0, 0); }\n // nodes uses null values to indicate the position of line breaks.\n // There are never line breaks at the start or end of the array, or\n // two line breaks next to each other, and the array isn't allowed\n // to be empty (same restrictions as return value from the builder).\n static of(nodes) {\n if (nodes.length == 1)\n return nodes[0];\n let i = 0, j = nodes.length, before = 0, after = 0;\n for (;;) {\n if (i == j) {\n if (before > after * 2) {\n let split = nodes[i - 1];\n if (split.break)\n nodes.splice(--i, 1, split.left, null, split.right);\n else\n nodes.splice(--i, 1, split.left, split.right);\n j += 1 + split.break;\n before -= split.size;\n }\n else if (after > before * 2) {\n let split = nodes[j];\n if (split.break)\n nodes.splice(j, 1, split.left, null, split.right);\n else\n nodes.splice(j, 1, split.left, split.right);\n j += 2 + split.break;\n after -= split.size;\n }\n else {\n break;\n }\n }\n else if (before < after) {\n let next = nodes[i++];\n if (next)\n before += next.size;\n }\n else {\n let next = nodes[--j];\n if (next)\n after += next.size;\n }\n }\n let brk = 0;\n if (nodes[i - 1] == null) {\n brk = 1;\n i--;\n }\n else if (nodes[i] == null) {\n brk = 1;\n j++;\n }\n return new HeightMapBranch(HeightMap.of(nodes.slice(0, i)), brk, HeightMap.of(nodes.slice(j)));\n }\n}\nfunction replace(old, val) {\n if (old == val)\n return old;\n if (old.constructor != val.constructor)\n heightChangeFlag = true;\n return val;\n}\nHeightMap.prototype.size = 1;\nclass HeightMapBlock extends HeightMap {\n constructor(length, height, deco) {\n super(length, height);\n this.deco = deco;\n }\n blockAt(_height, _oracle, top, offset) {\n return new BlockInfo(offset, this.length, top, this.height, this.deco || 0);\n }\n lineAt(_value, _type, oracle, top, offset) {\n return this.blockAt(0, oracle, top, offset);\n }\n forEachLine(from, to, oracle, top, offset, f) {\n if (from <= offset + this.length && to >= offset)\n f(this.blockAt(0, oracle, top, offset));\n }\n updateHeight(oracle, offset = 0, _force = false, measured) {\n if (measured && measured.from <= offset && measured.more)\n this.setHeight(measured.heights[measured.index++]);\n this.outdated = false;\n return this;\n }\n toString() { return `block(${this.length})`; }\n}\nclass HeightMapText extends HeightMapBlock {\n constructor(length, height) {\n super(length, height, null);\n this.collapsed = 0; // Amount of collapsed content in the line\n this.widgetHeight = 0; // Maximum inline widget height\n this.breaks = 0; // Number of widget-introduced line breaks on the line\n }\n blockAt(_height, _oracle, top, offset) {\n return new BlockInfo(offset, this.length, top, this.height, this.breaks);\n }\n replace(_from, _to, nodes) {\n let node = nodes[0];\n if (nodes.length == 1 && (node instanceof HeightMapText || node instanceof HeightMapGap && (node.flags & 4 /* Flag.SingleLine */)) &&\n Math.abs(this.length - node.length) < 10) {\n if (node instanceof HeightMapGap)\n node = new HeightMapText(node.length, this.height);\n else\n node.height = this.height;\n if (!this.outdated)\n node.outdated = false;\n return node;\n }\n else {\n return HeightMap.of(nodes);\n }\n }\n updateHeight(oracle, offset = 0, force = false, measured) {\n if (measured && measured.from <= offset && measured.more)\n this.setHeight(measured.heights[measured.index++]);\n else if (force || this.outdated)\n this.setHeight(Math.max(this.widgetHeight, oracle.heightForLine(this.length - this.collapsed)) +\n this.breaks * oracle.lineHeight);\n this.outdated = false;\n return this;\n }\n toString() {\n return `line(${this.length}${this.collapsed ? -this.collapsed : \"\"}${this.widgetHeight ? \":\" + this.widgetHeight : \"\"})`;\n }\n}\nclass HeightMapGap extends HeightMap {\n constructor(length) { super(length, 0); }\n heightMetrics(oracle, offset) {\n let firstLine = oracle.doc.lineAt(offset).number, lastLine = oracle.doc.lineAt(offset + this.length).number;\n let lines = lastLine - firstLine + 1;\n let perLine, perChar = 0;\n if (oracle.lineWrapping) {\n let totalPerLine = Math.min(this.height, oracle.lineHeight * lines);\n perLine = totalPerLine / lines;\n if (this.length > lines + 1)\n perChar = (this.height - totalPerLine) / (this.length - lines - 1);\n }\n else {\n perLine = this.height / lines;\n }\n return { firstLine, lastLine, perLine, perChar };\n }\n blockAt(height, oracle, top, offset) {\n let { firstLine, lastLine, perLine, perChar } = this.heightMetrics(oracle, offset);\n if (oracle.lineWrapping) {\n let guess = offset + (height < oracle.lineHeight ? 0\n : Math.round(Math.max(0, Math.min(1, (height - top) / this.height)) * this.length));\n let line = oracle.doc.lineAt(guess), lineHeight = perLine + line.length * perChar;\n let lineTop = Math.max(top, height - lineHeight / 2);\n return new BlockInfo(line.from, line.length, lineTop, lineHeight, 0);\n }\n else {\n let line = Math.max(0, Math.min(lastLine - firstLine, Math.floor((height - top) / perLine)));\n let { from, length } = oracle.doc.line(firstLine + line);\n return new BlockInfo(from, length, top + perLine * line, perLine, 0);\n }\n }\n lineAt(value, type, oracle, top, offset) {\n if (type == QueryType.ByHeight)\n return this.blockAt(value, oracle, top, offset);\n if (type == QueryType.ByPosNoHeight) {\n let { from, to } = oracle.doc.lineAt(value);\n return new BlockInfo(from, to - from, 0, 0, 0);\n }\n let { firstLine, perLine, perChar } = this.heightMetrics(oracle, offset);\n let line = oracle.doc.lineAt(value), lineHeight = perLine + line.length * perChar;\n let linesAbove = line.number - firstLine;\n let lineTop = top + perLine * linesAbove + perChar * (line.from - offset - linesAbove);\n return new BlockInfo(line.from, line.length, Math.max(top, Math.min(lineTop, top + this.height - lineHeight)), lineHeight, 0);\n }\n forEachLine(from, to, oracle, top, offset, f) {\n from = Math.max(from, offset);\n to = Math.min(to, offset + this.length);\n let { firstLine, perLine, perChar } = this.heightMetrics(oracle, offset);\n for (let pos = from, lineTop = top; pos <= to;) {\n let line = oracle.doc.lineAt(pos);\n if (pos == from) {\n let linesAbove = line.number - firstLine;\n lineTop += perLine * linesAbove + perChar * (from - offset - linesAbove);\n }\n let lineHeight = perLine + perChar * line.length;\n f(new BlockInfo(line.from, line.length, lineTop, lineHeight, 0));\n lineTop += lineHeight;\n pos = line.to + 1;\n }\n }\n replace(from, to, nodes) {\n let after = this.length - to;\n if (after > 0) {\n let last = nodes[nodes.length - 1];\n if (last instanceof HeightMapGap)\n nodes[nodes.length - 1] = new HeightMapGap(last.length + after);\n else\n nodes.push(null, new HeightMapGap(after - 1));\n }\n if (from > 0) {\n let first = nodes[0];\n if (first instanceof HeightMapGap)\n nodes[0] = new HeightMapGap(from + first.length);\n else\n nodes.unshift(new HeightMapGap(from - 1), null);\n }\n return HeightMap.of(nodes);\n }\n decomposeLeft(to, result) {\n result.push(new HeightMapGap(to - 1), null);\n }\n decomposeRight(from, result) {\n result.push(null, new HeightMapGap(this.length - from - 1));\n }\n updateHeight(oracle, offset = 0, force = false, measured) {\n let end = offset + this.length;\n if (measured && measured.from <= offset + this.length && measured.more) {\n // Fill in part of this gap with measured lines. We know there\n // can't be widgets or collapsed ranges in those lines, because\n // they would already have been added to the heightmap (gaps\n // only contain plain text).\n let nodes = [], pos = Math.max(offset, measured.from), singleHeight = -1;\n if (measured.from > offset)\n nodes.push(new HeightMapGap(measured.from - offset - 1).updateHeight(oracle, offset));\n while (pos <= end && measured.more) {\n let len = oracle.doc.lineAt(pos).length;\n if (nodes.length)\n nodes.push(null);\n let height = measured.heights[measured.index++];\n if (singleHeight == -1)\n singleHeight = height;\n else if (Math.abs(height - singleHeight) >= Epsilon)\n singleHeight = -2;\n let line = new HeightMapText(len, height);\n line.outdated = false;\n nodes.push(line);\n pos += len + 1;\n }\n if (pos <= end)\n nodes.push(null, new HeightMapGap(end - pos).updateHeight(oracle, pos));\n let result = HeightMap.of(nodes);\n if (singleHeight < 0 || Math.abs(result.height - this.height) >= Epsilon ||\n Math.abs(singleHeight - this.heightMetrics(oracle, offset).perLine) >= Epsilon)\n heightChangeFlag = true;\n return replace(this, result);\n }\n else if (force || this.outdated) {\n this.setHeight(oracle.heightForGap(offset, offset + this.length));\n this.outdated = false;\n }\n return this;\n }\n toString() { return `gap(${this.length})`; }\n}\nclass HeightMapBranch extends HeightMap {\n constructor(left, brk, right) {\n super(left.length + brk + right.length, left.height + right.height, brk | (left.outdated || right.outdated ? 2 /* Flag.Outdated */ : 0));\n this.left = left;\n this.right = right;\n this.size = left.size + right.size;\n }\n get break() { return this.flags & 1 /* Flag.Break */; }\n blockAt(height, oracle, top, offset) {\n let mid = top + this.left.height;\n return height < mid ? this.left.blockAt(height, oracle, top, offset)\n : this.right.blockAt(height, oracle, mid, offset + this.left.length + this.break);\n }\n lineAt(value, type, oracle, top, offset) {\n let rightTop = top + this.left.height, rightOffset = offset + this.left.length + this.break;\n let left = type == QueryType.ByHeight ? value < rightTop : value < rightOffset;\n let base = left ? this.left.lineAt(value, type, oracle, top, offset)\n : this.right.lineAt(value, type, oracle, rightTop, rightOffset);\n if (this.break || (left ? base.to < rightOffset : base.from > rightOffset))\n return base;\n let subQuery = type == QueryType.ByPosNoHeight ? QueryType.ByPosNoHeight : QueryType.ByPos;\n if (left)\n return base.join(this.right.lineAt(rightOffset, subQuery, oracle, rightTop, rightOffset));\n else\n return this.left.lineAt(rightOffset, subQuery, oracle, top, offset).join(base);\n }\n forEachLine(from, to, oracle, top, offset, f) {\n let rightTop = top + this.left.height, rightOffset = offset + this.left.length + this.break;\n if (this.break) {\n if (from < rightOffset)\n this.left.forEachLine(from, to, oracle, top, offset, f);\n if (to >= rightOffset)\n this.right.forEachLine(from, to, oracle, rightTop, rightOffset, f);\n }\n else {\n let mid = this.lineAt(rightOffset, QueryType.ByPos, oracle, top, offset);\n if (from < mid.from)\n this.left.forEachLine(from, mid.from - 1, oracle, top, offset, f);\n if (mid.to >= from && mid.from <= to)\n f(mid);\n if (to > mid.to)\n this.right.forEachLine(mid.to + 1, to, oracle, rightTop, rightOffset, f);\n }\n }\n replace(from, to, nodes) {\n let rightStart = this.left.length + this.break;\n if (to < rightStart)\n return this.balanced(this.left.replace(from, to, nodes), this.right);\n if (from > this.left.length)\n return this.balanced(this.left, this.right.replace(from - rightStart, to - rightStart, nodes));\n let result = [];\n if (from > 0)\n this.decomposeLeft(from, result);\n let left = result.length;\n for (let node of nodes)\n result.push(node);\n if (from > 0)\n mergeGaps(result, left - 1);\n if (to < this.length) {\n let right = result.length;\n this.decomposeRight(to, result);\n mergeGaps(result, right);\n }\n return HeightMap.of(result);\n }\n decomposeLeft(to, result) {\n let left = this.left.length;\n if (to <= left)\n return this.left.decomposeLeft(to, result);\n result.push(this.left);\n if (this.break) {\n left++;\n if (to >= left)\n result.push(null);\n }\n if (to > left)\n this.right.decomposeLeft(to - left, result);\n }\n decomposeRight(from, result) {\n let left = this.left.length, right = left + this.break;\n if (from >= right)\n return this.right.decomposeRight(from - right, result);\n if (from < left)\n this.left.decomposeRight(from, result);\n if (this.break && from < right)\n result.push(null);\n result.push(this.right);\n }\n balanced(left, right) {\n if (left.size > 2 * right.size || right.size > 2 * left.size)\n return HeightMap.of(this.break ? [left, null, right] : [left, right]);\n this.left = replace(this.left, left);\n this.right = replace(this.right, right);\n this.setHeight(left.height + right.height);\n this.outdated = left.outdated || right.outdated;\n this.size = left.size + right.size;\n this.length = left.length + this.break + right.length;\n return this;\n }\n updateHeight(oracle, offset = 0, force = false, measured) {\n let { left, right } = this, rightStart = offset + left.length + this.break, rebalance = null;\n if (measured && measured.from <= offset + left.length && measured.more)\n rebalance = left = left.updateHeight(oracle, offset, force, measured);\n else\n left.updateHeight(oracle, offset, force);\n if (measured && measured.from <= rightStart + right.length && measured.more)\n rebalance = right = right.updateHeight(oracle, rightStart, force, measured);\n else\n right.updateHeight(oracle, rightStart, force);\n if (rebalance)\n return this.balanced(left, right);\n this.height = this.left.height + this.right.height;\n this.outdated = false;\n return this;\n }\n toString() { return this.left + (this.break ? \" \" : \"-\") + this.right; }\n}\nfunction mergeGaps(nodes, around) {\n let before, after;\n if (nodes[around] == null &&\n (before = nodes[around - 1]) instanceof HeightMapGap &&\n (after = nodes[around + 1]) instanceof HeightMapGap)\n nodes.splice(around - 1, 3, new HeightMapGap(before.length + 1 + after.length));\n}\nconst relevantWidgetHeight = 5;\nclass NodeBuilder {\n constructor(pos, oracle) {\n this.pos = pos;\n this.oracle = oracle;\n this.nodes = [];\n this.lineStart = -1;\n this.lineEnd = -1;\n this.covering = null;\n this.writtenTo = pos;\n }\n get isCovered() {\n return this.covering && this.nodes[this.nodes.length - 1] == this.covering;\n }\n span(_from, to) {\n if (this.lineStart > -1) {\n let end = Math.min(to, this.lineEnd), last = this.nodes[this.nodes.length - 1];\n if (last instanceof HeightMapText)\n last.length += end - this.pos;\n else if (end > this.pos || !this.isCovered)\n this.nodes.push(new HeightMapText(end - this.pos, -1));\n this.writtenTo = end;\n if (to > end) {\n this.nodes.push(null);\n this.writtenTo++;\n this.lineStart = -1;\n }\n }\n this.pos = to;\n }\n point(from, to, deco) {\n if (from < to || deco.heightRelevant) {\n let height = deco.widget ? deco.widget.estimatedHeight : 0;\n let breaks = deco.widget ? deco.widget.lineBreaks : 0;\n if (height < 0)\n height = this.oracle.lineHeight;\n let len = to - from;\n if (deco.block) {\n this.addBlock(new HeightMapBlock(len, height, deco));\n }\n else if (len || breaks || height >= relevantWidgetHeight) {\n this.addLineDeco(height, breaks, len);\n }\n }\n else if (to > from) {\n this.span(from, to);\n }\n if (this.lineEnd > -1 && this.lineEnd < this.pos)\n this.lineEnd = this.oracle.doc.lineAt(this.pos).to;\n }\n enterLine() {\n if (this.lineStart > -1)\n return;\n let { from, to } = this.oracle.doc.lineAt(this.pos);\n this.lineStart = from;\n this.lineEnd = to;\n if (this.writtenTo < from) {\n if (this.writtenTo < from - 1 || this.nodes[this.nodes.length - 1] == null)\n this.nodes.push(this.blankContent(this.writtenTo, from - 1));\n this.nodes.push(null);\n }\n if (this.pos > from)\n this.nodes.push(new HeightMapText(this.pos - from, -1));\n this.writtenTo = this.pos;\n }\n blankContent(from, to) {\n let gap = new HeightMapGap(to - from);\n if (this.oracle.doc.lineAt(from).to == to)\n gap.flags |= 4 /* Flag.SingleLine */;\n return gap;\n }\n ensureLine() {\n this.enterLine();\n let last = this.nodes.length ? this.nodes[this.nodes.length - 1] : null;\n if (last instanceof HeightMapText)\n return last;\n let line = new HeightMapText(0, -1);\n this.nodes.push(line);\n return line;\n }\n addBlock(block) {\n this.enterLine();\n let deco = block.deco;\n if (deco && deco.startSide > 0 && !this.isCovered)\n this.ensureLine();\n this.nodes.push(block);\n this.writtenTo = this.pos = this.pos + block.length;\n if (deco && deco.endSide > 0)\n this.covering = block;\n }\n addLineDeco(height, breaks, length) {\n let line = this.ensureLine();\n line.length += length;\n line.collapsed += length;\n line.widgetHeight = Math.max(line.widgetHeight, height);\n line.breaks += breaks;\n this.writtenTo = this.pos = this.pos + length;\n }\n finish(from) {\n let last = this.nodes.length == 0 ? null : this.nodes[this.nodes.length - 1];\n if (this.lineStart > -1 && !(last instanceof HeightMapText) && !this.isCovered)\n this.nodes.push(new HeightMapText(0, -1));\n else if (this.writtenTo < this.pos || last == null)\n this.nodes.push(this.blankContent(this.writtenTo, this.pos));\n let pos = from;\n for (let node of this.nodes) {\n if (node instanceof HeightMapText)\n node.updateHeight(this.oracle, pos);\n pos += node ? node.length : 1;\n }\n return this.nodes;\n }\n // Always called with a region that on both sides either stretches\n // to a line break or the end of the document.\n // The returned array uses null to indicate line breaks, but never\n // starts or ends in a line break, or has multiple line breaks next\n // to each other.\n static build(oracle, decorations, from, to) {\n let builder = new NodeBuilder(from, oracle);\n RangeSet.spans(decorations, from, to, builder, 0);\n return builder.finish(from);\n }\n}\nfunction heightRelevantDecoChanges(a, b, diff) {\n let comp = new DecorationComparator;\n RangeSet.compare(a, b, diff, comp, 0);\n return comp.changes;\n}\nclass DecorationComparator {\n constructor() {\n this.changes = [];\n }\n compareRange() { }\n comparePoint(from, to, a, b) {\n if (from < to || a && a.heightRelevant || b && b.heightRelevant)\n addRange(from, to, this.changes, 5);\n }\n}\n\nfunction visiblePixelRange(dom, paddingTop) {\n let rect = dom.getBoundingClientRect();\n let doc = dom.ownerDocument, win = doc.defaultView || window;\n let left = Math.max(0, rect.left), right = Math.min(win.innerWidth, rect.right);\n let top = Math.max(0, rect.top), bottom = Math.min(win.innerHeight, rect.bottom);\n for (let parent = dom.parentNode; parent && parent != doc.body;) {\n if (parent.nodeType == 1) {\n let elt = parent;\n let style = window.getComputedStyle(elt);\n if ((elt.scrollHeight > elt.clientHeight || elt.scrollWidth > elt.clientWidth) &&\n style.overflow != \"visible\") {\n let parentRect = elt.getBoundingClientRect();\n left = Math.max(left, parentRect.left);\n right = Math.min(right, parentRect.right);\n top = Math.max(top, parentRect.top);\n bottom = Math.min(parent == dom.parentNode ? win.innerHeight : bottom, parentRect.bottom);\n }\n parent = style.position == \"absolute\" || style.position == \"fixed\" ? elt.offsetParent : elt.parentNode;\n }\n else if (parent.nodeType == 11) { // Shadow root\n parent = parent.host;\n }\n else {\n break;\n }\n }\n return { left: left - rect.left, right: Math.max(left, right) - rect.left,\n top: top - (rect.top + paddingTop), bottom: Math.max(top, bottom) - (rect.top + paddingTop) };\n}\nfunction inWindow(elt) {\n let rect = elt.getBoundingClientRect(), win = elt.ownerDocument.defaultView || window;\n return rect.left < win.innerWidth && rect.right > 0 &&\n rect.top < win.innerHeight && rect.bottom > 0;\n}\nfunction fullPixelRange(dom, paddingTop) {\n let rect = dom.getBoundingClientRect();\n return { left: 0, right: rect.right - rect.left,\n top: paddingTop, bottom: rect.bottom - (rect.top + paddingTop) };\n}\n// Line gaps are placeholder widgets used to hide pieces of overlong\n// lines within the viewport, as a kludge to keep the editor\n// responsive when a ridiculously long line is loaded into it.\nclass LineGap {\n constructor(from, to, size, displaySize) {\n this.from = from;\n this.to = to;\n this.size = size;\n this.displaySize = displaySize;\n }\n static same(a, b) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++) {\n let gA = a[i], gB = b[i];\n if (gA.from != gB.from || gA.to != gB.to || gA.size != gB.size)\n return false;\n }\n return true;\n }\n draw(viewState, wrapping) {\n return Decoration.replace({\n widget: new LineGapWidget(this.displaySize * (wrapping ? viewState.scaleY : viewState.scaleX), wrapping)\n }).range(this.from, this.to);\n }\n}\nclass LineGapWidget extends WidgetType {\n constructor(size, vertical) {\n super();\n this.size = size;\n this.vertical = vertical;\n }\n eq(other) { return other.size == this.size && other.vertical == this.vertical; }\n toDOM() {\n let elt = document.createElement(\"div\");\n if (this.vertical) {\n elt.style.height = this.size + \"px\";\n }\n else {\n elt.style.width = this.size + \"px\";\n elt.style.height = \"2px\";\n elt.style.display = \"inline-block\";\n }\n return elt;\n }\n get estimatedHeight() { return this.vertical ? this.size : -1; }\n}\nclass ViewState {\n constructor(state) {\n this.state = state;\n // These are contentDOM-local coordinates\n this.pixelViewport = { left: 0, right: window.innerWidth, top: 0, bottom: 0 };\n this.inView = true;\n this.paddingTop = 0; // Padding above the document, scaled\n this.paddingBottom = 0; // Padding below the document, scaled\n this.contentDOMWidth = 0; // contentDOM.getBoundingClientRect().width\n this.contentDOMHeight = 0; // contentDOM.getBoundingClientRect().height\n this.editorHeight = 0; // scrollDOM.clientHeight, unscaled\n this.editorWidth = 0; // scrollDOM.clientWidth, unscaled\n this.scrollTop = 0; // Last seen scrollDOM.scrollTop, scaled\n this.scrolledToBottom = false;\n // The CSS-transformation scale of the editor (transformed size /\n // concrete size)\n this.scaleX = 1;\n this.scaleY = 1;\n // The vertical position (document-relative) to which to anchor the\n // scroll position. -1 means anchor to the end of the document.\n this.scrollAnchorPos = 0;\n // The height at the anchor position. Set by the DOM update phase.\n // -1 means no height available.\n this.scrollAnchorHeight = -1;\n // See VP.MaxDOMHeight\n this.scaler = IdScaler;\n this.scrollTarget = null;\n // Briefly set to true when printing, to disable viewport limiting\n this.printing = false;\n // Flag set when editor content was redrawn, so that the next\n // measure stage knows it must read DOM layout\n this.mustMeasureContent = true;\n this.defaultTextDirection = Direction.LTR;\n this.visibleRanges = [];\n // Cursor 'assoc' is only significant when the cursor is on a line\n // wrap point, where it must stick to the character that it is\n // associated with. Since browsers don't provide a reasonable\n // interface to set or query this, when a selection is set that\n // might cause this to be significant, this flag is set. The next\n // measure phase will check whether the cursor is on a line-wrapping\n // boundary and, if so, reset it to make sure it is positioned in\n // the right place.\n this.mustEnforceCursorAssoc = false;\n let guessWrapping = state.facet(contentAttributes).some(v => typeof v != \"function\" && v.class == \"cm-lineWrapping\");\n this.heightOracle = new HeightOracle(guessWrapping);\n this.stateDeco = state.facet(decorations).filter(d => typeof d != \"function\");\n this.heightMap = HeightMap.empty().applyChanges(this.stateDeco, Text.empty, this.heightOracle.setDoc(state.doc), [new ChangedRange(0, 0, 0, state.doc.length)]);\n for (let i = 0; i < 2; i++) {\n this.viewport = this.getViewport(0, null);\n if (!this.updateForViewport())\n break;\n }\n this.updateViewportLines();\n this.lineGaps = this.ensureLineGaps([]);\n this.lineGapDeco = Decoration.set(this.lineGaps.map(gap => gap.draw(this, false)));\n this.computeVisibleRanges();\n }\n updateForViewport() {\n let viewports = [this.viewport], { main } = this.state.selection;\n for (let i = 0; i <= 1; i++) {\n let pos = i ? main.head : main.anchor;\n if (!viewports.some(({ from, to }) => pos >= from && pos <= to)) {\n let { from, to } = this.lineBlockAt(pos);\n viewports.push(new Viewport(from, to));\n }\n }\n this.viewports = viewports.sort((a, b) => a.from - b.from);\n return this.updateScaler();\n }\n updateScaler() {\n let scaler = this.scaler;\n this.scaler = this.heightMap.height <= 7000000 /* VP.MaxDOMHeight */ ? IdScaler :\n new BigScaler(this.heightOracle, this.heightMap, this.viewports);\n return scaler.eq(this.scaler) ? 0 : 2 /* UpdateFlag.Height */;\n }\n updateViewportLines() {\n this.viewportLines = [];\n this.heightMap.forEachLine(this.viewport.from, this.viewport.to, this.heightOracle.setDoc(this.state.doc), 0, 0, block => {\n this.viewportLines.push(scaleBlock(block, this.scaler));\n });\n }\n update(update, scrollTarget = null) {\n this.state = update.state;\n let prevDeco = this.stateDeco;\n this.stateDeco = this.state.facet(decorations).filter(d => typeof d != \"function\");\n let contentChanges = update.changedRanges;\n let heightChanges = ChangedRange.extendWithRanges(contentChanges, heightRelevantDecoChanges(prevDeco, this.stateDeco, update ? update.changes : ChangeSet.empty(this.state.doc.length)));\n let prevHeight = this.heightMap.height;\n let scrollAnchor = this.scrolledToBottom ? null : this.scrollAnchorAt(this.scrollTop);\n clearHeightChangeFlag();\n this.heightMap = this.heightMap.applyChanges(this.stateDeco, update.startState.doc, this.heightOracle.setDoc(this.state.doc), heightChanges);\n if (this.heightMap.height != prevHeight || heightChangeFlag)\n update.flags |= 2 /* UpdateFlag.Height */;\n if (scrollAnchor) {\n this.scrollAnchorPos = update.changes.mapPos(scrollAnchor.from, -1);\n this.scrollAnchorHeight = scrollAnchor.top;\n }\n else {\n this.scrollAnchorPos = -1;\n this.scrollAnchorHeight = prevHeight;\n }\n let viewport = heightChanges.length ? this.mapViewport(this.viewport, update.changes) : this.viewport;\n if (scrollTarget && (scrollTarget.range.head < viewport.from || scrollTarget.range.head > viewport.to) ||\n !this.viewportIsAppropriate(viewport))\n viewport = this.getViewport(0, scrollTarget);\n let viewportChange = viewport.from != this.viewport.from || viewport.to != this.viewport.to;\n this.viewport = viewport;\n update.flags |= this.updateForViewport();\n if (viewportChange || !update.changes.empty || (update.flags & 2 /* UpdateFlag.Height */))\n this.updateViewportLines();\n if (this.lineGaps.length || this.viewport.to - this.viewport.from > (2000 /* LG.Margin */ << 1))\n this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps, update.changes)));\n update.flags |= this.computeVisibleRanges(update.changes);\n if (scrollTarget)\n this.scrollTarget = scrollTarget;\n if (!this.mustEnforceCursorAssoc && update.selectionSet && update.view.lineWrapping &&\n update.state.selection.main.empty && update.state.selection.main.assoc &&\n !update.state.facet(nativeSelectionHidden))\n this.mustEnforceCursorAssoc = true;\n }\n measure(view) {\n let dom = view.contentDOM, style = window.getComputedStyle(dom);\n let oracle = this.heightOracle;\n let whiteSpace = style.whiteSpace;\n this.defaultTextDirection = style.direction == \"rtl\" ? Direction.RTL : Direction.LTR;\n let refresh = this.heightOracle.mustRefreshForWrapping(whiteSpace);\n let domRect = dom.getBoundingClientRect();\n let measureContent = refresh || this.mustMeasureContent || this.contentDOMHeight != domRect.height;\n this.contentDOMHeight = domRect.height;\n this.mustMeasureContent = false;\n let result = 0, bias = 0;\n if (domRect.width && domRect.height) {\n let { scaleX, scaleY } = getScale(dom, domRect);\n if (scaleX > .005 && Math.abs(this.scaleX - scaleX) > .005 ||\n scaleY > .005 && Math.abs(this.scaleY - scaleY) > .005) {\n this.scaleX = scaleX;\n this.scaleY = scaleY;\n result |= 16 /* UpdateFlag.Geometry */;\n refresh = measureContent = true;\n }\n }\n // Vertical padding\n let paddingTop = (parseInt(style.paddingTop) || 0) * this.scaleY;\n let paddingBottom = (parseInt(style.paddingBottom) || 0) * this.scaleY;\n if (this.paddingTop != paddingTop || this.paddingBottom != paddingBottom) {\n this.paddingTop = paddingTop;\n this.paddingBottom = paddingBottom;\n result |= 16 /* UpdateFlag.Geometry */ | 2 /* UpdateFlag.Height */;\n }\n if (this.editorWidth != view.scrollDOM.clientWidth) {\n if (oracle.lineWrapping)\n measureContent = true;\n this.editorWidth = view.scrollDOM.clientWidth;\n result |= 16 /* UpdateFlag.Geometry */;\n }\n let scrollTop = view.scrollDOM.scrollTop * this.scaleY;\n if (this.scrollTop != scrollTop) {\n this.scrollAnchorHeight = -1;\n this.scrollTop = scrollTop;\n }\n this.scrolledToBottom = isScrolledToBottom(view.scrollDOM);\n // Pixel viewport\n let pixelViewport = (this.printing ? fullPixelRange : visiblePixelRange)(dom, this.paddingTop);\n let dTop = pixelViewport.top - this.pixelViewport.top, dBottom = pixelViewport.bottom - this.pixelViewport.bottom;\n this.pixelViewport = pixelViewport;\n let inView = this.pixelViewport.bottom > this.pixelViewport.top && this.pixelViewport.right > this.pixelViewport.left;\n if (inView != this.inView) {\n this.inView = inView;\n if (inView)\n measureContent = true;\n }\n if (!this.inView && !this.scrollTarget && !inWindow(view.dom))\n return 0;\n let contentWidth = domRect.width;\n if (this.contentDOMWidth != contentWidth || this.editorHeight != view.scrollDOM.clientHeight) {\n this.contentDOMWidth = domRect.width;\n this.editorHeight = view.scrollDOM.clientHeight;\n result |= 16 /* UpdateFlag.Geometry */;\n }\n if (measureContent) {\n let lineHeights = view.docView.measureVisibleLineHeights(this.viewport);\n if (oracle.mustRefreshForHeights(lineHeights))\n refresh = true;\n if (refresh || oracle.lineWrapping && Math.abs(contentWidth - this.contentDOMWidth) > oracle.charWidth) {\n let { lineHeight, charWidth, textHeight } = view.docView.measureTextSize();\n refresh = lineHeight > 0 && oracle.refresh(whiteSpace, lineHeight, charWidth, textHeight, Math.max(5, contentWidth / charWidth), lineHeights);\n if (refresh) {\n view.docView.minWidth = 0;\n result |= 16 /* UpdateFlag.Geometry */;\n }\n }\n if (dTop > 0 && dBottom > 0)\n bias = Math.max(dTop, dBottom);\n else if (dTop < 0 && dBottom < 0)\n bias = Math.min(dTop, dBottom);\n clearHeightChangeFlag();\n for (let vp of this.viewports) {\n let heights = vp.from == this.viewport.from ? lineHeights : view.docView.measureVisibleLineHeights(vp);\n this.heightMap = (refresh ? HeightMap.empty().applyChanges(this.stateDeco, Text.empty, this.heightOracle, [new ChangedRange(0, 0, 0, view.state.doc.length)]) : this.heightMap).updateHeight(oracle, 0, refresh, new MeasuredHeights(vp.from, heights));\n }\n if (heightChangeFlag)\n result |= 2 /* UpdateFlag.Height */;\n }\n let viewportChange = !this.viewportIsAppropriate(this.viewport, bias) ||\n this.scrollTarget && (this.scrollTarget.range.head < this.viewport.from ||\n this.scrollTarget.range.head > this.viewport.to);\n if (viewportChange) {\n if (result & 2 /* UpdateFlag.Height */)\n result |= this.updateScaler();\n this.viewport = this.getViewport(bias, this.scrollTarget);\n result |= this.updateForViewport();\n }\n if ((result & 2 /* UpdateFlag.Height */) || viewportChange)\n this.updateViewportLines();\n if (this.lineGaps.length || this.viewport.to - this.viewport.from > (2000 /* LG.Margin */ << 1))\n this.updateLineGaps(this.ensureLineGaps(refresh ? [] : this.lineGaps, view));\n result |= this.computeVisibleRanges();\n if (this.mustEnforceCursorAssoc) {\n this.mustEnforceCursorAssoc = false;\n // This is done in the read stage, because moving the selection\n // to a line end is going to trigger a layout anyway, so it\n // can't be a pure write. It should be rare that it does any\n // writing.\n view.docView.enforceCursorAssoc();\n }\n return result;\n }\n get visibleTop() { return this.scaler.fromDOM(this.pixelViewport.top); }\n get visibleBottom() { return this.scaler.fromDOM(this.pixelViewport.bottom); }\n getViewport(bias, scrollTarget) {\n // This will divide VP.Margin between the top and the\n // bottom, depending on the bias (the change in viewport position\n // since the last update). It'll hold a number between 0 and 1\n let marginTop = 0.5 - Math.max(-0.5, Math.min(0.5, bias / 1000 /* VP.Margin */ / 2));\n let map = this.heightMap, oracle = this.heightOracle;\n let { visibleTop, visibleBottom } = this;\n let viewport = new Viewport(map.lineAt(visibleTop - marginTop * 1000 /* VP.Margin */, QueryType.ByHeight, oracle, 0, 0).from, map.lineAt(visibleBottom + (1 - marginTop) * 1000 /* VP.Margin */, QueryType.ByHeight, oracle, 0, 0).to);\n // If scrollTarget is given, make sure the viewport includes that position\n if (scrollTarget) {\n let { head } = scrollTarget.range;\n if (head < viewport.from || head > viewport.to) {\n let viewHeight = Math.min(this.editorHeight, this.pixelViewport.bottom - this.pixelViewport.top);\n let block = map.lineAt(head, QueryType.ByPos, oracle, 0, 0), topPos;\n if (scrollTarget.y == \"center\")\n topPos = (block.top + block.bottom) / 2 - viewHeight / 2;\n else if (scrollTarget.y == \"start\" || scrollTarget.y == \"nearest\" && head < viewport.from)\n topPos = block.top;\n else\n topPos = block.bottom - viewHeight;\n viewport = new Viewport(map.lineAt(topPos - 1000 /* VP.Margin */ / 2, QueryType.ByHeight, oracle, 0, 0).from, map.lineAt(topPos + viewHeight + 1000 /* VP.Margin */ / 2, QueryType.ByHeight, oracle, 0, 0).to);\n }\n }\n return viewport;\n }\n mapViewport(viewport, changes) {\n let from = changes.mapPos(viewport.from, -1), to = changes.mapPos(viewport.to, 1);\n return new Viewport(this.heightMap.lineAt(from, QueryType.ByPos, this.heightOracle, 0, 0).from, this.heightMap.lineAt(to, QueryType.ByPos, this.heightOracle, 0, 0).to);\n }\n // Checks if a given viewport covers the visible part of the\n // document and not too much beyond that.\n viewportIsAppropriate({ from, to }, bias = 0) {\n if (!this.inView)\n return true;\n let { top } = this.heightMap.lineAt(from, QueryType.ByPos, this.heightOracle, 0, 0);\n let { bottom } = this.heightMap.lineAt(to, QueryType.ByPos, this.heightOracle, 0, 0);\n let { visibleTop, visibleBottom } = this;\n return (from == 0 || top <= visibleTop - Math.max(10 /* VP.MinCoverMargin */, Math.min(-bias, 250 /* VP.MaxCoverMargin */))) &&\n (to == this.state.doc.length ||\n bottom >= visibleBottom + Math.max(10 /* VP.MinCoverMargin */, Math.min(bias, 250 /* VP.MaxCoverMargin */))) &&\n (top > visibleTop - 2 * 1000 /* VP.Margin */ && bottom < visibleBottom + 2 * 1000 /* VP.Margin */);\n }\n mapLineGaps(gaps, changes) {\n if (!gaps.length || changes.empty)\n return gaps;\n let mapped = [];\n for (let gap of gaps)\n if (!changes.touchesRange(gap.from, gap.to))\n mapped.push(new LineGap(changes.mapPos(gap.from), changes.mapPos(gap.to), gap.size, gap.displaySize));\n return mapped;\n }\n // Computes positions in the viewport where the start or end of a\n // line should be hidden, trying to reuse existing line gaps when\n // appropriate to avoid unneccesary redraws.\n // Uses crude character-counting for the positioning and sizing,\n // since actual DOM coordinates aren't always available and\n // predictable. Relies on generous margins (see LG.Margin) to hide\n // the artifacts this might produce from the user.\n ensureLineGaps(current, mayMeasure) {\n let wrapping = this.heightOracle.lineWrapping;\n let margin = wrapping ? 10000 /* LG.MarginWrap */ : 2000 /* LG.Margin */, halfMargin = margin >> 1, doubleMargin = margin << 1;\n // The non-wrapping logic won't work at all in predominantly right-to-left text.\n if (this.defaultTextDirection != Direction.LTR && !wrapping)\n return [];\n let gaps = [];\n let addGap = (from, to, line, structure) => {\n if (to - from < halfMargin)\n return;\n let sel = this.state.selection.main, avoid = [sel.from];\n if (!sel.empty)\n avoid.push(sel.to);\n for (let pos of avoid) {\n if (pos > from && pos < to) {\n addGap(from, pos - 10 /* LG.SelectionMargin */, line, structure);\n addGap(pos + 10 /* LG.SelectionMargin */, to, line, structure);\n return;\n }\n }\n let gap = find(current, gap => gap.from >= line.from && gap.to <= line.to &&\n Math.abs(gap.from - from) < halfMargin && Math.abs(gap.to - to) < halfMargin &&\n !avoid.some(pos => gap.from < pos && gap.to > pos));\n if (!gap) {\n // When scrolling down, snap gap ends to line starts to avoid shifts in wrapping\n if (to < line.to && mayMeasure && wrapping &&\n mayMeasure.visibleRanges.some(r => r.from <= to && r.to >= to)) {\n let lineStart = mayMeasure.moveToLineBoundary(EditorSelection.cursor(to), false, true).head;\n if (lineStart > from)\n to = lineStart;\n }\n let size = this.gapSize(line, from, to, structure);\n let displaySize = wrapping || size < 2000000 /* VP.MaxHorizGap */ ? size : 2000000 /* VP.MaxHorizGap */;\n gap = new LineGap(from, to, size, displaySize);\n }\n gaps.push(gap);\n };\n let checkLine = (line) => {\n if (line.length < doubleMargin || line.type != BlockType.Text)\n return;\n let structure = lineStructure(line.from, line.to, this.stateDeco);\n if (structure.total < doubleMargin)\n return;\n let target = this.scrollTarget ? this.scrollTarget.range.head : null;\n let viewFrom, viewTo;\n if (wrapping) {\n let marginHeight = (margin / this.heightOracle.lineLength) * this.heightOracle.lineHeight;\n let top, bot;\n if (target != null) {\n let targetFrac = findFraction(structure, target);\n let spaceFrac = ((this.visibleBottom - this.visibleTop) / 2 + marginHeight) / line.height;\n top = targetFrac - spaceFrac;\n bot = targetFrac + spaceFrac;\n }\n else {\n top = (this.visibleTop - line.top - marginHeight) / line.height;\n bot = (this.visibleBottom - line.top + marginHeight) / line.height;\n }\n viewFrom = findPosition(structure, top);\n viewTo = findPosition(structure, bot);\n }\n else {\n let totalWidth = structure.total * this.heightOracle.charWidth;\n let marginWidth = margin * this.heightOracle.charWidth;\n let horizOffset = 0;\n if (totalWidth > 2000000 /* VP.MaxHorizGap */)\n for (let old of current) {\n if (old.from >= line.from && old.from < line.to && old.size != old.displaySize &&\n old.from * this.heightOracle.charWidth + horizOffset < this.pixelViewport.left)\n horizOffset = old.size - old.displaySize;\n }\n let pxLeft = this.pixelViewport.left + horizOffset, pxRight = this.pixelViewport.right + horizOffset;\n let left, right;\n if (target != null) {\n let targetFrac = findFraction(structure, target);\n let spaceFrac = ((pxRight - pxLeft) / 2 + marginWidth) / totalWidth;\n left = targetFrac - spaceFrac;\n right = targetFrac + spaceFrac;\n }\n else {\n left = (pxLeft - marginWidth) / totalWidth;\n right = (pxRight + marginWidth) / totalWidth;\n }\n viewFrom = findPosition(structure, left);\n viewTo = findPosition(structure, right);\n }\n if (viewFrom > line.from)\n addGap(line.from, viewFrom, line, structure);\n if (viewTo < line.to)\n addGap(viewTo, line.to, line, structure);\n };\n for (let line of this.viewportLines) {\n if (Array.isArray(line.type))\n line.type.forEach(checkLine);\n else\n checkLine(line);\n }\n return gaps;\n }\n gapSize(line, from, to, structure) {\n let fraction = findFraction(structure, to) - findFraction(structure, from);\n if (this.heightOracle.lineWrapping) {\n return line.height * fraction;\n }\n else {\n return structure.total * this.heightOracle.charWidth * fraction;\n }\n }\n updateLineGaps(gaps) {\n if (!LineGap.same(gaps, this.lineGaps)) {\n this.lineGaps = gaps;\n this.lineGapDeco = Decoration.set(gaps.map(gap => gap.draw(this, this.heightOracle.lineWrapping)));\n }\n }\n computeVisibleRanges(changes) {\n let deco = this.stateDeco;\n if (this.lineGaps.length)\n deco = deco.concat(this.lineGapDeco);\n let ranges = [];\n RangeSet.spans(deco, this.viewport.from, this.viewport.to, {\n span(from, to) { ranges.push({ from, to }); },\n point() { }\n }, 20);\n let changed = 0;\n if (ranges.length != this.visibleRanges.length) {\n changed = 8 /* UpdateFlag.ViewportMoved */ | 4 /* UpdateFlag.Viewport */;\n }\n else {\n for (let i = 0; i < ranges.length && !(changed & 8 /* UpdateFlag.ViewportMoved */); i++) {\n let old = this.visibleRanges[i], nw = ranges[i];\n if (old.from != nw.from || old.to != nw.to) {\n changed |= 4 /* UpdateFlag.Viewport */;\n if (!(changes && changes.mapPos(old.from, -1) == nw.from && changes.mapPos(old.to, 1) == nw.to))\n changed |= 8 /* UpdateFlag.ViewportMoved */;\n }\n }\n }\n this.visibleRanges = ranges;\n return changed;\n }\n lineBlockAt(pos) {\n return (pos >= this.viewport.from && pos <= this.viewport.to &&\n this.viewportLines.find(b => b.from <= pos && b.to >= pos)) ||\n scaleBlock(this.heightMap.lineAt(pos, QueryType.ByPos, this.heightOracle, 0, 0), this.scaler);\n }\n lineBlockAtHeight(height) {\n return (height >= this.viewportLines[0].top && height <= this.viewportLines[this.viewportLines.length - 1].bottom &&\n this.viewportLines.find(l => l.top <= height && l.bottom >= height)) ||\n scaleBlock(this.heightMap.lineAt(this.scaler.fromDOM(height), QueryType.ByHeight, this.heightOracle, 0, 0), this.scaler);\n }\n scrollAnchorAt(scrollTop) {\n let block = this.lineBlockAtHeight(scrollTop + 8);\n return block.from >= this.viewport.from || this.viewportLines[0].top - scrollTop > 200 ? block : this.viewportLines[0];\n }\n elementAtHeight(height) {\n return scaleBlock(this.heightMap.blockAt(this.scaler.fromDOM(height), this.heightOracle, 0, 0), this.scaler);\n }\n get docHeight() {\n return this.scaler.toDOM(this.heightMap.height);\n }\n get contentHeight() {\n return this.docHeight + this.paddingTop + this.paddingBottom;\n }\n}\nclass Viewport {\n constructor(from, to) {\n this.from = from;\n this.to = to;\n }\n}\nfunction lineStructure(from, to, stateDeco) {\n let ranges = [], pos = from, total = 0;\n RangeSet.spans(stateDeco, from, to, {\n span() { },\n point(from, to) {\n if (from > pos) {\n ranges.push({ from: pos, to: from });\n total += from - pos;\n }\n pos = to;\n }\n }, 20); // We're only interested in collapsed ranges of a significant size\n if (pos < to) {\n ranges.push({ from: pos, to });\n total += to - pos;\n }\n return { total, ranges };\n}\nfunction findPosition({ total, ranges }, ratio) {\n if (ratio <= 0)\n return ranges[0].from;\n if (ratio >= 1)\n return ranges[ranges.length - 1].to;\n let dist = Math.floor(total * ratio);\n for (let i = 0;; i++) {\n let { from, to } = ranges[i], size = to - from;\n if (dist <= size)\n return from + dist;\n dist -= size;\n }\n}\nfunction findFraction(structure, pos) {\n let counted = 0;\n for (let { from, to } of structure.ranges) {\n if (pos <= to) {\n counted += pos - from;\n break;\n }\n counted += to - from;\n }\n return counted / structure.total;\n}\nfunction find(array, f) {\n for (let val of array)\n if (f(val))\n return val;\n return undefined;\n}\n// Don't scale when the document height is within the range of what\n// the DOM can handle.\nconst IdScaler = {\n toDOM(n) { return n; },\n fromDOM(n) { return n; },\n scale: 1,\n eq(other) { return other == this; }\n};\n// When the height is too big (> VP.MaxDOMHeight), scale down the\n// regions outside the viewports so that the total height is\n// VP.MaxDOMHeight.\nclass BigScaler {\n constructor(oracle, heightMap, viewports) {\n let vpHeight = 0, base = 0, domBase = 0;\n this.viewports = viewports.map(({ from, to }) => {\n let top = heightMap.lineAt(from, QueryType.ByPos, oracle, 0, 0).top;\n let bottom = heightMap.lineAt(to, QueryType.ByPos, oracle, 0, 0).bottom;\n vpHeight += bottom - top;\n return { from, to, top, bottom, domTop: 0, domBottom: 0 };\n });\n this.scale = (7000000 /* VP.MaxDOMHeight */ - vpHeight) / (heightMap.height - vpHeight);\n for (let obj of this.viewports) {\n obj.domTop = domBase + (obj.top - base) * this.scale;\n domBase = obj.domBottom = obj.domTop + (obj.bottom - obj.top);\n base = obj.bottom;\n }\n }\n toDOM(n) {\n for (let i = 0, base = 0, domBase = 0;; i++) {\n let vp = i < this.viewports.length ? this.viewports[i] : null;\n if (!vp || n < vp.top)\n return domBase + (n - base) * this.scale;\n if (n <= vp.bottom)\n return vp.domTop + (n - vp.top);\n base = vp.bottom;\n domBase = vp.domBottom;\n }\n }\n fromDOM(n) {\n for (let i = 0, base = 0, domBase = 0;; i++) {\n let vp = i < this.viewports.length ? this.viewports[i] : null;\n if (!vp || n < vp.domTop)\n return base + (n - domBase) / this.scale;\n if (n <= vp.domBottom)\n return vp.top + (n - vp.domTop);\n base = vp.bottom;\n domBase = vp.domBottom;\n }\n }\n eq(other) {\n if (!(other instanceof BigScaler))\n return false;\n return this.scale == other.scale && this.viewports.length == other.viewports.length &&\n this.viewports.every((vp, i) => vp.from == other.viewports[i].from && vp.to == other.viewports[i].to);\n }\n}\nfunction scaleBlock(block, scaler) {\n if (scaler.scale == 1)\n return block;\n let bTop = scaler.toDOM(block.top), bBottom = scaler.toDOM(block.bottom);\n return new BlockInfo(block.from, block.length, bTop, bBottom - bTop, Array.isArray(block._content) ? block._content.map(b => scaleBlock(b, scaler)) : block._content);\n}\n\nconst theme = /*@__PURE__*/Facet.define({ combine: strs => strs.join(\" \") });\nconst darkTheme = /*@__PURE__*/Facet.define({ combine: values => values.indexOf(true) > -1 });\nconst baseThemeID = /*@__PURE__*/StyleModule.newName(), baseLightID = /*@__PURE__*/StyleModule.newName(), baseDarkID = /*@__PURE__*/StyleModule.newName();\nconst lightDarkIDs = { \"&light\": \".\" + baseLightID, \"&dark\": \".\" + baseDarkID };\nfunction buildTheme(main, spec, scopes) {\n return new StyleModule(spec, {\n finish(sel) {\n return /&/.test(sel) ? sel.replace(/&\\w*/, m => {\n if (m == \"&\")\n return main;\n if (!scopes || !scopes[m])\n throw new RangeError(`Unsupported selector: ${m}`);\n return scopes[m];\n }) : main + \" \" + sel;\n }\n });\n}\nconst baseTheme$1 = /*@__PURE__*/buildTheme(\".\" + baseThemeID, {\n \"&\": {\n position: \"relative !important\",\n boxSizing: \"border-box\",\n \"&.cm-focused\": {\n // Provide a simple default outline to make sure a focused\n // editor is visually distinct. Can't leave the default behavior\n // because that will apply to the content element, which is\n // inside the scrollable container and doesn't include the\n // gutters. We also can't use an 'auto' outline, since those\n // are, for some reason, drawn behind the element content, which\n // will cause things like the active line background to cover\n // the outline (#297).\n outline: \"1px dotted #212121\"\n },\n display: \"flex !important\",\n flexDirection: \"column\"\n },\n \".cm-scroller\": {\n display: \"flex !important\",\n alignItems: \"flex-start !important\",\n fontFamily: \"monospace\",\n lineHeight: 1.4,\n height: \"100%\",\n overflowX: \"auto\",\n position: \"relative\",\n zIndex: 0,\n overflowAnchor: \"none\",\n },\n \".cm-content\": {\n margin: 0,\n flexGrow: 2,\n flexShrink: 0,\n display: \"block\",\n whiteSpace: \"pre\",\n wordWrap: \"normal\", // https://github.com/codemirror/dev/issues/456\n boxSizing: \"border-box\",\n minHeight: \"100%\",\n padding: \"4px 0\",\n outline: \"none\",\n \"&[contenteditable=true]\": {\n WebkitUserModify: \"read-write-plaintext-only\",\n }\n },\n \".cm-lineWrapping\": {\n whiteSpace_fallback: \"pre-wrap\", // For IE\n whiteSpace: \"break-spaces\",\n wordBreak: \"break-word\", // For Safari, which doesn't support overflow-wrap: anywhere\n overflowWrap: \"anywhere\",\n flexShrink: 1\n },\n \"&light .cm-content\": { caretColor: \"black\" },\n \"&dark .cm-content\": { caretColor: \"white\" },\n \".cm-line\": {\n display: \"block\",\n padding: \"0 2px 0 6px\"\n },\n \".cm-layer\": {\n position: \"absolute\",\n left: 0,\n top: 0,\n contain: \"size style\",\n \"& > *\": {\n position: \"absolute\"\n }\n },\n \"&light .cm-selectionBackground\": {\n background: \"#d9d9d9\"\n },\n \"&dark .cm-selectionBackground\": {\n background: \"#222\"\n },\n \"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground\": {\n background: \"#d7d4f0\"\n },\n \"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground\": {\n background: \"#233\"\n },\n \".cm-cursorLayer\": {\n pointerEvents: \"none\"\n },\n \"&.cm-focused > .cm-scroller > .cm-cursorLayer\": {\n animation: \"steps(1) cm-blink 1.2s infinite\"\n },\n // Two animations defined so that we can switch between them to\n // restart the animation without forcing another style\n // recomputation.\n \"@keyframes cm-blink\": { \"0%\": {}, \"50%\": { opacity: 0 }, \"100%\": {} },\n \"@keyframes cm-blink2\": { \"0%\": {}, \"50%\": { opacity: 0 }, \"100%\": {} },\n \".cm-cursor, .cm-dropCursor\": {\n borderLeft: \"1.2px solid black\",\n marginLeft: \"-0.6px\",\n pointerEvents: \"none\",\n },\n \".cm-cursor\": {\n display: \"none\"\n },\n \"&dark .cm-cursor\": {\n borderLeftColor: \"#ddd\"\n },\n \".cm-dropCursor\": {\n position: \"absolute\"\n },\n \"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor\": {\n display: \"block\"\n },\n \".cm-iso\": {\n unicodeBidi: \"isolate\"\n },\n \".cm-announced\": {\n position: \"fixed\",\n top: \"-10000px\"\n },\n \"@media print\": {\n \".cm-announced\": { display: \"none\" }\n },\n \"&light .cm-activeLine\": { backgroundColor: \"#cceeff44\" },\n \"&dark .cm-activeLine\": { backgroundColor: \"#99eeff33\" },\n \"&light .cm-specialChar\": { color: \"red\" },\n \"&dark .cm-specialChar\": { color: \"#f78\" },\n \".cm-gutters\": {\n flexShrink: 0,\n display: \"flex\",\n height: \"100%\",\n boxSizing: \"border-box\",\n zIndex: 200,\n },\n \".cm-gutters-before\": { insetInlineStart: 0 },\n \".cm-gutters-after\": { insetInlineEnd: 0 },\n \"&light .cm-gutters\": {\n backgroundColor: \"#f5f5f5\",\n color: \"#6c6c6c\",\n border: \"0px solid #ddd\",\n \"&.cm-gutters-before\": { borderRightWidth: \"1px\" },\n \"&.cm-gutters-after\": { borderLeftWidth: \"1px\" },\n },\n \"&dark .cm-gutters\": {\n backgroundColor: \"#333338\",\n color: \"#ccc\"\n },\n \".cm-gutter\": {\n display: \"flex !important\", // Necessary -- prevents margin collapsing\n flexDirection: \"column\",\n flexShrink: 0,\n boxSizing: \"border-box\",\n minHeight: \"100%\",\n overflow: \"hidden\"\n },\n \".cm-gutterElement\": {\n boxSizing: \"border-box\"\n },\n \".cm-lineNumbers .cm-gutterElement\": {\n padding: \"0 3px 0 5px\",\n minWidth: \"20px\",\n textAlign: \"right\",\n whiteSpace: \"nowrap\"\n },\n \"&light .cm-activeLineGutter\": {\n backgroundColor: \"#e2f2ff\"\n },\n \"&dark .cm-activeLineGutter\": {\n backgroundColor: \"#222227\"\n },\n \".cm-panels\": {\n boxSizing: \"border-box\",\n position: \"sticky\",\n left: 0,\n right: 0,\n zIndex: 300\n },\n \"&light .cm-panels\": {\n backgroundColor: \"#f5f5f5\",\n color: \"black\"\n },\n \"&light .cm-panels-top\": {\n borderBottom: \"1px solid #ddd\"\n },\n \"&light .cm-panels-bottom\": {\n borderTop: \"1px solid #ddd\"\n },\n \"&dark .cm-panels\": {\n backgroundColor: \"#333338\",\n color: \"white\"\n },\n \".cm-dialog\": {\n padding: \"2px 19px 4px 6px\",\n position: \"relative\",\n \"& label\": { fontSize: \"80%\" },\n },\n \".cm-dialog-close\": {\n position: \"absolute\",\n top: \"3px\",\n right: \"4px\",\n backgroundColor: \"inherit\",\n border: \"none\",\n font: \"inherit\",\n fontSize: \"14px\",\n padding: \"0\"\n },\n \".cm-tab\": {\n display: \"inline-block\",\n overflow: \"hidden\",\n verticalAlign: \"bottom\"\n },\n \".cm-widgetBuffer\": {\n verticalAlign: \"text-top\",\n height: \"1em\",\n width: 0,\n display: \"inline\"\n },\n \".cm-placeholder\": {\n color: \"#888\",\n display: \"inline-block\",\n verticalAlign: \"top\",\n userSelect: \"none\"\n },\n \".cm-highlightSpace\": {\n backgroundImage: \"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)\",\n backgroundPosition: \"center\",\n },\n \".cm-highlightTab\": {\n backgroundImage: `url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height=\"20\"><path stroke=\"%23888\" stroke-width=\"1\" fill=\"none\" d=\"M1 10H196L190 5M190 15L196 10M197 4L197 16\"/></svg>')`,\n backgroundSize: \"auto 100%\",\n backgroundPosition: \"right 90%\",\n backgroundRepeat: \"no-repeat\"\n },\n \".cm-trailingSpace\": {\n backgroundColor: \"#ff332255\"\n },\n \".cm-button\": {\n verticalAlign: \"middle\",\n color: \"inherit\",\n fontSize: \"70%\",\n padding: \".2em 1em\",\n borderRadius: \"1px\"\n },\n \"&light .cm-button\": {\n backgroundImage: \"linear-gradient(#eff1f5, #d9d9df)\",\n border: \"1px solid #888\",\n \"&:active\": {\n backgroundImage: \"linear-gradient(#b4b4b4, #d0d3d6)\"\n }\n },\n \"&dark .cm-button\": {\n backgroundImage: \"linear-gradient(#393939, #111)\",\n border: \"1px solid #888\",\n \"&:active\": {\n backgroundImage: \"linear-gradient(#111, #333)\"\n }\n },\n \".cm-textfield\": {\n verticalAlign: \"middle\",\n color: \"inherit\",\n fontSize: \"70%\",\n border: \"1px solid silver\",\n padding: \".2em .5em\"\n },\n \"&light .cm-textfield\": {\n backgroundColor: \"white\"\n },\n \"&dark .cm-textfield\": {\n border: \"1px solid #555\",\n backgroundColor: \"inherit\"\n }\n}, lightDarkIDs);\n\nconst observeOptions = {\n childList: true,\n characterData: true,\n subtree: true,\n attributes: true,\n characterDataOldValue: true\n};\n// IE11 has very broken mutation observers, so we also listen to\n// DOMCharacterDataModified there\nconst useCharData = browser.ie && browser.ie_version <= 11;\nclass DOMObserver {\n constructor(view) {\n this.view = view;\n this.active = false;\n this.editContext = null;\n // The known selection. Kept in our own object, as opposed to just\n // directly accessing the selection because:\n // - Safari doesn't report the right selection in shadow DOM\n // - Reading from the selection forces a DOM layout\n // - This way, we can ignore selectionchange events if we have\n // already seen the 'new' selection\n this.selectionRange = new DOMSelectionState;\n // Set when a selection change is detected, cleared on flush\n this.selectionChanged = false;\n this.delayedFlush = -1;\n this.resizeTimeout = -1;\n this.queue = [];\n this.delayedAndroidKey = null;\n this.flushingAndroidKey = -1;\n this.lastChange = 0;\n this.scrollTargets = [];\n this.intersection = null;\n this.resizeScroll = null;\n this.intersecting = false;\n this.gapIntersection = null;\n this.gaps = [];\n this.printQuery = null;\n // Timeout for scheduling check of the parents that need scroll handlers\n this.parentCheck = -1;\n this.dom = view.contentDOM;\n this.observer = new MutationObserver(mutations => {\n for (let mut of mutations)\n this.queue.push(mut);\n // IE11 will sometimes (on typing over a selection or\n // backspacing out a single character text node) call the\n // observer callback before actually updating the DOM.\n //\n // Unrelatedly, iOS Safari will, when ending a composition,\n // sometimes first clear it, deliver the mutations, and then\n // reinsert the finished text. CodeMirror's handling of the\n // deletion will prevent the reinsertion from happening,\n // breaking composition.\n if ((browser.ie && browser.ie_version <= 11 || browser.ios && view.composing) &&\n mutations.some(m => m.type == \"childList\" && m.removedNodes.length ||\n m.type == \"characterData\" && m.oldValue.length > m.target.nodeValue.length))\n this.flushSoon();\n else\n this.flush();\n });\n if (window.EditContext && browser.android && view.constructor.EDIT_CONTEXT !== false &&\n // Chrome <126 doesn't support inverted selections in edit context (#1392)\n !(browser.chrome && browser.chrome_version < 126)) {\n this.editContext = new EditContextManager(view);\n if (view.state.facet(editable))\n view.contentDOM.editContext = this.editContext.editContext;\n }\n if (useCharData)\n this.onCharData = (event) => {\n this.queue.push({ target: event.target,\n type: \"characterData\",\n oldValue: event.prevValue });\n this.flushSoon();\n };\n this.onSelectionChange = this.onSelectionChange.bind(this);\n this.onResize = this.onResize.bind(this);\n this.onPrint = this.onPrint.bind(this);\n this.onScroll = this.onScroll.bind(this);\n if (window.matchMedia)\n this.printQuery = window.matchMedia(\"print\");\n if (typeof ResizeObserver == \"function\") {\n this.resizeScroll = new ResizeObserver(() => {\n var _a;\n if (((_a = this.view.docView) === null || _a === void 0 ? void 0 : _a.lastUpdate) < Date.now() - 75)\n this.onResize();\n });\n this.resizeScroll.observe(view.scrollDOM);\n }\n this.addWindowListeners(this.win = view.win);\n this.start();\n if (typeof IntersectionObserver == \"function\") {\n this.intersection = new IntersectionObserver(entries => {\n if (this.parentCheck < 0)\n this.parentCheck = setTimeout(this.listenForScroll.bind(this), 1000);\n if (entries.length > 0 && (entries[entries.length - 1].intersectionRatio > 0) != this.intersecting) {\n this.intersecting = !this.intersecting;\n if (this.intersecting != this.view.inView)\n this.onScrollChanged(document.createEvent(\"Event\"));\n }\n }, { threshold: [0, .001] });\n this.intersection.observe(this.dom);\n this.gapIntersection = new IntersectionObserver(entries => {\n if (entries.length > 0 && entries[entries.length - 1].intersectionRatio > 0)\n this.onScrollChanged(document.createEvent(\"Event\"));\n }, {});\n }\n this.listenForScroll();\n this.readSelectionRange();\n }\n onScrollChanged(e) {\n this.view.inputState.runHandlers(\"scroll\", e);\n if (this.intersecting)\n this.view.measure();\n }\n onScroll(e) {\n if (this.intersecting)\n this.flush(false);\n if (this.editContext)\n this.view.requestMeasure(this.editContext.measureReq);\n this.onScrollChanged(e);\n }\n onResize() {\n if (this.resizeTimeout < 0)\n this.resizeTimeout = setTimeout(() => {\n this.resizeTimeout = -1;\n this.view.requestMeasure();\n }, 50);\n }\n onPrint(event) {\n if ((event.type == \"change\" || !event.type) && !event.matches)\n return;\n this.view.viewState.printing = true;\n this.view.measure();\n setTimeout(() => {\n this.view.viewState.printing = false;\n this.view.requestMeasure();\n }, 500);\n }\n updateGaps(gaps) {\n if (this.gapIntersection && (gaps.length != this.gaps.length || this.gaps.some((g, i) => g != gaps[i]))) {\n this.gapIntersection.disconnect();\n for (let gap of gaps)\n this.gapIntersection.observe(gap);\n this.gaps = gaps;\n }\n }\n onSelectionChange(event) {\n let wasChanged = this.selectionChanged;\n if (!this.readSelectionRange() || this.delayedAndroidKey)\n return;\n let { view } = this, sel = this.selectionRange;\n if (view.state.facet(editable) ? view.root.activeElement != this.dom : !hasSelection(this.dom, sel))\n return;\n let context = sel.anchorNode && view.docView.nearest(sel.anchorNode);\n if (context && context.ignoreEvent(event)) {\n if (!wasChanged)\n this.selectionChanged = false;\n return;\n }\n // Deletions on IE11 fire their events in the wrong order, giving\n // us a selection change event before the DOM changes are\n // reported.\n // Chrome Android has a similar issue when backspacing out a\n // selection (#645).\n if ((browser.ie && browser.ie_version <= 11 || browser.android && browser.chrome) && !view.state.selection.main.empty &&\n // (Selection.isCollapsed isn't reliable on IE)\n sel.focusNode && isEquivalentPosition(sel.focusNode, sel.focusOffset, sel.anchorNode, sel.anchorOffset))\n this.flushSoon();\n else\n this.flush(false);\n }\n readSelectionRange() {\n let { view } = this;\n // The Selection object is broken in shadow roots in Safari. See\n // https://github.com/codemirror/dev/issues/414\n let selection = getSelection(view.root);\n if (!selection)\n return false;\n let range = browser.safari && view.root.nodeType == 11 &&\n view.root.activeElement == this.dom &&\n safariSelectionRangeHack(this.view, selection) || selection;\n if (!range || this.selectionRange.eq(range))\n return false;\n let local = hasSelection(this.dom, range);\n // Detect the situation where the browser has, on focus, moved the\n // selection to the start of the content element. Reset it to the\n // position from the editor state.\n if (local && !this.selectionChanged &&\n view.inputState.lastFocusTime > Date.now() - 200 &&\n view.inputState.lastTouchTime < Date.now() - 300 &&\n atElementStart(this.dom, range)) {\n this.view.inputState.lastFocusTime = 0;\n view.docView.updateSelection();\n return false;\n }\n this.selectionRange.setRange(range);\n if (local)\n this.selectionChanged = true;\n return true;\n }\n setSelectionRange(anchor, head) {\n this.selectionRange.set(anchor.node, anchor.offset, head.node, head.offset);\n this.selectionChanged = false;\n }\n clearSelectionRange() {\n this.selectionRange.set(null, 0, null, 0);\n }\n listenForScroll() {\n this.parentCheck = -1;\n let i = 0, changed = null;\n for (let dom = this.dom; dom;) {\n if (dom.nodeType == 1) {\n if (!changed && i < this.scrollTargets.length && this.scrollTargets[i] == dom)\n i++;\n else if (!changed)\n changed = this.scrollTargets.slice(0, i);\n if (changed)\n changed.push(dom);\n dom = dom.assignedSlot || dom.parentNode;\n }\n else if (dom.nodeType == 11) { // Shadow root\n dom = dom.host;\n }\n else {\n break;\n }\n }\n if (i < this.scrollTargets.length && !changed)\n changed = this.scrollTargets.slice(0, i);\n if (changed) {\n for (let dom of this.scrollTargets)\n dom.removeEventListener(\"scroll\", this.onScroll);\n for (let dom of this.scrollTargets = changed)\n dom.addEventListener(\"scroll\", this.onScroll);\n }\n }\n ignore(f) {\n if (!this.active)\n return f();\n try {\n this.stop();\n return f();\n }\n finally {\n this.start();\n this.clear();\n }\n }\n start() {\n if (this.active)\n return;\n this.observer.observe(this.dom, observeOptions);\n if (useCharData)\n this.dom.addEventListener(\"DOMCharacterDataModified\", this.onCharData);\n this.active = true;\n }\n stop() {\n if (!this.active)\n return;\n this.active = false;\n this.observer.disconnect();\n if (useCharData)\n this.dom.removeEventListener(\"DOMCharacterDataModified\", this.onCharData);\n }\n // Throw away any pending changes\n clear() {\n this.processRecords();\n this.queue.length = 0;\n this.selectionChanged = false;\n }\n // Chrome Android, especially in combination with GBoard, not only\n // doesn't reliably fire regular key events, but also often\n // surrounds the effect of enter or backspace with a bunch of\n // composition events that, when interrupted, cause text duplication\n // or other kinds of corruption. This hack makes the editor back off\n // from handling DOM changes for a moment when such a key is\n // detected (via beforeinput or keydown), and then tries to flush\n // them or, if that has no effect, dispatches the given key.\n delayAndroidKey(key, keyCode) {\n var _a;\n if (!this.delayedAndroidKey) {\n let flush = () => {\n let key = this.delayedAndroidKey;\n if (key) {\n this.clearDelayedAndroidKey();\n this.view.inputState.lastKeyCode = key.keyCode;\n this.view.inputState.lastKeyTime = Date.now();\n let flushed = this.flush();\n if (!flushed && key.force)\n dispatchKey(this.dom, key.key, key.keyCode);\n }\n };\n this.flushingAndroidKey = this.view.win.requestAnimationFrame(flush);\n }\n // Since backspace beforeinput is sometimes signalled spuriously,\n // Enter always takes precedence.\n if (!this.delayedAndroidKey || key == \"Enter\")\n this.delayedAndroidKey = {\n key, keyCode,\n // Only run the key handler when no changes are detected if\n // this isn't coming right after another change, in which case\n // it is probably part of a weird chain of updates, and should\n // be ignored if it returns the DOM to its previous state.\n force: this.lastChange < Date.now() - 50 || !!((_a = this.delayedAndroidKey) === null || _a === void 0 ? void 0 : _a.force)\n };\n }\n clearDelayedAndroidKey() {\n this.win.cancelAnimationFrame(this.flushingAndroidKey);\n this.delayedAndroidKey = null;\n this.flushingAndroidKey = -1;\n }\n flushSoon() {\n if (this.delayedFlush < 0)\n this.delayedFlush = this.view.win.requestAnimationFrame(() => { this.delayedFlush = -1; this.flush(); });\n }\n forceFlush() {\n if (this.delayedFlush >= 0) {\n this.view.win.cancelAnimationFrame(this.delayedFlush);\n this.delayedFlush = -1;\n }\n this.flush();\n }\n pendingRecords() {\n for (let mut of this.observer.takeRecords())\n this.queue.push(mut);\n return this.queue;\n }\n processRecords() {\n let records = this.pendingRecords();\n if (records.length)\n this.queue = [];\n let from = -1, to = -1, typeOver = false;\n for (let record of records) {\n let range = this.readMutation(record);\n if (!range)\n continue;\n if (range.typeOver)\n typeOver = true;\n if (from == -1) {\n ({ from, to } = range);\n }\n else {\n from = Math.min(range.from, from);\n to = Math.max(range.to, to);\n }\n }\n return { from, to, typeOver };\n }\n readChange() {\n let { from, to, typeOver } = this.processRecords();\n let newSel = this.selectionChanged && hasSelection(this.dom, this.selectionRange);\n if (from < 0 && !newSel)\n return null;\n if (from > -1)\n this.lastChange = Date.now();\n this.view.inputState.lastFocusTime = 0;\n this.selectionChanged = false;\n let change = new DOMChange(this.view, from, to, typeOver);\n this.view.docView.domChanged = { newSel: change.newSel ? change.newSel.main : null };\n return change;\n }\n // Apply pending changes, if any\n flush(readSelection = true) {\n // Completely hold off flushing when pending keys are set—the code\n // managing those will make sure processRecords is called and the\n // view is resynchronized after\n if (this.delayedFlush >= 0 || this.delayedAndroidKey)\n return false;\n if (readSelection)\n this.readSelectionRange();\n let domChange = this.readChange();\n if (!domChange) {\n this.view.requestMeasure();\n return false;\n }\n let startState = this.view.state;\n let handled = applyDOMChange(this.view, domChange);\n // The view wasn't updated but DOM/selection changes were seen. Reset the view.\n if (this.view.state == startState &&\n (domChange.domChanged || domChange.newSel && !domChange.newSel.main.eq(this.view.state.selection.main)))\n this.view.update([]);\n return handled;\n }\n readMutation(rec) {\n let cView = this.view.docView.nearest(rec.target);\n if (!cView || cView.ignoreMutation(rec))\n return null;\n cView.markDirty(rec.type == \"attributes\");\n if (rec.type == \"attributes\")\n cView.flags |= 4 /* ViewFlag.AttrsDirty */;\n if (rec.type == \"childList\") {\n let childBefore = findChild(cView, rec.previousSibling || rec.target.previousSibling, -1);\n let childAfter = findChild(cView, rec.nextSibling || rec.target.nextSibling, 1);\n return { from: childBefore ? cView.posAfter(childBefore) : cView.posAtStart,\n to: childAfter ? cView.posBefore(childAfter) : cView.posAtEnd, typeOver: false };\n }\n else if (rec.type == \"characterData\") {\n return { from: cView.posAtStart, to: cView.posAtEnd, typeOver: rec.target.nodeValue == rec.oldValue };\n }\n else {\n return null;\n }\n }\n setWindow(win) {\n if (win != this.win) {\n this.removeWindowListeners(this.win);\n this.win = win;\n this.addWindowListeners(this.win);\n }\n }\n addWindowListeners(win) {\n win.addEventListener(\"resize\", this.onResize);\n if (this.printQuery) {\n if (this.printQuery.addEventListener)\n this.printQuery.addEventListener(\"change\", this.onPrint);\n else\n this.printQuery.addListener(this.onPrint);\n }\n else\n win.addEventListener(\"beforeprint\", this.onPrint);\n win.addEventListener(\"scroll\", this.onScroll);\n win.document.addEventListener(\"selectionchange\", this.onSelectionChange);\n }\n removeWindowListeners(win) {\n win.removeEventListener(\"scroll\", this.onScroll);\n win.removeEventListener(\"resize\", this.onResize);\n if (this.printQuery) {\n if (this.printQuery.removeEventListener)\n this.printQuery.removeEventListener(\"change\", this.onPrint);\n else\n this.printQuery.removeListener(this.onPrint);\n }\n else\n win.removeEventListener(\"beforeprint\", this.onPrint);\n win.document.removeEventListener(\"selectionchange\", this.onSelectionChange);\n }\n update(update) {\n if (this.editContext) {\n this.editContext.update(update);\n if (update.startState.facet(editable) != update.state.facet(editable))\n update.view.contentDOM.editContext = update.state.facet(editable) ? this.editContext.editContext : null;\n }\n }\n destroy() {\n var _a, _b, _c;\n this.stop();\n (_a = this.intersection) === null || _a === void 0 ? void 0 : _a.disconnect();\n (_b = this.gapIntersection) === null || _b === void 0 ? void 0 : _b.disconnect();\n (_c = this.resizeScroll) === null || _c === void 0 ? void 0 : _c.disconnect();\n for (let dom of this.scrollTargets)\n dom.removeEventListener(\"scroll\", this.onScroll);\n this.removeWindowListeners(this.win);\n clearTimeout(this.parentCheck);\n clearTimeout(this.resizeTimeout);\n this.win.cancelAnimationFrame(this.delayedFlush);\n this.win.cancelAnimationFrame(this.flushingAndroidKey);\n if (this.editContext) {\n this.view.contentDOM.editContext = null;\n this.editContext.destroy();\n }\n }\n}\nfunction findChild(cView, dom, dir) {\n while (dom) {\n let curView = ContentView.get(dom);\n if (curView && curView.parent == cView)\n return curView;\n let parent = dom.parentNode;\n dom = parent != cView.dom ? parent : dir > 0 ? dom.nextSibling : dom.previousSibling;\n }\n return null;\n}\nfunction buildSelectionRangeFromRange(view, range) {\n let anchorNode = range.startContainer, anchorOffset = range.startOffset;\n let focusNode = range.endContainer, focusOffset = range.endOffset;\n let curAnchor = view.docView.domAtPos(view.state.selection.main.anchor);\n // Since such a range doesn't distinguish between anchor and head,\n // use a heuristic that flips it around if its end matches the\n // current anchor.\n if (isEquivalentPosition(curAnchor.node, curAnchor.offset, focusNode, focusOffset))\n [anchorNode, anchorOffset, focusNode, focusOffset] = [focusNode, focusOffset, anchorNode, anchorOffset];\n return { anchorNode, anchorOffset, focusNode, focusOffset };\n}\n// Used to work around a Safari Selection/shadow DOM bug (#414)\nfunction safariSelectionRangeHack(view, selection) {\n if (selection.getComposedRanges) {\n let range = selection.getComposedRanges(view.root)[0];\n if (range)\n return buildSelectionRangeFromRange(view, range);\n }\n let found = null;\n // Because Safari (at least in 2018-2021) doesn't provide regular\n // access to the selection inside a shadowroot, we have to perform a\n // ridiculous hack to get at it—using `execCommand` to trigger a\n // `beforeInput` event so that we can read the target range from the\n // event.\n function read(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n found = event.getTargetRanges()[0];\n }\n view.contentDOM.addEventListener(\"beforeinput\", read, true);\n view.dom.ownerDocument.execCommand(\"indent\");\n view.contentDOM.removeEventListener(\"beforeinput\", read, true);\n return found ? buildSelectionRangeFromRange(view, found) : null;\n}\nclass EditContextManager {\n constructor(view) {\n // The document window for which the text in the context is\n // maintained. For large documents, this may be smaller than the\n // editor document. This window always includes the selection head.\n this.from = 0;\n this.to = 0;\n // When applying a transaction, this is used to compare the change\n // made to the context content to the change in the transaction in\n // order to make the minimal changes to the context (since touching\n // that sometimes breaks series of multiple edits made for a single\n // user action on some Android keyboards)\n this.pendingContextChange = null;\n this.handlers = Object.create(null);\n // Kludge to work around the fact that EditContext does not respond\n // well to having its content updated during a composition (see #1472)\n this.composing = null;\n this.resetRange(view.state);\n let context = this.editContext = new window.EditContext({\n text: view.state.doc.sliceString(this.from, this.to),\n selectionStart: this.toContextPos(Math.max(this.from, Math.min(this.to, view.state.selection.main.anchor))),\n selectionEnd: this.toContextPos(view.state.selection.main.head)\n });\n this.handlers.textupdate = e => {\n let main = view.state.selection.main, { anchor, head } = main;\n let from = this.toEditorPos(e.updateRangeStart), to = this.toEditorPos(e.updateRangeEnd);\n if (view.inputState.composing >= 0 && !this.composing)\n this.composing = { contextBase: e.updateRangeStart, editorBase: from, drifted: false };\n let deletes = to - from > e.text.length;\n // If the window doesn't include the anchor, assume changes\n // adjacent to a side go up to the anchor.\n if (from == this.from && anchor < this.from)\n from = anchor;\n else if (to == this.to && anchor > this.to)\n to = anchor;\n let diff = findDiff(view.state.sliceDoc(from, to), e.text, (deletes ? main.from : main.to) - from, deletes ? \"end\" : null);\n // Edit contexts sometimes fire empty changes\n if (!diff) {\n let newSel = EditorSelection.single(this.toEditorPos(e.selectionStart), this.toEditorPos(e.selectionEnd));\n if (!newSel.main.eq(main))\n view.dispatch({ selection: newSel, userEvent: \"select\" });\n return;\n }\n let change = { from: diff.from + from, to: diff.toA + from,\n insert: Text.of(e.text.slice(diff.from, diff.toB).split(\"\\n\")) };\n if ((browser.mac || browser.android) && change.from == head - 1 &&\n /^\\. ?$/.test(e.text) && view.contentDOM.getAttribute(\"autocorrect\") == \"off\")\n change = { from, to, insert: Text.of([e.text.replace(\".\", \" \")]) };\n this.pendingContextChange = change;\n if (!view.state.readOnly) {\n let newLen = this.to - this.from + (change.to - change.from + change.insert.length);\n applyDOMChangeInner(view, change, EditorSelection.single(this.toEditorPos(e.selectionStart, newLen), this.toEditorPos(e.selectionEnd, newLen)));\n }\n // If the transaction didn't flush our change, revert it so\n // that the context is in sync with the editor state again.\n if (this.pendingContextChange) {\n this.revertPending(view.state);\n this.setSelection(view.state);\n }\n // Work around missed compositionend events. See https://discuss.codemirror.net/t/a/9514\n if (change.from < change.to && !change.insert.length && view.inputState.composing >= 0 &&\n !/[\\\\p{Alphabetic}\\\\p{Number}_]/.test(context.text.slice(Math.max(0, e.updateRangeStart - 1), Math.min(context.text.length, e.updateRangeStart + 1))))\n this.handlers.compositionend(e);\n };\n this.handlers.characterboundsupdate = e => {\n let rects = [], prev = null;\n for (let i = this.toEditorPos(e.rangeStart), end = this.toEditorPos(e.rangeEnd); i < end; i++) {\n let rect = view.coordsForChar(i);\n prev = (rect && new DOMRect(rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top))\n || prev || new DOMRect;\n rects.push(prev);\n }\n context.updateCharacterBounds(e.rangeStart, rects);\n };\n this.handlers.textformatupdate = e => {\n let deco = [];\n for (let format of e.getTextFormats()) {\n let lineStyle = format.underlineStyle, thickness = format.underlineThickness;\n if (!/none/i.test(lineStyle) && !/none/i.test(thickness)) {\n let from = this.toEditorPos(format.rangeStart), to = this.toEditorPos(format.rangeEnd);\n if (from < to) {\n // These values changed from capitalized custom strings to lower-case CSS keywords in 2025\n let style = `text-decoration: underline ${/^[a-z]/.test(lineStyle) ? lineStyle + \" \" : lineStyle == \"Dashed\" ? \"dashed \" : lineStyle == \"Squiggle\" ? \"wavy \" : \"\"}${/thin/i.test(thickness) ? 1 : 2}px`;\n deco.push(Decoration.mark({ attributes: { style } }).range(from, to));\n }\n }\n }\n view.dispatch({ effects: setEditContextFormatting.of(Decoration.set(deco)) });\n };\n this.handlers.compositionstart = () => {\n if (view.inputState.composing < 0) {\n view.inputState.composing = 0;\n view.inputState.compositionFirstChange = true;\n }\n };\n this.handlers.compositionend = () => {\n view.inputState.composing = -1;\n view.inputState.compositionFirstChange = null;\n if (this.composing) {\n let { drifted } = this.composing;\n this.composing = null;\n if (drifted)\n this.reset(view.state);\n }\n };\n for (let event in this.handlers)\n context.addEventListener(event, this.handlers[event]);\n this.measureReq = { read: view => {\n this.editContext.updateControlBounds(view.contentDOM.getBoundingClientRect());\n let sel = getSelection(view.root);\n if (sel && sel.rangeCount)\n this.editContext.updateSelectionBounds(sel.getRangeAt(0).getBoundingClientRect());\n } };\n }\n applyEdits(update) {\n let off = 0, abort = false, pending = this.pendingContextChange;\n update.changes.iterChanges((fromA, toA, _fromB, _toB, insert) => {\n if (abort)\n return;\n let dLen = insert.length - (toA - fromA);\n if (pending && toA >= pending.to) {\n if (pending.from == fromA && pending.to == toA && pending.insert.eq(insert)) {\n pending = this.pendingContextChange = null; // Match\n off += dLen;\n this.to += dLen;\n return;\n }\n else { // Mismatch, revert\n pending = null;\n this.revertPending(update.state);\n }\n }\n fromA += off;\n toA += off;\n if (toA <= this.from) { // Before the window\n this.from += dLen;\n this.to += dLen;\n }\n else if (fromA < this.to) { // Overlaps with window\n if (fromA < this.from || toA > this.to || (this.to - this.from) + insert.length > 30000 /* CxVp.MaxSize */) {\n abort = true;\n return;\n }\n this.editContext.updateText(this.toContextPos(fromA), this.toContextPos(toA), insert.toString());\n this.to += dLen;\n }\n off += dLen;\n });\n if (pending && !abort)\n this.revertPending(update.state);\n return !abort;\n }\n update(update) {\n let reverted = this.pendingContextChange, startSel = update.startState.selection.main;\n if (this.composing &&\n (this.composing.drifted ||\n (!update.changes.touchesRange(startSel.from, startSel.to) &&\n update.transactions.some(tr => !tr.isUserEvent(\"input.type\") && tr.changes.touchesRange(this.from, this.to))))) {\n this.composing.drifted = true;\n this.composing.editorBase = update.changes.mapPos(this.composing.editorBase);\n }\n else if (!this.applyEdits(update) || !this.rangeIsValid(update.state)) {\n this.pendingContextChange = null;\n this.reset(update.state);\n }\n else if (update.docChanged || update.selectionSet || reverted) {\n this.setSelection(update.state);\n }\n if (update.geometryChanged || update.docChanged || update.selectionSet)\n update.view.requestMeasure(this.measureReq);\n }\n resetRange(state) {\n let { head } = state.selection.main;\n this.from = Math.max(0, head - 10000 /* CxVp.Margin */);\n this.to = Math.min(state.doc.length, head + 10000 /* CxVp.Margin */);\n }\n reset(state) {\n this.resetRange(state);\n this.editContext.updateText(0, this.editContext.text.length, state.doc.sliceString(this.from, this.to));\n this.setSelection(state);\n }\n revertPending(state) {\n let pending = this.pendingContextChange;\n this.pendingContextChange = null;\n this.editContext.updateText(this.toContextPos(pending.from), this.toContextPos(pending.from + pending.insert.length), state.doc.sliceString(pending.from, pending.to));\n }\n setSelection(state) {\n let { main } = state.selection;\n let start = this.toContextPos(Math.max(this.from, Math.min(this.to, main.anchor)));\n let end = this.toContextPos(main.head);\n if (this.editContext.selectionStart != start || this.editContext.selectionEnd != end)\n this.editContext.updateSelection(start, end);\n }\n rangeIsValid(state) {\n let { head } = state.selection.main;\n return !(this.from > 0 && head - this.from < 500 /* CxVp.MinMargin */ ||\n this.to < state.doc.length && this.to - head < 500 /* CxVp.MinMargin */ ||\n this.to - this.from > 10000 /* CxVp.Margin */ * 3);\n }\n toEditorPos(contextPos, clipLen = this.to - this.from) {\n contextPos = Math.min(contextPos, clipLen);\n let c = this.composing;\n return c && c.drifted ? c.editorBase + (contextPos - c.contextBase) : contextPos + this.from;\n }\n toContextPos(editorPos) {\n let c = this.composing;\n return c && c.drifted ? c.contextBase + (editorPos - c.editorBase) : editorPos - this.from;\n }\n destroy() {\n for (let event in this.handlers)\n this.editContext.removeEventListener(event, this.handlers[event]);\n }\n}\n\n// The editor's update state machine looks something like this:\n//\n// Idle → Updating ⇆ Idle (unchecked) → Measuring → Idle\n// ↑ ↓\n// Updating (measure)\n//\n// The difference between 'Idle' and 'Idle (unchecked)' lies in\n// whether a layout check has been scheduled. A regular update through\n// the `update` method updates the DOM in a write-only fashion, and\n// relies on a check (scheduled with `requestAnimationFrame`) to make\n// sure everything is where it should be and the viewport covers the\n// visible code. That check continues to measure and then optionally\n// update until it reaches a coherent state.\n/**\nAn editor view represents the editor's user interface. It holds\nthe editable DOM surface, and possibly other elements such as the\nline number gutter. It handles events and dispatches state\ntransactions for editing actions.\n*/\nclass EditorView {\n /**\n The current editor state.\n */\n get state() { return this.viewState.state; }\n /**\n To be able to display large documents without consuming too much\n memory or overloading the browser, CodeMirror only draws the\n code that is visible (plus a margin around it) to the DOM. This\n property tells you the extent of the current drawn viewport, in\n document positions.\n */\n get viewport() { return this.viewState.viewport; }\n /**\n When there are, for example, large collapsed ranges in the\n viewport, its size can be a lot bigger than the actual visible\n content. Thus, if you are doing something like styling the\n content in the viewport, it is preferable to only do so for\n these ranges, which are the subset of the viewport that is\n actually drawn.\n */\n get visibleRanges() { return this.viewState.visibleRanges; }\n /**\n Returns false when the editor is entirely scrolled out of view\n or otherwise hidden.\n */\n get inView() { return this.viewState.inView; }\n /**\n Indicates whether the user is currently composing text via\n [IME](https://en.wikipedia.org/wiki/Input_method), and at least\n one change has been made in the current composition.\n */\n get composing() { return !!this.inputState && this.inputState.composing > 0; }\n /**\n Indicates whether the user is currently in composing state. Note\n that on some platforms, like Android, this will be the case a\n lot, since just putting the cursor on a word starts a\n composition there.\n */\n get compositionStarted() { return !!this.inputState && this.inputState.composing >= 0; }\n /**\n The document or shadow root that the view lives in.\n */\n get root() { return this._root; }\n /**\n @internal\n */\n get win() { return this.dom.ownerDocument.defaultView || window; }\n /**\n Construct a new view. You'll want to either provide a `parent`\n option, or put `view.dom` into your document after creating a\n view, so that the user can see the editor.\n */\n constructor(config = {}) {\n var _a;\n this.plugins = [];\n this.pluginMap = new Map;\n this.editorAttrs = {};\n this.contentAttrs = {};\n this.bidiCache = [];\n this.destroyed = false;\n /**\n @internal\n */\n this.updateState = 2 /* UpdateState.Updating */;\n /**\n @internal\n */\n this.measureScheduled = -1;\n /**\n @internal\n */\n this.measureRequests = [];\n this.contentDOM = document.createElement(\"div\");\n this.scrollDOM = document.createElement(\"div\");\n this.scrollDOM.tabIndex = -1;\n this.scrollDOM.className = \"cm-scroller\";\n this.scrollDOM.appendChild(this.contentDOM);\n this.announceDOM = document.createElement(\"div\");\n this.announceDOM.className = \"cm-announced\";\n this.announceDOM.setAttribute(\"aria-live\", \"polite\");\n this.dom = document.createElement(\"div\");\n this.dom.appendChild(this.announceDOM);\n this.dom.appendChild(this.scrollDOM);\n if (config.parent)\n config.parent.appendChild(this.dom);\n let { dispatch } = config;\n this.dispatchTransactions = config.dispatchTransactions ||\n (dispatch && ((trs) => trs.forEach(tr => dispatch(tr, this)))) ||\n ((trs) => this.update(trs));\n this.dispatch = this.dispatch.bind(this);\n this._root = (config.root || getRoot(config.parent) || document);\n this.viewState = new ViewState(config.state || EditorState.create(config));\n if (config.scrollTo && config.scrollTo.is(scrollIntoView))\n this.viewState.scrollTarget = config.scrollTo.value.clip(this.viewState.state);\n this.plugins = this.state.facet(viewPlugin).map(spec => new PluginInstance(spec));\n for (let plugin of this.plugins)\n plugin.update(this);\n this.observer = new DOMObserver(this);\n this.inputState = new InputState(this);\n this.inputState.ensureHandlers(this.plugins);\n this.docView = new DocView(this);\n this.mountStyles();\n this.updateAttrs();\n this.updateState = 0 /* UpdateState.Idle */;\n this.requestMeasure();\n if ((_a = document.fonts) === null || _a === void 0 ? void 0 : _a.ready)\n document.fonts.ready.then(() => this.requestMeasure());\n }\n dispatch(...input) {\n let trs = input.length == 1 && input[0] instanceof Transaction ? input\n : input.length == 1 && Array.isArray(input[0]) ? input[0]\n : [this.state.update(...input)];\n this.dispatchTransactions(trs, this);\n }\n /**\n Update the view for the given array of transactions. This will\n update the visible document and selection to match the state\n produced by the transactions, and notify view plugins of the\n change. You should usually call\n [`dispatch`](https://codemirror.net/6/docs/ref/#view.EditorView.dispatch) instead, which uses this\n as a primitive.\n */\n update(transactions) {\n if (this.updateState != 0 /* UpdateState.Idle */)\n throw new Error(\"Calls to EditorView.update are not allowed while an update is in progress\");\n let redrawn = false, attrsChanged = false, update;\n let state = this.state;\n for (let tr of transactions) {\n if (tr.startState != state)\n throw new RangeError(\"Trying to update state with a transaction that doesn't start from the previous state.\");\n state = tr.state;\n }\n if (this.destroyed) {\n this.viewState.state = state;\n return;\n }\n let focus = this.hasFocus, focusFlag = 0, dispatchFocus = null;\n if (transactions.some(tr => tr.annotation(isFocusChange))) {\n this.inputState.notifiedFocused = focus;\n // If a focus-change transaction is being dispatched, set this update flag.\n focusFlag = 1 /* UpdateFlag.Focus */;\n }\n else if (focus != this.inputState.notifiedFocused) {\n this.inputState.notifiedFocused = focus;\n // Schedule a separate focus transaction if necessary, otherwise\n // add a flag to this update\n dispatchFocus = focusChangeTransaction(state, focus);\n if (!dispatchFocus)\n focusFlag = 1 /* UpdateFlag.Focus */;\n }\n // If there was a pending DOM change, eagerly read it and try to\n // apply it after the given transactions.\n let pendingKey = this.observer.delayedAndroidKey, domChange = null;\n if (pendingKey) {\n this.observer.clearDelayedAndroidKey();\n domChange = this.observer.readChange();\n // Only try to apply DOM changes if the transactions didn't\n // change the doc or selection.\n if (domChange && !this.state.doc.eq(state.doc) || !this.state.selection.eq(state.selection))\n domChange = null;\n }\n else {\n this.observer.clear();\n }\n // When the phrases change, redraw the editor\n if (state.facet(EditorState.phrases) != this.state.facet(EditorState.phrases))\n return this.setState(state);\n update = ViewUpdate.create(this, state, transactions);\n update.flags |= focusFlag;\n let scrollTarget = this.viewState.scrollTarget;\n try {\n this.updateState = 2 /* UpdateState.Updating */;\n for (let tr of transactions) {\n if (scrollTarget)\n scrollTarget = scrollTarget.map(tr.changes);\n if (tr.scrollIntoView) {\n let { main } = tr.state.selection;\n scrollTarget = new ScrollTarget(main.empty ? main : EditorSelection.cursor(main.head, main.head > main.anchor ? -1 : 1));\n }\n for (let e of tr.effects)\n if (e.is(scrollIntoView))\n scrollTarget = e.value.clip(this.state);\n }\n this.viewState.update(update, scrollTarget);\n this.bidiCache = CachedOrder.update(this.bidiCache, update.changes);\n if (!update.empty) {\n this.updatePlugins(update);\n this.inputState.update(update);\n }\n redrawn = this.docView.update(update);\n if (this.state.facet(styleModule) != this.styleModules)\n this.mountStyles();\n attrsChanged = this.updateAttrs();\n this.showAnnouncements(transactions);\n this.docView.updateSelection(redrawn, transactions.some(tr => tr.isUserEvent(\"select.pointer\")));\n }\n finally {\n this.updateState = 0 /* UpdateState.Idle */;\n }\n if (update.startState.facet(theme) != update.state.facet(theme))\n this.viewState.mustMeasureContent = true;\n if (redrawn || attrsChanged || scrollTarget || this.viewState.mustEnforceCursorAssoc || this.viewState.mustMeasureContent)\n this.requestMeasure();\n if (redrawn)\n this.docViewUpdate();\n if (!update.empty)\n for (let listener of this.state.facet(updateListener)) {\n try {\n listener(update);\n }\n catch (e) {\n logException(this.state, e, \"update listener\");\n }\n }\n if (dispatchFocus || domChange)\n Promise.resolve().then(() => {\n if (dispatchFocus && this.state == dispatchFocus.startState)\n this.dispatch(dispatchFocus);\n if (domChange) {\n if (!applyDOMChange(this, domChange) && pendingKey.force)\n dispatchKey(this.contentDOM, pendingKey.key, pendingKey.keyCode);\n }\n });\n }\n /**\n Reset the view to the given state. (This will cause the entire\n document to be redrawn and all view plugins to be reinitialized,\n so you should probably only use it when the new state isn't\n derived from the old state. Otherwise, use\n [`dispatch`](https://codemirror.net/6/docs/ref/#view.EditorView.dispatch) instead.)\n */\n setState(newState) {\n if (this.updateState != 0 /* UpdateState.Idle */)\n throw new Error(\"Calls to EditorView.setState are not allowed while an update is in progress\");\n if (this.destroyed) {\n this.viewState.state = newState;\n return;\n }\n this.updateState = 2 /* UpdateState.Updating */;\n let hadFocus = this.hasFocus;\n try {\n for (let plugin of this.plugins)\n plugin.destroy(this);\n this.viewState = new ViewState(newState);\n this.plugins = newState.facet(viewPlugin).map(spec => new PluginInstance(spec));\n this.pluginMap.clear();\n for (let plugin of this.plugins)\n plugin.update(this);\n this.docView.destroy();\n this.docView = new DocView(this);\n this.inputState.ensureHandlers(this.plugins);\n this.mountStyles();\n this.updateAttrs();\n this.bidiCache = [];\n }\n finally {\n this.updateState = 0 /* UpdateState.Idle */;\n }\n if (hadFocus)\n this.focus();\n this.requestMeasure();\n }\n updatePlugins(update) {\n let prevSpecs = update.startState.facet(viewPlugin), specs = update.state.facet(viewPlugin);\n if (prevSpecs != specs) {\n let newPlugins = [];\n for (let spec of specs) {\n let found = prevSpecs.indexOf(spec);\n if (found < 0) {\n newPlugins.push(new PluginInstance(spec));\n }\n else {\n let plugin = this.plugins[found];\n plugin.mustUpdate = update;\n newPlugins.push(plugin);\n }\n }\n for (let plugin of this.plugins)\n if (plugin.mustUpdate != update)\n plugin.destroy(this);\n this.plugins = newPlugins;\n this.pluginMap.clear();\n }\n else {\n for (let p of this.plugins)\n p.mustUpdate = update;\n }\n for (let i = 0; i < this.plugins.length; i++)\n this.plugins[i].update(this);\n if (prevSpecs != specs)\n this.inputState.ensureHandlers(this.plugins);\n }\n docViewUpdate() {\n for (let plugin of this.plugins) {\n let val = plugin.value;\n if (val && val.docViewUpdate) {\n try {\n val.docViewUpdate(this);\n }\n catch (e) {\n logException(this.state, e, \"doc view update listener\");\n }\n }\n }\n }\n /**\n @internal\n */\n measure(flush = true) {\n if (this.destroyed)\n return;\n if (this.measureScheduled > -1)\n this.win.cancelAnimationFrame(this.measureScheduled);\n if (this.observer.delayedAndroidKey) {\n this.measureScheduled = -1;\n this.requestMeasure();\n return;\n }\n this.measureScheduled = 0; // Prevent requestMeasure calls from scheduling another animation frame\n if (flush)\n this.observer.forceFlush();\n let updated = null;\n let sDOM = this.scrollDOM, scrollTop = sDOM.scrollTop * this.scaleY;\n let { scrollAnchorPos, scrollAnchorHeight } = this.viewState;\n if (Math.abs(scrollTop - this.viewState.scrollTop) > 1)\n scrollAnchorHeight = -1;\n this.viewState.scrollAnchorHeight = -1;\n try {\n for (let i = 0;; i++) {\n if (scrollAnchorHeight < 0) {\n if (isScrolledToBottom(sDOM)) {\n scrollAnchorPos = -1;\n scrollAnchorHeight = this.viewState.heightMap.height;\n }\n else {\n let block = this.viewState.scrollAnchorAt(scrollTop);\n scrollAnchorPos = block.from;\n scrollAnchorHeight = block.top;\n }\n }\n this.updateState = 1 /* UpdateState.Measuring */;\n let changed = this.viewState.measure(this);\n if (!changed && !this.measureRequests.length && this.viewState.scrollTarget == null)\n break;\n if (i > 5) {\n console.warn(this.measureRequests.length\n ? \"Measure loop restarted more than 5 times\"\n : \"Viewport failed to stabilize\");\n break;\n }\n let measuring = [];\n // Only run measure requests in this cycle when the viewport didn't change\n if (!(changed & 4 /* UpdateFlag.Viewport */))\n [this.measureRequests, measuring] = [measuring, this.measureRequests];\n let measured = measuring.map(m => {\n try {\n return m.read(this);\n }\n catch (e) {\n logException(this.state, e);\n return BadMeasure;\n }\n });\n let update = ViewUpdate.create(this, this.state, []), redrawn = false;\n update.flags |= changed;\n if (!updated)\n updated = update;\n else\n updated.flags |= changed;\n this.updateState = 2 /* UpdateState.Updating */;\n if (!update.empty) {\n this.updatePlugins(update);\n this.inputState.update(update);\n this.updateAttrs();\n redrawn = this.docView.update(update);\n if (redrawn)\n this.docViewUpdate();\n }\n for (let i = 0; i < measuring.length; i++)\n if (measured[i] != BadMeasure) {\n try {\n let m = measuring[i];\n if (m.write)\n m.write(measured[i], this);\n }\n catch (e) {\n logException(this.state, e);\n }\n }\n if (redrawn)\n this.docView.updateSelection(true);\n if (!update.viewportChanged && this.measureRequests.length == 0) {\n if (this.viewState.editorHeight) {\n if (this.viewState.scrollTarget) {\n this.docView.scrollIntoView(this.viewState.scrollTarget);\n this.viewState.scrollTarget = null;\n scrollAnchorHeight = -1;\n continue;\n }\n else {\n let newAnchorHeight = scrollAnchorPos < 0 ? this.viewState.heightMap.height :\n this.viewState.lineBlockAt(scrollAnchorPos).top;\n let diff = newAnchorHeight - scrollAnchorHeight;\n if (diff > 1 || diff < -1) {\n scrollTop = scrollTop + diff;\n sDOM.scrollTop = scrollTop / this.scaleY;\n scrollAnchorHeight = -1;\n continue;\n }\n }\n }\n break;\n }\n }\n }\n finally {\n this.updateState = 0 /* UpdateState.Idle */;\n this.measureScheduled = -1;\n }\n if (updated && !updated.empty)\n for (let listener of this.state.facet(updateListener))\n listener(updated);\n }\n /**\n Get the CSS classes for the currently active editor themes.\n */\n get themeClasses() {\n return baseThemeID + \" \" +\n (this.state.facet(darkTheme) ? baseDarkID : baseLightID) + \" \" +\n this.state.facet(theme);\n }\n updateAttrs() {\n let editorAttrs = attrsFromFacet(this, editorAttributes, {\n class: \"cm-editor\" + (this.hasFocus ? \" cm-focused \" : \" \") + this.themeClasses\n });\n let contentAttrs = {\n spellcheck: \"false\",\n autocorrect: \"off\",\n autocapitalize: \"off\",\n writingsuggestions: \"false\",\n translate: \"no\",\n contenteditable: !this.state.facet(editable) ? \"false\" : \"true\",\n class: \"cm-content\",\n style: `${browser.tabSize}: ${this.state.tabSize}`,\n role: \"textbox\",\n \"aria-multiline\": \"true\"\n };\n if (this.state.readOnly)\n contentAttrs[\"aria-readonly\"] = \"true\";\n attrsFromFacet(this, contentAttributes, contentAttrs);\n let changed = this.observer.ignore(() => {\n let changedContent = updateAttrs(this.contentDOM, this.contentAttrs, contentAttrs);\n let changedEditor = updateAttrs(this.dom, this.editorAttrs, editorAttrs);\n return changedContent || changedEditor;\n });\n this.editorAttrs = editorAttrs;\n this.contentAttrs = contentAttrs;\n return changed;\n }\n showAnnouncements(trs) {\n let first = true;\n for (let tr of trs)\n for (let effect of tr.effects)\n if (effect.is(EditorView.announce)) {\n if (first)\n this.announceDOM.textContent = \"\";\n first = false;\n let div = this.announceDOM.appendChild(document.createElement(\"div\"));\n div.textContent = effect.value;\n }\n }\n mountStyles() {\n this.styleModules = this.state.facet(styleModule);\n let nonce = this.state.facet(EditorView.cspNonce);\n StyleModule.mount(this.root, this.styleModules.concat(baseTheme$1).reverse(), nonce ? { nonce } : undefined);\n }\n readMeasured() {\n if (this.updateState == 2 /* UpdateState.Updating */)\n throw new Error(\"Reading the editor layout isn't allowed during an update\");\n if (this.updateState == 0 /* UpdateState.Idle */ && this.measureScheduled > -1)\n this.measure(false);\n }\n /**\n Schedule a layout measurement, optionally providing callbacks to\n do custom DOM measuring followed by a DOM write phase. Using\n this is preferable reading DOM layout directly from, for\n example, an event handler, because it'll make sure measuring and\n drawing done by other components is synchronized, avoiding\n unnecessary DOM layout computations.\n */\n requestMeasure(request) {\n if (this.measureScheduled < 0)\n this.measureScheduled = this.win.requestAnimationFrame(() => this.measure());\n if (request) {\n if (this.measureRequests.indexOf(request) > -1)\n return;\n if (request.key != null)\n for (let i = 0; i < this.measureRequests.length; i++) {\n if (this.measureRequests[i].key === request.key) {\n this.measureRequests[i] = request;\n return;\n }\n }\n this.measureRequests.push(request);\n }\n }\n /**\n Get the value of a specific plugin, if present. Note that\n plugins that crash can be dropped from a view, so even when you\n know you registered a given plugin, it is recommended to check\n the return value of this method.\n */\n plugin(plugin) {\n let known = this.pluginMap.get(plugin);\n if (known === undefined || known && known.plugin != plugin)\n this.pluginMap.set(plugin, known = this.plugins.find(p => p.plugin == plugin) || null);\n return known && known.update(this).value;\n }\n /**\n The top position of the document, in screen coordinates. This\n may be negative when the editor is scrolled down. Points\n directly to the top of the first line, not above the padding.\n */\n get documentTop() {\n return this.contentDOM.getBoundingClientRect().top + this.viewState.paddingTop;\n }\n /**\n Reports the padding above and below the document.\n */\n get documentPadding() {\n return { top: this.viewState.paddingTop, bottom: this.viewState.paddingBottom };\n }\n /**\n If the editor is transformed with CSS, this provides the scale\n along the X axis. Otherwise, it will just be 1. Note that\n transforms other than translation and scaling are not supported.\n */\n get scaleX() { return this.viewState.scaleX; }\n /**\n Provide the CSS transformed scale along the Y axis.\n */\n get scaleY() { return this.viewState.scaleY; }\n /**\n Find the text line or block widget at the given vertical\n position (which is interpreted as relative to the [top of the\n document](https://codemirror.net/6/docs/ref/#view.EditorView.documentTop)).\n */\n elementAtHeight(height) {\n this.readMeasured();\n return this.viewState.elementAtHeight(height);\n }\n /**\n Find the line block (see\n [`lineBlockAt`](https://codemirror.net/6/docs/ref/#view.EditorView.lineBlockAt)) at the given\n height, again interpreted relative to the [top of the\n document](https://codemirror.net/6/docs/ref/#view.EditorView.documentTop).\n */\n lineBlockAtHeight(height) {\n this.readMeasured();\n return this.viewState.lineBlockAtHeight(height);\n }\n /**\n Get the extent and vertical position of all [line\n blocks](https://codemirror.net/6/docs/ref/#view.EditorView.lineBlockAt) in the viewport. Positions\n are relative to the [top of the\n document](https://codemirror.net/6/docs/ref/#view.EditorView.documentTop);\n */\n get viewportLineBlocks() {\n return this.viewState.viewportLines;\n }\n /**\n Find the line block around the given document position. A line\n block is a range delimited on both sides by either a\n non-[hidden](https://codemirror.net/6/docs/ref/#view.Decoration^replace) line break, or the\n start/end of the document. It will usually just hold a line of\n text, but may be broken into multiple textblocks by block\n widgets.\n */\n lineBlockAt(pos) {\n return this.viewState.lineBlockAt(pos);\n }\n /**\n The editor's total content height.\n */\n get contentHeight() {\n return this.viewState.contentHeight;\n }\n /**\n Move a cursor position by [grapheme\n cluster](https://codemirror.net/6/docs/ref/#state.findClusterBreak). `forward` determines whether\n the motion is away from the line start, or towards it. In\n bidirectional text, the line is traversed in visual order, using\n the editor's [text direction](https://codemirror.net/6/docs/ref/#view.EditorView.textDirection).\n When the start position was the last one on the line, the\n returned position will be across the line break. If there is no\n further line, the original position is returned.\n \n By default, this method moves over a single cluster. The\n optional `by` argument can be used to move across more. It will\n be called with the first cluster as argument, and should return\n a predicate that determines, for each subsequent cluster,\n whether it should also be moved over.\n */\n moveByChar(start, forward, by) {\n return skipAtoms(this, start, moveByChar(this, start, forward, by));\n }\n /**\n Move a cursor position across the next group of either\n [letters](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer) or non-letter\n non-whitespace characters.\n */\n moveByGroup(start, forward) {\n return skipAtoms(this, start, moveByChar(this, start, forward, initial => byGroup(this, start.head, initial)));\n }\n /**\n Get the cursor position visually at the start or end of a line.\n Note that this may differ from the _logical_ position at its\n start or end (which is simply at `line.from`/`line.to`) if text\n at the start or end goes against the line's base text direction.\n */\n visualLineSide(line, end) {\n let order = this.bidiSpans(line), dir = this.textDirectionAt(line.from);\n let span = order[end ? order.length - 1 : 0];\n return EditorSelection.cursor(span.side(end, dir) + line.from, span.forward(!end, dir) ? 1 : -1);\n }\n /**\n Move to the next line boundary in the given direction. If\n `includeWrap` is true, line wrapping is on, and there is a\n further wrap point on the current line, the wrap point will be\n returned. Otherwise this function will return the start or end\n of the line.\n */\n moveToLineBoundary(start, forward, includeWrap = true) {\n return moveToLineBoundary(this, start, forward, includeWrap);\n }\n /**\n Move a cursor position vertically. When `distance` isn't given,\n it defaults to moving to the next line (including wrapped\n lines). Otherwise, `distance` should provide a positive distance\n in pixels.\n \n When `start` has a\n [`goalColumn`](https://codemirror.net/6/docs/ref/#state.SelectionRange.goalColumn), the vertical\n motion will use that as a target horizontal position. Otherwise,\n the cursor's own horizontal position is used. The returned\n cursor will have its goal column set to whichever column was\n used.\n */\n moveVertically(start, forward, distance) {\n return skipAtoms(this, start, moveVertically(this, start, forward, distance));\n }\n /**\n Find the DOM parent node and offset (child offset if `node` is\n an element, character offset when it is a text node) at the\n given document position.\n \n Note that for positions that aren't currently in\n `visibleRanges`, the resulting DOM position isn't necessarily\n meaningful (it may just point before or after a placeholder\n element).\n */\n domAtPos(pos) {\n return this.docView.domAtPos(pos);\n }\n /**\n Find the document position at the given DOM node. Can be useful\n for associating positions with DOM events. Will raise an error\n when `node` isn't part of the editor content.\n */\n posAtDOM(node, offset = 0) {\n return this.docView.posFromDOM(node, offset);\n }\n posAtCoords(coords, precise = true) {\n this.readMeasured();\n return posAtCoords(this, coords, precise);\n }\n /**\n Get the screen coordinates at the given document position.\n `side` determines whether the coordinates are based on the\n element before (-1) or after (1) the position (if no element is\n available on the given side, the method will transparently use\n another strategy to get reasonable coordinates).\n */\n coordsAtPos(pos, side = 1) {\n this.readMeasured();\n let rect = this.docView.coordsAt(pos, side);\n if (!rect || rect.left == rect.right)\n return rect;\n let line = this.state.doc.lineAt(pos), order = this.bidiSpans(line);\n let span = order[BidiSpan.find(order, pos - line.from, -1, side)];\n return flattenRect(rect, (span.dir == Direction.LTR) == (side > 0));\n }\n /**\n Return the rectangle around a given character. If `pos` does not\n point in front of a character that is in the viewport and\n rendered (i.e. not replaced, not a line break), this will return\n null. For space characters that are a line wrap point, this will\n return the position before the line break.\n */\n coordsForChar(pos) {\n this.readMeasured();\n return this.docView.coordsForChar(pos);\n }\n /**\n The default width of a character in the editor. May not\n accurately reflect the width of all characters (given variable\n width fonts or styling of invididual ranges).\n */\n get defaultCharacterWidth() { return this.viewState.heightOracle.charWidth; }\n /**\n The default height of a line in the editor. May not be accurate\n for all lines.\n */\n get defaultLineHeight() { return this.viewState.heightOracle.lineHeight; }\n /**\n The text direction\n ([`direction`](https://developer.mozilla.org/en-US/docs/Web/CSS/direction)\n CSS property) of the editor's content element.\n */\n get textDirection() { return this.viewState.defaultTextDirection; }\n /**\n Find the text direction of the block at the given position, as\n assigned by CSS. If\n [`perLineTextDirection`](https://codemirror.net/6/docs/ref/#view.EditorView^perLineTextDirection)\n isn't enabled, or the given position is outside of the viewport,\n this will always return the same as\n [`textDirection`](https://codemirror.net/6/docs/ref/#view.EditorView.textDirection). Note that\n this may trigger a DOM layout.\n */\n textDirectionAt(pos) {\n let perLine = this.state.facet(perLineTextDirection);\n if (!perLine || pos < this.viewport.from || pos > this.viewport.to)\n return this.textDirection;\n this.readMeasured();\n return this.docView.textDirectionAt(pos);\n }\n /**\n Whether this editor [wraps lines](https://codemirror.net/6/docs/ref/#view.EditorView.lineWrapping)\n (as determined by the\n [`white-space`](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space)\n CSS property of its content element).\n */\n get lineWrapping() { return this.viewState.heightOracle.lineWrapping; }\n /**\n Returns the bidirectional text structure of the given line\n (which should be in the current document) as an array of span\n objects. The order of these spans matches the [text\n direction](https://codemirror.net/6/docs/ref/#view.EditorView.textDirection)—if that is\n left-to-right, the leftmost spans come first, otherwise the\n rightmost spans come first.\n */\n bidiSpans(line) {\n if (line.length > MaxBidiLine)\n return trivialOrder(line.length);\n let dir = this.textDirectionAt(line.from), isolates;\n for (let entry of this.bidiCache) {\n if (entry.from == line.from && entry.dir == dir &&\n (entry.fresh || isolatesEq(entry.isolates, isolates = getIsolatedRanges(this, line))))\n return entry.order;\n }\n if (!isolates)\n isolates = getIsolatedRanges(this, line);\n let order = computeOrder(line.text, dir, isolates);\n this.bidiCache.push(new CachedOrder(line.from, line.to, dir, isolates, true, order));\n return order;\n }\n /**\n Check whether the editor has focus.\n */\n get hasFocus() {\n var _a;\n // Safari return false for hasFocus when the context menu is open\n // or closing, which leads us to ignore selection changes from the\n // context menu because it looks like the editor isn't focused.\n // This kludges around that.\n return (this.dom.ownerDocument.hasFocus() || browser.safari && ((_a = this.inputState) === null || _a === void 0 ? void 0 : _a.lastContextMenu) > Date.now() - 3e4) &&\n this.root.activeElement == this.contentDOM;\n }\n /**\n Put focus on the editor.\n */\n focus() {\n this.observer.ignore(() => {\n focusPreventScroll(this.contentDOM);\n this.docView.updateSelection();\n });\n }\n /**\n Update the [root](https://codemirror.net/6/docs/ref/##view.EditorViewConfig.root) in which the editor lives. This is only\n necessary when moving the editor's existing DOM to a new window or shadow root.\n */\n setRoot(root) {\n if (this._root != root) {\n this._root = root;\n this.observer.setWindow((root.nodeType == 9 ? root : root.ownerDocument).defaultView || window);\n this.mountStyles();\n }\n }\n /**\n Clean up this editor view, removing its element from the\n document, unregistering event handlers, and notifying\n plugins. The view instance can no longer be used after\n calling this.\n */\n destroy() {\n if (this.root.activeElement == this.contentDOM)\n this.contentDOM.blur();\n for (let plugin of this.plugins)\n plugin.destroy(this);\n this.plugins = [];\n this.inputState.destroy();\n this.docView.destroy();\n this.dom.remove();\n this.observer.destroy();\n if (this.measureScheduled > -1)\n this.win.cancelAnimationFrame(this.measureScheduled);\n this.destroyed = true;\n }\n /**\n Returns an effect that can be\n [added](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) to a transaction to\n cause it to scroll the given position or range into view.\n */\n static scrollIntoView(pos, options = {}) {\n return scrollIntoView.of(new ScrollTarget(typeof pos == \"number\" ? EditorSelection.cursor(pos) : pos, options.y, options.x, options.yMargin, options.xMargin));\n }\n /**\n Return an effect that resets the editor to its current (at the\n time this method was called) scroll position. Note that this\n only affects the editor's own scrollable element, not parents.\n See also\n [`EditorViewConfig.scrollTo`](https://codemirror.net/6/docs/ref/#view.EditorViewConfig.scrollTo).\n \n The effect should be used with a document identical to the one\n it was created for. Failing to do so is not an error, but may\n not scroll to the expected position. You can\n [map](https://codemirror.net/6/docs/ref/#state.StateEffect.map) the effect to account for changes.\n */\n scrollSnapshot() {\n let { scrollTop, scrollLeft } = this.scrollDOM;\n let ref = this.viewState.scrollAnchorAt(scrollTop);\n return scrollIntoView.of(new ScrollTarget(EditorSelection.cursor(ref.from), \"start\", \"start\", ref.top - scrollTop, scrollLeft, true));\n }\n /**\n Enable or disable tab-focus mode, which disables key bindings\n for Tab and Shift-Tab, letting the browser's default\n focus-changing behavior go through instead. This is useful to\n prevent trapping keyboard users in your editor.\n \n Without argument, this toggles the mode. With a boolean, it\n enables (true) or disables it (false). Given a number, it\n temporarily enables the mode until that number of milliseconds\n have passed or another non-Tab key is pressed.\n */\n setTabFocusMode(to) {\n if (to == null)\n this.inputState.tabFocusMode = this.inputState.tabFocusMode < 0 ? 0 : -1;\n else if (typeof to == \"boolean\")\n this.inputState.tabFocusMode = to ? 0 : -1;\n else if (this.inputState.tabFocusMode != 0)\n this.inputState.tabFocusMode = Date.now() + to;\n }\n /**\n Returns an extension that can be used to add DOM event handlers.\n The value should be an object mapping event names to handler\n functions. For any given event, such functions are ordered by\n extension precedence, and the first handler to return true will\n be assumed to have handled that event, and no other handlers or\n built-in behavior will be activated for it. These are registered\n on the [content element](https://codemirror.net/6/docs/ref/#view.EditorView.contentDOM), except\n for `scroll` handlers, which will be called any time the\n editor's [scroll element](https://codemirror.net/6/docs/ref/#view.EditorView.scrollDOM) or one of\n its parent nodes is scrolled.\n */\n static domEventHandlers(handlers) {\n return ViewPlugin.define(() => ({}), { eventHandlers: handlers });\n }\n /**\n Create an extension that registers DOM event observers. Contrary\n to event [handlers](https://codemirror.net/6/docs/ref/#view.EditorView^domEventHandlers),\n observers can't be prevented from running by a higher-precedence\n handler returning true. They also don't prevent other handlers\n and observers from running when they return true, and should not\n call `preventDefault`.\n */\n static domEventObservers(observers) {\n return ViewPlugin.define(() => ({}), { eventObservers: observers });\n }\n /**\n Create a theme extension. The first argument can be a\n [`style-mod`](https://github.com/marijnh/style-mod#documentation)\n style spec providing the styles for the theme. These will be\n prefixed with a generated class for the style.\n \n Because the selectors will be prefixed with a scope class, rule\n that directly match the editor's [wrapper\n element](https://codemirror.net/6/docs/ref/#view.EditorView.dom)—to which the scope class will be\n added—need to be explicitly differentiated by adding an `&` to\n the selector for that element—for example\n `&.cm-focused`.\n \n When `dark` is set to true, the theme will be marked as dark,\n which will cause the `&dark` rules from [base\n themes](https://codemirror.net/6/docs/ref/#view.EditorView^baseTheme) to be used (as opposed to\n `&light` when a light theme is active).\n */\n static theme(spec, options) {\n let prefix = StyleModule.newName();\n let result = [theme.of(prefix), styleModule.of(buildTheme(`.${prefix}`, spec))];\n if (options && options.dark)\n result.push(darkTheme.of(true));\n return result;\n }\n /**\n Create an extension that adds styles to the base theme. Like\n with [`theme`](https://codemirror.net/6/docs/ref/#view.EditorView^theme), use `&` to indicate the\n place of the editor wrapper element when directly targeting\n that. You can also use `&dark` or `&light` instead to only\n target editors with a dark or light theme.\n */\n static baseTheme(spec) {\n return Prec.lowest(styleModule.of(buildTheme(\".\" + baseThemeID, spec, lightDarkIDs)));\n }\n /**\n Retrieve an editor view instance from the view's DOM\n representation.\n */\n static findFromDOM(dom) {\n var _a;\n let content = dom.querySelector(\".cm-content\");\n let cView = content && ContentView.get(content) || ContentView.get(dom);\n return ((_a = cView === null || cView === void 0 ? void 0 : cView.rootView) === null || _a === void 0 ? void 0 : _a.view) || null;\n }\n}\n/**\nFacet to add a [style\nmodule](https://github.com/marijnh/style-mod#documentation) to\nan editor view. The view will ensure that the module is\nmounted in its [document\nroot](https://codemirror.net/6/docs/ref/#view.EditorView.constructor^config.root).\n*/\nEditorView.styleModule = styleModule;\n/**\nAn input handler can override the way changes to the editable\nDOM content are handled. Handlers are passed the document\npositions between which the change was found, and the new\ncontent. When one returns true, no further input handlers are\ncalled and the default behavior is prevented.\n\nThe `insert` argument can be used to get the default transaction\nthat would be applied for this input. This can be useful when\ndispatching the custom behavior as a separate transaction.\n*/\nEditorView.inputHandler = inputHandler;\n/**\nFunctions provided in this facet will be used to transform text\npasted or dropped into the editor.\n*/\nEditorView.clipboardInputFilter = clipboardInputFilter;\n/**\nTransform text copied or dragged from the editor.\n*/\nEditorView.clipboardOutputFilter = clipboardOutputFilter;\n/**\nScroll handlers can override how things are scrolled into view.\nIf they return `true`, no further handling happens for the\nscrolling. If they return false, the default scroll behavior is\napplied. Scroll handlers should never initiate editor updates.\n*/\nEditorView.scrollHandler = scrollHandler;\n/**\nThis facet can be used to provide functions that create effects\nto be dispatched when the editor's focus state changes.\n*/\nEditorView.focusChangeEffect = focusChangeEffect;\n/**\nBy default, the editor assumes all its content has the same\n[text direction](https://codemirror.net/6/docs/ref/#view.Direction). Configure this with a `true`\nvalue to make it read the text direction of every (rendered)\nline separately.\n*/\nEditorView.perLineTextDirection = perLineTextDirection;\n/**\nAllows you to provide a function that should be called when the\nlibrary catches an exception from an extension (mostly from view\nplugins, but may be used by other extensions to route exceptions\nfrom user-code-provided callbacks). This is mostly useful for\ndebugging and logging. See [`logException`](https://codemirror.net/6/docs/ref/#view.logException).\n*/\nEditorView.exceptionSink = exceptionSink;\n/**\nA facet that can be used to register a function to be called\nevery time the view updates.\n*/\nEditorView.updateListener = updateListener;\n/**\nFacet that controls whether the editor content DOM is editable.\nWhen its highest-precedence value is `false`, the element will\nnot have its `contenteditable` attribute set. (Note that this\ndoesn't affect API calls that change the editor content, even\nwhen those are bound to keys or buttons. See the\n[`readOnly`](https://codemirror.net/6/docs/ref/#state.EditorState.readOnly) facet for that.)\n*/\nEditorView.editable = editable;\n/**\nAllows you to influence the way mouse selection happens. The\nfunctions in this facet will be called for a `mousedown` event\non the editor, and can return an object that overrides the way a\nselection is computed from that mouse click or drag.\n*/\nEditorView.mouseSelectionStyle = mouseSelectionStyle;\n/**\nFacet used to configure whether a given selection drag event\nshould move or copy the selection. The given predicate will be\ncalled with the `mousedown` event, and can return `true` when\nthe drag should move the content.\n*/\nEditorView.dragMovesSelection = dragMovesSelection$1;\n/**\nFacet used to configure whether a given selecting click adds a\nnew range to the existing selection or replaces it entirely. The\ndefault behavior is to check `event.metaKey` on macOS, and\n`event.ctrlKey` elsewhere.\n*/\nEditorView.clickAddsSelectionRange = clickAddsSelectionRange;\n/**\nA facet that determines which [decorations](https://codemirror.net/6/docs/ref/#view.Decoration)\nare shown in the view. Decorations can be provided in two\nways—directly, or via a function that takes an editor view.\n\nOnly decoration sets provided directly are allowed to influence\nthe editor's vertical layout structure. The ones provided as\nfunctions are called _after_ the new viewport has been computed,\nand thus **must not** introduce block widgets or replacing\ndecorations that cover line breaks.\n\nIf you want decorated ranges to behave like atomic units for\ncursor motion and deletion purposes, also provide the range set\ncontaining the decorations to\n[`EditorView.atomicRanges`](https://codemirror.net/6/docs/ref/#view.EditorView^atomicRanges).\n*/\nEditorView.decorations = decorations;\n/**\nFacet that works much like\n[`decorations`](https://codemirror.net/6/docs/ref/#view.EditorView^decorations), but puts its\ninputs at the very bottom of the precedence stack, meaning mark\ndecorations provided here will only be split by other, partially\noverlapping \\`outerDecorations\\` ranges, and wrap around all\nregular decorations. Use this for mark elements that should, as\nmuch as possible, remain in one piece.\n*/\nEditorView.outerDecorations = outerDecorations;\n/**\nUsed to provide ranges that should be treated as atoms as far as\ncursor motion is concerned. This causes methods like\n[`moveByChar`](https://codemirror.net/6/docs/ref/#view.EditorView.moveByChar) and\n[`moveVertically`](https://codemirror.net/6/docs/ref/#view.EditorView.moveVertically) (and the\ncommands built on top of them) to skip across such regions when\na selection endpoint would enter them. This does _not_ prevent\ndirect programmatic [selection\nupdates](https://codemirror.net/6/docs/ref/#state.TransactionSpec.selection) from moving into such\nregions.\n*/\nEditorView.atomicRanges = atomicRanges;\n/**\nWhen range decorations add a `unicode-bidi: isolate` style, they\nshould also include a\n[`bidiIsolate`](https://codemirror.net/6/docs/ref/#view.MarkDecorationSpec.bidiIsolate) property\nin their decoration spec, and be exposed through this facet, so\nthat the editor can compute the proper text order. (Other values\nfor `unicode-bidi`, except of course `normal`, are not\nsupported.)\n*/\nEditorView.bidiIsolatedRanges = bidiIsolatedRanges;\n/**\nFacet that allows extensions to provide additional scroll\nmargins (space around the sides of the scrolling element that\nshould be considered invisible). This can be useful when the\nplugin introduces elements that cover part of that element (for\nexample a horizontally fixed gutter).\n*/\nEditorView.scrollMargins = scrollMargins;\n/**\nThis facet records whether a dark theme is active. The extension\nreturned by [`theme`](https://codemirror.net/6/docs/ref/#view.EditorView^theme) automatically\nincludes an instance of this when the `dark` option is set to\ntrue.\n*/\nEditorView.darkTheme = darkTheme;\n/**\nProvides a Content Security Policy nonce to use when creating\nthe style sheets for the editor. Holds the empty string when no\nnonce has been provided.\n*/\nEditorView.cspNonce = /*@__PURE__*/Facet.define({ combine: values => values.length ? values[0] : \"\" });\n/**\nFacet that provides additional DOM attributes for the editor's\neditable DOM element.\n*/\nEditorView.contentAttributes = contentAttributes;\n/**\nFacet that provides DOM attributes for the editor's outer\nelement.\n*/\nEditorView.editorAttributes = editorAttributes;\n/**\nAn extension that enables line wrapping in the editor (by\nsetting CSS `white-space` to `pre-wrap` in the content).\n*/\nEditorView.lineWrapping = /*@__PURE__*/EditorView.contentAttributes.of({ \"class\": \"cm-lineWrapping\" });\n/**\nState effect used to include screen reader announcements in a\ntransaction. These will be added to the DOM in a visually hidden\nelement with `aria-live=\"polite\"` set, and should be used to\ndescribe effects that are visually obvious but may not be\nnoticed by screen reader users (such as moving to the next\nsearch match).\n*/\nEditorView.announce = /*@__PURE__*/StateEffect.define();\n// Maximum line length for which we compute accurate bidi info\nconst MaxBidiLine = 4096;\nconst BadMeasure = {};\nclass CachedOrder {\n constructor(from, to, dir, isolates, fresh, order) {\n this.from = from;\n this.to = to;\n this.dir = dir;\n this.isolates = isolates;\n this.fresh = fresh;\n this.order = order;\n }\n static update(cache, changes) {\n if (changes.empty && !cache.some(c => c.fresh))\n return cache;\n let result = [], lastDir = cache.length ? cache[cache.length - 1].dir : Direction.LTR;\n for (let i = Math.max(0, cache.length - 10); i < cache.length; i++) {\n let entry = cache[i];\n if (entry.dir == lastDir && !changes.touchesRange(entry.from, entry.to))\n result.push(new CachedOrder(changes.mapPos(entry.from, 1), changes.mapPos(entry.to, -1), entry.dir, entry.isolates, false, entry.order));\n }\n return result;\n }\n}\nfunction attrsFromFacet(view, facet, base) {\n for (let sources = view.state.facet(facet), i = sources.length - 1; i >= 0; i--) {\n let source = sources[i], value = typeof source == \"function\" ? source(view) : source;\n if (value)\n combineAttrs(value, base);\n }\n return base;\n}\n\nconst currentPlatform = browser.mac ? \"mac\" : browser.windows ? \"win\" : browser.linux ? \"linux\" : \"key\";\nfunction normalizeKeyName(name, platform) {\n const parts = name.split(/-(?!$)/);\n let result = parts[parts.length - 1];\n if (result == \"Space\")\n result = \" \";\n let alt, ctrl, shift, meta;\n for (let i = 0; i < parts.length - 1; ++i) {\n const mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod))\n meta = true;\n else if (/^a(lt)?$/i.test(mod))\n alt = true;\n else if (/^(c|ctrl|control)$/i.test(mod))\n ctrl = true;\n else if (/^s(hift)?$/i.test(mod))\n shift = true;\n else if (/^mod$/i.test(mod)) {\n if (platform == \"mac\")\n meta = true;\n else\n ctrl = true;\n }\n else\n throw new Error(\"Unrecognized modifier name: \" + mod);\n }\n if (alt)\n result = \"Alt-\" + result;\n if (ctrl)\n result = \"Ctrl-\" + result;\n if (meta)\n result = \"Meta-\" + result;\n if (shift)\n result = \"Shift-\" + result;\n return result;\n}\nfunction modifiers(name, event, shift) {\n if (event.altKey)\n name = \"Alt-\" + name;\n if (event.ctrlKey)\n name = \"Ctrl-\" + name;\n if (event.metaKey)\n name = \"Meta-\" + name;\n if (shift !== false && event.shiftKey)\n name = \"Shift-\" + name;\n return name;\n}\nconst handleKeyEvents = /*@__PURE__*/Prec.default(/*@__PURE__*/EditorView.domEventHandlers({\n keydown(event, view) {\n return runHandlers(getKeymap(view.state), event, view, \"editor\");\n }\n}));\n/**\nFacet used for registering keymaps.\n\nYou can add multiple keymaps to an editor. Their priorities\ndetermine their precedence (the ones specified early or with high\npriority get checked first). When a handler has returned `true`\nfor a given key, no further handlers are called.\n*/\nconst keymap = /*@__PURE__*/Facet.define({ enables: handleKeyEvents });\nconst Keymaps = /*@__PURE__*/new WeakMap();\n// This is hidden behind an indirection, rather than directly computed\n// by the facet, to keep internal types out of the facet's type.\nfunction getKeymap(state) {\n let bindings = state.facet(keymap);\n let map = Keymaps.get(bindings);\n if (!map)\n Keymaps.set(bindings, map = buildKeymap(bindings.reduce((a, b) => a.concat(b), [])));\n return map;\n}\n/**\nRun the key handlers registered for a given scope. The event\nobject should be a `\"keydown\"` event. Returns true if any of the\nhandlers handled it.\n*/\nfunction runScopeHandlers(view, event, scope) {\n return runHandlers(getKeymap(view.state), event, view, scope);\n}\nlet storedPrefix = null;\nconst PrefixTimeout = 4000;\nfunction buildKeymap(bindings, platform = currentPlatform) {\n let bound = Object.create(null);\n let isPrefix = Object.create(null);\n let checkPrefix = (name, is) => {\n let current = isPrefix[name];\n if (current == null)\n isPrefix[name] = is;\n else if (current != is)\n throw new Error(\"Key binding \" + name + \" is used both as a regular binding and as a multi-stroke prefix\");\n };\n let add = (scope, key, command, preventDefault, stopPropagation) => {\n var _a, _b;\n let scopeObj = bound[scope] || (bound[scope] = Object.create(null));\n let parts = key.split(/ (?!$)/).map(k => normalizeKeyName(k, platform));\n for (let i = 1; i < parts.length; i++) {\n let prefix = parts.slice(0, i).join(\" \");\n checkPrefix(prefix, true);\n if (!scopeObj[prefix])\n scopeObj[prefix] = {\n preventDefault: true,\n stopPropagation: false,\n run: [(view) => {\n let ourObj = storedPrefix = { view, prefix, scope };\n setTimeout(() => { if (storedPrefix == ourObj)\n storedPrefix = null; }, PrefixTimeout);\n return true;\n }]\n };\n }\n let full = parts.join(\" \");\n checkPrefix(full, false);\n let binding = scopeObj[full] || (scopeObj[full] = {\n preventDefault: false,\n stopPropagation: false,\n run: ((_b = (_a = scopeObj._any) === null || _a === void 0 ? void 0 : _a.run) === null || _b === void 0 ? void 0 : _b.slice()) || []\n });\n if (command)\n binding.run.push(command);\n if (preventDefault)\n binding.preventDefault = true;\n if (stopPropagation)\n binding.stopPropagation = true;\n };\n for (let b of bindings) {\n let scopes = b.scope ? b.scope.split(\" \") : [\"editor\"];\n if (b.any)\n for (let scope of scopes) {\n let scopeObj = bound[scope] || (bound[scope] = Object.create(null));\n if (!scopeObj._any)\n scopeObj._any = { preventDefault: false, stopPropagation: false, run: [] };\n let { any } = b;\n for (let key in scopeObj)\n scopeObj[key].run.push(view => any(view, currentKeyEvent));\n }\n let name = b[platform] || b.key;\n if (!name)\n continue;\n for (let scope of scopes) {\n add(scope, name, b.run, b.preventDefault, b.stopPropagation);\n if (b.shift)\n add(scope, \"Shift-\" + name, b.shift, b.preventDefault, b.stopPropagation);\n }\n }\n return bound;\n}\nlet currentKeyEvent = null;\nfunction runHandlers(map, event, view, scope) {\n currentKeyEvent = event;\n let name = keyName(event);\n let charCode = codePointAt(name, 0), isChar = codePointSize(charCode) == name.length && name != \" \";\n let prefix = \"\", handled = false, prevented = false, stopPropagation = false;\n if (storedPrefix && storedPrefix.view == view && storedPrefix.scope == scope) {\n prefix = storedPrefix.prefix + \" \";\n if (modifierCodes.indexOf(event.keyCode) < 0) {\n prevented = true;\n storedPrefix = null;\n }\n }\n let ran = new Set;\n let runFor = (binding) => {\n if (binding) {\n for (let cmd of binding.run)\n if (!ran.has(cmd)) {\n ran.add(cmd);\n if (cmd(view)) {\n if (binding.stopPropagation)\n stopPropagation = true;\n return true;\n }\n }\n if (binding.preventDefault) {\n if (binding.stopPropagation)\n stopPropagation = true;\n prevented = true;\n }\n }\n return false;\n };\n let scopeObj = map[scope], baseName, shiftName;\n if (scopeObj) {\n if (runFor(scopeObj[prefix + modifiers(name, event, !isChar)])) {\n handled = true;\n }\n else if (isChar && (event.altKey || event.metaKey || event.ctrlKey) &&\n // Ctrl-Alt may be used for AltGr on Windows\n !(browser.windows && event.ctrlKey && event.altKey) &&\n // Alt-combinations on macOS tend to be typed characters\n !(browser.mac && event.altKey && !(event.ctrlKey || event.metaKey)) &&\n (baseName = base[event.keyCode]) && baseName != name) {\n if (runFor(scopeObj[prefix + modifiers(baseName, event, true)])) {\n handled = true;\n }\n else if (event.shiftKey && (shiftName = shift[event.keyCode]) != name && shiftName != baseName &&\n runFor(scopeObj[prefix + modifiers(shiftName, event, false)])) {\n handled = true;\n }\n }\n else if (isChar && event.shiftKey &&\n runFor(scopeObj[prefix + modifiers(name, event, true)])) {\n handled = true;\n }\n if (!handled && runFor(scopeObj._any))\n handled = true;\n }\n if (prevented)\n handled = true;\n if (handled && stopPropagation)\n event.stopPropagation();\n currentKeyEvent = null;\n return handled;\n}\n\n/**\nImplementation of [`LayerMarker`](https://codemirror.net/6/docs/ref/#view.LayerMarker) that creates\na rectangle at a given set of coordinates.\n*/\nclass RectangleMarker {\n /**\n Create a marker with the given class and dimensions. If `width`\n is null, the DOM element will get no width style.\n */\n constructor(className, \n /**\n The left position of the marker (in pixels, document-relative).\n */\n left, \n /**\n The top position of the marker.\n */\n top, \n /**\n The width of the marker, or null if it shouldn't get a width assigned.\n */\n width, \n /**\n The height of the marker.\n */\n height) {\n this.className = className;\n this.left = left;\n this.top = top;\n this.width = width;\n this.height = height;\n }\n draw() {\n let elt = document.createElement(\"div\");\n elt.className = this.className;\n this.adjust(elt);\n return elt;\n }\n update(elt, prev) {\n if (prev.className != this.className)\n return false;\n this.adjust(elt);\n return true;\n }\n adjust(elt) {\n elt.style.left = this.left + \"px\";\n elt.style.top = this.top + \"px\";\n if (this.width != null)\n elt.style.width = this.width + \"px\";\n elt.style.height = this.height + \"px\";\n }\n eq(p) {\n return this.left == p.left && this.top == p.top && this.width == p.width && this.height == p.height &&\n this.className == p.className;\n }\n /**\n Create a set of rectangles for the given selection range,\n assigning them theclass`className`. Will create a single\n rectangle for empty ranges, and a set of selection-style\n rectangles covering the range's content (in a bidi-aware\n way) for non-empty ones.\n */\n static forRange(view, className, range) {\n if (range.empty) {\n let pos = view.coordsAtPos(range.head, range.assoc || 1);\n if (!pos)\n return [];\n let base = getBase(view);\n return [new RectangleMarker(className, pos.left - base.left, pos.top - base.top, null, pos.bottom - pos.top)];\n }\n else {\n return rectanglesForRange(view, className, range);\n }\n }\n}\nfunction getBase(view) {\n let rect = view.scrollDOM.getBoundingClientRect();\n let left = view.textDirection == Direction.LTR ? rect.left : rect.right - view.scrollDOM.clientWidth * view.scaleX;\n return { left: left - view.scrollDOM.scrollLeft * view.scaleX, top: rect.top - view.scrollDOM.scrollTop * view.scaleY };\n}\nfunction wrappedLine(view, pos, side, inside) {\n let coords = view.coordsAtPos(pos, side * 2);\n if (!coords)\n return inside;\n let editorRect = view.dom.getBoundingClientRect();\n let y = (coords.top + coords.bottom) / 2;\n let left = view.posAtCoords({ x: editorRect.left + 1, y });\n let right = view.posAtCoords({ x: editorRect.right - 1, y });\n if (left == null || right == null)\n return inside;\n return { from: Math.max(inside.from, Math.min(left, right)), to: Math.min(inside.to, Math.max(left, right)) };\n}\nfunction rectanglesForRange(view, className, range) {\n if (range.to <= view.viewport.from || range.from >= view.viewport.to)\n return [];\n let from = Math.max(range.from, view.viewport.from), to = Math.min(range.to, view.viewport.to);\n let ltr = view.textDirection == Direction.LTR;\n let content = view.contentDOM, contentRect = content.getBoundingClientRect(), base = getBase(view);\n let lineElt = content.querySelector(\".cm-line\"), lineStyle = lineElt && window.getComputedStyle(lineElt);\n let leftSide = contentRect.left +\n (lineStyle ? parseInt(lineStyle.paddingLeft) + Math.min(0, parseInt(lineStyle.textIndent)) : 0);\n let rightSide = contentRect.right - (lineStyle ? parseInt(lineStyle.paddingRight) : 0);\n let startBlock = blockAt(view, from, 1), endBlock = blockAt(view, to, -1);\n let visualStart = startBlock.type == BlockType.Text ? startBlock : null;\n let visualEnd = endBlock.type == BlockType.Text ? endBlock : null;\n if (visualStart && (view.lineWrapping || startBlock.widgetLineBreaks))\n visualStart = wrappedLine(view, from, 1, visualStart);\n if (visualEnd && (view.lineWrapping || endBlock.widgetLineBreaks))\n visualEnd = wrappedLine(view, to, -1, visualEnd);\n if (visualStart && visualEnd && visualStart.from == visualEnd.from && visualStart.to == visualEnd.to) {\n return pieces(drawForLine(range.from, range.to, visualStart));\n }\n else {\n let top = visualStart ? drawForLine(range.from, null, visualStart) : drawForWidget(startBlock, false);\n let bottom = visualEnd ? drawForLine(null, range.to, visualEnd) : drawForWidget(endBlock, true);\n let between = [];\n if ((visualStart || startBlock).to < (visualEnd || endBlock).from - (visualStart && visualEnd ? 1 : 0) ||\n startBlock.widgetLineBreaks > 1 && top.bottom + view.defaultLineHeight / 2 < bottom.top)\n between.push(piece(leftSide, top.bottom, rightSide, bottom.top));\n else if (top.bottom < bottom.top && view.elementAtHeight((top.bottom + bottom.top) / 2).type == BlockType.Text)\n top.bottom = bottom.top = (top.bottom + bottom.top) / 2;\n return pieces(top).concat(between).concat(pieces(bottom));\n }\n function piece(left, top, right, bottom) {\n return new RectangleMarker(className, left - base.left, top - base.top, right - left, bottom - top);\n }\n function pieces({ top, bottom, horizontal }) {\n let pieces = [];\n for (let i = 0; i < horizontal.length; i += 2)\n pieces.push(piece(horizontal[i], top, horizontal[i + 1], bottom));\n return pieces;\n }\n // Gets passed from/to in line-local positions\n function drawForLine(from, to, line) {\n let top = 1e9, bottom = -1e9, horizontal = [];\n function addSpan(from, fromOpen, to, toOpen, dir) {\n // Passing 2/-2 is a kludge to force the view to return\n // coordinates on the proper side of block widgets, since\n // normalizing the side there, though appropriate for most\n // coordsAtPos queries, would break selection drawing.\n let fromCoords = view.coordsAtPos(from, (from == line.to ? -2 : 2));\n let toCoords = view.coordsAtPos(to, (to == line.from ? 2 : -2));\n if (!fromCoords || !toCoords)\n return;\n top = Math.min(fromCoords.top, toCoords.top, top);\n bottom = Math.max(fromCoords.bottom, toCoords.bottom, bottom);\n if (dir == Direction.LTR)\n horizontal.push(ltr && fromOpen ? leftSide : fromCoords.left, ltr && toOpen ? rightSide : toCoords.right);\n else\n horizontal.push(!ltr && toOpen ? leftSide : toCoords.left, !ltr && fromOpen ? rightSide : fromCoords.right);\n }\n let start = from !== null && from !== void 0 ? from : line.from, end = to !== null && to !== void 0 ? to : line.to;\n // Split the range by visible range and document line\n for (let r of view.visibleRanges)\n if (r.to > start && r.from < end) {\n for (let pos = Math.max(r.from, start), endPos = Math.min(r.to, end);;) {\n let docLine = view.state.doc.lineAt(pos);\n for (let span of view.bidiSpans(docLine)) {\n let spanFrom = span.from + docLine.from, spanTo = span.to + docLine.from;\n if (spanFrom >= endPos)\n break;\n if (spanTo > pos)\n addSpan(Math.max(spanFrom, pos), from == null && spanFrom <= start, Math.min(spanTo, endPos), to == null && spanTo >= end, span.dir);\n }\n pos = docLine.to + 1;\n if (pos >= endPos)\n break;\n }\n }\n if (horizontal.length == 0)\n addSpan(start, from == null, end, to == null, view.textDirection);\n return { top, bottom, horizontal };\n }\n function drawForWidget(block, top) {\n let y = contentRect.top + (top ? block.top : block.bottom);\n return { top: y, bottom: y, horizontal: [] };\n }\n}\nfunction sameMarker(a, b) {\n return a.constructor == b.constructor && a.eq(b);\n}\nclass LayerView {\n constructor(view, layer) {\n this.view = view;\n this.layer = layer;\n this.drawn = [];\n this.scaleX = 1;\n this.scaleY = 1;\n this.measureReq = { read: this.measure.bind(this), write: this.draw.bind(this) };\n this.dom = view.scrollDOM.appendChild(document.createElement(\"div\"));\n this.dom.classList.add(\"cm-layer\");\n if (layer.above)\n this.dom.classList.add(\"cm-layer-above\");\n if (layer.class)\n this.dom.classList.add(layer.class);\n this.scale();\n this.dom.setAttribute(\"aria-hidden\", \"true\");\n this.setOrder(view.state);\n view.requestMeasure(this.measureReq);\n if (layer.mount)\n layer.mount(this.dom, view);\n }\n update(update) {\n if (update.startState.facet(layerOrder) != update.state.facet(layerOrder))\n this.setOrder(update.state);\n if (this.layer.update(update, this.dom) || update.geometryChanged) {\n this.scale();\n update.view.requestMeasure(this.measureReq);\n }\n }\n docViewUpdate(view) {\n if (this.layer.updateOnDocViewUpdate !== false)\n view.requestMeasure(this.measureReq);\n }\n setOrder(state) {\n let pos = 0, order = state.facet(layerOrder);\n while (pos < order.length && order[pos] != this.layer)\n pos++;\n this.dom.style.zIndex = String((this.layer.above ? 150 : -1) - pos);\n }\n measure() {\n return this.layer.markers(this.view);\n }\n scale() {\n let { scaleX, scaleY } = this.view;\n if (scaleX != this.scaleX || scaleY != this.scaleY) {\n this.scaleX = scaleX;\n this.scaleY = scaleY;\n this.dom.style.transform = `scale(${1 / scaleX}, ${1 / scaleY})`;\n }\n }\n draw(markers) {\n if (markers.length != this.drawn.length || markers.some((p, i) => !sameMarker(p, this.drawn[i]))) {\n let old = this.dom.firstChild, oldI = 0;\n for (let marker of markers) {\n if (marker.update && old && marker.constructor && this.drawn[oldI].constructor &&\n marker.update(old, this.drawn[oldI])) {\n old = old.nextSibling;\n oldI++;\n }\n else {\n this.dom.insertBefore(marker.draw(), old);\n }\n }\n while (old) {\n let next = old.nextSibling;\n old.remove();\n old = next;\n }\n this.drawn = markers;\n if (browser.safari && browser.safari_version >= 26) // Issue #1600, 1627\n this.dom.style.display = this.dom.firstChild ? \"\" : \"none\";\n }\n }\n destroy() {\n if (this.layer.destroy)\n this.layer.destroy(this.dom, this.view);\n this.dom.remove();\n }\n}\nconst layerOrder = /*@__PURE__*/Facet.define();\n/**\nDefine a layer.\n*/\nfunction layer(config) {\n return [\n ViewPlugin.define(v => new LayerView(v, config)),\n layerOrder.of(config)\n ];\n}\n\nconst selectionConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n cursorBlinkRate: 1200,\n drawRangeCursor: true\n }, {\n cursorBlinkRate: (a, b) => Math.min(a, b),\n drawRangeCursor: (a, b) => a || b\n });\n }\n});\n/**\nReturns an extension that hides the browser's native selection and\ncursor, replacing the selection with a background behind the text\n(with the `cm-selectionBackground` class), and the\ncursors with elements overlaid over the code (using\n`cm-cursor-primary` and `cm-cursor-secondary`).\n\nThis allows the editor to display secondary selection ranges, and\ntends to produce a type of selection more in line with that users\nexpect in a text editor (the native selection styling will often\nleave gaps between lines and won't fill the horizontal space after\na line when the selection continues past it).\n\nIt does have a performance cost, in that it requires an extra DOM\nlayout cycle for many updates (the selection is drawn based on DOM\nlayout information that's only available after laying out the\ncontent).\n*/\nfunction drawSelection(config = {}) {\n return [\n selectionConfig.of(config),\n cursorLayer,\n selectionLayer,\n hideNativeSelection,\n nativeSelectionHidden.of(true)\n ];\n}\n/**\nRetrieve the [`drawSelection`](https://codemirror.net/6/docs/ref/#view.drawSelection) configuration\nfor this state. (Note that this will return a set of defaults even\nif `drawSelection` isn't enabled.)\n*/\nfunction getDrawSelectionConfig(state) {\n return state.facet(selectionConfig);\n}\nfunction configChanged(update) {\n return update.startState.facet(selectionConfig) != update.state.facet(selectionConfig);\n}\nconst cursorLayer = /*@__PURE__*/layer({\n above: true,\n markers(view) {\n let { state } = view, conf = state.facet(selectionConfig);\n let cursors = [];\n for (let r of state.selection.ranges) {\n let prim = r == state.selection.main;\n if (r.empty || conf.drawRangeCursor) {\n let className = prim ? \"cm-cursor cm-cursor-primary\" : \"cm-cursor cm-cursor-secondary\";\n let cursor = r.empty ? r : EditorSelection.cursor(r.head, r.head > r.anchor ? -1 : 1);\n for (let piece of RectangleMarker.forRange(view, className, cursor))\n cursors.push(piece);\n }\n }\n return cursors;\n },\n update(update, dom) {\n if (update.transactions.some(tr => tr.selection))\n dom.style.animationName = dom.style.animationName == \"cm-blink\" ? \"cm-blink2\" : \"cm-blink\";\n let confChange = configChanged(update);\n if (confChange)\n setBlinkRate(update.state, dom);\n return update.docChanged || update.selectionSet || confChange;\n },\n mount(dom, view) {\n setBlinkRate(view.state, dom);\n },\n class: \"cm-cursorLayer\"\n});\nfunction setBlinkRate(state, dom) {\n dom.style.animationDuration = state.facet(selectionConfig).cursorBlinkRate + \"ms\";\n}\nconst selectionLayer = /*@__PURE__*/layer({\n above: false,\n markers(view) {\n return view.state.selection.ranges.map(r => r.empty ? [] : RectangleMarker.forRange(view, \"cm-selectionBackground\", r))\n .reduce((a, b) => a.concat(b));\n },\n update(update, dom) {\n return update.docChanged || update.selectionSet || update.viewportChanged || configChanged(update);\n },\n class: \"cm-selectionLayer\"\n});\nconst hideNativeSelection = /*@__PURE__*/Prec.highest(/*@__PURE__*/EditorView.theme({\n \".cm-line\": {\n \"& ::selection, &::selection\": { backgroundColor: \"transparent !important\" },\n caretColor: \"transparent !important\"\n },\n \".cm-content\": {\n caretColor: \"transparent !important\",\n \"& :focus\": {\n caretColor: \"initial !important\",\n \"&::selection, & ::selection\": {\n backgroundColor: \"Highlight !important\"\n }\n }\n }\n}));\n\nconst setDropCursorPos = /*@__PURE__*/StateEffect.define({\n map(pos, mapping) { return pos == null ? null : mapping.mapPos(pos); }\n});\nconst dropCursorPos = /*@__PURE__*/StateField.define({\n create() { return null; },\n update(pos, tr) {\n if (pos != null)\n pos = tr.changes.mapPos(pos);\n return tr.effects.reduce((pos, e) => e.is(setDropCursorPos) ? e.value : pos, pos);\n }\n});\nconst drawDropCursor = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.cursor = null;\n this.measureReq = { read: this.readPos.bind(this), write: this.drawCursor.bind(this) };\n }\n update(update) {\n var _a;\n let cursorPos = update.state.field(dropCursorPos);\n if (cursorPos == null) {\n if (this.cursor != null) {\n (_a = this.cursor) === null || _a === void 0 ? void 0 : _a.remove();\n this.cursor = null;\n }\n }\n else {\n if (!this.cursor) {\n this.cursor = this.view.scrollDOM.appendChild(document.createElement(\"div\"));\n this.cursor.className = \"cm-dropCursor\";\n }\n if (update.startState.field(dropCursorPos) != cursorPos || update.docChanged || update.geometryChanged)\n this.view.requestMeasure(this.measureReq);\n }\n }\n readPos() {\n let { view } = this;\n let pos = view.state.field(dropCursorPos);\n let rect = pos != null && view.coordsAtPos(pos);\n if (!rect)\n return null;\n let outer = view.scrollDOM.getBoundingClientRect();\n return {\n left: rect.left - outer.left + view.scrollDOM.scrollLeft * view.scaleX,\n top: rect.top - outer.top + view.scrollDOM.scrollTop * view.scaleY,\n height: rect.bottom - rect.top\n };\n }\n drawCursor(pos) {\n if (this.cursor) {\n let { scaleX, scaleY } = this.view;\n if (pos) {\n this.cursor.style.left = pos.left / scaleX + \"px\";\n this.cursor.style.top = pos.top / scaleY + \"px\";\n this.cursor.style.height = pos.height / scaleY + \"px\";\n }\n else {\n this.cursor.style.left = \"-100000px\";\n }\n }\n }\n destroy() {\n if (this.cursor)\n this.cursor.remove();\n }\n setDropPos(pos) {\n if (this.view.state.field(dropCursorPos) != pos)\n this.view.dispatch({ effects: setDropCursorPos.of(pos) });\n }\n}, {\n eventObservers: {\n dragover(event) {\n this.setDropPos(this.view.posAtCoords({ x: event.clientX, y: event.clientY }));\n },\n dragleave(event) {\n if (event.target == this.view.contentDOM || !this.view.contentDOM.contains(event.relatedTarget))\n this.setDropPos(null);\n },\n dragend() {\n this.setDropPos(null);\n },\n drop() {\n this.setDropPos(null);\n }\n }\n});\n/**\nDraws a cursor at the current drop position when something is\ndragged over the editor.\n*/\nfunction dropCursor() {\n return [dropCursorPos, drawDropCursor];\n}\n\nfunction iterMatches(doc, re, from, to, f) {\n re.lastIndex = 0;\n for (let cursor = doc.iterRange(from, to), pos = from, m; !cursor.next().done; pos += cursor.value.length) {\n if (!cursor.lineBreak)\n while (m = re.exec(cursor.value))\n f(pos + m.index, m);\n }\n}\nfunction matchRanges(view, maxLength) {\n let visible = view.visibleRanges;\n if (visible.length == 1 && visible[0].from == view.viewport.from &&\n visible[0].to == view.viewport.to)\n return visible;\n let result = [];\n for (let { from, to } of visible) {\n from = Math.max(view.state.doc.lineAt(from).from, from - maxLength);\n to = Math.min(view.state.doc.lineAt(to).to, to + maxLength);\n if (result.length && result[result.length - 1].to >= from)\n result[result.length - 1].to = to;\n else\n result.push({ from, to });\n }\n return result;\n}\n/**\nHelper class used to make it easier to maintain decorations on\nvisible code that matches a given regular expression. To be used\nin a [view plugin](https://codemirror.net/6/docs/ref/#view.ViewPlugin). Instances of this object\nrepresent a matching configuration.\n*/\nclass MatchDecorator {\n /**\n Create a decorator.\n */\n constructor(config) {\n const { regexp, decoration, decorate, boundary, maxLength = 1000 } = config;\n if (!regexp.global)\n throw new RangeError(\"The regular expression given to MatchDecorator should have its 'g' flag set\");\n this.regexp = regexp;\n if (decorate) {\n this.addMatch = (match, view, from, add) => decorate(add, from, from + match[0].length, match, view);\n }\n else if (typeof decoration == \"function\") {\n this.addMatch = (match, view, from, add) => {\n let deco = decoration(match, view, from);\n if (deco)\n add(from, from + match[0].length, deco);\n };\n }\n else if (decoration) {\n this.addMatch = (match, _view, from, add) => add(from, from + match[0].length, decoration);\n }\n else {\n throw new RangeError(\"Either 'decorate' or 'decoration' should be provided to MatchDecorator\");\n }\n this.boundary = boundary;\n this.maxLength = maxLength;\n }\n /**\n Compute the full set of decorations for matches in the given\n view's viewport. You'll want to call this when initializing your\n plugin.\n */\n createDeco(view) {\n let build = new RangeSetBuilder(), add = build.add.bind(build);\n for (let { from, to } of matchRanges(view, this.maxLength))\n iterMatches(view.state.doc, this.regexp, from, to, (from, m) => this.addMatch(m, view, from, add));\n return build.finish();\n }\n /**\n Update a set of decorations for a view update. `deco` _must_ be\n the set of decorations produced by _this_ `MatchDecorator` for\n the view state before the update.\n */\n updateDeco(update, deco) {\n let changeFrom = 1e9, changeTo = -1;\n if (update.docChanged)\n update.changes.iterChanges((_f, _t, from, to) => {\n if (to >= update.view.viewport.from && from <= update.view.viewport.to) {\n changeFrom = Math.min(from, changeFrom);\n changeTo = Math.max(to, changeTo);\n }\n });\n if (update.viewportMoved || changeTo - changeFrom > 1000)\n return this.createDeco(update.view);\n if (changeTo > -1)\n return this.updateRange(update.view, deco.map(update.changes), changeFrom, changeTo);\n return deco;\n }\n updateRange(view, deco, updateFrom, updateTo) {\n for (let r of view.visibleRanges) {\n let from = Math.max(r.from, updateFrom), to = Math.min(r.to, updateTo);\n if (to >= from) {\n let fromLine = view.state.doc.lineAt(from), toLine = fromLine.to < to ? view.state.doc.lineAt(to) : fromLine;\n let start = Math.max(r.from, fromLine.from), end = Math.min(r.to, toLine.to);\n if (this.boundary) {\n for (; from > fromLine.from; from--)\n if (this.boundary.test(fromLine.text[from - 1 - fromLine.from])) {\n start = from;\n break;\n }\n for (; to < toLine.to; to++)\n if (this.boundary.test(toLine.text[to - toLine.from])) {\n end = to;\n break;\n }\n }\n let ranges = [], m;\n let add = (from, to, deco) => ranges.push(deco.range(from, to));\n if (fromLine == toLine) {\n this.regexp.lastIndex = start - fromLine.from;\n while ((m = this.regexp.exec(fromLine.text)) && m.index < end - fromLine.from)\n this.addMatch(m, view, m.index + fromLine.from, add);\n }\n else {\n iterMatches(view.state.doc, this.regexp, start, end, (from, m) => this.addMatch(m, view, from, add));\n }\n deco = deco.update({ filterFrom: start, filterTo: end, filter: (from, to) => from < start || to > end, add: ranges });\n }\n }\n return deco;\n }\n}\n\nconst UnicodeRegexpSupport = /x/.unicode != null ? \"gu\" : \"g\";\nconst Specials = /*@__PURE__*/new RegExp(\"[\\u0000-\\u0008\\u000a-\\u001f\\u007f-\\u009f\\u00ad\\u061c\\u200b\\u200e\\u200f\\u2028\\u2029\\u202d\\u202e\\u2066\\u2067\\u2069\\ufeff\\ufff9-\\ufffc]\", UnicodeRegexpSupport);\nconst Names = {\n 0: \"null\",\n 7: \"bell\",\n 8: \"backspace\",\n 10: \"newline\",\n 11: \"vertical tab\",\n 13: \"carriage return\",\n 27: \"escape\",\n 8203: \"zero width space\",\n 8204: \"zero width non-joiner\",\n 8205: \"zero width joiner\",\n 8206: \"left-to-right mark\",\n 8207: \"right-to-left mark\",\n 8232: \"line separator\",\n 8237: \"left-to-right override\",\n 8238: \"right-to-left override\",\n 8294: \"left-to-right isolate\",\n 8295: \"right-to-left isolate\",\n 8297: \"pop directional isolate\",\n 8233: \"paragraph separator\",\n 65279: \"zero width no-break space\",\n 65532: \"object replacement\"\n};\nlet _supportsTabSize = null;\nfunction supportsTabSize() {\n var _a;\n if (_supportsTabSize == null && typeof document != \"undefined\" && document.body) {\n let styles = document.body.style;\n _supportsTabSize = ((_a = styles.tabSize) !== null && _a !== void 0 ? _a : styles.MozTabSize) != null;\n }\n return _supportsTabSize || false;\n}\nconst specialCharConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n let config = combineConfig(configs, {\n render: null,\n specialChars: Specials,\n addSpecialChars: null\n });\n if (config.replaceTabs = !supportsTabSize())\n config.specialChars = new RegExp(\"\\t|\" + config.specialChars.source, UnicodeRegexpSupport);\n if (config.addSpecialChars)\n config.specialChars = new RegExp(config.specialChars.source + \"|\" + config.addSpecialChars.source, UnicodeRegexpSupport);\n return config;\n }\n});\n/**\nReturns an extension that installs highlighting of special\ncharacters.\n*/\nfunction highlightSpecialChars(\n/**\nConfiguration options.\n*/\nconfig = {}) {\n return [specialCharConfig.of(config), specialCharPlugin()];\n}\nlet _plugin = null;\nfunction specialCharPlugin() {\n return _plugin || (_plugin = ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.decorations = Decoration.none;\n this.decorationCache = Object.create(null);\n this.decorator = this.makeDecorator(view.state.facet(specialCharConfig));\n this.decorations = this.decorator.createDeco(view);\n }\n makeDecorator(conf) {\n return new MatchDecorator({\n regexp: conf.specialChars,\n decoration: (m, view, pos) => {\n let { doc } = view.state;\n let code = codePointAt(m[0], 0);\n if (code == 9) {\n let line = doc.lineAt(pos);\n let size = view.state.tabSize, col = countColumn(line.text, size, pos - line.from);\n return Decoration.replace({\n widget: new TabWidget((size - (col % size)) * this.view.defaultCharacterWidth / this.view.scaleX)\n });\n }\n return this.decorationCache[code] ||\n (this.decorationCache[code] = Decoration.replace({ widget: new SpecialCharWidget(conf, code) }));\n },\n boundary: conf.replaceTabs ? undefined : /[^]/\n });\n }\n update(update) {\n let conf = update.state.facet(specialCharConfig);\n if (update.startState.facet(specialCharConfig) != conf) {\n this.decorator = this.makeDecorator(conf);\n this.decorations = this.decorator.createDeco(update.view);\n }\n else {\n this.decorations = this.decorator.updateDeco(update, this.decorations);\n }\n }\n }, {\n decorations: v => v.decorations\n }));\n}\nconst DefaultPlaceholder = \"\\u2022\";\n// Assigns placeholder characters from the Control Pictures block to\n// ASCII control characters\nfunction placeholder$1(code) {\n if (code >= 32)\n return DefaultPlaceholder;\n if (code == 10)\n return \"\\u2424\";\n return String.fromCharCode(9216 + code);\n}\nclass SpecialCharWidget extends WidgetType {\n constructor(options, code) {\n super();\n this.options = options;\n this.code = code;\n }\n eq(other) { return other.code == this.code; }\n toDOM(view) {\n let ph = placeholder$1(this.code);\n let desc = view.state.phrase(\"Control character\") + \" \" + (Names[this.code] || \"0x\" + this.code.toString(16));\n let custom = this.options.render && this.options.render(this.code, desc, ph);\n if (custom)\n return custom;\n let span = document.createElement(\"span\");\n span.textContent = ph;\n span.title = desc;\n span.setAttribute(\"aria-label\", desc);\n span.className = \"cm-specialChar\";\n return span;\n }\n ignoreEvent() { return false; }\n}\nclass TabWidget extends WidgetType {\n constructor(width) {\n super();\n this.width = width;\n }\n eq(other) { return other.width == this.width; }\n toDOM() {\n let span = document.createElement(\"span\");\n span.textContent = \"\\t\";\n span.className = \"cm-tab\";\n span.style.width = this.width + \"px\";\n return span;\n }\n ignoreEvent() { return false; }\n}\n\nconst plugin = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor() {\n this.height = 1000;\n this.attrs = { style: \"padding-bottom: 1000px\" };\n }\n update(update) {\n let { view } = update;\n let height = view.viewState.editorHeight -\n view.defaultLineHeight - view.documentPadding.top - 0.5;\n if (height >= 0 && height != this.height) {\n this.height = height;\n this.attrs = { style: `padding-bottom: ${height}px` };\n }\n }\n});\n/**\nReturns an extension that makes sure the content has a bottom\nmargin equivalent to the height of the editor, minus one line\nheight, so that every line in the document can be scrolled to the\ntop of the editor.\n\nThis is only meaningful when the editor is scrollable, and should\nnot be enabled in editors that take the size of their content.\n*/\nfunction scrollPastEnd() {\n return [plugin, contentAttributes.of(view => { var _a; return ((_a = view.plugin(plugin)) === null || _a === void 0 ? void 0 : _a.attrs) || null; })];\n}\n\n/**\nMark lines that have a cursor on them with the `\"cm-activeLine\"`\nDOM class.\n*/\nfunction highlightActiveLine() {\n return activeLineHighlighter;\n}\nconst lineDeco = /*@__PURE__*/Decoration.line({ class: \"cm-activeLine\" });\nconst activeLineHighlighter = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.decorations = this.getDeco(view);\n }\n update(update) {\n if (update.docChanged || update.selectionSet)\n this.decorations = this.getDeco(update.view);\n }\n getDeco(view) {\n let lastLineStart = -1, deco = [];\n for (let r of view.state.selection.ranges) {\n let line = view.lineBlockAt(r.head);\n if (line.from > lastLineStart) {\n deco.push(lineDeco.range(line.from));\n lastLineStart = line.from;\n }\n }\n return Decoration.set(deco);\n }\n}, {\n decorations: v => v.decorations\n});\n\nclass Placeholder extends WidgetType {\n constructor(content) {\n super();\n this.content = content;\n }\n toDOM(view) {\n let wrap = document.createElement(\"span\");\n wrap.className = \"cm-placeholder\";\n wrap.style.pointerEvents = \"none\";\n wrap.appendChild(typeof this.content == \"string\" ? document.createTextNode(this.content) :\n typeof this.content == \"function\" ? this.content(view) :\n this.content.cloneNode(true));\n wrap.setAttribute(\"aria-hidden\", \"true\");\n return wrap;\n }\n coordsAt(dom) {\n let rects = dom.firstChild ? clientRectsFor(dom.firstChild) : [];\n if (!rects.length)\n return null;\n let style = window.getComputedStyle(dom.parentNode);\n let rect = flattenRect(rects[0], style.direction != \"rtl\");\n let lineHeight = parseInt(style.lineHeight);\n if (rect.bottom - rect.top > lineHeight * 1.5)\n return { left: rect.left, right: rect.right, top: rect.top, bottom: rect.top + lineHeight };\n return rect;\n }\n ignoreEvent() { return false; }\n}\n/**\nExtension that enables a placeholder—a piece of example content\nto show when the editor is empty.\n*/\nfunction placeholder(content) {\n let plugin = ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.placeholder = content\n ? Decoration.set([Decoration.widget({ widget: new Placeholder(content), side: 1 }).range(0)])\n : Decoration.none;\n }\n get decorations() { return this.view.state.doc.length ? Decoration.none : this.placeholder; }\n }, { decorations: v => v.decorations });\n return typeof content == \"string\" ? [\n plugin, EditorView.contentAttributes.of({ \"aria-placeholder\": content })\n ] : plugin;\n}\n\n// Don't compute precise column positions for line offsets above this\n// (since it could get expensive). Assume offset==column for them.\nconst MaxOff = 2000;\nfunction rectangleFor(state, a, b) {\n let startLine = Math.min(a.line, b.line), endLine = Math.max(a.line, b.line);\n let ranges = [];\n if (a.off > MaxOff || b.off > MaxOff || a.col < 0 || b.col < 0) {\n let startOff = Math.min(a.off, b.off), endOff = Math.max(a.off, b.off);\n for (let i = startLine; i <= endLine; i++) {\n let line = state.doc.line(i);\n if (line.length <= endOff)\n ranges.push(EditorSelection.range(line.from + startOff, line.to + endOff));\n }\n }\n else {\n let startCol = Math.min(a.col, b.col), endCol = Math.max(a.col, b.col);\n for (let i = startLine; i <= endLine; i++) {\n let line = state.doc.line(i);\n let start = findColumn(line.text, startCol, state.tabSize, true);\n if (start < 0) {\n ranges.push(EditorSelection.cursor(line.to));\n }\n else {\n let end = findColumn(line.text, endCol, state.tabSize);\n ranges.push(EditorSelection.range(line.from + start, line.from + end));\n }\n }\n }\n return ranges;\n}\nfunction absoluteColumn(view, x) {\n let ref = view.coordsAtPos(view.viewport.from);\n return ref ? Math.round(Math.abs((ref.left - x) / view.defaultCharacterWidth)) : -1;\n}\nfunction getPos(view, event) {\n let offset = view.posAtCoords({ x: event.clientX, y: event.clientY }, false);\n let line = view.state.doc.lineAt(offset), off = offset - line.from;\n let col = off > MaxOff ? -1\n : off == line.length ? absoluteColumn(view, event.clientX)\n : countColumn(line.text, view.state.tabSize, offset - line.from);\n return { line: line.number, col, off };\n}\nfunction rectangleSelectionStyle(view, event) {\n let start = getPos(view, event), startSel = view.state.selection;\n if (!start)\n return null;\n return {\n update(update) {\n if (update.docChanged) {\n let newStart = update.changes.mapPos(update.startState.doc.line(start.line).from);\n let newLine = update.state.doc.lineAt(newStart);\n start = { line: newLine.number, col: start.col, off: Math.min(start.off, newLine.length) };\n startSel = startSel.map(update.changes);\n }\n },\n get(event, _extend, multiple) {\n let cur = getPos(view, event);\n if (!cur)\n return startSel;\n let ranges = rectangleFor(view.state, start, cur);\n if (!ranges.length)\n return startSel;\n if (multiple)\n return EditorSelection.create(ranges.concat(startSel.ranges));\n else\n return EditorSelection.create(ranges);\n }\n };\n}\n/**\nCreate an extension that enables rectangular selections. By\ndefault, it will react to left mouse drag with the Alt key held\ndown. When such a selection occurs, the text within the rectangle\nthat was dragged over will be selected, as one selection\n[range](https://codemirror.net/6/docs/ref/#state.SelectionRange) per line.\n*/\nfunction rectangularSelection(options) {\n let filter = (options === null || options === void 0 ? void 0 : options.eventFilter) || (e => e.altKey && e.button == 0);\n return EditorView.mouseSelectionStyle.of((view, event) => filter(event) ? rectangleSelectionStyle(view, event) : null);\n}\nconst keys = {\n Alt: [18, e => !!e.altKey],\n Control: [17, e => !!e.ctrlKey],\n Shift: [16, e => !!e.shiftKey],\n Meta: [91, e => !!e.metaKey]\n};\nconst showCrosshair = { style: \"cursor: crosshair\" };\n/**\nReturns an extension that turns the pointer cursor into a\ncrosshair when a given modifier key, defaulting to Alt, is held\ndown. Can serve as a visual hint that rectangular selection is\ngoing to happen when paired with\n[`rectangularSelection`](https://codemirror.net/6/docs/ref/#view.rectangularSelection).\n*/\nfunction crosshairCursor(options = {}) {\n let [code, getter] = keys[options.key || \"Alt\"];\n let plugin = ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.isDown = false;\n }\n set(isDown) {\n if (this.isDown != isDown) {\n this.isDown = isDown;\n this.view.update([]);\n }\n }\n }, {\n eventObservers: {\n keydown(e) {\n this.set(e.keyCode == code || getter(e));\n },\n keyup(e) {\n if (e.keyCode == code || !getter(e))\n this.set(false);\n },\n mousemove(e) {\n this.set(getter(e));\n }\n }\n });\n return [\n plugin,\n EditorView.contentAttributes.of(view => { var _a; return ((_a = view.plugin(plugin)) === null || _a === void 0 ? void 0 : _a.isDown) ? showCrosshair : null; })\n ];\n}\n\nconst Outside = \"-10000px\";\nclass TooltipViewManager {\n constructor(view, facet, createTooltipView, removeTooltipView) {\n this.facet = facet;\n this.createTooltipView = createTooltipView;\n this.removeTooltipView = removeTooltipView;\n this.input = view.state.facet(facet);\n this.tooltips = this.input.filter(t => t);\n let prev = null;\n this.tooltipViews = this.tooltips.map(t => prev = createTooltipView(t, prev));\n }\n update(update, above) {\n var _a;\n let input = update.state.facet(this.facet);\n let tooltips = input.filter(x => x);\n if (input === this.input) {\n for (let t of this.tooltipViews)\n if (t.update)\n t.update(update);\n return false;\n }\n let tooltipViews = [], newAbove = above ? [] : null;\n for (let i = 0; i < tooltips.length; i++) {\n let tip = tooltips[i], known = -1;\n if (!tip)\n continue;\n for (let i = 0; i < this.tooltips.length; i++) {\n let other = this.tooltips[i];\n if (other && other.create == tip.create)\n known = i;\n }\n if (known < 0) {\n tooltipViews[i] = this.createTooltipView(tip, i ? tooltipViews[i - 1] : null);\n if (newAbove)\n newAbove[i] = !!tip.above;\n }\n else {\n let tooltipView = tooltipViews[i] = this.tooltipViews[known];\n if (newAbove)\n newAbove[i] = above[known];\n if (tooltipView.update)\n tooltipView.update(update);\n }\n }\n for (let t of this.tooltipViews)\n if (tooltipViews.indexOf(t) < 0) {\n this.removeTooltipView(t);\n (_a = t.destroy) === null || _a === void 0 ? void 0 : _a.call(t);\n }\n if (above) {\n newAbove.forEach((val, i) => above[i] = val);\n above.length = newAbove.length;\n }\n this.input = input;\n this.tooltips = tooltips;\n this.tooltipViews = tooltipViews;\n return true;\n }\n}\n/**\nCreates an extension that configures tooltip behavior.\n*/\nfunction tooltips(config = {}) {\n return tooltipConfig.of(config);\n}\nfunction windowSpace(view) {\n let docElt = view.dom.ownerDocument.documentElement;\n return { top: 0, left: 0, bottom: docElt.clientHeight, right: docElt.clientWidth };\n}\nconst tooltipConfig = /*@__PURE__*/Facet.define({\n combine: values => {\n var _a, _b, _c;\n return ({\n position: browser.ios ? \"absolute\" : ((_a = values.find(conf => conf.position)) === null || _a === void 0 ? void 0 : _a.position) || \"fixed\",\n parent: ((_b = values.find(conf => conf.parent)) === null || _b === void 0 ? void 0 : _b.parent) || null,\n tooltipSpace: ((_c = values.find(conf => conf.tooltipSpace)) === null || _c === void 0 ? void 0 : _c.tooltipSpace) || windowSpace,\n });\n }\n});\nconst knownHeight = /*@__PURE__*/new WeakMap();\nconst tooltipPlugin = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.above = [];\n this.inView = true;\n this.madeAbsolute = false;\n this.lastTransaction = 0;\n this.measureTimeout = -1;\n let config = view.state.facet(tooltipConfig);\n this.position = config.position;\n this.parent = config.parent;\n this.classes = view.themeClasses;\n this.createContainer();\n this.measureReq = { read: this.readMeasure.bind(this), write: this.writeMeasure.bind(this), key: this };\n this.resizeObserver = typeof ResizeObserver == \"function\" ? new ResizeObserver(() => this.measureSoon()) : null;\n this.manager = new TooltipViewManager(view, showTooltip, (t, p) => this.createTooltip(t, p), t => {\n if (this.resizeObserver)\n this.resizeObserver.unobserve(t.dom);\n t.dom.remove();\n });\n this.above = this.manager.tooltips.map(t => !!t.above);\n this.intersectionObserver = typeof IntersectionObserver == \"function\" ? new IntersectionObserver(entries => {\n if (Date.now() > this.lastTransaction - 50 &&\n entries.length > 0 && entries[entries.length - 1].intersectionRatio < 1)\n this.measureSoon();\n }, { threshold: [1] }) : null;\n this.observeIntersection();\n view.win.addEventListener(\"resize\", this.measureSoon = this.measureSoon.bind(this));\n this.maybeMeasure();\n }\n createContainer() {\n if (this.parent) {\n this.container = document.createElement(\"div\");\n this.container.style.position = \"relative\";\n this.container.className = this.view.themeClasses;\n this.parent.appendChild(this.container);\n }\n else {\n this.container = this.view.dom;\n }\n }\n observeIntersection() {\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect();\n for (let tooltip of this.manager.tooltipViews)\n this.intersectionObserver.observe(tooltip.dom);\n }\n }\n measureSoon() {\n if (this.measureTimeout < 0)\n this.measureTimeout = setTimeout(() => {\n this.measureTimeout = -1;\n this.maybeMeasure();\n }, 50);\n }\n update(update) {\n if (update.transactions.length)\n this.lastTransaction = Date.now();\n let updated = this.manager.update(update, this.above);\n if (updated)\n this.observeIntersection();\n let shouldMeasure = updated || update.geometryChanged;\n let newConfig = update.state.facet(tooltipConfig);\n if (newConfig.position != this.position && !this.madeAbsolute) {\n this.position = newConfig.position;\n for (let t of this.manager.tooltipViews)\n t.dom.style.position = this.position;\n shouldMeasure = true;\n }\n if (newConfig.parent != this.parent) {\n if (this.parent)\n this.container.remove();\n this.parent = newConfig.parent;\n this.createContainer();\n for (let t of this.manager.tooltipViews)\n this.container.appendChild(t.dom);\n shouldMeasure = true;\n }\n else if (this.parent && this.view.themeClasses != this.classes) {\n this.classes = this.container.className = this.view.themeClasses;\n }\n if (shouldMeasure)\n this.maybeMeasure();\n }\n createTooltip(tooltip, prev) {\n let tooltipView = tooltip.create(this.view);\n let before = prev ? prev.dom : null;\n tooltipView.dom.classList.add(\"cm-tooltip\");\n if (tooltip.arrow && !tooltipView.dom.querySelector(\".cm-tooltip > .cm-tooltip-arrow\")) {\n let arrow = document.createElement(\"div\");\n arrow.className = \"cm-tooltip-arrow\";\n tooltipView.dom.appendChild(arrow);\n }\n tooltipView.dom.style.position = this.position;\n tooltipView.dom.style.top = Outside;\n tooltipView.dom.style.left = \"0px\";\n this.container.insertBefore(tooltipView.dom, before);\n if (tooltipView.mount)\n tooltipView.mount(this.view);\n if (this.resizeObserver)\n this.resizeObserver.observe(tooltipView.dom);\n return tooltipView;\n }\n destroy() {\n var _a, _b, _c;\n this.view.win.removeEventListener(\"resize\", this.measureSoon);\n for (let tooltipView of this.manager.tooltipViews) {\n tooltipView.dom.remove();\n (_a = tooltipView.destroy) === null || _a === void 0 ? void 0 : _a.call(tooltipView);\n }\n if (this.parent)\n this.container.remove();\n (_b = this.resizeObserver) === null || _b === void 0 ? void 0 : _b.disconnect();\n (_c = this.intersectionObserver) === null || _c === void 0 ? void 0 : _c.disconnect();\n clearTimeout(this.measureTimeout);\n }\n readMeasure() {\n let scaleX = 1, scaleY = 1, makeAbsolute = false;\n if (this.position == \"fixed\" && this.manager.tooltipViews.length) {\n let { dom } = this.manager.tooltipViews[0];\n if (browser.gecko) {\n // Firefox sets the element's `offsetParent` to the\n // transformed element when a transform interferes with fixed\n // positioning.\n makeAbsolute = dom.offsetParent != this.container.ownerDocument.body;\n }\n else if (dom.style.top == Outside && dom.style.left == \"0px\") {\n // On other browsers, we have to awkwardly try and use other\n // information to detect a transform.\n let rect = dom.getBoundingClientRect();\n makeAbsolute = Math.abs(rect.top + 10000) > 1 || Math.abs(rect.left) > 1;\n }\n }\n if (makeAbsolute || this.position == \"absolute\") {\n if (this.parent) {\n let rect = this.parent.getBoundingClientRect();\n if (rect.width && rect.height) {\n scaleX = rect.width / this.parent.offsetWidth;\n scaleY = rect.height / this.parent.offsetHeight;\n }\n }\n else {\n ({ scaleX, scaleY } = this.view.viewState);\n }\n }\n let visible = this.view.scrollDOM.getBoundingClientRect(), margins = getScrollMargins(this.view);\n return {\n visible: {\n left: visible.left + margins.left, top: visible.top + margins.top,\n right: visible.right - margins.right, bottom: visible.bottom - margins.bottom\n },\n parent: this.parent ? this.container.getBoundingClientRect() : this.view.dom.getBoundingClientRect(),\n pos: this.manager.tooltips.map((t, i) => {\n let tv = this.manager.tooltipViews[i];\n return tv.getCoords ? tv.getCoords(t.pos) : this.view.coordsAtPos(t.pos);\n }),\n size: this.manager.tooltipViews.map(({ dom }) => dom.getBoundingClientRect()),\n space: this.view.state.facet(tooltipConfig).tooltipSpace(this.view),\n scaleX, scaleY, makeAbsolute\n };\n }\n writeMeasure(measured) {\n var _a;\n if (measured.makeAbsolute) {\n this.madeAbsolute = true;\n this.position = \"absolute\";\n for (let t of this.manager.tooltipViews)\n t.dom.style.position = \"absolute\";\n }\n let { visible, space, scaleX, scaleY } = measured;\n let others = [];\n for (let i = 0; i < this.manager.tooltips.length; i++) {\n let tooltip = this.manager.tooltips[i], tView = this.manager.tooltipViews[i], { dom } = tView;\n let pos = measured.pos[i], size = measured.size[i];\n // Hide tooltips that are outside of the editor.\n if (!pos || tooltip.clip !== false && (pos.bottom <= Math.max(visible.top, space.top) ||\n pos.top >= Math.min(visible.bottom, space.bottom) ||\n pos.right < Math.max(visible.left, space.left) - .1 ||\n pos.left > Math.min(visible.right, space.right) + .1)) {\n dom.style.top = Outside;\n continue;\n }\n let arrow = tooltip.arrow ? tView.dom.querySelector(\".cm-tooltip-arrow\") : null;\n let arrowHeight = arrow ? 7 /* Arrow.Size */ : 0;\n let width = size.right - size.left, height = (_a = knownHeight.get(tView)) !== null && _a !== void 0 ? _a : size.bottom - size.top;\n let offset = tView.offset || noOffset, ltr = this.view.textDirection == Direction.LTR;\n let left = size.width > space.right - space.left\n ? (ltr ? space.left : space.right - size.width)\n : ltr ? Math.max(space.left, Math.min(pos.left - (arrow ? 14 /* Arrow.Offset */ : 0) + offset.x, space.right - width))\n : Math.min(Math.max(space.left, pos.left - width + (arrow ? 14 /* Arrow.Offset */ : 0) - offset.x), space.right - width);\n let above = this.above[i];\n if (!tooltip.strictSide && (above\n ? pos.top - height - arrowHeight - offset.y < space.top\n : pos.bottom + height + arrowHeight + offset.y > space.bottom) &&\n above == (space.bottom - pos.bottom > pos.top - space.top))\n above = this.above[i] = !above;\n let spaceVert = (above ? pos.top - space.top : space.bottom - pos.bottom) - arrowHeight;\n if (spaceVert < height && tView.resize !== false) {\n if (spaceVert < this.view.defaultLineHeight) {\n dom.style.top = Outside;\n continue;\n }\n knownHeight.set(tView, height);\n dom.style.height = (height = spaceVert) / scaleY + \"px\";\n }\n else if (dom.style.height) {\n dom.style.height = \"\";\n }\n let top = above ? pos.top - height - arrowHeight - offset.y : pos.bottom + arrowHeight + offset.y;\n let right = left + width;\n if (tView.overlap !== true)\n for (let r of others)\n if (r.left < right && r.right > left && r.top < top + height && r.bottom > top)\n top = above ? r.top - height - 2 - arrowHeight : r.bottom + arrowHeight + 2;\n if (this.position == \"absolute\") {\n dom.style.top = (top - measured.parent.top) / scaleY + \"px\";\n setLeftStyle(dom, (left - measured.parent.left) / scaleX);\n }\n else {\n dom.style.top = top / scaleY + \"px\";\n setLeftStyle(dom, left / scaleX);\n }\n if (arrow) {\n let arrowLeft = pos.left + (ltr ? offset.x : -offset.x) - (left + 14 /* Arrow.Offset */ - 7 /* Arrow.Size */);\n arrow.style.left = arrowLeft / scaleX + \"px\";\n }\n if (tView.overlap !== true)\n others.push({ left, top, right, bottom: top + height });\n dom.classList.toggle(\"cm-tooltip-above\", above);\n dom.classList.toggle(\"cm-tooltip-below\", !above);\n if (tView.positioned)\n tView.positioned(measured.space);\n }\n }\n maybeMeasure() {\n if (this.manager.tooltips.length) {\n if (this.view.inView)\n this.view.requestMeasure(this.measureReq);\n if (this.inView != this.view.inView) {\n this.inView = this.view.inView;\n if (!this.inView)\n for (let tv of this.manager.tooltipViews)\n tv.dom.style.top = Outside;\n }\n }\n }\n}, {\n eventObservers: {\n scroll() { this.maybeMeasure(); }\n }\n});\nfunction setLeftStyle(elt, value) {\n let current = parseInt(elt.style.left, 10);\n if (isNaN(current) || Math.abs(value - current) > 1)\n elt.style.left = value + \"px\";\n}\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-tooltip\": {\n zIndex: 500,\n boxSizing: \"border-box\"\n },\n \"&light .cm-tooltip\": {\n border: \"1px solid #bbb\",\n backgroundColor: \"#f5f5f5\"\n },\n \"&light .cm-tooltip-section:not(:first-child)\": {\n borderTop: \"1px solid #bbb\",\n },\n \"&dark .cm-tooltip\": {\n backgroundColor: \"#333338\",\n color: \"white\"\n },\n \".cm-tooltip-arrow\": {\n height: `${7 /* Arrow.Size */}px`,\n width: `${7 /* Arrow.Size */ * 2}px`,\n position: \"absolute\",\n zIndex: -1,\n overflow: \"hidden\",\n \"&:before, &:after\": {\n content: \"''\",\n position: \"absolute\",\n width: 0,\n height: 0,\n borderLeft: `${7 /* Arrow.Size */}px solid transparent`,\n borderRight: `${7 /* Arrow.Size */}px solid transparent`,\n },\n \".cm-tooltip-above &\": {\n bottom: `-${7 /* Arrow.Size */}px`,\n \"&:before\": {\n borderTop: `${7 /* Arrow.Size */}px solid #bbb`,\n },\n \"&:after\": {\n borderTop: `${7 /* Arrow.Size */}px solid #f5f5f5`,\n bottom: \"1px\"\n }\n },\n \".cm-tooltip-below &\": {\n top: `-${7 /* Arrow.Size */}px`,\n \"&:before\": {\n borderBottom: `${7 /* Arrow.Size */}px solid #bbb`,\n },\n \"&:after\": {\n borderBottom: `${7 /* Arrow.Size */}px solid #f5f5f5`,\n top: \"1px\"\n }\n },\n },\n \"&dark .cm-tooltip .cm-tooltip-arrow\": {\n \"&:before\": {\n borderTopColor: \"#333338\",\n borderBottomColor: \"#333338\"\n },\n \"&:after\": {\n borderTopColor: \"transparent\",\n borderBottomColor: \"transparent\"\n }\n }\n});\nconst noOffset = { x: 0, y: 0 };\n/**\nFacet to which an extension can add a value to show a tooltip.\n*/\nconst showTooltip = /*@__PURE__*/Facet.define({\n enables: [tooltipPlugin, baseTheme]\n});\nconst showHoverTooltip = /*@__PURE__*/Facet.define({\n combine: inputs => inputs.reduce((a, i) => a.concat(i), [])\n});\nclass HoverTooltipHost {\n // Needs to be static so that host tooltip instances always match\n static create(view) {\n return new HoverTooltipHost(view);\n }\n constructor(view) {\n this.view = view;\n this.mounted = false;\n this.dom = document.createElement(\"div\");\n this.dom.classList.add(\"cm-tooltip-hover\");\n this.manager = new TooltipViewManager(view, showHoverTooltip, (t, p) => this.createHostedView(t, p), t => t.dom.remove());\n }\n createHostedView(tooltip, prev) {\n let hostedView = tooltip.create(this.view);\n hostedView.dom.classList.add(\"cm-tooltip-section\");\n this.dom.insertBefore(hostedView.dom, prev ? prev.dom.nextSibling : this.dom.firstChild);\n if (this.mounted && hostedView.mount)\n hostedView.mount(this.view);\n return hostedView;\n }\n mount(view) {\n for (let hostedView of this.manager.tooltipViews) {\n if (hostedView.mount)\n hostedView.mount(view);\n }\n this.mounted = true;\n }\n positioned(space) {\n for (let hostedView of this.manager.tooltipViews) {\n if (hostedView.positioned)\n hostedView.positioned(space);\n }\n }\n update(update) {\n this.manager.update(update);\n }\n destroy() {\n var _a;\n for (let t of this.manager.tooltipViews)\n (_a = t.destroy) === null || _a === void 0 ? void 0 : _a.call(t);\n }\n passProp(name) {\n let value = undefined;\n for (let view of this.manager.tooltipViews) {\n let given = view[name];\n if (given !== undefined) {\n if (value === undefined)\n value = given;\n else if (value !== given)\n return undefined;\n }\n }\n return value;\n }\n get offset() { return this.passProp(\"offset\"); }\n get getCoords() { return this.passProp(\"getCoords\"); }\n get overlap() { return this.passProp(\"overlap\"); }\n get resize() { return this.passProp(\"resize\"); }\n}\nconst showHoverTooltipHost = /*@__PURE__*/showTooltip.compute([showHoverTooltip], state => {\n let tooltips = state.facet(showHoverTooltip);\n if (tooltips.length === 0)\n return null;\n return {\n pos: Math.min(...tooltips.map(t => t.pos)),\n end: Math.max(...tooltips.map(t => { var _a; return (_a = t.end) !== null && _a !== void 0 ? _a : t.pos; })),\n create: HoverTooltipHost.create,\n above: tooltips[0].above,\n arrow: tooltips.some(t => t.arrow),\n };\n});\nclass HoverPlugin {\n constructor(view, source, field, setHover, hoverTime) {\n this.view = view;\n this.source = source;\n this.field = field;\n this.setHover = setHover;\n this.hoverTime = hoverTime;\n this.hoverTimeout = -1;\n this.restartTimeout = -1;\n this.pending = null;\n this.lastMove = { x: 0, y: 0, target: view.dom, time: 0 };\n this.checkHover = this.checkHover.bind(this);\n view.dom.addEventListener(\"mouseleave\", this.mouseleave = this.mouseleave.bind(this));\n view.dom.addEventListener(\"mousemove\", this.mousemove = this.mousemove.bind(this));\n }\n update() {\n if (this.pending) {\n this.pending = null;\n clearTimeout(this.restartTimeout);\n this.restartTimeout = setTimeout(() => this.startHover(), 20);\n }\n }\n get active() {\n return this.view.state.field(this.field);\n }\n checkHover() {\n this.hoverTimeout = -1;\n if (this.active.length)\n return;\n let hovered = Date.now() - this.lastMove.time;\n if (hovered < this.hoverTime)\n this.hoverTimeout = setTimeout(this.checkHover, this.hoverTime - hovered);\n else\n this.startHover();\n }\n startHover() {\n clearTimeout(this.restartTimeout);\n let { view, lastMove } = this;\n let desc = view.docView.nearest(lastMove.target);\n if (!desc)\n return;\n let pos, side = 1;\n if (desc instanceof WidgetView) {\n pos = desc.posAtStart;\n }\n else {\n pos = view.posAtCoords(lastMove);\n if (pos == null)\n return;\n let posCoords = view.coordsAtPos(pos);\n if (!posCoords ||\n lastMove.y < posCoords.top || lastMove.y > posCoords.bottom ||\n lastMove.x < posCoords.left - view.defaultCharacterWidth ||\n lastMove.x > posCoords.right + view.defaultCharacterWidth)\n return;\n let bidi = view.bidiSpans(view.state.doc.lineAt(pos)).find(s => s.from <= pos && s.to >= pos);\n let rtl = bidi && bidi.dir == Direction.RTL ? -1 : 1;\n side = (lastMove.x < posCoords.left ? -rtl : rtl);\n }\n let open = this.source(view, pos, side);\n if (open === null || open === void 0 ? void 0 : open.then) {\n let pending = this.pending = { pos };\n open.then(result => {\n if (this.pending == pending) {\n this.pending = null;\n if (result && !(Array.isArray(result) && !result.length))\n view.dispatch({ effects: this.setHover.of(Array.isArray(result) ? result : [result]) });\n }\n }, e => logException(view.state, e, \"hover tooltip\"));\n }\n else if (open && !(Array.isArray(open) && !open.length)) {\n view.dispatch({ effects: this.setHover.of(Array.isArray(open) ? open : [open]) });\n }\n }\n get tooltip() {\n let plugin = this.view.plugin(tooltipPlugin);\n let index = plugin ? plugin.manager.tooltips.findIndex(t => t.create == HoverTooltipHost.create) : -1;\n return index > -1 ? plugin.manager.tooltipViews[index] : null;\n }\n mousemove(event) {\n var _a, _b;\n this.lastMove = { x: event.clientX, y: event.clientY, target: event.target, time: Date.now() };\n if (this.hoverTimeout < 0)\n this.hoverTimeout = setTimeout(this.checkHover, this.hoverTime);\n let { active, tooltip } = this;\n if (active.length && tooltip && !isInTooltip(tooltip.dom, event) || this.pending) {\n let { pos } = active[0] || this.pending, end = (_b = (_a = active[0]) === null || _a === void 0 ? void 0 : _a.end) !== null && _b !== void 0 ? _b : pos;\n if ((pos == end ? this.view.posAtCoords(this.lastMove) != pos\n : !isOverRange(this.view, pos, end, event.clientX, event.clientY))) {\n this.view.dispatch({ effects: this.setHover.of([]) });\n this.pending = null;\n }\n }\n }\n mouseleave(event) {\n clearTimeout(this.hoverTimeout);\n this.hoverTimeout = -1;\n let { active } = this;\n if (active.length) {\n let { tooltip } = this;\n let inTooltip = tooltip && tooltip.dom.contains(event.relatedTarget);\n if (!inTooltip)\n this.view.dispatch({ effects: this.setHover.of([]) });\n else\n this.watchTooltipLeave(tooltip.dom);\n }\n }\n watchTooltipLeave(tooltip) {\n let watch = (event) => {\n tooltip.removeEventListener(\"mouseleave\", watch);\n if (this.active.length && !this.view.dom.contains(event.relatedTarget))\n this.view.dispatch({ effects: this.setHover.of([]) });\n };\n tooltip.addEventListener(\"mouseleave\", watch);\n }\n destroy() {\n clearTimeout(this.hoverTimeout);\n this.view.dom.removeEventListener(\"mouseleave\", this.mouseleave);\n this.view.dom.removeEventListener(\"mousemove\", this.mousemove);\n }\n}\nconst tooltipMargin = 4;\nfunction isInTooltip(tooltip, event) {\n let { left, right, top, bottom } = tooltip.getBoundingClientRect(), arrow;\n if (arrow = tooltip.querySelector(\".cm-tooltip-arrow\")) {\n let arrowRect = arrow.getBoundingClientRect();\n top = Math.min(arrowRect.top, top);\n bottom = Math.max(arrowRect.bottom, bottom);\n }\n return event.clientX >= left - tooltipMargin && event.clientX <= right + tooltipMargin &&\n event.clientY >= top - tooltipMargin && event.clientY <= bottom + tooltipMargin;\n}\nfunction isOverRange(view, from, to, x, y, margin) {\n let rect = view.scrollDOM.getBoundingClientRect();\n let docBottom = view.documentTop + view.documentPadding.top + view.contentHeight;\n if (rect.left > x || rect.right < x || rect.top > y || Math.min(rect.bottom, docBottom) < y)\n return false;\n let pos = view.posAtCoords({ x, y }, false);\n return pos >= from && pos <= to;\n}\n/**\nSet up a hover tooltip, which shows up when the pointer hovers\nover ranges of text. The callback is called when the mouse hovers\nover the document text. It should, if there is a tooltip\nassociated with position `pos`, return the tooltip description\n(either directly or in a promise). The `side` argument indicates\non which side of the position the pointer is—it will be -1 if the\npointer is before the position, 1 if after the position.\n\nNote that all hover tooltips are hosted within a single tooltip\ncontainer element. This allows multiple tooltips over the same\nrange to be \"merged\" together without overlapping.\n\nThe return value is a valid [editor extension](https://codemirror.net/6/docs/ref/#state.Extension)\nbut also provides an `active` property holding a state field that\ncan be used to read the currently active tooltips produced by this\nextension.\n*/\nfunction hoverTooltip(source, options = {}) {\n let setHover = StateEffect.define();\n let hoverState = StateField.define({\n create() { return []; },\n update(value, tr) {\n if (value.length) {\n if (options.hideOnChange && (tr.docChanged || tr.selection))\n value = [];\n else if (options.hideOn)\n value = value.filter(v => !options.hideOn(tr, v));\n if (tr.docChanged) {\n let mapped = [];\n for (let tooltip of value) {\n let newPos = tr.changes.mapPos(tooltip.pos, -1, MapMode.TrackDel);\n if (newPos != null) {\n let copy = Object.assign(Object.create(null), tooltip);\n copy.pos = newPos;\n if (copy.end != null)\n copy.end = tr.changes.mapPos(copy.end);\n mapped.push(copy);\n }\n }\n value = mapped;\n }\n }\n for (let effect of tr.effects) {\n if (effect.is(setHover))\n value = effect.value;\n if (effect.is(closeHoverTooltipEffect))\n value = [];\n }\n return value;\n },\n provide: f => showHoverTooltip.from(f)\n });\n return {\n active: hoverState,\n extension: [\n hoverState,\n ViewPlugin.define(view => new HoverPlugin(view, source, hoverState, setHover, options.hoverTime || 300 /* Hover.Time */)),\n showHoverTooltipHost\n ]\n };\n}\n/**\nGet the active tooltip view for a given tooltip, if available.\n*/\nfunction getTooltip(view, tooltip) {\n let plugin = view.plugin(tooltipPlugin);\n if (!plugin)\n return null;\n let found = plugin.manager.tooltips.indexOf(tooltip);\n return found < 0 ? null : plugin.manager.tooltipViews[found];\n}\n/**\nReturns true if any hover tooltips are currently active.\n*/\nfunction hasHoverTooltips(state) {\n return state.facet(showHoverTooltip).some(x => x);\n}\nconst closeHoverTooltipEffect = /*@__PURE__*/StateEffect.define();\n/**\nTransaction effect that closes all hover tooltips.\n*/\nconst closeHoverTooltips = /*@__PURE__*/closeHoverTooltipEffect.of(null);\n/**\nTell the tooltip extension to recompute the position of the active\ntooltips. This can be useful when something happens (such as a\nre-positioning or CSS change affecting the editor) that could\ninvalidate the existing tooltip positions.\n*/\nfunction repositionTooltips(view) {\n let plugin = view.plugin(tooltipPlugin);\n if (plugin)\n plugin.maybeMeasure();\n}\n\nconst panelConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n let topContainer, bottomContainer;\n for (let c of configs) {\n topContainer = topContainer || c.topContainer;\n bottomContainer = bottomContainer || c.bottomContainer;\n }\n return { topContainer, bottomContainer };\n }\n});\n/**\nConfigures the panel-managing extension.\n*/\nfunction panels(config) {\n return config ? [panelConfig.of(config)] : [];\n}\n/**\nGet the active panel created by the given constructor, if any.\nThis can be useful when you need access to your panels' DOM\nstructure.\n*/\nfunction getPanel(view, panel) {\n let plugin = view.plugin(panelPlugin);\n let index = plugin ? plugin.specs.indexOf(panel) : -1;\n return index > -1 ? plugin.panels[index] : null;\n}\nconst panelPlugin = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.input = view.state.facet(showPanel);\n this.specs = this.input.filter(s => s);\n this.panels = this.specs.map(spec => spec(view));\n let conf = view.state.facet(panelConfig);\n this.top = new PanelGroup(view, true, conf.topContainer);\n this.bottom = new PanelGroup(view, false, conf.bottomContainer);\n this.top.sync(this.panels.filter(p => p.top));\n this.bottom.sync(this.panels.filter(p => !p.top));\n for (let p of this.panels) {\n p.dom.classList.add(\"cm-panel\");\n if (p.mount)\n p.mount();\n }\n }\n update(update) {\n let conf = update.state.facet(panelConfig);\n if (this.top.container != conf.topContainer) {\n this.top.sync([]);\n this.top = new PanelGroup(update.view, true, conf.topContainer);\n }\n if (this.bottom.container != conf.bottomContainer) {\n this.bottom.sync([]);\n this.bottom = new PanelGroup(update.view, false, conf.bottomContainer);\n }\n this.top.syncClasses();\n this.bottom.syncClasses();\n let input = update.state.facet(showPanel);\n if (input != this.input) {\n let specs = input.filter(x => x);\n let panels = [], top = [], bottom = [], mount = [];\n for (let spec of specs) {\n let known = this.specs.indexOf(spec), panel;\n if (known < 0) {\n panel = spec(update.view);\n mount.push(panel);\n }\n else {\n panel = this.panels[known];\n if (panel.update)\n panel.update(update);\n }\n panels.push(panel);\n (panel.top ? top : bottom).push(panel);\n }\n this.specs = specs;\n this.panels = panels;\n this.top.sync(top);\n this.bottom.sync(bottom);\n for (let p of mount) {\n p.dom.classList.add(\"cm-panel\");\n if (p.mount)\n p.mount();\n }\n }\n else {\n for (let p of this.panels)\n if (p.update)\n p.update(update);\n }\n }\n destroy() {\n this.top.sync([]);\n this.bottom.sync([]);\n }\n}, {\n provide: plugin => EditorView.scrollMargins.of(view => {\n let value = view.plugin(plugin);\n return value && { top: value.top.scrollMargin(), bottom: value.bottom.scrollMargin() };\n })\n});\nclass PanelGroup {\n constructor(view, top, container) {\n this.view = view;\n this.top = top;\n this.container = container;\n this.dom = undefined;\n this.classes = \"\";\n this.panels = [];\n this.syncClasses();\n }\n sync(panels) {\n for (let p of this.panels)\n if (p.destroy && panels.indexOf(p) < 0)\n p.destroy();\n this.panels = panels;\n this.syncDOM();\n }\n syncDOM() {\n if (this.panels.length == 0) {\n if (this.dom) {\n this.dom.remove();\n this.dom = undefined;\n }\n return;\n }\n if (!this.dom) {\n this.dom = document.createElement(\"div\");\n this.dom.className = this.top ? \"cm-panels cm-panels-top\" : \"cm-panels cm-panels-bottom\";\n this.dom.style[this.top ? \"top\" : \"bottom\"] = \"0\";\n let parent = this.container || this.view.dom;\n parent.insertBefore(this.dom, this.top ? parent.firstChild : null);\n }\n let curDOM = this.dom.firstChild;\n for (let panel of this.panels) {\n if (panel.dom.parentNode == this.dom) {\n while (curDOM != panel.dom)\n curDOM = rm(curDOM);\n curDOM = curDOM.nextSibling;\n }\n else {\n this.dom.insertBefore(panel.dom, curDOM);\n }\n }\n while (curDOM)\n curDOM = rm(curDOM);\n }\n scrollMargin() {\n return !this.dom || this.container ? 0\n : Math.max(0, this.top ?\n this.dom.getBoundingClientRect().bottom - Math.max(0, this.view.scrollDOM.getBoundingClientRect().top) :\n Math.min(innerHeight, this.view.scrollDOM.getBoundingClientRect().bottom) - this.dom.getBoundingClientRect().top);\n }\n syncClasses() {\n if (!this.container || this.classes == this.view.themeClasses)\n return;\n for (let cls of this.classes.split(\" \"))\n if (cls)\n this.container.classList.remove(cls);\n for (let cls of (this.classes = this.view.themeClasses).split(\" \"))\n if (cls)\n this.container.classList.add(cls);\n }\n}\nfunction rm(node) {\n let next = node.nextSibling;\n node.remove();\n return next;\n}\n/**\nOpening a panel is done by providing a constructor function for\nthe panel through this facet. (The panel is closed again when its\nconstructor is no longer provided.) Values of `null` are ignored.\n*/\nconst showPanel = /*@__PURE__*/Facet.define({\n enables: panelPlugin\n});\n\n/**\nShow a panel above or below the editor to show the user a message\nor prompt them for input. Returns an effect that can be dispatched\nto close the dialog, and a promise that resolves when the dialog\nis closed or a form inside of it is submitted.\n\nYou are encouraged, if your handling of the result of the promise\ndispatches a transaction, to include the `close` effect in it. If\nyou don't, this function will automatically dispatch a separate\ntransaction right after.\n*/\nfunction showDialog(view, config) {\n let resolve;\n let promise = new Promise(r => resolve = r);\n let panelCtor = (view) => createDialog(view, config, resolve);\n if (view.state.field(dialogField, false)) {\n view.dispatch({ effects: openDialogEffect.of(panelCtor) });\n }\n else {\n view.dispatch({ effects: StateEffect.appendConfig.of(dialogField.init(() => [panelCtor])) });\n }\n let close = closeDialogEffect.of(panelCtor);\n return { close, result: promise.then(form => {\n let queue = view.win.queueMicrotask || ((f) => view.win.setTimeout(f, 10));\n queue(() => {\n if (view.state.field(dialogField).indexOf(panelCtor) > -1)\n view.dispatch({ effects: close });\n });\n return form;\n }) };\n}\n/**\nFind the [`Panel`](https://codemirror.net/6/docs/ref/#view.Panel) for an open dialog, using a class\nname as identifier.\n*/\nfunction getDialog(view, className) {\n let dialogs = view.state.field(dialogField, false) || [];\n for (let open of dialogs) {\n let panel = getPanel(view, open);\n if (panel && panel.dom.classList.contains(className))\n return panel;\n }\n return null;\n}\nconst dialogField = /*@__PURE__*/StateField.define({\n create() { return []; },\n update(dialogs, tr) {\n for (let e of tr.effects) {\n if (e.is(openDialogEffect))\n dialogs = [e.value].concat(dialogs);\n else if (e.is(closeDialogEffect))\n dialogs = dialogs.filter(d => d != e.value);\n }\n return dialogs;\n },\n provide: f => showPanel.computeN([f], state => state.field(f))\n});\nconst openDialogEffect = /*@__PURE__*/StateEffect.define();\nconst closeDialogEffect = /*@__PURE__*/StateEffect.define();\nfunction createDialog(view, config, result) {\n let content = config.content ? config.content(view, () => done(null)) : null;\n if (!content) {\n content = elt(\"form\");\n if (config.input) {\n let input = elt(\"input\", config.input);\n if (/^(text|password|number|email|tel|url)$/.test(input.type))\n input.classList.add(\"cm-textfield\");\n if (!input.name)\n input.name = \"input\";\n content.appendChild(elt(\"label\", (config.label || \"\") + \": \", input));\n }\n else {\n content.appendChild(document.createTextNode(config.label || \"\"));\n }\n content.appendChild(document.createTextNode(\" \"));\n content.appendChild(elt(\"button\", { class: \"cm-button\", type: \"submit\" }, config.submitLabel || \"OK\"));\n }\n let forms = content.nodeName == \"FORM\" ? [content] : content.querySelectorAll(\"form\");\n for (let i = 0; i < forms.length; i++) {\n let form = forms[i];\n form.addEventListener(\"keydown\", (event) => {\n if (event.keyCode == 27) { // Escape\n event.preventDefault();\n done(null);\n }\n else if (event.keyCode == 13) { // Enter\n event.preventDefault();\n done(form);\n }\n });\n form.addEventListener(\"submit\", (event) => {\n event.preventDefault();\n done(form);\n });\n }\n let panel = elt(\"div\", content, elt(\"button\", {\n onclick: () => done(null),\n \"aria-label\": view.state.phrase(\"close\"),\n class: \"cm-dialog-close\",\n type: \"button\"\n }, [\"×\"]));\n if (config.class)\n panel.className = config.class;\n panel.classList.add(\"cm-dialog\");\n function done(form) {\n if (panel.contains(panel.ownerDocument.activeElement))\n view.focus();\n result(form);\n }\n return {\n dom: panel,\n top: config.top,\n mount: () => {\n if (config.focus) {\n let focus;\n if (typeof config.focus == \"string\")\n focus = content.querySelector(config.focus);\n else\n focus = content.querySelector(\"input\") || content.querySelector(\"button\");\n if (focus && \"select\" in focus)\n focus.select();\n else if (focus && \"focus\" in focus)\n focus.focus();\n }\n }\n };\n}\n\n/**\nA gutter marker represents a bit of information attached to a line\nin a specific gutter. Your own custom markers have to extend this\nclass.\n*/\nclass GutterMarker extends RangeValue {\n /**\n @internal\n */\n compare(other) {\n return this == other || this.constructor == other.constructor && this.eq(other);\n }\n /**\n Compare this marker to another marker of the same type.\n */\n eq(other) { return false; }\n /**\n Called if the marker has a `toDOM` method and its representation\n was removed from a gutter.\n */\n destroy(dom) { }\n}\nGutterMarker.prototype.elementClass = \"\";\nGutterMarker.prototype.toDOM = undefined;\nGutterMarker.prototype.mapMode = MapMode.TrackBefore;\nGutterMarker.prototype.startSide = GutterMarker.prototype.endSide = -1;\nGutterMarker.prototype.point = true;\n/**\nFacet used to add a class to all gutter elements for a given line.\nMarkers given to this facet should _only_ define an\n[`elementclass`](https://codemirror.net/6/docs/ref/#view.GutterMarker.elementClass), not a\n[`toDOM`](https://codemirror.net/6/docs/ref/#view.GutterMarker.toDOM) (or the marker will appear\nin all gutters for the line).\n*/\nconst gutterLineClass = /*@__PURE__*/Facet.define();\n/**\nFacet used to add a class to all gutter elements next to a widget.\nShould not provide widgets with a `toDOM` method.\n*/\nconst gutterWidgetClass = /*@__PURE__*/Facet.define();\nconst defaults = {\n class: \"\",\n renderEmptyElements: false,\n elementStyle: \"\",\n markers: () => RangeSet.empty,\n lineMarker: () => null,\n widgetMarker: () => null,\n lineMarkerChange: null,\n initialSpacer: null,\n updateSpacer: null,\n domEventHandlers: {},\n side: \"before\"\n};\nconst activeGutters = /*@__PURE__*/Facet.define();\n/**\nDefine an editor gutter. The order in which the gutters appear is\ndetermined by their extension priority.\n*/\nfunction gutter(config) {\n return [gutters(), activeGutters.of({ ...defaults, ...config })];\n}\nconst unfixGutters = /*@__PURE__*/Facet.define({\n combine: values => values.some(x => x)\n});\n/**\nThe gutter-drawing plugin is automatically enabled when you add a\ngutter, but you can use this function to explicitly configure it.\n\nUnless `fixed` is explicitly set to `false`, the gutters are\nfixed, meaning they don't scroll along with the content\nhorizontally (except on Internet Explorer, which doesn't support\nCSS [`position:\nsticky`](https://developer.mozilla.org/en-US/docs/Web/CSS/position#sticky)).\n*/\nfunction gutters(config) {\n let result = [\n gutterView,\n ];\n if (config && config.fixed === false)\n result.push(unfixGutters.of(true));\n return result;\n}\nconst gutterView = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.domAfter = null;\n this.prevViewport = view.viewport;\n this.dom = document.createElement(\"div\");\n this.dom.className = \"cm-gutters cm-gutters-before\";\n this.dom.setAttribute(\"aria-hidden\", \"true\");\n this.dom.style.minHeight = (this.view.contentHeight / this.view.scaleY) + \"px\";\n this.gutters = view.state.facet(activeGutters).map(conf => new SingleGutterView(view, conf));\n this.fixed = !view.state.facet(unfixGutters);\n for (let gutter of this.gutters) {\n if (gutter.config.side == \"after\")\n this.getDOMAfter().appendChild(gutter.dom);\n else\n this.dom.appendChild(gutter.dom);\n }\n if (this.fixed) {\n // FIXME IE11 fallback, which doesn't support position: sticky,\n // by using position: relative + event handlers that realign the\n // gutter (or just force fixed=false on IE11?)\n this.dom.style.position = \"sticky\";\n }\n this.syncGutters(false);\n view.scrollDOM.insertBefore(this.dom, view.contentDOM);\n }\n getDOMAfter() {\n if (!this.domAfter) {\n this.domAfter = document.createElement(\"div\");\n this.domAfter.className = \"cm-gutters cm-gutters-after\";\n this.domAfter.setAttribute(\"aria-hidden\", \"true\");\n this.domAfter.style.minHeight = (this.view.contentHeight / this.view.scaleY) + \"px\";\n this.domAfter.style.position = this.fixed ? \"sticky\" : \"\";\n this.view.scrollDOM.appendChild(this.domAfter);\n }\n return this.domAfter;\n }\n update(update) {\n if (this.updateGutters(update)) {\n // Detach during sync when the viewport changed significantly\n // (such as during scrolling), since for large updates that is\n // faster.\n let vpA = this.prevViewport, vpB = update.view.viewport;\n let vpOverlap = Math.min(vpA.to, vpB.to) - Math.max(vpA.from, vpB.from);\n this.syncGutters(vpOverlap < (vpB.to - vpB.from) * 0.8);\n }\n if (update.geometryChanged) {\n let min = (this.view.contentHeight / this.view.scaleY) + \"px\";\n this.dom.style.minHeight = min;\n if (this.domAfter)\n this.domAfter.style.minHeight = min;\n }\n if (this.view.state.facet(unfixGutters) != !this.fixed) {\n this.fixed = !this.fixed;\n this.dom.style.position = this.fixed ? \"sticky\" : \"\";\n if (this.domAfter)\n this.domAfter.style.position = this.fixed ? \"sticky\" : \"\";\n }\n this.prevViewport = update.view.viewport;\n }\n syncGutters(detach) {\n let after = this.dom.nextSibling;\n if (detach) {\n this.dom.remove();\n if (this.domAfter)\n this.domAfter.remove();\n }\n let lineClasses = RangeSet.iter(this.view.state.facet(gutterLineClass), this.view.viewport.from);\n let classSet = [];\n let contexts = this.gutters.map(gutter => new UpdateContext(gutter, this.view.viewport, -this.view.documentPadding.top));\n for (let line of this.view.viewportLineBlocks) {\n if (classSet.length)\n classSet = [];\n if (Array.isArray(line.type)) {\n let first = true;\n for (let b of line.type) {\n if (b.type == BlockType.Text && first) {\n advanceCursor(lineClasses, classSet, b.from);\n for (let cx of contexts)\n cx.line(this.view, b, classSet);\n first = false;\n }\n else if (b.widget) {\n for (let cx of contexts)\n cx.widget(this.view, b);\n }\n }\n }\n else if (line.type == BlockType.Text) {\n advanceCursor(lineClasses, classSet, line.from);\n for (let cx of contexts)\n cx.line(this.view, line, classSet);\n }\n else if (line.widget) {\n for (let cx of contexts)\n cx.widget(this.view, line);\n }\n }\n for (let cx of contexts)\n cx.finish();\n if (detach) {\n this.view.scrollDOM.insertBefore(this.dom, after);\n if (this.domAfter)\n this.view.scrollDOM.appendChild(this.domAfter);\n }\n }\n updateGutters(update) {\n let prev = update.startState.facet(activeGutters), cur = update.state.facet(activeGutters);\n let change = update.docChanged || update.heightChanged || update.viewportChanged ||\n !RangeSet.eq(update.startState.facet(gutterLineClass), update.state.facet(gutterLineClass), update.view.viewport.from, update.view.viewport.to);\n if (prev == cur) {\n for (let gutter of this.gutters)\n if (gutter.update(update))\n change = true;\n }\n else {\n change = true;\n let gutters = [];\n for (let conf of cur) {\n let known = prev.indexOf(conf);\n if (known < 0) {\n gutters.push(new SingleGutterView(this.view, conf));\n }\n else {\n this.gutters[known].update(update);\n gutters.push(this.gutters[known]);\n }\n }\n for (let g of this.gutters) {\n g.dom.remove();\n if (gutters.indexOf(g) < 0)\n g.destroy();\n }\n for (let g of gutters) {\n if (g.config.side == \"after\")\n this.getDOMAfter().appendChild(g.dom);\n else\n this.dom.appendChild(g.dom);\n }\n this.gutters = gutters;\n }\n return change;\n }\n destroy() {\n for (let view of this.gutters)\n view.destroy();\n this.dom.remove();\n if (this.domAfter)\n this.domAfter.remove();\n }\n}, {\n provide: plugin => EditorView.scrollMargins.of(view => {\n let value = view.plugin(plugin);\n if (!value || value.gutters.length == 0 || !value.fixed)\n return null;\n let before = value.dom.offsetWidth * view.scaleX, after = value.domAfter ? value.domAfter.offsetWidth * view.scaleX : 0;\n return view.textDirection == Direction.LTR\n ? { left: before, right: after }\n : { right: before, left: after };\n })\n});\nfunction asArray(val) { return (Array.isArray(val) ? val : [val]); }\nfunction advanceCursor(cursor, collect, pos) {\n while (cursor.value && cursor.from <= pos) {\n if (cursor.from == pos)\n collect.push(cursor.value);\n cursor.next();\n }\n}\nclass UpdateContext {\n constructor(gutter, viewport, height) {\n this.gutter = gutter;\n this.height = height;\n this.i = 0;\n this.cursor = RangeSet.iter(gutter.markers, viewport.from);\n }\n addElement(view, block, markers) {\n let { gutter } = this, above = (block.top - this.height) / view.scaleY, height = block.height / view.scaleY;\n if (this.i == gutter.elements.length) {\n let newElt = new GutterElement(view, height, above, markers);\n gutter.elements.push(newElt);\n gutter.dom.appendChild(newElt.dom);\n }\n else {\n gutter.elements[this.i].update(view, height, above, markers);\n }\n this.height = block.bottom;\n this.i++;\n }\n line(view, line, extraMarkers) {\n let localMarkers = [];\n advanceCursor(this.cursor, localMarkers, line.from);\n if (extraMarkers.length)\n localMarkers = localMarkers.concat(extraMarkers);\n let forLine = this.gutter.config.lineMarker(view, line, localMarkers);\n if (forLine)\n localMarkers.unshift(forLine);\n let gutter = this.gutter;\n if (localMarkers.length == 0 && !gutter.config.renderEmptyElements)\n return;\n this.addElement(view, line, localMarkers);\n }\n widget(view, block) {\n let marker = this.gutter.config.widgetMarker(view, block.widget, block), markers = marker ? [marker] : null;\n for (let cls of view.state.facet(gutterWidgetClass)) {\n let marker = cls(view, block.widget, block);\n if (marker)\n (markers || (markers = [])).push(marker);\n }\n if (markers)\n this.addElement(view, block, markers);\n }\n finish() {\n let gutter = this.gutter;\n while (gutter.elements.length > this.i) {\n let last = gutter.elements.pop();\n gutter.dom.removeChild(last.dom);\n last.destroy();\n }\n }\n}\nclass SingleGutterView {\n constructor(view, config) {\n this.view = view;\n this.config = config;\n this.elements = [];\n this.spacer = null;\n this.dom = document.createElement(\"div\");\n this.dom.className = \"cm-gutter\" + (this.config.class ? \" \" + this.config.class : \"\");\n for (let prop in config.domEventHandlers) {\n this.dom.addEventListener(prop, (event) => {\n let target = event.target, y;\n if (target != this.dom && this.dom.contains(target)) {\n while (target.parentNode != this.dom)\n target = target.parentNode;\n let rect = target.getBoundingClientRect();\n y = (rect.top + rect.bottom) / 2;\n }\n else {\n y = event.clientY;\n }\n let line = view.lineBlockAtHeight(y - view.documentTop);\n if (config.domEventHandlers[prop](view, line, event))\n event.preventDefault();\n });\n }\n this.markers = asArray(config.markers(view));\n if (config.initialSpacer) {\n this.spacer = new GutterElement(view, 0, 0, [config.initialSpacer(view)]);\n this.dom.appendChild(this.spacer.dom);\n this.spacer.dom.style.cssText += \"visibility: hidden; pointer-events: none\";\n }\n }\n update(update) {\n let prevMarkers = this.markers;\n this.markers = asArray(this.config.markers(update.view));\n if (this.spacer && this.config.updateSpacer) {\n let updated = this.config.updateSpacer(this.spacer.markers[0], update);\n if (updated != this.spacer.markers[0])\n this.spacer.update(update.view, 0, 0, [updated]);\n }\n let vp = update.view.viewport;\n return !RangeSet.eq(this.markers, prevMarkers, vp.from, vp.to) ||\n (this.config.lineMarkerChange ? this.config.lineMarkerChange(update) : false);\n }\n destroy() {\n for (let elt of this.elements)\n elt.destroy();\n }\n}\nclass GutterElement {\n constructor(view, height, above, markers) {\n this.height = -1;\n this.above = 0;\n this.markers = [];\n this.dom = document.createElement(\"div\");\n this.dom.className = \"cm-gutterElement\";\n this.update(view, height, above, markers);\n }\n update(view, height, above, markers) {\n if (this.height != height) {\n this.height = height;\n this.dom.style.height = height + \"px\";\n }\n if (this.above != above)\n this.dom.style.marginTop = (this.above = above) ? above + \"px\" : \"\";\n if (!sameMarkers(this.markers, markers))\n this.setMarkers(view, markers);\n }\n setMarkers(view, markers) {\n let cls = \"cm-gutterElement\", domPos = this.dom.firstChild;\n for (let iNew = 0, iOld = 0;;) {\n let skipTo = iOld, marker = iNew < markers.length ? markers[iNew++] : null, matched = false;\n if (marker) {\n let c = marker.elementClass;\n if (c)\n cls += \" \" + c;\n for (let i = iOld; i < this.markers.length; i++)\n if (this.markers[i].compare(marker)) {\n skipTo = i;\n matched = true;\n break;\n }\n }\n else {\n skipTo = this.markers.length;\n }\n while (iOld < skipTo) {\n let next = this.markers[iOld++];\n if (next.toDOM) {\n next.destroy(domPos);\n let after = domPos.nextSibling;\n domPos.remove();\n domPos = after;\n }\n }\n if (!marker)\n break;\n if (marker.toDOM) {\n if (matched)\n domPos = domPos.nextSibling;\n else\n this.dom.insertBefore(marker.toDOM(view), domPos);\n }\n if (matched)\n iOld++;\n }\n this.dom.className = cls;\n this.markers = markers;\n }\n destroy() {\n this.setMarkers(null, []); // First argument not used unless creating markers\n }\n}\nfunction sameMarkers(a, b) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!a[i].compare(b[i]))\n return false;\n return true;\n}\n/**\nFacet used to provide markers to the line number gutter.\n*/\nconst lineNumberMarkers = /*@__PURE__*/Facet.define();\n/**\nFacet used to create markers in the line number gutter next to widgets.\n*/\nconst lineNumberWidgetMarker = /*@__PURE__*/Facet.define();\nconst lineNumberConfig = /*@__PURE__*/Facet.define({\n combine(values) {\n return combineConfig(values, { formatNumber: String, domEventHandlers: {} }, {\n domEventHandlers(a, b) {\n let result = Object.assign({}, a);\n for (let event in b) {\n let exists = result[event], add = b[event];\n result[event] = exists ? (view, line, event) => exists(view, line, event) || add(view, line, event) : add;\n }\n return result;\n }\n });\n }\n});\nclass NumberMarker extends GutterMarker {\n constructor(number) {\n super();\n this.number = number;\n }\n eq(other) { return this.number == other.number; }\n toDOM() { return document.createTextNode(this.number); }\n}\nfunction formatNumber(view, number) {\n return view.state.facet(lineNumberConfig).formatNumber(number, view.state);\n}\nconst lineNumberGutter = /*@__PURE__*/activeGutters.compute([lineNumberConfig], state => ({\n class: \"cm-lineNumbers\",\n renderEmptyElements: false,\n markers(view) { return view.state.facet(lineNumberMarkers); },\n lineMarker(view, line, others) {\n if (others.some(m => m.toDOM))\n return null;\n return new NumberMarker(formatNumber(view, view.state.doc.lineAt(line.from).number));\n },\n widgetMarker: (view, widget, block) => {\n for (let m of view.state.facet(lineNumberWidgetMarker)) {\n let result = m(view, widget, block);\n if (result)\n return result;\n }\n return null;\n },\n lineMarkerChange: update => update.startState.facet(lineNumberConfig) != update.state.facet(lineNumberConfig),\n initialSpacer(view) {\n return new NumberMarker(formatNumber(view, maxLineNumber(view.state.doc.lines)));\n },\n updateSpacer(spacer, update) {\n let max = formatNumber(update.view, maxLineNumber(update.view.state.doc.lines));\n return max == spacer.number ? spacer : new NumberMarker(max);\n },\n domEventHandlers: state.facet(lineNumberConfig).domEventHandlers,\n side: \"before\"\n}));\n/**\nCreate a line number gutter extension.\n*/\nfunction lineNumbers(config = {}) {\n return [\n lineNumberConfig.of(config),\n gutters(),\n lineNumberGutter\n ];\n}\nfunction maxLineNumber(lines) {\n let last = 9;\n while (last < lines)\n last = last * 10 + 9;\n return last;\n}\nconst activeLineGutterMarker = /*@__PURE__*/new class extends GutterMarker {\n constructor() {\n super(...arguments);\n this.elementClass = \"cm-activeLineGutter\";\n }\n};\nconst activeLineGutterHighlighter = /*@__PURE__*/gutterLineClass.compute([\"selection\"], state => {\n let marks = [], last = -1;\n for (let range of state.selection.ranges) {\n let linePos = state.doc.lineAt(range.head).from;\n if (linePos > last) {\n last = linePos;\n marks.push(activeLineGutterMarker.range(linePos));\n }\n }\n return RangeSet.of(marks);\n});\n/**\nReturns an extension that adds a `cm-activeLineGutter` class to\nall gutter elements on the [active\nline](https://codemirror.net/6/docs/ref/#view.highlightActiveLine).\n*/\nfunction highlightActiveLineGutter() {\n return activeLineGutterHighlighter;\n}\n\nfunction matcher(decorator) {\n return ViewPlugin.define(view => ({\n decorations: decorator.createDeco(view),\n update(u) {\n this.decorations = decorator.updateDeco(u, this.decorations);\n },\n }), {\n decorations: v => v.decorations\n });\n}\nconst tabDeco = /*@__PURE__*/Decoration.mark({ class: \"cm-highlightTab\" });\nconst spaceDeco = /*@__PURE__*/Decoration.mark({ class: \"cm-highlightSpace\" });\nconst whitespaceHighlighter = /*@__PURE__*/matcher(/*@__PURE__*/new MatchDecorator({\n regexp: /\\t| /g,\n decoration: match => match[0] == \"\\t\" ? tabDeco : spaceDeco,\n boundary: /\\S/,\n}));\n/**\nReturns an extension that highlights whitespace, adding a\n`cm-highlightSpace` class to stretches of spaces, and a\n`cm-highlightTab` class to individual tab characters. By default,\nthe former are shown as faint dots, and the latter as arrows.\n*/\nfunction highlightWhitespace() {\n return whitespaceHighlighter;\n}\nconst trailingHighlighter = /*@__PURE__*/matcher(/*@__PURE__*/new MatchDecorator({\n regexp: /\\s+$/g,\n decoration: /*@__PURE__*/Decoration.mark({ class: \"cm-trailingSpace\" })\n}));\n/**\nReturns an extension that adds a `cm-trailingSpace` class to all\ntrailing whitespace.\n*/\nfunction highlightTrailingWhitespace() {\n return trailingHighlighter;\n}\n\n/**\n@internal\n*/\nconst __test = { HeightMap, HeightOracle, MeasuredHeights, QueryType, ChangedRange, computeOrder,\n moveVisually, clearHeightChangeFlag, getHeightChangeFlag: () => heightChangeFlag };\n\nexport { BidiSpan, BlockInfo, BlockType, Decoration, Direction, EditorView, GutterMarker, MatchDecorator, RectangleMarker, ViewPlugin, ViewUpdate, WidgetType, __test, closeHoverTooltips, crosshairCursor, drawSelection, dropCursor, getDialog, getDrawSelectionConfig, getPanel, getTooltip, gutter, gutterLineClass, gutterWidgetClass, gutters, hasHoverTooltips, highlightActiveLine, highlightActiveLineGutter, highlightSpecialChars, highlightTrailingWhitespace, highlightWhitespace, hoverTooltip, keymap, layer, lineNumberMarkers, lineNumberWidgetMarker, lineNumbers, logException, panels, placeholder, rectangularSelection, repositionTooltips, runScopeHandlers, scrollPastEnd, showDialog, showPanel, showTooltip, tooltips };\n"],"names":["nav","doc","ie_edge","ie_upto10","ie_11up","ie","gecko","chrome","webkit","safari","ios","browser","getSelection","root","target","contains","dom","node","hasSelection","selection","clientRectsFor","textRange","isEquivalentPosition","off","targetNode","targetOff","scanFor","domIndex","index","isBlockElement","dir","maxOffset","parent","flattenRect","rect","left","x","windowRect","win","vp","getScale","elt","scaleX","scaleY","scrollRectIntoView","side","y","xMargin","yMargin","ltr","cur","stop","bounding","top","moveX","moveY","rectHeight","boundingHeight","movedX","movedY","start","scrollableParents","DOMSelectionState","domSel","range","anchorNode","focusNode","anchorOffset","focusOffset","preventScrollSupported","focusPreventScroll","stack","i","scratchRange","from","to","dispatchKey","name","code","mods","options","down","up","getRoot","clearAttributes","atElementStart","offset","prev","isScrolledToBottom","textNodeBefore","startNode","startOffset","textNodeAfter","DOMPos","precise","noChildren","ContentView","view","pos","child","track","next","contentView","rm$1","_dom","after","bias","fromI","fromStart","toI","toEnd","prevEnd","end","andParent","childList","v","children","_rec","_event","ChildCursor","source","hasStart","openStart","openEnd","other","replaceRange","fromOff","toOff","insert","breakAtStart","before","last","breakAtEnd","mergeChildrenInto","dLen","MaxJoinLen","TextView","text","textDOM","result","_from","_to","textCoords","MarkView","mark","length","ch","_hasStart","detachFrom","inlineDOMAtPos","coordsInChildren","flatten","rects","r","WidgetView","widget","event","Text","custom","fromBack","WidgetBufferView","j","joinInlineInto","open","beforePos","afterPos","scan","onSameLine","fallbackRect","a","b","posA","posB","combineAttrs","noAttrs","attrsEq","ignore","keysA","keysB","key","updateAttrs","attrs","changed","getAttrs","attr","WidgetType","BlockType","Decoration","RangeValue","startSide","endSide","spec","MarkDecoration","block","PointDecoration","getInclusive","LineDecoration","of","sort","RangeSet","_a","_b","MapMode","isReplace","widgetsEq","addRange","ranges","margin","LineView","at","deco","cls","hack","totalWidth","textHeight","heightOracle","height","dist","docView","BlockWidgetView","_takeDeco","len","BlockGapWidget","ContentBuilder","disallowBlockEffectsFor","active","wrapMarks","value","lineBreak","done","remaining","take","NullWidget","cursorBefore","cursorAfter","line","decorations","dynamicDecorationMap","builder","tag","Direction","LTR","RTL","dec","str","LowTypes","ArabicTypes","Brackets","BracketStack","p","l","charType","BidiRE","BidiSpan","level","forward","order","assoc","maybe","span","isolatesEq","iA","iB","types","computeCharTypes","rFrom","rTo","isolates","outerType","iI","prevType","prevStrong","type","replace","processBracketPairs","oppositeType","sI","context","br","sJ","flags","embed","processNeutrals","beforeL","afterL","jI","fromJ","emitSpans","baseLevel","ourType","iCh","sameDir","isNum","recurse","localLevel","iScan","run","iso","upto","dirSwap","computeSectionOrder","computeOrder","direction","trivialOrder","movedOver","moveVisually","startIndex","spanI","spanEnd","nextI","nextIndex","findClusterBreak","nextSpan","EditorSelection","autoDirection","clickAddsSelectionRange","Facet","dragMovesSelection$1","mouseSelectionStyle","exceptionSink","updateListener","inputHandler","focusChangeEffect","clipboardInputFilter","clipboardOutputFilter","perLineTextDirection","values","nativeSelectionHidden","scrollHandler","ScrollTarget","isSnapshot","changes","state","scrollIntoView","StateEffect","t","setEditContextFormatting","logException","exception","handler","editable","nextPluginID","viewPlugin","plugins","ViewPlugin","id","create","domEventHandlers","domEventObservers","buildExtensions","arg","eventHandlers","eventObservers","provide","plugin","ext","pluginInst","PluginInstance","update","e","editorAttributes","contentAttributes","outerDecorations","atomicRanges","bidiIsolatedRanges","getIsolatedRanges","sets","fromDoc","toDoc","add","scrollMargins","getScrollMargins","right","bottom","m","styleModule","ChangedRange","fromA","toA","fromB","toB","set","me","diff","dI","rI","ViewUpdate","transactions","ChangeSet","tr","changedRanges","DocView","readCompositionAt","touchesComposition","composition","findCompositionRange","prevDeco","decoDiff","findChangedDeco","oldLength","observer","cView","gaps","cursor","content","compLine","effect","fix","c","mustRead","fromPointer","activeElt","focused","selectionNotFocus","force","main","anchor","head","betweenUneditable","dummy","inUneditable","rawSel","nextTo","nextToUneditable","sel","lineStart","newRange","newPos","domView","best","bestPos","childOff","viewport","contentWidth","isWider","widest","childRect","width","measure","lineHeight","charWidth","vs","allDeco","d","dynamicOuter","outerDeco","dynamic","ref","margins","targetRect","offsetWidth","offsetHeight","findCompositionNode","headPos","textBefore","textAfter","textNode","descAfter","descBefore","found","inv","marks","parentView","DecorationComparator$1","comp","inside","touched","groupAt","categorize","linePos","cat","getdx","getdy","yOverlap","upTop","upBot","domPosAtCoords","closest","closestRect","closestX","closestY","closestOverlap","above","below","aboveRect","belowRect","dx","dy","domPosInText","clipX","closestOffset","closestDY","generalSide","posAtCoords","coords","docTop","docHeight","yOffset","halfLine","bounced","posAtCoordsImprecise","element","isSuspiciousSafariCaretResult","isSuspiciousChromeCaretResult","nearest","contentRect","into","findColumn","isEndOfLineBefore","blockAt","moveToLineBoundary","includeWrap","editorRect","moveByChar","by","spans","check","char","byGroup","nextCat","CharCategory","moveVertically","distance","startPos","goal","startY","startCoords","resolvedGoal","extra","curY","charRect","skipAtomicRanges","atoms","moved","skipAtomsForSelection","updated","skipAtoms","oldPos","f","LineBreakPlaceholder","DOMReader","points","EditorState","oldLen","nextView","isEmptyToEnd","point","re","nextBreak","breakSize","fromView","isAtEnd","widgets","w","override","DOMPoint","DOMChange","typeOver","iHead","iAnchor","selPoints","selectionPoints","reader","selectionFromPoints","offFrom","offTo","applyDOMChange","domChange","change","newSel","lastKey","preferredPos","preferredSide","findDiff","applyDOMChangeInner","userEvent","defaultTr","defaultInsert","applyDefaultInsert","startState","inAtomic","mainSel","replaced","compositionRange","size","rangeChanges","selOff","minLen","adjust","move","base","InputState","origin","firefoxCopyCutHack","eventBelongsToEditor","handlers","computeHandlers","passive","exists","modifierCodes","pending","PendingKeys","EmacsyPendingKeys","mouseSelection","bindHandler","record","observers","dragScrollMargin","dragScrollSpeed","MouseSelection","startEvent","style","mustSelect","addsSelectionRange","isInPrimarySelection","getClickType","sx","sy","facet","dragMovesSelection","brokenClipboardAPI","capturePaste","doPaste","textFilter","filter","input","byLine","lastLinewiseCopy","lastLine","makeStyle","basicMouseSelection","mustFocus","mouseSel","rangeForClick","visual","findPositionSide","queryPos","BadMouseDetail","lastMouseDown","lastMouseDownCount","lastMouseDownTime","lastTime","startSel","extend","multiple","removed","startRange","removeRangeAround","inputState","dropText","direct","dropPos","draggedContent","del","ins","files","read","finishFile","s","data","captureCopy","copiedRange","linewise","isFocusChange","Annotation","focusChangeTransaction","focus","effects","getEffect","updateForFocusChange","startViewHeight","appliedFirefoxHack","wrappingWhiteSpace","heightChangeFlag","clearHeightChangeFlag","HeightOracle","lineWrapping","lines","whiteSpace","lineHeights","newHeight","h","lineLength","knownHeights","MeasuredHeights","heights","BlockInfo","_content","QueryType","Epsilon","HeightMap","nodes","oldDoc","oracle","NodeBuilder","HeightMapText","split","brk","HeightMapBranch","old","val","HeightMapBlock","_height","_oracle","_value","_type","_force","measured","HeightMapGap","firstLine","perLine","perChar","totalPerLine","guess","lineTop","linesAbove","first","singleHeight","mid","rightTop","rightOffset","subQuery","rightStart","mergeGaps","rebalance","around","relevantWidgetHeight","breaks","gap","heightRelevantDecoChanges","DecorationComparator","visiblePixelRange","paddingTop","parentRect","inWindow","fullPixelRange","LineGap","displaySize","gA","gB","viewState","wrapping","LineGapWidget","vertical","ViewState","IdScaler","guessWrapping","viewports","Viewport","scaler","BigScaler","scaleBlock","scrollTarget","contentChanges","heightChanges","prevHeight","scrollAnchor","viewportChange","refresh","domRect","measureContent","paddingBottom","scrollTop","pixelViewport","dTop","dBottom","inView","marginTop","map","visibleTop","visibleBottom","viewHeight","topPos","mapped","current","mayMeasure","halfMargin","doubleMargin","addGap","structure","avoid","find","checkLine","lineStructure","viewFrom","viewTo","marginHeight","bot","targetFrac","findFraction","spaceFrac","findPosition","marginWidth","horizOffset","pxLeft","pxRight","fraction","nw","stateDeco","total","ratio","counted","array","heightMap","vpHeight","domBase","obj","n","bTop","bBottom","theme","strs","darkTheme","baseThemeID","StyleModule","baseLightID","baseDarkID","lightDarkIDs","buildTheme","scopes","baseTheme$1","observeOptions","useCharData","DOMObserver","mutations","mut","EditContextManager","entries","g","wasChanged","safariSelectionRangeHack","local","keyCode","flush","records","readSelection","handled","rec","childBefore","findChild","childAfter","_c","curView","buildSelectionRangeFromRange","curAnchor","deletes","newLen","format","lineStyle","thickness","drifted","abort","_fromB","_toB","reverted","contextPos","clipLen","editorPos","EditorView","config","dispatch","trs","Transaction","redrawn","attrsChanged","focusFlag","dispatchFocus","pendingKey","CachedOrder","listener","newState","hadFocus","prevSpecs","specs","newPlugins","sDOM","scrollAnchorPos","scrollAnchorHeight","measuring","BadMeasure","editorAttrs","attrsFromFacet","contentAttrs","changedContent","changedEditor","div","nonce","request","known","initial","MaxBidiLine","entry","scrollLeft","prefix","Prec","fresh","cache","lastDir","sources","currentPlatform","normalizeKeyName","platform","parts","alt","ctrl","shift","meta","mod","modifiers","handleKeyEvents","runHandlers","getKeymap","keymap","Keymaps","bindings","buildKeymap","runScopeHandlers","scope","storedPrefix","PrefixTimeout","bound","isPrefix","checkPrefix","is","command","preventDefault","stopPropagation","scopeObj","k","ourObj","full","binding","any","currentKeyEvent","keyName","charCode","codePointAt","isChar","codePointSize","prevented","ran","runFor","cmd","baseName","shiftName","RectangleMarker","className","getBase","rectanglesForRange","wrappedLine","lineElt","leftSide","rightSide","startBlock","endBlock","visualStart","visualEnd","pieces","drawForLine","drawForWidget","between","piece","horizontal","addSpan","fromOpen","toOpen","fromCoords","toCoords","endPos","docLine","spanFrom","spanTo","sameMarker","LayerView","layer","layerOrder","markers","oldI","marker","selectionConfig","configs","combineConfig","drawSelection","cursorLayer","selectionLayer","hideNativeSelection","configChanged","conf","cursors","prim","confChange","setBlinkRate","setDropCursorPos","mapping","dropCursorPos","StateField","drawDropCursor","cursorPos","outer","dropCursor","iterMatches","matchRanges","maxLength","visible","MatchDecorator","regexp","decoration","decorate","boundary","match","_view","build","RangeSetBuilder","changeFrom","changeTo","_f","_t","updateFrom","updateTo","fromLine","toLine","UnicodeRegexpSupport","Specials","Names","_supportsTabSize","supportsTabSize","styles","specialCharConfig","highlightSpecialChars","specialCharPlugin","_plugin","col","countColumn","TabWidget","SpecialCharWidget","DefaultPlaceholder","placeholder$1","ph","desc","highlightActiveLine","activeLineHighlighter","lineDeco","lastLineStart","Placeholder","wrap","placeholder","MaxOff","rectangleFor","startLine","endLine","startOff","endOff","startCol","endCol","absoluteColumn","getPos","rectangleSelectionStyle","newStart","newLine","_extend","rectangularSelection","keys","showCrosshair","crosshairCursor","getter","isDown","Outside","TooltipViewManager","createTooltipView","removeTooltipView","tooltips","tooltipViews","newAbove","tip","tooltipView","windowSpace","docElt","tooltipConfig","knownHeight","tooltipPlugin","showTooltip","tooltip","shouldMeasure","newConfig","arrow","makeAbsolute","tv","space","others","tView","arrowHeight","noOffset","spaceVert","setLeftStyle","arrowLeft","baseTheme","showHoverTooltip","inputs","HoverTooltipHost","hostedView","given","showHoverTooltipHost","HoverPlugin","field","setHover","hoverTime","hovered","lastMove","posCoords","bidi","rtl","isInTooltip","isOverRange","watch","tooltipMargin","arrowRect","docBottom","hoverTooltip","hoverState","copy","closeHoverTooltipEffect","getTooltip","panelConfig","topContainer","bottomContainer","getPanel","panel","panelPlugin","showPanel","PanelGroup","panels","mount","container","curDOM","rm","GutterMarker","gutterLineClass","gutterWidgetClass","defaults","activeGutters","gutter","gutters","unfixGutters","gutterView","SingleGutterView","vpA","vpB","vpOverlap","min","detach","lineClasses","classSet","contexts","UpdateContext","advanceCursor","cx","asArray","collect","newElt","GutterElement","extraMarkers","localMarkers","forLine","prop","prevMarkers","sameMarkers","domPos","iNew","iOld","skipTo","matched","lineNumberMarkers","lineNumberWidgetMarker","lineNumberConfig","NumberMarker","number","formatNumber","lineNumberGutter","maxLineNumber","spacer","max","lineNumbers","activeLineGutterMarker","activeLineGutterHighlighter","highlightActiveLineGutter"],"mappings":"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","x_google_ignoreList":[0]}