@actualwave/react-native-codeditor 1.0.0

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 (210) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +790 -0
  3. package/app.plugin.js +133 -0
  4. package/lib/module/BlockingView.js +25 -0
  5. package/lib/module/CodeEditor.js +239 -0
  6. package/lib/module/EditorAPI.js +2 -0
  7. package/lib/module/WebViewAPI.js +133 -0
  8. package/lib/module/index.js +6 -0
  9. package/lib/module/package.json +1 -0
  10. package/lib/typescript/app.plugin.d.ts +3 -0
  11. package/lib/typescript/babel.config.d.ts +10 -0
  12. package/lib/typescript/package.json +1 -0
  13. package/lib/typescript/react-native.config.d.ts +2 -0
  14. package/lib/typescript/scripts/copy-assets.d.ts +2 -0
  15. package/lib/typescript/src/BlockingView.d.ts +3 -0
  16. package/lib/typescript/src/CodeEditor.d.ts +33 -0
  17. package/lib/typescript/src/EditorAPI.d.ts +66 -0
  18. package/lib/typescript/src/WebViewAPI.d.ts +46 -0
  19. package/lib/typescript/src/index.d.ts +7 -0
  20. package/package.json +106 -0
  21. package/react-native.config.js +3 -0
  22. package/src/assets/codemirror/@actualwave_codemirror-lang-sksl.js +15 -0
  23. package/src/assets/codemirror/@babel_runtime_helpers_interopRequireDefault.js +1 -0
  24. package/src/assets/codemirror/@babel_runtime_helpers_objectSpread2.js +1 -0
  25. package/src/assets/codemirror/@babel_runtime_helpers_toConsumableArray.js +1 -0
  26. package/src/assets/codemirror/@codemirror_autocomplete.js +206 -0
  27. package/src/assets/codemirror/@codemirror_collab.js +31 -0
  28. package/src/assets/codemirror/@codemirror_commands.js +411 -0
  29. package/src/assets/codemirror/@codemirror_lang-angular.js +7 -0
  30. package/src/assets/codemirror/@codemirror_lang-cpp.js +7 -0
  31. package/src/assets/codemirror/@codemirror_lang-css.js +14 -0
  32. package/src/assets/codemirror/@codemirror_lang-go.js +13 -0
  33. package/src/assets/codemirror/@codemirror_lang-html.js +20 -0
  34. package/src/assets/codemirror/@codemirror_lang-java.js +7 -0
  35. package/src/assets/codemirror/@codemirror_lang-javascript.js +54 -0
  36. package/src/assets/codemirror/@codemirror_lang-jinja.js +15 -0
  37. package/src/assets/codemirror/@codemirror_lang-json.js +10 -0
  38. package/src/assets/codemirror/@codemirror_lang-less.js +10 -0
  39. package/src/assets/codemirror/@codemirror_lang-lezer.js +7 -0
  40. package/src/assets/codemirror/@codemirror_lang-liquid.js +15 -0
  41. package/src/assets/codemirror/@codemirror_lang-markdown.js +55 -0
  42. package/src/assets/codemirror/@codemirror_lang-php.js +7 -0
  43. package/src/assets/codemirror/@codemirror_lang-python.js +19 -0
  44. package/src/assets/codemirror/@codemirror_lang-rust.js +7 -0
  45. package/src/assets/codemirror/@codemirror_lang-sass.js +10 -0
  46. package/src/assets/codemirror/@codemirror_lang-sql.js +52 -0
  47. package/src/assets/codemirror/@codemirror_lang-vue.js +6 -0
  48. package/src/assets/codemirror/@codemirror_lang-wast.js +2 -0
  49. package/src/assets/codemirror/@codemirror_lang-xml.js +13 -0
  50. package/src/assets/codemirror/@codemirror_lang-yaml.js +13 -0
  51. package/src/assets/codemirror/@codemirror_language-data.js +5 -0
  52. package/src/assets/codemirror/@codemirror_language.js +524 -0
  53. package/src/assets/codemirror/@codemirror_legacy-modes_mode_apl.js +1 -0
  54. package/src/assets/codemirror/@codemirror_legacy-modes_mode_asciiarmor.js +1 -0
  55. package/src/assets/codemirror/@codemirror_legacy-modes_mode_asn1.js +3 -0
  56. package/src/assets/codemirror/@codemirror_legacy-modes_mode_asterisk.js +9 -0
  57. package/src/assets/codemirror/@codemirror_legacy-modes_mode_brainfuck.js +13 -0
  58. package/src/assets/codemirror/@codemirror_legacy-modes_mode_clike.js +31 -0
  59. package/src/assets/codemirror/@codemirror_legacy-modes_mode_clojure.js +5 -0
  60. package/src/assets/codemirror/@codemirror_legacy-modes_mode_cmake.js +6 -0
  61. package/src/assets/codemirror/@codemirror_legacy-modes_mode_cobol.js +7 -0
  62. package/src/assets/codemirror/@codemirror_legacy-modes_mode_coffeescript.js +14 -0
  63. package/src/assets/codemirror/@codemirror_legacy-modes_mode_commonlisp.js +1 -0
  64. package/src/assets/codemirror/@codemirror_legacy-modes_mode_crystal.js +18 -0
  65. package/src/assets/codemirror/@codemirror_legacy-modes_mode_css.js +5 -0
  66. package/src/assets/codemirror/@codemirror_legacy-modes_mode_cypher.js +1 -0
  67. package/src/assets/codemirror/@codemirror_legacy-modes_mode_d.js +2 -0
  68. package/src/assets/codemirror/@codemirror_legacy-modes_mode_diff.js +1 -0
  69. package/src/assets/codemirror/@codemirror_legacy-modes_mode_dockerfile.js +9 -0
  70. package/src/assets/codemirror/@codemirror_legacy-modes_mode_dtd.js +3 -0
  71. package/src/assets/codemirror/@codemirror_legacy-modes_mode_dylan.js +35 -0
  72. package/src/assets/codemirror/@codemirror_legacy-modes_mode_ebnf.js +9 -0
  73. package/src/assets/codemirror/@codemirror_legacy-modes_mode_ecl.js +3 -0
  74. package/src/assets/codemirror/@codemirror_legacy-modes_mode_eiffel.js +1 -0
  75. package/src/assets/codemirror/@codemirror_legacy-modes_mode_elm.js +3 -0
  76. package/src/assets/codemirror/@codemirror_legacy-modes_mode_erlang.js +52 -0
  77. package/src/assets/codemirror/@codemirror_legacy-modes_mode_factor.js +14 -0
  78. package/src/assets/codemirror/@codemirror_legacy-modes_mode_fcl.js +2 -0
  79. package/src/assets/codemirror/@codemirror_legacy-modes_mode_forth.js +5 -0
  80. package/src/assets/codemirror/@codemirror_legacy-modes_mode_fortran.js +2 -0
  81. package/src/assets/codemirror/@codemirror_legacy-modes_mode_gas.js +13 -0
  82. package/src/assets/codemirror/@codemirror_legacy-modes_mode_gherkin.js +5 -0
  83. package/src/assets/codemirror/@codemirror_legacy-modes_mode_go.js +2 -0
  84. package/src/assets/codemirror/@codemirror_legacy-modes_mode_groovy.js +3 -0
  85. package/src/assets/codemirror/@codemirror_legacy-modes_mode_haskell.js +5 -0
  86. package/src/assets/codemirror/@codemirror_legacy-modes_mode_haxe.js +12 -0
  87. package/src/assets/codemirror/@codemirror_legacy-modes_mode_http.js +1 -0
  88. package/src/assets/codemirror/@codemirror_legacy-modes_mode_idl.js +7 -0
  89. package/src/assets/codemirror/@codemirror_legacy-modes_mode_javascript.js +23 -0
  90. package/src/assets/codemirror/@codemirror_legacy-modes_mode_jinja2.js +8 -0
  91. package/src/assets/codemirror/@codemirror_legacy-modes_mode_julia.js +17 -0
  92. package/src/assets/codemirror/@codemirror_legacy-modes_mode_livescript.js +1 -0
  93. package/src/assets/codemirror/@codemirror_legacy-modes_mode_lua.js +2 -0
  94. package/src/assets/codemirror/@codemirror_legacy-modes_mode_mathematica.js +26 -0
  95. package/src/assets/codemirror/@codemirror_legacy-modes_mode_mbox.js +11 -0
  96. package/src/assets/codemirror/@codemirror_legacy-modes_mode_mirc.js +1 -0
  97. package/src/assets/codemirror/@codemirror_legacy-modes_mode_mllike.js +8 -0
  98. package/src/assets/codemirror/@codemirror_legacy-modes_mode_modelica.js +12 -0
  99. package/src/assets/codemirror/@codemirror_legacy-modes_mode_mscgen.js +3 -0
  100. package/src/assets/codemirror/@codemirror_legacy-modes_mode_mumps.js +16 -0
  101. package/src/assets/codemirror/@codemirror_legacy-modes_mode_nginx.js +1 -0
  102. package/src/assets/codemirror/@codemirror_legacy-modes_mode_nsis.js +20 -0
  103. package/src/assets/codemirror/@codemirror_legacy-modes_mode_ntriples.js +1 -0
  104. package/src/assets/codemirror/@codemirror_legacy-modes_mode_octave.js +8 -0
  105. package/src/assets/codemirror/@codemirror_legacy-modes_mode_oz.js +17 -0
  106. package/src/assets/codemirror/@codemirror_legacy-modes_mode_pascal.js +2 -0
  107. package/src/assets/codemirror/@codemirror_legacy-modes_mode_pegjs.js +25 -0
  108. package/src/assets/codemirror/@codemirror_legacy-modes_mode_perl.js +247 -0
  109. package/src/assets/codemirror/@codemirror_legacy-modes_mode_pig.js +6 -0
  110. package/src/assets/codemirror/@codemirror_legacy-modes_mode_powershell.js +7 -0
  111. package/src/assets/codemirror/@codemirror_legacy-modes_mode_properties.js +5 -0
  112. package/src/assets/codemirror/@codemirror_legacy-modes_mode_protobuf.js +7 -0
  113. package/src/assets/codemirror/@codemirror_legacy-modes_mode_pug.js +24 -0
  114. package/src/assets/codemirror/@codemirror_legacy-modes_mode_puppet.js +42 -0
  115. package/src/assets/codemirror/@codemirror_legacy-modes_mode_python.js +15 -0
  116. package/src/assets/codemirror/@codemirror_legacy-modes_mode_q.js +2 -0
  117. package/src/assets/codemirror/@codemirror_legacy-modes_mode_r.js +1 -0
  118. package/src/assets/codemirror/@codemirror_legacy-modes_mode_rpm.js +9 -0
  119. package/src/assets/codemirror/@codemirror_legacy-modes_mode_ruby.js +4 -0
  120. package/src/assets/codemirror/@codemirror_legacy-modes_mode_rust.js +5 -0
  121. package/src/assets/codemirror/@codemirror_legacy-modes_mode_sas.js +23 -0
  122. package/src/assets/codemirror/@codemirror_legacy-modes_mode_sass.js +26 -0
  123. package/src/assets/codemirror/@codemirror_legacy-modes_mode_scheme.js +14 -0
  124. package/src/assets/codemirror/@codemirror_legacy-modes_mode_shell.js +1 -0
  125. package/src/assets/codemirror/@codemirror_legacy-modes_mode_sieve.js +7 -0
  126. package/src/assets/codemirror/@codemirror_legacy-modes_mode_simple-mode.js +1 -0
  127. package/src/assets/codemirror/@codemirror_legacy-modes_mode_smalltalk.js +1 -0
  128. package/src/assets/codemirror/@codemirror_legacy-modes_mode_solr.js +1 -0
  129. package/src/assets/codemirror/@codemirror_legacy-modes_mode_sparql.js +1 -0
  130. package/src/assets/codemirror/@codemirror_legacy-modes_mode_spreadsheet.js +6 -0
  131. package/src/assets/codemirror/@codemirror_legacy-modes_mode_sql.js +84 -0
  132. package/src/assets/codemirror/@codemirror_legacy-modes_mode_stex.js +11 -0
  133. package/src/assets/codemirror/@codemirror_legacy-modes_mode_stylus.js +45 -0
  134. package/src/assets/codemirror/@codemirror_legacy-modes_mode_swift.js +2 -0
  135. package/src/assets/codemirror/@codemirror_legacy-modes_mode_tcl.js +1 -0
  136. package/src/assets/codemirror/@codemirror_legacy-modes_mode_textile.js +2 -0
  137. package/src/assets/codemirror/@codemirror_legacy-modes_mode_tiddlywiki.js +33 -0
  138. package/src/assets/codemirror/@codemirror_legacy-modes_mode_tiki.js +20 -0
  139. package/src/assets/codemirror/@codemirror_legacy-modes_mode_toml.js +4 -0
  140. package/src/assets/codemirror/@codemirror_legacy-modes_mode_troff.js +1 -0
  141. package/src/assets/codemirror/@codemirror_legacy-modes_mode_ttcn-cfg.js +3 -0
  142. package/src/assets/codemirror/@codemirror_legacy-modes_mode_ttcn.js +3 -0
  143. package/src/assets/codemirror/@codemirror_legacy-modes_mode_turtle.js +1 -0
  144. package/src/assets/codemirror/@codemirror_legacy-modes_mode_vb.js +11 -0
  145. package/src/assets/codemirror/@codemirror_legacy-modes_mode_vbscript.js +26 -0
  146. package/src/assets/codemirror/@codemirror_legacy-modes_mode_velocity.js +15 -0
  147. package/src/assets/codemirror/@codemirror_legacy-modes_mode_verilog.js +67 -0
  148. package/src/assets/codemirror/@codemirror_legacy-modes_mode_vhdl.js +2 -0
  149. package/src/assets/codemirror/@codemirror_legacy-modes_mode_wast.js +7 -0
  150. package/src/assets/codemirror/@codemirror_legacy-modes_mode_webidl.js +25 -0
  151. package/src/assets/codemirror/@codemirror_legacy-modes_mode_xml.js +6 -0
  152. package/src/assets/codemirror/@codemirror_legacy-modes_mode_xquery.js +51 -0
  153. package/src/assets/codemirror/@codemirror_legacy-modes_mode_yacas.js +16 -0
  154. package/src/assets/codemirror/@codemirror_legacy-modes_mode_yaml.js +1 -0
  155. package/src/assets/codemirror/@codemirror_legacy-modes_mode_z80.js +1 -0
  156. package/src/assets/codemirror/@codemirror_lint.js +46 -0
  157. package/src/assets/codemirror/@codemirror_merge.js +167 -0
  158. package/src/assets/codemirror/@codemirror_search.js +121 -0
  159. package/src/assets/codemirror/@codemirror_state.js +793 -0
  160. package/src/assets/codemirror/@codemirror_theme-one-dark.js +12 -0
  161. package/src/assets/codemirror/@codemirror_view.js +1210 -0
  162. package/src/assets/codemirror/@lezer_common.js +407 -0
  163. package/src/assets/codemirror/@lezer_cpp.js +4 -0
  164. package/src/assets/codemirror/@lezer_css.js +4 -0
  165. package/src/assets/codemirror/@lezer_go.js +3 -0
  166. package/src/assets/codemirror/@lezer_highlight.js +380 -0
  167. package/src/assets/codemirror/@lezer_html.js +20 -0
  168. package/src/assets/codemirror/@lezer_java.js +2 -0
  169. package/src/assets/codemirror/@lezer_javascript.js +7 -0
  170. package/src/assets/codemirror/@lezer_json.js +2 -0
  171. package/src/assets/codemirror/@lezer_lezer.js +2 -0
  172. package/src/assets/codemirror/@lezer_lr.js +325 -0
  173. package/src/assets/codemirror/@lezer_markdown.js +286 -0
  174. package/src/assets/codemirror/@lezer_php.js +3 -0
  175. package/src/assets/codemirror/@lezer_python.js +5 -0
  176. package/src/assets/codemirror/@lezer_rust.js +3 -0
  177. package/src/assets/codemirror/@lezer_sass.js +5 -0
  178. package/src/assets/codemirror/@lezer_xml.js +3 -0
  179. package/src/assets/codemirror/@lezer_yaml.js +12 -0
  180. package/src/assets/codemirror/@marijn_find-cluster-break.js +10 -0
  181. package/src/assets/codemirror/@uiw_codemirror-theme-androidstudio.js +3 -0
  182. package/src/assets/codemirror/@uiw_codemirror-theme-andromeda.js +1 -0
  183. package/src/assets/codemirror/@uiw_codemirror-theme-atomone.js +6 -0
  184. package/src/assets/codemirror/@uiw_codemirror-theme-aura.js +1 -0
  185. package/src/assets/codemirror/@uiw_codemirror-theme-basic.js +1 -0
  186. package/src/assets/codemirror/@uiw_codemirror-theme-bbedit.js +1 -0
  187. package/src/assets/codemirror/@uiw_codemirror-theme-copilot.js +1 -0
  188. package/src/assets/codemirror/@uiw_codemirror-theme-darcula.js +6 -0
  189. package/src/assets/codemirror/@uiw_codemirror-theme-dracula.js +6 -0
  190. package/src/assets/codemirror/@uiw_codemirror-theme-duotone.js +5 -0
  191. package/src/assets/codemirror/@uiw_codemirror-theme-eclipse.js +1 -0
  192. package/src/assets/codemirror/@uiw_codemirror-theme-github.js +3 -0
  193. package/src/assets/codemirror/@uiw_codemirror-theme-material.js +1 -0
  194. package/src/assets/codemirror/@uiw_codemirror-theme-monokai.js +1 -0
  195. package/src/assets/codemirror/@uiw_codemirror-theme-nord.js +2 -0
  196. package/src/assets/codemirror/@uiw_codemirror-theme-okaidia.js +2 -0
  197. package/src/assets/codemirror/@uiw_codemirror-theme-solarized.js +1 -0
  198. package/src/assets/codemirror/@uiw_codemirror-theme-sublime.js +2 -0
  199. package/src/assets/codemirror/@uiw_codemirror-theme-tokyo-night.js +1 -0
  200. package/src/assets/codemirror/@uiw_codemirror-theme-vscode.js +5 -0
  201. package/src/assets/codemirror/@uiw_codemirror-theme-xcode.js +3 -0
  202. package/src/assets/codemirror/@uiw_codemirror-themes.js +1 -0
  203. package/src/assets/codemirror/_core.js +4494 -0
  204. package/src/assets/codemirror/codemirror.js +46 -0
  205. package/src/assets/codemirror/crelt.js +1 -0
  206. package/src/assets/codemirror/style-mod.js +36 -0
  207. package/src/assets/codemirror/w3c-keyname.js +8 -0
  208. package/src/assets/codemirror-editor.umd.js +415 -0
  209. package/src/assets/editor.html +377 -0
  210. package/src/assets/webview-interface.umd.js +2 -0
