@drjoshcsimmons/scl 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +73 -0
  3. package/dist/components/ui/accordion/accordion.d.ts +8 -0
  4. package/dist/components/ui/accordion/accordion.d.ts.map +1 -0
  5. package/dist/components/ui/accordion/index.d.ts +2 -0
  6. package/dist/components/ui/accordion/index.d.ts.map +1 -0
  7. package/dist/components/ui/alert/alert.d.ts +9 -0
  8. package/dist/components/ui/alert/alert.d.ts.map +1 -0
  9. package/dist/components/ui/alert/index.d.ts +2 -0
  10. package/dist/components/ui/alert/index.d.ts.map +1 -0
  11. package/dist/components/ui/alert-dialog/alert-dialog.d.ts +21 -0
  12. package/dist/components/ui/alert-dialog/alert-dialog.d.ts.map +1 -0
  13. package/dist/components/ui/alert-dialog/index.d.ts +2 -0
  14. package/dist/components/ui/alert-dialog/index.d.ts.map +1 -0
  15. package/dist/components/ui/avatar/avatar.d.ts +7 -0
  16. package/dist/components/ui/avatar/avatar.d.ts.map +1 -0
  17. package/dist/components/ui/avatar/index.d.ts +2 -0
  18. package/dist/components/ui/avatar/index.d.ts.map +1 -0
  19. package/dist/components/ui/badge/badge.d.ts +10 -0
  20. package/dist/components/ui/badge/badge.d.ts.map +1 -0
  21. package/dist/components/ui/badge/index.d.ts +2 -0
  22. package/dist/components/ui/badge/index.d.ts.map +1 -0
  23. package/dist/components/ui/button/button.d.ts +12 -0
  24. package/dist/components/ui/button/button.d.ts.map +1 -0
  25. package/dist/components/ui/button/index.d.ts +2 -0
  26. package/dist/components/ui/button/index.d.ts.map +1 -0
  27. package/dist/components/ui/card/card.d.ts +9 -0
  28. package/dist/components/ui/card/card.d.ts.map +1 -0
  29. package/dist/components/ui/card/index.d.ts +2 -0
  30. package/dist/components/ui/card/index.d.ts.map +1 -0
  31. package/dist/components/ui/checkbox/checkbox.d.ts +5 -0
  32. package/dist/components/ui/checkbox/checkbox.d.ts.map +1 -0
  33. package/dist/components/ui/checkbox/index.d.ts +2 -0
  34. package/dist/components/ui/checkbox/index.d.ts.map +1 -0
  35. package/dist/components/ui/collapsible/collapsible.d.ts +6 -0
  36. package/dist/components/ui/collapsible/collapsible.d.ts.map +1 -0
  37. package/dist/components/ui/collapsible/index.d.ts +2 -0
  38. package/dist/components/ui/collapsible/index.d.ts.map +1 -0
  39. package/dist/components/ui/dialog/dialog.d.ts +20 -0
  40. package/dist/components/ui/dialog/dialog.d.ts.map +1 -0
  41. package/dist/components/ui/dialog/index.d.ts +2 -0
  42. package/dist/components/ui/dialog/index.d.ts.map +1 -0
  43. package/dist/components/ui/dithered-image/dithered-image.d.ts +17 -0
  44. package/dist/components/ui/dithered-image/dithered-image.d.ts.map +1 -0
  45. package/dist/components/ui/dithered-image/index.d.ts +3 -0
  46. package/dist/components/ui/dithered-image/index.d.ts.map +1 -0
  47. package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts +28 -0
  48. package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts.map +1 -0
  49. package/dist/components/ui/dropdown-menu/index.d.ts +2 -0
  50. package/dist/components/ui/dropdown-menu/index.d.ts.map +1 -0
  51. package/dist/components/ui/input/index.d.ts +2 -0
  52. package/dist/components/ui/input/index.d.ts.map +1 -0
  53. package/dist/components/ui/input/input.d.ts +5 -0
  54. package/dist/components/ui/input/input.d.ts.map +1 -0
  55. package/dist/components/ui/label/index.d.ts +2 -0
  56. package/dist/components/ui/label/index.d.ts.map +1 -0
  57. package/dist/components/ui/label/label.d.ts +6 -0
  58. package/dist/components/ui/label/label.d.ts.map +1 -0
  59. package/dist/components/ui/popover/index.d.ts +2 -0
  60. package/dist/components/ui/popover/index.d.ts.map +1 -0
  61. package/dist/components/ui/popover/popover.d.ts +8 -0
  62. package/dist/components/ui/popover/popover.d.ts.map +1 -0
  63. package/dist/components/ui/progress/index.d.ts +2 -0
  64. package/dist/components/ui/progress/index.d.ts.map +1 -0
  65. package/dist/components/ui/progress/progress.d.ts +19 -0
  66. package/dist/components/ui/progress/progress.d.ts.map +1 -0
  67. package/dist/components/ui/radio-group/index.d.ts +2 -0
  68. package/dist/components/ui/radio-group/index.d.ts.map +1 -0
  69. package/dist/components/ui/radio-group/radio-group.d.ts +6 -0
  70. package/dist/components/ui/radio-group/radio-group.d.ts.map +1 -0
  71. package/dist/components/ui/scroll-area/index.d.ts +2 -0
  72. package/dist/components/ui/scroll-area/index.d.ts.map +1 -0
  73. package/dist/components/ui/scroll-area/scroll-area.d.ts +6 -0
  74. package/dist/components/ui/scroll-area/scroll-area.d.ts.map +1 -0
  75. package/dist/components/ui/select/index.d.ts +2 -0
  76. package/dist/components/ui/select/index.d.ts.map +1 -0
  77. package/dist/components/ui/select/select.d.ts +14 -0
  78. package/dist/components/ui/select/select.d.ts.map +1 -0
  79. package/dist/components/ui/separator/index.d.ts +2 -0
  80. package/dist/components/ui/separator/index.d.ts.map +1 -0
  81. package/dist/components/ui/separator/separator.d.ts +5 -0
  82. package/dist/components/ui/separator/separator.d.ts.map +1 -0
  83. package/dist/components/ui/sheet/index.d.ts +2 -0
  84. package/dist/components/ui/sheet/index.d.ts.map +1 -0
  85. package/dist/components/ui/sheet/sheet.d.ts +26 -0
  86. package/dist/components/ui/sheet/sheet.d.ts.map +1 -0
  87. package/dist/components/ui/skeleton/index.d.ts +2 -0
  88. package/dist/components/ui/skeleton/index.d.ts.map +1 -0
  89. package/dist/components/ui/skeleton/skeleton.d.ts +3 -0
  90. package/dist/components/ui/skeleton/skeleton.d.ts.map +1 -0
  91. package/dist/components/ui/slider/index.d.ts +2 -0
  92. package/dist/components/ui/slider/index.d.ts.map +1 -0
  93. package/dist/components/ui/slider/slider.d.ts +5 -0
  94. package/dist/components/ui/slider/slider.d.ts.map +1 -0
  95. package/dist/components/ui/statusline/index.d.ts +2 -0
  96. package/dist/components/ui/statusline/index.d.ts.map +1 -0
  97. package/dist/components/ui/statusline/statusline.d.ts +40 -0
  98. package/dist/components/ui/statusline/statusline.d.ts.map +1 -0
  99. package/dist/components/ui/switch/index.d.ts +2 -0
  100. package/dist/components/ui/switch/index.d.ts.map +1 -0
  101. package/dist/components/ui/switch/switch.d.ts +5 -0
  102. package/dist/components/ui/switch/switch.d.ts.map +1 -0
  103. package/dist/components/ui/table/index.d.ts +2 -0
  104. package/dist/components/ui/table/index.d.ts.map +1 -0
  105. package/dist/components/ui/table/table.d.ts +11 -0
  106. package/dist/components/ui/table/table.d.ts.map +1 -0
  107. package/dist/components/ui/tabs/index.d.ts +2 -0
  108. package/dist/components/ui/tabs/index.d.ts.map +1 -0
  109. package/dist/components/ui/tabs/tabs.d.ts +8 -0
  110. package/dist/components/ui/tabs/tabs.d.ts.map +1 -0
  111. package/dist/components/ui/terminal-textarea/index.d.ts +2 -0
  112. package/dist/components/ui/terminal-textarea/index.d.ts.map +1 -0
  113. package/dist/components/ui/terminal-textarea/terminal-textarea.d.ts +27 -0
  114. package/dist/components/ui/terminal-textarea/terminal-textarea.d.ts.map +1 -0
  115. package/dist/components/ui/textarea/index.d.ts +2 -0
  116. package/dist/components/ui/textarea/index.d.ts.map +1 -0
  117. package/dist/components/ui/textarea/textarea.d.ts +5 -0
  118. package/dist/components/ui/textarea/textarea.d.ts.map +1 -0
  119. package/dist/components/ui/toggle/index.d.ts +2 -0
  120. package/dist/components/ui/toggle/index.d.ts.map +1 -0
  121. package/dist/components/ui/toggle/toggle.d.ts +13 -0
  122. package/dist/components/ui/toggle/toggle.d.ts.map +1 -0
  123. package/dist/components/ui/tooltip/index.d.ts +2 -0
  124. package/dist/components/ui/tooltip/index.d.ts.map +1 -0
  125. package/dist/components/ui/tooltip/tooltip.d.ts +11 -0
  126. package/dist/components/ui/tooltip/tooltip.d.ts.map +1 -0
  127. package/dist/index.d.ts +34 -0
  128. package/dist/index.d.ts.map +1 -0
  129. package/dist/index.js +165 -0
  130. package/dist/index10.js +61 -0
  131. package/dist/index100.js +32 -0
  132. package/dist/index101.js +17 -0
  133. package/dist/index102.js +137 -0
  134. package/dist/index103.js +52 -0
  135. package/dist/index104.js +11 -0
  136. package/dist/index105.js +6 -0
  137. package/dist/index106.js +183 -0
  138. package/dist/index107.js +652 -0
  139. package/dist/index108.js +109 -0
  140. package/dist/index109.js +93 -0
  141. package/dist/index11.js +27 -0
  142. package/dist/index110.js +69 -0
  143. package/dist/index111.js +161 -0
  144. package/dist/index112.js +399 -0
  145. package/dist/index113.js +1682 -0
  146. package/dist/index114.js +280 -0
  147. package/dist/index115.js +134 -0
  148. package/dist/index116.js +34 -0
  149. package/dist/index117.js +1613 -0
  150. package/dist/index118.js +300 -0
  151. package/dist/index119.js +637 -0
  152. package/dist/index12.js +7 -0
  153. package/dist/index120.js +146 -0
  154. package/dist/index121.js +23 -0
  155. package/dist/index122.js +11 -0
  156. package/dist/index123.js +40 -0
  157. package/dist/index124.js +20 -0
  158. package/dist/index125.js +8 -0
  159. package/dist/index126.js +14 -0
  160. package/dist/index127.js +208 -0
  161. package/dist/index128.js +24 -0
  162. package/dist/index129.js +402 -0
  163. package/dist/index13.js +100 -0
  164. package/dist/index130.js +1308 -0
  165. package/dist/index131.js +620 -0
  166. package/dist/index132.js +4 -0
  167. package/dist/index133.js +55 -0
  168. package/dist/index134.js +67 -0
  169. package/dist/index135.js +27 -0
  170. package/dist/index136.js +31 -0
  171. package/dist/index137.js +7 -0
  172. package/dist/index138.js +4 -0
  173. package/dist/index139.js +4 -0
  174. package/dist/index14.js +226 -0
  175. package/dist/index140.js +7 -0
  176. package/dist/index141.js +5 -0
  177. package/dist/index142.js +26 -0
  178. package/dist/index143.js +115 -0
  179. package/dist/index144.js +18 -0
  180. package/dist/index145.js +527 -0
  181. package/dist/index146.js +130 -0
  182. package/dist/index147.js +136 -0
  183. package/dist/index148.js +67 -0
  184. package/dist/index149.js +71 -0
  185. package/dist/index15.js +146 -0
  186. package/dist/index150.js +11 -0
  187. package/dist/index151.js +16 -0
  188. package/dist/index152.js +68 -0
  189. package/dist/index153.js +6 -0
  190. package/dist/index154.js +25 -0
  191. package/dist/index155.js +25 -0
  192. package/dist/index156.js +15 -0
  193. package/dist/index157.js +30 -0
  194. package/dist/index158.js +7 -0
  195. package/dist/index16.js +21 -0
  196. package/dist/index17.js +19 -0
  197. package/dist/index18.js +24 -0
  198. package/dist/index19.js +58 -0
  199. package/dist/index2.js +8 -0
  200. package/dist/index20.js +31 -0
  201. package/dist/index21.js +38 -0
  202. package/dist/index22.js +123 -0
  203. package/dist/index23.js +24 -0
  204. package/dist/index24.js +72 -0
  205. package/dist/index25.js +17 -0
  206. package/dist/index26.js +34 -0
  207. package/dist/index27.js +81 -0
  208. package/dist/index28.js +27 -0
  209. package/dist/index29.js +90 -0
  210. package/dist/index3.js +22 -0
  211. package/dist/index30.js +46 -0
  212. package/dist/index31.js +234 -0
  213. package/dist/index32.js +20 -0
  214. package/dist/index33.js +37 -0
  215. package/dist/index34.js +25 -0
  216. package/dist/index35.js +105 -0
  217. package/dist/index36.js +68 -0
  218. package/dist/index37.js +51 -0
  219. package/dist/index38.js +102 -0
  220. package/dist/index39.js +13 -0
  221. package/dist/index4.js +46 -0
  222. package/dist/index40.js +17 -0
  223. package/dist/index41.js +2265 -0
  224. package/dist/index42.js +35 -0
  225. package/dist/index43.js +20 -0
  226. package/dist/index44.js +239 -0
  227. package/dist/index45.js +13 -0
  228. package/dist/index46.js +75 -0
  229. package/dist/index47.js +251 -0
  230. package/dist/index48.js +11 -0
  231. package/dist/index49.js +338 -0
  232. package/dist/index5.js +51 -0
  233. package/dist/index50.js +62 -0
  234. package/dist/index51.js +243 -0
  235. package/dist/index52.js +862 -0
  236. package/dist/index53.js +11 -0
  237. package/dist/index54.js +120 -0
  238. package/dist/index55.js +227 -0
  239. package/dist/index56.js +13 -0
  240. package/dist/index57.js +13 -0
  241. package/dist/index58.js +238 -0
  242. package/dist/index59.js +262 -0
  243. package/dist/index6.js +51 -0
  244. package/dist/index60.js +14 -0
  245. package/dist/index61.js +24 -0
  246. package/dist/index62.js +532 -0
  247. package/dist/index63.js +6157 -0
  248. package/dist/index64.js +2635 -0
  249. package/dist/index65.js +300 -0
  250. package/dist/index66.js +674 -0
  251. package/dist/index67.js +832 -0
  252. package/dist/index68.js +27 -0
  253. package/dist/index69.js +330 -0
  254. package/dist/index7.js +42 -0
  255. package/dist/index70.js +4901 -0
  256. package/dist/index71.js +831 -0
  257. package/dist/index72.js +1260 -0
  258. package/dist/index73.js +536 -0
  259. package/dist/index74.js +127 -0
  260. package/dist/index75.js +163 -0
  261. package/dist/index76.js +33 -0
  262. package/dist/index77.js +437 -0
  263. package/dist/index78.js +132 -0
  264. package/dist/index79.js +83 -0
  265. package/dist/index8.js +31 -0
  266. package/dist/index80.js +70 -0
  267. package/dist/index81.js +48 -0
  268. package/dist/index82.js +29 -0
  269. package/dist/index83.js +9 -0
  270. package/dist/index84.js +54 -0
  271. package/dist/index85.js +36 -0
  272. package/dist/index86.js +13 -0
  273. package/dist/index87.js +10 -0
  274. package/dist/index88.js +32 -0
  275. package/dist/index89.js +57 -0
  276. package/dist/index9.js +54 -0
  277. package/dist/index90.js +13 -0
  278. package/dist/index91.js +6 -0
  279. package/dist/index92.js +15 -0
  280. package/dist/index93.js +8 -0
  281. package/dist/index94.js +27 -0
  282. package/dist/index95.js +71 -0
  283. package/dist/index96.js +127 -0
  284. package/dist/index97.js +221 -0
  285. package/dist/index98.js +16 -0
  286. package/dist/index99.js +56 -0
  287. package/dist/lib/utils.d.ts +14 -0
  288. package/dist/lib/utils.d.ts.map +1 -0
  289. package/dist/tokens/animations.d.ts +174 -0
  290. package/dist/tokens/animations.d.ts.map +1 -0
  291. package/dist/tokens/colors.d.ts +92 -0
  292. package/dist/tokens/colors.d.ts.map +1 -0
  293. package/dist/tokens/index.d.ts +403 -0
  294. package/dist/tokens/index.d.ts.map +1 -0
  295. package/dist/tokens/shadows.d.ts +15 -0
  296. package/dist/tokens/shadows.d.ts.map +1 -0
  297. package/dist/tokens/spacing.d.ts +55 -0
  298. package/dist/tokens/spacing.d.ts.map +1 -0
  299. package/dist/tokens/typography.d.ts +80 -0
  300. package/dist/tokens/typography.d.ts.map +1 -0
  301. package/package.json +128 -0
