desmost 0.10.1 → 0.11.1

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 (171) hide show
  1. package/README.md +5 -5
  2. package/dist/compiler/compile.d.ts +1 -1
  3. package/dist/compiler/compile.js +1 -1
  4. package/dist/compiler/compiler.d.ts.map +1 -1
  5. package/dist/compiler/compiler.js +9 -8
  6. package/dist/compiler/compiler.js.map +1 -1
  7. package/dist/compiler/format.d.ts +6 -0
  8. package/dist/compiler/format.d.ts.map +1 -1
  9. package/dist/compiler/format.js +7 -1
  10. package/dist/compiler/format.js.map +1 -1
  11. package/dist/decompiler/decompile.d.ts +13 -5
  12. package/dist/decompiler/decompile.d.ts.map +1 -1
  13. package/dist/decompiler/decompile.js +24 -13
  14. package/dist/decompiler/decompile.js.map +1 -1
  15. package/dist/decompiler/emit.d.ts +5 -2
  16. package/dist/decompiler/emit.d.ts.map +1 -1
  17. package/dist/decompiler/emit.js +41 -20
  18. package/dist/decompiler/emit.js.map +1 -1
  19. package/dist/decompiler/extract.d.ts +1 -9
  20. package/dist/decompiler/extract.d.ts.map +1 -1
  21. package/dist/decompiler/extract.js +24 -58
  22. package/dist/decompiler/extract.js.map +1 -1
  23. package/dist/decompiler/format.d.ts +13 -1
  24. package/dist/decompiler/format.d.ts.map +1 -1
  25. package/dist/decompiler/format.js +17 -9
  26. package/dist/decompiler/format.js.map +1 -1
  27. package/dist/errors.d.ts +14 -7
  28. package/dist/errors.d.ts.map +1 -1
  29. package/dist/errors.js +20 -2
  30. package/dist/errors.js.map +1 -1
  31. package/dist/magic/expr/index.js +6 -6
  32. package/dist/magic/expr/index.js.map +1 -1
  33. package/dist/magic/expr/latex.d.ts +5 -2
  34. package/dist/magic/expr/latex.d.ts.map +1 -1
  35. package/dist/magic/expr/latex.js +4 -2
  36. package/dist/magic/expr/latex.js.map +1 -1
  37. package/dist/magic/expr/text.d.ts +5 -2
  38. package/dist/magic/expr/text.d.ts.map +1 -1
  39. package/dist/magic/expr/text.js +4 -2
  40. package/dist/magic/expr/text.js.map +1 -1
  41. package/dist/magic/global/{dark-mode.d.ts → dark.d.ts} +6 -2
  42. package/dist/magic/global/dark.d.ts.map +1 -0
  43. package/dist/magic/global/dark.js +20 -0
  44. package/dist/magic/global/dark.js.map +1 -0
  45. package/dist/magic/global/desmos.d.ts +6 -2
  46. package/dist/magic/global/desmos.d.ts.map +1 -1
  47. package/dist/magic/global/desmos.js +25 -1
  48. package/dist/magic/global/desmos.js.map +1 -1
  49. package/dist/magic/global/index.d.ts +5 -5
  50. package/dist/magic/global/index.d.ts.map +1 -1
  51. package/dist/magic/global/index.js +8 -11
  52. package/dist/magic/global/index.js.map +1 -1
  53. package/dist/magic/global/viewport.d.ts +5 -1
  54. package/dist/magic/global/viewport.d.ts.map +1 -1
  55. package/dist/magic/global/viewport.js +22 -1
  56. package/dist/magic/global/viewport.js.map +1 -1
  57. package/dist/magic/incantation.d.ts +15 -2
  58. package/dist/magic/incantation.d.ts.map +1 -1
  59. package/dist/magic/incantation.js +8 -1
  60. package/dist/magic/incantation.js.map +1 -1
  61. package/dist/magic/index.js +8 -0
  62. package/dist/magic/index.js.map +1 -1
  63. package/dist/magic/local/anim.d.ts +5 -1
  64. package/dist/magic/local/anim.d.ts.map +1 -1
  65. package/dist/magic/local/anim.js +12 -1
  66. package/dist/magic/local/anim.js.map +1 -1
  67. package/dist/magic/local/colour.d.ts +7 -3
  68. package/dist/magic/local/colour.d.ts.map +1 -1
  69. package/dist/magic/local/colour.js +13 -3
  70. package/dist/magic/local/colour.js.map +1 -1
  71. package/dist/magic/local/dashed.d.ts +5 -1
  72. package/dist/magic/local/dashed.d.ts.map +1 -1
  73. package/dist/magic/local/dashed.js +12 -1
  74. package/dist/magic/local/dashed.js.map +1 -1
  75. package/dist/magic/local/fill.d.ts +5 -1
  76. package/dist/magic/local/fill.d.ts.map +1 -1
  77. package/dist/magic/local/fill.js +15 -1
  78. package/dist/magic/local/fill.js.map +1 -1
  79. package/dist/magic/local/hide.d.ts +5 -1
  80. package/dist/magic/local/hide.d.ts.map +1 -1
  81. package/dist/magic/local/hide.js +12 -1
  82. package/dist/magic/local/hide.js.map +1 -1
  83. package/dist/magic/local/index.d.ts +13 -2
  84. package/dist/magic/local/index.d.ts.map +1 -1
  85. package/dist/magic/local/index.js +24 -24
  86. package/dist/magic/local/index.js.map +1 -1
  87. package/dist/magic/local/label.d.ts +6 -2
  88. package/dist/magic/local/label.d.ts.map +1 -1
  89. package/dist/magic/local/label.js +19 -1
  90. package/dist/magic/local/label.js.map +1 -1
  91. package/dist/magic/local/line.d.ts +5 -1
  92. package/dist/magic/local/line.d.ts.map +1 -1
  93. package/dist/magic/local/line.js +19 -1
  94. package/dist/magic/local/line.js.map +1 -1
  95. package/dist/magic/local/no-line.d.ts +5 -1
  96. package/dist/magic/local/no-line.d.ts.map +1 -1
  97. package/dist/magic/local/no-line.js +12 -1
  98. package/dist/magic/local/no-line.js.map +1 -1
  99. package/dist/magic/local/point.d.ts +5 -1
  100. package/dist/magic/local/point.d.ts.map +1 -1
  101. package/dist/magic/local/point.js +19 -1
  102. package/dist/magic/local/point.js.map +1 -1
  103. package/dist/magic/local/secret.d.ts +5 -1
  104. package/dist/magic/local/secret.d.ts.map +1 -1
  105. package/dist/magic/local/secret.js +12 -1
  106. package/dist/magic/local/secret.js.map +1 -1
  107. package/dist/magic/local/slider.d.ts +5 -1
  108. package/dist/magic/local/slider.d.ts.map +1 -1
  109. package/dist/magic/local/slider.js +13 -1
  110. package/dist/magic/local/slider.js.map +1 -1
  111. package/dist/parser/ast.d.ts +9 -3
  112. package/dist/parser/ast.d.ts.map +1 -1
  113. package/dist/parser/ast.js +3 -1
  114. package/dist/parser/ast.js.map +1 -1
  115. package/dist/parser/desmost-parser.d.ts +2 -2
  116. package/dist/parser/desmost-parser.d.ts.map +1 -1
  117. package/dist/parser/desmost-parser.js +6 -4
  118. package/dist/parser/desmost-parser.js.map +1 -1
  119. package/dist/parser/errors.d.ts +11 -0
  120. package/dist/parser/errors.d.ts.map +1 -0
  121. package/dist/parser/errors.js +4 -0
  122. package/dist/parser/errors.js.map +1 -0
  123. package/dist/parser/generic-parser.d.ts +7 -5
  124. package/dist/parser/generic-parser.d.ts.map +1 -1
  125. package/dist/parser/generic-parser.js +7 -10
  126. package/dist/parser/generic-parser.js.map +1 -1
  127. package/package.json +1 -1
  128. package/src/compiler/compile.ts +1 -1
  129. package/src/compiler/compiler.ts +10 -9
  130. package/src/compiler/format.ts +7 -1
  131. package/src/decompiler/decompile.ts +30 -14
  132. package/src/decompiler/emit.ts +57 -25
  133. package/src/decompiler/extract.ts +30 -89
  134. package/src/decompiler/format.ts +21 -14
  135. package/src/decompiler/readme.md +2 -2
  136. package/src/errors.ts +13 -7
  137. package/src/magic/.template.ts +8 -0
  138. package/src/magic/expr/index.ts +6 -7
  139. package/src/magic/expr/latex.ts +8 -4
  140. package/src/magic/expr/text.ts +8 -4
  141. package/src/magic/global/dark.ts +29 -0
  142. package/src/magic/global/desmos.ts +38 -8
  143. package/src/magic/global/index.ts +8 -14
  144. package/src/magic/global/viewport.ts +33 -4
  145. package/src/magic/incantation.ts +28 -6
  146. package/src/magic/index.ts +10 -3
  147. package/src/magic/local/anim.ts +15 -2
  148. package/src/magic/local/colour.ts +18 -6
  149. package/src/magic/local/dashed.ts +16 -2
  150. package/src/magic/local/fill.ts +20 -3
  151. package/src/magic/local/hide.ts +16 -2
  152. package/src/magic/local/index.ts +24 -25
  153. package/src/magic/local/label.ts +31 -8
  154. package/src/magic/local/line.ts +25 -3
  155. package/src/magic/local/no-line.ts +16 -2
  156. package/src/magic/local/point.ts +27 -3
  157. package/src/magic/local/secret.ts +16 -2
  158. package/src/magic/local/slider.ts +18 -3
  159. package/src/parser/ast.ts +10 -7
  160. package/src/parser/desmost-parser.ts +10 -6
  161. package/src/parser/errors.ts +10 -0
  162. package/src/parser/generic-parser.ts +9 -11
  163. package/svelte/desmost.svelte +107 -107
  164. package/dist/magic/expr/index.d.ts +0 -3
  165. package/dist/magic/expr/index.d.ts.map +0 -1
  166. package/dist/magic/global/dark-mode.d.ts.map +0 -1
  167. package/dist/magic/global/dark-mode.js +0 -9
  168. package/dist/magic/global/dark-mode.js.map +0 -1
  169. package/dist/magic/index.d.ts +0 -13
  170. package/dist/magic/index.d.ts.map +0 -1
  171. package/src/magic/global/dark-mode.ts +0 -15
