@axdspub/axiom-ui-forms 0.2.7 → 0.2.9

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 (416) hide show
  1. package/library/axiom-ui-forms.d.ts +55 -6
  2. package/library/esm/_virtual/formats.js +4 -0
  3. package/library/esm/_virtual/formats.js.map +1 -0
  4. package/library/esm/_virtual/index.js +6 -2
  5. package/library/esm/_virtual/index.js.map +1 -1
  6. package/library/esm/_virtual/index10.js +2 -2
  7. package/library/esm/_virtual/index11.js +2 -2
  8. package/library/esm/_virtual/index12.js +6 -2
  9. package/library/esm/_virtual/index12.js.map +1 -1
  10. package/library/esm/_virtual/index13.js +8 -0
  11. package/library/esm/_virtual/index13.js.map +1 -0
  12. package/library/esm/_virtual/index14.js +4 -0
  13. package/library/esm/_virtual/index14.js.map +1 -0
  14. package/library/esm/_virtual/index15.js +4 -0
  15. package/library/esm/_virtual/index15.js.map +1 -0
  16. package/library/esm/_virtual/index16.js +4 -0
  17. package/library/esm/_virtual/index16.js.map +1 -0
  18. package/library/esm/_virtual/index17.js +4 -0
  19. package/library/esm/_virtual/index17.js.map +1 -0
  20. package/library/esm/_virtual/index2.js +2 -2
  21. package/library/esm/_virtual/index4.js +2 -2
  22. package/library/esm/_virtual/index4.js.map +1 -1
  23. package/library/esm/_virtual/index5.js +2 -2
  24. package/library/esm/_virtual/index6.js +2 -2
  25. package/library/esm/_virtual/index6.js.map +1 -1
  26. package/library/esm/_virtual/index7.js +2 -2
  27. package/library/esm/_virtual/index8.js +2 -2
  28. package/library/esm/_virtual/limit.js +4 -0
  29. package/library/esm/_virtual/limit.js.map +1 -0
  30. package/library/esm/_virtual/utilities.js +4 -0
  31. package/library/esm/_virtual/utilities.js.map +1 -0
  32. package/library/esm/node_modules/@axdspub/axiom-ui-utilities/library/index.js +241 -9
  33. package/library/esm/node_modules/@axdspub/axiom-ui-utilities/library/index.js.map +1 -1
  34. package/library/esm/node_modules/@babel/runtime/helpers/esm/extends.js +12 -0
  35. package/library/esm/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -0
  36. package/library/esm/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +12 -0
  37. package/library/esm/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -0
  38. package/library/esm/node_modules/@codemirror/autocomplete/dist/index.js +1652 -0
  39. package/library/esm/node_modules/@codemirror/autocomplete/dist/index.js.map +1 -0
  40. package/library/esm/node_modules/@codemirror/commands/dist/index.js +1444 -0
  41. package/library/esm/node_modules/@codemirror/commands/dist/index.js.map +1 -0
  42. package/library/esm/node_modules/@codemirror/lang-json/dist/index.js +33 -0
  43. package/library/esm/node_modules/@codemirror/lang-json/dist/index.js.map +1 -0
  44. package/library/esm/node_modules/@codemirror/lang-yaml/dist/index.js +59 -0
  45. package/library/esm/node_modules/@codemirror/lang-yaml/dist/index.js.map +1 -0
  46. package/library/esm/node_modules/@codemirror/language/dist/index.js +1821 -0
  47. package/library/esm/node_modules/@codemirror/language/dist/index.js.map +1 -0
  48. package/library/esm/node_modules/@codemirror/lint/dist/index.js +589 -0
  49. package/library/esm/node_modules/@codemirror/lint/dist/index.js.map +1 -0
  50. package/library/esm/node_modules/@codemirror/search/dist/index.js +1227 -0
  51. package/library/esm/node_modules/@codemirror/search/dist/index.js.map +1 -0
  52. package/library/esm/node_modules/@codemirror/state/dist/index.js +3882 -0
  53. package/library/esm/node_modules/@codemirror/state/dist/index.js.map +1 -0
  54. package/library/esm/node_modules/@codemirror/theme-one-dark/dist/index.js +114 -0
  55. package/library/esm/node_modules/@codemirror/theme-one-dark/dist/index.js.map +1 -0
  56. package/library/esm/node_modules/@codemirror/view/dist/index.js +11052 -0
  57. package/library/esm/node_modules/@codemirror/view/dist/index.js.map +1 -0
  58. package/library/esm/node_modules/@lezer/common/dist/index.js +1704 -0
  59. package/library/esm/node_modules/@lezer/common/dist/index.js.map +1 -0
  60. package/library/esm/node_modules/@lezer/highlight/dist/index.js +876 -0
  61. package/library/esm/node_modules/@lezer/highlight/dist/index.js.map +1 -0
  62. package/library/esm/node_modules/@lezer/json/dist/index.js +38 -0
  63. package/library/esm/node_modules/@lezer/json/dist/index.js.map +1 -0
  64. package/library/esm/node_modules/@lezer/lr/dist/index.js +1855 -0
  65. package/library/esm/node_modules/@lezer/lr/dist/index.js.map +1 -0
  66. package/library/esm/node_modules/@lezer/yaml/dist/index.js +392 -0
  67. package/library/esm/node_modules/@lezer/yaml/dist/index.js.map +1 -0
  68. package/library/esm/node_modules/@marijn/find-cluster-break/src/index.js +83 -0
  69. package/library/esm/node_modules/@marijn/find-cluster-break/src/index.js.map +1 -0
  70. package/library/esm/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js +67 -1
  71. package/library/esm/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js.map +1 -1
  72. package/library/esm/node_modules/@uiw/codemirror-extensions-basic-setup/esm/index.js +100 -0
  73. package/library/esm/node_modules/@uiw/codemirror-extensions-basic-setup/esm/index.js.map +1 -0
  74. package/library/esm/node_modules/@uiw/react-codemirror/esm/getDefaultExtensions.js +58 -0
  75. package/library/esm/node_modules/@uiw/react-codemirror/esm/getDefaultExtensions.js.map +1 -0
  76. package/library/esm/node_modules/@uiw/react-codemirror/esm/index.js +89 -0
  77. package/library/esm/node_modules/@uiw/react-codemirror/esm/index.js.map +1 -0
  78. package/library/esm/node_modules/@uiw/react-codemirror/esm/theme/light.js +12 -0
  79. package/library/esm/node_modules/@uiw/react-codemirror/esm/theme/light.js.map +1 -0
  80. package/library/esm/node_modules/@uiw/react-codemirror/esm/useCodeMirror.js +151 -0
  81. package/library/esm/node_modules/@uiw/react-codemirror/esm/useCodeMirror.js.map +1 -0
  82. package/library/esm/node_modules/@uiw/react-codemirror/esm/utils.js +19 -0
  83. package/library/esm/node_modules/@uiw/react-codemirror/esm/utils.js.map +1 -0
  84. package/library/esm/node_modules/@ungap/structured-clone/esm/deserialize.js +77 -0
  85. package/library/esm/node_modules/@ungap/structured-clone/esm/deserialize.js.map +1 -0
  86. package/library/esm/node_modules/@ungap/structured-clone/esm/index.js +25 -0
  87. package/library/esm/node_modules/@ungap/structured-clone/esm/index.js.map +1 -0
  88. package/library/esm/node_modules/@ungap/structured-clone/esm/serialize.js +159 -0
  89. package/library/esm/node_modules/@ungap/structured-clone/esm/serialize.js.map +1 -0
  90. package/library/esm/node_modules/@ungap/structured-clone/esm/types.js +14 -0
  91. package/library/esm/node_modules/@ungap/structured-clone/esm/types.js.map +1 -0
  92. package/library/esm/node_modules/ajv/dist/compile/codegen/index.js +1 -1
  93. package/library/esm/node_modules/ajv/dist/compile/index.js +1 -1
  94. package/library/esm/node_modules/ajv/dist/vocabularies/applicator/index.js +1 -1
  95. package/library/esm/node_modules/ajv/dist/vocabularies/core/index.js +1 -1
  96. package/library/esm/node_modules/ajv/dist/vocabularies/discriminator/index.js +1 -1
  97. package/library/esm/node_modules/ajv/dist/vocabularies/validation/index.js +1 -1
  98. package/library/esm/node_modules/ajv-formats/dist/formats.js +221 -0
  99. package/library/esm/node_modules/ajv-formats/dist/formats.js.map +1 -0
  100. package/library/esm/node_modules/ajv-formats/dist/index.js +53 -0
  101. package/library/esm/node_modules/ajv-formats/dist/index.js.map +1 -0
  102. package/library/esm/node_modules/ajv-formats/dist/limit.js +84 -0
  103. package/library/esm/node_modules/ajv-formats/dist/limit.js.map +1 -0
  104. package/library/esm/node_modules/bail/index.js +15 -0
  105. package/library/esm/node_modules/bail/index.js.map +1 -0
  106. package/library/esm/node_modules/comma-separated-tokens/index.js +37 -0
  107. package/library/esm/node_modules/comma-separated-tokens/index.js.map +1 -0
  108. package/library/esm/node_modules/crelt/index.js +30 -0
  109. package/library/esm/node_modules/crelt/index.js.map +1 -0
  110. package/library/esm/node_modules/decode-named-character-reference/index.dom.js +39 -0
  111. package/library/esm/node_modules/decode-named-character-reference/index.dom.js.map +1 -0
  112. package/library/esm/node_modules/devlop/lib/default.js +6 -0
  113. package/library/esm/node_modules/devlop/lib/default.js.map +1 -0
  114. package/library/esm/node_modules/estree-util-is-identifier-name/lib/index.js +31 -0
  115. package/library/esm/node_modules/estree-util-is-identifier-name/lib/index.js.map +1 -0
  116. package/library/esm/node_modules/extend/index.js +127 -0
  117. package/library/esm/node_modules/extend/index.js.map +1 -0
  118. package/library/esm/node_modules/fast-uri/index.js +1 -1
  119. package/library/esm/node_modules/hast-util-to-jsx-runtime/lib/index.js +791 -0
  120. package/library/esm/node_modules/hast-util-to-jsx-runtime/lib/index.js.map +1 -0
  121. package/library/esm/node_modules/hast-util-whitespace/lib/index.js +37 -0
  122. package/library/esm/node_modules/hast-util-whitespace/lib/index.js.map +1 -0
  123. package/library/esm/node_modules/html-url-attributes/lib/index.js +34 -0
  124. package/library/esm/node_modules/html-url-attributes/lib/index.js.map +1 -0
  125. package/library/esm/node_modules/inline-style-parser/index.js +268 -0
  126. package/library/esm/node_modules/inline-style-parser/index.js.map +1 -0
  127. package/library/esm/node_modules/js-yaml/dist/js-yaml.js +3850 -0
  128. package/library/esm/node_modules/js-yaml/dist/js-yaml.js.map +1 -0
  129. package/library/esm/node_modules/json-schema-traverse/index.js +1 -1
  130. package/library/esm/node_modules/mdast-util-from-markdown/lib/index.js +1181 -0
  131. package/library/esm/node_modules/mdast-util-from-markdown/lib/index.js.map +1 -0
  132. package/library/esm/node_modules/mdast-util-to-hast/lib/footer.js +197 -0
  133. package/library/esm/node_modules/mdast-util-to-hast/lib/footer.js.map +1 -0
  134. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js +31 -0
  135. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js.map +1 -0
  136. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/break.js +27 -0
  137. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/break.js.map +1 -0
  138. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/code.js +51 -0
  139. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/code.js.map +1 -0
  140. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/delete.js +31 -0
  141. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/delete.js.map +1 -0
  142. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js +31 -0
  143. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js.map +1 -0
  144. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js +74 -0
  145. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js.map +1 -0
  146. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/heading.js +31 -0
  147. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/heading.js.map +1 -0
  148. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/html.js +32 -0
  149. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/html.js.map +1 -0
  150. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js +45 -0
  151. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js.map +1 -0
  152. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/image.js +40 -0
  153. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/image.js.map +1 -0
  154. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/index.js +67 -0
  155. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/index.js.map +1 -0
  156. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js +36 -0
  157. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js.map +1 -0
  158. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js +50 -0
  159. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js.map +1 -0
  160. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/link.js +41 -0
  161. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/link.js.map +1 -0
  162. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/list-item.js +126 -0
  163. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/list-item.js.map +1 -0
  164. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/list.js +57 -0
  165. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/list.js.map +1 -0
  166. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js +31 -0
  167. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js.map +1 -0
  168. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/root.js +27 -0
  169. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/root.js.map +1 -0
  170. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/strong.js +31 -0
  171. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/strong.js.map +1 -0
  172. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js +33 -0
  173. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js.map +1 -0
  174. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/table-row.js +70 -0
  175. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/table-row.js.map +1 -0
  176. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/table.js +65 -0
  177. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/table.js.map +1 -0
  178. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/text.js +29 -0
  179. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/text.js.map +1 -0
  180. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js +31 -0
  181. package/library/esm/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js.map +1 -0
  182. package/library/esm/node_modules/mdast-util-to-hast/lib/index.js +105 -0
  183. package/library/esm/node_modules/mdast-util-to-hast/lib/index.js.map +1 -0
  184. package/library/esm/node_modules/mdast-util-to-hast/lib/revert.js +56 -0
  185. package/library/esm/node_modules/mdast-util-to-hast/lib/revert.js.map +1 -0
  186. package/library/esm/node_modules/mdast-util-to-hast/lib/state.js +322 -0
  187. package/library/esm/node_modules/mdast-util-to-hast/lib/state.js.map +1 -0
  188. package/library/esm/node_modules/mdast-util-to-string/lib/index.js +111 -0
  189. package/library/esm/node_modules/mdast-util-to-string/lib/index.js.map +1 -0
  190. package/library/esm/node_modules/micromark/lib/constructs.js +108 -0
  191. package/library/esm/node_modules/micromark/lib/constructs.js.map +1 -0
  192. package/library/esm/node_modules/micromark/lib/create-tokenizer.js +576 -0
  193. package/library/esm/node_modules/micromark/lib/create-tokenizer.js.map +1 -0
  194. package/library/esm/node_modules/micromark/lib/initialize/content.js +83 -0
  195. package/library/esm/node_modules/micromark/lib/initialize/content.js.map +1 -0
  196. package/library/esm/node_modules/micromark/lib/initialize/document.js +361 -0
  197. package/library/esm/node_modules/micromark/lib/initialize/document.js.map +1 -0
  198. package/library/esm/node_modules/micromark/lib/initialize/flow.js +62 -0
  199. package/library/esm/node_modules/micromark/lib/initialize/flow.js.map +1 -0
  200. package/library/esm/node_modules/micromark/lib/initialize/text.js +213 -0
  201. package/library/esm/node_modules/micromark/lib/initialize/text.js.map +1 -0
  202. package/library/esm/node_modules/micromark/lib/parse.js +60 -0
  203. package/library/esm/node_modules/micromark/lib/parse.js.map +1 -0
  204. package/library/esm/node_modules/micromark/lib/postprocess.js +22 -0
  205. package/library/esm/node_modules/micromark/lib/postprocess.js.map +1 -0
  206. package/library/esm/node_modules/micromark/lib/preprocess.js +118 -0
  207. package/library/esm/node_modules/micromark/lib/preprocess.js.map +1 -0
  208. package/library/esm/node_modules/micromark-core-commonmark/lib/attention.js +245 -0
  209. package/library/esm/node_modules/micromark-core-commonmark/lib/attention.js.map +1 -0
  210. package/library/esm/node_modules/micromark-core-commonmark/lib/autolink.js +237 -0
  211. package/library/esm/node_modules/micromark-core-commonmark/lib/autolink.js.map +1 -0
  212. package/library/esm/node_modules/micromark-core-commonmark/lib/blank-line.js +65 -0
  213. package/library/esm/node_modules/micromark-core-commonmark/lib/blank-line.js.map +1 -0
  214. package/library/esm/node_modules/micromark-core-commonmark/lib/block-quote.js +147 -0
  215. package/library/esm/node_modules/micromark-core-commonmark/lib/block-quote.js.map +1 -0
  216. package/library/esm/node_modules/micromark-core-commonmark/lib/character-escape.js +68 -0
  217. package/library/esm/node_modules/micromark-core-commonmark/lib/character-escape.js.map +1 -0
  218. package/library/esm/node_modules/micromark-core-commonmark/lib/character-reference.js +153 -0
  219. package/library/esm/node_modules/micromark-core-commonmark/lib/character-reference.js.map +1 -0
  220. package/library/esm/node_modules/micromark-core-commonmark/lib/code-fenced.js +464 -0
  221. package/library/esm/node_modules/micromark-core-commonmark/lib/code-fenced.js.map +1 -0
  222. package/library/esm/node_modules/micromark-core-commonmark/lib/code-indented.js +181 -0
  223. package/library/esm/node_modules/micromark-core-commonmark/lib/code-indented.js.map +1 -0
  224. package/library/esm/node_modules/micromark-core-commonmark/lib/code-text.js +228 -0
  225. package/library/esm/node_modules/micromark-core-commonmark/lib/code-text.js.map +1 -0
  226. package/library/esm/node_modules/micromark-core-commonmark/lib/content.js +167 -0
  227. package/library/esm/node_modules/micromark-core-commonmark/lib/content.js.map +1 -0
  228. package/library/esm/node_modules/micromark-core-commonmark/lib/definition.js +258 -0
  229. package/library/esm/node_modules/micromark-core-commonmark/lib/definition.js.map +1 -0
  230. package/library/esm/node_modules/micromark-core-commonmark/lib/hard-break-escape.js +64 -0
  231. package/library/esm/node_modules/micromark-core-commonmark/lib/hard-break-escape.js.map +1 -0
  232. package/library/esm/node_modules/micromark-core-commonmark/lib/heading-atx.js +199 -0
  233. package/library/esm/node_modules/micromark-core-commonmark/lib/heading-atx.js.map +1 -0
  234. package/library/esm/node_modules/micromark-core-commonmark/lib/html-flow.js +880 -0
  235. package/library/esm/node_modules/micromark-core-commonmark/lib/html-flow.js.map +1 -0
  236. package/library/esm/node_modules/micromark-core-commonmark/lib/html-text.js +682 -0
  237. package/library/esm/node_modules/micromark-core-commonmark/lib/html-text.js.map +1 -0
  238. package/library/esm/node_modules/micromark-core-commonmark/lib/label-end.js +564 -0
  239. package/library/esm/node_modules/micromark-core-commonmark/lib/label-end.js.map +1 -0
  240. package/library/esm/node_modules/micromark-core-commonmark/lib/label-start-image.js +106 -0
  241. package/library/esm/node_modules/micromark-core-commonmark/lib/label-start-image.js.map +1 -0
  242. package/library/esm/node_modules/micromark-core-commonmark/lib/label-start-link.js +59 -0
  243. package/library/esm/node_modules/micromark-core-commonmark/lib/label-start-link.js.map +1 -0
  244. package/library/esm/node_modules/micromark-core-commonmark/lib/line-ending.js +36 -0
  245. package/library/esm/node_modules/micromark-core-commonmark/lib/line-ending.js.map +1 -0
  246. package/library/esm/node_modules/micromark-core-commonmark/lib/list.js +217 -0
  247. package/library/esm/node_modules/micromark-core-commonmark/lib/list.js.map +1 -0
  248. package/library/esm/node_modules/micromark-core-commonmark/lib/setext-underline.js +189 -0
  249. package/library/esm/node_modules/micromark-core-commonmark/lib/setext-underline.js.map +1 -0
  250. package/library/esm/node_modules/micromark-core-commonmark/lib/thematic-break.js +106 -0
  251. package/library/esm/node_modules/micromark-core-commonmark/lib/thematic-break.js.map +1 -0
  252. package/library/esm/node_modules/micromark-factory-destination/index.js +210 -0
  253. package/library/esm/node_modules/micromark-factory-destination/index.js.map +1 -0
  254. package/library/esm/node_modules/micromark-factory-label/index.js +152 -0
  255. package/library/esm/node_modules/micromark-factory-label/index.js.map +1 -0
  256. package/library/esm/node_modules/micromark-factory-space/index.js +68 -0
  257. package/library/esm/node_modules/micromark-factory-space/index.js.map +1 -0
  258. package/library/esm/node_modules/micromark-factory-title/index.js +162 -0
  259. package/library/esm/node_modules/micromark-factory-title/index.js.map +1 -0
  260. package/library/esm/node_modules/micromark-factory-whitespace/index.js +48 -0
  261. package/library/esm/node_modules/micromark-factory-whitespace/index.js.map +1 -0
  262. package/library/esm/node_modules/micromark-util-character/index.js +249 -0
  263. package/library/esm/node_modules/micromark-util-character/index.js.map +1 -0
  264. package/library/esm/node_modules/micromark-util-chunked/index.js +84 -0
  265. package/library/esm/node_modules/micromark-util-chunked/index.js.map +1 -0
  266. package/library/esm/node_modules/micromark-util-classify-character/index.js +31 -0
  267. package/library/esm/node_modules/micromark-util-classify-character/index.js.map +1 -0
  268. package/library/esm/node_modules/micromark-util-combine-extensions/index.js +96 -0
  269. package/library/esm/node_modules/micromark-util-combine-extensions/index.js.map +1 -0
  270. package/library/esm/node_modules/micromark-util-decode-numeric-character-reference/index.js +35 -0
  271. package/library/esm/node_modules/micromark-util-decode-numeric-character-reference/index.js.map +1 -0
  272. package/library/esm/node_modules/micromark-util-decode-string/index.js +49 -0
  273. package/library/esm/node_modules/micromark-util-decode-string/index.js.map +1 -0
  274. package/library/esm/node_modules/micromark-util-html-tag-name/index.js +96 -0
  275. package/library/esm/node_modules/micromark-util-html-tag-name/index.js.map +1 -0
  276. package/library/esm/node_modules/micromark-util-normalize-identifier/index.js +36 -0
  277. package/library/esm/node_modules/micromark-util-normalize-identifier/index.js.map +1 -0
  278. package/library/esm/node_modules/micromark-util-resolve-all/index.js +35 -0
  279. package/library/esm/node_modules/micromark-util-resolve-all/index.js.map +1 -0
  280. package/library/esm/node_modules/micromark-util-sanitize-uri/index.js +67 -0
  281. package/library/esm/node_modules/micromark-util-sanitize-uri/index.js.map +1 -0
  282. package/library/esm/node_modules/micromark-util-subtokenize/index.js +227 -0
  283. package/library/esm/node_modules/micromark-util-subtokenize/index.js.map +1 -0
  284. package/library/esm/node_modules/micromark-util-subtokenize/lib/splice-buffer.js +254 -0
  285. package/library/esm/node_modules/micromark-util-subtokenize/lib/splice-buffer.js.map +1 -0
  286. package/library/esm/node_modules/property-information/index.js +16 -0
  287. package/library/esm/node_modules/property-information/index.js.map +1 -0
  288. package/library/esm/node_modules/property-information/lib/aria.js +64 -0
  289. package/library/esm/node_modules/property-information/lib/aria.js.map +1 -0
  290. package/library/esm/node_modules/property-information/lib/find.js +101 -0
  291. package/library/esm/node_modules/property-information/lib/find.js.map +1 -0
  292. package/library/esm/node_modules/property-information/lib/hast-to-react.js +33 -0
  293. package/library/esm/node_modules/property-information/lib/hast-to-react.js.map +1 -0
  294. package/library/esm/node_modules/property-information/lib/html.js +318 -0
  295. package/library/esm/node_modules/property-information/lib/html.js.map +1 -0
  296. package/library/esm/node_modules/property-information/lib/normalize.js +15 -0
  297. package/library/esm/node_modules/property-information/lib/normalize.js.map +1 -0
  298. package/library/esm/node_modules/property-information/lib/svg.js +564 -0
  299. package/library/esm/node_modules/property-information/lib/svg.js.map +1 -0
  300. package/library/esm/node_modules/property-information/lib/util/case-insensitive-transform.js +16 -0
  301. package/library/esm/node_modules/property-information/lib/util/case-insensitive-transform.js.map +1 -0
  302. package/library/esm/node_modules/property-information/lib/util/case-sensitive-transform.js +14 -0
  303. package/library/esm/node_modules/property-information/lib/util/case-sensitive-transform.js.map +1 -0
  304. package/library/esm/node_modules/property-information/lib/util/create.js +47 -0
  305. package/library/esm/node_modules/property-information/lib/util/create.js.map +1 -0
  306. package/library/esm/node_modules/property-information/lib/util/defined-info.js +64 -0
  307. package/library/esm/node_modules/property-information/lib/util/defined-info.js.map +1 -0
  308. package/library/esm/node_modules/property-information/lib/util/info.js +35 -0
  309. package/library/esm/node_modules/property-information/lib/util/info.js.map +1 -0
  310. package/library/esm/node_modules/property-information/lib/util/merge.js +31 -0
  311. package/library/esm/node_modules/property-information/lib/util/merge.js.map +1 -0
  312. package/library/esm/node_modules/property-information/lib/util/schema.js +32 -0
  313. package/library/esm/node_modules/property-information/lib/util/schema.js.map +1 -0
  314. package/library/esm/node_modules/property-information/lib/util/types.js +16 -0
  315. package/library/esm/node_modules/property-information/lib/util/types.js.map +1 -0
  316. package/library/esm/node_modules/property-information/lib/xlink.js +20 -0
  317. package/library/esm/node_modules/property-information/lib/xlink.js.map +1 -0
  318. package/library/esm/node_modules/property-information/lib/xml.js +12 -0
  319. package/library/esm/node_modules/property-information/lib/xml.js.map +1 -0
  320. package/library/esm/node_modules/property-information/lib/xmlns.js +12 -0
  321. package/library/esm/node_modules/property-information/lib/xmlns.js.map +1 -0
  322. package/library/esm/node_modules/react-markdown/lib/index.js +267 -0
  323. package/library/esm/node_modules/react-markdown/lib/index.js.map +1 -0
  324. package/library/esm/node_modules/react-router/dist/development/chunk-HA7DTUK3.js +1 -1
  325. package/library/esm/node_modules/react-router/node_modules/cookie/dist/index.js +1 -1
  326. package/library/esm/node_modules/remark-parse/lib/index.js +43 -0
  327. package/library/esm/node_modules/remark-parse/lib/index.js.map +1 -0
  328. package/library/esm/node_modules/remark-rehype/lib/index.js +132 -0
  329. package/library/esm/node_modules/remark-rehype/lib/index.js.map +1 -0
  330. package/library/esm/node_modules/space-separated-tokens/index.js +23 -0
  331. package/library/esm/node_modules/space-separated-tokens/index.js.map +1 -0
  332. package/library/esm/node_modules/style-mod/src/style-mod.js +175 -0
  333. package/library/esm/node_modules/style-mod/src/style-mod.js.map +1 -0
  334. package/library/esm/node_modules/style-to-js/cjs/index.js +38 -0
  335. package/library/esm/node_modules/style-to-js/cjs/index.js.map +1 -0
  336. package/library/esm/node_modules/style-to-js/cjs/utilities.js +58 -0
  337. package/library/esm/node_modules/style-to-js/cjs/utilities.js.map +1 -0
  338. package/library/esm/node_modules/style-to-object/cjs/index.js +56 -0
  339. package/library/esm/node_modules/style-to-object/cjs/index.js.map +1 -0
  340. package/library/esm/node_modules/trim-lines/index.js +72 -0
  341. package/library/esm/node_modules/trim-lines/index.js.map +1 -0
  342. package/library/esm/node_modules/trough/lib/index.js +209 -0
  343. package/library/esm/node_modules/trough/lib/index.js.map +1 -0
  344. package/library/esm/node_modules/unified/lib/callable-instance.js +47 -0
  345. package/library/esm/node_modules/unified/lib/callable-instance.js.map +1 -0
  346. package/library/esm/node_modules/unified/lib/index.js +979 -0
  347. package/library/esm/node_modules/unified/lib/index.js.map +1 -0
  348. package/library/esm/node_modules/unified/node_modules/is-plain-obj/index.js +11 -0
  349. package/library/esm/node_modules/unified/node_modules/is-plain-obj/index.js.map +1 -0
  350. package/library/esm/node_modules/unist-util-is/lib/index.js +179 -0
  351. package/library/esm/node_modules/unist-util-is/lib/index.js.map +1 -0
  352. package/library/esm/node_modules/unist-util-position/lib/index.js +98 -0
  353. package/library/esm/node_modules/unist-util-position/lib/index.js.map +1 -0
  354. package/library/esm/node_modules/unist-util-stringify-position/lib/index.js +87 -0
  355. package/library/esm/node_modules/unist-util-stringify-position/lib/index.js.map +1 -0
  356. package/library/esm/node_modules/unist-util-visit/lib/index.js +95 -0
  357. package/library/esm/node_modules/unist-util-visit/lib/index.js.map +1 -0
  358. package/library/esm/node_modules/unist-util-visit-parents/lib/color.js +10 -0
  359. package/library/esm/node_modules/unist-util-visit-parents/lib/color.js.map +1 -0
  360. package/library/esm/node_modules/unist-util-visit-parents/lib/index.js +188 -0
  361. package/library/esm/node_modules/unist-util-visit-parents/lib/index.js.map +1 -0
  362. package/library/esm/node_modules/vfile/lib/index.js +644 -0
  363. package/library/esm/node_modules/vfile/lib/index.js.map +1 -0
  364. package/library/esm/node_modules/vfile/lib/minpath.browser.js +427 -0
  365. package/library/esm/node_modules/vfile/lib/minpath.browser.js.map +1 -0
  366. package/library/esm/node_modules/vfile/lib/minproc.browser.js +11 -0
  367. package/library/esm/node_modules/vfile/lib/minproc.browser.js.map +1 -0
  368. package/library/esm/node_modules/vfile/lib/minurl.browser.js +77 -0
  369. package/library/esm/node_modules/vfile/lib/minurl.browser.js.map +1 -0
  370. package/library/esm/node_modules/vfile/lib/minurl.shared.js +34 -0
  371. package/library/esm/node_modules/vfile/lib/minurl.shared.js.map +1 -0
  372. package/library/esm/node_modules/vfile-message/lib/index.js +305 -0
  373. package/library/esm/node_modules/vfile-message/lib/index.js.map +1 -0
  374. package/library/esm/node_modules/w3c-keyname/index.js +122 -0
  375. package/library/esm/node_modules/w3c-keyname/index.js.map +1 -0
  376. package/library/esm/src/Form/Components/FieldCreator.js +0 -1
  377. package/library/esm/src/Form/Components/FieldCreator.js.map +1 -1
  378. package/library/esm/src/Form/Components/FieldLabel.js +13 -3
  379. package/library/esm/src/Form/Components/FieldLabel.js.map +1 -1
  380. package/library/esm/src/Form/Components/InlineMarkdown.js +15 -0
  381. package/library/esm/src/Form/Components/InlineMarkdown.js.map +1 -0
  382. package/library/esm/src/Form/Components/Inputs/Boolean.js +5 -2
  383. package/library/esm/src/Form/Components/Inputs/Boolean.js.map +1 -1
  384. package/library/esm/src/Form/Components/Inputs/Constant.js +18 -0
  385. package/library/esm/src/Form/Components/Inputs/Constant.js.map +1 -0
  386. package/library/esm/src/Form/Components/Inputs/GeoJSONInputLoader.js +1 -1
  387. package/library/esm/src/Form/Components/Inputs/Geometry.js +290 -329
  388. package/library/esm/src/Form/Components/Inputs/Geometry.js.map +1 -1
  389. package/library/esm/src/Form/Components/Inputs/JSON.js +132 -0
  390. package/library/esm/src/Form/Components/Inputs/JSON.js.map +1 -0
  391. package/library/esm/src/Form/Components/Inputs/JSONInputLoader.js +19 -0
  392. package/library/esm/src/Form/Components/Inputs/JSONInputLoader.js.map +1 -0
  393. package/library/esm/src/Form/Components/Inputs/Number.js +78 -8
  394. package/library/esm/src/Form/Components/Inputs/Number.js.map +1 -1
  395. package/library/esm/src/Form/Components/Inputs/OneOfInput.js +9 -0
  396. package/library/esm/src/Form/Components/Inputs/OneOfInput.js.map +1 -0
  397. package/library/esm/src/Form/Components/Inputs/String.js +9 -3
  398. package/library/esm/src/Form/Components/Inputs/String.js.map +1 -1
  399. package/library/esm/src/Form/Components/Inputs/inputMap.js +7 -3
  400. package/library/esm/src/Form/Components/Inputs/inputMap.js.map +1 -1
  401. package/library/esm/src/Form/Creator/FormCreator.js +42 -49
  402. package/library/esm/src/Form/Creator/FormCreator.js.map +1 -1
  403. package/library/esm/src/Form/Creator/FormHeader.js +7 -5
  404. package/library/esm/src/Form/Creator/FormHeader.js.map +1 -1
  405. package/library/esm/src/Form/Creator/Page.js +4 -3
  406. package/library/esm/src/Form/Creator/Page.js.map +1 -1
  407. package/library/esm/src/Form/Manage/CopyableJSONOutput.js +41 -0
  408. package/library/esm/src/Form/Manage/CopyableJSONOutput.js.map +1 -0
  409. package/library/esm/src/Form/helpers.js +12 -2
  410. package/library/esm/src/Form/helpers.js.map +1 -1
  411. package/library/esm/src/Form/schemaToFormHelpers.js +209 -18
  412. package/library/esm/src/Form/schemaToFormHelpers.js.map +1 -1
  413. package/library/esm/src/library.js +2 -2
  414. package/package.json +8 -1
  415. package/library/esm/src/Form/Components/Inputs/JSONString.js +0 -34
  416. package/library/esm/src/Form/Components/Inputs/JSONString.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../node_modules/@codemirror/autocomplete/dist/index.js"],"sourcesContent":["import { Annotation, StateEffect, EditorSelection, codePointAt, codePointSize, fromCodePoint, Facet, combineConfig, StateField, Prec, Text, Transaction, MapMode, RangeValue, RangeSet, CharCategory } from '@codemirror/state';\nimport { Direction, logException, showTooltip, EditorView, ViewPlugin, getTooltip, Decoration, WidgetType, keymap } from '@codemirror/view';\nimport { syntaxTree, indentUnit } from '@codemirror/language';\n\n/**\nAn instance of this is passed to completion source functions.\n*/\nclass CompletionContext {\n /**\n Create a new completion context. (Mostly useful for testing\n completion sources—in the editor, the extension will create\n these for you.)\n */\n constructor(\n /**\n The editor state that the completion happens in.\n */\n state, \n /**\n The position at which the completion is happening.\n */\n pos, \n /**\n Indicates whether completion was activated explicitly, or\n implicitly by typing. The usual way to respond to this is to\n only return completions when either there is part of a\n completable entity before the cursor, or `explicit` is true.\n */\n explicit, \n /**\n The editor view. May be undefined if the context was created\n in a situation where there is no such view available, such as\n in synchronous updates via\n [`CompletionResult.update`](https://codemirror.net/6/docs/ref/#autocomplete.CompletionResult.update)\n or when called by test code.\n */\n view) {\n this.state = state;\n this.pos = pos;\n this.explicit = explicit;\n this.view = view;\n /**\n @internal\n */\n this.abortListeners = [];\n /**\n @internal\n */\n this.abortOnDocChange = false;\n }\n /**\n Get the extent, content, and (if there is a token) type of the\n token before `this.pos`.\n */\n tokenBefore(types) {\n let token = syntaxTree(this.state).resolveInner(this.pos, -1);\n while (token && types.indexOf(token.name) < 0)\n token = token.parent;\n return token ? { from: token.from, to: this.pos,\n text: this.state.sliceDoc(token.from, this.pos),\n type: token.type } : null;\n }\n /**\n Get the match of the given expression directly before the\n cursor.\n */\n matchBefore(expr) {\n let line = this.state.doc.lineAt(this.pos);\n let start = Math.max(line.from, this.pos - 250);\n let str = line.text.slice(start - line.from, this.pos - line.from);\n let found = str.search(ensureAnchor(expr, false));\n return found < 0 ? null : { from: start + found, to: this.pos, text: str.slice(found) };\n }\n /**\n Yields true when the query has been aborted. Can be useful in\n asynchronous queries to avoid doing work that will be ignored.\n */\n get aborted() { return this.abortListeners == null; }\n /**\n Allows you to register abort handlers, which will be called when\n the query is\n [aborted](https://codemirror.net/6/docs/ref/#autocomplete.CompletionContext.aborted).\n \n By default, running queries will not be aborted for regular\n typing or backspacing, on the assumption that they are likely to\n return a result with a\n [`validFor`](https://codemirror.net/6/docs/ref/#autocomplete.CompletionResult.validFor) field that\n allows the result to be used after all. Passing `onDocChange:\n true` will cause this query to be aborted for any document\n change.\n */\n addEventListener(type, listener, options) {\n if (type == \"abort\" && this.abortListeners) {\n this.abortListeners.push(listener);\n if (options && options.onDocChange)\n this.abortOnDocChange = true;\n }\n }\n}\nfunction toSet(chars) {\n let flat = Object.keys(chars).join(\"\");\n let words = /\\w/.test(flat);\n if (words)\n flat = flat.replace(/\\w/g, \"\");\n return `[${words ? \"\\\\w\" : \"\"}${flat.replace(/[^\\w\\s]/g, \"\\\\$&\")}]`;\n}\nfunction prefixMatch(options) {\n let first = Object.create(null), rest = Object.create(null);\n for (let { label } of options) {\n first[label[0]] = true;\n for (let i = 1; i < label.length; i++)\n rest[label[i]] = true;\n }\n let source = toSet(first) + toSet(rest) + \"*$\";\n return [new RegExp(\"^\" + source), new RegExp(source)];\n}\n/**\nGiven a a fixed array of options, return an autocompleter that\ncompletes them.\n*/\nfunction completeFromList(list) {\n let options = list.map(o => typeof o == \"string\" ? { label: o } : o);\n let [validFor, match] = options.every(o => /^\\w+$/.test(o.label)) ? [/\\w*$/, /\\w+$/] : prefixMatch(options);\n return (context) => {\n let token = context.matchBefore(match);\n return token || context.explicit ? { from: token ? token.from : context.pos, options, validFor } : null;\n };\n}\n/**\nWrap the given completion source so that it will only fire when the\ncursor is in a syntax node with one of the given names.\n*/\nfunction ifIn(nodes, source) {\n return (context) => {\n for (let pos = syntaxTree(context.state).resolveInner(context.pos, -1); pos; pos = pos.parent) {\n if (nodes.indexOf(pos.name) > -1)\n return source(context);\n if (pos.type.isTop)\n break;\n }\n return null;\n };\n}\n/**\nWrap the given completion source so that it will not fire when the\ncursor is in a syntax node with one of the given names.\n*/\nfunction ifNotIn(nodes, source) {\n return (context) => {\n for (let pos = syntaxTree(context.state).resolveInner(context.pos, -1); pos; pos = pos.parent) {\n if (nodes.indexOf(pos.name) > -1)\n return null;\n if (pos.type.isTop)\n break;\n }\n return source(context);\n };\n}\nclass Option {\n constructor(completion, source, match, score) {\n this.completion = completion;\n this.source = source;\n this.match = match;\n this.score = score;\n }\n}\nfunction cur(state) { return state.selection.main.from; }\n// Make sure the given regexp has a $ at its end and, if `start` is\n// true, a ^ at its start.\nfunction ensureAnchor(expr, start) {\n var _a;\n let { source } = expr;\n let addStart = start && source[0] != \"^\", addEnd = source[source.length - 1] != \"$\";\n if (!addStart && !addEnd)\n return expr;\n return new RegExp(`${addStart ? \"^\" : \"\"}(?:${source})${addEnd ? \"$\" : \"\"}`, (_a = expr.flags) !== null && _a !== void 0 ? _a : (expr.ignoreCase ? \"i\" : \"\"));\n}\n/**\nThis annotation is added to transactions that are produced by\npicking a completion.\n*/\nconst pickedCompletion = /*@__PURE__*/Annotation.define();\n/**\nHelper function that returns a transaction spec which inserts a\ncompletion's text in the main selection range, and any other\nselection range that has the same text in front of it.\n*/\nfunction insertCompletionText(state, text, from, to) {\n let { main } = state.selection, fromOff = from - main.from, toOff = to - main.from;\n return Object.assign(Object.assign({}, state.changeByRange(range => {\n if (range != main && from != to &&\n state.sliceDoc(range.from + fromOff, range.from + toOff) != state.sliceDoc(from, to))\n return { range };\n let lines = state.toText(text);\n return {\n changes: { from: range.from + fromOff, to: to == main.from ? range.to : range.from + toOff, insert: lines },\n range: EditorSelection.cursor(range.from + fromOff + lines.length)\n };\n })), { scrollIntoView: true, userEvent: \"input.complete\" });\n}\nconst SourceCache = /*@__PURE__*/new WeakMap();\nfunction asSource(source) {\n if (!Array.isArray(source))\n return source;\n let known = SourceCache.get(source);\n if (!known)\n SourceCache.set(source, known = completeFromList(source));\n return known;\n}\nconst startCompletionEffect = /*@__PURE__*/StateEffect.define();\nconst closeCompletionEffect = /*@__PURE__*/StateEffect.define();\n\n// A pattern matcher for fuzzy completion matching. Create an instance\n// once for a pattern, and then use that to match any number of\n// completions.\nclass FuzzyMatcher {\n constructor(pattern) {\n this.pattern = pattern;\n this.chars = [];\n this.folded = [];\n // Buffers reused by calls to `match` to track matched character\n // positions.\n this.any = [];\n this.precise = [];\n this.byWord = [];\n this.score = 0;\n this.matched = [];\n for (let p = 0; p < pattern.length;) {\n let char = codePointAt(pattern, p), size = codePointSize(char);\n this.chars.push(char);\n let part = pattern.slice(p, p + size), upper = part.toUpperCase();\n this.folded.push(codePointAt(upper == part ? part.toLowerCase() : upper, 0));\n p += size;\n }\n this.astral = pattern.length != this.chars.length;\n }\n ret(score, matched) {\n this.score = score;\n this.matched = matched;\n return this;\n }\n // Matches a given word (completion) against the pattern (input).\n // Will return a boolean indicating whether there was a match and,\n // on success, set `this.score` to the score, `this.matched` to an\n // array of `from, to` pairs indicating the matched parts of `word`.\n //\n // The score is a number that is more negative the worse the match\n // is. See `Penalty` above.\n match(word) {\n if (this.pattern.length == 0)\n return this.ret(-100 /* Penalty.NotFull */, []);\n if (word.length < this.pattern.length)\n return null;\n let { chars, folded, any, precise, byWord } = this;\n // For single-character queries, only match when they occur right\n // at the start\n if (chars.length == 1) {\n let first = codePointAt(word, 0), firstSize = codePointSize(first);\n let score = firstSize == word.length ? 0 : -100 /* Penalty.NotFull */;\n if (first == chars[0]) ;\n else if (first == folded[0])\n score += -200 /* Penalty.CaseFold */;\n else\n return null;\n return this.ret(score, [0, firstSize]);\n }\n let direct = word.indexOf(this.pattern);\n if (direct == 0)\n return this.ret(word.length == this.pattern.length ? 0 : -100 /* Penalty.NotFull */, [0, this.pattern.length]);\n let len = chars.length, anyTo = 0;\n if (direct < 0) {\n for (let i = 0, e = Math.min(word.length, 200); i < e && anyTo < len;) {\n let next = codePointAt(word, i);\n if (next == chars[anyTo] || next == folded[anyTo])\n any[anyTo++] = i;\n i += codePointSize(next);\n }\n // No match, exit immediately\n if (anyTo < len)\n return null;\n }\n // This tracks the extent of the precise (non-folded, not\n // necessarily adjacent) match\n let preciseTo = 0;\n // Tracks whether there is a match that hits only characters that\n // appear to be starting words. `byWordFolded` is set to true when\n // a case folded character is encountered in such a match\n let byWordTo = 0, byWordFolded = false;\n // If we've found a partial adjacent match, these track its state\n let adjacentTo = 0, adjacentStart = -1, adjacentEnd = -1;\n let hasLower = /[a-z]/.test(word), wordAdjacent = true;\n // Go over the option's text, scanning for the various kinds of matches\n for (let i = 0, e = Math.min(word.length, 200), prevType = 0 /* Tp.NonWord */; i < e && byWordTo < len;) {\n let next = codePointAt(word, i);\n if (direct < 0) {\n if (preciseTo < len && next == chars[preciseTo])\n precise[preciseTo++] = i;\n if (adjacentTo < len) {\n if (next == chars[adjacentTo] || next == folded[adjacentTo]) {\n if (adjacentTo == 0)\n adjacentStart = i;\n adjacentEnd = i + 1;\n adjacentTo++;\n }\n else {\n adjacentTo = 0;\n }\n }\n }\n let ch, type = next < 0xff\n ? (next >= 48 && next <= 57 || next >= 97 && next <= 122 ? 2 /* Tp.Lower */ : next >= 65 && next <= 90 ? 1 /* Tp.Upper */ : 0 /* Tp.NonWord */)\n : ((ch = fromCodePoint(next)) != ch.toLowerCase() ? 1 /* Tp.Upper */ : ch != ch.toUpperCase() ? 2 /* Tp.Lower */ : 0 /* Tp.NonWord */);\n if (!i || type == 1 /* Tp.Upper */ && hasLower || prevType == 0 /* Tp.NonWord */ && type != 0 /* Tp.NonWord */) {\n if (chars[byWordTo] == next || (folded[byWordTo] == next && (byWordFolded = true)))\n byWord[byWordTo++] = i;\n else if (byWord.length)\n wordAdjacent = false;\n }\n prevType = type;\n i += codePointSize(next);\n }\n if (byWordTo == len && byWord[0] == 0 && wordAdjacent)\n return this.result(-100 /* Penalty.ByWord */ + (byWordFolded ? -200 /* Penalty.CaseFold */ : 0), byWord, word);\n if (adjacentTo == len && adjacentStart == 0)\n return this.ret(-200 /* Penalty.CaseFold */ - word.length + (adjacentEnd == word.length ? 0 : -100 /* Penalty.NotFull */), [0, adjacentEnd]);\n if (direct > -1)\n return this.ret(-700 /* Penalty.NotStart */ - word.length, [direct, direct + this.pattern.length]);\n if (adjacentTo == len)\n return this.ret(-200 /* Penalty.CaseFold */ + -700 /* Penalty.NotStart */ - word.length, [adjacentStart, adjacentEnd]);\n if (byWordTo == len)\n return this.result(-100 /* Penalty.ByWord */ + (byWordFolded ? -200 /* Penalty.CaseFold */ : 0) + -700 /* Penalty.NotStart */ +\n (wordAdjacent ? 0 : -1100 /* Penalty.Gap */), byWord, word);\n return chars.length == 2 ? null\n : this.result((any[0] ? -700 /* Penalty.NotStart */ : 0) + -200 /* Penalty.CaseFold */ + -1100 /* Penalty.Gap */, any, word);\n }\n result(score, positions, word) {\n let result = [], i = 0;\n for (let pos of positions) {\n let to = pos + (this.astral ? codePointSize(codePointAt(word, pos)) : 1);\n if (i && result[i - 1] == pos)\n result[i - 1] = to;\n else {\n result[i++] = pos;\n result[i++] = to;\n }\n }\n return this.ret(score - word.length, result);\n }\n}\nclass StrictMatcher {\n constructor(pattern) {\n this.pattern = pattern;\n this.matched = [];\n this.score = 0;\n this.folded = pattern.toLowerCase();\n }\n match(word) {\n if (word.length < this.pattern.length)\n return null;\n let start = word.slice(0, this.pattern.length);\n let match = start == this.pattern ? 0 : start.toLowerCase() == this.folded ? -200 /* Penalty.CaseFold */ : null;\n if (match == null)\n return null;\n this.matched = [0, start.length];\n this.score = match + (word.length == this.pattern.length ? 0 : -100 /* Penalty.NotFull */);\n return this;\n }\n}\n\nconst completionConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n activateOnTyping: true,\n activateOnCompletion: () => false,\n activateOnTypingDelay: 100,\n selectOnOpen: true,\n override: null,\n closeOnBlur: true,\n maxRenderedOptions: 100,\n defaultKeymap: true,\n tooltipClass: () => \"\",\n optionClass: () => \"\",\n aboveCursor: false,\n icons: true,\n addToOptions: [],\n positionInfo: defaultPositionInfo,\n filterStrict: false,\n compareCompletions: (a, b) => a.label.localeCompare(b.label),\n interactionDelay: 75,\n updateSyncTime: 100\n }, {\n defaultKeymap: (a, b) => a && b,\n closeOnBlur: (a, b) => a && b,\n icons: (a, b) => a && b,\n tooltipClass: (a, b) => c => joinClass(a(c), b(c)),\n optionClass: (a, b) => c => joinClass(a(c), b(c)),\n addToOptions: (a, b) => a.concat(b),\n filterStrict: (a, b) => a || b,\n });\n }\n});\nfunction joinClass(a, b) {\n return a ? b ? a + \" \" + b : a : b;\n}\nfunction defaultPositionInfo(view, list, option, info, space, tooltip) {\n let rtl = view.textDirection == Direction.RTL, left = rtl, narrow = false;\n let side = \"top\", offset, maxWidth;\n let spaceLeft = list.left - space.left, spaceRight = space.right - list.right;\n let infoWidth = info.right - info.left, infoHeight = info.bottom - info.top;\n if (left && spaceLeft < Math.min(infoWidth, spaceRight))\n left = false;\n else if (!left && spaceRight < Math.min(infoWidth, spaceLeft))\n left = true;\n if (infoWidth <= (left ? spaceLeft : spaceRight)) {\n offset = Math.max(space.top, Math.min(option.top, space.bottom - infoHeight)) - list.top;\n maxWidth = Math.min(400 /* Info.Width */, left ? spaceLeft : spaceRight);\n }\n else {\n narrow = true;\n maxWidth = Math.min(400 /* Info.Width */, (rtl ? list.right : space.right - list.left) - 30 /* Info.Margin */);\n let spaceBelow = space.bottom - list.bottom;\n if (spaceBelow >= infoHeight || spaceBelow > list.top) { // Below the completion\n offset = option.bottom - list.top;\n }\n else { // Above it\n side = \"bottom\";\n offset = list.bottom - option.top;\n }\n }\n let scaleY = (list.bottom - list.top) / tooltip.offsetHeight;\n let scaleX = (list.right - list.left) / tooltip.offsetWidth;\n return {\n style: `${side}: ${offset / scaleY}px; max-width: ${maxWidth / scaleX}px`,\n class: \"cm-completionInfo-\" + (narrow ? (rtl ? \"left-narrow\" : \"right-narrow\") : left ? \"left\" : \"right\")\n };\n}\n\nfunction optionContent(config) {\n let content = config.addToOptions.slice();\n if (config.icons)\n content.push({\n render(completion) {\n let icon = document.createElement(\"div\");\n icon.classList.add(\"cm-completionIcon\");\n if (completion.type)\n icon.classList.add(...completion.type.split(/\\s+/g).map(cls => \"cm-completionIcon-\" + cls));\n icon.setAttribute(\"aria-hidden\", \"true\");\n return icon;\n },\n position: 20\n });\n content.push({\n render(completion, _s, _v, match) {\n let labelElt = document.createElement(\"span\");\n labelElt.className = \"cm-completionLabel\";\n let label = completion.displayLabel || completion.label, off = 0;\n for (let j = 0; j < match.length;) {\n let from = match[j++], to = match[j++];\n if (from > off)\n labelElt.appendChild(document.createTextNode(label.slice(off, from)));\n let span = labelElt.appendChild(document.createElement(\"span\"));\n span.appendChild(document.createTextNode(label.slice(from, to)));\n span.className = \"cm-completionMatchedText\";\n off = to;\n }\n if (off < label.length)\n labelElt.appendChild(document.createTextNode(label.slice(off)));\n return labelElt;\n },\n position: 50\n }, {\n render(completion) {\n if (!completion.detail)\n return null;\n let detailElt = document.createElement(\"span\");\n detailElt.className = \"cm-completionDetail\";\n detailElt.textContent = completion.detail;\n return detailElt;\n },\n position: 80\n });\n return content.sort((a, b) => a.position - b.position).map(a => a.render);\n}\nfunction rangeAroundSelected(total, selected, max) {\n if (total <= max)\n return { from: 0, to: total };\n if (selected < 0)\n selected = 0;\n if (selected <= (total >> 1)) {\n let off = Math.floor(selected / max);\n return { from: off * max, to: (off + 1) * max };\n }\n let off = Math.floor((total - selected) / max);\n return { from: total - (off + 1) * max, to: total - off * max };\n}\nclass CompletionTooltip {\n constructor(view, stateField, applyCompletion) {\n this.view = view;\n this.stateField = stateField;\n this.applyCompletion = applyCompletion;\n this.info = null;\n this.infoDestroy = null;\n this.placeInfoReq = {\n read: () => this.measureInfo(),\n write: (pos) => this.placeInfo(pos),\n key: this\n };\n this.space = null;\n this.currentClass = \"\";\n let cState = view.state.field(stateField);\n let { options, selected } = cState.open;\n let config = view.state.facet(completionConfig);\n this.optionContent = optionContent(config);\n this.optionClass = config.optionClass;\n this.tooltipClass = config.tooltipClass;\n this.range = rangeAroundSelected(options.length, selected, config.maxRenderedOptions);\n this.dom = document.createElement(\"div\");\n this.dom.className = \"cm-tooltip-autocomplete\";\n this.updateTooltipClass(view.state);\n this.dom.addEventListener(\"mousedown\", (e) => {\n let { options } = view.state.field(stateField).open;\n for (let dom = e.target, match; dom && dom != this.dom; dom = dom.parentNode) {\n if (dom.nodeName == \"LI\" && (match = /-(\\d+)$/.exec(dom.id)) && +match[1] < options.length) {\n this.applyCompletion(view, options[+match[1]]);\n e.preventDefault();\n return;\n }\n }\n });\n this.dom.addEventListener(\"focusout\", (e) => {\n let state = view.state.field(this.stateField, false);\n if (state && state.tooltip && view.state.facet(completionConfig).closeOnBlur &&\n e.relatedTarget != view.contentDOM)\n view.dispatch({ effects: closeCompletionEffect.of(null) });\n });\n this.showOptions(options, cState.id);\n }\n mount() { this.updateSel(); }\n showOptions(options, id) {\n if (this.list)\n this.list.remove();\n this.list = this.dom.appendChild(this.createListBox(options, id, this.range));\n this.list.addEventListener(\"scroll\", () => {\n if (this.info)\n this.view.requestMeasure(this.placeInfoReq);\n });\n }\n update(update) {\n var _a;\n let cState = update.state.field(this.stateField);\n let prevState = update.startState.field(this.stateField);\n this.updateTooltipClass(update.state);\n if (cState != prevState) {\n let { options, selected, disabled } = cState.open;\n if (!prevState.open || prevState.open.options != options) {\n this.range = rangeAroundSelected(options.length, selected, update.state.facet(completionConfig).maxRenderedOptions);\n this.showOptions(options, cState.id);\n }\n this.updateSel();\n if (disabled != ((_a = prevState.open) === null || _a === void 0 ? void 0 : _a.disabled))\n this.dom.classList.toggle(\"cm-tooltip-autocomplete-disabled\", !!disabled);\n }\n }\n updateTooltipClass(state) {\n let cls = this.tooltipClass(state);\n if (cls != this.currentClass) {\n for (let c of this.currentClass.split(\" \"))\n if (c)\n this.dom.classList.remove(c);\n for (let c of cls.split(\" \"))\n if (c)\n this.dom.classList.add(c);\n this.currentClass = cls;\n }\n }\n positioned(space) {\n this.space = space;\n if (this.info)\n this.view.requestMeasure(this.placeInfoReq);\n }\n updateSel() {\n let cState = this.view.state.field(this.stateField), open = cState.open;\n if (open.selected > -1 && open.selected < this.range.from || open.selected >= this.range.to) {\n this.range = rangeAroundSelected(open.options.length, open.selected, this.view.state.facet(completionConfig).maxRenderedOptions);\n this.showOptions(open.options, cState.id);\n }\n if (this.updateSelectedOption(open.selected)) {\n this.destroyInfo();\n let { completion } = open.options[open.selected];\n let { info } = completion;\n if (!info)\n return;\n let infoResult = typeof info === \"string\" ? document.createTextNode(info) : info(completion);\n if (!infoResult)\n return;\n if (\"then\" in infoResult) {\n infoResult.then(obj => {\n if (obj && this.view.state.field(this.stateField, false) == cState)\n this.addInfoPane(obj, completion);\n }).catch(e => logException(this.view.state, e, \"completion info\"));\n }\n else {\n this.addInfoPane(infoResult, completion);\n }\n }\n }\n addInfoPane(content, completion) {\n this.destroyInfo();\n let wrap = this.info = document.createElement(\"div\");\n wrap.className = \"cm-tooltip cm-completionInfo\";\n if (content.nodeType != null) {\n wrap.appendChild(content);\n this.infoDestroy = null;\n }\n else {\n let { dom, destroy } = content;\n wrap.appendChild(dom);\n this.infoDestroy = destroy || null;\n }\n this.dom.appendChild(wrap);\n this.view.requestMeasure(this.placeInfoReq);\n }\n updateSelectedOption(selected) {\n let set = null;\n for (let opt = this.list.firstChild, i = this.range.from; opt; opt = opt.nextSibling, i++) {\n if (opt.nodeName != \"LI\" || !opt.id) {\n i--; // A section header\n }\n else if (i == selected) {\n if (!opt.hasAttribute(\"aria-selected\")) {\n opt.setAttribute(\"aria-selected\", \"true\");\n set = opt;\n }\n }\n else {\n if (opt.hasAttribute(\"aria-selected\"))\n opt.removeAttribute(\"aria-selected\");\n }\n }\n if (set)\n scrollIntoView(this.list, set);\n return set;\n }\n measureInfo() {\n let sel = this.dom.querySelector(\"[aria-selected]\");\n if (!sel || !this.info)\n return null;\n let listRect = this.dom.getBoundingClientRect();\n let infoRect = this.info.getBoundingClientRect();\n let selRect = sel.getBoundingClientRect();\n let space = this.space;\n if (!space) {\n let docElt = this.dom.ownerDocument.documentElement;\n space = { left: 0, top: 0, right: docElt.clientWidth, bottom: docElt.clientHeight };\n }\n if (selRect.top > Math.min(space.bottom, listRect.bottom) - 10 ||\n selRect.bottom < Math.max(space.top, listRect.top) + 10)\n return null;\n return this.view.state.facet(completionConfig).positionInfo(this.view, listRect, selRect, infoRect, space, this.dom);\n }\n placeInfo(pos) {\n if (this.info) {\n if (pos) {\n if (pos.style)\n this.info.style.cssText = pos.style;\n this.info.className = \"cm-tooltip cm-completionInfo \" + (pos.class || \"\");\n }\n else {\n this.info.style.cssText = \"top: -1e6px\";\n }\n }\n }\n createListBox(options, id, range) {\n const ul = document.createElement(\"ul\");\n ul.id = id;\n ul.setAttribute(\"role\", \"listbox\");\n ul.setAttribute(\"aria-expanded\", \"true\");\n ul.setAttribute(\"aria-label\", this.view.state.phrase(\"Completions\"));\n ul.addEventListener(\"mousedown\", e => {\n // Prevent focus change when clicking the scrollbar\n if (e.target == ul)\n e.preventDefault();\n });\n let curSection = null;\n for (let i = range.from; i < range.to; i++) {\n let { completion, match } = options[i], { section } = completion;\n if (section) {\n let name = typeof section == \"string\" ? section : section.name;\n if (name != curSection && (i > range.from || range.from == 0)) {\n curSection = name;\n if (typeof section != \"string\" && section.header) {\n ul.appendChild(section.header(section));\n }\n else {\n let header = ul.appendChild(document.createElement(\"completion-section\"));\n header.textContent = name;\n }\n }\n }\n const li = ul.appendChild(document.createElement(\"li\"));\n li.id = id + \"-\" + i;\n li.setAttribute(\"role\", \"option\");\n let cls = this.optionClass(completion);\n if (cls)\n li.className = cls;\n for (let source of this.optionContent) {\n let node = source(completion, this.view.state, this.view, match);\n if (node)\n li.appendChild(node);\n }\n }\n if (range.from)\n ul.classList.add(\"cm-completionListIncompleteTop\");\n if (range.to < options.length)\n ul.classList.add(\"cm-completionListIncompleteBottom\");\n return ul;\n }\n destroyInfo() {\n if (this.info) {\n if (this.infoDestroy)\n this.infoDestroy();\n this.info.remove();\n this.info = null;\n }\n }\n destroy() {\n this.destroyInfo();\n }\n}\nfunction completionTooltip(stateField, applyCompletion) {\n return (view) => new CompletionTooltip(view, stateField, applyCompletion);\n}\nfunction scrollIntoView(container, element) {\n let parent = container.getBoundingClientRect();\n let self = element.getBoundingClientRect();\n let scaleY = parent.height / container.offsetHeight;\n if (self.top < parent.top)\n container.scrollTop -= (parent.top - self.top) / scaleY;\n else if (self.bottom > parent.bottom)\n container.scrollTop += (self.bottom - parent.bottom) / scaleY;\n}\n\n// Used to pick a preferred option when two options with the same\n// label occur in the result.\nfunction score(option) {\n return (option.boost || 0) * 100 + (option.apply ? 10 : 0) + (option.info ? 5 : 0) +\n (option.type ? 1 : 0);\n}\nfunction sortOptions(active, state) {\n let options = [];\n let sections = null;\n let addOption = (option) => {\n options.push(option);\n let { section } = option.completion;\n if (section) {\n if (!sections)\n sections = [];\n let name = typeof section == \"string\" ? section : section.name;\n if (!sections.some(s => s.name == name))\n sections.push(typeof section == \"string\" ? { name } : section);\n }\n };\n let conf = state.facet(completionConfig);\n for (let a of active)\n if (a.hasResult()) {\n let getMatch = a.result.getMatch;\n if (a.result.filter === false) {\n for (let option of a.result.options) {\n addOption(new Option(option, a.source, getMatch ? getMatch(option) : [], 1e9 - options.length));\n }\n }\n else {\n let pattern = state.sliceDoc(a.from, a.to), match;\n let matcher = conf.filterStrict ? new StrictMatcher(pattern) : new FuzzyMatcher(pattern);\n for (let option of a.result.options)\n if (match = matcher.match(option.label)) {\n let matched = !option.displayLabel ? match.matched : getMatch ? getMatch(option, match.matched) : [];\n addOption(new Option(option, a.source, matched, match.score + (option.boost || 0)));\n }\n }\n }\n if (sections) {\n let sectionOrder = Object.create(null), pos = 0;\n let cmp = (a, b) => { var _a, _b; return ((_a = a.rank) !== null && _a !== void 0 ? _a : 1e9) - ((_b = b.rank) !== null && _b !== void 0 ? _b : 1e9) || (a.name < b.name ? -1 : 1); };\n for (let s of sections.sort(cmp)) {\n pos -= 1e5;\n sectionOrder[s.name] = pos;\n }\n for (let option of options) {\n let { section } = option.completion;\n if (section)\n option.score += sectionOrder[typeof section == \"string\" ? section : section.name];\n }\n }\n let result = [], prev = null;\n let compare = conf.compareCompletions;\n for (let opt of options.sort((a, b) => (b.score - a.score) || compare(a.completion, b.completion))) {\n let cur = opt.completion;\n if (!prev || prev.label != cur.label || prev.detail != cur.detail ||\n (prev.type != null && cur.type != null && prev.type != cur.type) ||\n prev.apply != cur.apply || prev.boost != cur.boost)\n result.push(opt);\n else if (score(opt.completion) > score(prev))\n result[result.length - 1] = opt;\n prev = opt.completion;\n }\n return result;\n}\nclass CompletionDialog {\n constructor(options, attrs, tooltip, timestamp, selected, disabled) {\n this.options = options;\n this.attrs = attrs;\n this.tooltip = tooltip;\n this.timestamp = timestamp;\n this.selected = selected;\n this.disabled = disabled;\n }\n setSelected(selected, id) {\n return selected == this.selected || selected >= this.options.length ? this\n : new CompletionDialog(this.options, makeAttrs(id, selected), this.tooltip, this.timestamp, selected, this.disabled);\n }\n static build(active, state, id, prev, conf, didSetActive) {\n if (prev && !didSetActive && active.some(s => s.isPending))\n return prev.setDisabled();\n let options = sortOptions(active, state);\n if (!options.length)\n return prev && active.some(a => a.isPending) ? prev.setDisabled() : null;\n let selected = state.facet(completionConfig).selectOnOpen ? 0 : -1;\n if (prev && prev.selected != selected && prev.selected != -1) {\n let selectedValue = prev.options[prev.selected].completion;\n for (let i = 0; i < options.length; i++)\n if (options[i].completion == selectedValue) {\n selected = i;\n break;\n }\n }\n return new CompletionDialog(options, makeAttrs(id, selected), {\n pos: active.reduce((a, b) => b.hasResult() ? Math.min(a, b.from) : a, 1e8),\n create: createTooltip,\n above: conf.aboveCursor,\n }, prev ? prev.timestamp : Date.now(), selected, false);\n }\n map(changes) {\n return new CompletionDialog(this.options, this.attrs, Object.assign(Object.assign({}, this.tooltip), { pos: changes.mapPos(this.tooltip.pos) }), this.timestamp, this.selected, this.disabled);\n }\n setDisabled() {\n return new CompletionDialog(this.options, this.attrs, this.tooltip, this.timestamp, this.selected, true);\n }\n}\nclass CompletionState {\n constructor(active, id, open) {\n this.active = active;\n this.id = id;\n this.open = open;\n }\n static start() {\n return new CompletionState(none, \"cm-ac-\" + Math.floor(Math.random() * 2e6).toString(36), null);\n }\n update(tr) {\n let { state } = tr, conf = state.facet(completionConfig);\n let sources = conf.override ||\n state.languageDataAt(\"autocomplete\", cur(state)).map(asSource);\n let active = sources.map(source => {\n let value = this.active.find(s => s.source == source) ||\n new ActiveSource(source, this.active.some(a => a.state != 0 /* State.Inactive */) ? 1 /* State.Pending */ : 0 /* State.Inactive */);\n return value.update(tr, conf);\n });\n if (active.length == this.active.length && active.every((a, i) => a == this.active[i]))\n active = this.active;\n let open = this.open, didSet = tr.effects.some(e => e.is(setActiveEffect));\n if (open && tr.docChanged)\n open = open.map(tr.changes);\n if (tr.selection || active.some(a => a.hasResult() && tr.changes.touchesRange(a.from, a.to)) ||\n !sameResults(active, this.active) || didSet)\n open = CompletionDialog.build(active, state, this.id, open, conf, didSet);\n else if (open && open.disabled && !active.some(a => a.isPending))\n open = null;\n if (!open && active.every(a => !a.isPending) && active.some(a => a.hasResult()))\n active = active.map(a => a.hasResult() ? new ActiveSource(a.source, 0 /* State.Inactive */) : a);\n for (let effect of tr.effects)\n if (effect.is(setSelectedEffect))\n open = open && open.setSelected(effect.value, this.id);\n return active == this.active && open == this.open ? this : new CompletionState(active, this.id, open);\n }\n get tooltip() { return this.open ? this.open.tooltip : null; }\n get attrs() { return this.open ? this.open.attrs : this.active.length ? baseAttrs : noAttrs; }\n}\nfunction sameResults(a, b) {\n if (a == b)\n return true;\n for (let iA = 0, iB = 0;;) {\n while (iA < a.length && !a[iA].hasResult())\n iA++;\n while (iB < b.length && !b[iB].hasResult())\n iB++;\n let endA = iA == a.length, endB = iB == b.length;\n if (endA || endB)\n return endA == endB;\n if (a[iA++].result != b[iB++].result)\n return false;\n }\n}\nconst baseAttrs = {\n \"aria-autocomplete\": \"list\"\n};\nconst noAttrs = {};\nfunction makeAttrs(id, selected) {\n let result = {\n \"aria-autocomplete\": \"list\",\n \"aria-haspopup\": \"listbox\",\n \"aria-controls\": id\n };\n if (selected > -1)\n result[\"aria-activedescendant\"] = id + \"-\" + selected;\n return result;\n}\nconst none = [];\nfunction getUpdateType(tr, conf) {\n if (tr.isUserEvent(\"input.complete\")) {\n let completion = tr.annotation(pickedCompletion);\n if (completion && conf.activateOnCompletion(completion))\n return 4 /* UpdateType.Activate */ | 8 /* UpdateType.Reset */;\n }\n let typing = tr.isUserEvent(\"input.type\");\n return typing && conf.activateOnTyping ? 4 /* UpdateType.Activate */ | 1 /* UpdateType.Typing */\n : typing ? 1 /* UpdateType.Typing */\n : tr.isUserEvent(\"delete.backward\") ? 2 /* UpdateType.Backspacing */\n : tr.selection ? 8 /* UpdateType.Reset */\n : tr.docChanged ? 16 /* UpdateType.ResetIfTouching */ : 0 /* UpdateType.None */;\n}\nclass ActiveSource {\n constructor(source, state, explicit = false) {\n this.source = source;\n this.state = state;\n this.explicit = explicit;\n }\n hasResult() { return false; }\n get isPending() { return this.state == 1 /* State.Pending */; }\n update(tr, conf) {\n let type = getUpdateType(tr, conf), value = this;\n if ((type & 8 /* UpdateType.Reset */) || (type & 16 /* UpdateType.ResetIfTouching */) && this.touches(tr))\n value = new ActiveSource(value.source, 0 /* State.Inactive */);\n if ((type & 4 /* UpdateType.Activate */) && value.state == 0 /* State.Inactive */)\n value = new ActiveSource(this.source, 1 /* State.Pending */);\n value = value.updateFor(tr, type);\n for (let effect of tr.effects) {\n if (effect.is(startCompletionEffect))\n value = new ActiveSource(value.source, 1 /* State.Pending */, effect.value);\n else if (effect.is(closeCompletionEffect))\n value = new ActiveSource(value.source, 0 /* State.Inactive */);\n else if (effect.is(setActiveEffect))\n for (let active of effect.value)\n if (active.source == value.source)\n value = active;\n }\n return value;\n }\n updateFor(tr, type) { return this.map(tr.changes); }\n map(changes) { return this; }\n touches(tr) {\n return tr.changes.touchesRange(cur(tr.state));\n }\n}\nclass ActiveResult extends ActiveSource {\n constructor(source, explicit, limit, result, from, to) {\n super(source, 3 /* State.Result */, explicit);\n this.limit = limit;\n this.result = result;\n this.from = from;\n this.to = to;\n }\n hasResult() { return true; }\n updateFor(tr, type) {\n var _a;\n if (!(type & 3 /* UpdateType.SimpleInteraction */))\n return this.map(tr.changes);\n let result = this.result;\n if (result.map && !tr.changes.empty)\n result = result.map(result, tr.changes);\n let from = tr.changes.mapPos(this.from), to = tr.changes.mapPos(this.to, 1);\n let pos = cur(tr.state);\n if (pos > to || !result ||\n (type & 2 /* UpdateType.Backspacing */) && (cur(tr.startState) == this.from || pos < this.limit))\n return new ActiveSource(this.source, type & 4 /* UpdateType.Activate */ ? 1 /* State.Pending */ : 0 /* State.Inactive */);\n let limit = tr.changes.mapPos(this.limit);\n if (checkValid(result.validFor, tr.state, from, to))\n return new ActiveResult(this.source, this.explicit, limit, result, from, to);\n if (result.update &&\n (result = result.update(result, from, to, new CompletionContext(tr.state, pos, false))))\n return new ActiveResult(this.source, this.explicit, limit, result, result.from, (_a = result.to) !== null && _a !== void 0 ? _a : cur(tr.state));\n return new ActiveSource(this.source, 1 /* State.Pending */, this.explicit);\n }\n map(mapping) {\n if (mapping.empty)\n return this;\n let result = this.result.map ? this.result.map(this.result, mapping) : this.result;\n if (!result)\n return new ActiveSource(this.source, 0 /* State.Inactive */);\n return new ActiveResult(this.source, this.explicit, mapping.mapPos(this.limit), this.result, mapping.mapPos(this.from), mapping.mapPos(this.to, 1));\n }\n touches(tr) {\n return tr.changes.touchesRange(this.from, this.to);\n }\n}\nfunction checkValid(validFor, state, from, to) {\n if (!validFor)\n return false;\n let text = state.sliceDoc(from, to);\n return typeof validFor == \"function\" ? validFor(text, from, to, state) : ensureAnchor(validFor, true).test(text);\n}\nconst setActiveEffect = /*@__PURE__*/StateEffect.define({\n map(sources, mapping) { return sources.map(s => s.map(mapping)); }\n});\nconst setSelectedEffect = /*@__PURE__*/StateEffect.define();\nconst completionState = /*@__PURE__*/StateField.define({\n create() { return CompletionState.start(); },\n update(value, tr) { return value.update(tr); },\n provide: f => [\n showTooltip.from(f, val => val.tooltip),\n EditorView.contentAttributes.from(f, state => state.attrs)\n ]\n});\nfunction applyCompletion(view, option) {\n const apply = option.completion.apply || option.completion.label;\n let result = view.state.field(completionState).active.find(a => a.source == option.source);\n if (!(result instanceof ActiveResult))\n return false;\n if (typeof apply == \"string\")\n view.dispatch(Object.assign(Object.assign({}, insertCompletionText(view.state, apply, result.from, result.to)), { annotations: pickedCompletion.of(option.completion) }));\n else\n apply(view, option.completion, result.from, result.to);\n return true;\n}\nconst createTooltip = /*@__PURE__*/completionTooltip(completionState, applyCompletion);\n\n/**\nReturns a command that moves the completion selection forward or\nbackward by the given amount.\n*/\nfunction moveCompletionSelection(forward, by = \"option\") {\n return (view) => {\n let cState = view.state.field(completionState, false);\n if (!cState || !cState.open || cState.open.disabled ||\n Date.now() - cState.open.timestamp < view.state.facet(completionConfig).interactionDelay)\n return false;\n let step = 1, tooltip;\n if (by == \"page\" && (tooltip = getTooltip(view, cState.open.tooltip)))\n step = Math.max(2, Math.floor(tooltip.dom.offsetHeight /\n tooltip.dom.querySelector(\"li\").offsetHeight) - 1);\n let { length } = cState.open.options;\n let selected = cState.open.selected > -1 ? cState.open.selected + step * (forward ? 1 : -1) : forward ? 0 : length - 1;\n if (selected < 0)\n selected = by == \"page\" ? 0 : length - 1;\n else if (selected >= length)\n selected = by == \"page\" ? length - 1 : 0;\n view.dispatch({ effects: setSelectedEffect.of(selected) });\n return true;\n };\n}\n/**\nAccept the current completion.\n*/\nconst acceptCompletion = (view) => {\n let cState = view.state.field(completionState, false);\n if (view.state.readOnly || !cState || !cState.open || cState.open.selected < 0 || cState.open.disabled ||\n Date.now() - cState.open.timestamp < view.state.facet(completionConfig).interactionDelay)\n return false;\n return applyCompletion(view, cState.open.options[cState.open.selected]);\n};\n/**\nExplicitly start autocompletion.\n*/\nconst startCompletion = (view) => {\n let cState = view.state.field(completionState, false);\n if (!cState)\n return false;\n view.dispatch({ effects: startCompletionEffect.of(true) });\n return true;\n};\n/**\nClose the currently active completion.\n*/\nconst closeCompletion = (view) => {\n let cState = view.state.field(completionState, false);\n if (!cState || !cState.active.some(a => a.state != 0 /* State.Inactive */))\n return false;\n view.dispatch({ effects: closeCompletionEffect.of(null) });\n return true;\n};\nclass RunningQuery {\n constructor(active, context) {\n this.active = active;\n this.context = context;\n this.time = Date.now();\n this.updates = [];\n // Note that 'undefined' means 'not done yet', whereas 'null' means\n // 'query returned null'.\n this.done = undefined;\n }\n}\nconst MaxUpdateCount = 50, MinAbortTime = 1000;\nconst completionPlugin = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.debounceUpdate = -1;\n this.running = [];\n this.debounceAccept = -1;\n this.pendingStart = false;\n this.composing = 0 /* CompositionState.None */;\n for (let active of view.state.field(completionState).active)\n if (active.isPending)\n this.startQuery(active);\n }\n update(update) {\n let cState = update.state.field(completionState);\n let conf = update.state.facet(completionConfig);\n if (!update.selectionSet && !update.docChanged && update.startState.field(completionState) == cState)\n return;\n let doesReset = update.transactions.some(tr => {\n let type = getUpdateType(tr, conf);\n return (type & 8 /* UpdateType.Reset */) || (tr.selection || tr.docChanged) && !(type & 3 /* UpdateType.SimpleInteraction */);\n });\n for (let i = 0; i < this.running.length; i++) {\n let query = this.running[i];\n if (doesReset ||\n query.context.abortOnDocChange && update.docChanged ||\n query.updates.length + update.transactions.length > MaxUpdateCount && Date.now() - query.time > MinAbortTime) {\n for (let handler of query.context.abortListeners) {\n try {\n handler();\n }\n catch (e) {\n logException(this.view.state, e);\n }\n }\n query.context.abortListeners = null;\n this.running.splice(i--, 1);\n }\n else {\n query.updates.push(...update.transactions);\n }\n }\n if (this.debounceUpdate > -1)\n clearTimeout(this.debounceUpdate);\n if (update.transactions.some(tr => tr.effects.some(e => e.is(startCompletionEffect))))\n this.pendingStart = true;\n let delay = this.pendingStart ? 50 : conf.activateOnTypingDelay;\n this.debounceUpdate = cState.active.some(a => a.isPending && !this.running.some(q => q.active.source == a.source))\n ? setTimeout(() => this.startUpdate(), delay) : -1;\n if (this.composing != 0 /* CompositionState.None */)\n for (let tr of update.transactions) {\n if (tr.isUserEvent(\"input.type\"))\n this.composing = 2 /* CompositionState.Changed */;\n else if (this.composing == 2 /* CompositionState.Changed */ && tr.selection)\n this.composing = 3 /* CompositionState.ChangedAndMoved */;\n }\n }\n startUpdate() {\n this.debounceUpdate = -1;\n this.pendingStart = false;\n let { state } = this.view, cState = state.field(completionState);\n for (let active of cState.active) {\n if (active.isPending && !this.running.some(r => r.active.source == active.source))\n this.startQuery(active);\n }\n if (this.running.length && cState.open && cState.open.disabled)\n this.debounceAccept = setTimeout(() => this.accept(), this.view.state.facet(completionConfig).updateSyncTime);\n }\n startQuery(active) {\n let { state } = this.view, pos = cur(state);\n let context = new CompletionContext(state, pos, active.explicit, this.view);\n let pending = new RunningQuery(active, context);\n this.running.push(pending);\n Promise.resolve(active.source(context)).then(result => {\n if (!pending.context.aborted) {\n pending.done = result || null;\n this.scheduleAccept();\n }\n }, err => {\n this.view.dispatch({ effects: closeCompletionEffect.of(null) });\n logException(this.view.state, err);\n });\n }\n scheduleAccept() {\n if (this.running.every(q => q.done !== undefined))\n this.accept();\n else if (this.debounceAccept < 0)\n this.debounceAccept = setTimeout(() => this.accept(), this.view.state.facet(completionConfig).updateSyncTime);\n }\n // For each finished query in this.running, try to create a result\n // or, if appropriate, restart the query.\n accept() {\n var _a;\n if (this.debounceAccept > -1)\n clearTimeout(this.debounceAccept);\n this.debounceAccept = -1;\n let updated = [];\n let conf = this.view.state.facet(completionConfig), cState = this.view.state.field(completionState);\n for (let i = 0; i < this.running.length; i++) {\n let query = this.running[i];\n if (query.done === undefined)\n continue;\n this.running.splice(i--, 1);\n if (query.done) {\n let pos = cur(query.updates.length ? query.updates[0].startState : this.view.state);\n let limit = Math.min(pos, query.done.from + (query.active.explicit ? 0 : 1));\n let active = new ActiveResult(query.active.source, query.active.explicit, limit, query.done, query.done.from, (_a = query.done.to) !== null && _a !== void 0 ? _a : pos);\n // Replay the transactions that happened since the start of\n // the request and see if that preserves the result\n for (let tr of query.updates)\n active = active.update(tr, conf);\n if (active.hasResult()) {\n updated.push(active);\n continue;\n }\n }\n let current = cState.active.find(a => a.source == query.active.source);\n if (current && current.isPending) {\n if (query.done == null) {\n // Explicitly failed. Should clear the pending status if it\n // hasn't been re-set in the meantime.\n let active = new ActiveSource(query.active.source, 0 /* State.Inactive */);\n for (let tr of query.updates)\n active = active.update(tr, conf);\n if (!active.isPending)\n updated.push(active);\n }\n else {\n // Cleared by subsequent transactions. Restart.\n this.startQuery(current);\n }\n }\n }\n if (updated.length || cState.open && cState.open.disabled)\n this.view.dispatch({ effects: setActiveEffect.of(updated) });\n }\n}, {\n eventHandlers: {\n blur(event) {\n let state = this.view.state.field(completionState, false);\n if (state && state.tooltip && this.view.state.facet(completionConfig).closeOnBlur) {\n let dialog = state.open && getTooltip(this.view, state.open.tooltip);\n if (!dialog || !dialog.dom.contains(event.relatedTarget))\n setTimeout(() => this.view.dispatch({ effects: closeCompletionEffect.of(null) }), 10);\n }\n },\n compositionstart() {\n this.composing = 1 /* CompositionState.Started */;\n },\n compositionend() {\n if (this.composing == 3 /* CompositionState.ChangedAndMoved */) {\n // Safari fires compositionend events synchronously, possibly\n // from inside an update, so dispatch asynchronously to avoid reentrancy\n setTimeout(() => this.view.dispatch({ effects: startCompletionEffect.of(false) }), 20);\n }\n this.composing = 0 /* CompositionState.None */;\n }\n }\n});\nconst windows = typeof navigator == \"object\" && /*@__PURE__*//Win/.test(navigator.platform);\nconst commitCharacters = /*@__PURE__*/Prec.highest(/*@__PURE__*/EditorView.domEventHandlers({\n keydown(event, view) {\n let field = view.state.field(completionState, false);\n if (!field || !field.open || field.open.disabled || field.open.selected < 0 ||\n event.key.length > 1 || event.ctrlKey && !(windows && event.altKey) || event.metaKey)\n return false;\n let option = field.open.options[field.open.selected];\n let result = field.active.find(a => a.source == option.source);\n let commitChars = option.completion.commitCharacters || result.result.commitCharacters;\n if (commitChars && commitChars.indexOf(event.key) > -1)\n applyCompletion(view, option);\n return false;\n }\n}));\n\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-tooltip.cm-tooltip-autocomplete\": {\n \"& > ul\": {\n fontFamily: \"monospace\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden auto\",\n maxWidth_fallback: \"700px\",\n maxWidth: \"min(700px, 95vw)\",\n minWidth: \"250px\",\n maxHeight: \"10em\",\n height: \"100%\",\n listStyle: \"none\",\n margin: 0,\n padding: 0,\n \"& > li, & > completion-section\": {\n padding: \"1px 3px\",\n lineHeight: 1.2\n },\n \"& > li\": {\n overflowX: \"hidden\",\n textOverflow: \"ellipsis\",\n cursor: \"pointer\"\n },\n \"& > completion-section\": {\n display: \"list-item\",\n borderBottom: \"1px solid silver\",\n paddingLeft: \"0.5em\",\n opacity: 0.7\n }\n }\n },\n \"&light .cm-tooltip-autocomplete ul li[aria-selected]\": {\n background: \"#17c\",\n color: \"white\",\n },\n \"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]\": {\n background: \"#777\",\n },\n \"&dark .cm-tooltip-autocomplete ul li[aria-selected]\": {\n background: \"#347\",\n color: \"white\",\n },\n \"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]\": {\n background: \"#444\",\n },\n \".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after\": {\n content: '\"···\"',\n opacity: 0.5,\n display: \"block\",\n textAlign: \"center\"\n },\n \".cm-tooltip.cm-completionInfo\": {\n position: \"absolute\",\n padding: \"3px 9px\",\n width: \"max-content\",\n maxWidth: `${400 /* Info.Width */}px`,\n boxSizing: \"border-box\",\n whiteSpace: \"pre-line\"\n },\n \".cm-completionInfo.cm-completionInfo-left\": { right: \"100%\" },\n \".cm-completionInfo.cm-completionInfo-right\": { left: \"100%\" },\n \".cm-completionInfo.cm-completionInfo-left-narrow\": { right: `${30 /* Info.Margin */}px` },\n \".cm-completionInfo.cm-completionInfo-right-narrow\": { left: `${30 /* Info.Margin */}px` },\n \"&light .cm-snippetField\": { backgroundColor: \"#00000022\" },\n \"&dark .cm-snippetField\": { backgroundColor: \"#ffffff22\" },\n \".cm-snippetFieldPosition\": {\n verticalAlign: \"text-top\",\n width: 0,\n height: \"1.15em\",\n display: \"inline-block\",\n margin: \"0 -0.7px -.7em\",\n borderLeft: \"1.4px dotted #888\"\n },\n \".cm-completionMatchedText\": {\n textDecoration: \"underline\"\n },\n \".cm-completionDetail\": {\n marginLeft: \"0.5em\",\n fontStyle: \"italic\"\n },\n \".cm-completionIcon\": {\n fontSize: \"90%\",\n width: \".8em\",\n display: \"inline-block\",\n textAlign: \"center\",\n paddingRight: \".6em\",\n opacity: \"0.6\",\n boxSizing: \"content-box\"\n },\n \".cm-completionIcon-function, .cm-completionIcon-method\": {\n \"&:after\": { content: \"'ƒ'\" }\n },\n \".cm-completionIcon-class\": {\n \"&:after\": { content: \"'○'\" }\n },\n \".cm-completionIcon-interface\": {\n \"&:after\": { content: \"'◌'\" }\n },\n \".cm-completionIcon-variable\": {\n \"&:after\": { content: \"'𝑥'\" }\n },\n \".cm-completionIcon-constant\": {\n \"&:after\": { content: \"'𝐶'\" }\n },\n \".cm-completionIcon-type\": {\n \"&:after\": { content: \"'𝑡'\" }\n },\n \".cm-completionIcon-enum\": {\n \"&:after\": { content: \"'∪'\" }\n },\n \".cm-completionIcon-property\": {\n \"&:after\": { content: \"'□'\" }\n },\n \".cm-completionIcon-keyword\": {\n \"&:after\": { content: \"'🔑\\uFE0E'\" } // Disable emoji rendering\n },\n \".cm-completionIcon-namespace\": {\n \"&:after\": { content: \"'▢'\" }\n },\n \".cm-completionIcon-text\": {\n \"&:after\": { content: \"'abc'\", fontSize: \"50%\", verticalAlign: \"middle\" }\n }\n});\n\nclass FieldPos {\n constructor(field, line, from, to) {\n this.field = field;\n this.line = line;\n this.from = from;\n this.to = to;\n }\n}\nclass FieldRange {\n constructor(field, from, to) {\n this.field = field;\n this.from = from;\n this.to = to;\n }\n map(changes) {\n let from = changes.mapPos(this.from, -1, MapMode.TrackDel);\n let to = changes.mapPos(this.to, 1, MapMode.TrackDel);\n return from == null || to == null ? null : new FieldRange(this.field, from, to);\n }\n}\nclass Snippet {\n constructor(lines, fieldPositions) {\n this.lines = lines;\n this.fieldPositions = fieldPositions;\n }\n instantiate(state, pos) {\n let text = [], lineStart = [pos];\n let lineObj = state.doc.lineAt(pos), baseIndent = /^\\s*/.exec(lineObj.text)[0];\n for (let line of this.lines) {\n if (text.length) {\n let indent = baseIndent, tabs = /^\\t*/.exec(line)[0].length;\n for (let i = 0; i < tabs; i++)\n indent += state.facet(indentUnit);\n lineStart.push(pos + indent.length - tabs);\n line = indent + line.slice(tabs);\n }\n text.push(line);\n pos += line.length + 1;\n }\n let ranges = this.fieldPositions.map(pos => new FieldRange(pos.field, lineStart[pos.line] + pos.from, lineStart[pos.line] + pos.to));\n return { text, ranges };\n }\n static parse(template) {\n let fields = [];\n let lines = [], positions = [], m;\n for (let line of template.split(/\\r\\n?|\\n/)) {\n while (m = /[#$]\\{(?:(\\d+)(?::([^}]*))?|((?:\\\\[{}]|[^}])*))\\}/.exec(line)) {\n let seq = m[1] ? +m[1] : null, rawName = m[2] || m[3] || \"\", found = -1;\n let name = rawName.replace(/\\\\[{}]/g, m => m[1]);\n for (let i = 0; i < fields.length; i++) {\n if (seq != null ? fields[i].seq == seq : name ? fields[i].name == name : false)\n found = i;\n }\n if (found < 0) {\n let i = 0;\n while (i < fields.length && (seq == null || (fields[i].seq != null && fields[i].seq < seq)))\n i++;\n fields.splice(i, 0, { seq, name });\n found = i;\n for (let pos of positions)\n if (pos.field >= found)\n pos.field++;\n }\n positions.push(new FieldPos(found, lines.length, m.index, m.index + name.length));\n line = line.slice(0, m.index) + rawName + line.slice(m.index + m[0].length);\n }\n line = line.replace(/\\\\([{}])/g, (_, brace, index) => {\n for (let pos of positions)\n if (pos.line == lines.length && pos.from > index) {\n pos.from--;\n pos.to--;\n }\n return brace;\n });\n lines.push(line);\n }\n return new Snippet(lines, positions);\n }\n}\nlet fieldMarker = /*@__PURE__*/Decoration.widget({ widget: /*@__PURE__*/new class extends WidgetType {\n toDOM() {\n let span = document.createElement(\"span\");\n span.className = \"cm-snippetFieldPosition\";\n return span;\n }\n ignoreEvent() { return false; }\n } });\nlet fieldRange = /*@__PURE__*/Decoration.mark({ class: \"cm-snippetField\" });\nclass ActiveSnippet {\n constructor(ranges, active) {\n this.ranges = ranges;\n this.active = active;\n this.deco = Decoration.set(ranges.map(r => (r.from == r.to ? fieldMarker : fieldRange).range(r.from, r.to)));\n }\n map(changes) {\n let ranges = [];\n for (let r of this.ranges) {\n let mapped = r.map(changes);\n if (!mapped)\n return null;\n ranges.push(mapped);\n }\n return new ActiveSnippet(ranges, this.active);\n }\n selectionInsideField(sel) {\n return sel.ranges.every(range => this.ranges.some(r => r.field == this.active && r.from <= range.from && r.to >= range.to));\n }\n}\nconst setActive = /*@__PURE__*/StateEffect.define({\n map(value, changes) { return value && value.map(changes); }\n});\nconst moveToField = /*@__PURE__*/StateEffect.define();\nconst snippetState = /*@__PURE__*/StateField.define({\n create() { return null; },\n update(value, tr) {\n for (let effect of tr.effects) {\n if (effect.is(setActive))\n return effect.value;\n if (effect.is(moveToField) && value)\n return new ActiveSnippet(value.ranges, effect.value);\n }\n if (value && tr.docChanged)\n value = value.map(tr.changes);\n if (value && tr.selection && !value.selectionInsideField(tr.selection))\n value = null;\n return value;\n },\n provide: f => EditorView.decorations.from(f, val => val ? val.deco : Decoration.none)\n});\nfunction fieldSelection(ranges, field) {\n return EditorSelection.create(ranges.filter(r => r.field == field).map(r => EditorSelection.range(r.from, r.to)));\n}\n/**\nConvert a snippet template to a function that can\n[apply](https://codemirror.net/6/docs/ref/#autocomplete.Completion.apply) it. Snippets are written\nusing syntax like this:\n\n \"for (let ${index} = 0; ${index} < ${end}; ${index}++) {\\n\\t${}\\n}\"\n\nEach `${}` placeholder (you may also use `#{}`) indicates a field\nthat the user can fill in. Its name, if any, will be the default\ncontent for the field.\n\nWhen the snippet is activated by calling the returned function,\nthe code is inserted at the given position. Newlines in the\ntemplate are indented by the indentation of the start line, plus\none [indent unit](https://codemirror.net/6/docs/ref/#language.indentUnit) per tab character after\nthe newline.\n\nOn activation, (all instances of) the first field are selected.\nThe user can move between fields with Tab and Shift-Tab as long as\nthe fields are active. Moving to the last field or moving the\ncursor out of the current field deactivates the fields.\n\nThe order of fields defaults to textual order, but you can add\nnumbers to placeholders (`${1}` or `${1:defaultText}`) to provide\na custom order.\n\nTo include a literal `{` or `}` in your template, put a backslash\nin front of it. This will be removed and the brace will not be\ninterpreted as indicating a placeholder.\n*/\nfunction snippet(template) {\n let snippet = Snippet.parse(template);\n return (editor, completion, from, to) => {\n let { text, ranges } = snippet.instantiate(editor.state, from);\n let { main } = editor.state.selection;\n let spec = {\n changes: { from, to: to == main.from ? main.to : to, insert: Text.of(text) },\n scrollIntoView: true,\n annotations: completion ? [pickedCompletion.of(completion), Transaction.userEvent.of(\"input.complete\")] : undefined\n };\n if (ranges.length)\n spec.selection = fieldSelection(ranges, 0);\n if (ranges.some(r => r.field > 0)) {\n let active = new ActiveSnippet(ranges, 0);\n let effects = spec.effects = [setActive.of(active)];\n if (editor.state.field(snippetState, false) === undefined)\n effects.push(StateEffect.appendConfig.of([snippetState, addSnippetKeymap, snippetPointerHandler, baseTheme]));\n }\n editor.dispatch(editor.state.update(spec));\n };\n}\nfunction moveField(dir) {\n return ({ state, dispatch }) => {\n let active = state.field(snippetState, false);\n if (!active || dir < 0 && active.active == 0)\n return false;\n let next = active.active + dir, last = dir > 0 && !active.ranges.some(r => r.field == next + dir);\n dispatch(state.update({\n selection: fieldSelection(active.ranges, next),\n effects: setActive.of(last ? null : new ActiveSnippet(active.ranges, next)),\n scrollIntoView: true\n }));\n return true;\n };\n}\n/**\nA command that clears the active snippet, if any.\n*/\nconst clearSnippet = ({ state, dispatch }) => {\n let active = state.field(snippetState, false);\n if (!active)\n return false;\n dispatch(state.update({ effects: setActive.of(null) }));\n return true;\n};\n/**\nMove to the next snippet field, if available.\n*/\nconst nextSnippetField = /*@__PURE__*/moveField(1);\n/**\nMove to the previous snippet field, if available.\n*/\nconst prevSnippetField = /*@__PURE__*/moveField(-1);\n/**\nCheck if there is an active snippet with a next field for\n`nextSnippetField` to move to.\n*/\nfunction hasNextSnippetField(state) {\n let active = state.field(snippetState, false);\n return !!(active && active.ranges.some(r => r.field == active.active + 1));\n}\n/**\nReturns true if there is an active snippet and a previous field\nfor `prevSnippetField` to move to.\n*/\nfunction hasPrevSnippetField(state) {\n let active = state.field(snippetState, false);\n return !!(active && active.active > 0);\n}\nconst defaultSnippetKeymap = [\n { key: \"Tab\", run: nextSnippetField, shift: prevSnippetField },\n { key: \"Escape\", run: clearSnippet }\n];\n/**\nA facet that can be used to configure the key bindings used by\nsnippets. The default binds Tab to\n[`nextSnippetField`](https://codemirror.net/6/docs/ref/#autocomplete.nextSnippetField), Shift-Tab to\n[`prevSnippetField`](https://codemirror.net/6/docs/ref/#autocomplete.prevSnippetField), and Escape\nto [`clearSnippet`](https://codemirror.net/6/docs/ref/#autocomplete.clearSnippet).\n*/\nconst snippetKeymap = /*@__PURE__*/Facet.define({\n combine(maps) { return maps.length ? maps[0] : defaultSnippetKeymap; }\n});\nconst addSnippetKeymap = /*@__PURE__*/Prec.highest(/*@__PURE__*/keymap.compute([snippetKeymap], state => state.facet(snippetKeymap)));\n/**\nCreate a completion from a snippet. Returns an object with the\nproperties from `completion`, plus an `apply` function that\napplies the snippet.\n*/\nfunction snippetCompletion(template, completion) {\n return Object.assign(Object.assign({}, completion), { apply: snippet(template) });\n}\nconst snippetPointerHandler = /*@__PURE__*/EditorView.domEventHandlers({\n mousedown(event, view) {\n let active = view.state.field(snippetState, false), pos;\n if (!active || (pos = view.posAtCoords({ x: event.clientX, y: event.clientY })) == null)\n return false;\n let match = active.ranges.find(r => r.from <= pos && r.to >= pos);\n if (!match || match.field == active.active)\n return false;\n view.dispatch({\n selection: fieldSelection(active.ranges, match.field),\n effects: setActive.of(active.ranges.some(r => r.field > match.field)\n ? new ActiveSnippet(active.ranges, match.field) : null),\n scrollIntoView: true\n });\n return true;\n }\n});\n\nfunction wordRE(wordChars) {\n let escaped = wordChars.replace(/[\\]\\-\\\\]/g, \"\\\\$&\");\n try {\n return new RegExp(`[\\\\p{Alphabetic}\\\\p{Number}_${escaped}]+`, \"ug\");\n }\n catch (_a) {\n return new RegExp(`[\\w${escaped}]`, \"g\");\n }\n}\nfunction mapRE(re, f) {\n return new RegExp(f(re.source), re.unicode ? \"u\" : \"\");\n}\nconst wordCaches = /*@__PURE__*/Object.create(null);\nfunction wordCache(wordChars) {\n return wordCaches[wordChars] || (wordCaches[wordChars] = new WeakMap);\n}\nfunction storeWords(doc, wordRE, result, seen, ignoreAt) {\n for (let lines = doc.iterLines(), pos = 0; !lines.next().done;) {\n let { value } = lines, m;\n wordRE.lastIndex = 0;\n while (m = wordRE.exec(value)) {\n if (!seen[m[0]] && pos + m.index != ignoreAt) {\n result.push({ type: \"text\", label: m[0] });\n seen[m[0]] = true;\n if (result.length >= 2000 /* C.MaxList */)\n return;\n }\n }\n pos += value.length + 1;\n }\n}\nfunction collectWords(doc, cache, wordRE, to, ignoreAt) {\n let big = doc.length >= 1000 /* C.MinCacheLen */;\n let cached = big && cache.get(doc);\n if (cached)\n return cached;\n let result = [], seen = Object.create(null);\n if (doc.children) {\n let pos = 0;\n for (let ch of doc.children) {\n if (ch.length >= 1000 /* C.MinCacheLen */) {\n for (let c of collectWords(ch, cache, wordRE, to - pos, ignoreAt - pos)) {\n if (!seen[c.label]) {\n seen[c.label] = true;\n result.push(c);\n }\n }\n }\n else {\n storeWords(ch, wordRE, result, seen, ignoreAt - pos);\n }\n pos += ch.length + 1;\n }\n }\n else {\n storeWords(doc, wordRE, result, seen, ignoreAt);\n }\n if (big && result.length < 2000 /* C.MaxList */)\n cache.set(doc, result);\n return result;\n}\n/**\nA completion source that will scan the document for words (using a\n[character categorizer](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer)), and\nreturn those as completions.\n*/\nconst completeAnyWord = context => {\n let wordChars = context.state.languageDataAt(\"wordChars\", context.pos).join(\"\");\n let re = wordRE(wordChars);\n let token = context.matchBefore(mapRE(re, s => s + \"$\"));\n if (!token && !context.explicit)\n return null;\n let from = token ? token.from : context.pos;\n let options = collectWords(context.state.doc, wordCache(wordChars), re, 50000 /* C.Range */, from);\n return { from, options, validFor: mapRE(re, s => \"^\" + s) };\n};\n\nconst defaults = {\n brackets: [\"(\", \"[\", \"{\", \"'\", '\"'],\n before: \")]}:;>\",\n stringPrefixes: []\n};\nconst closeBracketEffect = /*@__PURE__*/StateEffect.define({\n map(value, mapping) {\n let mapped = mapping.mapPos(value, -1, MapMode.TrackAfter);\n return mapped == null ? undefined : mapped;\n }\n});\nconst closedBracket = /*@__PURE__*/new class extends RangeValue {\n};\nclosedBracket.startSide = 1;\nclosedBracket.endSide = -1;\nconst bracketState = /*@__PURE__*/StateField.define({\n create() { return RangeSet.empty; },\n update(value, tr) {\n value = value.map(tr.changes);\n if (tr.selection) {\n let line = tr.state.doc.lineAt(tr.selection.main.head);\n value = value.update({ filter: from => from >= line.from && from <= line.to });\n }\n for (let effect of tr.effects)\n if (effect.is(closeBracketEffect))\n value = value.update({ add: [closedBracket.range(effect.value, effect.value + 1)] });\n return value;\n }\n});\n/**\nExtension to enable bracket-closing behavior. When a closeable\nbracket is typed, its closing bracket is immediately inserted\nafter the cursor. When closing a bracket directly in front of a\nclosing bracket inserted by the extension, the cursor moves over\nthat bracket.\n*/\nfunction closeBrackets() {\n return [inputHandler, bracketState];\n}\nconst definedClosing = \"()[]{}<>«»»«[]{}\";\nfunction closing(ch) {\n for (let i = 0; i < definedClosing.length; i += 2)\n if (definedClosing.charCodeAt(i) == ch)\n return definedClosing.charAt(i + 1);\n return fromCodePoint(ch < 128 ? ch : ch + 1);\n}\nfunction config(state, pos) {\n return state.languageDataAt(\"closeBrackets\", pos)[0] || defaults;\n}\nconst android = typeof navigator == \"object\" && /*@__PURE__*//Android\\b/.test(navigator.userAgent);\nconst inputHandler = /*@__PURE__*/EditorView.inputHandler.of((view, from, to, insert) => {\n if ((android ? view.composing : view.compositionStarted) || view.state.readOnly)\n return false;\n let sel = view.state.selection.main;\n if (insert.length > 2 || insert.length == 2 && codePointSize(codePointAt(insert, 0)) == 1 ||\n from != sel.from || to != sel.to)\n return false;\n let tr = insertBracket(view.state, insert);\n if (!tr)\n return false;\n view.dispatch(tr);\n return true;\n});\n/**\nCommand that implements deleting a pair of matching brackets when\nthe cursor is between them.\n*/\nconst deleteBracketPair = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let conf = config(state, state.selection.main.head);\n let tokens = conf.brackets || defaults.brackets;\n let dont = null, changes = state.changeByRange(range => {\n if (range.empty) {\n let before = prevChar(state.doc, range.head);\n for (let token of tokens) {\n if (token == before && nextChar(state.doc, range.head) == closing(codePointAt(token, 0)))\n return { changes: { from: range.head - token.length, to: range.head + token.length },\n range: EditorSelection.cursor(range.head - token.length) };\n }\n }\n return { range: dont = range };\n });\n if (!dont)\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"delete.backward\" }));\n return !dont;\n};\n/**\nClose-brackets related key bindings. Binds Backspace to\n[`deleteBracketPair`](https://codemirror.net/6/docs/ref/#autocomplete.deleteBracketPair).\n*/\nconst closeBracketsKeymap = [\n { key: \"Backspace\", run: deleteBracketPair }\n];\n/**\nImplements the extension's behavior on text insertion. If the\ngiven string counts as a bracket in the language around the\nselection, and replacing the selection with it requires custom\nbehavior (inserting a closing version or skipping past a\npreviously-closed bracket), this function returns a transaction\nrepresenting that custom behavior. (You only need this if you want\nto programmatically insert brackets—the\n[`closeBrackets`](https://codemirror.net/6/docs/ref/#autocomplete.closeBrackets) extension will\ntake care of running this for user input.)\n*/\nfunction insertBracket(state, bracket) {\n let conf = config(state, state.selection.main.head);\n let tokens = conf.brackets || defaults.brackets;\n for (let tok of tokens) {\n let closed = closing(codePointAt(tok, 0));\n if (bracket == tok)\n return closed == tok ? handleSame(state, tok, tokens.indexOf(tok + tok + tok) > -1, conf)\n : handleOpen(state, tok, closed, conf.before || defaults.before);\n if (bracket == closed && closedBracketAt(state, state.selection.main.from))\n return handleClose(state, tok, closed);\n }\n return null;\n}\nfunction closedBracketAt(state, pos) {\n let found = false;\n state.field(bracketState).between(0, state.doc.length, from => {\n if (from == pos)\n found = true;\n });\n return found;\n}\nfunction nextChar(doc, pos) {\n let next = doc.sliceString(pos, pos + 2);\n return next.slice(0, codePointSize(codePointAt(next, 0)));\n}\nfunction prevChar(doc, pos) {\n let prev = doc.sliceString(pos - 2, pos);\n return codePointSize(codePointAt(prev, 0)) == prev.length ? prev : prev.slice(1);\n}\nfunction handleOpen(state, open, close, closeBefore) {\n let dont = null, changes = state.changeByRange(range => {\n if (!range.empty)\n return { changes: [{ insert: open, from: range.from }, { insert: close, from: range.to }],\n effects: closeBracketEffect.of(range.to + open.length),\n range: EditorSelection.range(range.anchor + open.length, range.head + open.length) };\n let next = nextChar(state.doc, range.head);\n if (!next || /\\s/.test(next) || closeBefore.indexOf(next) > -1)\n return { changes: { insert: open + close, from: range.head },\n effects: closeBracketEffect.of(range.head + open.length),\n range: EditorSelection.cursor(range.head + open.length) };\n return { range: dont = range };\n });\n return dont ? null : state.update(changes, {\n scrollIntoView: true,\n userEvent: \"input.type\"\n });\n}\nfunction handleClose(state, _open, close) {\n let dont = null, changes = state.changeByRange(range => {\n if (range.empty && nextChar(state.doc, range.head) == close)\n return { changes: { from: range.head, to: range.head + close.length, insert: close },\n range: EditorSelection.cursor(range.head + close.length) };\n return dont = { range };\n });\n return dont ? null : state.update(changes, {\n scrollIntoView: true,\n userEvent: \"input.type\"\n });\n}\n// Handles cases where the open and close token are the same, and\n// possibly triple quotes (as in `\"\"\"abc\"\"\"`-style quoting).\nfunction handleSame(state, token, allowTriple, config) {\n let stringPrefixes = config.stringPrefixes || defaults.stringPrefixes;\n let dont = null, changes = state.changeByRange(range => {\n if (!range.empty)\n return { changes: [{ insert: token, from: range.from }, { insert: token, from: range.to }],\n effects: closeBracketEffect.of(range.to + token.length),\n range: EditorSelection.range(range.anchor + token.length, range.head + token.length) };\n let pos = range.head, next = nextChar(state.doc, pos), start;\n if (next == token) {\n if (nodeStart(state, pos)) {\n return { changes: { insert: token + token, from: pos },\n effects: closeBracketEffect.of(pos + token.length),\n range: EditorSelection.cursor(pos + token.length) };\n }\n else if (closedBracketAt(state, pos)) {\n let isTriple = allowTriple && state.sliceDoc(pos, pos + token.length * 3) == token + token + token;\n let content = isTriple ? token + token + token : token;\n return { changes: { from: pos, to: pos + content.length, insert: content },\n range: EditorSelection.cursor(pos + content.length) };\n }\n }\n else if (allowTriple && state.sliceDoc(pos - 2 * token.length, pos) == token + token &&\n (start = canStartStringAt(state, pos - 2 * token.length, stringPrefixes)) > -1 &&\n nodeStart(state, start)) {\n return { changes: { insert: token + token + token + token, from: pos },\n effects: closeBracketEffect.of(pos + token.length),\n range: EditorSelection.cursor(pos + token.length) };\n }\n else if (state.charCategorizer(pos)(next) != CharCategory.Word) {\n if (canStartStringAt(state, pos, stringPrefixes) > -1 && !probablyInString(state, pos, token, stringPrefixes))\n return { changes: { insert: token + token, from: pos },\n effects: closeBracketEffect.of(pos + token.length),\n range: EditorSelection.cursor(pos + token.length) };\n }\n return { range: dont = range };\n });\n return dont ? null : state.update(changes, {\n scrollIntoView: true,\n userEvent: \"input.type\"\n });\n}\nfunction nodeStart(state, pos) {\n let tree = syntaxTree(state).resolveInner(pos + 1);\n return tree.parent && tree.from == pos;\n}\nfunction probablyInString(state, pos, quoteToken, prefixes) {\n let node = syntaxTree(state).resolveInner(pos, -1);\n let maxPrefix = prefixes.reduce((m, p) => Math.max(m, p.length), 0);\n for (let i = 0; i < 5; i++) {\n let start = state.sliceDoc(node.from, Math.min(node.to, node.from + quoteToken.length + maxPrefix));\n let quotePos = start.indexOf(quoteToken);\n if (!quotePos || quotePos > -1 && prefixes.indexOf(start.slice(0, quotePos)) > -1) {\n let first = node.firstChild;\n while (first && first.from == node.from && first.to - first.from > quoteToken.length + quotePos) {\n if (state.sliceDoc(first.to - quoteToken.length, first.to) == quoteToken)\n return false;\n first = first.firstChild;\n }\n return true;\n }\n let parent = node.to == pos && node.parent;\n if (!parent)\n break;\n node = parent;\n }\n return false;\n}\nfunction canStartStringAt(state, pos, prefixes) {\n let charCat = state.charCategorizer(pos);\n if (charCat(state.sliceDoc(pos - 1, pos)) != CharCategory.Word)\n return pos;\n for (let prefix of prefixes) {\n let start = pos - prefix.length;\n if (state.sliceDoc(start, pos) == prefix && charCat(state.sliceDoc(start - 1, start)) != CharCategory.Word)\n return start;\n }\n return -1;\n}\n\n/**\nReturns an extension that enables autocompletion.\n*/\nfunction autocompletion(config = {}) {\n return [\n commitCharacters,\n completionState,\n completionConfig.of(config),\n completionPlugin,\n completionKeymapExt,\n baseTheme\n ];\n}\n/**\nBasic keybindings for autocompletion.\n\n - Ctrl-Space (and Alt-\\` on macOS): [`startCompletion`](https://codemirror.net/6/docs/ref/#autocomplete.startCompletion)\n - Escape: [`closeCompletion`](https://codemirror.net/6/docs/ref/#autocomplete.closeCompletion)\n - ArrowDown: [`moveCompletionSelection`](https://codemirror.net/6/docs/ref/#autocomplete.moveCompletionSelection)`(true)`\n - ArrowUp: [`moveCompletionSelection`](https://codemirror.net/6/docs/ref/#autocomplete.moveCompletionSelection)`(false)`\n - PageDown: [`moveCompletionSelection`](https://codemirror.net/6/docs/ref/#autocomplete.moveCompletionSelection)`(true, \"page\")`\n - PageDown: [`moveCompletionSelection`](https://codemirror.net/6/docs/ref/#autocomplete.moveCompletionSelection)`(true, \"page\")`\n - Enter: [`acceptCompletion`](https://codemirror.net/6/docs/ref/#autocomplete.acceptCompletion)\n*/\nconst completionKeymap = [\n { key: \"Ctrl-Space\", run: startCompletion },\n { mac: \"Alt-`\", run: startCompletion },\n { key: \"Escape\", run: closeCompletion },\n { key: \"ArrowDown\", run: /*@__PURE__*/moveCompletionSelection(true) },\n { key: \"ArrowUp\", run: /*@__PURE__*/moveCompletionSelection(false) },\n { key: \"PageDown\", run: /*@__PURE__*/moveCompletionSelection(true, \"page\") },\n { key: \"PageUp\", run: /*@__PURE__*/moveCompletionSelection(false, \"page\") },\n { key: \"Enter\", run: acceptCompletion }\n];\nconst completionKeymapExt = /*@__PURE__*/Prec.highest(/*@__PURE__*/keymap.computeN([completionConfig], state => state.facet(completionConfig).defaultKeymap ? [completionKeymap] : []));\n/**\nGet the current completion status. When completions are available,\nthis will return `\"active\"`. When completions are pending (in the\nprocess of being queried), this returns `\"pending\"`. Otherwise, it\nreturns `null`.\n*/\nfunction completionStatus(state) {\n let cState = state.field(completionState, false);\n return cState && cState.active.some(a => a.isPending) ? \"pending\"\n : cState && cState.active.some(a => a.state != 0 /* State.Inactive */) ? \"active\" : null;\n}\nconst completionArrayCache = /*@__PURE__*/new WeakMap;\n/**\nReturns the available completions as an array.\n*/\nfunction currentCompletions(state) {\n var _a;\n let open = (_a = state.field(completionState, false)) === null || _a === void 0 ? void 0 : _a.open;\n if (!open || open.disabled)\n return [];\n let completions = completionArrayCache.get(open.options);\n if (!completions)\n completionArrayCache.set(open.options, completions = open.options.map(o => o.completion));\n return completions;\n}\n/**\nReturn the currently selected completion, if any.\n*/\nfunction selectedCompletion(state) {\n var _a;\n let open = (_a = state.field(completionState, false)) === null || _a === void 0 ? void 0 : _a.open;\n return open && !open.disabled && open.selected >= 0 ? open.options[open.selected].completion : null;\n}\n/**\nReturns the currently selected position in the active completion\nlist, or null if no completions are active.\n*/\nfunction selectedCompletionIndex(state) {\n var _a;\n let open = (_a = state.field(completionState, false)) === null || _a === void 0 ? void 0 : _a.open;\n return open && !open.disabled && open.selected >= 0 ? open.selected : null;\n}\n/**\nCreate an effect that can be attached to a transaction to change\nthe currently selected completion.\n*/\nfunction setSelectedCompletion(index) {\n return setSelectedEffect.of(index);\n}\n\nexport { CompletionContext, acceptCompletion, autocompletion, clearSnippet, closeBrackets, closeBracketsKeymap, closeCompletion, completeAnyWord, completeFromList, completionKeymap, completionStatus, currentCompletions, deleteBracketPair, hasNextSnippetField, hasPrevSnippetField, ifIn, ifNotIn, insertBracket, insertCompletionText, moveCompletionSelection, nextSnippetField, pickedCompletion, prevSnippetField, selectedCompletion, selectedCompletionIndex, setSelectedCompletion, snippet, snippetCompletion, snippetKeymap, startCompletion };\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}