@@ -0,0 +1,831 @@
1
+ import { EditorSelection as a, countColumn as K, Text as le, StateField as Je, findClusterBreak as M, Facet as ce, Annotation as se, Transaction as U, StateEffect as ie, ChangeSet as Ge, ChangeDesc as Fe, combineConfig as ze } from "./index64.js";
2
+ import { EditorView as E, Direction as qe } from "./index63.js";
3
+ import { IndentContext as ue, getIndentation as fe, indentString as R, syntaxTree as $, matchBrackets as x, getIndentUnit as G, indentUnit as He } from "./index72.js";
4
+ import { NodeProp as F } from "./index113.js";
5
+ const Ke = (e) => {
6
+ let { state: t } = e, r = t.doc.lineAt(t.selection.main.from), n = Q(e.state, r.from);
7
+ return n.line ? $e(e) : n.block ? Qe(e) : !1;
8
+ };
9
+ function W(e, t) {
10
+ return ({ state: r, dispatch: n }) => {
11
+ if (r.readOnly)
12
+ return !1;
13
+ let l = e(t, r);
14
+ return l ? (n(r.update(l)), !0) : !1;
15
+ };
16
+ }
17
+ const $e = /* @__PURE__ */ W(
18
+ Ze,
19
+ 0
20
+ /* CommentOption.Toggle */
21
+ ), We = /* @__PURE__ */ W(
22
+ ae,
23
+ 0
24
+ /* CommentOption.Toggle */
25
+ ), Qe = /* @__PURE__ */ W(
26
+ (e, t) => ae(e, t, Ye(t)),
27
+ 0
28
+ /* CommentOption.Toggle */
29
+ );
30
+ function Q(e, t) {
31
+ let r = e.languageDataAt("commentTokens", t, 1);
32
+ return r.length ? r[0] : {};
33
+ }
34
+ const L = 50;
35
+ function Xe(e, { open: t, close: r }, n, l) {
36
+ let o = e.sliceDoc(n - L, n), c = e.sliceDoc(l, l + L), s = /\s*$/.exec(o)[0].length, i = /^\s*/.exec(c)[0].length, f = o.length - s;
37
+ if (o.slice(f - t.length, f) == t && c.slice(i, i + r.length) == r)
38
+ return {
39
+ open: { pos: n - s, margin: s && 1 },
40
+ close: { pos: l + i, margin: i && 1 }
41
+ };
42
+ let u, h;
43
+ l - n <= 2 * L ? u = h = e.sliceDoc(n, l) : (u = e.sliceDoc(n, n + L), h = e.sliceDoc(l - L, l));
44
+ let p = /^\s*/.exec(u)[0].length, T = /\s*$/.exec(h)[0].length, C = h.length - T - r.length;
45
+ return u.slice(p, p + t.length) == t && h.slice(C, C + r.length) == r ? {
46
+ open: {
47
+ pos: n + p + t.length,
48
+ margin: /\s/.test(u.charAt(p + t.length)) ? 1 : 0
49
+ },
50
+ close: {
51
+ pos: l - T - r.length,
52
+ margin: /\s/.test(h.charAt(C - 1)) ? 1 : 0
53
+ }
54
+ } : null;
55
+ }
56
+ function Ye(e) {
57
+ let t = [];
58
+ for (let r of e.selection.ranges) {
59
+ let n = e.doc.lineAt(r.from), l = r.to <= n.to ? n : e.doc.lineAt(r.to);
60
+ l.from > n.from && l.from == r.to && (l = r.to == n.to + 1 ? n : e.doc.lineAt(r.to - 1));
61
+ let o = t.length - 1;
62
+ o >= 0 && t[o].to > n.from ? t[o].to = l.to : t.push({ from: n.from + /^\s*/.exec(n.text)[0].length, to: l.to });
63
+ }
64
+ return t;
65
+ }
66
+ function ae(e, t, r = t.selection.ranges) {
67
+ let n = r.map((o) => Q(t, o.from).block);
68
+ if (!n.every((o) => o))
69
+ return null;
70
+ let l = r.map((o, c) => Xe(t, n[c], o.from, o.to));
71
+ if (e != 2 && !l.every((o) => o))
72
+ return { changes: t.changes(r.map((o, c) => l[c] ? [] : [{ from: o.from, insert: n[c].open + " " }, { from: o.to, insert: " " + n[c].close }])) };
73
+ if (e != 1 && l.some((o) => o)) {
74
+ let o = [];
75
+ for (let c = 0, s; c < l.length; c++)
76
+ if (s = l[c]) {
77
+ let i = n[c], { open: f, close: u } = s;
78
+ o.push({ from: f.pos - i.open.length, to: f.pos + f.margin }, { from: u.pos - u.margin, to: u.pos + i.close.length });
79
+ }
80
+ return { changes: o };
81
+ }
82
+ return null;
83
+ }
84
+ function Ze(e, t, r = t.selection.ranges) {
85
+ let n = [], l = -1;
86
+ for (let { from: o, to: c } of r) {
87
+ let s = n.length, i = 1e9, f = Q(t, o).line;
88
+ if (f) {
89
+ for (let u = o; u <= c; ) {
90
+ let h = t.doc.lineAt(u);
91
+ if (h.from > l && (o == c || c > h.from)) {
92
+ l = h.from;
93
+ let p = /^\s*/.exec(h.text)[0].length, T = p == h.length, C = h.text.slice(p, p + f.length) == f ? p : -1;
94
+ p < h.text.length && p < i && (i = p), n.push({ line: h, comment: C, token: f, indent: p, empty: T, single: !1 });
95
+ }
96
+ u = h.to + 1;
97
+ }
98
+ if (i < 1e9)
99
+ for (let u = s; u < n.length; u++)
100
+ n[u].indent < n[u].line.text.length && (n[u].indent = i);
101
+ n.length == s + 1 && (n[s].single = !0);
102
+ }
103
+ }
104
+ if (e != 2 && n.some((o) => o.comment < 0 && (!o.empty || o.single))) {
105
+ let o = [];
106
+ for (let { line: s, token: i, indent: f, empty: u, single: h } of n)
107
+ (h || !u) && o.push({ from: s.from + f, insert: i + " " });
108
+ let c = t.changes(o);
109
+ return { changes: c, selection: t.selection.map(c, 1) };
110
+ } else if (e != 1 && n.some((o) => o.comment >= 0)) {
111
+ let o = [];
112
+ for (let { line: c, comment: s, token: i } of n)
113
+ if (s >= 0) {
114
+ let f = c.from + s, u = f + i.length;
115
+ c.text[u - c.from] == " " && u++, o.push({ from: f, to: u });
116
+ }
117
+ return { changes: o };
118
+ }
119
+ return null;
120
+ }
121
+ const z = /* @__PURE__ */ se.define(), je = /* @__PURE__ */ se.define(), we = /* @__PURE__ */ ce.define(), _e = /* @__PURE__ */ ce.define({
122
+ combine(e) {
123
+ return ze(e, {
124
+ minDepth: 100,
125
+ newGroupDelay: 500,
126
+ joinToEvent: (t, r) => r
127
+ }, {
128
+ minDepth: Math.max,
129
+ newGroupDelay: Math.min,
130
+ joinToEvent: (t, r) => (n, l) => t(n, l) || r(n, l)
131
+ });
132
+ }
133
+ }), et = /* @__PURE__ */ Je.define({
134
+ create() {
135
+ return B.empty;
136
+ },
137
+ update(e, t) {
138
+ let r = t.state.facet(_e), n = t.annotation(z);
139
+ if (n) {
140
+ let i = m.fromTransaction(t, n.selection), f = n.side, u = f == 0 ? e.undone : e.done;
141
+ return i ? u = I(u, u.length, r.minDepth, i) : u = de(u, t.startState.selection), new B(f == 0 ? n.rest : u, f == 0 ? u : n.rest);
142
+ }
143
+ let l = t.annotation(je);
144
+ if ((l == "full" || l == "before") && (e = e.isolate()), t.annotation(U.addToHistory) === !1)
145
+ return t.changes.empty ? e : e.addMapping(t.changes.desc);
146
+ let o = m.fromTransaction(t), c = t.annotation(U.time), s = t.annotation(U.userEvent);
147
+ return o ? e = e.addChanges(o, c, s, r, t) : t.selection && (e = e.addSelection(t.startState.selection, c, s, r.newGroupDelay)), (l == "full" || l == "after") && (e = e.isolate()), e;
148
+ },
149
+ toJSON(e) {
150
+ return { done: e.done.map((t) => t.toJSON()), undone: e.undone.map((t) => t.toJSON()) };
151
+ },
152
+ fromJSON(e) {
153
+ return new B(e.done.map(m.fromJSON), e.undone.map(m.fromJSON));
154
+ }
155
+ });
156
+ function v(e, t) {
157
+ return function({ state: r, dispatch: n }) {
158
+ if (!t && r.readOnly)
159
+ return !1;
160
+ let l = r.field(et, !1);
161
+ if (!l)
162
+ return !1;
163
+ let o = l.pop(e, r, t);
164
+ return o ? (n(o), !0) : !1;
165
+ };
166
+ }
167
+ const tt = /* @__PURE__ */ v(0, !1), Z = /* @__PURE__ */ v(1, !1), nt = /* @__PURE__ */ v(0, !0), rt = /* @__PURE__ */ v(1, !0);
168
+ class m {
169
+ constructor(t, r, n, l, o) {
170
+ this.changes = t, this.effects = r, this.mapped = n, this.startSelection = l, this.selectionsAfter = o;
171
+ }
172
+ setSelAfter(t) {
173
+ return new m(this.changes, this.effects, this.mapped, this.startSelection, t);
174
+ }
175
+ toJSON() {
176
+ var t, r, n;
177
+ return {
178
+ changes: (t = this.changes) === null || t === void 0 ? void 0 : t.toJSON(),
179
+ mapped: (r = this.mapped) === null || r === void 0 ? void 0 : r.toJSON(),
180
+ startSelection: (n = this.startSelection) === null || n === void 0 ? void 0 : n.toJSON(),
181
+ selectionsAfter: this.selectionsAfter.map((l) => l.toJSON())
182
+ };
183
+ }
184
+ static fromJSON(t) {
185
+ return new m(t.changes && Ge.fromJSON(t.changes), [], t.mapped && Fe.fromJSON(t.mapped), t.startSelection && a.fromJSON(t.startSelection), t.selectionsAfter.map(a.fromJSON));
186
+ }
187
+ // This does not check `addToHistory` and such, it assumes the
188
+ // transaction needs to be converted to an item. Returns null when
189
+ // there are no changes or effects in the transaction.
190
+ static fromTransaction(t, r) {
191
+ let n = g;
192
+ for (let l of t.startState.facet(we)) {
193
+ let o = l(t);
194
+ o.length && (n = n.concat(o));
195
+ }
196
+ return !n.length && t.changes.empty ? null : new m(t.changes.invert(t.startState.doc), n, void 0, r || t.startState.selection, g);
197
+ }
198
+ static selection(t) {
199
+ return new m(void 0, g, void 0, void 0, t);
200
+ }
201
+ }
202
+ function I(e, t, r, n) {
203
+ let l = t + 1 > r + 20 ? t - r - 1 : 0, o = e.slice(l, t);
204
+ return o.push(n), o;
205
+ }
206
+ function ot(e, t) {
207
+ let r = [], n = !1;
208
+ return e.iterChangedRanges((l, o) => r.push(l, o)), t.iterChangedRanges((l, o, c, s) => {
209
+ for (let i = 0; i < r.length; ) {
210
+ let f = r[i++], u = r[i++];
211
+ s >= f && c <= u && (n = !0);
212
+ }
213
+ }), n;
214
+ }
215
+ function lt(e, t) {
216
+ return e.ranges.length == t.ranges.length && e.ranges.filter((r, n) => r.empty != t.ranges[n].empty).length === 0;
217
+ }
218
+ function he(e, t) {
219
+ return e.length ? t.length ? e.concat(t) : e : t;
220
+ }
221
+ const g = [], ct = 200;
222
+ function de(e, t) {
223
+ if (e.length) {
224
+ let r = e[e.length - 1], n = r.selectionsAfter.slice(Math.max(0, r.selectionsAfter.length - ct));
225
+ return n.length && n[n.length - 1].eq(t) ? e : (n.push(t), I(e, e.length - 1, 1e9, r.setSelAfter(n)));
226
+ } else
227
+ return [m.selection([t])];
228
+ }
229
+ function st(e) {
230
+ let t = e[e.length - 1], r = e.slice();
231
+ return r[e.length - 1] = t.setSelAfter(t.selectionsAfter.slice(0, t.selectionsAfter.length - 1)), r;
232
+ }
233
+ function J(e, t) {
234
+ if (!e.length)
235
+ return e;
236
+ let r = e.length, n = g;
237
+ for (; r; ) {
238
+ let l = it(e[r - 1], t, n);
239
+ if (l.changes && !l.changes.empty || l.effects.length) {
240
+ let o = e.slice(0, r);
241
+ return o[r - 1] = l, o;
242
+ } else
243
+ t = l.mapped, r--, n = l.selectionsAfter;
244
+ }
245
+ return n.length ? [m.selection(n)] : g;
246
+ }
247
+ function it(e, t, r) {
248
+ let n = he(e.selectionsAfter.length ? e.selectionsAfter.map((s) => s.map(t)) : g, r);
249
+ if (!e.changes)
250
+ return m.selection(n);
251
+ let l = e.changes.map(t), o = t.mapDesc(e.changes, !0), c = e.mapped ? e.mapped.composeDesc(o) : o;
252
+ return new m(l, ie.mapEffects(e.effects, t), c, e.startSelection.map(o), n);
253
+ }
254
+ const ut = /^(input\.type|delete)($|\.)/;
255
+ class B {
256
+ constructor(t, r, n = 0, l = void 0) {
257
+ this.done = t, this.undone = r, this.prevTime = n, this.prevUserEvent = l;
258
+ }
259
+ isolate() {
260
+ return this.prevTime ? new B(this.done, this.undone) : this;
261
+ }
262
+ addChanges(t, r, n, l, o) {
263
+ let c = this.done, s = c[c.length - 1];
264
+ return s && s.changes && !s.changes.empty && t.changes && (!n || ut.test(n)) && (!s.selectionsAfter.length && r - this.prevTime < l.newGroupDelay && l.joinToEvent(o, ot(s.changes, t.changes)) || // For compose (but not compose.start) events, always join with previous event
265
+ n == "input.type.compose") ? c = I(c, c.length - 1, l.minDepth, new m(t.changes.compose(s.changes), he(ie.mapEffects(t.effects, s.changes), s.effects), s.mapped, s.startSelection, g)) : c = I(c, c.length, l.minDepth, t), new B(c, g, r, n);
266
+ }
267
+ addSelection(t, r, n, l) {
268
+ let o = this.done.length ? this.done[this.done.length - 1].selectionsAfter : g;
269
+ return o.length > 0 && r - this.prevTime < l && n == this.prevUserEvent && n && /^select($|\.)/.test(n) && lt(o[o.length - 1], t) ? this : new B(de(this.done, t), this.undone, r, n);
270
+ }
271
+ addMapping(t) {
272
+ return new B(J(this.done, t), J(this.undone, t), this.prevTime, this.prevUserEvent);
273
+ }
274
+ pop(t, r, n) {
275
+ let l = t == 0 ? this.done : this.undone;
276
+ if (l.length == 0)
277
+ return null;
278
+ let o = l[l.length - 1], c = o.selectionsAfter[0] || r.selection;
279
+ if (n && o.selectionsAfter.length)
280
+ return r.update({
281
+ selection: o.selectionsAfter[o.selectionsAfter.length - 1],
282
+ annotations: z.of({ side: t, rest: st(l), selection: c }),
283
+ userEvent: t == 0 ? "select.undo" : "select.redo",
284
+ scrollIntoView: !0
285
+ });
286
+ if (o.changes) {
287
+ let s = l.length == 1 ? g : l.slice(0, l.length - 1);
288
+ return o.mapped && (s = J(s, o.mapped)), r.update({
289
+ changes: o.changes,
290
+ selection: o.startSelection,
291
+ effects: o.effects,
292
+ annotations: z.of({ side: t, rest: s, selection: c }),
293
+ filter: !1,
294
+ userEvent: t == 0 ? "undo" : "redo",
295
+ scrollIntoView: !0
296
+ });
297
+ } else
298
+ return null;
299
+ }
300
+ }
301
+ B.empty = /* @__PURE__ */ new B(g, g);
302
+ const un = [
303
+ { key: "Mod-z", run: tt, preventDefault: !0 },
304
+ { key: "Mod-y", mac: "Mod-Shift-z", run: Z, preventDefault: !0 },
305
+ { linux: "Ctrl-Shift-z", run: Z, preventDefault: !0 },
306
+ { key: "Mod-u", run: nt, preventDefault: !0 },
307
+ { key: "Alt-u", mac: "Mod-Shift-u", run: rt, preventDefault: !0 }
308
+ ];
309
+ function D(e, t) {
310
+ return a.create(e.ranges.map(t), e.mainIndex);
311
+ }
312
+ function k(e, t) {
313
+ return e.update({ selection: t, scrollIntoView: !0, userEvent: "select" });
314
+ }
315
+ function A({ state: e, dispatch: t }, r) {
316
+ let n = D(e.selection, r);
317
+ return n.eq(e.selection, !0) ? !1 : (t(k(e, n)), !0);
318
+ }
319
+ function V(e, t) {
320
+ return a.cursor(t ? e.to : e.from);
321
+ }
322
+ function X(e, t) {
323
+ return A(e, (r) => r.empty ? e.moveByChar(r, t) : V(r, t));
324
+ }
325
+ function d(e) {
326
+ return e.textDirectionAt(e.state.selection.main.head) == qe.LTR;
327
+ }
328
+ const me = (e) => X(e, !d(e)), pe = (e) => X(e, d(e)), fn = (e) => X(e, !1);
329
+ function ge(e, t) {
330
+ return A(e, (r) => r.empty ? e.moveByGroup(r, t) : V(r, t));
331
+ }
332
+ const ft = (e) => ge(e, !d(e)), at = (e) => ge(e, d(e));
333
+ function ht(e, t, r) {
334
+ if (t.type.prop(r))
335
+ return !0;
336
+ let n = t.to - t.from;
337
+ return n && (n > 2 || /[^\s,.;:]/.test(e.sliceDoc(t.from, t.to))) || t.firstChild;
338
+ }
339
+ function N(e, t, r) {
340
+ let n = $(e).resolveInner(t.head), l = r ? F.closedBy : F.openedBy;
341
+ for (let i = t.head; ; ) {
342
+ let f = r ? n.childAfter(i) : n.childBefore(i);
343
+ if (!f)
344
+ break;
345
+ ht(e, f, l) ? n = f : i = r ? f.to : f.from;
346
+ }
347
+ let o = n.type.prop(l), c, s;
348
+ return o && (c = r ? x(e, n.from, 1) : x(e, n.to, -1)) && c.matched ? s = r ? c.end.to : c.end.from : s = r ? n.to : n.from, a.cursor(s, r ? -1 : 1);
349
+ }
350
+ const dt = (e) => A(e, (t) => N(e.state, t, !d(e))), mt = (e) => A(e, (t) => N(e.state, t, d(e)));
351
+ function ye(e, t) {
352
+ return A(e, (r) => {
353
+ if (!r.empty)
354
+ return V(r, t);
355
+ let n = e.moveVertically(r, t);
356
+ return n.head != r.head ? n : e.moveToLineBoundary(r, t);
357
+ });
358
+ }
359
+ const ke = (e) => ye(e, !1), Ae = (e) => ye(e, !0);
360
+ function Be(e) {
361
+ let t = e.scrollDOM.clientHeight < e.scrollDOM.scrollHeight - 2, r = 0, n = 0, l;
362
+ if (t) {
363
+ for (let o of e.state.facet(E.scrollMargins)) {
364
+ let c = o(e);
365
+ c != null && c.top && (r = Math.max(c == null ? void 0 : c.top, r)), c != null && c.bottom && (n = Math.max(c == null ? void 0 : c.bottom, n));
366
+ }
367
+ l = e.scrollDOM.clientHeight - r - n;
368
+ } else
369
+ l = (e.dom.ownerDocument.defaultView || window).innerHeight;
370
+ return {
371
+ marginTop: r,
372
+ marginBottom: n,
373
+ selfScroll: t,
374
+ height: Math.max(e.defaultLineHeight, l - 5)
375
+ };
376
+ }
377
+ function Se(e, t) {
378
+ let r = Be(e), { state: n } = e, l = D(n.selection, (c) => c.empty ? e.moveVertically(c, t, r.height) : V(c, t));
379
+ if (l.eq(n.selection))
380
+ return !1;
381
+ let o;
382
+ if (r.selfScroll) {
383
+ let c = e.coordsAtPos(n.selection.main.head), s = e.scrollDOM.getBoundingClientRect(), i = s.top + r.marginTop, f = s.bottom - r.marginBottom;
384
+ c && c.top > i && c.bottom < f && (o = E.scrollIntoView(l.main.head, { y: "start", yMargin: c.top - i }));
385
+ }
386
+ return e.dispatch(k(n, l), { effects: o }), !0;
387
+ }
388
+ const j = (e) => Se(e, !1), q = (e) => Se(e, !0);
389
+ function S(e, t, r) {
390
+ let n = e.lineBlockAt(t.head), l = e.moveToLineBoundary(t, r);
391
+ if (l.head == t.head && l.head != (r ? n.to : n.from) && (l = e.moveToLineBoundary(t, r, !1)), !r && l.head == n.from && n.length) {
392
+ let o = /^\s*/.exec(e.state.sliceDoc(n.from, Math.min(n.from + 100, n.to)))[0].length;
393
+ o && t.head != n.from + o && (l = a.cursor(n.from + o));
394
+ }
395
+ return l;
396
+ }
397
+ const pt = (e) => A(e, (t) => S(e, t, !0)), gt = (e) => A(e, (t) => S(e, t, !1)), yt = (e) => A(e, (t) => S(e, t, !d(e))), kt = (e) => A(e, (t) => S(e, t, d(e))), At = (e) => A(e, (t) => a.cursor(e.lineBlockAt(t.head).from, 1)), Bt = (e) => A(e, (t) => a.cursor(e.lineBlockAt(t.head).to, -1));
398
+ function St(e, t, r) {
399
+ let n = !1, l = D(e.selection, (o) => {
400
+ let c = x(e, o.head, -1) || x(e, o.head, 1) || o.head > 0 && x(e, o.head - 1, 1) || o.head < e.doc.length && x(e, o.head + 1, -1);
401
+ if (!c || !c.end)
402
+ return o;
403
+ n = !0;
404
+ let s = c.start.from == o.head ? c.end.to : c.end.from;
405
+ return a.cursor(s);
406
+ });
407
+ return n ? (t(k(e, l)), !0) : !1;
408
+ }
409
+ const xt = ({ state: e, dispatch: t }) => St(e, t);
410
+ function y(e, t) {
411
+ let r = D(e.state.selection, (n) => {
412
+ let l = t(n);
413
+ return a.range(n.anchor, l.head, l.goalColumn, l.bidiLevel || void 0);
414
+ });
415
+ return r.eq(e.state.selection) ? !1 : (e.dispatch(k(e.state, r)), !0);
416
+ }
417
+ function xe(e, t) {
418
+ return y(e, (r) => e.moveByChar(r, t));
419
+ }
420
+ const De = (e) => xe(e, !d(e)), Ce = (e) => xe(e, d(e));
421
+ function Le(e, t) {
422
+ return y(e, (r) => e.moveByGroup(r, t));
423
+ }
424
+ const Dt = (e) => Le(e, !d(e)), Ct = (e) => Le(e, d(e)), Lt = (e) => y(e, (t) => N(e.state, t, !d(e))), Mt = (e) => y(e, (t) => N(e.state, t, d(e)));
425
+ function Me(e, t) {
426
+ return y(e, (r) => e.moveVertically(r, t));
427
+ }
428
+ const Ee = (e) => Me(e, !1), Oe = (e) => Me(e, !0);
429
+ function Te(e, t) {
430
+ return y(e, (r) => e.moveVertically(r, t, Be(e).height));
431
+ }
432
+ const w = (e) => Te(e, !1), _ = (e) => Te(e, !0), Et = (e) => y(e, (t) => S(e, t, !0)), Ot = (e) => y(e, (t) => S(e, t, !1)), Tt = (e) => y(e, (t) => S(e, t, !d(e))), bt = (e) => y(e, (t) => S(e, t, d(e))), Rt = (e) => y(e, (t) => a.cursor(e.lineBlockAt(t.head).from)), It = (e) => y(e, (t) => a.cursor(e.lineBlockAt(t.head).to)), ee = ({ state: e, dispatch: t }) => (t(k(e, { anchor: 0 })), !0), te = ({ state: e, dispatch: t }) => (t(k(e, { anchor: e.doc.length })), !0), ne = ({ state: e, dispatch: t }) => (t(k(e, { anchor: e.selection.main.anchor, head: 0 })), !0), re = ({ state: e, dispatch: t }) => (t(k(e, { anchor: e.selection.main.anchor, head: e.doc.length })), !0), vt = ({ state: e, dispatch: t }) => (t(e.update({ selection: { anchor: 0, head: e.doc.length }, userEvent: "select" })), !0), Vt = ({ state: e, dispatch: t }) => {
433
+ let r = P(e).map(({ from: n, to: l }) => a.range(n, Math.min(l + 1, e.doc.length)));
434
+ return t(e.update({ selection: a.create(r), userEvent: "select" })), !0;
435
+ }, Nt = ({ state: e, dispatch: t }) => {
436
+ let r = D(e.selection, (n) => {
437
+ let l = $(e), o = l.resolveStack(n.from, 1);
438
+ if (n.empty) {
439
+ let c = l.resolveStack(n.from, -1);
440
+ c.node.from >= o.node.from && c.node.to <= o.node.to && (o = c);
441
+ }
442
+ for (let c = o; c; c = c.next) {
443
+ let { node: s } = c;
444
+ if ((s.from < n.from && s.to >= n.to || s.to > n.to && s.from <= n.from) && c.next)
445
+ return a.range(s.to, s.from);
446
+ }
447
+ return n;
448
+ });
449
+ return r.eq(e.selection) ? !1 : (t(k(e, r)), !0);
450
+ };
451
+ function be(e, t) {
452
+ let { state: r } = e, n = r.selection, l = r.selection.ranges.slice();
453
+ for (let o of r.selection.ranges) {
454
+ let c = r.doc.lineAt(o.head);
455
+ if (t ? c.to < e.state.doc.length : c.from > 0)
456
+ for (let s = o; ; ) {
457
+ let i = e.moveVertically(s, t);
458
+ if (i.head < c.from || i.head > c.to) {
459
+ l.some((f) => f.head == i.head) || l.push(i);
460
+ break;
461
+ } else {
462
+ if (i.head == s.head)
463
+ break;
464
+ s = i;
465
+ }
466
+ }
467
+ }
468
+ return l.length == n.ranges.length ? !1 : (e.dispatch(k(r, a.create(l, l.length - 1))), !0);
469
+ }
470
+ const Pt = (e) => be(e, !1), Ut = (e) => be(e, !0), Jt = ({ state: e, dispatch: t }) => {
471
+ let r = e.selection, n = null;
472
+ return r.ranges.length > 1 ? n = a.create([r.main]) : r.main.empty || (n = a.create([a.cursor(r.main.head)])), n ? (t(k(e, n)), !0) : !1;
473
+ };
474
+ function O(e, t) {
475
+ if (e.state.readOnly)
476
+ return !1;
477
+ let r = "delete.selection", { state: n } = e, l = n.changeByRange((o) => {
478
+ let { from: c, to: s } = o;
479
+ if (c == s) {
480
+ let i = t(o);
481
+ i < c ? (r = "delete.backward", i = b(e, i, !1)) : i > c && (r = "delete.forward", i = b(e, i, !0)), c = Math.min(c, i), s = Math.max(s, i);
482
+ } else
483
+ c = b(e, c, !1), s = b(e, s, !0);
484
+ return c == s ? { range: o } : { changes: { from: c, to: s }, range: a.cursor(c, c < o.head ? -1 : 1) };
485
+ });
486
+ return l.changes.empty ? !1 : (e.dispatch(n.update(l, {
487
+ scrollIntoView: !0,
488
+ userEvent: r,
489
+ effects: r == "delete.selection" ? E.announce.of(n.phrase("Selection deleted")) : void 0
490
+ })), !0);
491
+ }
492
+ function b(e, t, r) {
493
+ if (e instanceof E)
494
+ for (let n of e.state.facet(E.atomicRanges).map((l) => l(e)))
495
+ n.between(t, t, (l, o) => {
496
+ l < t && o > t && (t = r ? o : l);
497
+ });
498
+ return t;
499
+ }
500
+ const Re = (e, t, r) => O(e, (n) => {
501
+ let l = n.from, { state: o } = e, c = o.doc.lineAt(l), s, i;
502
+ if (r && !t && l > c.from && l < c.from + 200 && !/[^ \t]/.test(s = c.text.slice(0, l - c.from))) {
503
+ if (s[s.length - 1] == " ")
504
+ return l - 1;
505
+ let f = K(s, o.tabSize), u = f % G(o) || G(o);
506
+ for (let h = 0; h < u && s[s.length - 1 - h] == " "; h++)
507
+ l--;
508
+ i = l;
509
+ } else
510
+ i = M(c.text, l - c.from, t, t) + c.from, i == l && c.number != (t ? o.doc.lines : 1) ? i += t ? 1 : -1 : !t && /[\ufe00-\ufe0f]/.test(c.text.slice(i - c.from, l - c.from)) && (i = M(c.text, i - c.from, !1, !1) + c.from);
511
+ return i;
512
+ }), H = (e) => Re(e, !1, !0), Ie = (e) => Re(e, !0, !1), ve = (e, t) => O(e, (r) => {
513
+ let n = r.head, { state: l } = e, o = l.doc.lineAt(n), c = l.charCategorizer(n);
514
+ for (let s = null; ; ) {
515
+ if (n == (t ? o.to : o.from)) {
516
+ n == r.head && o.number != (t ? l.doc.lines : 1) && (n += t ? 1 : -1);
517
+ break;
518
+ }
519
+ let i = M(o.text, n - o.from, t) + o.from, f = o.text.slice(Math.min(n, i) - o.from, Math.max(n, i) - o.from), u = c(f);
520
+ if (s != null && u != s)
521
+ break;
522
+ (f != " " || n != r.head) && (s = u), n = i;
523
+ }
524
+ return n;
525
+ }), Ve = (e) => ve(e, !1), Gt = (e) => ve(e, !0), Ft = (e) => O(e, (t) => {
526
+ let r = e.lineBlockAt(t.head).to;
527
+ return t.head < r ? r : Math.min(e.state.doc.length, t.head + 1);
528
+ }), zt = (e) => O(e, (t) => {
529
+ let r = e.moveToLineBoundary(t, !1).head;
530
+ return t.head > r ? r : Math.max(0, t.head - 1);
531
+ }), qt = (e) => O(e, (t) => {
532
+ let r = e.moveToLineBoundary(t, !0).head;
533
+ return t.head < r ? r : Math.min(e.state.doc.length, t.head + 1);
534
+ }), Ht = ({ state: e, dispatch: t }) => {
535
+ if (e.readOnly)
536
+ return !1;
537
+ let r = e.changeByRange((n) => ({
538
+ changes: { from: n.from, to: n.to, insert: le.of(["", ""]) },
539
+ range: a.cursor(n.from)
540
+ }));
541
+ return t(e.update(r, { scrollIntoView: !0, userEvent: "input" })), !0;
542
+ }, Kt = ({ state: e, dispatch: t }) => {
543
+ if (e.readOnly)
544
+ return !1;
545
+ let r = e.changeByRange((n) => {
546
+ if (!n.empty || n.from == 0 || n.from == e.doc.length)
547
+ return { range: n };
548
+ let l = n.from, o = e.doc.lineAt(l), c = l == o.from ? l - 1 : M(o.text, l - o.from, !1) + o.from, s = l == o.to ? l + 1 : M(o.text, l - o.from, !0) + o.from;
549
+ return {
550
+ changes: { from: c, to: s, insert: e.doc.slice(l, s).append(e.doc.slice(c, l)) },
551
+ range: a.cursor(s)
552
+ };
553
+ });
554
+ return r.changes.empty ? !1 : (t(e.update(r, { scrollIntoView: !0, userEvent: "move.character" })), !0);
555
+ };
556
+ function P(e) {
557
+ let t = [], r = -1;
558
+ for (let n of e.selection.ranges) {
559
+ let l = e.doc.lineAt(n.from), o = e.doc.lineAt(n.to);
560
+ if (!n.empty && n.to == o.from && (o = e.doc.lineAt(n.to - 1)), r >= l.number) {
561
+ let c = t[t.length - 1];
562
+ c.to = o.to, c.ranges.push(n);
563
+ } else
564
+ t.push({ from: l.from, to: o.to, ranges: [n] });
565
+ r = o.number + 1;
566
+ }
567
+ return t;
568
+ }
569
+ function Ne(e, t, r) {
570
+ if (e.readOnly)
571
+ return !1;
572
+ let n = [], l = [];
573
+ for (let o of P(e)) {
574
+ if (r ? o.to == e.doc.length : o.from == 0)
575
+ continue;
576
+ let c = e.doc.lineAt(r ? o.to + 1 : o.from - 1), s = c.length + 1;
577
+ if (r) {
578
+ n.push({ from: o.to, to: c.to }, { from: o.from, insert: c.text + e.lineBreak });
579
+ for (let i of o.ranges)
580
+ l.push(a.range(Math.min(e.doc.length, i.anchor + s), Math.min(e.doc.length, i.head + s)));
581
+ } else {
582
+ n.push({ from: c.from, to: o.from }, { from: o.to, insert: e.lineBreak + c.text });
583
+ for (let i of o.ranges)
584
+ l.push(a.range(i.anchor - s, i.head - s));
585
+ }
586
+ }
587
+ return n.length ? (t(e.update({
588
+ changes: n,
589
+ scrollIntoView: !0,
590
+ selection: a.create(l, e.selection.mainIndex),
591
+ userEvent: "move.line"
592
+ })), !0) : !1;
593
+ }
594
+ const $t = ({ state: e, dispatch: t }) => Ne(e, t, !1), Wt = ({ state: e, dispatch: t }) => Ne(e, t, !0);
595
+ function Pe(e, t, r) {
596
+ if (e.readOnly)
597
+ return !1;
598
+ let n = [];
599
+ for (let o of P(e))
600
+ r ? n.push({ from: o.from, insert: e.doc.slice(o.from, o.to) + e.lineBreak }) : n.push({ from: o.to, insert: e.lineBreak + e.doc.slice(o.from, o.to) });
601
+ let l = e.changes(n);
602
+ return t(e.update({
603
+ changes: l,
604
+ selection: e.selection.map(l, r ? 1 : -1),
605
+ scrollIntoView: !0,
606
+ userEvent: "input.copyline"
607
+ })), !0;
608
+ }
609
+ const Qt = ({ state: e, dispatch: t }) => Pe(e, t, !1), Xt = ({ state: e, dispatch: t }) => Pe(e, t, !0), Yt = (e) => {
610
+ if (e.state.readOnly)
611
+ return !1;
612
+ let { state: t } = e, r = t.changes(P(t).map(({ from: l, to: o }) => (l > 0 ? l-- : o < t.doc.length && o++, { from: l, to: o }))), n = D(t.selection, (l) => {
613
+ let o;
614
+ if (e.lineWrapping) {
615
+ let c = e.lineBlockAt(l.head), s = e.coordsAtPos(l.head, l.assoc || 1);
616
+ s && (o = c.bottom + e.documentTop - s.bottom + e.defaultLineHeight / 2);
617
+ }
618
+ return e.moveVertically(l, !0, o);
619
+ }).map(r);
620
+ return e.dispatch({ changes: r, selection: n, scrollIntoView: !0, userEvent: "delete.line" }), !0;
621
+ };
622
+ function Zt(e, t) {
623
+ if (/\(\)|\[\]|\{\}/.test(e.sliceDoc(t - 1, t + 1)))
624
+ return { from: t, to: t };
625
+ let r = $(e).resolveInner(t), n = r.childBefore(t), l = r.childAfter(t), o;
626
+ return n && l && n.to <= t && l.from >= t && (o = n.type.prop(F.closedBy)) && o.indexOf(l.name) > -1 && e.doc.lineAt(n.to).from == e.doc.lineAt(l.from).from && !/\S/.test(e.sliceDoc(n.to, l.from)) ? { from: n.to, to: l.from } : null;
627
+ }
628
+ const oe = /* @__PURE__ */ Ue(!1), jt = /* @__PURE__ */ Ue(!0);
629
+ function Ue(e) {
630
+ return ({ state: t, dispatch: r }) => {
631
+ if (t.readOnly)
632
+ return !1;
633
+ let n = t.changeByRange((l) => {
634
+ let { from: o, to: c } = l, s = t.doc.lineAt(o), i = !e && o == c && Zt(t, o);
635
+ e && (o = c = (c <= s.to ? s : t.doc.lineAt(c)).to);
636
+ let f = new ue(t, { simulateBreak: o, simulateDoubleBreak: !!i }), u = fe(f, o);
637
+ for (u == null && (u = K(/^\s*/.exec(t.doc.lineAt(o).text)[0], t.tabSize)); c < s.to && /\s/.test(s.text[c - s.from]); )
638
+ c++;
639
+ i ? { from: o, to: c } = i : o > s.from && o < s.from + 100 && !/\S/.test(s.text.slice(0, o)) && (o = s.from);
640
+ let h = ["", R(t, u)];
641
+ return i && h.push(R(t, f.lineIndent(s.from, -1))), {
642
+ changes: { from: o, to: c, insert: le.of(h) },
643
+ range: a.cursor(o + 1 + h[1].length)
644
+ };
645
+ });
646
+ return r(t.update(n, { scrollIntoView: !0, userEvent: "input" })), !0;
647
+ };
648
+ }
649
+ function Y(e, t) {
650
+ let r = -1;
651
+ return e.changeByRange((n) => {
652
+ let l = [];
653
+ for (let c = n.from; c <= n.to; ) {
654
+ let s = e.doc.lineAt(c);
655
+ s.number > r && (n.empty || n.to > s.from) && (t(s, l, n), r = s.number), c = s.to + 1;
656
+ }
657
+ let o = e.changes(l);
658
+ return {
659
+ changes: l,
660
+ range: a.range(o.mapPos(n.anchor, 1), o.mapPos(n.head, 1))
661
+ };
662
+ });
663
+ }
664
+ const wt = ({ state: e, dispatch: t }) => {
665
+ if (e.readOnly)
666
+ return !1;
667
+ let r = /* @__PURE__ */ Object.create(null), n = new ue(e, { overrideIndentation: (o) => {
668
+ let c = r[o];
669
+ return c ?? -1;
670
+ } }), l = Y(e, (o, c, s) => {
671
+ let i = fe(n, o.from);
672
+ if (i == null)
673
+ return;
674
+ /\S/.test(o.text) || (i = 0);
675
+ let f = /^\s*/.exec(o.text)[0], u = R(e, i);
676
+ (f != u || s.from < o.from + f.length) && (r[o.from] = i, c.push({ from: o.from, to: o.from + f.length, insert: u }));
677
+ });
678
+ return l.changes.empty || t(e.update(l, { userEvent: "indent" })), !0;
679
+ }, _t = ({ state: e, dispatch: t }) => e.readOnly ? !1 : (t(e.update(Y(e, (r, n) => {
680
+ n.push({ from: r.from, insert: e.facet(He) });
681
+ }), { userEvent: "input.indent" })), !0), en = ({ state: e, dispatch: t }) => e.readOnly ? !1 : (t(e.update(Y(e, (r, n) => {
682
+ let l = /^\s*/.exec(r.text)[0];
683
+ if (!l)
684
+ return;
685
+ let o = K(l, e.tabSize), c = 0, s = R(e, Math.max(0, o - G(e)));
686
+ for (; c < l.length && c < s.length && l.charCodeAt(c) == s.charCodeAt(c); )
687
+ c++;
688
+ n.push({ from: r.from + c, to: r.from + l.length, insert: s.slice(c) });
689
+ }), { userEvent: "delete.dedent" })), !0), tn = (e) => (e.setTabFocusMode(), !0), nn = [
690
+ { key: "Ctrl-b", run: me, shift: De, preventDefault: !0 },
691
+ { key: "Ctrl-f", run: pe, shift: Ce },
692
+ { key: "Ctrl-p", run: ke, shift: Ee },
693
+ { key: "Ctrl-n", run: Ae, shift: Oe },
694
+ { key: "Ctrl-a", run: At, shift: Rt },
695
+ { key: "Ctrl-e", run: Bt, shift: It },
696
+ { key: "Ctrl-d", run: Ie },
697
+ { key: "Ctrl-h", run: H },
698
+ { key: "Ctrl-k", run: Ft },
699
+ { key: "Ctrl-Alt-h", run: Ve },
700
+ { key: "Ctrl-o", run: Ht },
701
+ { key: "Ctrl-t", run: Kt },
702
+ { key: "Ctrl-v", run: q }
703
+ ], rn = /* @__PURE__ */ [
704
+ { key: "ArrowLeft", run: me, shift: De, preventDefault: !0 },
705
+ { key: "Mod-ArrowLeft", mac: "Alt-ArrowLeft", run: ft, shift: Dt, preventDefault: !0 },
706
+ { mac: "Cmd-ArrowLeft", run: yt, shift: Tt, preventDefault: !0 },
707
+ { key: "ArrowRight", run: pe, shift: Ce, preventDefault: !0 },
708
+ { key: "Mod-ArrowRight", mac: "Alt-ArrowRight", run: at, shift: Ct, preventDefault: !0 },
709
+ { mac: "Cmd-ArrowRight", run: kt, shift: bt, preventDefault: !0 },
710
+ { key: "ArrowUp", run: ke, shift: Ee, preventDefault: !0 },
711
+ { mac: "Cmd-ArrowUp", run: ee, shift: ne },
712
+ { mac: "Ctrl-ArrowUp", run: j, shift: w },
713
+ { key: "ArrowDown", run: Ae, shift: Oe, preventDefault: !0 },
714
+ { mac: "Cmd-ArrowDown", run: te, shift: re },
715
+ { mac: "Ctrl-ArrowDown", run: q, shift: _ },
716
+ { key: "PageUp", run: j, shift: w },
717
+ { key: "PageDown", run: q, shift: _ },
718
+ { key: "Home", run: gt, shift: Ot, preventDefault: !0 },
719
+ { key: "Mod-Home", run: ee, shift: ne },
720
+ { key: "End", run: pt, shift: Et, preventDefault: !0 },
721
+ { key: "Mod-End", run: te, shift: re },
722
+ { key: "Enter", run: oe, shift: oe },
723
+ { key: "Mod-a", run: vt },
724
+ { key: "Backspace", run: H, shift: H, preventDefault: !0 },
725
+ { key: "Delete", run: Ie, preventDefault: !0 },
726
+ { key: "Mod-Backspace", mac: "Alt-Backspace", run: Ve, preventDefault: !0 },
727
+ { key: "Mod-Delete", mac: "Alt-Delete", run: Gt, preventDefault: !0 },
728
+ { mac: "Mod-Backspace", run: zt, preventDefault: !0 },
729
+ { mac: "Mod-Delete", run: qt, preventDefault: !0 }
730
+ ].concat(/* @__PURE__ */ nn.map((e) => ({ mac: e.key, run: e.run, shift: e.shift }))), an = /* @__PURE__ */ [
731
+ { key: "Alt-ArrowLeft", mac: "Ctrl-ArrowLeft", run: dt, shift: Lt },
732
+ { key: "Alt-ArrowRight", mac: "Ctrl-ArrowRight", run: mt, shift: Mt },
733
+ { key: "Alt-ArrowUp", run: $t },
734
+ { key: "Shift-Alt-ArrowUp", run: Qt },
735
+ { key: "Alt-ArrowDown", run: Wt },
736
+ { key: "Shift-Alt-ArrowDown", run: Xt },
737
+ { key: "Mod-Alt-ArrowUp", run: Pt },
738
+ { key: "Mod-Alt-ArrowDown", run: Ut },
739
+ { key: "Escape", run: Jt },
740
+ { key: "Mod-Enter", run: jt },
741
+ { key: "Alt-l", mac: "Ctrl-l", run: Vt },
742
+ { key: "Mod-i", run: Nt, preventDefault: !0 },
743
+ { key: "Mod-[", run: en },
744
+ { key: "Mod-]", run: _t },
745
+ { key: "Mod-Alt-\\", run: wt },
746
+ { key: "Shift-Mod-k", run: Yt },
747
+ { key: "Shift-Mod-\\", run: xt },
748
+ { key: "Mod-/", run: Ke },
749
+ { key: "Alt-A", run: We },
750
+ { key: "Ctrl-m", mac: "Shift-Alt-m", run: tn }
751
+ ].concat(rn);
752
+ export {
753
+ Pt as addCursorAbove,
754
+ Ut as addCursorBelow,
755
+ Xt as copyLineDown,
756
+ Qt as copyLineUp,
757
+ fn as cursorCharBackward,
758
+ me as cursorCharLeft,
759
+ pe as cursorCharRight,
760
+ te as cursorDocEnd,
761
+ ee as cursorDocStart,
762
+ ft as cursorGroupLeft,
763
+ at as cursorGroupRight,
764
+ gt as cursorLineBoundaryBackward,
765
+ pt as cursorLineBoundaryForward,
766
+ yt as cursorLineBoundaryLeft,
767
+ kt as cursorLineBoundaryRight,
768
+ Ae as cursorLineDown,
769
+ Bt as cursorLineEnd,
770
+ At as cursorLineStart,
771
+ ke as cursorLineUp,
772
+ xt as cursorMatchingBracket,
773
+ q as cursorPageDown,
774
+ j as cursorPageUp,
775
+ dt as cursorSyntaxLeft,
776
+ mt as cursorSyntaxRight,
777
+ an as defaultKeymap,
778
+ H as deleteCharBackward,
779
+ Ie as deleteCharForward,
780
+ Ve as deleteGroupBackward,
781
+ Gt as deleteGroupForward,
782
+ Yt as deleteLine,
783
+ zt as deleteLineBoundaryBackward,
784
+ qt as deleteLineBoundaryForward,
785
+ Ft as deleteToLineEnd,
786
+ nn as emacsStyleKeymap,
787
+ un as historyKeymap,
788
+ en as indentLess,
789
+ _t as indentMore,
790
+ wt as indentSelection,
791
+ jt as insertBlankLine,
792
+ oe as insertNewlineAndIndent,
793
+ we as invertedEffects,
794
+ je as isolateHistory,
795
+ Wt as moveLineDown,
796
+ $t as moveLineUp,
797
+ Z as redo,
798
+ rt as redoSelection,
799
+ vt as selectAll,
800
+ De as selectCharLeft,
801
+ Ce as selectCharRight,
802
+ re as selectDocEnd,
803
+ ne as selectDocStart,
804
+ Dt as selectGroupLeft,
805
+ Ct as selectGroupRight,
806
+ Vt as selectLine,
807
+ Ot as selectLineBoundaryBackward,
808
+ Et as selectLineBoundaryForward,
809
+ Tt as selectLineBoundaryLeft,
810
+ bt as selectLineBoundaryRight,
811
+ Oe as selectLineDown,
812
+ It as selectLineEnd,
813
+ Rt as selectLineStart,
814
+ Ee as selectLineUp,
815
+ _ as selectPageDown,
816
+ w as selectPageUp,
817
+ Nt as selectParentSyntax,
818
+ Lt as selectSyntaxLeft,
819
+ Mt as selectSyntaxRight,
820
+ Jt as simplifySelection,
821
+ Ht as splitLine,
822
+ rn as standardKeymap,
823
+ We as toggleBlockComment,
824
+ Qe as toggleBlockCommentByLine,
825
+ Ke as toggleComment,
826
+ $e as toggleLineComment,
827
+ tn as toggleTabFocusMode,
828
+ Kt as transposeChars,
829
+ tt as undo,
830
+ nt as undoSelection
831
+ };