package/src/parser/ast.ts CHANGED
@@ -3,15 +3,17 @@ import { Incantation, ArgIncantation } from "../magic";
3
3
 
4
4
  export namespace Ast
5
5
  {
6
- /** What kind of AST node this is. */
7
- export enum Kind
8
- {
6
+ /**
7
+ * What kind of AST node this is.
8
+ */
9
+ export enum Kind {
9
10
  EXPRESSION = "Expression",
10
11
  INCANTATION_INVOCATION = "Incantation-Invocation",
11
12
  }
12
-
13
13
 
14
- /** A Desmos expression to add to the calculator. */
14
+ /**
15
+ * A Desmos expression to add to the calculator.
16
+ */
15
17
  export interface Expression
16
18
  {
17
19
  kind: Kind.EXPRESSION
@@ -19,8 +21,9 @@ export namespace Ast
19
21
  incantations: IncantationInvocation<Incantation.Effect.LOCAL>[]
20
22
  }
21
23
 
22
-
23
- /** A pending incantation invocation that requires applying its argument (if any), then applying its effect. */
24
+ /**
25
+ * A pending incantation invocation that requires applying its argument (if any), then applying its effect.
26
+ */
24
27
  export type IncantationInvocation<Effect extends Incantation.Effect = Incantation.Effect> =
25
28
  | {
26
29
  kind: Kind.INCANTATION_INVOCATION
@@ -1,9 +1,10 @@
1
1
  import { GenericParser } from "./generic-parser";
2
2
  import { Ast } from "./ast";
3
+ import { NO_MATCH, INVALID_PARSE } from "./errors";
4
+ import type { NoMatch, InvalidParse } from "./errors";
3
5
 
4
6
  import type { DesmostOptions } from "../options";
5
- import { NO_MATCH, DesmostError } from "../errors";
6
- import type { NoMatch, Fallible } from "../errors";
7
+ import { DesmostError, type Fallible } from "../errors";
7
8
  import * as utils from "../utils";
8
9
 
9
10
  import {
@@ -116,7 +117,7 @@ export class DesmostParser extends GenericParser
116
117
  {
117
118
  // 1 global incantation
118
119
  try {
119
- let r = this.try_parse_incantation(GLOBAL_INCANTATIONS);
120
+ let r = this.try_parse_incantation(Object.values(GLOBAL_INCANTATIONS));
120
121
 
121
122
  if (r !== NO_MATCH) {
122
123
  this.eat_whitespace();
@@ -133,7 +134,7 @@ export class DesmostParser extends GenericParser
133
134
 
134
135
  while (this.current === "/") {
135
136
  try {
136
- var invocation = this.try_parse_incantation(LOCAL_INCANTATIONS);
137
+ var invocation = this.try_parse_incantation(Object.values(LOCAL_INCANTATIONS));
137
138
  }
138
139
  catch (e) {
139
140
  this.errors.push(e as Error);
@@ -310,14 +311,17 @@ export class DesmostParser extends GenericParser
310
311
  return NO_MATCH;
311
312
  }
312
313
 
313
- let incantation = EXPR_INCANTATIONS.find(inc => inc.identifier === ident || inc.alias === ident);
314
+ let incantation =
315
+ Object.values(EXPR_INCANTATIONS)
316
+ .find(inc => inc.identifier === ident || inc.alias === ident);
317
+
314
318
  if (incantation == undefined) {
315
319
  this.i = init;
316
320
  return NO_MATCH;
317
321
  }
318
322
 
319
323
  /* NOTE: All expression incantations currently require arguments, and all for the foreseeable future will too */
320
- let arg_raw = this.parse_incantation_arg((incantation as ArgIncantation<EXPR>).arg_type);
324
+ let arg_raw = this.parse_incantation_arg(incantation.arg_type);
321
325
 
322
326
  let data = {};
323
327
  incantation.apply(data, arg_raw);
@@ -0,0 +1,10 @@
1
+ /** The parser failed to parse something (usually during speculative parsing), which only results in internal backtracking. */
2
+ export const NO_MATCH = Symbol("no-match");
3
+
4
+ /** The compiler encountered a non-fatal recoverable failure (usually during speculative parsing), which only results in internal backtracking. */
5
+ export type NoMatch = typeof NO_MATCH & { readonly __brand?: unique symbol };
6
+
7
+
8
+ export const INVALID_PARSE = Symbol("invalid-parse");
9
+
10
+ export type InvalidParse = typeof INVALID_PARSE & { readonly __brand?: unique symbol };
@@ -1,5 +1,7 @@
1
- import { NO_MATCH, DesmostError } from "../errors";
2
- import type { NoMatch, Fallible } from "../errors";
1
+ import { NO_MATCH, INVALID_PARSE } from "./errors";
2
+ import type { NoMatch, InvalidParse } from "./errors";
3
+
4
+ import { DesmostError, type Fallible } from "../errors";
3
5
 
4
6
 
5
7
  const IGNORED_CHARACTERS = new Set([
@@ -189,28 +191,24 @@ export class GenericParser
189
191
  }
190
192
 
191
193
  /**
192
- * Consume 0 or more space or tab characters.
194
+ * Consume 0 or more space or tab characters (but not newlines).
195
+ *
196
+ * This is always safe to call, and will match 0 characters if the parser is out of bounds.
193
197
  */
194
198
  protected eat_whitespace(): void
195
199
  {
196
- /* NOTE: Callers should be able to assume this is safe to call even when at end of input, since it should just match 0 characters */
197
- if (this.out_of_bounds()) return;
198
-
199
200
  while (this.current === ' ' || this.current === '\t') {
200
201
  this.advance();
201
202
  }
202
203
  }
203
204
 
204
205
  /**
205
- * Consume 0 or more whitespace characters.
206
+ * Consume 0 or more whitespace characters (including newlines).
206
207
  *
207
- * Same as `.consume_spaces()`, but allows tabs and newlines.
208
+ * This is always safe to call, and will match 0 characters if the parser is out of bounds.
208
209
  */
209
210
  protected eat_newlines(): void
210
211
  {
211
- /* NOTE: Callers should be able to assume this is safe to call even when at end of input, since it should just match 0 characters */
212
- if (this.i >= this.length) return;
213
-
214
212
  while (
215
213
  this.current === ' '
216
214
  || this.current === '\n'
@@ -12,11 +12,11 @@ When this component is unmounted, it calls `.destroy()` on each calculator insta
12
12
 
13
13
  ```svelte
14
14
  <script>
15
- import Content from "./content.md";
15
+ import Content from "./content.md";
16
16
  </script>
17
17
 
18
18
  <Desmost>
19
- <Content />
19
+ <Content />
20
20
  </Desmost>
21
21
  ```
22
22
 
@@ -24,7 +24,7 @@ With compile options:
24
24
 
25
25
  ```svelte
26
26
  <Desmost options={{ errors: "crash" }}>
27
- <Content />
27
+ <Content />
28
28
  </Desmost>
29
29
  ```
30
30
 
@@ -32,7 +32,7 @@ With styling:
32
32
 
33
33
  ```svelte
34
34
  <Desmost width="100%" height="50vh">
35
- <Content />
35
+ <Content />
36
36
  </Desmost>
37
37
  ```
38
38
  -->
@@ -47,72 +47,72 @@ import { onMount, type Snippet } from "svelte";
47
47
 
48
48
  interface Props
49
49
  {
50
- children: Snippet;
51
-
52
- /** Compile options to pass to Desmost.*/
53
- options?: DesmostOptions;
54
-
55
- /**
56
- * Default settings to apply to all Desmos calculator instances.
57
- *
58
- * These are applied *before* compilation, so individual Desmost blocks can override them with `/desmos`.
59
- */
60
- settings?: Desmos.GraphConfiguration & Desmos.GraphSettings;
61
-
62
- /**
63
- * Should compilation be lazy using `IntersectionObserver`?
64
- *
65
- * ## Example
66
- *
67
- * ```svelte
68
- * <Desmost lazy />
69
- * ```
70
- */
71
- lazy?: true;
72
-
73
- /**
74
- * CSS styles to apply to each Desmos calculator's containing element.
75
- *
76
- * ## Example
77
- *
78
- * ```svelte
79
- * <Desmost style="margin: 1rem; border: 1px solid red" />
80
- * ```
81
- */
82
- style?: string;
83
-
84
- /**
85
- * Width of each Desmos calculator's containing element.
86
- *
87
- * ## Example
88
- *
89
- * ```svelte
90
- * <Desmost width="500px" />
91
- * <Desmost width="40rem" />
92
- * <Desmost width="80vw" />
93
- * ```
94
- */
95
- width?: string;
96
-
97
- /**
98
- * Height of each Desmos calculator's containing element.
99
- *
100
- * ## Example
101
- *
102
- * ```svelte
103
- * <Desmost height="500px" />
104
- * <Desmost height="40rem" />
105
- * <Desmost height="80vw" />
106
- * ```
107
- */
108
- height?: string;
50
+ children: Snippet;
51
+
52
+ /** Compile options to pass to Desmost.*/
53
+ options?: DesmostOptions;
54
+
55
+ /**
56
+ * Default settings to apply to all Desmos calculator instances.
57
+ *
58
+ * These are applied *before* compilation, so individual Desmost blocks can override them with `/desmos`.
59
+ */
60
+ settings?: Desmos.GraphConfiguration & Desmos.GraphSettings;
61
+
62
+ /**
63
+ * Should compilation be lazy using `IntersectionObserver`?
64
+ *
65
+ * ## Example
66
+ *
67
+ * ```svelte
68
+ * <Desmost lazy />
69
+ * ```
70
+ */
71
+ lazy?: true;
72
+
73
+ /**
74
+ * CSS styles to apply to each Desmos calculator's containing element.
75
+ *
76
+ * ## Example
77
+ *
78
+ * ```svelte
79
+ * <Desmost style="margin: 1rem; border: 1px solid red" />
80
+ * ```
81
+ */
82
+ style?: string;
83
+
84
+ /**
85
+ * Width of each Desmos calculator's containing element.
86
+ *
87
+ * ## Example
88
+ *
89
+ * ```svelte
90
+ * <Desmost width="500px" />
91
+ * <Desmost width="40rem" />
92
+ * <Desmost width="80vw" />
93
+ * ```
94
+ */
95
+ width?: string;
96
+
97
+ /**
98
+ * Height of each Desmos calculator's containing element.
99
+ *
100
+ * ## Example
101
+ *
102
+ * ```svelte
103
+ * <Desmost height="500px" />
104
+ * <Desmost height="40rem" />
105
+ * <Desmost height="80vw" />
106
+ * ```
107
+ */
108
+ height?: string;
109
109
  }
110
110
 
111
111
  let {
112
- children,
113
- options, settings,
114
- lazy,
115
- style, width, height,
112
+ children,
113
+ options, settings,
114
+ lazy,
115
+ style, width, height,
116
116
  }: Props = $props();
117
117
 
118
118
 
@@ -123,56 +123,56 @@ let lazy_observers: IntersectionObserver[] = [];
123
123
 
124
124
  onMount(() =>
125
125
  {
126
- let sources = root.querySelectorAll("pre[lang='desmos'], pre.language-desmos");
127
-
128
- for (let source of sources.values()) {
129
- source.style.display = "none";
130
-
131
- let el_desmos = source.parentNode!.insertBefore(
132
- document.createElement("div"),
133
- source.nextSibling,
134
- );
135
-
136
- if (width != undefined) el_desmos.style.width = width;
137
- if (height != undefined) el_desmos.style.height = height;
138
- if (style != undefined) el_desmos.style.cssText += style;
139
-
140
- if (!lazy) {
141
- inject(el_desmos, source.textContent);
142
- }
143
- else {
144
- let observer = new IntersectionObserver(([entry]) => {
145
- if (entry.isIntersecting) {
146
- inject(el_desmos, source.textContent);
147
- observer.disconnect();
148
- }
149
- });
150
- observer.observe(el_desmos);
151
- lazy_observers.push(observer);
152
- }
153
- }
154
-
155
- return () => {
156
- desmos_instances.forEach(d => d.destroy());
157
- lazy_observers.forEach(o => o.disconnect());
158
- };
126
+ let sources = root.querySelectorAll("pre[lang='desmos'], pre.language-desmos");
127
+
128
+ for (let source of sources.values()) {
129
+ source.style.display = "none";
130
+
131
+ let el_desmos = source.parentNode!.insertBefore(
132
+ document.createElement("div"),
133
+ source.nextSibling,
134
+ );
135
+
136
+ if (width != undefined) el_desmos.style.width = width;
137
+ if (height != undefined) el_desmos.style.height = height;
138
+ if (style != undefined) el_desmos.style.cssText += style;
139
+
140
+ if (!lazy) {
141
+ inject(el_desmos, source.textContent);
142
+ }
143
+ else {
144
+ let observer = new IntersectionObserver(([entry]) => {
145
+ if (entry.isIntersecting) {
146
+ inject(el_desmos, source.textContent);
147
+ observer.disconnect();
148
+ }
149
+ });
150
+ observer.observe(el_desmos);
151
+ lazy_observers.push(observer);
152
+ }
153
+ }
154
+
155
+ return () => {
156
+ desmos_instances.forEach(d => d.destroy());
157
+ lazy_observers.forEach(o => o.disconnect());
158
+ };
159
159
  });
160
160
 
161
161
  function inject(el_desmos: HTMLElement, source: string)
162
162
  {
163
- let desmos = Desmos.GraphingCalculator(el_desmos);
163
+ let desmos = Desmos.GraphingCalculator(el_desmos);
164
164
 
165
- if (settings != undefined) {
166
- desmos.updateSettings(settings);
167
- }
165
+ if (settings != undefined) {
166
+ desmos.updateSettings(settings);
167
+ }
168
168
 
169
- desmos_instances.push(desmos);
170
- compile(desmos, source, options);
169
+ desmos_instances.push(desmos);
170
+ compile(desmos, source, options);
171
171
  }
172
172
 
173
173
  </script>
174
174
 
175
175
 
176
176
  <div bind:this={root} style:display="contents">
177
- {@render children?.()}
177
+ {@render children?.()}
178
178
  </div>
@@ -1,3 +0,0 @@
1
- import { ArgIncantation, type EXPR } from "../incantation.js";
2
- export declare const EXPR_INCANTATIONS: ArgIncantation<EXPR>[];
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/magic/expr/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAM3D,eAAO,MAAM,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,EAInD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dark-mode.d.ts","sourceRoot":"","sources":["../../../src/magic/global/dark-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG1D,qBAAa,mBAAoB,SAAQ,WAAW,CAAC,MAAM,CAAC;IAE3D,SAAkB,WAAW,qEACuC;IAEpE,SAAkB,UAAU,UAAS;IAErC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU;CAI/B"}
@@ -1,9 +0,0 @@
1
- import { Incantation } from "../incantation.js";
2
- export class DarkModeIncantation extends Incantation {
3
- description = "Enable dark mode for the calculator, which inverts all colours.";
4
- identifier = "dark";
5
- apply(target) {
6
- target.updateSettings({ invertedColors: true });
7
- }
8
- }
9
- //# sourceMappingURL=dark-mode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dark-mode.js","sourceRoot":"","sources":["../../../src/magic/global/dark-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAe,MAAM,gBAAgB,CAAC;AAG1D,MAAM,OAAO,mBAAoB,SAAQ,WAAmB;IAEzC,WAAW,GAC1B,iEAAiE,CAAA;IAElD,UAAU,GAAG,MAAM,CAAA;IAErC,KAAK,CAAC,MAAyB;QAE9B,MAAM,CAAC,cAAc,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;CACD"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Implements incantations logic.
3
- *
4
- * Incantations are represented with `Incantation` and `ArgIncantation` objects. Individual incantations derive from one of these classes, defining their own evaluation and application logic.
5
- *
6
- * Defined incantations are listed under `*_INCANTATIONS` lists.
7
- */
8
- export { Incantation, ArgIncantation } from "./incantation.js";
9
- export type { GLOBAL, LOCAL, EXPR } from "./incantation.js";
10
- export { GLOBAL_INCANTATIONS } from "./global/index.js";
11
- export { LOCAL_INCANTATIONS } from "./local/index.js";
12
- export { EXPR_INCANTATIONS } from "./expr/index.js";
13
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/magic/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC5D,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC"}
@@ -1,15 +0,0 @@
1
- import { Incantation, type GLOBAL } from "../incantation";
2
-
3
-
4
- export class DarkModeIncantation extends Incantation<GLOBAL>
5
- {
6
- override readonly description
7
- = "Enable dark mode for the calculator, which inverts all colours."
8
-
9
- override readonly identifier = "dark"
10
-
11
- apply(target: Desmos.Calculator)
12
- {
13
- target.updateSettings({ invertedColors: true });
14
- }
15
- }