desmost 0.10.0 → 0.11.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 (167) hide show
  1. package/README.md +6 -6
  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.js +1 -1
  8. package/dist/compiler/format.js.map +1 -1
  9. package/dist/decompiler/decompile.d.ts +13 -5
  10. package/dist/decompiler/decompile.d.ts.map +1 -1
  11. package/dist/decompiler/decompile.js +24 -13
  12. package/dist/decompiler/decompile.js.map +1 -1
  13. package/dist/decompiler/emit.d.ts +5 -2
  14. package/dist/decompiler/emit.d.ts.map +1 -1
  15. package/dist/decompiler/emit.js +41 -20
  16. package/dist/decompiler/emit.js.map +1 -1
  17. package/dist/decompiler/extract.d.ts +1 -9
  18. package/dist/decompiler/extract.d.ts.map +1 -1
  19. package/dist/decompiler/extract.js +24 -58
  20. package/dist/decompiler/extract.js.map +1 -1
  21. package/dist/decompiler/format.d.ts +0 -1
  22. package/dist/decompiler/format.d.ts.map +1 -1
  23. package/dist/decompiler/format.js +3 -9
  24. package/dist/decompiler/format.js.map +1 -1
  25. package/dist/errors.d.ts +14 -7
  26. package/dist/errors.d.ts.map +1 -1
  27. package/dist/errors.js +20 -2
  28. package/dist/errors.js.map +1 -1
  29. package/dist/magic/expr/index.js +6 -6
  30. package/dist/magic/expr/index.js.map +1 -1
  31. package/dist/magic/expr/latex.d.ts +5 -2
  32. package/dist/magic/expr/latex.d.ts.map +1 -1
  33. package/dist/magic/expr/latex.js +4 -2
  34. package/dist/magic/expr/latex.js.map +1 -1
  35. package/dist/magic/expr/text.d.ts +5 -2
  36. package/dist/magic/expr/text.d.ts.map +1 -1
  37. package/dist/magic/expr/text.js +4 -2
  38. package/dist/magic/expr/text.js.map +1 -1
  39. package/dist/magic/global/{dark-mode.d.ts → dark.d.ts} +6 -2
  40. package/dist/magic/global/dark.d.ts.map +1 -0
  41. package/dist/magic/global/dark.js +20 -0
  42. package/dist/magic/global/dark.js.map +1 -0
  43. package/dist/magic/global/desmos.d.ts +4 -1
  44. package/dist/magic/global/desmos.d.ts.map +1 -1
  45. package/dist/magic/global/desmos.js +23 -0
  46. package/dist/magic/global/desmos.js.map +1 -1
  47. package/dist/magic/global/index.d.ts +5 -5
  48. package/dist/magic/global/index.d.ts.map +1 -1
  49. package/dist/magic/global/index.js +8 -11
  50. package/dist/magic/global/index.js.map +1 -1
  51. package/dist/magic/global/viewport.d.ts +3 -0
  52. package/dist/magic/global/viewport.d.ts.map +1 -1
  53. package/dist/magic/global/viewport.js +20 -0
  54. package/dist/magic/global/viewport.js.map +1 -1
  55. package/dist/magic/incantation.d.ts +15 -2
  56. package/dist/magic/incantation.d.ts.map +1 -1
  57. package/dist/magic/incantation.js +8 -1
  58. package/dist/magic/incantation.js.map +1 -1
  59. package/dist/magic/local/anim.d.ts +5 -1
  60. package/dist/magic/local/anim.d.ts.map +1 -1
  61. package/dist/magic/local/anim.js +12 -1
  62. package/dist/magic/local/anim.js.map +1 -1
  63. package/dist/magic/local/colour.d.ts +7 -3
  64. package/dist/magic/local/colour.d.ts.map +1 -1
  65. package/dist/magic/local/colour.js +13 -3
  66. package/dist/magic/local/colour.js.map +1 -1
  67. package/dist/magic/local/dashed.d.ts +5 -1
  68. package/dist/magic/local/dashed.d.ts.map +1 -1
  69. package/dist/magic/local/dashed.js +12 -1
  70. package/dist/magic/local/dashed.js.map +1 -1
  71. package/dist/magic/local/fill.d.ts +5 -1
  72. package/dist/magic/local/fill.d.ts.map +1 -1
  73. package/dist/magic/local/fill.js +15 -1
  74. package/dist/magic/local/fill.js.map +1 -1
  75. package/dist/magic/local/hide.d.ts +5 -1
  76. package/dist/magic/local/hide.d.ts.map +1 -1
  77. package/dist/magic/local/hide.js +12 -1
  78. package/dist/magic/local/hide.js.map +1 -1
  79. package/dist/magic/local/index.d.ts +13 -2
  80. package/dist/magic/local/index.d.ts.map +1 -1
  81. package/dist/magic/local/index.js +24 -24
  82. package/dist/magic/local/index.js.map +1 -1
  83. package/dist/magic/local/label.d.ts +6 -2
  84. package/dist/magic/local/label.d.ts.map +1 -1
  85. package/dist/magic/local/label.js +19 -1
  86. package/dist/magic/local/label.js.map +1 -1
  87. package/dist/magic/local/line.d.ts +5 -1
  88. package/dist/magic/local/line.d.ts.map +1 -1
  89. package/dist/magic/local/line.js +19 -1
  90. package/dist/magic/local/line.js.map +1 -1
  91. package/dist/magic/local/no-line.d.ts +5 -1
  92. package/dist/magic/local/no-line.d.ts.map +1 -1
  93. package/dist/magic/local/no-line.js +12 -1
  94. package/dist/magic/local/no-line.js.map +1 -1
  95. package/dist/magic/local/point.d.ts +5 -1
  96. package/dist/magic/local/point.d.ts.map +1 -1
  97. package/dist/magic/local/point.js +19 -1
  98. package/dist/magic/local/point.js.map +1 -1
  99. package/dist/magic/local/secret.d.ts +5 -1
  100. package/dist/magic/local/secret.d.ts.map +1 -1
  101. package/dist/magic/local/secret.js +12 -1
  102. package/dist/magic/local/secret.js.map +1 -1
  103. package/dist/magic/local/slider.d.ts +5 -1
  104. package/dist/magic/local/slider.d.ts.map +1 -1
  105. package/dist/magic/local/slider.js +13 -1
  106. package/dist/magic/local/slider.js.map +1 -1
  107. package/dist/parser/ast.d.ts +9 -3
  108. package/dist/parser/ast.d.ts.map +1 -1
  109. package/dist/parser/ast.js +3 -1
  110. package/dist/parser/ast.js.map +1 -1
  111. package/dist/parser/desmost-parser.d.ts +2 -2
  112. package/dist/parser/desmost-parser.d.ts.map +1 -1
  113. package/dist/parser/desmost-parser.js +21 -19
  114. package/dist/parser/desmost-parser.js.map +1 -1
  115. package/dist/parser/errors.d.ts +11 -0
  116. package/dist/parser/errors.d.ts.map +1 -0
  117. package/dist/parser/errors.js +4 -0
  118. package/dist/parser/errors.js.map +1 -0
  119. package/dist/parser/generic-parser.d.ts +13 -11
  120. package/dist/parser/generic-parser.d.ts.map +1 -1
  121. package/dist/parser/generic-parser.js +21 -24
  122. package/dist/parser/generic-parser.js.map +1 -1
  123. package/dist/utils.js +1 -1
  124. package/dist/utils.js.map +1 -1
  125. package/package.json +1 -1
  126. package/src/compiler/compile.ts +1 -1
  127. package/src/compiler/compiler.ts +10 -9
  128. package/src/compiler/format.ts +1 -1
  129. package/src/decompiler/decompile.ts +30 -14
  130. package/src/decompiler/emit.ts +57 -25
  131. package/src/decompiler/extract.ts +30 -89
  132. package/src/decompiler/format.ts +3 -14
  133. package/src/decompiler/readme.md +2 -2
  134. package/src/errors.ts +13 -7
  135. package/src/magic/.template.ts +8 -0
  136. package/src/magic/expr/index.ts +6 -7
  137. package/src/magic/expr/latex.ts +8 -4
  138. package/src/magic/expr/text.ts +8 -4
  139. package/src/magic/global/dark.ts +29 -0
  140. package/src/magic/global/desmos.ts +35 -5
  141. package/src/magic/global/index.ts +8 -14
  142. package/src/magic/global/viewport.ts +29 -0
  143. package/src/magic/incantation.ts +28 -6
  144. package/src/magic/local/anim.ts +16 -3
  145. package/src/magic/local/colour.ts +18 -6
  146. package/src/magic/local/dashed.ts +16 -2
  147. package/src/magic/local/fill.ts +20 -3
  148. package/src/magic/local/hide.ts +16 -2
  149. package/src/magic/local/index.ts +24 -25
  150. package/src/magic/local/label.ts +31 -8
  151. package/src/magic/local/line.ts +25 -3
  152. package/src/magic/local/no-line.ts +16 -2
  153. package/src/magic/local/point.ts +27 -3
  154. package/src/magic/local/secret.ts +16 -2
  155. package/src/magic/local/slider.ts +18 -3
  156. package/src/parser/ast.ts +10 -7
  157. package/src/parser/desmost-parser.ts +25 -21
  158. package/src/parser/errors.ts +10 -0
  159. package/src/parser/generic-parser.ts +23 -25
  160. package/src/utils.ts +1 -1
  161. package/svelte/desmost.svelte +107 -107
  162. package/dist/magic/expr/index.d.ts +0 -3
  163. package/dist/magic/expr/index.d.ts.map +0 -1
  164. package/dist/magic/global/dark-mode.d.ts.map +0 -1
  165. package/dist/magic/global/dark-mode.js +0 -9
  166. package/dist/magic/global/dark-mode.js.map +0 -1
  167. package/src/magic/global/dark-mode.ts +0 -15
