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

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 (1637) 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-flow@0.1.6/node_modules/remark-flow/dist/remark-custom-variable.js +1 -1
  549. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/remark-flow@0.1.6/node_modules/remark-flow/dist/remark-interaction.js +1 -1
  550. 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
  551. 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
  552. 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
  553. 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
  554. 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
  555. 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
  556. 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
  557. 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
  558. 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
  559. 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
  560. 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
  561. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/index.js +1 -1
  562. 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
  563. 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
  564. 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
  565. 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
  566. 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
  567. 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
  568. package/dist/_virtual/advancedFormat.js +1 -1
  569. package/dist/_virtual/customParseFormat.js +1 -1
  570. package/dist/_virtual/dayjs.min.js +1 -1
  571. package/dist/_virtual/index11.js +3 -2
  572. package/dist/_virtual/index11.js.map +1 -1
  573. package/dist/_virtual/index12.js +2 -3
  574. package/dist/_virtual/index12.js.map +1 -1
  575. package/dist/_virtual/index3.js +4 -5
  576. package/dist/_virtual/index3.js.map +1 -1
  577. package/dist/_virtual/index4.js +5 -4
  578. package/dist/_virtual/index4.js.map +1 -1
  579. package/dist/_virtual/index5.js +3 -5
  580. package/dist/_virtual/index5.js.map +1 -1
  581. package/dist/_virtual/index6.js +4 -4
  582. package/dist/_virtual/index7.js +5 -2
  583. package/dist/_virtual/index7.js.map +1 -1
  584. package/dist/_virtual/index8.js +2 -2
  585. package/dist/_virtual/index9.js +2 -3
  586. package/dist/_virtual/index9.js.map +1 -1
  587. package/dist/_virtual/isoWeek.js +1 -1
  588. package/dist/_virtual/jsx-runtime.js +1 -1
  589. package/dist/assets/markdown-flow-ui.css +10 -1
  590. package/dist/components/ContentRender/CodeBlock.js +2 -2
  591. package/dist/components/ContentRender/ContentRender.js +116 -173
  592. package/dist/components/ContentRender/ContentRender.js.map +1 -1
  593. package/dist/components/ContentRender/ContentRender.stories.d.ts +0 -1
  594. package/dist/components/ContentRender/plugins/MermaidChart.js +1 -1
  595. package/dist/components/ContentRender/utils/custom-variable-props.js +1 -1
  596. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.js +6 -6
  597. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.js +7 -7
  598. package/dist/components/MarkdownFlowEditor/components/ImageInject.js +3 -3
  599. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.js +1 -1
  600. package/dist/components/MarkdownFlowEditor/components/VariableSelect.js +5 -5
  601. package/dist/components/MarkdownFlowEditor/components/VideoInject.js +1 -1
  602. package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.js +1 -1
  603. package/dist/components/MarkdownFlowEditor/plugins/PlaceholderWidget.js +1 -1
  604. package/dist/components/MarkdownFlowEditor/plugins/SyntaxHighlighter.js +1 -1
  605. package/dist/components/MarkdownFlowEditor/plugins/VariablePlaceholder.js +1 -1
  606. package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.js +1 -1
  607. package/dist/components/ui/button.js +1 -1
  608. package/dist/components/ui/checkbox.js +1 -1
  609. package/dist/components/ui/dialog.js +2 -2
  610. package/dist/components/ui/inputGroup/button.js +1 -1
  611. package/dist/components/ui/inputGroup/input-group.d.ts +1 -1
  612. package/dist/components/ui/inputGroup/textarea.js +5 -5
  613. package/dist/components/ui/popover.js +1 -1
  614. package/dist/components/ui/tooltip.js +1 -1
  615. package/dist/lib/utils.js +1 -1
  616. package/dist/markdown-flow-ui-lib.css +2 -2
  617. package/package.json +4 -8
  618. 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
  619. 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
  620. 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
  621. 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
  622. 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
  623. 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
  624. 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
  625. 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
  626. 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
  627. 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
  628. 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
  629. 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
  630. 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
  631. 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
  632. 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
  633. 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
  634. 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
  635. 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
  636. 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
  637. 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
  638. 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
  639. 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
  640. 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
  641. 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
  642. 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
  643. 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
  644. 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
  645. 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
  646. 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
  647. 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
  648. 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
  649. 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
  650. 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
  651. 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
  652. 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
  653. 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
  654. 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
  655. 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
  656. 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
  657. 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
  658. 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
  659. 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
  660. 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
  661. 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
  662. 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
  663. 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
  664. 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
  665. 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
  666. 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
  667. 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
  668. 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
  669. 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
  670. 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
  671. 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
  672. 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
  673. 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
  674. 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
  675. 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
  676. 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
  677. 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
  678. 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
  679. 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
  680. 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
  681. 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
  682. 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
  683. 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
  684. 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
  685. 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
  686. 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
  687. 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
  688. 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
  689. 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
  690. 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
  691. 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
  692. 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
  693. 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
  694. 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
  695. 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
  696. 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
  697. 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
  698. 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
  699. 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
  700. 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
  701. 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
  702. 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
  703. 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
  704. 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
  705. 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
  706. 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
  707. 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
  708. 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
  709. 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
  710. 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
  711. 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
  712. 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
  713. 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
  714. 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
  715. 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
  716. 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
  717. 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
  718. 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
  719. 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
  720. 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
  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/getDefaultExtensions.js +0 -40
  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/getDefaultExtensions.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/index.js +0 -85
  724. 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
  725. 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
  726. 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
  727. 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
  728. 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
  729. 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
  730. 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
  731. 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
  732. 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
  733. 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
  734. 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
  735. 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
  736. 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
  737. 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
  738. 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
  739. 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
  740. 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
  741. 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
  742. 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
  743. 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
  744. 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
  745. 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
  746. 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
  747. 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
  748. 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
  749. 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
  750. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/dayjs.min.js.map +0 -1
  751. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/advancedFormat.js.map +0 -1
  752. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/customParseFormat.js +0 -128
  753. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/customParseFormat.js.map +0 -1
  754. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/duration.js +0 -137
  755. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/duration.js.map +0 -1
  756. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isoWeek.js +0 -34
  757. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isoWeek.js.map +0 -1
  758. 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
  759. 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
  760. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/dompurify@3.3.1/node_modules/dompurify/dist/purify.es.js +0 -553
  761. 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
  762. 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
  763. 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
  764. 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
  765. 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
  766. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/katex@0.16.27/node_modules/katex/dist/katex.js +0 -11691
  767. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/katex@0.16.27/node_modules/katex/dist/katex.js.map +0 -1
  768. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_DataView.js +0 -7
  769. 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
  770. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Hash.js +0 -21
  771. 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
  772. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_ListCache.js +0 -21
  773. 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
  774. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Map.js +0 -7
  775. 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
  776. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_MapCache.js +0 -21
  777. 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
  778. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Promise.js +0 -7
  779. 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
  780. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Set.js +0 -7
  781. 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
  782. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_SetCache.js +0 -14
  783. 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
  784. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Stack.js +0 -19
  785. 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
  786. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Symbol.js +0 -6
  787. 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
  788. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Uint8Array.js +0 -6
  789. 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
  790. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_WeakMap.js +0 -7
  791. 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
  792. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_apply.js +0 -17
  793. 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
  794. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayEach.js +0 -9
  795. 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
  796. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayFilter.js +0 -11
  797. 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
  798. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayIncludes.js +0 -9
  799. 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
  800. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayLikeKeys.js +0 -21
  801. 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
  802. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayMap.js +0 -9
  803. 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
  804. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayPush.js +0 -9
  805. 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
  806. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayReduce.js +0 -10
  807. 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
  808. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arraySome.js +0 -10
  809. 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
  810. 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
  811. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_assignValue.js +0 -11
  812. 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
  813. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_assocIndexOf.js +0 -11
  814. 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
  815. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseAssign.js +0 -9
  816. 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
  817. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseAssignIn.js +0 -9
  818. 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
  819. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseAssignValue.js +0 -13
  820. 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
  821. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseClone.js +0 -66
  822. 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
  823. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseCreate.js +0 -18
  824. 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
  825. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseEach.js +0 -7
  826. 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
  827. 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
  828. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseFilter.js +0 -11
  829. 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
  830. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseFindIndex.js +0 -10
  831. 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
  832. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseFlatten.js +0 -14
  833. 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
  834. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseFor.js +0 -6
  835. 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
  836. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseForOwn.js +0 -9
  837. 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
  838. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseGet.js +0 -12
  839. 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
  840. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseGetAllKeys.js +0 -10
  841. 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
  842. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseGetTag.js +0 -11
  843. 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
  844. 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
  845. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseHas.js +0 -8
  846. 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
  847. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseHasIn.js +0 -7
  848. 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
  849. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIndexOf.js +0 -10
  850. 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
  851. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsArguments.js +0 -10
  852. 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
  853. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsEqual.js +0 -9
  854. 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
  855. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsEqualDeep.js +0 -33
  856. 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
  857. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsMap.js +0 -10
  858. 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
  859. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsMatch.js +0 -30
  860. 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
  861. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsNaN.js +0 -7
  862. 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
  863. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsNative.js +0 -17
  864. 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
  865. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsSet.js +0 -10
  866. 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
  867. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsTypedArray.js +0 -13
  868. 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
  869. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIteratee.js +0 -12
  870. 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
  871. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseKeys.js +0 -15
  872. 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
  873. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseKeysIn.js +0 -16
  874. 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
  875. 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
  876. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMap.js +0 -12
  877. 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
  878. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMatches.js +0 -13
  879. 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
  880. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMatchesProperty.js +0 -18
  881. 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
  882. 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
  883. 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
  884. 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
  885. 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
  886. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_basePickBy.js +0 -14
  887. 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
  888. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseProperty.js +0 -9
  889. 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
  890. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_basePropertyDeep.js +0 -10
  891. 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
  892. 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
  893. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseReduce.js +0 -9
  894. 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
  895. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseRest.js +0 -10
  896. 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
  897. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseSet.js +0 -25
  898. 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
  899. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseSetToString.js +0 -15
  900. 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
  901. 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
  902. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseTimes.js +0 -9
  903. 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
  904. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseToString.js +0 -19
  905. 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
  906. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseTrim.js +0 -9
  907. 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
  908. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseUnary.js +0 -9
  909. 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
  910. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseUniq.js +0 -31
  911. 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
  912. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseValues.js +0 -10
  913. 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
  914. 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
  915. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cacheHas.js +0 -7
  916. 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
  917. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_castFunction.js +0 -8
  918. 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
  919. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_castPath.js +0 -11
  920. 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
  921. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneArrayBuffer.js +0 -9
  922. 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
  923. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneBuffer.js +0 -12
  924. 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
  925. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneDataView.js +0 -9
  926. 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
  927. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneRegExp.js +0 -9
  928. 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
  929. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneSymbol.js +0 -9
  930. 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
  931. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneTypedArray.js +0 -9
  932. 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
  933. 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
  934. 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
  935. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copyArray.js +0 -10
  936. 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
  937. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copyObject.js +0 -15
  938. 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
  939. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copySymbols.js +0 -9
  940. 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
  941. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copySymbolsIn.js +0 -9
  942. 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
  943. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_coreJsData.js +0 -6
  944. 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
  945. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createAssigner.js +0 -16
  946. 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
  947. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createBaseEach.js +0 -16
  948. 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
  949. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createBaseFor.js +0 -14
  950. 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
  951. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createFind.js +0 -20
  952. 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
  953. 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
  954. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createSet.js +0 -10
  955. 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
  956. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_defineProperty.js +0 -12
  957. 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
  958. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_equalArrays.js +0 -41
  959. 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
  960. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_equalByTag.js +0 -46
  961. 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
  962. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_equalObjects.js +0 -37
  963. 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
  964. 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
  965. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_freeGlobal.js +0 -5
  966. 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
  967. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getAllKeys.js +0 -10
  968. 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
  969. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getAllKeysIn.js +0 -10
  970. 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
  971. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getMapData.js +0 -9
  972. 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
  973. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getMatchData.js +0 -13
  974. 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
  975. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getNative.js +0 -10
  976. 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
  977. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getPrototype.js +0 -6
  978. 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
  979. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getRawTag.js +0 -16
  980. 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
  981. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getSymbols.js +0 -11
  982. 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
  983. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getSymbolsIn.js +0 -13
  984. 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
  985. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getTag.js +0 -29
  986. 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
  987. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getValue.js +0 -7
  988. 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
  989. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hasPath.js +0 -20
  990. 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
  991. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashClear.js +0 -8
  992. 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
  993. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashDelete.js +0 -8
  994. 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
  995. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashGet.js +0 -14
  996. 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
  997. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashHas.js +0 -10
  998. 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
  999. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashSet.js +0 -10
  1000. 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
  1001. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_initCloneArray.js +0 -9
  1002. 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
  1003. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_initCloneByTag.js +0 -43
  1004. 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
  1005. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_initCloneObject.js +0 -10
  1006. 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
  1007. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isFlattenable.js +0 -11
  1008. 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
  1009. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isIndex.js +0 -9
  1010. 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
  1011. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isIterateeCall.js +0 -14
  1012. 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
  1013. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isKey.js +0 -13
  1014. 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
  1015. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isKeyable.js +0 -8
  1016. 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
  1017. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isMasked.js +0 -12
  1018. 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
  1019. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isPrototype.js +0 -9
  1020. 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
  1021. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isStrictComparable.js +0 -8
  1022. 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
  1023. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheClear.js +0 -7
  1024. 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
  1025. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheDelete.js +0 -13
  1026. 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
  1027. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheGet.js +0 -9
  1028. 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
  1029. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheHas.js +0 -8
  1030. 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
  1031. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheSet.js +0 -9
  1032. 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
  1033. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheClear.js +0 -14
  1034. 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
  1035. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheDelete.js +0 -9
  1036. 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
  1037. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheGet.js +0 -8
  1038. 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
  1039. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheHas.js +0 -8
  1040. 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
  1041. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheSet.js +0 -9
  1042. 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
  1043. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapToArray.js +0 -10
  1044. 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
  1045. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_matchesStrictComparable.js +0 -9
  1046. 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
  1047. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_memoizeCapped.js +0 -12
  1048. 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
  1049. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nativeCreate.js +0 -6
  1050. 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
  1051. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nativeKeys.js +0 -6
  1052. 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
  1053. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nativeKeysIn.js +0 -11
  1054. 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
  1055. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nodeUtil.js +0 -12
  1056. 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
  1057. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_objectToString.js +0 -8
  1058. 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
  1059. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_overArg.js +0 -9
  1060. 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
  1061. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_overRest.js +0 -16
  1062. 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
  1063. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_root.js +0 -6
  1064. 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
  1065. 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
  1066. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setCacheAdd.js +0 -8
  1067. 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
  1068. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setCacheHas.js +0 -7
  1069. 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
  1070. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setToArray.js +0 -10
  1071. 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
  1072. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setToString.js +0 -7
  1073. 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
  1074. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_shortOut.js +0 -17
  1075. 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
  1076. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackClear.js +0 -8
  1077. 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
  1078. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackDelete.js +0 -8
  1079. 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
  1080. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackGet.js +0 -7
  1081. 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
  1082. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackHas.js +0 -7
  1083. 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
  1084. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackSet.js +0 -18
  1085. 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
  1086. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_strictIndexOf.js +0 -10
  1087. 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
  1088. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stringToPath.js +0 -11
  1089. 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
  1090. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_toKey.js +0 -11
  1091. 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
  1092. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_toSource.js +0 -18
  1093. 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
  1094. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_trimmedEndIndex.js +0 -10
  1095. 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
  1096. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/clone.js +0 -9
  1097. 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
  1098. 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
  1099. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/constant.js +0 -9
  1100. 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
  1101. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/defaults.js +0 -18
  1102. 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
  1103. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/eq.js +0 -7
  1104. 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
  1105. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/filter.js +0 -12
  1106. 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
  1107. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/find.js +0 -7
  1108. 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
  1109. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/findIndex.js +0 -15
  1110. 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
  1111. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/flatMap.js +0 -9
  1112. 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
  1113. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/flatten.js +0 -9
  1114. 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
  1115. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/forEach.js +0 -12
  1116. 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
  1117. 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
  1118. 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
  1119. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/get.js +0 -9
  1120. 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
  1121. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/has.js +0 -9
  1122. 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
  1123. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/hasIn.js +0 -9
  1124. 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
  1125. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/identity.js +0 -7
  1126. 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
  1127. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArguments.js +0 -11
  1128. 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
  1129. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArray.js +0 -5
  1130. 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
  1131. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArrayLike.js +0 -9
  1132. 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
  1133. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArrayLikeObject.js +0 -9
  1134. 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
  1135. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isBuffer.js +0 -7
  1136. 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
  1137. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isEmpty.js +0 -28
  1138. 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
  1139. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isFunction.js +0 -13
  1140. 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
  1141. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isLength.js +0 -8
  1142. 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
  1143. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isMap.js +0 -8
  1144. 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
  1145. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isObject.js +0 -8
  1146. 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
  1147. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isObjectLike.js +0 -7
  1148. 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
  1149. 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
  1150. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isSet.js +0 -8
  1151. 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
  1152. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isSymbol.js +0 -10
  1153. 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
  1154. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isTypedArray.js +0 -8
  1155. 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
  1156. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isUndefined.js +0 -7
  1157. 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
  1158. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/keys.js +0 -10
  1159. 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
  1160. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/keysIn.js +0 -10
  1161. 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
  1162. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/last.js +0 -8
  1163. 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
  1164. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/map.js +0 -12
  1165. 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
  1166. 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
  1167. 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
  1168. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/memoize.js +0 -19
  1169. 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
  1170. 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
  1171. 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
  1172. 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
  1173. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/noop.js +0 -6
  1174. 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
  1175. 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
  1176. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/property.js +0 -11
  1177. 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
  1178. 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
  1179. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/reduce.js +0 -13
  1180. 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
  1181. 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
  1182. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/stubArray.js +0 -7
  1183. 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
  1184. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/stubFalse.js +0 -7
  1185. 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
  1186. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toFinite.js +0 -15
  1187. 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
  1188. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toInteger.js +0 -9
  1189. 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
  1190. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toNumber.js +0 -23
  1191. 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
  1192. 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
  1193. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toString.js +0 -8
  1194. 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
  1195. 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
  1196. 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
  1197. 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
  1198. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/values.js +0 -9
  1199. 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
  1200. 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
  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/Icon.js +0 -36
  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/Icon.js.map +0 -1
  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/createLucideIcon.js +0 -22
  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/createLucideIcon.js.map +0 -1
  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/defaultAttributes.js +0 -15
  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/defaultAttributes.js.map +0 -1
  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/braces.js +0 -19
  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/braces.js.map +0 -1
  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/check.js +0 -7
  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/check.js.map +0 -1
  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/circle-check.js +0 -10
  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/circle-check.js.map +0 -1
  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/copy.js +0 -10
  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/copy.js.map +0 -1
  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/file-type.js +0 -13
  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/file-type.js.map +0 -1
  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/image.js +0 -11
  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/image.js.map +0 -1
  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/loader-circle.js +0 -7
  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/loader-circle.js.map +0 -1
  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/plus.js +0 -10
  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/plus.js.map +0 -1
  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/search.js +0 -10
  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/search.js.map +0 -1
  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/square-check.js +0 -10
  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/square-check.js.map +0 -1
  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/square-play.js +0 -10
  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/icons/square-play.js.map +0 -1
  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/icons/text-cursor-input.js +0 -13
  1230. 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
  1231. 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
  1232. 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
  1233. 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
  1234. 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
  1235. 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
  1236. 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
  1237. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/marked@16.4.2/node_modules/marked/lib/marked.esm.js +0 -1095
  1238. 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
  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/footer.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/blockquote.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/break.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/code.js +0 -16
  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/code.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/delete.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/emphasis.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/footnote-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/heading.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/html.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/image-reference.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/image.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/index.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/inline-code.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/link-reference.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/link.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/list-item.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/list.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/paragraph.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/handlers/root.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/handlers/strong.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/handlers/table-cell.js.map +0 -1
  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/handlers/table-row.js.map +0 -1
  1262. 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
  1263. 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
  1264. 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
  1265. 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
  1266. 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
  1267. 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
  1268. 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
  1269. 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
  1270. 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
  1271. 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
  1272. 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
  1273. 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
  1274. 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
  1275. 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
  1276. 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
  1277. 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
  1278. 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
  1279. 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
  1280. 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
  1281. 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
  1282. 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
  1283. 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
  1284. 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
  1285. 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
  1286. 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
  1287. 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
  1288. 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
  1289. 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
  1290. 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
  1291. 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
  1292. 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
  1293. 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
  1294. 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
  1295. 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
  1296. 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
  1297. 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
  1298. 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
  1299. 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
  1300. 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
  1301. 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
  1302. 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
  1303. 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
  1304. 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
  1305. 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
  1306. 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
  1307. 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
  1308. 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
  1309. 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
  1310. 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
  1311. 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
  1312. 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
  1313. 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
  1314. 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
  1315. 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
  1316. 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
  1317. 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
  1318. 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
  1319. 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
  1320. 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
  1321. 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
  1322. 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
  1323. 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
  1324. 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
  1325. 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
  1326. 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
  1327. 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
  1328. 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
  1329. 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
  1330. 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
  1331. 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
  1332. 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
  1333. 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
  1334. 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
  1335. 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
  1336. 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
  1337. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/mermaid.core.js +0 -705
  1338. 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
  1339. 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
  1340. 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
  1341. 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
  1342. 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
  1343. 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
  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/Collection.js.map +0 -1
  1345. 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
  1346. 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
  1347. 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
  1348. 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
  1349. 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
  1350. 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
  1351. 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
  1352. 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
  1353. 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
  1354. 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
  1355. 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
  1356. 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
  1357. 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
  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/Children/toArray.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/Dom/canUseDom.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/Dom/findDOMNode.js +0 -25
  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/Dom/findDOMNode.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/React/isFragment.js +0 -14
  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/React/isFragment.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/hooks/useEvent.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/hooks/useLayoutEffect.js.map +0 -1
  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/hooks/useMemo.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/hooks/useMergedState.js +0 -26
  1368. 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
  1369. 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
  1370. 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
  1371. 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
  1372. 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
  1373. 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
  1374. 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
  1375. 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
  1376. 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
  1377. 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
  1378. 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
  1379. 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
  1380. 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
  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/context.js.map +0 -1
  1382. 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
  1383. 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
  1384. 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
  1385. 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
  1386. 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
  1387. 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
  1388. 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
  1389. 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
  1390. 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
  1391. 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
  1392. 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
  1393. 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
  1394. 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
  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/Combination.js.map +0 -1
  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/SideEffect.js +0 -116
  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/SideEffect.js.map +0 -1
  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/UI.js +0 -32
  1399. 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
  1400. 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
  1401. 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
  1402. 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
  1403. 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
  1404. 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
  1405. 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
  1406. 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
  1407. 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
  1408. 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
  1409. 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
  1410. 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
  1411. 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
  1412. 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
  1413. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/react@19.1.2/node_modules/react/jsx-runtime.js.map +0 -1
  1414. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/scheduler@0.26.0/node_modules/scheduler/cjs/scheduler.development.js +0 -228
  1415. 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
  1416. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/scheduler@0.26.0/node_modules/scheduler/cjs/scheduler.production.js +0 -225
  1417. 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
  1418. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/scheduler@0.26.0/node_modules/scheduler/index.js +0 -11
  1419. package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/scheduler@0.26.0/node_modules/scheduler/index.js.map +0 -1
  1420. 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
  1421. 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
  1422. 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
  1423. 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
  1424. 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
  1425. 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
  1426. 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
  1427. 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
  1428. 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
  1429. 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
  1430. 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
  1431. 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
  1432. 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
  1433. package/dist/_virtual/client.js +0 -6
  1434. package/dist/_virtual/client.js.map +0 -1
  1435. package/dist/_virtual/client2.js +0 -5
  1436. package/dist/_virtual/client2.js.map +0 -1
  1437. package/dist/_virtual/duration.js +0 -8
  1438. package/dist/_virtual/duration.js.map +0 -1
  1439. package/dist/_virtual/duration2.js +0 -5
  1440. package/dist/_virtual/duration2.js.map +0 -1
  1441. package/dist/_virtual/index13.js +0 -5
  1442. package/dist/_virtual/index13.js.map +0 -1
  1443. package/dist/_virtual/react-dom-client.development.js +0 -5
  1444. package/dist/_virtual/react-dom-client.development.js.map +0 -1
  1445. package/dist/_virtual/react-dom-client.production.js +0 -5
  1446. package/dist/_virtual/react-dom-client.production.js.map +0 -1
  1447. package/dist/_virtual/scheduler.development.js +0 -5
  1448. package/dist/_virtual/scheduler.development.js.map +0 -1
  1449. package/dist/_virtual/scheduler.production.js +0 -5
  1450. package/dist/_virtual/scheduler.production.js.map +0 -1
  1451. package/dist/components/ContentRender/IframeSandbox.d.ts +0 -7
  1452. package/dist/components/ContentRender/IframeSandbox.js +0 -60
  1453. package/dist/components/ContentRender/IframeSandbox.js.map +0 -1
  1454. package/dist/components/ContentRender/SandboxApp.d.ts +0 -6
  1455. package/dist/components/ContentRender/SandboxApp.js +0 -21
  1456. package/dist/components/ContentRender/SandboxApp.js.map +0 -1
  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/arrayLikeToArray.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/arrayWithHoles.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/arrayWithoutHoles.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/assertThisInitialized.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/classCallCheck.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/createClass.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/createSuper.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/defineProperty.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/extends.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/getPrototypeOf.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/inherits.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/isNativeReflectConstruct.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/iterableToArray.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/iterableToArrayLimit.js +0 -0
  1471. /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
  1472. /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
  1473. /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
  1474. /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
  1475. /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
  1476. /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
  1477. /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
  1478. /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
  1479. /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
  1480. /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
  1481. /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
  1482. /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
  1483. /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
  1484. /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
  1485. /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
  1486. /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
  1487. /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
  1488. /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
  1489. /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
  1490. /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
  1491. /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
  1492. /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
  1493. /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
  1494. /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
  1495. /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
  1496. /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
  1497. /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
  1498. /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
  1499. /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
  1500. /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
  1501. /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
  1502. /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
  1503. /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
  1504. /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
  1505. /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
  1506. /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
  1507. /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
  1508. /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
  1509. /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
  1510. /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
  1511. /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
  1512. /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
  1513. /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
  1514. /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
  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/_assignMergeValue.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/_baseExtremum.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/_baseGt.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/_baseLt.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/_baseMerge.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/_baseMergeDeep.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/_baseOrderBy.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/_basePick.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/_baseRange.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/_baseSortBy.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/_baseZipObject.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/_compareAscending.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/_compareMultiple.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/_createRange.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/_flatRest.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/_safeGet.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/cloneDeep.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/forIn.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/forOwn.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/isPlainObject.js +0 -0
  1535. /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
  1536. /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
  1537. /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
  1538. /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
  1539. /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
  1540. /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
  1541. /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
  1542. /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
  1543. /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
  1544. /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
  1545. /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
  1546. /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
  1547. /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
  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/footer.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/blockquote.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/break.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/delete.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/emphasis.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/footnote-reference.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/heading.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/html.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/image-reference.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/image.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/index.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/handlers/inline-code.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/handlers/link-reference.js +0 -0
  1561. /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
  1562. /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
  1563. /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
  1564. /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
  1565. /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
  1566. /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
  1567. /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
  1568. /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
  1569. /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
  1570. /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
  1571. /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
  1572. /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
  1573. /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
  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-4BX2VUAB.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-55IACEB6.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/chunk-AGHRB4JF.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/chunk-ATLVNIR6.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/chunk-B4BG7PRW.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/chunk-CVBHYZKI.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/chunk-DI55MBZ5.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/chunk-EXTU4WIE.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/chunk-FMBD7UC4.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/chunk-HN2XXSSU.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/chunk-JZLCHNYA.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/chunk-N4CR4FBY.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/chunk-QN33PNHL.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/chunk-QXUST7PY.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/chunk-QZHKN3VN.js +0 -0
  1589. /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
  1590. /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
  1591. /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
  1592. /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
  1593. /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
  1594. /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
  1595. /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
  1596. /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
  1597. /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
  1598. /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
  1599. /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
  1600. /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
  1601. /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
  1602. /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
  1603. /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
  1604. /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
  1605. /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
  1606. /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
  1607. /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
  1608. /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
  1609. /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
  1610. /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
  1611. /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
  1612. /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
  1613. /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
  1614. /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
  1615. /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
  1616. /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
  1617. /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
  1618. /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
  1619. /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
  1620. /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
  1621. /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
  1622. /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
  1623. /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
  1624. /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
  1625. /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
  1626. /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
  1627. /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
  1628. /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
  1629. /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
  1630. /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
  1631. /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
  1632. /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
  1633. /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
  1634. /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
  1635. /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
  1636. /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
  1637. /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
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../../../../../../node_modules/.pnpm/@codemirror+view@6.39.11/node_modules/@codemirror/view/dist/index.js"],"sourcesContent":["import { RangeSet, MapMode, RangeValue, findClusterBreak, EditorSelection, Facet, StateEffect, ChangeSet, Text, 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 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 setAttrs(dom, attrs) {\n for (let i = dom.attributes.length - 1; i >= 0; i--) {\n let name = dom.attributes[i].name;\n if (attrs[name] == null)\n dom.removeAttribute(name);\n }\n for (let name in attrs) {\n let value = attrs[name];\n if (name == \"style\")\n dom.style.cssText = value;\n else if (dom.getAttribute(name) != value)\n dom.setAttribute(name, value);\n }\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.attrs = spec.class && spec.attributes ? combineAttrs(spec.attributes, { class: spec.class })\n : spec.class ? { class: spec.class } : spec.attributes || noAttrs;\n }\n eq(other) {\n return this == other || other instanceof MarkDecoration && this.tagName == other.tagName && attrsEq(this.attrs, other.attrs);\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/**\nA block wrapper defines a DOM node that wraps lines or other block\nwrappers at the top of the document. It affects any line or block\nwidget that starts inside its range, including blocks starting\ndirectly at `from` but not including `to`.\n*/\nclass BlockWrapper extends RangeValue {\n constructor(tagName, attributes) {\n super();\n this.tagName = tagName;\n this.attributes = attributes;\n }\n eq(other) {\n return other == this ||\n other instanceof BlockWrapper && this.tagName == other.tagName && attrsEq(this.attributes, other.attributes);\n }\n /**\n Create a block wrapper object with the given tag name and\n attributes.\n */\n static create(spec) {\n return new BlockWrapper(spec.tagName, spec.attributes || noAttrs);\n }\n /**\n Create a range set from the given block wrapper ranges.\n */\n static set(of, sort = false) {\n return RangeSet.of(of, sort);\n }\n}\nBlockWrapper.prototype.startSide = BlockWrapper.prototype.endSide = -1;\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 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}\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}\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 blockWrappers = /*@__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 // Extend a set to cover all the content in `ranges`, which is a\n // flat array with each pair of numbers representing fromB/toB\n // positions. These pairs are generated in unchanged ranges, so the\n // offset between doc A and doc B is the same for their start and\n // end points.\n static extendWithRanges(diff, ranges) {\n if (ranges.length == 0)\n return diff;\n let result = [];\n for (let dI = 0, rI = 0, off = 0;;) {\n let nextD = dI < diff.length ? diff[dI].fromB : 1e9;\n let nextR = rI < ranges.length ? ranges[rI] : 1e9;\n let fromB = Math.min(nextD, nextR);\n if (fromB == 1e9)\n break;\n let fromA = fromB + off, toB = fromB, toA = fromA;\n for (;;) {\n if (rI < ranges.length && ranges[rI] <= toB) {\n let end = ranges[rI + 1];\n rI += 2;\n toB = Math.max(toB, end);\n for (let i = dI; i < diff.length && diff[i].fromB <= toB; i++)\n off = diff[i].toA - diff[i].toB;\n toA = Math.max(toA, end + off);\n }\n else if (dI < diff.length && diff[dI].fromB <= toB) {\n let next = diff[dI++];\n toB = Math.max(toB, next.toB);\n toA = Math.max(toA, next.toA);\n off = next.toA - next.toB;\n }\n else {\n break;\n }\n }\n result.push(new ChangedRange(fromA, toA, fromB, toB));\n }\n return result;\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\nconst noChildren = [];\nclass Tile {\n constructor(dom, length, flags = 0) {\n this.dom = dom;\n this.length = length;\n this.flags = flags;\n this.parent = null;\n dom.cmTile = this;\n }\n get breakAfter() { return (this.flags & 1 /* TileFlag.BreakAfter */); }\n get children() { return noChildren; }\n isWidget() { return false; }\n get isHidden() { return false; }\n isComposite() { return false; }\n isLine() { return false; }\n isText() { return false; }\n isBlock() { return false; }\n get domAttrs() { return null; }\n sync(track) {\n this.flags |= 2 /* TileFlag.Synced */;\n if (this.flags & 4 /* TileFlag.AttrsDirty */) {\n this.flags &= ~4 /* TileFlag.AttrsDirty */;\n let attrs = this.domAttrs;\n if (attrs)\n setAttrs(this.dom, attrs);\n }\n }\n toString() {\n return this.constructor.name + (this.children.length ? `(${this.children})` : \"\") + (this.breakAfter ? \"#\" : \"\");\n }\n destroy() { this.parent = null; }\n setDOM(dom) {\n this.dom = dom;\n dom.cmTile = this;\n }\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(tile, start = this.posAtStart) {\n let pos = start;\n for (let child of this.children) {\n if (child == tile)\n return pos;\n pos += child.length + child.breakAfter;\n }\n throw new RangeError(\"Invalid child in posBefore\");\n }\n posAfter(tile) {\n return this.posBefore(tile) + tile.length;\n }\n covers(side) { return true; }\n coordsIn(pos, side) { return null; }\n domPosFor(off, side) {\n let index = domIndex(this.dom);\n let after = this.length ? off > 0 : side > 0;\n return new DOMPos(this.parent.dom, index + (after ? 1 : 0), off == 0 || off == this.length);\n }\n markDirty(attrs) {\n this.flags &= ~2 /* TileFlag.Synced */;\n if (attrs)\n this.flags |= 4 /* TileFlag.AttrsDirty */;\n if (this.parent && (this.parent.flags & 2 /* TileFlag.Synced */))\n this.parent.markDirty(false);\n }\n get overrideDOMText() { return null; }\n get root() {\n for (let t = this; t; t = t.parent)\n if (t instanceof DocTile)\n return t;\n return null;\n }\n static get(dom) {\n return dom.cmTile;\n }\n}\nclass CompositeTile extends Tile {\n constructor(dom) {\n super(dom, 0);\n this._children = [];\n }\n isComposite() { return true; }\n get children() { return this._children; }\n get lastChild() { return this.children.length ? this.children[this.children.length - 1] : null; }\n append(child) {\n this.children.push(child);\n child.parent = this;\n }\n sync(track) {\n if (this.flags & 2 /* TileFlag.Synced */)\n return;\n super.sync(track);\n let parent = this.dom, prev = null, next;\n let tracking = (track === null || track === void 0 ? void 0 : track.node) == parent ? track : null;\n let length = 0;\n for (let child of this.children) {\n child.sync(track);\n length += child.length + child.breakAfter;\n next = prev ? prev.nextSibling : parent.firstChild;\n if (tracking && next != child.dom)\n tracking.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 (tracking && next)\n tracking.written = true;\n while (next)\n next = rm$1(next);\n this.length = length;\n }\n}\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}\n// The top-level tile. Its dom property equals view.contentDOM.\nclass DocTile extends CompositeTile {\n constructor(view, dom) {\n super(dom);\n this.view = view;\n }\n owns(tile) {\n for (; tile; tile = tile.parent)\n if (tile == this)\n return true;\n return false;\n }\n isBlock() { return true; }\n nearest(dom) {\n for (;;) {\n if (!dom)\n return null;\n let tile = Tile.get(dom);\n if (tile && this.owns(tile))\n return tile;\n dom = dom.parentNode;\n }\n }\n blockTiles(f) {\n for (let stack = [], cur = this, i = 0, pos = 0;;) {\n if (i == cur.children.length) {\n if (!stack.length)\n return;\n cur = cur.parent;\n if (cur.breakAfter)\n pos++;\n i = stack.pop();\n }\n else {\n let next = cur.children[i++];\n if (next instanceof BlockWrapperTile) {\n stack.push(i);\n cur = next;\n i = 0;\n }\n else {\n let end = pos + next.length;\n let result = f(next, pos);\n if (result !== undefined)\n return result;\n pos = end + next.breakAfter;\n }\n }\n }\n }\n // Find the block at the given position. If side < -1, make sure to\n // stay before block widgets at that position, if side > 1, after\n // such widgets (used for selection drawing, which needs to be able\n // to get coordinates for positions that aren't valid cursor positions).\n resolveBlock(pos, side) {\n let before, beforeOff = -1, after, afterOff = -1;\n this.blockTiles((tile, off) => {\n let end = off + tile.length;\n if (pos >= off && pos <= end) {\n if (tile.isWidget() && side >= -1 && side <= 1) {\n if (tile.flags & 32 /* TileFlag.After */)\n return true;\n if (tile.flags & 16 /* TileFlag.Before */)\n before = undefined;\n }\n if ((off < pos || pos == end && (side < -1 ? tile.length : tile.covers(1))) &&\n (!before || !tile.isWidget() && before.isWidget())) {\n before = tile;\n beforeOff = pos - off;\n }\n if ((end > pos || pos == off && (side > 1 ? tile.length : tile.covers(-1))) &&\n (!after || !tile.isWidget() && after.isWidget())) {\n after = tile;\n afterOff = pos - off;\n }\n }\n });\n if (!before && !after)\n throw new Error(\"No tile at position \" + pos);\n return before && side < 0 || !after ? { tile: before, offset: beforeOff } : { tile: after, offset: afterOff };\n }\n}\nclass BlockWrapperTile extends CompositeTile {\n constructor(dom, wrapper) {\n super(dom);\n this.wrapper = wrapper;\n }\n isBlock() { return true; }\n covers(side) {\n if (!this.children.length)\n return false;\n return side < 0 ? this.children[0].covers(-1) : this.lastChild.covers(1);\n }\n get domAttrs() { return this.wrapper.attributes; }\n static of(wrapper, dom) {\n let tile = new BlockWrapperTile(dom || document.createElement(wrapper.tagName), wrapper);\n if (!dom)\n tile.flags |= 4 /* TileFlag.AttrsDirty */;\n return tile;\n }\n}\nclass LineTile extends CompositeTile {\n constructor(dom, attrs) {\n super(dom);\n this.attrs = attrs;\n }\n isLine() { return true; }\n static start(attrs, dom, keepAttrs) {\n let line = new LineTile(dom || document.createElement(\"div\"), attrs);\n if (!dom || !keepAttrs)\n line.flags |= 4 /* TileFlag.AttrsDirty */;\n return line;\n }\n get domAttrs() { return this.attrs; }\n // Find the tile associated with a given position in this line.\n resolveInline(pos, side, forCoords) {\n let before = null, beforeOff = -1, after = null, afterOff = -1;\n function scan(tile, pos) {\n for (let i = 0, off = 0; i < tile.children.length && off <= pos; i++) {\n let child = tile.children[i], end = off + child.length;\n if (end >= pos) {\n if (child.isComposite()) {\n scan(child, pos - off);\n }\n else if ((!after || after.isHidden && (side > 0 || forCoords && onSameLine(after, child))) &&\n (end > pos || (child.flags & 32 /* TileFlag.After */))) {\n after = child;\n afterOff = pos - off;\n }\n else if (off < pos || (child.flags & 16 /* TileFlag.Before */) && !child.isHidden) {\n before = child;\n beforeOff = pos - off;\n }\n }\n off = end;\n }\n }\n scan(this, pos);\n let target = ((side < 0 ? before : after) || before || after);\n return target ? { tile: target, offset: target == before ? beforeOff : afterOff } : null;\n }\n coordsIn(pos, side) {\n let found = this.resolveInline(pos, side, true);\n if (!found)\n return fallbackRect(this);\n return found.tile.coordsIn(Math.max(0, found.offset), side);\n }\n domIn(pos, side) {\n let found = this.resolveInline(pos, side);\n if (found) {\n let { tile, offset } = found;\n if (this.dom.contains(tile.dom)) {\n if (tile.isText())\n return new DOMPos(tile.dom, Math.min(tile.dom.nodeValue.length, offset));\n return tile.domPosFor(offset, tile.flags & 16 /* TileFlag.Before */ ? 1 : tile.flags & 32 /* TileFlag.After */ ? -1 : side);\n }\n let parent = found.tile.parent, saw = false;\n for (let ch of parent.children) {\n if (saw)\n return new DOMPos(ch.dom, 0);\n if (ch == found.tile) {\n saw = true;\n }\n }\n }\n return new DOMPos(this.dom, 0);\n }\n}\nfunction fallbackRect(tile) {\n let last = tile.dom.lastChild;\n if (!last)\n return tile.dom.getBoundingClientRect();\n let rects = clientRectsFor(last);\n return rects[rects.length - 1] || null;\n}\nfunction onSameLine(a, b) {\n let posA = a.coordsIn(0, 1), posB = b.coordsIn(0, 1);\n return posA && posB && posB.top < posA.bottom;\n}\nclass MarkTile extends CompositeTile {\n constructor(dom, mark) {\n super(dom);\n this.mark = mark;\n }\n get domAttrs() { return this.mark.attrs; }\n static of(mark, dom) {\n let tile = new MarkTile(dom || document.createElement(mark.tagName), mark);\n if (!dom)\n tile.flags |= 4 /* TileFlag.AttrsDirty */;\n return tile;\n }\n}\nclass TextTile extends Tile {\n constructor(dom, text) {\n super(dom, text.length);\n this.text = text;\n }\n sync(track) {\n if (this.flags & 2 /* TileFlag.Synced */)\n return;\n super.sync(track);\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 isText() { return true; }\n toString() { return JSON.stringify(this.text); }\n coordsIn(pos, side) {\n let length = this.dom.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(this.dom, 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 static of(text, dom) {\n let tile = new TextTile(dom || document.createTextNode(text), text);\n if (!dom)\n tile.flags |= 2 /* TileFlag.Synced */;\n return tile;\n }\n}\nclass WidgetTile extends Tile {\n constructor(dom, length, widget, flags) {\n super(dom, length, flags);\n this.widget = widget;\n }\n isWidget() { return true; }\n get isHidden() { return this.widget.isHidden; }\n covers(side) {\n if (this.flags & 48 /* TileFlag.PointWidget */)\n return false;\n return (this.flags & (side < 0 ? 64 /* TileFlag.IncStart */ : 128 /* TileFlag.IncEnd */)) > 0;\n }\n coordsIn(pos, side) { return this.coordsInWidget(pos, side, false); }\n coordsInWidget(pos, side, block) {\n let custom = this.widget.coordsAt(this.dom, pos, side);\n if (custom)\n return custom;\n if (block) {\n return flattenRect(this.dom.getBoundingClientRect(), this.length ? pos == 0 : side <= 0);\n }\n else {\n let rects = this.dom.getClientRects(), rect = null;\n if (!rects.length)\n return null;\n let fromBack = (this.flags & 16 /* TileFlag.Before */) ? true : (this.flags & 32 /* TileFlag.After */) ? false : 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 }\n get overrideDOMText() {\n if (!this.length)\n return Text.empty;\n let { root } = this;\n if (!root)\n return Text.empty;\n let start = this.posAtStart;\n return root.view.state.doc.slice(start, start + this.length);\n }\n destroy() {\n super.destroy();\n this.widget.destroy(this.dom);\n }\n static of(widget, view, length, flags, dom) {\n if (!dom) {\n dom = widget.toDOM(view);\n if (!widget.editable)\n dom.contentEditable = \"false\";\n }\n return new WidgetTile(dom, length, widget, flags);\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 WidgetBufferTile extends Tile {\n constructor(flags) {\n let img = document.createElement(\"img\");\n img.className = \"cm-widgetBuffer\";\n img.setAttribute(\"aria-hidden\", \"true\");\n super(img, 0, flags);\n }\n get isHidden() { return true; }\n get overrideDOMText() { return Text.empty; }\n coordsIn(pos) { return this.dom.getBoundingClientRect(); }\n}\n// Represents a position in the tile tree.\nclass TilePointer {\n constructor(top) {\n this.index = 0;\n this.beforeBreak = false;\n this.parents = [];\n this.tile = top;\n }\n // Advance by the given distance. If side is -1, stop leaving or\n // entering tiles, or skipping zero-length tiles, once the distance\n // has been traversed. When side is 1, leave, enter, or skip\n // everything at the end position.\n advance(dist, side, walker) {\n let { tile, index, beforeBreak, parents } = this;\n while (dist || side > 0) {\n if (!tile.isComposite()) {\n if (index == tile.length) {\n beforeBreak = !!tile.breakAfter;\n ({ tile, index } = parents.pop());\n index++;\n }\n else if (!dist) {\n break;\n }\n else {\n let take = Math.min(dist, tile.length - index);\n if (walker)\n walker.skip(tile, index, index + take);\n dist -= take;\n index += take;\n }\n }\n else if (beforeBreak) {\n if (!dist)\n break;\n if (walker)\n walker.break();\n dist--;\n beforeBreak = false;\n }\n else if (index == tile.children.length) {\n if (!dist && !parents.length)\n break;\n if (walker)\n walker.leave(tile);\n beforeBreak = !!tile.breakAfter;\n ({ tile, index } = parents.pop());\n index++;\n }\n else {\n let next = tile.children[index], brk = next.breakAfter;\n if ((side > 0 ? next.length <= dist : next.length < dist) &&\n (!walker || walker.skip(next, 0, next.length) !== false || !next.isComposite)) {\n beforeBreak = !!brk;\n index++;\n dist -= next.length;\n }\n else {\n parents.push({ tile, index });\n tile = next;\n index = 0;\n if (walker && next.isComposite())\n walker.enter(next);\n }\n }\n }\n this.tile = tile;\n this.index = index;\n this.beforeBreak = beforeBreak;\n return this;\n }\n get root() { return (this.parents.length ? this.parents[0].tile : this.tile); }\n}\n\n// Used to track open block wrappers\nclass OpenWrapper {\n constructor(from, to, wrapper, rank) {\n this.from = from;\n this.to = to;\n this.wrapper = wrapper;\n this.rank = rank;\n }\n}\n// This class builds up a new document tile using input from either\n// iteration over the old tree or iteration over the document +\n// decorations. The add* methods emit elements into the tile\n// structure. To avoid awkward synchronization issues, marks and block\n// wrappers are treated as belonging to to their content, rather than\n// opened/closed independently.\n//\n// All composite tiles that are touched by changes are rebuilt,\n// reusing as much of the old tree (either whole nodes or just DOM\n// elements) as possible. The new tree is built without the Synced\n// flag, and then synced (during which DOM parent/child relations are\n// fixed up, text nodes filled in, and attributes added) in a second\n// phase.\nclass TileBuilder {\n constructor(cache, root, blockWrappers) {\n this.cache = cache;\n this.root = root;\n this.blockWrappers = blockWrappers;\n this.curLine = null;\n this.lastBlock = null;\n this.afterWidget = null;\n this.pos = 0;\n this.wrappers = [];\n this.wrapperPos = 0;\n }\n addText(text, marks, openStart, tile) {\n var _a;\n this.flushBuffer();\n let parent = this.ensureMarks(marks, openStart);\n let prev = parent.lastChild;\n if (prev && prev.isText() && !(prev.flags & 8 /* TileFlag.Composition */)) {\n this.cache.reused.set(prev, 2 /* Reused.DOM */);\n let tile = parent.children[parent.children.length - 1] = new TextTile(prev.dom, prev.text + text);\n tile.parent = parent;\n }\n else {\n parent.append(tile || TextTile.of(text, (_a = this.cache.find(TextTile)) === null || _a === void 0 ? void 0 : _a.dom));\n }\n this.pos += text.length;\n this.afterWidget = null;\n }\n addComposition(composition, context) {\n let line = this.curLine;\n if (line.dom != context.line.dom) {\n line.setDOM(this.cache.reused.has(context.line) ? freeNode(context.line.dom) : context.line.dom);\n this.cache.reused.set(context.line, 2 /* Reused.DOM */);\n }\n let head = line;\n for (let i = context.marks.length - 1; i >= 0; i--) {\n let mark = context.marks[i];\n let last = head.lastChild;\n if (last instanceof MarkTile && last.mark.eq(mark.mark)) {\n if (last.dom != mark.dom)\n last.setDOM(freeNode(mark.dom));\n head = last;\n }\n else {\n if (this.cache.reused.get(mark)) {\n let tile = Tile.get(mark.dom);\n if (tile)\n tile.setDOM(freeNode(mark.dom));\n }\n let nw = MarkTile.of(mark.mark, mark.dom);\n head.append(nw);\n head = nw;\n }\n this.cache.reused.set(mark, 2 /* Reused.DOM */);\n }\n let oldTile = Tile.get(composition.text);\n if (oldTile)\n this.cache.reused.set(oldTile, 2 /* Reused.DOM */);\n let text = new TextTile(composition.text, composition.text.nodeValue);\n text.flags |= 8 /* TileFlag.Composition */;\n head.append(text);\n }\n addInlineWidget(widget, marks, openStart) {\n // Adjacent same-side-facing non-replacing widgets don't need buffers between them\n let noSpace = this.afterWidget && (widget.flags & 48 /* TileFlag.PointWidget */) &&\n (this.afterWidget.flags & 48 /* TileFlag.PointWidget */) == (widget.flags & 48 /* TileFlag.PointWidget */);\n if (!noSpace)\n this.flushBuffer();\n let parent = this.ensureMarks(marks, openStart);\n if (!noSpace && !(widget.flags & 16 /* TileFlag.Before */))\n parent.append(this.getBuffer(1));\n parent.append(widget);\n this.pos += widget.length;\n this.afterWidget = widget;\n }\n addMark(tile, marks, openStart) {\n this.flushBuffer();\n let parent = this.ensureMarks(marks, openStart);\n parent.append(tile);\n this.pos += tile.length;\n this.afterWidget = null;\n }\n addBlockWidget(widget) {\n this.getBlockPos().append(widget);\n this.pos += widget.length;\n this.lastBlock = widget;\n this.endLine();\n }\n continueWidget(length) {\n let widget = this.afterWidget || this.lastBlock;\n widget.length += length;\n this.pos += length;\n }\n addLineStart(attrs, dom) {\n var _a;\n if (!attrs)\n attrs = lineBaseAttrs;\n let tile = LineTile.start(attrs, dom || ((_a = this.cache.find(LineTile)) === null || _a === void 0 ? void 0 : _a.dom), !!dom);\n this.getBlockPos().append(this.lastBlock = this.curLine = tile);\n }\n addLine(tile) {\n this.getBlockPos().append(tile);\n this.pos += tile.length;\n this.lastBlock = tile;\n this.endLine();\n }\n addBreak() {\n this.lastBlock.flags |= 1 /* TileFlag.BreakAfter */;\n this.endLine();\n this.pos++;\n }\n addLineStartIfNotCovered(attrs) {\n if (!this.blockPosCovered())\n this.addLineStart(attrs);\n }\n ensureLine(attrs) {\n if (!this.curLine)\n this.addLineStart(attrs);\n }\n ensureMarks(marks, openStart) {\n var _a;\n let parent = this.curLine;\n for (let i = marks.length - 1; i >= 0; i--) {\n let mark = marks[i], last;\n if (openStart > 0 && (last = parent.lastChild) && last instanceof MarkTile && last.mark.eq(mark)) {\n parent = last;\n openStart--;\n }\n else {\n let tile = MarkTile.of(mark, (_a = this.cache.find(MarkTile, m => m.mark.eq(mark))) === null || _a === void 0 ? void 0 : _a.dom);\n parent.append(tile);\n parent = tile;\n openStart = 0;\n }\n }\n return parent;\n }\n endLine() {\n if (this.curLine) {\n this.flushBuffer();\n let last = this.curLine.lastChild;\n if (!last || !hasContent(this.curLine, false) ||\n last.dom.nodeName != \"BR\" && last.isWidget() && !(browser.ios && hasContent(this.curLine, true)))\n this.curLine.append(this.cache.findWidget(BreakWidget, 0, 32 /* TileFlag.After */) ||\n new WidgetTile(BreakWidget.toDOM(), 0, BreakWidget, 32 /* TileFlag.After */));\n this.curLine = this.afterWidget = null;\n }\n }\n updateBlockWrappers() {\n if (this.wrapperPos > this.pos + 10000 /* C.WrapperReset */) {\n this.blockWrappers.goto(this.pos);\n this.wrappers.length = 0;\n }\n for (let i = this.wrappers.length - 1; i >= 0; i--)\n if (this.wrappers[i].to < this.pos)\n this.wrappers.splice(i, 1);\n for (let cur = this.blockWrappers; cur.value && cur.from <= this.pos; cur.next())\n if (cur.to >= this.pos) {\n let wrap = new OpenWrapper(cur.from, cur.to, cur.value, cur.rank), i = this.wrappers.length;\n while (i > 0 && (this.wrappers[i - 1].rank - wrap.rank || this.wrappers[i - 1].to - wrap.to) < 0)\n i--;\n this.wrappers.splice(i, 0, wrap);\n }\n this.wrapperPos = this.pos;\n }\n getBlockPos() {\n var _a;\n this.updateBlockWrappers();\n let parent = this.root;\n for (let wrap of this.wrappers) {\n let last = parent.lastChild;\n if (wrap.from < this.pos && last instanceof BlockWrapperTile && last.wrapper.eq(wrap.wrapper)) {\n parent = last;\n }\n else {\n let tile = BlockWrapperTile.of(wrap.wrapper, (_a = this.cache.find(BlockWrapperTile, t => t.wrapper.eq(wrap.wrapper))) === null || _a === void 0 ? void 0 : _a.dom);\n parent.append(tile);\n parent = tile;\n }\n }\n return parent;\n }\n blockPosCovered() {\n let last = this.lastBlock;\n return last != null && !last.breakAfter && (!last.isWidget() || (last.flags & (32 /* TileFlag.After */ | 128 /* TileFlag.IncEnd */)) > 0);\n }\n getBuffer(side) {\n let flags = 2 /* TileFlag.Synced */ | (side < 0 ? 16 /* TileFlag.Before */ : 32 /* TileFlag.After */);\n let found = this.cache.find(WidgetBufferTile, undefined, 1 /* Reused.Full */);\n if (found)\n found.flags = flags;\n return found || new WidgetBufferTile(flags);\n }\n flushBuffer() {\n if (this.afterWidget && !(this.afterWidget.flags & 32 /* TileFlag.After */)) {\n this.afterWidget.parent.append(this.getBuffer(-1));\n this.afterWidget = null;\n }\n }\n}\n// Helps getting efficient access to the document text.\nclass TextStream {\n constructor(doc) {\n this.skipCount = 0;\n this.text = \"\";\n this.textOff = 0;\n this.cursor = doc.iter();\n }\n skip(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.skipCount += len - (this.text.length - this.textOff);\n this.text = \"\";\n this.textOff = 0;\n }\n }\n next(maxLen) {\n if (this.textOff == this.text.length) {\n let { value, lineBreak, done } = this.cursor.next(this.skipCount);\n this.skipCount = 0;\n if (done)\n throw new Error(\"Ran out of text content when drawing inline views\");\n this.text = value;\n let len = this.textOff = Math.min(maxLen, value.length);\n return lineBreak ? null : value.slice(0, len);\n }\n let end = Math.min(this.text.length, this.textOff + maxLen);\n let chars = this.text.slice(this.textOff, end);\n this.textOff = end;\n return chars;\n }\n}\n// Assign the tile classes bucket numbers for caching.\nconst buckets = [WidgetTile, LineTile, TextTile, MarkTile, WidgetBufferTile, BlockWrapperTile, DocTile];\nfor (let i = 0; i < buckets.length; i++)\n buckets[i].bucket = i;\n// Leaf tiles and line tiles may be reused in their entirety. All\n// others will get new tiles allocated, using the old DOM when\n// possible.\nclass TileCache {\n constructor(view) {\n this.view = view;\n // Buckets are circular buffers, using `index` as the current\n // position.\n this.buckets = buckets.map(() => []);\n this.index = buckets.map(() => 0);\n this.reused = new Map;\n }\n // Put a tile in the cache.\n add(tile) {\n let i = tile.constructor.bucket, bucket = this.buckets[i];\n if (bucket.length < 6 /* C.Bucket */)\n bucket.push(tile);\n else\n bucket[this.index[i] = (this.index[i] + 1) % 6 /* C.Bucket */] = tile;\n }\n find(cls, test, type = 2 /* Reused.DOM */) {\n let i = cls.bucket;\n let bucket = this.buckets[i], off = this.index[i];\n for (let j = bucket.length - 1; j >= 0; j--) {\n // Look at the most recently added items first (last-in, first-out)\n let index = (j + off) % bucket.length, tile = bucket[index];\n if ((!test || test(tile)) && !this.reused.has(tile)) {\n bucket.splice(index, 1);\n if (index < off)\n this.index[i]--;\n this.reused.set(tile, type);\n return tile;\n }\n }\n return null;\n }\n findWidget(widget, length, flags) {\n let widgets = this.buckets[0];\n if (widgets.length)\n for (let i = 0, pass = 0;; i++) {\n if (i == widgets.length) {\n if (pass)\n return null;\n pass = 1;\n i = 0;\n }\n let tile = widgets[i];\n if (!this.reused.has(tile) &&\n (pass == 0 ? tile.widget.compare(widget)\n : tile.widget.constructor == widget.constructor && widget.updateDOM(tile.dom, this.view))) {\n widgets.splice(i, 1);\n if (i < this.index[0])\n this.index[0]--;\n if (tile.widget == widget && tile.length == length && (tile.flags & (496 /* TileFlag.Widget */ | 1 /* TileFlag.BreakAfter */)) == flags) {\n this.reused.set(tile, 1 /* Reused.Full */);\n return tile;\n }\n else {\n this.reused.set(tile, 2 /* Reused.DOM */);\n return new WidgetTile(tile.dom, length, widget, (tile.flags & ~(496 /* TileFlag.Widget */ | 1 /* TileFlag.BreakAfter */)) | flags);\n }\n }\n }\n }\n reuse(tile) {\n this.reused.set(tile, 1 /* Reused.Full */);\n return tile;\n }\n maybeReuse(tile, type = 2 /* Reused.DOM */) {\n if (this.reused.has(tile))\n return undefined;\n this.reused.set(tile, type);\n return tile.dom;\n }\n clear() {\n for (let i = 0; i < this.buckets.length; i++)\n this.buckets[i].length = this.index[i] = 0;\n }\n}\n// This class organizes a pass over the document, guided by the array\n// of replaced ranges. For ranges that haven't changed, it iterates\n// the old tree and copies its content into the new document. For\n// changed ranges, it runs a decoration iterator to guide generation\n// of content.\nclass TileUpdate {\n constructor(view, old, blockWrappers, decorations, disallowBlockEffectsFor) {\n this.view = view;\n this.decorations = decorations;\n this.disallowBlockEffectsFor = disallowBlockEffectsFor;\n this.openWidget = false;\n this.openMarks = 0;\n this.cache = new TileCache(view);\n this.text = new TextStream(view.state.doc);\n this.builder = new TileBuilder(this.cache, new DocTile(view, view.contentDOM), RangeSet.iter(blockWrappers));\n this.cache.reused.set(old, 2 /* Reused.DOM */);\n this.old = new TilePointer(old);\n this.reuseWalker = {\n skip: (tile, from, to) => {\n this.cache.add(tile);\n if (tile.isComposite())\n return false;\n },\n enter: tile => this.cache.add(tile),\n leave: () => { },\n break: () => { }\n };\n }\n run(changes, composition) {\n let compositionContext = composition && this.getCompositionContext(composition.text);\n for (let posA = 0, posB = 0, i = 0;;) {\n let next = i < changes.length ? changes[i++] : null;\n let skipA = next ? next.fromA : this.old.root.length;\n if (skipA > posA) {\n let len = skipA - posA;\n this.preserve(len, !i, !next);\n posA = skipA;\n posB += len;\n }\n if (!next)\n break;\n // Compositions need to be handled specially, forcing the\n // focused text node and its parent nodes to remain stable at\n // that point in the document.\n if (composition && next.fromA <= composition.range.fromA && next.toA >= composition.range.toA) {\n this.forward(next.fromA, composition.range.fromA, composition.range.fromA < composition.range.toA ? 1 : -1);\n this.emit(posB, composition.range.fromB);\n this.cache.clear(); // Must not reuse DOM across composition\n this.builder.addComposition(composition, compositionContext);\n this.text.skip(composition.range.toB - composition.range.fromB);\n this.forward(composition.range.fromA, next.toA);\n this.emit(composition.range.toB, next.toB);\n }\n else {\n this.forward(next.fromA, next.toA);\n this.emit(posB, next.toB);\n }\n posB = next.toB;\n posA = next.toA;\n }\n if (this.builder.curLine)\n this.builder.endLine();\n return this.builder.root;\n }\n preserve(length, incStart, incEnd) {\n let activeMarks = getMarks(this.old), openMarks = this.openMarks;\n this.old.advance(length, incEnd ? 1 : -1, {\n skip: (tile, from, to) => {\n if (tile.isWidget()) {\n if (this.openWidget) {\n this.builder.continueWidget(to - from);\n }\n else {\n let widget = to > 0 || from < tile.length\n ? WidgetTile.of(tile.widget, this.view, to - from, tile.flags & 496 /* TileFlag.Widget */, this.cache.maybeReuse(tile))\n : this.cache.reuse(tile);\n if (widget.flags & 256 /* TileFlag.Block */) {\n widget.flags &= ~1 /* TileFlag.BreakAfter */;\n this.builder.addBlockWidget(widget);\n }\n else {\n this.builder.ensureLine(null);\n this.builder.addInlineWidget(widget, activeMarks, openMarks);\n openMarks = activeMarks.length;\n }\n }\n }\n else if (tile.isText()) {\n this.builder.ensureLine(null);\n if (!from && to == tile.length) {\n this.builder.addText(tile.text, activeMarks, openMarks, this.cache.reuse(tile));\n }\n else {\n this.cache.add(tile);\n this.builder.addText(tile.text.slice(from, to), activeMarks, openMarks);\n }\n openMarks = activeMarks.length;\n }\n else if (tile.isLine()) {\n tile.flags &= ~1 /* TileFlag.BreakAfter */;\n this.cache.reused.set(tile, 1 /* Reused.Full */);\n this.builder.addLine(tile);\n }\n else if (tile instanceof WidgetBufferTile) {\n this.cache.add(tile);\n }\n else if (tile instanceof MarkTile) {\n this.builder.ensureLine(null);\n this.builder.addMark(tile, activeMarks, openMarks);\n this.cache.reused.set(tile, 1 /* Reused.Full */);\n openMarks = activeMarks.length;\n }\n else {\n return false;\n }\n this.openWidget = false;\n },\n enter: (tile) => {\n if (tile.isLine()) {\n this.builder.addLineStart(tile.attrs, this.cache.maybeReuse(tile));\n }\n else {\n this.cache.add(tile);\n if (tile instanceof MarkTile)\n activeMarks.unshift(tile.mark);\n }\n this.openWidget = false;\n },\n leave: (tile) => {\n if (tile.isLine()) {\n if (activeMarks.length)\n activeMarks.length = openMarks = 0;\n }\n else if (tile instanceof MarkTile) {\n activeMarks.shift();\n openMarks = Math.min(openMarks, activeMarks.length);\n }\n },\n break: () => {\n this.builder.addBreak();\n this.openWidget = false;\n },\n });\n this.text.skip(length);\n }\n emit(from, to) {\n let pendingLineAttrs = null;\n let b = this.builder, markCount = 0;\n let openEnd = RangeSet.spans(this.decorations, from, to, {\n point: (from, to, deco, active, openStart, index) => {\n if (deco instanceof PointDecoration) {\n if (this.disallowBlockEffectsFor[index]) {\n if (deco.block)\n throw new RangeError(\"Block decorations may not be specified via plugins\");\n if (to > this.view.state.doc.lineAt(from).to)\n throw new RangeError(\"Decorations that replace line breaks may not be specified via plugins\");\n }\n markCount = active.length;\n if (openStart > active.length) {\n b.continueWidget(to - from);\n }\n else {\n let widget = deco.widget || (deco.block ? NullWidget.block : NullWidget.inline);\n let flags = widgetFlags(deco);\n let tile = this.cache.findWidget(widget, to - from, flags) || WidgetTile.of(widget, this.view, to - from, flags);\n if (deco.block) {\n if (deco.startSide > 0)\n b.addLineStartIfNotCovered(pendingLineAttrs);\n b.addBlockWidget(tile);\n }\n else {\n b.ensureLine(pendingLineAttrs);\n b.addInlineWidget(tile, active, openStart);\n }\n }\n pendingLineAttrs = null;\n }\n else {\n pendingLineAttrs = addLineDeco(pendingLineAttrs, deco);\n }\n if (to > from)\n this.text.skip(to - from);\n },\n span: (from, to, active, openStart) => {\n for (let pos = from; pos < to;) {\n let chars = this.text.next(Math.min(512 /* C.Chunk */, to - pos));\n if (chars == null) { // Line break\n b.addLineStartIfNotCovered(pendingLineAttrs);\n b.addBreak();\n pos++;\n }\n else {\n b.ensureLine(pendingLineAttrs);\n b.addText(chars, active, openStart);\n pos += chars.length;\n }\n pendingLineAttrs = null;\n }\n }\n });\n b.addLineStartIfNotCovered(pendingLineAttrs);\n this.openWidget = openEnd > markCount;\n this.openMarks = openEnd;\n }\n forward(from, to, side = 1) {\n if (to - from <= 10) {\n this.old.advance(to - from, side, this.reuseWalker);\n }\n else {\n this.old.advance(5, -1, this.reuseWalker);\n this.old.advance(to - from - 10, -1);\n this.old.advance(5, side, this.reuseWalker);\n }\n }\n getCompositionContext(text) {\n let marks = [], line = null;\n for (let parent = text.parentNode;; parent = parent.parentNode) {\n let tile = Tile.get(parent);\n if (parent == this.view.contentDOM)\n break;\n if (tile instanceof MarkTile)\n marks.push(tile);\n else if (tile === null || tile === void 0 ? void 0 : tile.isLine())\n line = tile;\n else if (parent.nodeName == \"DIV\" && !line && parent != this.view.contentDOM)\n line = new LineTile(parent, lineBaseAttrs);\n else\n marks.push(MarkTile.of(new MarkDecoration({ tagName: parent.nodeName.toLowerCase(), attributes: getAttrs(parent) }), parent));\n }\n return { line: line, marks };\n }\n}\nfunction hasContent(tile, requireText) {\n let scan = (tile) => {\n for (let ch of tile.children)\n if ((requireText ? ch.isText() : ch.length) || scan(ch))\n return true;\n return false;\n };\n return scan(tile);\n}\nfunction widgetFlags(deco) {\n let flags = deco.isReplace ? (deco.startSide < 0 ? 64 /* TileFlag.IncStart */ : 0) | (deco.endSide > 0 ? 128 /* TileFlag.IncEnd */ : 0)\n : (deco.startSide > 0 ? 32 /* TileFlag.After */ : 16 /* TileFlag.Before */);\n if (deco.block)\n flags |= 256 /* TileFlag.Block */;\n return flags;\n}\nconst lineBaseAttrs = { class: \"cm-line\" };\nfunction addLineDeco(value, deco) {\n let attrs = deco.spec.attributes, cls = deco.spec.class;\n if (!attrs && !cls)\n return value;\n if (!value)\n value = { class: \"cm-line\" };\n if (attrs)\n combineAttrs(attrs, value);\n if (cls)\n value.class += \" \" + cls;\n return value;\n}\nfunction getMarks(ptr) {\n let found = [];\n for (let i = ptr.parents.length; i > 1; i--) {\n let tile = i == ptr.parents.length ? ptr.tile : ptr.parents[i].tile;\n if (tile instanceof MarkTile)\n found.push(tile.mark);\n }\n return found;\n}\nfunction freeNode(node) {\n let tile = Tile.get(node);\n if (tile)\n tile.setDOM(node.cloneNode());\n return node;\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\");\nconst BreakWidget = /*@__PURE__*/new class extends WidgetType {\n toDOM() { return document.createElement(\"br\"); }\n get isHidden() { return true; }\n get editable() { return true; }\n};\n\nclass DocView {\n constructor(view) {\n this.view = view;\n this.decorations = [];\n this.blockWrappers = [];\n this.dynamicDecorationMap = [false];\n this.domChanged = null;\n this.hasComposition = null;\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.updateDeco();\n this.tile = new DocTile(view, view.contentDOM);\n this.updateInner([new ChangedRange(0, 0, 0, view.state.doc.length)], 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 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, prevWrappers = this.blockWrappers;\n this.updateDeco();\n let decoDiff = findChangedDeco(prevDeco, this.decorations, update.changes);\n if (decoDiff.length)\n changedRanges = ChangedRange.extendWithRanges(changedRanges, decoDiff);\n let blockDiff = findChangedWrappers(prevWrappers, this.blockWrappers, update.changes);\n if (blockDiff.length)\n changedRanges = ChangedRange.extendWithRanges(changedRanges, blockDiff);\n if (composition && !changedRanges.some(r => r.fromA <= composition.range.fromA && r.toA >= composition.range.toA))\n changedRanges = composition.range.addToSet(changedRanges.slice());\n if ((this.tile.flags & 2 /* TileFlag.Synced */) && changedRanges.length == 0) {\n return false;\n }\n else {\n this.updateInner(changedRanges, 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, composition) {\n this.view.viewState.mustMeasureContent = true;\n let { observer } = this.view;\n observer.ignore(() => {\n if (composition || changes.length) {\n let oldTile = this.tile;\n let builder = new TileUpdate(this.view, oldTile, this.blockWrappers, this.decorations, this.dynamicDecorationMap);\n this.tile = builder.run(changes, composition);\n destroyDropped(oldTile, builder.cache.reused);\n }\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.tile.dom.style.height = this.view.viewState.contentHeight / this.view.scaleY + \"px\";\n this.tile.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.tile.sync(track);\n if (track && (track.written || observer.selectionRange.focusNode != track.node || !this.tile.dom.contains(track.node)))\n this.forceSelection = true;\n this.tile.dom.style.height = \"\";\n });\n let gaps = [];\n if (this.view.viewport.from || this.view.viewport.to < this.view.state.doc.length)\n for (let child of this.tile.children)\n if (child.isWidget() && child.widget instanceof BlockGapWidget)\n gaps.push(child.dom);\n observer.updateGaps(gaps);\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 // 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 { dom } = this.tile;\n let activeElt = this.view.root.activeElement, focused = activeElt == dom;\n let selectionNotFocus = !focused && !(this.view.state.facet(editable) || dom.tabIndex > -1) &&\n hasSelection(dom, this.view.observer.selectionRange) && !(activeElt && 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, anchor, head;\n if (main.empty) {\n head = anchor = this.inlineDOMNearPos(main.anchor, main.assoc || 1);\n }\n else {\n head = this.inlineDOMNearPos(main.head, main.head == main.from ? 1 : -1);\n anchor = this.inlineDOMNearPos(main.anchor, main.anchor == main.from ? 1 : -1);\n }\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 && dom.contains(domSel.focusNode) &&\n inUneditable(domSel.focusNode, dom)) {\n dom.blur();\n 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 == dom) {\n 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 = this.lineAt(cursor.head, cursor.assoc);\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, 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 posFromDOM(node, offset) {\n let tile = this.tile.nearest(node);\n if (!tile)\n return this.tile.dom.compareDocumentPosition(node) & 2 /* PRECEDING */ ? 0 : this.view.state.doc.length;\n let start = tile.posAtStart;\n if (tile.isComposite()) {\n let after;\n if (node == tile.dom) {\n after = tile.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 == tile.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 == tile.dom.firstChild)\n return start;\n while (after && !Tile.get(after))\n after = after.nextSibling;\n if (!after)\n return start + tile.length;\n for (let i = 0, pos = start;; i++) {\n let child = tile.children[i];\n if (child.dom == after)\n return pos;\n pos += child.length + child.breakAfter;\n }\n }\n else if (tile.isText()) {\n return node == tile.dom ? start + offset : start + (offset ? tile.length : 0);\n }\n else {\n return start;\n }\n }\n domAtPos(pos, side) {\n let { tile, offset } = this.tile.resolveBlock(pos, side);\n if (tile.isWidget())\n return tile.domPosFor(pos, side);\n return tile.domIn(offset, side);\n }\n inlineDOMNearPos(pos, side) {\n let before, beforeOff = -1, beforeBad = false;\n let after, afterOff = -1, afterBad = false;\n this.tile.blockTiles((tile, off) => {\n if (tile.isWidget()) {\n if ((tile.flags & 32 /* TileFlag.After */) && off >= pos)\n return true;\n if (tile.flags & 16 /* TileFlag.Before */)\n beforeBad = true;\n }\n else {\n let end = off + tile.length;\n if (off <= pos) {\n before = tile;\n beforeOff = pos - off;\n beforeBad = end < pos;\n }\n if (end >= pos && !after) {\n after = tile;\n afterOff = pos - off;\n afterBad = off > pos;\n }\n if (off > pos && after)\n return true;\n }\n });\n if (!before && !after)\n return this.domAtPos(pos, side);\n if (beforeBad && after)\n before = null;\n else if (afterBad && before)\n after = null;\n return before && side < 0 || !after ? before.domIn(beforeOff, side) : after.domIn(afterOff, side);\n }\n coordsAt(pos, side) {\n let { tile, offset } = this.tile.resolveBlock(pos, side);\n if (tile.isWidget()) {\n if (tile.widget instanceof BlockGapWidget)\n return null;\n return tile.coordsInWidget(offset, side, true);\n }\n return tile.coordsIn(offset, side);\n }\n lineAt(pos, side) {\n let { tile } = this.tile.resolveBlock(pos, side);\n return tile.isLine() ? tile : null;\n }\n coordsForChar(pos) {\n let { tile, offset } = this.tile.resolveBlock(pos, 1);\n if (!tile.isLine())\n return null;\n function scan(tile, offset) {\n if (tile.isComposite()) {\n for (let ch of tile.children) {\n if (ch.length >= offset) {\n let found = scan(ch, offset);\n if (found)\n return found;\n }\n offset -= ch.length;\n if (offset < 0)\n break;\n }\n }\n else if (tile.isText() && offset < tile.length) {\n let end = findClusterBreak(tile.text, offset);\n if (end == offset)\n return null;\n let rects = textRange(tile.dom, offset, 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 }\n return null;\n }\n return scan(tile, offset);\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 let spaceAbove = 0;\n let scan = (tile, pos, measureBounds) => {\n for (let i = 0; i < tile.children.length; i++) {\n if (pos > to)\n break;\n let child = tile.children[i], end = pos + child.length;\n let childRect = child.dom.getBoundingClientRect(), { height } = childRect;\n if (measureBounds && !i)\n spaceAbove += childRect.top - measureBounds.top;\n if (child instanceof BlockWrapperTile) {\n if (end > from)\n scan(child, pos, childRect);\n }\n else if (pos >= from) {\n if (spaceAbove > 0)\n result.push(-spaceAbove);\n result.push(height + spaceAbove);\n spaceAbove = 0;\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 if (measureBounds && i == tile.children.length - 1)\n spaceAbove += measureBounds.bottom - childRect.bottom;\n pos = end + child.breakAfter;\n }\n };\n scan(this.tile, 0, null);\n return result;\n }\n textDirectionAt(pos) {\n let { tile } = this.tile.resolveBlock(pos, 1);\n return getComputedStyle(tile.dom).direction == \"rtl\" ? Direction.RTL : Direction.LTR;\n }\n measureTextSize() {\n let lineMeasure = this.tile.blockTiles(tile => {\n if (tile.isLine() && tile.children.length && tile.length <= 20) {\n let totalWidth = 0, textHeight;\n for (let child of tile.children) {\n if (!child.isText() || /[^ -~]/.test(child.text))\n return undefined;\n let rects = clientRectsFor(child.dom);\n if (rects.length != 1)\n return undefined;\n totalWidth += rects[0].width;\n textHeight = rects[0].height;\n }\n if (totalWidth)\n return {\n lineHeight: tile.dom.getBoundingClientRect().height,\n charWidth: totalWidth / tile.length,\n textHeight\n };\n }\n });\n if (lineMeasure)\n return lineMeasure;\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.tile.dom.appendChild(dummy);\n let rect = clientRectsFor(dummy.firstChild)[0];\n lineHeight = dummy.getBoundingClientRect().height;\n charWidth = rect && rect.width ? rect.width / 27 : 7;\n textHeight = rect && rect.height ? rect.height : lineHeight;\n dummy.remove();\n });\n return { lineHeight, charWidth, textHeight };\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.view.state.doc.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 this.blockWrappers = this.view.state.facet(blockWrappers).map(v => typeof v == \"function\" ? v(this.view) : v);\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 lineHasWidget(pos) {\n let scan = (child) => child.isWidget() || child.children.some(scan);\n return scan(this.tile.resolveBlock(pos, 1).tile);\n }\n destroy() {\n destroyDropped(this.tile);\n }\n}\nfunction destroyDropped(tile, reused) {\n let r = reused === null || reused === void 0 ? void 0 : reused.get(tile);\n if (r != 1 /* Reused.Full */) {\n if (r == null)\n tile.destroy();\n for (let ch of tile.children)\n destroyDropped(ch, reused);\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 tileAfter = Tile.get(textAfter.node);\n if (!tileAfter || tileAfter.isText() && tileAfter.text != textAfter.node.nodeValue) {\n textNode = textAfter;\n }\n else if (view.docView.lastCompositionAfterCursor) {\n let tileBefore = Tile.get(textBefore.node);\n if (!(!tileBefore || tileBefore.isText() && tileBefore.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 return { range: new ChangedRange(inv.mapPos(from), inv.mapPos(to), from, to), text: textNode };\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}\nclass WrapperComparator {\n constructor() {\n this.changes = [];\n }\n compareRange(from, to) { addRange(from, to, this.changes); }\n comparePoint() { }\n boundChange(pos) { addRange(pos, pos, this.changes); }\n}\nfunction findChangedWrappers(a, b, diff) {\n let comp = new WrapperComparator;\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}\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\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}\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 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 let pos = posAtCoords(view, { x: resolvedGoal, y: startY + dist * dir }, false, dir);\n return EditorSelection.cursor(pos.pos, pos.assoc, undefined, goal);\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}\nclass PosAssoc {\n constructor(pos, assoc) {\n this.pos = pos;\n this.assoc = assoc;\n }\n}\nfunction posAtCoords(view, coords, precise, scanY) {\n let content = view.contentDOM.getBoundingClientRect(), docTop = content.top + view.viewState.paddingTop;\n let { x, y } = coords, yOffset = y - docTop, block;\n // First find the block at the given Y position, if any. If scanY is\n // given (used for vertical cursor motion), try to skip widgets and\n // line padding.\n for (;;) {\n if (yOffset < 0)\n return new PosAssoc(0, 1);\n if (yOffset > view.viewState.docHeight)\n return new PosAssoc(view.state.doc.length, -1);\n block = view.elementAtHeight(yOffset);\n if (scanY == null)\n break;\n if (block.type == BlockType.Text) {\n // Check whether we aren't landing the top/bottom padding of the line\n let rect = view.docView.coordsAt(scanY < 0 ? block.from : block.to, scanY);\n if (rect && (scanY < 0 ? rect.top <= yOffset + docTop : rect.bottom >= yOffset + docTop))\n break;\n }\n let halfLine = view.viewState.heightOracle.textHeight / 2;\n yOffset = scanY > 0 ? block.bottom + halfLine : block.top - halfLine;\n }\n // If outside the viewport, return null if precise==true, an\n // estimate otherwise.\n if (view.viewport.from >= block.to || view.viewport.to <= block.from) {\n if (precise)\n return null;\n if (block.type == BlockType.Text) {\n let pos = posAtCoordsImprecise(view, content, block, x, y);\n return new PosAssoc(pos, pos == block.from ? 1 : -1);\n }\n }\n if (block.type != BlockType.Text)\n return yOffset < (block.top + block.bottom) / 2 ? new PosAssoc(block.from, 1) : new PosAssoc(block.to, -1);\n // Here we know we're in a line, so run the logic for inline layout\n let line = view.docView.lineAt(block.from, 2);\n if (!line || line.length != block.length)\n line = view.docView.lineAt(block.from, -2);\n return posAtCoordsInline(view, line, block.from, x, y);\n}\n// Scan through the rectangles for the content of a tile, finding the\n// one closest to the given coordinates, prefering closeness in Y over\n// closeness in X.\n//\n// If this is a text tile, go character-by-character. For line or mark\n// tiles, check each non-point-widget child, and descend text or mark\n// tiles with a recursive call.\n//\n// For non-wrapped, purely left-to-right text, this could use a binary\n// search. But because this seems to be fast enough, for how often it\n// is called, there's not currently a specialized implementation for\n// that.\nfunction posAtCoordsInline(view, tile, offset, x, y) {\n let closest = -1, closestRect = null;\n let dxClosest = 1e9, dyClosest = 1e9;\n let rowTop = y, rowBot = y;\n let checkRects = (rects, index) => {\n for (let i = 0; i < rects.length; i++) {\n let rect = rects[i];\n if (rect.top == rect.bottom)\n continue;\n let dx = rect.left > x ? rect.left - x : rect.right < x ? x - rect.right : 0;\n let dy = rect.top > y ? rect.top - y : rect.bottom < y ? y - rect.bottom : 0;\n if (rect.top <= rowBot && rect.bottom >= rowTop) {\n // Rectangle is in the current row\n rowTop = Math.min(rect.top, rowTop);\n rowBot = Math.max(rect.bottom, rowBot);\n dy = 0;\n }\n if (closest < 0 || (dy - dyClosest || dx - dxClosest) < 0) {\n if (closest >= 0 && dyClosest && dxClosest < dx &&\n closestRect.top <= rowBot - 2 && closestRect.bottom >= rowTop + 2) {\n // Retroactively set dy to 0 if the current match is in this row.\n dyClosest = 0;\n }\n else {\n closest = index;\n dxClosest = dx;\n dyClosest = dy;\n closestRect = rect;\n }\n }\n }\n };\n if (tile.isText()) {\n for (let i = 0; i < tile.length;) {\n let next = findClusterBreak(tile.text, i);\n checkRects(textRange(tile.dom, i, next).getClientRects(), i);\n if (!dxClosest && !dyClosest)\n break;\n i = next;\n }\n let after = (x > (closestRect.left + closestRect.right) / 2) == (dirAt(view, closest + offset) == Direction.LTR);\n return after ? new PosAssoc(offset + findClusterBreak(tile.text, closest), -1) : new PosAssoc(offset + closest, 1);\n }\n else {\n if (!tile.length)\n return new PosAssoc(offset, 1);\n for (let i = 0; i < tile.children.length; i++) {\n let child = tile.children[i];\n if (child.flags & 48 /* TileFlag.PointWidget */)\n continue;\n let rects = (child.dom.nodeType == 1 ? child.dom : textRange(child.dom, 0, child.length)).getClientRects();\n checkRects(rects, i);\n if (!dxClosest && !dyClosest)\n break;\n }\n let inner = tile.children[closest], innerOff = tile.posBefore(inner, offset);\n if (inner.isComposite() || inner.isText())\n return posAtCoordsInline(view, inner, innerOff, Math.max(closestRect.left, Math.min(closestRect.right, x)), y);\n let after = (x > (closestRect.left + closestRect.right) / 2) == (dirAt(view, closest + offset) == Direction.LTR);\n return after ? new PosAssoc(innerOff + inner.length, -1) : new PosAssoc(innerOff, 1);\n }\n}\nfunction dirAt(view, pos) {\n let line = view.state.doc.lineAt(pos), spans = view.bidiSpans(line);\n return spans[BidiSpan.find(view.bidiSpans(line), pos - line.from, -1, 1)].dir;\n}\n\nconst LineBreakPlaceholder = \"\\uffff\";\nclass DOMReader {\n constructor(points, view) {\n this.points = points;\n this.view = view;\n this.text = \"\";\n this.lineSeparator = view.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 tile = Tile.get(cur), next = cur.nextSibling;\n if (next == end) {\n if ((tile === null || tile === void 0 ? void 0 : tile.breakAfter) && !next && parent != this.view.contentDOM)\n this.lineBreak();\n break;\n }\n let nextTile = Tile.get(next);\n if ((tile && nextTile ? tile.breakAfter :\n (tile ? tile.breakAfter : isBlockElement(cur)) ||\n (isBlockElement(next) && (cur.nodeName != \"BR\" || (tile === null || tile === void 0 ? void 0 : tile.isWidget())) && 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 let tile = Tile.get(node);\n let fromView = tile && tile.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 = Tile.get(node);\n if (!(view === null || view === void 0 ? void 0 : view.isWidget()))\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 = domBoundsAround(view.docView.tile, start, end, 0))) {\n let selPoints = iHead || iAnchor ? [] : selectionPoints(view);\n let reader = new DOMReader(selPoints, view);\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 if (view.inputState.composing > -1 && view.state.selection.ranges.length > 1)\n this.newSel = view.state.selection.replaceRange(EditorSelection.range(anchor, head));\n else\n this.newSel = EditorSelection.single(anchor, head);\n }\n }\n}\nfunction domBoundsAround(tile, from, to, offset) {\n if (tile.isComposite()) {\n let fromI = -1, fromStart = -1, toI = -1, toEnd = -1;\n for (let i = 0, pos = offset, prevEnd = offset; i < tile.children.length; i++) {\n let child = tile.children[i], end = pos + child.length;\n if (pos < from && end > to)\n return domBoundsAround(child, from, to, pos);\n if (end >= from && fromI == -1) {\n fromI = i;\n fromStart = pos;\n }\n if (pos > to && child.dom.parentNode == tile.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 + tile.length : toEnd,\n startDOM: (fromI ? tile.children[fromI - 1].dom.nextSibling : null) || tile.dom.firstChild,\n endDOM: toI < tile.children.length && toI >= 0 ? tile.children[toI].dom : null };\n }\n else if (tile.isText()) {\n return { from: offset, to: offset + tile.length, startDOM: tile.dom, endDOM: tile.dom.nextSibling };\n }\n else {\n return null;\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) || sameSelPos(newSel, 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 (view.state.doc.lineAt(sel.from).to < sel.to && view.docView.lineHasWidget(sel.to) &&\n view.inputState.insertingTextAt > Date.now() - 50) {\n // For a cross-line insertion, Chrome and Safari will crudely take\n // the text of the line after the selection, flattening any\n // widgets, and move it into the joined line. This tries to detect\n // such a situation, and replaces the change with a selection\n // replace of the text provided by the beforeinput event.\n change = {\n from: sel.from, to: sel.to,\n insert: view.state.toText(view.inputState.insertingText)\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 && !sameSelPos(newSel, 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 || view.inputState.compositionPendingChange) &&\n change.to <= sel.to + 10 && 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;\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 (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 to >= compositionRange.from && 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}\nfunction sameSelPos(selection, range) {\n return range.head == selection.main.head && range.anchor == selection.main.anchor;\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 // Set by beforeinput, used in DOM change reader\n this.insertingText = \"\";\n this.insertingTextAt = 0;\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, tile; node != view.contentDOM; node = node.parentNode)\n if (!node || node.nodeType == 11 ||\n ((tile = Tile.get(node)) && tile.isWidget() && !tile.isHidden && tile.widget.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 = view.docView.lineAt(pos, bias), 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}\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 = view.posAndSideAtCoords({ x: event.clientX, y: event.clientY }, false), 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 = view.posAndSideAtCoords({ x: event.clientX, y: event.clientY }, false), removed;\n let range = rangeForClick(view, cur.pos, cur.assoc, type);\n if (start.pos != cur.pos && !extend) {\n let startRange = rangeForClick(view, start.pos, start.assoc, 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 tile = view.docView.tile.nearest(event.target);\n if (tile && tile.isWidget()) {\n let from = tile.posAtStart, to = from + tile.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 // If the DOM selection is outside this editor, don't intercept.\n // This happens when a parent editor (like ProseMirror) selects content that\n // spans multiple elements including this CodeMirror. The copy event may\n // bubble through CodeMirror (e.g. when CodeMirror is the first or the last\n // element in the selection), but we should let the parent handle it.\n let domSel = getSelection(view.root);\n if (domSel && !hasSelection(view.contentDOM, domSel))\n return false;\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 if (event.inputType == \"insertText\" || event.inputType == \"insertCompositionText\") {\n view.inputState.insertingText = event.data;\n view.inputState.insertingTextAt = Date.now();\n }\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.abs(lineHeight - this.lineHeight) > 0.3 || this.lineWrapping != lineWrapping ||\n Math.abs(charWidth - this.charWidth) > 0.1;\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 nodes. 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-created 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, 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;\nconst SpaceDeco = /*@__PURE__*/Decoration.replace({});\nclass HeightMapBlock extends HeightMap {\n constructor(length, height, deco) {\n super(length, height);\n this.deco = deco;\n this.spaceAbove = 0;\n }\n mainBlock(top, offset) {\n return new BlockInfo(offset, this.length, top + this.spaceAbove, this.height - this.spaceAbove, this.deco || 0);\n }\n blockAt(height, _oracle, top, offset) {\n return this.spaceAbove && height < top + this.spaceAbove ? new BlockInfo(offset, 0, top, this.spaceAbove, SpaceDeco)\n : this.mainBlock(top, offset);\n }\n lineAt(_value, _type, oracle, top, offset) {\n let main = this.mainBlock(top, offset);\n return this.spaceAbove ? this.blockAt(0, oracle, top, offset).join(main) : main;\n }\n forEachLine(from, to, oracle, top, offset, f) {\n if (from <= offset + this.length && to >= offset)\n f(this.lineAt(0, QueryType.ByPos, oracle, top, offset));\n }\n setMeasuredHeight(measured) {\n let next = measured.heights[measured.index++];\n if (next < 0) {\n this.spaceAbove = -next;\n next = measured.heights[measured.index++];\n }\n else {\n this.spaceAbove = 0;\n }\n this.setHeight(next);\n }\n updateHeight(oracle, offset = 0, _force = false, measured) {\n if (measured && measured.from <= offset && measured.more)\n this.setMeasuredHeight(measured);\n this.outdated = false;\n return this;\n }\n toString() { return `block(${this.length})`; }\n}\nclass HeightMapText extends HeightMapBlock {\n constructor(length, height, above) {\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 this.spaceAbove = above;\n }\n mainBlock(top, offset) {\n return new BlockInfo(offset, this.length, top + this.spaceAbove, this.height - this.spaceAbove, 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, this.spaceAbove);\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.setMeasuredHeight(measured);\n }\n else if (force || this.outdated) {\n this.spaceAbove = 0;\n this.setHeight(Math.max(this.widgetHeight, oracle.heightForLine(this.length - this.collapsed)) +\n this.breaks * oracle.lineHeight);\n }\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++], above = 0;\n if (height < 0) {\n above = -height;\n height = measured.heights[measured.index++];\n }\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, above);\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, 0));\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, 0));\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, 0);\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, 0));\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 = staticDeco(state);\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 = staticDeco(this.state);\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.focusChanged) && 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) || this.mustMeasureContent;\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};\nfunction staticDeco(state) {\n let deco = state.facet(decorations).filter(d => typeof d != \"function\");\n let outer = state.facet(outerDecorations).filter(d => typeof d != \"function\");\n if (outer.length)\n deco.push(RangeSet.join(outer));\n return deco;\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.tile.nearest(sel.anchorNode);\n if (context && context.isWidget() && context.widget.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 && !sameSelPos(this.view.state.selection, domChange.newSel.main)))\n this.view.update([]);\n return handled;\n }\n readMutation(rec) {\n let tile = this.view.docView.tile.nearest(rec.target);\n if (!tile || tile.isWidget())\n return null;\n tile.markDirty(rec.type == \"attributes\");\n if (rec.type == \"childList\") {\n let childBefore = findChild(tile, rec.previousSibling || rec.target.previousSibling, -1);\n let childAfter = findChild(tile, rec.nextSibling || rec.target.nextSibling, 1);\n return { from: childBefore ? tile.posAfter(childBefore) : tile.posAtStart,\n to: childAfter ? tile.posBefore(childAfter) : tile.posAtEnd, typeOver: false };\n }\n else if (rec.type == \"characterData\") {\n return { from: tile.posAtStart, to: tile.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(tile, dom, dir) {\n while (dom) {\n let curTile = Tile.get(dom);\n if (curTile && curTile.parent == tile)\n return curTile;\n let parent = dom.parentNode;\n dom = parent != tile.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, 1);\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 (!sameSelPos(newSel, 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(() => {\n this.viewState.mustMeasureContent = true;\n this.requestMeasure();\n });\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, side = 1) {\n return this.docView.domAtPos(pos, side);\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 let found = posAtCoords(this, coords, precise);\n return found && found.pos;\n }\n posAndSideAtCoords(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 tile = content && Tile.get(content) || Tile.get(dom);\n return ((_a = tile === null || tile === void 0 ? void 0 : tile.root) === 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/**\n[Block wrappers](https://codemirror.net/6/docs/ref/#view.BlockWrapper) provide a way to add DOM\nstructure around editor lines and block widgets. Sets of\nwrappers are provided in a similar way to decorations, and are\nnested in a similar way when they overlap. A wrapper affects all\nlines and block widgets that start inside its range.\n*/\nEditorView.blockWrappers = blockWrappers;\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.safari) {\n // Safari always sets offsetParent to null, even if a fixed\n // element is positioned relative to a transformed parent. So\n // we use this kludge to try and detect this.\n let rect = dom.getBoundingClientRect();\n makeAbsolute = Math.abs(rect.top + 10000) > 1 || Math.abs(rect.left) > 1;\n }\n else {\n // More conforming browsers will set offsetParent to the\n // transformed element.\n makeAbsolute = !!dom.offsetParent && dom.offsetParent != this.container.ownerDocument.body;\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 tile = view.docView.tile.nearest(lastMove.target);\n if (!tile)\n return;\n let pos, side = 1;\n if (tile.isWidget()) {\n pos = tile.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 clearTimeout(this.restartTimeout);\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, BlockWrapper, 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","combineAttrs","source","target","name","noAttrs","attrsEq","a","b","ignore","keysA","keysB","key","setAttrs","dom","attrs","i","value","updateAttrs","prev","changed","getAttrs","attr","WidgetType","widget","view","other","event","pos","side","BlockType","Decoration","RangeValue","startSide","endSide","spec","MarkDecoration","block","PointDecoration","start","end","getInclusive","LineDecoration","of","sort","RangeSet","from","to","MapMode","isReplace","widgetsEq","addRange","ranges","margin","last","BlockWrapper","tagName","attributes","getSelection","root","contains","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","y","xMargin","yMargin","ltr","cur","stop","bounding","top","moveX","moveY","rectHeight","boundingHeight","movedX","movedY","scrollableParents","DOMSelectionState","domSel","range","anchorNode","focusNode","anchorOffset","focusOffset","preventScrollSupported","focusPreventScroll","stack","scratchRange","dispatchKey","code","mods","options","down","up","getRoot","atElementStart","offset","isScrolledToBottom","textNodeBefore","startNode","startOffset","textNodeAfter","DOMPos","precise","Direction","LTR","RTL","dec","str","result","LowTypes","ArabicTypes","Brackets","BracketStack","p","l","r","charType","ch","BidiRE","BidiSpan","level","forward","order","assoc","maybe","span","isolatesEq","iA","iB","types","computeCharTypes","line","rFrom","rTo","isolates","outerType","iI","prevType","prevStrong","type","replace","j","processBracketPairs","oppositeType","sI","context","br","sJ","flags","embed","processNeutrals","beforeL","afterL","jI","fromJ","emitSpans","baseLevel","ourType","iCh","sameDir","isNum","next","recurse","localLevel","iScan","run","iso","upto","dirSwap","computeSectionOrder","computeOrder","direction","trivialOrder","length","movedOver","moveVisually","_a","startIndex","spanI","spanEnd","nextI","nextIndex","findClusterBreak","nextSpan","EditorSelection","autoDirection","text","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","deco","plugin","ext","decorations","pluginInst","cls","PluginInstance","update","e","editorAttributes","contentAttributes","blockWrappers","outerDecorations","atomicRanges","bidiIsolatedRanges","getIsolatedRanges","sets","fromDoc","toDoc","active","open","add","scrollMargins","getScrollMargins","right","bottom","m","styleModule","ChangedRange","fromA","toA","fromB","toB","set","me","diff","dI","rI","nextD","nextR","ViewUpdate","transactions","ChangeSet","tr","changedRanges","noChildren","Tile","track","tile","child","after","DocTile","CompositeTile","tracking","rm$1","f","BlockWrapperTile","before","beforeOff","afterOff","wrapper","LineTile","keepAttrs","forCoords","scan","onSameLine","found","fallbackRect","saw","rects","posA","posB","MarkTile","mark","TextTile","flatten","WidgetTile","custom","fromBack","Text","WidgetBufferTile","img","TilePointer","dist","walker","beforeBreak","parents","brk","take","OpenWrapper","rank","TileBuilder","cache","marks","openStart","composition","freeNode","head","nw","oldTile","noSpace","lineBaseAttrs","hasContent","BreakWidget","wrap","TextStream","len","maxLen","lineBreak","done","chars","buckets","TileCache","bucket","test","widgets","pass","TileUpdate","old","disallowBlockEffectsFor","compositionContext","skipA","incStart","incEnd","activeMarks","getMarks","openMarks","pendingLineAttrs","markCount","openEnd","NullWidget","widgetFlags","addLineDeco","requireText","ptr","tag","DocView","readCompositionAt","touchesComposition","findCompositionRange","prevDeco","prevWrappers","decoDiff","findChangedDeco","blockDiff","findChangedWrappers","observer","builder","destroyDropped","gaps","BlockGapWidget","effect","mustRead","fromPointer","activeElt","focused","selectionNotFocus","force","main","anchor","betweenUneditable","dummy","inUneditable","rawSel","nextTo","nextToUneditable","sel","cursor","lineStart","newRange","bias","beforeBad","afterBad","viewport","contentWidth","isWider","widest","spaceAbove","measureBounds","childRect","height","width","lineMeasure","totalWidth","textHeight","lineHeight","charWidth","vs","allDeco","d","dynamicOuter","outerDeco","dynamic","v","ref","margins","targetRect","offsetWidth","offsetHeight","reused","findCompositionNode","headPos","textBefore","textAfter","textNode","tileAfter","tileBefore","inv","DecorationComparator$1","comp","WrapperComparator","inside","touched","groupAt","categorize","linePos","cat","posAtCoordsImprecise","contentRect","into","content","findColumn","blockAt","best","moveToLineBoundary","includeWrap","coords","editorRect","moveByChar","by","spans","check","char","byGroup","nextCat","CharCategory","moveVertically","distance","startPos","goal","startY","startCoords","docTop","resolvedGoal","posAtCoords","skipAtomicRanges","atoms","moved","skipAtomsForSelection","updated","skipAtoms","oldPos","newPos","PosAssoc","scanY","yOffset","halfLine","posAtCoordsInline","closest","closestRect","dxClosest","dyClosest","rowTop","rowBot","checkRects","dx","dy","dirAt","inner","innerOff","LineBreakPlaceholder","DOMReader","points","EditorState","oldLen","nextTile","isEmptyToEnd","point","re","nextBreak","breakSize","fromView","isAtEnd","w","override","DOMPoint","DOMChange","typeOver","iHead","iAnchor","domBoundsAround","selPoints","selectionPoints","reader","selectionFromPoints","offFrom","offTo","fromI","fromStart","toI","toEnd","prevEnd","applyDOMChange","domChange","change","newSel","lastKey","preferredPos","preferredSide","findDiff","sameSelPos","applyDOMChangeInner","userEvent","defaultTr","defaultInsert","applyDefaultInsert","h","startState","inAtomic","mainSel","replaced","compositionRange","dLen","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","insert","makeStyle","basicMouseSelection","mustFocus","mouseSel","rangeForClick","visual","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","_b","startViewHeight","appliedFirefoxHack","wrappingWhiteSpace","heightChangeFlag","clearHeightChangeFlag","HeightOracle","lineWrapping","lines","whiteSpace","lineHeights","newHeight","lineLength","knownHeights","MeasuredHeights","heights","BlockInfo","_content","QueryType","Epsilon","HeightMap","_from","_to","nodes","oldDoc","oracle","NodeBuilder","HeightMapText","split","HeightMapBranch","val","SpaceDeco","HeightMapBlock","_oracle","_value","_type","measured","_force","above","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","size","displaySize","gA","gB","viewState","wrapping","LineGapWidget","vertical","ViewState","IdScaler","guessWrapping","staticDeco","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","stateDeco","total","ratio","counted","array","outer","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","curTile","buildSelectionRangeFromRange","curAnchor","deletes","newLen","format","lineStyle","thickness","drifted","abort","_fromB","_toB","reverted","contextPos","clipLen","c","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","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","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","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","showDialog","resolve","promise","panelCtor","createDialog","dialogField","openDialogEffect","close","closeDialogEffect","form","dialogs","forms","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]}