@@ -0,0 +1,46 @@
1
+ async function moduleInitFunction(requireAsyncModule,exports={}){const module={exports:exports};var hasRequiredDist,require$$0=await requireAsyncModule("@codemirror/view"),require$$1=await requireAsyncModule("@codemirror/state"),require$$2=await requireAsyncModule("@codemirror/language"),require$$3=await requireAsyncModule("@codemirror/commands"),require$$4=await requireAsyncModule("@codemirror/search"),require$$5=await requireAsyncModule("@codemirror/autocomplete"),require$$6=await requireAsyncModule("@codemirror/lint"),dist={},distExports=function requireDist(){return hasRequiredDist?dist:(hasRequiredDist=1,function(exports){var view=require$$0,state=require$$1,language=require$$2,commands=require$$3,search=require$$4,autocomplete=require$$5,lint=require$$6;// (The superfluous function calls around the list of extensions work
2
+ // around current limitations in tree-shaking software.)
3
+ /**
4
+ This is an extension value that just pulls together a number of
5
+ extensions that you might want in a basic editor. It is meant as a
6
+ convenient helper to quickly set up CodeMirror without installing
7
+ and importing a lot of separate packages.
8
+
9
+ Specifically, it includes...
10
+
11
+ - [the default command bindings](https://codemirror.net/6/docs/ref/#commands.defaultKeymap)
12
+ - [line numbers](https://codemirror.net/6/docs/ref/#view.lineNumbers)
13
+ - [special character highlighting](https://codemirror.net/6/docs/ref/#view.highlightSpecialChars)
14
+ - [the undo history](https://codemirror.net/6/docs/ref/#commands.history)
15
+ - [a fold gutter](https://codemirror.net/6/docs/ref/#language.foldGutter)
16
+ - [custom selection drawing](https://codemirror.net/6/docs/ref/#view.drawSelection)
17
+ - [drop cursor](https://codemirror.net/6/docs/ref/#view.dropCursor)
18
+ - [multiple selections](https://codemirror.net/6/docs/ref/#state.EditorState^allowMultipleSelections)
19
+ - [reindentation on input](https://codemirror.net/6/docs/ref/#language.indentOnInput)
20
+ - [the default highlight style](https://codemirror.net/6/docs/ref/#language.defaultHighlightStyle) (as fallback)
21
+ - [bracket matching](https://codemirror.net/6/docs/ref/#language.bracketMatching)
22
+ - [bracket closing](https://codemirror.net/6/docs/ref/#autocomplete.closeBrackets)
23
+ - [autocompletion](https://codemirror.net/6/docs/ref/#autocomplete.autocompletion)
24
+ - [rectangular selection](https://codemirror.net/6/docs/ref/#view.rectangularSelection) and [crosshair cursor](https://codemirror.net/6/docs/ref/#view.crosshairCursor)
25
+ - [active line highlighting](https://codemirror.net/6/docs/ref/#view.highlightActiveLine)
26
+ - [active line gutter highlighting](https://codemirror.net/6/docs/ref/#view.highlightActiveLineGutter)
27
+ - [selection match highlighting](https://codemirror.net/6/docs/ref/#search.highlightSelectionMatches)
28
+ - [search](https://codemirror.net/6/docs/ref/#search.searchKeymap)
29
+ - [linting](https://codemirror.net/6/docs/ref/#lint.lintKeymap)
30
+
31
+ (You'll probably want to add some language package to your setup
32
+ too.)
33
+
34
+ This extension does not allow customization. The idea is that,
35
+ once you decide you want to configure your editor more precisely,
36
+ you take this package's source (which is just a bunch of imports
37
+ and an array literal), copy it into your own code, and adjust it
38
+ as desired.
39
+ */const basicSetup=(()=>[view.lineNumbers(),view.highlightActiveLineGutter(),view.highlightSpecialChars(),commands.history(),language.foldGutter(),view.drawSelection(),view.dropCursor(),state.EditorState.allowMultipleSelections.of(!0),language.indentOnInput(),language.syntaxHighlighting(language.defaultHighlightStyle,{fallback:!0}),language.bracketMatching(),autocomplete.closeBrackets(),autocomplete.autocompletion(),view.rectangularSelection(),view.crosshairCursor(),view.highlightActiveLine(),search.highlightSelectionMatches(),view.keymap.of([...autocomplete.closeBracketsKeymap,...commands.defaultKeymap,...search.searchKeymap,...commands.historyKeymap,...language.foldKeymap,...autocomplete.completionKeymap,...lint.lintKeymap])])(),minimalSetup=(()=>[view.highlightSpecialChars(),commands.history(),view.drawSelection(),language.syntaxHighlighting(language.defaultHighlightStyle,{fallback:!0}),view.keymap.of([...commands.defaultKeymap,...commands.historyKeymap])])();/**
40
+ A minimal set of extensions to create a functional editor. Only
41
+ includes [the default keymap](https://codemirror.net/6/docs/ref/#commands.defaultKeymap), [undo
42
+ history](https://codemirror.net/6/docs/ref/#commands.history), [special character
43
+ highlighting](https://codemirror.net/6/docs/ref/#view.highlightSpecialChars), [custom selection
44
+ drawing](https://codemirror.net/6/docs/ref/#view.drawSelection), and [default highlight
45
+ style](https://codemirror.net/6/docs/ref/#language.defaultHighlightStyle).
46
+ */Object.defineProperty(exports,"EditorView",{enumerable:!0,get:function(){return view.EditorView}}),exports.basicSetup=basicSetup,exports.minimalSetup=minimalSetup}(dist),dist)}(),index=/*@__PURE__*/function getDefaultExportFromCjs(x){return x}(distExports);return module.exports=index,module.exports}
@@ -0,0 +1 @@
1
+ async function moduleInitFunction(requireAsyncModule,exports={}){function requireDist(){function crelt(){var elt=arguments[0];"string"==typeof elt&&(elt=document.createElement(elt));var i=1,next=arguments[1];if(next&&"object"==typeof next&&null==next.nodeType&&!Array.isArray(next)){for(var name in next)if(Object.prototype.hasOwnProperty.call(next,name)){var value=next[name];"string"==typeof value?elt.setAttribute(name,value):null!=value&&(elt[name]=value)}i++}for(;i<arguments.length;i++)add(elt,arguments[i]);return elt}function add(elt,child){if("string"==typeof child)elt.appendChild(document.createTextNode(child));else if(null==child);else if(null!=child.nodeType)elt.appendChild(child);else if(Array.isArray(child))for(var i=0;i<child.length;i++)add(elt,child[i]);else throw new RangeError("Unsupported child node: "+child)}return hasRequiredDist?dist:(hasRequiredDist=1,dist=crelt,dist)}const module={exports:exports};var dist,hasRequiredDist,distExports=requireDist(),index=/*@__PURE__*/function getDefaultExportFromCjs(x){return x}(distExports);return module.exports=index,module.exports}
@@ -0,0 +1,36 @@
1
+ async function moduleInitFunction(requireAsyncModule,exports={}){const module={exports:exports};var hasRequiredStyleMod,styleMod$1={},styleModExports=function requireStyleMod(){if(hasRequiredStyleMod)return styleMod$1;hasRequiredStyleMod=1;var C="\u037C",COUNT="undefined"==typeof Symbol?"__\u037C":Symbol.for("\u037C"),SET="undefined"==typeof Symbol?"__styleSet"+Math.floor(1e8*Math.random()):Symbol("styleSet"),top="undefined"==typeof globalThis?"undefined"==typeof window?{}:window:globalThis,StyleModule=styleMod$1.StyleModule=function StyleModule(spec,options){function splitSelector(selector){return /^@/.test(selector)?[selector]:selector.split(/,\s*/)}function render(selectors,spec,target,isKeyframes){var local=[],isAt=/^@(\w+)\b/.exec(selectors[0]),keyframes=isAt&&"keyframes"==isAt[1];if(isAt&&null==spec)return target.push(selectors[0]+";");for(var prop in spec){var value=spec[prop];if(/&/.test(prop))render(prop.split(/,\s*/).map(function(part){return selectors.map(function(sel){return part.replace(/&/,sel)})}).reduce(function(a,b){return a.concat(b)}),value,target);else if(value&&"object"==typeof value){if(!isAt)throw new RangeError("The value of a property ("+prop+") should be a primitive value.");render(splitSelector(prop),value,local,keyframes)}else null!=value&&local.push(prop.replace(/_.*/,"").replace(/[A-Z]/g,function(l){return"-"+l.toLowerCase()})+": "+value+";")}(local.length||keyframes)&&target.push((!finish||isAt||isKeyframes?selectors:selectors.map(finish)).join(", ")+" {"+local.join(" ")+"}")}this.rules=[];var ref=options||{},finish=ref.finish;for(var prop in spec)render(splitSelector(prop),spec[prop],this.rules)};// :: - Style modules encapsulate a set of CSS rules defined from
2
+ // JavaScript. Their definitions are only available in a given DOM
3
+ // root after it has been _mounted_ there with `StyleModule.mount`.
4
+ //
5
+ // Style modules should be created once and stored somewhere, as
6
+ // opposed to re-creating them every time you need them. The amount of
7
+ // CSS rules generated for a given DOM root is bounded by the amount
8
+ // of style modules that were used. So to avoid leaking rules, don't
9
+ // create these dynamically, but treat them as one-time allocations.
10
+ StyleModule.prototype.getRules=function getRules(){return this.rules.join("\n")},StyleModule.newName=function newName(){var id=top[COUNT]||1;return top[COUNT]=id+1,"\u037C"+id.toString(36)},StyleModule.mount=function mount(root,modules,options){var set=root[SET],nonce=options&&options.nonce;set?nonce&&set.setNonce(nonce):set=new StyleSet(root,nonce),set.mount(Array.isArray(modules)?modules:[modules],root)};var adoptedSet=new Map,StyleSet=function StyleSet(root,nonce){var doc=root.ownerDocument||root,win=doc.defaultView;if(!root.head&&root.adoptedStyleSheets&&win.CSSStyleSheet){var adopted=adoptedSet.get(doc);if(adopted)return root[SET]=adopted;this.sheet=new win.CSSStyleSheet,adoptedSet.set(doc,this)}else this.styleTag=doc.createElement("style"),nonce&&this.styleTag.setAttribute("nonce",nonce);this.modules=[],root[SET]=this};//<Document, StyleSet>
11
+ // Style::Object<union<Style,string>>
12
+ //
13
+ // A style is an object that, in the simple case, maps CSS property
14
+ // names to strings holding their values, as in `{color: "red",
15
+ // fontWeight: "bold"}`. The property names can be given in
16
+ // camel-case—the library will insert a dash before capital letters
17
+ // when converting them to CSS.
18
+ //
19
+ // If you include an underscore in a property name, it and everything
20
+ // after it will be removed from the output, which can be useful when
21
+ // providing a property multiple times, for browser compatibility
22
+ // reasons.
23
+ //
24
+ // A property in a style object can also be a sub-selector, which
25
+ // extends the current context to add a pseudo-selector or a child
26
+ // selector. Such a property should contain a `&` character, which
27
+ // will be replaced by the current selector. For example `{"&:before":
28
+ // {content: '"hi"'}}`. Sub-selectors and regular properties can
29
+ // freely be mixed in a given object. Any property containing a `&` is
30
+ // assumed to be a sub-selector.
31
+ //
32
+ // Finally, a property can specify an @-block to be wrapped around the
33
+ // styles defined inside the object that's the property's value. For
34
+ // example to create a media query you can do `{"@media screen and
35
+ // (min-width: 400px)": {...}}`.
36
+ return StyleSet.prototype.mount=function mount(modules,root){/* Index into this.modules */for(var sheet=this.sheet,pos=0/* Current rule offset */,j=0,i=0;i<modules.length;i++){var mod=modules[i],index=this.modules.indexOf(mod);if(index<j&&-1<index&&(this.modules.splice(index,1),j--,index=-1),-1!=index){for(;j<index;)pos+=this.modules[j++].rules.length;pos+=mod.rules.length,j++}else if(this.modules.splice(j++,0,mod),sheet)for(var k=0;k<mod.rules.length;k++)sheet.insertRule(mod.rules[k],pos++)}if(sheet)0>root.adoptedStyleSheets.indexOf(this.sheet)&&(root.adoptedStyleSheets=[this.sheet].concat(root.adoptedStyleSheets));else{for(var text="",i$1=0;i$1<this.modules.length;i$1++)text+=this.modules[i$1].getRules()+"\n";this.styleTag.textContent=text;var target=root.head||root;this.styleTag.parentNode!=target&&target.insertBefore(this.styleTag,target.firstChild)}},StyleSet.prototype.setNonce=function setNonce(nonce){this.styleTag&&this.styleTag.getAttribute("nonce")!=nonce&&this.styleTag.setAttribute("nonce",nonce)},styleMod$1}(),styleMod=/*@__PURE__*/function getDefaultExportFromCjs(x){return x}(styleModExports);return module.exports=styleMod,module.exports}
@@ -0,0 +1,8 @@
1
+ async function moduleInitFunction(requireAsyncModule,exports={}){const module={exports:exports};var hasRequiredW3cKeyname,w3cKeyname={},w3cKeynameExports=function requireW3cKeyname(){function keyName(event){// On macOS, keys held with Shift and Cmd don't reflect the effect of Shift in `.key`.
2
+ // On IE, shift effect is never included in `.key`.
3
+ var ignoreKey=mac&&event.metaKey&&event.shiftKey&&!event.ctrlKey&&!event.altKey||ie&&event.shiftKey&&event.key&&1==event.key.length||"Unidentified"==event.key,name=!ignoreKey&&event.key||(event.shiftKey?shift:base)[event.keyCode]||event.key||"Unidentified";// Edge sometimes produces wrong names (Issue #3)
4
+ return"Esc"==name&&(name="Escape"),"Del"==name&&(name="Delete"),"Left"==name&&(name="ArrowLeft"),"Up"==name&&(name="ArrowUp"),"Right"==name&&(name="ArrowRight"),"Down"==name&&(name="ArrowDown"),name}if(hasRequiredW3cKeyname)return w3cKeyname;hasRequiredW3cKeyname=1,Object.defineProperty(w3cKeyname,"__esModule",{value:!0});// Fill in the digit keys
5
+ for(var base={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},shift={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:"\""},mac="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),ie="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),i=0;10>i;i++)base[48+i]=base[96+i]=i+"";// The function keys
6
+ for(var i=1;24>=i;i++)base[i+111]="F"+i;// And the alphabetic keys
7
+ for(var i=65;90>=i;i++)base[i]=String.fromCharCode(i+32),shift[i]=String.fromCharCode(i);// For each code that doesn't have a shift-equivalent, copy the base name
8
+ for(var code in base)shift.hasOwnProperty(code)||(shift[code]=base[code]);return w3cKeyname.base=base,w3cKeyname.keyName=keyName,w3cKeyname.shift=shift,w3cKeyname}(),index=/*@__PURE__*/function getDefaultExportFromCjs(x){return x}(w3cKeynameExports);return module.exports=index,module.exports}
@@ -0,0 +1,415 @@
1
+ // Generated by scripts/copy-assets.js — do not edit directly.
2
+ // Source: node_modules/@actualwave/codemirror-package/dist/
3
+ // Plain IIFE bundle (no import/export) for loading via <script> in Android WebView.
4
+ // Exposes: window.CodeMirrorEditor = { configure, createEditor, requireAsyncModule, registerExtension }
5
+ (function (global) {
6
+ 'use strict';
7
+ // Injected during build with the full module map: { [packageName]: { file, core?, bundle? } }
8
+ const modules = {"crelt":{"file":"crelt","core":true,"bundle":"_core"},"style-mod":{"file":"style-mod","core":true,"bundle":"_core"},"w3c-keyname":{"file":"w3c-keyname","core":true,"bundle":"_core"},"@marijn/find-cluster-break":{"file":"@marijn_find-cluster-break","core":true,"bundle":"_core"},"@lezer/common":{"file":"@lezer_common","core":true,"bundle":"_core"},"@lezer/highlight":{"file":"@lezer_highlight","core":true,"bundle":"_core"},"@lezer/lr":{"file":"@lezer_lr","core":true,"bundle":"_core"},"@codemirror/state":{"file":"@codemirror_state","core":true,"bundle":"_core"},"@codemirror/view":{"file":"@codemirror_view","core":true,"bundle":"_core"},"@codemirror/language":{"file":"@codemirror_language","core":true,"bundle":"_core"},"@codemirror/commands":{"file":"@codemirror_commands","core":true,"bundle":"_core"},"@codemirror/autocomplete":{"file":"@codemirror_autocomplete","core":true,"bundle":"_core"},"@codemirror/search":{"file":"@codemirror_search","core":true,"bundle":"_core"},"@codemirror/lint":{"file":"@codemirror_lint","core":true,"bundle":"_core"},"codemirror":{"file":"codemirror"},"@codemirror/collab":{"file":"@codemirror_collab"},"@codemirror/language-data":{"file":"@codemirror_language-data"},"@codemirror/merge":{"file":"@codemirror_merge"},"@codemirror/theme-one-dark":{"file":"@codemirror_theme-one-dark"},"@uiw/codemirror-themes":{"file":"@uiw_codemirror-themes"},"@uiw/codemirror-theme-androidstudio":{"file":"@uiw_codemirror-theme-androidstudio"},"@uiw/codemirror-theme-andromeda":{"file":"@uiw_codemirror-theme-andromeda"},"@uiw/codemirror-theme-atomone":{"file":"@uiw_codemirror-theme-atomone"},"@uiw/codemirror-theme-aura":{"file":"@uiw_codemirror-theme-aura"},"@uiw/codemirror-theme-basic":{"file":"@uiw_codemirror-theme-basic"},"@uiw/codemirror-theme-bbedit":{"file":"@uiw_codemirror-theme-bbedit"},"@uiw/codemirror-theme-copilot":{"file":"@uiw_codemirror-theme-copilot"},"@uiw/codemirror-theme-darcula":{"file":"@uiw_codemirror-theme-darcula"},"@uiw/codemirror-theme-dracula":{"file":"@uiw_codemirror-theme-dracula"},"@uiw/codemirror-theme-duotone":{"file":"@uiw_codemirror-theme-duotone"},"@uiw/codemirror-theme-eclipse":{"file":"@uiw_codemirror-theme-eclipse"},"@uiw/codemirror-theme-github":{"file":"@uiw_codemirror-theme-github"},"@uiw/codemirror-theme-material":{"file":"@uiw_codemirror-theme-material"},"@uiw/codemirror-theme-monokai":{"file":"@uiw_codemirror-theme-monokai"},"@uiw/codemirror-theme-nord":{"file":"@uiw_codemirror-theme-nord"},"@uiw/codemirror-theme-okaidia":{"file":"@uiw_codemirror-theme-okaidia"},"@uiw/codemirror-theme-solarized":{"file":"@uiw_codemirror-theme-solarized"},"@uiw/codemirror-theme-sublime":{"file":"@uiw_codemirror-theme-sublime"},"@uiw/codemirror-theme-tokyo-night":{"file":"@uiw_codemirror-theme-tokyo-night"},"@uiw/codemirror-theme-vscode":{"file":"@uiw_codemirror-theme-vscode"},"@uiw/codemirror-theme-xcode":{"file":"@uiw_codemirror-theme-xcode"},"@lezer/css":{"file":"@lezer_css"},"@lezer/go":{"file":"@lezer_go"},"@lezer/html":{"file":"@lezer_html"},"@lezer/java":{"file":"@lezer_java"},"@lezer/javascript":{"file":"@lezer_javascript"},"@lezer/json":{"file":"@lezer_json"},"@lezer/cpp":{"file":"@lezer_cpp"},"@lezer/lezer":{"file":"@lezer_lezer"},"@lezer/markdown":{"file":"@lezer_markdown"},"@lezer/php":{"file":"@lezer_php"},"@lezer/python":{"file":"@lezer_python"},"@lezer/rust":{"file":"@lezer_rust"},"@lezer/sass":{"file":"@lezer_sass"},"@lezer/xml":{"file":"@lezer_xml"},"@lezer/yaml":{"file":"@lezer_yaml"},"@codemirror/lang-angular":{"file":"@codemirror_lang-angular"},"@codemirror/lang-cpp":{"file":"@codemirror_lang-cpp"},"@codemirror/lang-css":{"file":"@codemirror_lang-css"},"@codemirror/lang-go":{"file":"@codemirror_lang-go"},"@codemirror/lang-html":{"file":"@codemirror_lang-html"},"@codemirror/lang-java":{"file":"@codemirror_lang-java"},"@codemirror/lang-javascript":{"file":"@codemirror_lang-javascript"},"@codemirror/lang-jinja":{"file":"@codemirror_lang-jinja"},"@codemirror/lang-json":{"file":"@codemirror_lang-json"},"@codemirror/lang-less":{"file":"@codemirror_lang-less"},"@codemirror/lang-lezer":{"file":"@codemirror_lang-lezer"},"@codemirror/lang-liquid":{"file":"@codemirror_lang-liquid"},"@codemirror/lang-markdown":{"file":"@codemirror_lang-markdown"},"@codemirror/lang-php":{"file":"@codemirror_lang-php"},"@codemirror/lang-python":{"file":"@codemirror_lang-python"},"@codemirror/lang-rust":{"file":"@codemirror_lang-rust"},"@codemirror/lang-sass":{"file":"@codemirror_lang-sass"},"@codemirror/lang-sql":{"file":"@codemirror_lang-sql"},"@codemirror/lang-vue":{"file":"@codemirror_lang-vue"},"@codemirror/lang-wast":{"file":"@codemirror_lang-wast"},"@codemirror/lang-xml":{"file":"@codemirror_lang-xml"},"@codemirror/lang-yaml":{"file":"@codemirror_lang-yaml"},"@actualwave/codemirror-lang-sksl":{"file":"@actualwave_codemirror-lang-sksl"},"@codemirror/legacy-modes/mode/apl":{"file":"@codemirror_legacy-modes_mode_apl"},"@codemirror/legacy-modes/mode/asciiarmor":{"file":"@codemirror_legacy-modes_mode_asciiarmor"},"@codemirror/legacy-modes/mode/asn1":{"file":"@codemirror_legacy-modes_mode_asn1"},"@codemirror/legacy-modes/mode/asterisk":{"file":"@codemirror_legacy-modes_mode_asterisk"},"@codemirror/legacy-modes/mode/brainfuck":{"file":"@codemirror_legacy-modes_mode_brainfuck"},"@codemirror/legacy-modes/mode/clike":{"file":"@codemirror_legacy-modes_mode_clike"},"@codemirror/legacy-modes/mode/clojure":{"file":"@codemirror_legacy-modes_mode_clojure"},"@codemirror/legacy-modes/mode/cmake":{"file":"@codemirror_legacy-modes_mode_cmake"},"@codemirror/legacy-modes/mode/cobol":{"file":"@codemirror_legacy-modes_mode_cobol"},"@codemirror/legacy-modes/mode/coffeescript":{"file":"@codemirror_legacy-modes_mode_coffeescript"},"@codemirror/legacy-modes/mode/commonlisp":{"file":"@codemirror_legacy-modes_mode_commonlisp"},"@codemirror/legacy-modes/mode/crystal":{"file":"@codemirror_legacy-modes_mode_crystal"},"@codemirror/legacy-modes/mode/css":{"file":"@codemirror_legacy-modes_mode_css"},"@codemirror/legacy-modes/mode/cypher":{"file":"@codemirror_legacy-modes_mode_cypher"},"@codemirror/legacy-modes/mode/d":{"file":"@codemirror_legacy-modes_mode_d"},"@codemirror/legacy-modes/mode/diff":{"file":"@codemirror_legacy-modes_mode_diff"},"@codemirror/legacy-modes/mode/dockerfile":{"file":"@codemirror_legacy-modes_mode_dockerfile"},"@codemirror/legacy-modes/mode/dtd":{"file":"@codemirror_legacy-modes_mode_dtd"},"@codemirror/legacy-modes/mode/dylan":{"file":"@codemirror_legacy-modes_mode_dylan"},"@codemirror/legacy-modes/mode/ebnf":{"file":"@codemirror_legacy-modes_mode_ebnf"},"@codemirror/legacy-modes/mode/ecl":{"file":"@codemirror_legacy-modes_mode_ecl"},"@codemirror/legacy-modes/mode/eiffel":{"file":"@codemirror_legacy-modes_mode_eiffel"},"@codemirror/legacy-modes/mode/elm":{"file":"@codemirror_legacy-modes_mode_elm"},"@codemirror/legacy-modes/mode/erlang":{"file":"@codemirror_legacy-modes_mode_erlang"},"@codemirror/legacy-modes/mode/factor":{"file":"@codemirror_legacy-modes_mode_factor"},"@codemirror/legacy-modes/mode/fcl":{"file":"@codemirror_legacy-modes_mode_fcl"},"@codemirror/legacy-modes/mode/forth":{"file":"@codemirror_legacy-modes_mode_forth"},"@codemirror/legacy-modes/mode/fortran":{"file":"@codemirror_legacy-modes_mode_fortran"},"@codemirror/legacy-modes/mode/gas":{"file":"@codemirror_legacy-modes_mode_gas"},"@codemirror/legacy-modes/mode/gherkin":{"file":"@codemirror_legacy-modes_mode_gherkin"},"@codemirror/legacy-modes/mode/go":{"file":"@codemirror_legacy-modes_mode_go"},"@codemirror/legacy-modes/mode/groovy":{"file":"@codemirror_legacy-modes_mode_groovy"},"@codemirror/legacy-modes/mode/haskell":{"file":"@codemirror_legacy-modes_mode_haskell"},"@codemirror/legacy-modes/mode/haxe":{"file":"@codemirror_legacy-modes_mode_haxe"},"@codemirror/legacy-modes/mode/http":{"file":"@codemirror_legacy-modes_mode_http"},"@codemirror/legacy-modes/mode/idl":{"file":"@codemirror_legacy-modes_mode_idl"},"@codemirror/legacy-modes/mode/javascript":{"file":"@codemirror_legacy-modes_mode_javascript"},"@codemirror/legacy-modes/mode/jinja2":{"file":"@codemirror_legacy-modes_mode_jinja2"},"@codemirror/legacy-modes/mode/julia":{"file":"@codemirror_legacy-modes_mode_julia"},"@codemirror/legacy-modes/mode/livescript":{"file":"@codemirror_legacy-modes_mode_livescript"},"@codemirror/legacy-modes/mode/lua":{"file":"@codemirror_legacy-modes_mode_lua"},"@codemirror/legacy-modes/mode/mathematica":{"file":"@codemirror_legacy-modes_mode_mathematica"},"@codemirror/legacy-modes/mode/mbox":{"file":"@codemirror_legacy-modes_mode_mbox"},"@codemirror/legacy-modes/mode/mirc":{"file":"@codemirror_legacy-modes_mode_mirc"},"@codemirror/legacy-modes/mode/mllike":{"file":"@codemirror_legacy-modes_mode_mllike"},"@codemirror/legacy-modes/mode/modelica":{"file":"@codemirror_legacy-modes_mode_modelica"},"@codemirror/legacy-modes/mode/mscgen":{"file":"@codemirror_legacy-modes_mode_mscgen"},"@codemirror/legacy-modes/mode/mumps":{"file":"@codemirror_legacy-modes_mode_mumps"},"@codemirror/legacy-modes/mode/nginx":{"file":"@codemirror_legacy-modes_mode_nginx"},"@codemirror/legacy-modes/mode/nsis":{"file":"@codemirror_legacy-modes_mode_nsis"},"@codemirror/legacy-modes/mode/ntriples":{"file":"@codemirror_legacy-modes_mode_ntriples"},"@codemirror/legacy-modes/mode/octave":{"file":"@codemirror_legacy-modes_mode_octave"},"@codemirror/legacy-modes/mode/oz":{"file":"@codemirror_legacy-modes_mode_oz"},"@codemirror/legacy-modes/mode/pascal":{"file":"@codemirror_legacy-modes_mode_pascal"},"@codemirror/legacy-modes/mode/pegjs":{"file":"@codemirror_legacy-modes_mode_pegjs"},"@codemirror/legacy-modes/mode/perl":{"file":"@codemirror_legacy-modes_mode_perl"},"@codemirror/legacy-modes/mode/pig":{"file":"@codemirror_legacy-modes_mode_pig"},"@codemirror/legacy-modes/mode/powershell":{"file":"@codemirror_legacy-modes_mode_powershell"},"@codemirror/legacy-modes/mode/properties":{"file":"@codemirror_legacy-modes_mode_properties"},"@codemirror/legacy-modes/mode/protobuf":{"file":"@codemirror_legacy-modes_mode_protobuf"},"@codemirror/legacy-modes/mode/pug":{"file":"@codemirror_legacy-modes_mode_pug"},"@codemirror/legacy-modes/mode/puppet":{"file":"@codemirror_legacy-modes_mode_puppet"},"@codemirror/legacy-modes/mode/python":{"file":"@codemirror_legacy-modes_mode_python"},"@codemirror/legacy-modes/mode/q":{"file":"@codemirror_legacy-modes_mode_q"},"@codemirror/legacy-modes/mode/r":{"file":"@codemirror_legacy-modes_mode_r"},"@codemirror/legacy-modes/mode/rpm":{"file":"@codemirror_legacy-modes_mode_rpm"},"@codemirror/legacy-modes/mode/ruby":{"file":"@codemirror_legacy-modes_mode_ruby"},"@codemirror/legacy-modes/mode/rust":{"file":"@codemirror_legacy-modes_mode_rust"},"@codemirror/legacy-modes/mode/sas":{"file":"@codemirror_legacy-modes_mode_sas"},"@codemirror/legacy-modes/mode/sass":{"file":"@codemirror_legacy-modes_mode_sass"},"@codemirror/legacy-modes/mode/scheme":{"file":"@codemirror_legacy-modes_mode_scheme"},"@codemirror/legacy-modes/mode/shell":{"file":"@codemirror_legacy-modes_mode_shell"},"@codemirror/legacy-modes/mode/sieve":{"file":"@codemirror_legacy-modes_mode_sieve"},"@codemirror/legacy-modes/mode/simple-mode":{"file":"@codemirror_legacy-modes_mode_simple-mode"},"@codemirror/legacy-modes/mode/smalltalk":{"file":"@codemirror_legacy-modes_mode_smalltalk"},"@codemirror/legacy-modes/mode/solr":{"file":"@codemirror_legacy-modes_mode_solr"},"@codemirror/legacy-modes/mode/sparql":{"file":"@codemirror_legacy-modes_mode_sparql"},"@codemirror/legacy-modes/mode/spreadsheet":{"file":"@codemirror_legacy-modes_mode_spreadsheet"},"@codemirror/legacy-modes/mode/sql":{"file":"@codemirror_legacy-modes_mode_sql"},"@codemirror/legacy-modes/mode/stex":{"file":"@codemirror_legacy-modes_mode_stex"},"@codemirror/legacy-modes/mode/stylus":{"file":"@codemirror_legacy-modes_mode_stylus"},"@codemirror/legacy-modes/mode/swift":{"file":"@codemirror_legacy-modes_mode_swift"},"@codemirror/legacy-modes/mode/tcl":{"file":"@codemirror_legacy-modes_mode_tcl"},"@codemirror/legacy-modes/mode/textile":{"file":"@codemirror_legacy-modes_mode_textile"},"@codemirror/legacy-modes/mode/tiddlywiki":{"file":"@codemirror_legacy-modes_mode_tiddlywiki"},"@codemirror/legacy-modes/mode/tiki":{"file":"@codemirror_legacy-modes_mode_tiki"},"@codemirror/legacy-modes/mode/toml":{"file":"@codemirror_legacy-modes_mode_toml"},"@codemirror/legacy-modes/mode/troff":{"file":"@codemirror_legacy-modes_mode_troff"},"@codemirror/legacy-modes/mode/ttcn-cfg":{"file":"@codemirror_legacy-modes_mode_ttcn-cfg"},"@codemirror/legacy-modes/mode/ttcn":{"file":"@codemirror_legacy-modes_mode_ttcn"},"@codemirror/legacy-modes/mode/turtle":{"file":"@codemirror_legacy-modes_mode_turtle"},"@codemirror/legacy-modes/mode/vb":{"file":"@codemirror_legacy-modes_mode_vb"},"@codemirror/legacy-modes/mode/vbscript":{"file":"@codemirror_legacy-modes_mode_vbscript"},"@codemirror/legacy-modes/mode/velocity":{"file":"@codemirror_legacy-modes_mode_velocity"},"@codemirror/legacy-modes/mode/verilog":{"file":"@codemirror_legacy-modes_mode_verilog"},"@codemirror/legacy-modes/mode/vhdl":{"file":"@codemirror_legacy-modes_mode_vhdl"},"@codemirror/legacy-modes/mode/wast":{"file":"@codemirror_legacy-modes_mode_wast"},"@codemirror/legacy-modes/mode/webidl":{"file":"@codemirror_legacy-modes_mode_webidl"},"@codemirror/legacy-modes/mode/xml":{"file":"@codemirror_legacy-modes_mode_xml"},"@codemirror/legacy-modes/mode/xquery":{"file":"@codemirror_legacy-modes_mode_xquery"},"@codemirror/legacy-modes/mode/yacas":{"file":"@codemirror_legacy-modes_mode_yacas"},"@codemirror/legacy-modes/mode/yaml":{"file":"@codemirror_legacy-modes_mode_yaml"},"@codemirror/legacy-modes/mode/z80":{"file":"@codemirror_legacy-modes_mode_z80"},"@babel/runtime/helpers/interopRequireDefault":{"file":"@babel_runtime_helpers_interopRequireDefault"},"@babel/runtime/helpers/objectSpread2":{"file":"@babel_runtime_helpers_objectSpread2"},"@babel/runtime/helpers/toConsumableArray":{"file":"@babel_runtime_helpers_toConsumableArray"}};
9
+
10
+ // Base URL prepended to every module file fetch. Override via configure() before first load.
11
+ let _baseUrl = './codemirror/';
12
+
13
+ // Replaceable transport function. Receives the full URL, must return Promise<string> (JS source).
14
+ let _loader = (url) => fetch(url).then((r) => r.text());
15
+
16
+ /**
17
+ * Configure the loader before any modules are requested.
18
+ *
19
+ * @param {object} options
20
+ * @param {string} [options.baseUrl] - Directory URL where module files are served from.
21
+ * Trailing slash is added automatically. Defaults to './codemirror/'.
22
+ * @param {(url: string) => Promise<string>} [options.loader] - Custom transport function.
23
+ * Replaces the default fetch-based loader. Useful for WebView asset registries,
24
+ * XMLHttpRequest, or any environment without fetch.
25
+ */
26
+ function configure({ baseUrl, loader } = {}) {
27
+ if (baseUrl !== undefined) {
28
+ _baseUrl = baseUrl.endsWith('/') ? baseUrl : baseUrl + '/';
29
+ }
30
+ if (typeof loader === 'function') {
31
+ _loader = loader;
32
+ }
33
+ }
34
+
35
+ // Resolved exports for every module that has been loaded, keyed by package name.
36
+ // Stubs ({}) are inserted before loading begins so circular dependencies get the same reference.
37
+ const moduleCache = new Map();
38
+
39
+ // Tracks stubs that are still being populated (loading in progress).
40
+ const _pendingStubs = new Set();
41
+
42
+ // In-flight load Promises keyed by package name. Concurrent external callers for the
43
+ // same module await this Promise to get fully populated exports rather than the empty stub.
44
+ const _loadingPromises = new Map();
45
+
46
+ // Singleton promise for the core bundle load. All 14 core packages share one fetch.
47
+ let _coreBundlePromise = null;
48
+
49
+ /**
50
+ * Fetches _core.js once and initialises all core packages in dependency order.
51
+ * Each package's exports are merged into any pre-existing cache stub so that
52
+ * callers that received a stub reference before the bundle finished still get
53
+ * the populated object.
54
+ */
55
+ function _loadCoreBundle() {
56
+ if (_coreBundlePromise) return _coreBundlePromise;
57
+ _coreBundlePromise = _loader(_baseUrl + '_core.js')
58
+ .then(async (code) => {
59
+ // eval returns the moduleInitFunction reference defined at the end of the bundle.
60
+ // The trailing ';moduleInitFunction' is required because ESM is always strict —
61
+ // strict-mode eval does not leak function declarations into the outer scope.
62
+ const bundleInit = eval(code + ';moduleInitFunction');
63
+ const bundleExports = await bundleInit(requireAsyncModule);
64
+ for (const [name, exports] of Object.entries(bundleExports)) {
65
+ const stub = moduleCache.get(name);
66
+ if (stub) {
67
+ // Populate the stub that was cached before the bundle loaded (covers
68
+ // the case where multiple core modules were requested in parallel).
69
+ Object.assign(stub, exports);
70
+ } else {
71
+ moduleCache.set(name, exports);
72
+ }
73
+ }
74
+ });
75
+ return _coreBundlePromise;
76
+ }
77
+
78
+ async function _asyncLoad(moduleName, moduleExports) {
79
+ const info = modules[moduleName];
80
+ if (info.bundle) {
81
+ // Core module: load the shared bundle instead of an individual file.
82
+ await _loadCoreBundle();
83
+ const cached = moduleCache.get(moduleName);
84
+ if (cached && cached !== moduleExports) Object.assign(moduleExports, cached);
85
+ return moduleExports;
86
+ }
87
+ const code = await _loader(_baseUrl + info.file + '.js');
88
+ const moduleInitFunction = eval(code + ';moduleInitFunction');
89
+ const result = await moduleInitFunction(requireAsyncModule, moduleExports);
90
+ // If the module replaced module.exports entirely (e.g. rollup CJS interop
91
+ // assigns the default export), copy named exports back into the cached stub
92
+ // so both existing stub references and future cache hits get the full object.
93
+ if (result !== moduleExports && result instanceof Object) {
94
+ Object.assign(moduleExports, result);
95
+ }
96
+ return moduleExports;
97
+ }
98
+
99
+ /**
100
+ * Asynchronously loads a CodeMirror module by package name and returns its exports.
101
+ * Results are cached — repeated calls for the same name return the cached value immediately.
102
+ * A stub object is stored in the cache before loading begins, so circular dependencies
103
+ * between modules receive the same reference that will be populated once loading completes.
104
+ *
105
+ * @param {string} moduleName - npm package name, e.g. '@codemirror/state'
106
+ * @returns {object|Promise<object>} Cached exports (sync) or a Promise resolving to exports.
107
+ */
108
+ function requireAsyncModule(moduleName) {
109
+ if (moduleCache.has(moduleName)) {
110
+ const cached = moduleCache.get(moduleName);
111
+ if (_pendingStubs.has(cached)) return _loadingPromises.get(moduleName);
112
+ return cached;
113
+ }
114
+ const moduleExports = {};
115
+ _pendingStubs.add(moduleExports);
116
+ moduleCache.set(moduleName, moduleExports);
117
+ const promise = _asyncLoad(moduleName, moduleExports).then((result) => {
118
+ _pendingStubs.delete(moduleExports);
119
+ _loadingPromises.delete(moduleName);
120
+ return result;
121
+ });
122
+ _loadingPromises.set(moduleName, promise);
123
+ return promise;
124
+ }
125
+
126
+
127
+
128
+ /**
129
+ * Registry mapping package name → (mod, options?) => CodeMirror extension.
130
+ * Covers the extension-providing packages included in this distribution.
131
+ * Add entries for custom packages with registerExtension().
132
+ */
133
+ const extensionResolvers = new Map([
134
+ ['@codemirror/autocomplete', (mod, options) => mod.autocompletion(options)],
135
+ ['@codemirror/search', (mod, options) => mod.search(options)],
136
+ ['@codemirror/lint', (mod, options) => mod.lintGutter(options)],
137
+ ['@codemirror/collab', (mod, options) => mod.collab(options)],
138
+ ['@codemirror/theme-one-dark', (mod) => mod.oneDark],
139
+ ]);
140
+
141
+ /**
142
+ * Register a resolver for a package not covered by the built-in registry,
143
+ * or override an existing one.
144
+ *
145
+ * @param {string} moduleName - npm package name.
146
+ * @param {(mod: object, options?: any) => import('@codemirror/state').Extension} resolver
147
+ */
148
+ function registerExtension(moduleName, resolver) {
149
+ extensionResolvers.set(moduleName, resolver);
150
+ }
151
+
152
+ /**
153
+ * Resolves an extension spec into a CodeMirror Extension value.
154
+ *
155
+ * Accepted forms:
156
+ * - string → package name; loaded and resolved via extensionResolvers
157
+ * - [string, string] → [packageName, exportName]; loads module, returns mod[exportName]
158
+ * - [string, object|undefined]→ package name + options object passed to the resolver
159
+ * - anything else → returned as-is (already a CM Extension)
160
+ */
161
+ async function resolveExtensionSpec(spec) {
162
+ if (typeof spec !== 'string' && !(Array.isArray(spec) && typeof spec[0] === 'string')) {
163
+ return spec;
164
+ }
165
+ const [moduleName, second] = Array.isArray(spec) ? spec : [spec, undefined];
166
+
167
+ // [moduleName, 'exportName'] — return a named export directly (e.g. themes)
168
+ if (typeof second === 'string') {
169
+ const mod = await requireAsyncModule(moduleName);
170
+ return mod[second];
171
+ }
172
+
173
+ const resolver = extensionResolvers.get(moduleName);
174
+ if (!resolver) {
175
+ throw new Error(`No extension resolver for "${moduleName}". Call registerExtension() to add one.`);
176
+ }
177
+ const mod = await requireAsyncModule(moduleName);
178
+ return resolver(mod, second);
179
+ }
180
+
181
+ /**
182
+ * Registry mapping language name → npm package name for packages that don't
183
+ * follow the @codemirror/lang-{name} convention. Pre-populated with known
184
+ * custom language packages bundled in this distribution.
185
+ */
186
+ const languagePackages = new Map([
187
+ ['sksl', '@actualwave/codemirror-lang-sksl'],
188
+ ]);
189
+
190
+ /**
191
+ * Register a custom language package that doesn't follow the
192
+ * @codemirror/lang-{name} convention.
193
+ *
194
+ * @param {string} name - Language name used in createEditor({ language }).
195
+ * @param {string} packageName - npm package name to load.
196
+ */
197
+ function registerLanguage(name, packageName) {
198
+ languagePackages.set(name, packageName);
199
+ }
200
+
201
+ /**
202
+ * Extracts a StreamParser mode object from a legacy-modes module.
203
+ * Tries exact match first, then case-insensitive, then single-export fallback
204
+ * (handles mismatches like coffeescript→coffeeScript, simple-mode→simpleMode).
205
+ */
206
+ function findLegacyMode(mod, name) {
207
+ const isMode = (v) => v && typeof v === 'object' && !Array.isArray(v);
208
+ const skip = new Set(['__esModule', 'default']);
209
+ if (isMode(mod[name])) return mod[name];
210
+ const lname = name.toLowerCase();
211
+ for (const [k, v] of Object.entries(mod)) {
212
+ if (!skip.has(k) && k.toLowerCase() === lname && isMode(v)) return v;
213
+ }
214
+ const modes = Object.entries(mod).filter(([k, v]) => !skip.has(k) && isMode(v));
215
+ return modes.length === 1 ? modes[0][1] : null;
216
+ }
217
+
218
+ /**
219
+ * Resolves a language name to a CodeMirror language extension.
220
+ * Resolution order:
221
+ * 1. Custom registry (registerLanguage / built-in overrides like sksl)
222
+ * 2. @codemirror/lang-{name} (official first-class language packages)
223
+ * 3. @codemirror/legacy-modes/mode/{name} (wrapped with StreamLanguage.define)
224
+ */
225
+ async function resolveLanguageExtension(name) {
226
+ if (languagePackages.has(name)) {
227
+ const mod = await requireAsyncModule(languagePackages.get(name));
228
+ const fn = mod[name] ?? Object.values(mod).find((v) => typeof v === 'function');
229
+ if (fn) return fn();
230
+ }
231
+
232
+ try {
233
+ const mod = await requireAsyncModule(`@codemirror/lang-${name}`);
234
+ const fn = mod[name] ?? Object.values(mod).find((v) => typeof v === 'function');
235
+ if (fn) return fn();
236
+ } catch {}
237
+
238
+ try {
239
+ const [legacyMod, { StreamLanguage }] = await Promise.all([
240
+ requireAsyncModule(`@codemirror/legacy-modes/mode/${name}`),
241
+ requireAsyncModule('@codemirror/language'),
242
+ ]);
243
+ const mode = findLegacyMode(legacyMod, name);
244
+ if (mode) return StreamLanguage.define(mode);
245
+ } catch {}
246
+
247
+ throw new Error(`No language support found for "${name}". Use registerLanguage() for custom packages.`);
248
+ }
249
+
250
+ /**
251
+ * Creates and mounts a CodeMirror editor instance.
252
+ * Core modules (state, view, basicSetup) are loaded on first call and cached for reuse.
253
+ *
254
+ * @param {object} [options]
255
+ * @param {Element} [options.parent=document.body] - DOM element to mount the editor into.
256
+ * @param {string} [options.doc=''] - Initial document content.
257
+ * @param {string} [options.language] - Language name, e.g. 'javascript', 'python'.
258
+ * Tries @codemirror/lang-{name} first, then @codemirror/legacy-modes/mode/{name}.
259
+ * @param {Array} [options.extensions=[]] - Extension specs. Each item may be:
260
+ * a package-name string, a [packageName, options] tuple, or an already-built CM Extension.
261
+ * @param {(value: string) => void} [options.onChange] - Called with the full document string
262
+ * on every change. Use this to relay content back to the React Native side.
263
+ *
264
+ * @returns {Promise<EditorController>}
265
+ */
266
+ async function createEditor({
267
+ parent = document.body,
268
+ doc = '',
269
+ language,
270
+ extensions = [],
271
+ onChange,
272
+ } = {}) {
273
+ const [
274
+ { EditorView, lineNumbers, highlightActiveLineGutter, highlightSpecialChars,
275
+ dropCursor, rectangularSelection, crosshairCursor, highlightActiveLine, keymap },
276
+ { EditorState, Compartment },
277
+ { history, defaultKeymap, historyKeymap },
278
+ { foldGutter, indentOnInput, syntaxHighlighting, defaultHighlightStyle, bracketMatching, foldKeymap },
279
+ { closeBrackets, autocompletion, closeBracketsKeymap, completionKeymap },
280
+ { highlightSelectionMatches, searchKeymap },
281
+ { lintKeymap },
282
+ ] = await Promise.all([
283
+ requireAsyncModule('@codemirror/view'),
284
+ requireAsyncModule('@codemirror/state'),
285
+ requireAsyncModule('@codemirror/commands'),
286
+ requireAsyncModule('@codemirror/language'),
287
+ requireAsyncModule('@codemirror/autocomplete'),
288
+ requireAsyncModule('@codemirror/search'),
289
+ requireAsyncModule('@codemirror/lint'),
290
+ ]);
291
+
292
+ // Chrome 126+ WebView uses the EditContext API for IME input. On Chrome 147 there is a
293
+ // race condition where successive textupdate events arrive faster than CM6 can sync back
294
+ // via editContext.updateText/updateSelection, causing characters to appear after the cursor.
295
+ // Disabling EditContext makes CM6 fall back to the contenteditable MutationObserver path,
296
+ // which is stable for fast typing when drawSelection() is omitted (native cursor stays visible).
297
+ EditorView.EDIT_CONTEXT = false;
298
+
299
+ // basicSetup without drawSelection() — drawSelection() hides the native browser cursor,
300
+ // which breaks Android IME composition (ghost text and cursor not advancing when typing fast).
301
+ const mobileSetup = [
302
+ lineNumbers(),
303
+ highlightActiveLineGutter(),
304
+ highlightSpecialChars(),
305
+ history(),
306
+ foldGutter(),
307
+ dropCursor(),
308
+ EditorState.allowMultipleSelections.of(true),
309
+ indentOnInput(),
310
+ syntaxHighlighting(defaultHighlightStyle, { fallback: true }),
311
+ bracketMatching(),
312
+ closeBrackets(),
313
+ autocompletion(),
314
+ rectangularSelection(),
315
+ crosshairCursor(),
316
+ highlightActiveLine(),
317
+ highlightSelectionMatches(),
318
+ keymap.of([
319
+ ...closeBracketsKeymap,
320
+ ...defaultKeymap,
321
+ ...searchKeymap,
322
+ ...historyKeymap,
323
+ ...foldKeymap,
324
+ ...completionKeymap,
325
+ ...lintKeymap,
326
+ ]),
327
+ ];
328
+
329
+ // Separate Compartments allow language and extensions to be swapped independently
330
+ // after the editor is created without rebuilding the entire editor state.
331
+ const languageCompartment = new Compartment();
332
+ const extensionCompartment = new Compartment();
333
+
334
+ const [langExt, resolvedExtensions] = await Promise.all([
335
+ language ? resolveLanguageExtension(language) : Promise.resolve([]),
336
+ Promise.all(extensions.map(resolveExtensionSpec)),
337
+ ]);
338
+
339
+ const builtinExtensions = [
340
+ mobileSetup,
341
+ languageCompartment.of(langExt),
342
+ extensionCompartment.of(resolvedExtensions),
343
+ ];
344
+
345
+ if (onChange) {
346
+ builtinExtensions.push(
347
+ EditorView.updateListener.of((update) => {
348
+ if (update.docChanged) onChange(update.state.doc.toString());
349
+ }),
350
+ );
351
+ }
352
+
353
+ const view = new EditorView({
354
+ state: EditorState.create({ doc, extensions: builtinExtensions }),
355
+ parent,
356
+ });
357
+
358
+ /**
359
+ * @typedef {object} EditorController
360
+ */
361
+ return {
362
+ /** The underlying CodeMirror EditorView, for advanced direct access. */
363
+ get view() { return view; },
364
+
365
+ /** Returns the current document content as a string. */
366
+ getValue() {
367
+ return view.state.doc.toString();
368
+ },
369
+
370
+ /** Replaces the entire document content. */
371
+ setValue(value) {
372
+ view.dispatch({
373
+ changes: { from: 0, to: view.state.doc.length, insert: value },
374
+ });
375
+ },
376
+
377
+ /**
378
+ * Switches the active language. Loads @codemirror/lang-{name} on demand.
379
+ * @param {string} name - Language name, e.g. 'python', 'css'.
380
+ */
381
+ async setLanguage(name) {
382
+ const ext = await resolveLanguageExtension(name);
383
+ view.dispatch({ effects: languageCompartment.reconfigure(ext) });
384
+ },
385
+
386
+ /**
387
+ * Replaces the active extension set. Accepts the same spec forms as createEditor's
388
+ * extensions option: package-name strings, [name, options] tuples, or CM Extensions.
389
+ * @param {Array} newExtensions
390
+ */
391
+ async setExtensions(newExtensions) {
392
+ const resolved = await Promise.all(newExtensions.map(resolveExtensionSpec));
393
+ view.dispatch({ effects: extensionCompartment.reconfigure(resolved) });
394
+ },
395
+
396
+ /**
397
+ * Loads a module by package name and returns its raw exports.
398
+ * Use when you need direct access to module internals not exposed through
399
+ * the extension registry (e.g. building a custom completion source).
400
+ * @param {string} moduleName
401
+ * @returns {Promise<object>}
402
+ */
403
+ async loadExtension(moduleName) {
404
+ return requireAsyncModule(moduleName);
405
+ },
406
+
407
+ /** Destroys the editor and removes it from the DOM. */
408
+ destroy() {
409
+ view.destroy();
410
+ },
411
+ };
412
+ }
413
+
414
+ global.CodeMirrorEditor = { configure, createEditor, requireAsyncModule, registerExtension };
415
+ })(typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : this);