@@ -1,12 +1,14 @@
1
1
  import { Incantation, ArgIncantation } from "../incantation.js";
2
2
  import { DesmostError } from "../../errors.js";
3
+ import { Ast } from "../../parser/index.js";
3
4
  const VALID_COLOURS = ["RED", "BLUE", "GREEN", "PURPLE", "ORANGE", "BLACK"];
4
5
  export class ColourIncantation extends ArgIncantation {
5
- description = "Change the colour of a rendered expression, such as a line, region, polygon, etc.";
6
- identifier = "color";
7
- alias = "colour";
6
+ effect = Incantation.Effect.LOCAL;
7
+ identifier = "colour";
8
+ alias = "color";
8
9
  requires_arg = true;
9
10
  arg_type = Incantation.ArgType.ENUM;
11
+ description = "Change the colour of a rendered expression, such as a line, region, polygon, etc.";
10
12
  apply(target, data) {
11
13
  super.require_expr_type(target.type, "expression");
12
14
  target.color = data;
@@ -27,5 +29,13 @@ export class ColourIncantation extends ArgIncantation {
27
29
  return internal;
28
30
  }
29
31
  }
32
+ extract(target) {
33
+ return {
34
+ kind: Ast.Kind.INCANTATION_INVOCATION,
35
+ incantation: colour,
36
+ arg_raw: target.color, // FIXME use name
37
+ };
38
+ }
30
39
  }
40
+ export const colour = new ColourIncantation();
31
41
  //# sourceMappingURL=colour.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"colour.js","sourceRoot":"","sources":["../../../src/magic/local/colour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAO5C,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAG5E,MAAM,OAAO,iBAAkB,SAAQ,cAAqB;IAEzC,WAAW,GAC1B,mFAAmF,CAAA;IAEpE,UAAU,GAAK,OAAO,CAAA;IACtB,KAAK,GAAU,QAAQ,CAAA;IACvB,YAAY,GAAG,IAAI,CAAA;IACnB,QAAQ,GAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAA;IAEhD,KAAK,CAAC,MAA8B,EAAE,IAAkB;QAEhE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;IACrB,CAAC;IAEQ,YAAY,CAAC,IAAY,EAAE,OAAuB;QAE1D,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAEvC,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,OAAO,MAAM,CAAC,MAAM,CAAC,MAA0B,CAAC,CAAC;QAClD,CAAC;aACI,CAAC;YACL,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAA0B,CAAC,CAAC;YAEzD,IAAI,OAAO,CAAC,UAAU,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjD,MAAM,IAAI,YAAY,CAAC,eAAe,CAAC;oBACtC,GAAG,EAAG,sCAAsC,IAAI,IAAI;oBACpD,IAAI,EAAE,qBAAqB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBACrD,CAAC,CAAC;YACJ,CAAC;YAED,OAAO,QAAQ,CAAC;QACjB,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"colour.js","sourceRoot":"","sources":["../../../src/magic/local/colour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAC;AAGzE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAMnC,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAG5E,MAAM,OAAO,iBAAkB,SAAQ,cAAqB;IAEzC,MAAM,GAAS,WAAW,CAAC,MAAM,CAAC,KAAK,CAAA;IACvC,UAAU,GAAK,QAAQ,CAAA;IACvB,KAAK,GAAU,OAAO,CAAA;IACtB,YAAY,GAAG,IAAI,CAAA;IACnB,QAAQ,GAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAA;IACvC,WAAW,GAC1B,mFAAmF,CAAA;IAE7E,KAAK,CAAC,MAA8B,EAAE,IAAkB;QAEhE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;IACrB,CAAC;IAEQ,YAAY,CAAC,IAAY,EAAE,OAAuB;QAE1D,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAEvC,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,OAAO,MAAM,CAAC,MAAM,CAAC,MAA0B,CAAC,CAAC;QAClD,CAAC;aACI,CAAC;YACL,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAA0B,CAAC,CAAC;YAEzD,IAAI,OAAO,CAAC,UAAU,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjD,MAAM,IAAI,YAAY,CAAC,eAAe,CAAC;oBACtC,GAAG,EAAG,sCAAsC,IAAI,IAAI;oBACpD,IAAI,EAAE,qBAAqB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBACrD,CAAC,CAAC;YACJ,CAAC;YAED,OAAO,QAAQ,CAAC;QACjB,CAAC;IACF,CAAC;IAEQ,OAAO,CAAC,MAAyB;QAEzC,OAAO;YACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB;YACrC,WAAW,EAAE,MAAM;YACnB,OAAO,EAAE,MAAM,CAAC,KAAK,EAAG,iBAAiB;SACzC,CAAC;IACH,CAAC;CACD;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
@@ -1,7 +1,11 @@
1
1
  import { Incantation, type LOCAL } from "../incantation.js";
2
+ import { Ast } from "../../parser/index.js";
2
3
  export declare class DashedIncantation extends Incantation<LOCAL> {
3
- readonly description = "Render a block as a dashed line.";
4
+ readonly effect = Incantation.Effect.LOCAL;
4
5
  readonly identifier = "dashed";
6
+ readonly description = "Render a block as a dashed line.";
5
7
  apply(target: Desmos.ExpressionState): void;
8
+ extract(target: Desmos.Expression): Ast.IncantationInvocation<LOCAL> | void;
6
9
  }
10
+ export declare const dashed: DashedIncantation;
7
11
  //# sourceMappingURL=dashed.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashed.d.ts","sourceRoot":"","sources":["../../../src/magic/local/dashed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzD,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,KAAK,CAAC;IAExD,SAAkB,WAAW,sCACQ;IAErC,SAAkB,UAAU,YAAW;IAE9B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe;CAK7C"}
1
+ {"version":3,"file":"dashed.d.ts","sourceRoot":"","sources":["../../../src/magic/local/dashed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,KAAK,CAAC;IAExD,SAAkB,MAAM,4BAAiC;IACzD,SAAkB,UAAU,YAAW;IACvC,SAAkB,WAAW,sCACQ;IAE5B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe;IAMpC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,IAAI;CASpF;AAED,eAAO,MAAM,MAAM,mBAA0B,CAAC"}
@@ -1,10 +1,21 @@
1
1
  import { Incantation } from "../incantation.js";
2
+ import { Ast } from "../../parser/index.js";
2
3
  export class DashedIncantation extends Incantation {
3
- description = "Render a block as a dashed line.";
4
+ effect = Incantation.Effect.LOCAL;
4
5
  identifier = "dashed";
6
+ description = "Render a block as a dashed line.";
5
7
  apply(target) {
6
8
  super.require_expr_type(target.type, "expression");
7
9
  target.lineStyle = Desmos.Styles.DASHED;
8
10
  }
11
+ extract(target) {
12
+ if (target.lineStyle === Desmos.Styles.DASHED) {
13
+ return {
14
+ kind: Ast.Kind.INCANTATION_INVOCATION,
15
+ incantation: dashed,
16
+ };
17
+ }
18
+ }
9
19
  }
20
+ export const dashed = new DashedIncantation();
10
21
  //# sourceMappingURL=dashed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashed.js","sourceRoot":"","sources":["../../../src/magic/local/dashed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAC;AAGzD,MAAM,OAAO,iBAAkB,SAAQ,WAAkB;IAEtC,WAAW,GAC1B,kCAAkC,CAAA;IAEnB,UAAU,GAAG,QAAQ,CAAA;IAE9B,KAAK,CAAC,MAA8B;QAE5C,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACnD,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IACzC,CAAC;CACD"}
1
+ {"version":3,"file":"dashed.js","sourceRoot":"","sources":["../../../src/magic/local/dashed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,MAAM,OAAO,iBAAkB,SAAQ,WAAkB;IAEtC,MAAM,GAAS,WAAW,CAAC,MAAM,CAAC,KAAK,CAAA;IACvC,UAAU,GAAG,QAAQ,CAAA;IACrB,WAAW,GAC1B,kCAAkC,CAAA;IAE5B,KAAK,CAAC,MAA8B;QAE5C,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACnD,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IACzC,CAAC;IAEQ,OAAO,CAAC,MAAyB;QAEzC,IAAI,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC/C,OAAO;gBACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB;gBACrC,WAAW,EAAE,MAAM;aACnB,CAAC;QACH,CAAC;IACF,CAAC;CACD;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
@@ -1,13 +1,17 @@
1
1
  import { Incantation, ArgIncantation, type LOCAL } from "../incantation.js";
2
+ import { Ast } from "../../parser/index.js";
2
3
  interface FillOptions {
3
4
  opacity: number;
4
5
  }
5
6
  export declare class FillIncantation extends ArgIncantation<LOCAL> {
6
- readonly description = "Change fill styles for a rendered block.";
7
+ readonly effect = Incantation.Effect.LOCAL;
7
8
  readonly identifier = "fill";
8
9
  readonly requires_arg = true;
9
10
  readonly arg_type = Incantation.ArgType.OBJECT;
11
+ readonly description = "Change fill styles for a rendered block.";
10
12
  apply(target: Desmos.ExpressionState, data: FillOptions): void;
13
+ extract(target: Desmos.Expression): Ast.IncantationInvocation<LOCAL> | void;
11
14
  }
15
+ export declare const fill: FillIncantation;
12
16
  export {};
13
17
  //# sourceMappingURL=fill.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fill.d.ts","sourceRoot":"","sources":["../../../src/magic/local/fill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzE,UAAU,WAAW;IAEpB,OAAO,EAAE,MAAM,CAAC;CAChB;AAGD,qBAAa,eAAgB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAEzD,SAAkB,WAAW,8CACgB;IAE7C,SAAkB,UAAU,UAAW;IACvC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAElD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,WAAW;CAKhE"}
1
+ {"version":3,"file":"fill.d.ts","sourceRoot":"","sources":["../../../src/magic/local/fill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,UAAU,WAAW;IAEpB,OAAO,EAAE,MAAM,CAAC;CAChB;AAGD,qBAAa,eAAgB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAEzD,SAAkB,MAAM,4BAAiC;IACzD,SAAkB,UAAU,UAAW;IACvC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAC3D,SAAkB,WAAW,8CACgB;IAEpC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,WAAW;IAMvD,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,IAAI;CAYpF;AAED,eAAO,MAAM,IAAI,iBAAwB,CAAC"}
@@ -1,12 +1,26 @@
1
1
  import { Incantation, ArgIncantation } from "../incantation.js";
2
+ import { Ast } from "../../parser/index.js";
2
3
  export class FillIncantation extends ArgIncantation {
3
- description = "Change fill styles for a rendered block.";
4
+ effect = Incantation.Effect.LOCAL;
4
5
  identifier = "fill";
5
6
  requires_arg = true;
6
7
  arg_type = Incantation.ArgType.OBJECT;
8
+ description = "Change fill styles for a rendered block.";
7
9
  apply(target, data) {
8
10
  super.require_expr_type(target.type, "expression");
9
11
  target.fillOpacity = data.opacity;
10
12
  }
13
+ extract(target) {
14
+ if (target.fillOpacity) {
15
+ return {
16
+ kind: Ast.Kind.INCANTATION_INVOCATION,
17
+ incantation: fill,
18
+ arg_raw: super.emit_object_arg({
19
+ opacity: target.fillOpacity,
20
+ }),
21
+ };
22
+ }
23
+ }
11
24
  }
25
+ export const fill = new FillIncantation();
12
26
  //# sourceMappingURL=fill.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fill.js","sourceRoot":"","sources":["../../../src/magic/local/fill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAC;AASzE,MAAM,OAAO,eAAgB,SAAQ,cAAqB;IAEvC,WAAW,GAC1B,0CAA0C,CAAA;IAE3B,UAAU,GAAK,MAAM,CAAA;IACrB,YAAY,GAAG,IAAI,CAAA;IACnB,QAAQ,GAAO,WAAW,CAAC,OAAO,CAAC,MAAM,CAAA;IAElD,KAAK,CAAC,MAA8B,EAAE,IAAiB;QAE/D,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACnD,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;IACnC,CAAC;CACD"}
1
+ {"version":3,"file":"fill.js","sourceRoot":"","sources":["../../../src/magic/local/fill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AASnC,MAAM,OAAO,eAAgB,SAAQ,cAAqB;IAEvC,MAAM,GAAS,WAAW,CAAC,MAAM,CAAC,KAAK,CAAA;IACvC,UAAU,GAAK,MAAM,CAAA;IACrB,YAAY,GAAG,IAAI,CAAA;IACnB,QAAQ,GAAO,WAAW,CAAC,OAAO,CAAC,MAAM,CAAA;IACzC,WAAW,GAC1B,0CAA0C,CAAA;IAEpC,KAAK,CAAC,MAA8B,EAAE,IAAiB;QAE/D,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACnD,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;IACnC,CAAC;IAEQ,OAAO,CAAC,MAAyB;QAEzC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACxB,OAAO;gBACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB;gBACrC,WAAW,EAAE,IAAI;gBACjB,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC;oBAC9B,OAAO,EAAE,MAAM,CAAC,WAAW;iBAC3B,CAAC;aACF,CAAC;QACH,CAAC;IACF,CAAC;CACD;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC"}
@@ -1,7 +1,11 @@
1
1
  import { Incantation, type LOCAL } from "../incantation.js";
2
+ import { Ast } from "../../parser/index.js";
2
3
  export declare class HideIncantation extends Incantation<LOCAL> {
3
- readonly description = "Hide rendering for a block. This includes graphs, points, polygons, etc.";
4
+ readonly effect = Incantation.Effect.LOCAL;
4
5
  readonly identifier = "hide";
6
+ readonly description = "Hide rendering for a block. This includes graphs, points, polygons, etc.";
5
7
  apply(target: Desmos.ExpressionState): void;
8
+ extract(target: Desmos.Expression): Ast.IncantationInvocation<LOCAL> | void;
6
9
  }
10
+ export declare const hide: HideIncantation;
7
11
  //# sourceMappingURL=hide.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hide.d.ts","sourceRoot":"","sources":["../../../src/magic/local/hide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzD,qBAAa,eAAgB,SAAQ,WAAW,CAAC,KAAK,CAAC;IAEtD,SAAkB,WAAW,8EACgD;IAE7E,SAAkB,UAAU,UAAS;IAErC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe;CAKpC"}
1
+ {"version":3,"file":"hide.d.ts","sourceRoot":"","sources":["../../../src/magic/local/hide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,qBAAa,eAAgB,SAAQ,WAAW,CAAC,KAAK,CAAC;IAEtD,SAAkB,MAAM,4BAAiC;IACzD,SAAkB,UAAU,UAAS;IACrC,SAAkB,WAAW,8EACgD;IAE7E,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe;IAM3B,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,IAAI;CASpF;AAED,eAAO,MAAM,IAAI,iBAAwB,CAAC"}
@@ -1,10 +1,21 @@
1
1
  import { Incantation } from "../incantation.js";
2
+ import { Ast } from "../../parser/index.js";
2
3
  export class HideIncantation extends Incantation {
3
- description = "Hide rendering for a block. This includes graphs, points, polygons, etc.";
4
+ effect = Incantation.Effect.LOCAL;
4
5
  identifier = "hide";
6
+ description = "Hide rendering for a block. This includes graphs, points, polygons, etc.";
5
7
  apply(target) {
6
8
  super.require_expr_type(target.type, "expression");
7
9
  target.hidden = true;
8
10
  }
11
+ extract(target) {
12
+ if (target.hidden) {
13
+ return {
14
+ kind: Ast.Kind.INCANTATION_INVOCATION,
15
+ incantation: hide,
16
+ };
17
+ }
18
+ }
9
19
  }
20
+ export const hide = new HideIncantation();
10
21
  //# sourceMappingURL=hide.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hide.js","sourceRoot":"","sources":["../../../src/magic/local/hide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAC;AAGzD,MAAM,OAAO,eAAgB,SAAQ,WAAkB;IAEpC,WAAW,GAC1B,0EAA0E,CAAA;IAE3D,UAAU,GAAG,MAAM,CAAA;IAErC,KAAK,CAAC,MAA8B;QAEnC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;IACtB,CAAC;CACD"}
1
+ {"version":3,"file":"hide.js","sourceRoot":"","sources":["../../../src/magic/local/hide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,MAAM,OAAO,eAAgB,SAAQ,WAAkB;IAEpC,MAAM,GAAS,WAAW,CAAC,MAAM,CAAC,KAAK,CAAA;IACvC,UAAU,GAAG,MAAM,CAAA;IACnB,WAAW,GAC1B,0EAA0E,CAAA;IAE7E,KAAK,CAAC,MAA8B;QAEnC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;IACtB,CAAC;IAEQ,OAAO,CAAC,MAAyB;QAEzC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO;gBACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB;gBACrC,WAAW,EAAE,IAAI;aACjB,CAAC;QACH,CAAC;IACF,CAAC;CACD;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC"}
@@ -1,3 +1,14 @@
1
- import { Incantation, type LOCAL } from "../incantation.js";
2
- export declare const LOCAL_INCANTATIONS: Incantation<LOCAL>[];
1
+ export declare const LOCAL_INCANTATIONS: {
2
+ anim: import("./anim.js").AnimIncantation;
3
+ colour: import("./colour.js").ColourIncantation;
4
+ dashed: import("./dashed.js").DashedIncantation;
5
+ fill: import("./fill.js").FillIncantation;
6
+ hide: import("./hide.js").HideIncantation;
7
+ label: import("./label.js").LabelIncantation;
8
+ line: import("./line.js").LineIncantation;
9
+ no_line: import("./no-line.js").NoLineIncantation;
10
+ point: import("./point.js").PointIncantation;
11
+ secret: import("./secret.js").SecretIncantation;
12
+ slider: import("./slider.js").SliderIncantation;
13
+ };
3
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/magic/local/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAezD,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,KAAK,CAAC,EAalD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/magic/local/index.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;CAYe,CAAC"}
@@ -1,26 +1,26 @@
1
1
  import { Incantation } from "../incantation.js";
2
- import { AnimIncantation } from "./anim.js";
3
- import { ColourIncantation } from "./colour.js";
4
- import { DashedIncantation } from "./dashed.js";
5
- import { FillIncantation } from "./fill.js";
6
- import { HideIncantation } from "./hide.js";
7
- import { LabelIncantation } from "./label.js";
8
- import { LineIncantation } from "./line.js";
9
- import { NoLineIncantation } from "./no-line.js";
10
- import { PointIncantation } from "./point.js";
11
- import { SecretIncantation } from "./secret.js";
12
- import { SliderIncantation } from "./slider.js";
13
- export const LOCAL_INCANTATIONS = [
14
- new AnimIncantation(),
15
- new ColourIncantation(),
16
- new DashedIncantation(),
17
- new FillIncantation(),
18
- new HideIncantation(),
19
- new LabelIncantation(),
20
- new LineIncantation(),
21
- new NoLineIncantation(),
22
- new PointIncantation(),
23
- new SecretIncantation(),
24
- new SliderIncantation(),
25
- ];
2
+ import { anim } from "./anim.js";
3
+ import { colour } from "./colour.js";
4
+ import { dashed } from "./dashed.js";
5
+ import { fill } from "./fill.js";
6
+ import { hide } from "./hide.js";
7
+ import { label } from "./label.js";
8
+ import { line } from "./line.js";
9
+ import { no_line } from "./no-line.js";
10
+ import { point } from "./point.js";
11
+ import { secret } from "./secret.js";
12
+ import { slider } from "./slider.js";
13
+ export const LOCAL_INCANTATIONS = {
14
+ anim,
15
+ colour,
16
+ dashed,
17
+ fill,
18
+ hide,
19
+ label,
20
+ line,
21
+ no_line,
22
+ point,
23
+ secret,
24
+ slider,
25
+ };
26
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/magic/local/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAI,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAI,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAG,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAI,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAG,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG7C,MAAM,CAAC,MAAM,kBAAkB,GAC/B;IACC,IAAI,eAAe,EAAE;IACrB,IAAI,iBAAiB,EAAE;IACvB,IAAI,iBAAiB,EAAE;IACvB,IAAI,eAAe,EAAE;IACrB,IAAI,eAAe,EAAE;IACrB,IAAI,gBAAgB,EAAE;IACtB,IAAI,eAAe,EAAE;IACrB,IAAI,iBAAiB,EAAE;IACvB,IAAI,gBAAgB,EAAE;IACtB,IAAI,iBAAiB,EAAE;IACvB,IAAI,iBAAiB,EAAE;CACvB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/magic/local/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,IAAI,EAAK,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,MAAM,EAAG,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,MAAM,EAAG,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,IAAI,EAAK,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,IAAI,EAAK,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,KAAK,EAAI,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAK,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAI,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,MAAM,EAAG,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,MAAM,EAAG,MAAM,UAAU,CAAC;AAGnC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC,IAAI;IACJ,MAAM;IACN,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;CACuC,CAAC"}
@@ -1,18 +1,22 @@
1
1
  import { Incantation, ArgIncantation, type LOCAL } from "../incantation.js";
2
2
  import type { DesmostOptions } from "../../options.js";
3
+ import { Ast } from "../../parser/index.js";
3
4
  interface LabelOptions {
4
5
  text: string;
5
6
  show?: boolean;
6
7
  size?: number;
7
- pos?: "ABOVE" | "BELOW" | "LEFT" | "RIGHT" | "ABOVE_LEFT" | "ABOVE_RIGHT" | "BELOW_LEFT" | "BELOW_RIGHT";
8
+ pos?: "DEFAULT" | "ABOVE" | "BELOW" | "LEFT" | "RIGHT" | "ABOVE_LEFT" | "ABOVE_RIGHT" | "BELOW_LEFT" | "BELOW_RIGHT";
8
9
  }
9
10
  export declare class LabelIncantation extends ArgIncantation<LOCAL> {
10
- readonly description = "Label a block that evaluates to a point(s).";
11
+ readonly effect = Incantation.Effect.LOCAL;
11
12
  readonly identifier = "label";
12
13
  readonly requires_arg = true;
13
14
  readonly arg_type = Incantation.ArgType.OBJECT;
15
+ readonly description = "Label a block that evaluates to a point(s).";
14
16
  apply(target: Desmos.ExpressionState, data: LabelOptions): void;
15
17
  evaluate_arg(raw: string, options: DesmostOptions): LabelOptions;
18
+ extract(target: Desmos.Expression): Ast.IncantationInvocation<LOCAL> | void;
16
19
  }
20
+ export declare const label: LabelIncantation;
17
21
  export {};
18
22
  //# sourceMappingURL=label.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../../src/magic/local/label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,UAAU,YAAY;IAErB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,aAAa,CAAC;CACzG;AAUD,qBAAa,gBAAiB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAE1D,SAAkB,WAAW,iDACmB;IAEhD,SAAkB,UAAU,WAAY;IACxC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAElD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY;IAWxD,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,YAAY;CA4CzE"}
1
+ {"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../../src/magic/local/label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,UAAU,YAAY;IAErB,IAAI,EAAG,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EACD,SAAS,GACT,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GACpC,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,aAAa,CAAA;CAC9D;AAWD,qBAAa,gBAAiB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAE1D,SAAkB,MAAM,4BAAiC;IACzD,SAAkB,UAAU,WAAY;IACxC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAC3D,SAAkB,WAAW,iDACmB;IAEvC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY;IAWxD,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,YAAY;IA6ChE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,IAAI;CAepF;AAED,eAAO,MAAM,KAAK,kBAAyB,CAAC"}
@@ -1,15 +1,18 @@
1
1
  import { Incantation, ArgIncantation } from "../incantation.js";
2
2
  import { DesmostError } from "../../errors.js";
3
+ import { Ast } from "../../parser/index.js";
3
4
  const VALID_FIELDS = ["text", "show", "size", "pos"];
4
5
  const VALID_POSITIONS = [
6
+ "DEFAULT",
5
7
  "ABOVE", "BELOW", "LEFT", "RIGHT",
6
8
  "ABOVE_LEFT", "ABOVE_RIGHT", "BELOW_LEFT", "BELOW_RIGHT",
7
9
  ];
8
10
  export class LabelIncantation extends ArgIncantation {
9
- description = "Label a block that evaluates to a point(s).";
11
+ effect = Incantation.Effect.LOCAL;
10
12
  identifier = "label";
11
13
  requires_arg = true;
12
14
  arg_type = Incantation.ArgType.OBJECT;
15
+ description = "Label a block that evaluates to a point(s).";
13
16
  apply(target, data) {
14
17
  super.require_expr_type(target.type, "expression");
15
18
  target.label = data.text;
@@ -56,5 +59,20 @@ export class LabelIncantation extends ArgIncantation {
56
59
  }
57
60
  return out;
58
61
  }
62
+ extract(target) {
63
+ if (target.label || target.showLabel) {
64
+ return {
65
+ kind: Ast.Kind.INCANTATION_INVOCATION,
66
+ incantation: label,
67
+ arg_raw: super.emit_object_arg({
68
+ text: target.label,
69
+ show: target.showLabel,
70
+ size: target.labelSize,
71
+ pos: target.labelOrientation,
72
+ }),
73
+ };
74
+ }
75
+ }
59
76
  }
77
+ export const label = new LabelIncantation();
60
78
  //# sourceMappingURL=label.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"label.js","sourceRoot":"","sources":["../../../src/magic/local/label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAY5C,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAErD,MAAM,eAAe,GAAG;IACvB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IACjC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa;CACxD,CAAC;AAGF,MAAM,OAAO,gBAAiB,SAAQ,cAAqB;IAExC,WAAW,GAC1B,6CAA6C,CAAA;IAE9B,UAAU,GAAK,OAAO,CAAA;IACtB,YAAY,GAAG,IAAI,CAAA;IACnB,QAAQ,GAAO,WAAW,CAAC,OAAO,CAAC,MAAM,CAAA;IAElD,KAAK,CAAC,MAA8B,EAAE,IAAkB;QAEhE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;QACrC,mCAAmC;QACnC,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QACzD,mCAAmC;QACnC,IAAI,IAAI,CAAC,GAAG,IAAK,SAAS;YAAE,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC;IAChE,CAAC;IAEQ,YAAY,CAAC,GAAW,EAAE,OAAuB;QAEzD,IAAI,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAiB,CAAC;QAE3D,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE;gBAC3B,GAAG,EAAG,gCAAgC;gBACtC,IAAI,EAAE,oBAAoB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aACpD,CAAC,CAAC;YAEH,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,YAAY,CAAC,YAAY,CAAC;oBACnC,GAAG,EAAG,8BAA8B;oBACpC,IAAI,EAAE,4DAA4D;iBAClE,CAAC,CAAC;YACJ,CAAC;YAED,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,GAAG,IAAI,WAAW,EAAE,CAAC;YACnC,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAE5D,IAAI,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnC,8BAA8B;gBAC9B,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;YACf,CAAC;iBACI,CAAC;gBACL,6BAA6B;gBAC7B,IAAI,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;gBAEhD,IAAI,OAAO,CAAC,UAAU,IAAI,WAAW,IAAI,SAAS,EAAE,CAAC;oBACpD,MAAM,IAAI,YAAY,CAAC,eAAe,CAAC;wBACtC,GAAG,EAAG,2CAA2C,GAAG,EAAE;wBACtD,IAAI,EAAE,6BAA6B,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;qBAC/D,CAAC,CAAC;gBACJ,CAAC;gBAED,GAAG,CAAC,GAAG,GAAG,WAAW,CAAC;YACvB,CAAC;QACF,CAAC;QAED,OAAO,GAAG,CAAC;IACZ,CAAC;CACD"}
1
+ {"version":3,"file":"label.js","sourceRoot":"","sources":["../../../src/magic/local/label.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,22 @@
1
1
  import { Incantation, ArgIncantation, type LOCAL } from "../incantation.js";
2
2
  import type { DesmostOptions } from "../../options.js";
3
3
  import type { Fallible } from "../../errors.js";
4
+ import { Ast } from "../../parser/index.js";
4
5
  interface LineOptions {
5
6
  style?: keyof typeof Desmos.Styles;
6
7
  width?: number;
7
8
  opacity?: number;
8
9
  }
9
10
  export declare class LineIncantation extends ArgIncantation<LOCAL> {
10
- readonly description = "Change line styles for a rendered block.";
11
+ readonly effect = Incantation.Effect.LOCAL;
11
12
  readonly identifier = "line";
12
13
  readonly requires_arg = true;
13
14
  readonly arg_type = Incantation.ArgType.OBJECT;
15
+ readonly description = "Change line styles for a rendered block.";
14
16
  apply(target: Desmos.ExpressionState, data: LineOptions): void;
15
17
  evaluate_arg(raw: string, options: DesmostOptions): Fallible<LineOptions>;
18
+ extract(target: Desmos.Expression): Ast.IncantationInvocation<LOCAL> | void;
16
19
  }
20
+ export declare const line: LineIncantation;
17
21
  export {};
18
22
  //# sourceMappingURL=line.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"line.d.ts","sourceRoot":"","sources":["../../../src/magic/local/line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7C,UAAU,WAAW;IAEpB,KAAK,CAAC,EAAI,MAAM,OAAO,MAAM,CAAC,MAAM,CAAC;IACrC,KAAK,CAAC,EAAI,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD,qBAAa,eAAgB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAEzD,SAAkB,WAAW,8CACgB;IAE7C,SAAkB,UAAU,UAAW;IACvC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAElD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,WAAW;IASvD,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC;CAWlF"}
1
+ {"version":3,"file":"line.d.ts","sourceRoot":"","sources":["../../../src/magic/local/line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,UAAU,WAAW;IAEpB,KAAK,CAAC,EAAI,MAAM,OAAO,MAAM,CAAC,MAAM,CAAC;IACrC,KAAK,CAAC,EAAI,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD,qBAAa,eAAgB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAEzD,SAAkB,MAAM,4BAAiC;IACzD,SAAkB,UAAU,UAAW;IACvC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAC3D,SAAkB,WAAW,8CACgB;IAEpC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,WAAW;IASvD,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC;IAYzE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,IAAI;CAkBpF;AAED,eAAO,MAAM,IAAI,iBAAwB,CAAC"}
@@ -1,10 +1,12 @@
1
1
  import { Incantation, ArgIncantation } from "../incantation.js";
2
+ import { Ast } from "../../parser/index.js";
2
3
  const VALID_FIELDS = ["style", "width", "opacity"];
3
4
  export class LineIncantation extends ArgIncantation {
4
- description = "Change line styles for a rendered block.";
5
+ effect = Incantation.Effect.LOCAL;
5
6
  identifier = "line";
6
7
  requires_arg = true;
7
8
  arg_type = Incantation.ArgType.OBJECT;
9
+ description = "Change line styles for a rendered block.";
8
10
  apply(target, data) {
9
11
  super.require_expr_type(target.type, "expression");
10
12
  if (data.style != undefined)
@@ -22,5 +24,21 @@ export class LineIncantation extends ArgIncantation {
22
24
  }
23
25
  return out;
24
26
  }
27
+ extract(target) {
28
+ if (target.lineStyle !== Desmos.Styles.SOLID
29
+ || target.lineWidth
30
+ || target.lineOpacity) {
31
+ return {
32
+ kind: Ast.Kind.INCANTATION_INVOCATION,
33
+ incantation: line,
34
+ arg_raw: super.emit_object_arg({
35
+ style: target.lineStyle,
36
+ width: target.lineWidth,
37
+ opacity: target.lineOpacity,
38
+ }),
39
+ };
40
+ }
41
+ }
25
42
  }
43
+ export const line = new LineIncantation();
26
44
  //# sourceMappingURL=line.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"line.js","sourceRoot":"","sources":["../../../src/magic/local/line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAC;AAazE,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAGnD,MAAM,OAAO,eAAgB,SAAQ,cAAqB;IAEvC,WAAW,GAC1B,0CAA0C,CAAA;IAE3B,UAAU,GAAK,MAAM,CAAA;IACrB,YAAY,GAAG,IAAI,CAAA;IACnB,QAAQ,GAAO,WAAW,CAAC,OAAO,CAAC,MAAM,CAAA;IAElD,KAAK,CAAC,MAA8B,EAAE,IAAiB;QAE/D,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,KAAK,IAAM,SAAS;YAAE,MAAM,CAAC,SAAS,GAAK,IAAI,CAAC,KAAK,CAAC;QAC/D,IAAI,IAAI,CAAC,KAAK,IAAM,SAAS;YAAE,MAAM,CAAC,SAAS,GAAK,IAAI,CAAC,KAAK,CAAC;QAC/D,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS;YAAE,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;IAClE,CAAC;IAEQ,YAAY,CAAC,GAAW,EAAE,OAAuB;QAEzD,IAAI,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAgB,CAAC;QAE1D,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC5B,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,GAAG,CAAC;IACZ,CAAC;CACD"}
1
+ {"version":3,"file":"line.js","sourceRoot":"","sources":["../../../src/magic/local/line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAC;AAIzE,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAUnC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAGnD,MAAM,OAAO,eAAgB,SAAQ,cAAqB;IAEvC,MAAM,GAAS,WAAW,CAAC,MAAM,CAAC,KAAK,CAAA;IACvC,UAAU,GAAK,MAAM,CAAA;IACrB,YAAY,GAAG,IAAI,CAAA;IACnB,QAAQ,GAAO,WAAW,CAAC,OAAO,CAAC,MAAM,CAAA;IACzC,WAAW,GAC1B,0CAA0C,CAAA;IAEpC,KAAK,CAAC,MAA8B,EAAE,IAAiB;QAE/D,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,KAAK,IAAM,SAAS;YAAE,MAAM,CAAC,SAAS,GAAK,IAAI,CAAC,KAAK,CAAC;QAC/D,IAAI,IAAI,CAAC,KAAK,IAAM,SAAS;YAAE,MAAM,CAAC,SAAS,GAAK,IAAI,CAAC,KAAK,CAAC;QAC/D,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS;YAAE,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;IAClE,CAAC;IAEQ,YAAY,CAAC,GAAW,EAAE,OAAuB;QAEzD,IAAI,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAgB,CAAC;QAE1D,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC5B,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,GAAG,CAAC;IACZ,CAAC;IAEQ,OAAO,CAAC,MAAyB;QAEzC,IACE,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK;eACtC,MAAM,CAAC,SAAS;eAChB,MAAM,CAAC,WAAW,EACpB,CAAC;YACF,OAAO;gBACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB;gBACrC,WAAW,EAAE,IAAI;gBACjB,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC;oBAC9B,KAAK,EAAI,MAAM,CAAC,SAAS;oBACzB,KAAK,EAAI,MAAM,CAAC,SAAS;oBACzB,OAAO,EAAE,MAAM,CAAC,WAAW;iBAC3B,CAAC;aACF,CAAC;QACH,CAAC;IACF,CAAC;CACD;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC"}
@@ -1,7 +1,11 @@
1
1
  import { Incantation, type LOCAL } from "../incantation.js";
2
+ import { Ast } from "../../parser/index.js";
2
3
  export declare class NoLineIncantation extends Incantation<LOCAL> {
3
- readonly description = "Disable rendering lines for a block.";
4
+ readonly effect = Incantation.Effect.LOCAL;
4
5
  readonly identifier = "no-line";
6
+ readonly description = "Disable rendering lines for a block.";
5
7
  apply(target: Desmos.ExpressionState): void;
8
+ extract(target: Desmos.Expression): Ast.IncantationInvocation<LOCAL> | void;
6
9
  }
10
+ export declare const no_line: NoLineIncantation;
7
11
  //# sourceMappingURL=no-line.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"no-line.d.ts","sourceRoot":"","sources":["../../../src/magic/local/no-line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzD,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,KAAK,CAAC;IAExD,SAAkB,WAAW,0CACY;IAEzC,SAAkB,UAAU,aAAY;IAE/B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe;CAK7C"}
1
+ {"version":3,"file":"no-line.d.ts","sourceRoot":"","sources":["../../../src/magic/local/no-line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,KAAK,CAAC;IAExD,SAAkB,MAAM,4BAAiC;IACzD,SAAkB,UAAU,aAAY;IACxC,SAAkB,WAAW,0CACY;IAEhC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe;IAMpC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,IAAI;CASpF;AAED,eAAO,MAAM,OAAO,mBAA0B,CAAC"}
@@ -1,10 +1,21 @@
1
1
  import { Incantation } from "../incantation.js";
2
+ import { Ast } from "../../parser/index.js";
2
3
  export class NoLineIncantation extends Incantation {
3
- description = "Disable rendering lines for a block.";
4
+ effect = Incantation.Effect.LOCAL;
4
5
  identifier = "no-line";
6
+ description = "Disable rendering lines for a block.";
5
7
  apply(target) {
6
8
  super.require_expr_type(target.type, "expression");
7
9
  target.lines = false;
8
10
  }
11
+ extract(target) {
12
+ if (target.lines === false) {
13
+ return {
14
+ kind: Ast.Kind.INCANTATION_INVOCATION,
15
+ incantation: no_line,
16
+ };
17
+ }
18
+ }
9
19
  }
20
+ export const no_line = new NoLineIncantation();
10
21
  //# sourceMappingURL=no-line.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"no-line.js","sourceRoot":"","sources":["../../../src/magic/local/no-line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAC;AAGzD,MAAM,OAAO,iBAAkB,SAAQ,WAAkB;IAEtC,WAAW,GAC1B,sCAAsC,CAAA;IAEvB,UAAU,GAAG,SAAS,CAAA;IAE/B,KAAK,CAAC,MAA8B;QAE5C,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IACtB,CAAC;CACD"}
1
+ {"version":3,"file":"no-line.js","sourceRoot":"","sources":["../../../src/magic/local/no-line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,MAAM,OAAO,iBAAkB,SAAQ,WAAkB;IAEtC,MAAM,GAAS,WAAW,CAAC,MAAM,CAAC,KAAK,CAAA;IACvC,UAAU,GAAG,SAAS,CAAA;IACtB,WAAW,GAC1B,sCAAsC,CAAA;IAEhC,KAAK,CAAC,MAA8B;QAE5C,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IACtB,CAAC;IAEQ,OAAO,CAAC,MAAyB;QAEzC,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YAC5B,OAAO;gBACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB;gBACrC,WAAW,EAAE,OAAO;aACpB,CAAC;QACH,CAAC;IACF,CAAC;CACD;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
@@ -1,15 +1,19 @@
1
1
  import { Incantation, ArgIncantation, type LOCAL } from "../incantation.js";
2
+ import { Ast } from "../../parser/index.js";
2
3
  interface PointStyles {
3
4
  style?: keyof typeof Desmos.Styles;
4
5
  size?: number;
5
6
  opacity?: number;
6
7
  }
7
8
  export declare class PointIncantation extends ArgIncantation<LOCAL> {
8
- readonly description = "";
9
+ readonly effect = Incantation.Effect.LOCAL;
9
10
  readonly identifier = "point";
10
11
  readonly requires_arg = true;
11
12
  readonly arg_type = Incantation.ArgType.OBJECT;
13
+ readonly description = "";
12
14
  apply(target: Desmos.ExpressionState, data: Partial<PointStyles>): void;
15
+ extract(target: Desmos.Expression): Ast.IncantationInvocation<LOCAL> | void;
13
16
  }
17
+ export declare const point: PointIncantation;
14
18
  export {};
15
19
  //# sourceMappingURL=point.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/magic/local/point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzE,UAAU,WAAW;IAEpB,KAAK,CAAC,EAAI,MAAM,OAAO,MAAM,CAAC,MAAM,CAAC;IACrC,IAAI,CAAC,EAAK,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,qBAAa,gBAAiB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAE1D,SAAkB,WAAW,MACxB;IAEL,SAAkB,UAAU,WAAY;IACxC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAElD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC;CAQzE"}
1
+ {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/magic/local/point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,UAAU,WAAW;IAEpB,KAAK,CAAC,EAAI,MAAM,OAAO,MAAM,CAAC,MAAM,CAAC;IACrC,IAAI,CAAC,EAAK,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,qBAAa,gBAAiB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAE1D,SAAkB,MAAM,4BAAiC;IACzD,SAAkB,UAAU,WAAY;IACxC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAC3D,SAAkB,WAAW,MACxB;IAEI,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC;IAShE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,IAAI;CAmBpF;AAED,eAAO,MAAM,KAAK,kBAAyB,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import { Incantation, ArgIncantation } from "../incantation.js";
2
+ import { Ast } from "../../parser/index.js";
2
3
  export class PointIncantation extends ArgIncantation {
3
- description = "";
4
+ effect = Incantation.Effect.LOCAL;
4
5
  identifier = "point";
5
6
  requires_arg = true;
6
7
  arg_type = Incantation.ArgType.OBJECT;
8
+ description = "";
7
9
  apply(target, data) {
8
10
  super.require_expr_type(target.type, "expression");
9
11
  if (data.style != undefined)
@@ -13,5 +15,21 @@ export class PointIncantation extends ArgIncantation {
13
15
  if (data.opacity != undefined)
14
16
  target.pointOpacity = data.opacity;
15
17
  }
18
+ extract(target) {
19
+ if (target.pointStyle && target.pointStyle !== Desmos.Styles.POINT
20
+ || target.pointSize
21
+ || target.pointOpacity) {
22
+ return {
23
+ kind: Ast.Kind.INCANTATION_INVOCATION,
24
+ incantation: point,
25
+ arg_raw: super.emit_object_arg({
26
+ style: target.pointStyle,
27
+ size: target.pointSize,
28
+ opacity: target.pointOpacity,
29
+ }),
30
+ };
31
+ }
32
+ }
16
33
  }
34
+ export const point = new PointIncantation();
17
35
  //# sourceMappingURL=point.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"point.js","sourceRoot":"","sources":["../../../src/magic/local/point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAC;AAWzE,MAAM,OAAO,gBAAiB,SAAQ,cAAqB;IAExC,WAAW,GAC1B,EAAE,CAAA;IAEa,UAAU,GAAK,OAAO,CAAA;IACtB,YAAY,GAAG,IAAI,CAAA;IACnB,QAAQ,GAAO,WAAW,CAAC,OAAO,CAAC,MAAM,CAAA;IAElD,KAAK,CAAC,MAA8B,EAAE,IAA0B;QAExE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,KAAK,IAAM,SAAS;YAAG,MAAM,CAAC,UAAU,GAAK,IAAI,CAAC,KAAK,CAAC;QACjE,IAAI,IAAI,CAAC,IAAI,IAAO,SAAS;YAAG,MAAM,CAAC,SAAS,GAAM,IAAI,CAAC,IAAI,CAAC;QAChE,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS;YAAG,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;IACpE,CAAC;CACD"}
1
+ {"version":3,"file":"point.js","sourceRoot":"","sources":["../../../src/magic/local/point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAWnC,MAAM,OAAO,gBAAiB,SAAQ,cAAqB;IAExC,MAAM,GAAS,WAAW,CAAC,MAAM,CAAC,KAAK,CAAA;IACvC,UAAU,GAAK,OAAO,CAAA;IACtB,YAAY,GAAG,IAAI,CAAA;IACnB,QAAQ,GAAO,WAAW,CAAC,OAAO,CAAC,MAAM,CAAA;IACzC,WAAW,GAC1B,EAAE,CAAA;IAEI,KAAK,CAAC,MAA8B,EAAE,IAA0B;QAExE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,KAAK,IAAM,SAAS;YAAG,MAAM,CAAC,UAAU,GAAK,IAAI,CAAC,KAAK,CAAC;QACjE,IAAI,IAAI,CAAC,IAAI,IAAO,SAAS;YAAG,MAAM,CAAC,SAAS,GAAM,IAAI,CAAC,IAAI,CAAC;QAChE,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS;YAAG,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;IACpE,CAAC;IAEQ,OAAO,CAAC,MAAyB;QAEzC,IACE,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK;eAC5D,MAAM,CAAC,SAAS;eAChB,MAAM,CAAC,YAAY,EAEvB,CAAC;YACA,OAAO;gBACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB;gBACrC,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC;oBAC9B,KAAK,EAAI,MAAM,CAAC,UAAU;oBAC1B,IAAI,EAAK,MAAM,CAAC,SAAS;oBACzB,OAAO,EAAE,MAAM,CAAC,YAAY;iBAC5B,CAAC;aACF,CAAC;QACH,CAAC;IACF,CAAC;CACD;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
@@ -1,7 +1,11 @@
1
1
  import { Incantation, type LOCAL } from "../incantation.js";
2
+ import { Ast } from "../../parser/index.js";
2
3
  export declare class SecretIncantation extends Incantation<LOCAL> {
3
- readonly description = "Turn a block into a secret expression, which is hidden from the end user.";
4
+ readonly effect = Incantation.Effect.LOCAL;
4
5
  readonly identifier = "secret";
6
+ readonly description = "Turn a block into a secret expression, which is hidden from the end user.";
5
7
  apply(target: Desmos.ExpressionState): void;
8
+ extract(target: Desmos.Expression): Ast.IncantationInvocation<LOCAL> | void;
6
9
  }
10
+ export declare const secret: SecretIncantation;
7
11
  //# sourceMappingURL=secret.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../../src/magic/local/secret.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzD,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,KAAK,CAAC;IAExD,SAAkB,WAAW,+EACiD;IAE9E,SAAkB,UAAU,YAAW;IAE9B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe;CAK7C"}
1
+ {"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../../src/magic/local/secret.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,KAAK,CAAC;IAExD,SAAkB,MAAM,4BAAiC;IACzD,SAAkB,UAAU,YAAW;IACvC,SAAkB,WAAW,+EACiD;IAErE,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe;IAMpC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,IAAI;CASpF;AAED,eAAO,MAAM,MAAM,mBAA0B,CAAC"}