magick-components 0.0.0-stage → 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 (173) hide show
  1. package/LICENSE.txt +89 -0
  2. package/README.md +353 -2
  3. package/fonts/FrankRuhlLibre-Bold-letters.woff2 +0 -0
  4. package/fonts/FrankRuhlLibre-OFL.txt +105 -0
  5. package/fonts/NotoSerif-BoldItalic-compass.woff2 +0 -0
  6. package/fonts/NotoSerif-Italic-latin1.woff2 +0 -0
  7. package/fonts/NotoSerif-OFL.txt +93 -0
  8. package/fonts/SOURCES.md +35 -0
  9. package/fonts/gd-hall.css +3 -0
  10. package/lib/astrology/Kamea.d.ts +75 -0
  11. package/lib/astrology/Kamea.js +73 -0
  12. package/lib/astrology/MercuryWidget.d.ts +21 -0
  13. package/lib/astrology/MercuryWidget.js +80 -0
  14. package/lib/astrology/Moon.d.ts +32 -0
  15. package/lib/astrology/Moon.js +39 -0
  16. package/lib/astrology/MoonWidget.d.ts +20 -0
  17. package/lib/astrology/MoonWidget.js +63 -0
  18. package/lib/astrology/PlanetarySpirit.d.ts +103 -0
  19. package/lib/astrology/PlanetarySpirit.js +102 -0
  20. package/lib/astrology/mercuryRetrograde.d.ts +20 -0
  21. package/lib/astrology/mercuryRetrograde.js +80 -0
  22. package/lib/astrology/moonPath.d.ts +20 -0
  23. package/lib/astrology/moonPath.js +45 -0
  24. package/lib/chakras/Chakras.d.ts +34 -0
  25. package/lib/chakras/Chakras.js +149 -0
  26. package/lib/cssString.d.ts +5 -0
  27. package/lib/cssString.js +7 -0
  28. package/lib/drawingVersions.d.ts +29 -0
  29. package/lib/drawingVersions.js +15 -0
  30. package/lib/enochian/Tablet.d.ts +17 -0
  31. package/lib/enochian/Tablet.js +24 -0
  32. package/lib/enochian/tabletSigils.d.ts +46 -0
  33. package/lib/enochian/tabletSigils.js +172 -0
  34. package/lib/enochian/tabletSvg.d.ts +85 -0
  35. package/lib/enochian/tabletSvg.js +278 -0
  36. package/lib/gd/FylfotCross.d.ts +60 -0
  37. package/lib/gd/FylfotCross.js +121 -0
  38. package/lib/gd/GradeTree.d.ts +10 -0
  39. package/lib/gd/GradeTree.js +21 -0
  40. package/lib/gd/Lamen.d.ts +31 -0
  41. package/lib/gd/Lamen.js +317 -0
  42. package/lib/gd/RoseSigil.d.ts +31 -0
  43. package/lib/gd/RoseSigil.js +49 -0
  44. package/lib/gd/RoseSigilImage.d.ts +38 -0
  45. package/lib/gd/RoseSigilImage.js +29 -0
  46. package/lib/gd/SevenBranchedCandlestick.d.ts +54 -0
  47. package/lib/gd/SevenBranchedCandlestick.js +269 -0
  48. package/lib/gd/TableOfShewbread.d.ts +19 -0
  49. package/lib/gd/TableOfShewbread.js +120 -0
  50. package/lib/gd/hall/GdHall.d.ts +94 -0
  51. package/lib/gd/hall/GdHall.js +147 -0
  52. package/lib/gd/hall/art/altar.d.ts +8 -0
  53. package/lib/gd/hall/art/altar.js +21 -0
  54. package/lib/gd/hall/art/altarItems.d.ts +20 -0
  55. package/lib/gd/hall/art/altarItems.js +113 -0
  56. package/lib/gd/hall/art/banner.d.ts +23 -0
  57. package/lib/gd/hall/art/banner.js +64 -0
  58. package/lib/gd/hall/art/board.d.ts +9 -0
  59. package/lib/gd/hall/art/board.js +49 -0
  60. package/lib/gd/hall/art/cards.d.ts +11 -0
  61. package/lib/gd/hall/art/cards.js +124 -0
  62. package/lib/gd/hall/art/furnishings.d.ts +12 -0
  63. package/lib/gd/hall/art/furnishings.js +36 -0
  64. package/lib/gd/hall/art/geometry.d.ts +49 -0
  65. package/lib/gd/hall/art/geometry.js +97 -0
  66. package/lib/gd/hall/art/hebrewLetter.d.ts +10 -0
  67. package/lib/gd/hall/art/hebrewLetter.js +38 -0
  68. package/lib/gd/hall/art/index.d.ts +7 -0
  69. package/lib/gd/hall/art/index.js +61 -0
  70. package/lib/gd/hall/art/items.d.ts +12 -0
  71. package/lib/gd/hall/art/items.js +125 -0
  72. package/lib/gd/hall/art/kamea.d.ts +20 -0
  73. package/lib/gd/hall/art/kamea.js +64 -0
  74. package/lib/gd/hall/art/lamen.d.ts +9 -0
  75. package/lib/gd/hall/art/lamen.js +52 -0
  76. package/lib/gd/hall/art/lightning.d.ts +13 -0
  77. package/lib/gd/hall/art/lightning.js +44 -0
  78. package/lib/gd/hall/art/lights.d.ts +13 -0
  79. package/lib/gd/hall/art/lights.js +64 -0
  80. package/lib/gd/hall/art/marker.d.ts +8 -0
  81. package/lib/gd/hall/art/marker.js +19 -0
  82. package/lib/gd/hall/art/pantacle.d.ts +10 -0
  83. package/lib/gd/hall/art/pantacle.js +119 -0
  84. package/lib/gd/hall/art/pillar.d.ts +4 -0
  85. package/lib/gd/hall/art/pillar.js +25 -0
  86. package/lib/gd/hall/art/placeholder.d.ts +8 -0
  87. package/lib/gd/hall/art/placeholder.js +18 -0
  88. package/lib/gd/hall/art/platform.d.ts +13 -0
  89. package/lib/gd/hall/art/platform.js +28 -0
  90. package/lib/gd/hall/art/seals.d.ts +23 -0
  91. package/lib/gd/hall/art/seals.js +151 -0
  92. package/lib/gd/hall/art/shared.d.ts +87 -0
  93. package/lib/gd/hall/art/shared.js +95 -0
  94. package/lib/gd/hall/art/symbols.d.ts +37 -0
  95. package/lib/gd/hall/art/symbols.js +134 -0
  96. package/lib/gd/hall/art/tarotKey.d.ts +34 -0
  97. package/lib/gd/hall/art/tarotKey.js +101 -0
  98. package/lib/gd/hall/art/veil.d.ts +8 -0
  99. package/lib/gd/hall/art/veil.js +22 -0
  100. package/lib/gd/hall/art/vessels.d.ts +19 -0
  101. package/lib/gd/hall/art/vessels.js +74 -0
  102. package/lib/gd/hall/aspect.d.ts +31 -0
  103. package/lib/gd/hall/aspect.js +161 -0
  104. package/lib/gd/hall/attributes.d.ts +52 -0
  105. package/lib/gd/hall/attributes.js +116 -0
  106. package/lib/gd/hall/describe.d.ts +38 -0
  107. package/lib/gd/hall/describe.js +184 -0
  108. package/lib/gd/hall/dimensions.d.ts +39 -0
  109. package/lib/gd/hall/dimensions.js +49 -0
  110. package/lib/gd/hall/editor.d.ts +13 -0
  111. package/lib/gd/hall/editor.js +13 -0
  112. package/lib/gd/hall/fontMetrics.json +177 -0
  113. package/lib/gd/hall/fonts.d.ts +45 -0
  114. package/lib/gd/hall/fonts.js +73 -0
  115. package/lib/gd/hall/hebrewLetters.d.ts +8 -0
  116. package/lib/gd/hall/hebrewLetters.js +40 -0
  117. package/lib/gd/hall/index.d.ts +19 -0
  118. package/lib/gd/hall/index.js +17 -0
  119. package/lib/gd/hall/labels.d.ts +72 -0
  120. package/lib/gd/hall/labels.js +109 -0
  121. package/lib/gd/hall/layout.d.ts +213 -0
  122. package/lib/gd/hall/layout.js +837 -0
  123. package/lib/gd/hall/planets.d.ts +13 -0
  124. package/lib/gd/hall/planets.js +35 -0
  125. package/lib/gd/hall/presets/index.d.ts +13 -0
  126. package/lib/gd/hall/presets/index.js +29 -0
  127. package/lib/gd/hall/presets/neophyte.d.ts +7 -0
  128. package/lib/gd/hall/presets/neophyte.js +74 -0
  129. package/lib/gd/hall/presets/philosophus.d.ts +30 -0
  130. package/lib/gd/hall/presets/philosophus.js +244 -0
  131. package/lib/gd/hall/presets/portal.d.ts +24 -0
  132. package/lib/gd/hall/presets/portal.js +241 -0
  133. package/lib/gd/hall/presets/practicus.d.ts +17 -0
  134. package/lib/gd/hall/presets/practicus.js +181 -0
  135. package/lib/gd/hall/presets/theoricus.d.ts +13 -0
  136. package/lib/gd/hall/presets/theoricus.js +178 -0
  137. package/lib/gd/hall/presets/types.d.ts +72 -0
  138. package/lib/gd/hall/presets/types.js +58 -0
  139. package/lib/gd/hall/presets/zelator.d.ts +12 -0
  140. package/lib/gd/hall/presets/zelator.js +161 -0
  141. package/lib/gd/hall/spec.d.ts +54 -0
  142. package/lib/gd/hall/spec.js +108 -0
  143. package/lib/gd/hall/types.d.ts +131 -0
  144. package/lib/gd/hall/types.js +1 -0
  145. package/lib/gd/hall/validate.d.ts +13 -0
  146. package/lib/gd/hall/validate.js +285 -0
  147. package/lib/gd/hall/vocabulary.d.ts +139 -0
  148. package/lib/gd/hall/vocabulary.js +435 -0
  149. package/lib/gd/lamenGlyphs.d.ts +16 -0
  150. package/lib/gd/lamenGlyphs.js +167 -0
  151. package/lib/gd/lamenGrades.d.ts +29 -0
  152. package/lib/gd/lamenGrades.js +36 -0
  153. package/lib/gd/roseSigilGeometry.d.ts +10 -0
  154. package/lib/gd/roseSigilGeometry.js +10 -0
  155. package/lib/gd/roseSigilInternals.d.ts +85 -0
  156. package/lib/gd/roseSigilInternals.js +343 -0
  157. package/lib/gd/roseSigilOptimizer.d.ts +15 -0
  158. package/lib/gd/roseSigilOptimizer.js +59 -0
  159. package/lib/gd/roseSigilVersions.d.ts +12 -0
  160. package/lib/gd/roseSigilVersions.js +57 -0
  161. package/lib/hooks/useHydrated.d.ts +9 -0
  162. package/lib/hooks/useHydrated.js +13 -0
  163. package/lib/kabbalah/TreeOfLife.d.ts +135 -0
  164. package/lib/kabbalah/TreeOfLife.js +312 -0
  165. package/lib/kabbalah/fieldPath.d.ts +25 -0
  166. package/lib/kabbalah/fieldPath.js +100 -0
  167. package/lib/kabbalah/treeLabels.d.ts +30 -0
  168. package/lib/kabbalah/treeLabels.js +32 -0
  169. package/lib/kabbalah/treeOfLifeFigure.d.ts +59 -0
  170. package/lib/kabbalah/treeOfLifeFigure.js +151 -0
  171. package/lib/svgCoordinate.d.ts +12 -0
  172. package/lib/svgCoordinate.js +16 -0
  173. package/package.json +162 -3
@@ -0,0 +1,59 @@
1
+ import type { SVGProps } from "react";
2
+ /**
3
+ * The Tree of Life's figure, shared by `TreeOfLife` and the drawings that
4
+ * show the Tree inside another drawing (a temple hall's boards, plan 061):
5
+ * its geometry, its paths' draw order and `TreeFigure`, the spheres and
6
+ * paths alone. This module reads only magick-data's sephirot (their
7
+ * colours), never the whole barrel `TreeOfLife` reads for its labels, so
8
+ * a drawing that only shows the figure stays small.
9
+ */
10
+ /** Draw order, which paths are "on top" of which, for clarity. */
11
+ export declare const ORDERED_PATHS: {
12
+ hebrew: string[];
13
+ hermetic: string[];
14
+ };
15
+ /** `x,y` for SVG path data, rounded so every engine writes the same digits. */
16
+ export declare function point(x: number, y: number): string;
17
+ /** A path between two spheres: a band `offset` either side of the line. */
18
+ export declare function LineOutline({ x1, y1, x2, y2, offset, ...args }: {
19
+ x1: number;
20
+ y1: number;
21
+ x2: number;
22
+ y2: number;
23
+ /** Half the band's width. */
24
+ offset?: number;
25
+ } & Omit<SVGProps<SVGPathElement>, "d">): import("react").JSX.Element;
26
+ /** The figure's measures, in its own units. */
27
+ export declare const TREE_GEOMETRY: {
28
+ readonly constructRadius: 128.5;
29
+ readonly strokePadding: 2;
30
+ readonly sephirahRadius: 40;
31
+ readonly rowStart: number;
32
+ readonly canvasWidth: number;
33
+ readonly canvasHeight: number;
34
+ /** The pillars' x: severity, equilibrium, mercy. */
35
+ readonly pillars: readonly [number, 0, number];
36
+ };
37
+ /** Each sphere's centre, Kether to Malkuth, then Daat. */
38
+ export declare const SEPHIRAH_CENTERS: readonly {
39
+ x: number;
40
+ y: number;
41
+ }[];
42
+ /**
43
+ * The quarters of a sphere of several colours (Malkuth), as path props:
44
+ * wedges from the centre, the first starting at 135°.
45
+ */
46
+ export declare function sephirahWedges(x: number, y: number, colors: readonly string[], r?: number): {
47
+ fill: string;
48
+ d: string;
49
+ }[];
50
+ /**
51
+ * The Tree's spheres in the Queen scale and its Hermetic paths, nothing
52
+ * else: no text, links, ids or stylesheet. `flash` draws the Lightning
53
+ * Flash down the spheres, Kether to Malkuth. Sized like `TreeOfLife`.
54
+ */
55
+ export declare function TreeFigure({ width, height, flash, }: {
56
+ width?: number;
57
+ height?: number;
58
+ flash?: boolean;
59
+ }): import("react").JSX.Element;
@@ -0,0 +1,151 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import sephirot from "magick-data/kabbalah/sephirot";
3
+ import { svgCoordinate } from "../svgCoordinate.js";
4
+ /**
5
+ * The Tree of Life's figure, shared by `TreeOfLife` and the drawings that
6
+ * show the Tree inside another drawing (a temple hall's boards, plan 061):
7
+ * its geometry, its paths' draw order and `TreeFigure`, the spheres and
8
+ * paths alone. This module reads only magick-data's sephirot (their
9
+ * colours), never the whole barrel `TreeOfLife` reads for its labels, so
10
+ * a drawing that only shows the figure stays small.
11
+ */
12
+ /** Draw order, which paths are "on top" of which, for clarity. */
13
+ // prettier-ignore
14
+ export const ORDERED_PATHS = {
15
+ hebrew: [
16
+ "4_5",
17
+ "2_3",
18
+ "7_8", // alef, shin, mem
19
+ "1_2",
20
+ "1_3",
21
+ "1_6", // he, vav, dalet
22
+ "2_5",
23
+ "3_4", // zayin, qof <-- paths specific to hebrew tree
24
+ "2_4",
25
+ "2_6",
26
+ "3_5",
27
+ "3_6",
28
+ "4_6",
29
+ "4_7",
30
+ "5_6",
31
+ "5_8",
32
+ "6_7",
33
+ "6_8",
34
+ "6_9",
35
+ "7_9",
36
+ "8_9",
37
+ "9_10",
38
+ ],
39
+ hermetic: [
40
+ "4_5",
41
+ "2_3",
42
+ "7_8",
43
+ "1_2",
44
+ "1_3",
45
+ "1_6",
46
+ "2_4",
47
+ "2_6",
48
+ "3_5",
49
+ "3_6",
50
+ "4_6",
51
+ "4_7",
52
+ "5_6",
53
+ "5_8",
54
+ "6_7",
55
+ "6_8",
56
+ "6_9",
57
+ "7_9",
58
+ "8_9",
59
+ "9_10",
60
+ "7_10",
61
+ "8_10", // paths specific to hermetic tree
62
+ ],
63
+ };
64
+ /** `x,y` for SVG path data, rounded so every engine writes the same digits. */
65
+ export function point(x, y) {
66
+ return `${svgCoordinate(x)},${svgCoordinate(y)}`;
67
+ }
68
+ /** A path between two spheres: a band `offset` either side of the line. */
69
+ export function LineOutline({ x1, y1, x2, y2, offset = 5, ...args }) {
70
+ const theta = Math.PI / 2 - Math.atan((x2 - x1) / (y2 - y1));
71
+ const xd = Math.sin(theta) * offset;
72
+ const yd = Math.cos(theta) * offset;
73
+ return (_jsx("path", { ...args, d: `M ${point(x1 - xd, y1 + yd)} L ${point(x1 + xd, y1 - yd)} ` +
74
+ `L ${point(x2 + xd, y2 - yd)} L ${point(x2 - xd, y2 + yd)} z` }));
75
+ }
76
+ const constructRadius = 128.5;
77
+ const intersectionOffset = (constructRadius / 2) * Math.sqrt(3);
78
+ const strokePadding = 2;
79
+ const sephirahRadius = 40;
80
+ const rowStart = sephirahRadius + strokePadding;
81
+ const rowGap = constructRadius / 2;
82
+ /** The figure's measures, in its own units. */
83
+ export const TREE_GEOMETRY = {
84
+ constructRadius,
85
+ strokePadding,
86
+ sephirahRadius,
87
+ rowStart,
88
+ canvasWidth: 2 * (constructRadius + sephirahRadius + strokePadding),
89
+ canvasHeight: 4 * constructRadius + 2 * (sephirahRadius + strokePadding),
90
+ /** The pillars' x: severity, equilibrium, mercy. */
91
+ pillars: [-intersectionOffset, 0, intersectionOffset],
92
+ };
93
+ const [severity, equilibrium, mercy] = TREE_GEOMETRY.pillars;
94
+ /** Each sphere's centre, Kether to Malkuth, then Daat. */
95
+ export const SEPHIRAH_CENTERS = [
96
+ [equilibrium, 0],
97
+ [mercy, 1],
98
+ [severity, 1],
99
+ [mercy, 3],
100
+ [severity, 3],
101
+ [equilibrium, 4],
102
+ [mercy, 5],
103
+ [severity, 5],
104
+ [equilibrium, 6],
105
+ [equilibrium, 8],
106
+ [equilibrium, 2],
107
+ ].map(([x, row]) => ({ x, y: rowStart + rowGap * row }));
108
+ /**
109
+ * The quarters of a sphere of several colours (Malkuth), as path props:
110
+ * wedges from the centre, the first starting at 135°.
111
+ */
112
+ export function sephirahWedges(x, y, colors, r = sephirahRadius) {
113
+ const rads = Math.PI / 180;
114
+ return colors.map((fill, i) => {
115
+ // Adapted from https://codepen.io/hari_shanx/pen/NRyPBz (2022), kept
116
+ // as credit. What it lent is the method: a wedge is a line from the
117
+ // centre to the arc's start, an arc to its end, and back, its ends
118
+ // found by the usual polar-to-Cartesian arithmetic. Those few lines
119
+ // of trigonometry have no expression of their own to protect, so no
120
+ // licence is needed (plan 080, "Before publishing"); public Pens are
121
+ // MIT besides (blog.codepen.io/documentation/licensing).
122
+ // 180 - 45; hard coded malkuth angles till we need something else
123
+ const from = (i * 360) / colors.length + 180 - 45;
124
+ const to = ((i + 1) * 360) / colors.length + 180 - 45;
125
+ return {
126
+ fill,
127
+ d: `M ${point(x, y)} L ${point(x + r * Math.cos(from * rads), y + r * Math.sin(from * rads))} ` +
128
+ `A ${r},${r} 0 0,1 ${point(x + r * Math.cos(to * rads), y + r * Math.sin(to * rads))} z`,
129
+ };
130
+ });
131
+ }
132
+ const rows = Object.values(sephirot);
133
+ /**
134
+ * The Tree's spheres in the Queen scale and its Hermetic paths, nothing
135
+ * else: no text, links, ids or stylesheet. `flash` draws the Lightning
136
+ * Flash down the spheres, Kether to Malkuth. Sized like `TreeOfLife`.
137
+ */
138
+ export function TreeFigure({ width, height, flash, }) {
139
+ const { canvasWidth, canvasHeight } = TREE_GEOMETRY;
140
+ const center = (index) => SEPHIRAH_CENTERS[index - 1];
141
+ return (_jsxs("svg", { width: width, height: height, viewBox: `${-canvasWidth / 2} 0 ${canvasWidth} ${canvasHeight}`, children: [_jsx("g", { stroke: "#000", strokeWidth: 3, fill: "#fff", style: { paintOrder: "stroke fill markers" }, children: [...ORDERED_PATHS.hermetic].reverse().map((id) => {
142
+ const [a, b] = id.split("_").map(Number);
143
+ return (_jsx(LineOutline, { x1: center(a).x, y1: center(a).y, x2: center(b).x, y2: center(b).y, offset: 8.5 }, id));
144
+ }) }), SEPHIRAH_CENTERS.slice(0, 10).map(({ x, y }, index) => {
145
+ const colors = rows[index].color.queenWeb.split(",");
146
+ return (_jsxs("g", { children: [_jsx("circle", { cx: x, cy: y, r: sephirahRadius, fill: colors.length > 1 ? undefined : colors[0], stroke: "#000", strokeWidth: 1.568 }), colors.length > 1 &&
147
+ sephirahWedges(x, y, colors).map((wedge) => (_jsx("path", { d: wedge.d, fill: wedge.fill, stroke: "#000", strokeWidth: 1.568 }, wedge.fill)))] }, rows[index].id));
148
+ }), flash && (_jsx("polyline", { points: SEPHIRAH_CENTERS.slice(0, 10)
149
+ .map(({ x, y }) => point(x, y))
150
+ .join(" "), fill: "none", stroke: "#d92128", strokeWidth: 9, strokeLinejoin: "round", strokeLinecap: "round" }))] }));
151
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Decimal places kept in SVG output, as in SVGO's default. On the 100-unit
3
+ * canvas that is about 0.02 px of error even at the 4096 px raster limit.
4
+ */
5
+ export declare const SVG_COORDINATE_DECIMALS = 3;
6
+ /**
7
+ * A number as written to SVG. Node and the browser can disagree in the last
8
+ * bit of `Math.sin`/`Math.cos` (30.310889132455348 against …344), and React
9
+ * reports any such attribute difference as a hydration mismatch; rounding
10
+ * gives both the same digits.
11
+ */
12
+ export declare function svgCoordinate(value: number): number;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Decimal places kept in SVG output, as in SVGO's default. On the 100-unit
3
+ * canvas that is about 0.02 px of error even at the 4096 px raster limit.
4
+ */
5
+ export const SVG_COORDINATE_DECIMALS = 3;
6
+ const SVG_COORDINATE_SCALE = 10 ** SVG_COORDINATE_DECIMALS;
7
+ /**
8
+ * A number as written to SVG. Node and the browser can disagree in the last
9
+ * bit of `Math.sin`/`Math.cos` (30.310889132455348 against …344), and React
10
+ * reports any such attribute difference as a hydration mismatch; rounding
11
+ * gives both the same digits.
12
+ */
13
+ export function svgCoordinate(value) {
14
+ // `+ 0` turns the -0 that tiny negative values round to into 0.
15
+ return Math.round(value * SVG_COORDINATE_SCALE) / SVG_COORDINATE_SCALE + 0;
16
+ }
package/package.json CHANGED
@@ -1,6 +1,165 @@
1
1
  {
2
2
  "name": "magick-components",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.1.0",
4
+ "description": "React components that draw magickal figures from magick-data: the Tree of Life, the Golden Dawn's temple halls, lamens and symbols, the rose-cross sigil, the Enochian tablets, the kameas, the planetary spirits' geomantic sigils and the Moon",
5
+ "keywords": [
6
+ "magick",
7
+ "react",
8
+ "svg",
9
+ "tree of life",
10
+ "kabbalah",
11
+ "golden dawn",
12
+ "rose cross",
13
+ "sigil",
14
+ "enochian",
15
+ "kamea",
16
+ "astrology",
17
+ "occult",
18
+ "esoteric"
19
+ ],
20
+ "license": "(MIT AND OFL-1.1 AND BSD-3-Clause)",
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+https://github.com/gadicc/magickly.git",
24
+ "directory": "packages/magick-components"
25
+ },
26
+ "homepage": "https://github.com/gadicc/magickly/tree/main/packages/magick-components#readme",
27
+ "bugs": "https://github.com/gadicc/magickly/issues",
28
+ "type": "module",
29
+ "sideEffects": [
30
+ "*.css"
31
+ ],
32
+ "engines": {
33
+ "node": ">=22"
34
+ },
35
+ "files": [
36
+ "lib",
37
+ "fonts",
38
+ "README.md",
39
+ "LICENSE.txt"
40
+ ],
41
+ "exports": {
42
+ "./astrology/Kamea": {
43
+ "types": "./lib/astrology/Kamea.d.ts",
44
+ "default": "./lib/astrology/Kamea.js"
45
+ },
46
+ "./astrology/mercuryRetrograde": {
47
+ "types": "./lib/astrology/mercuryRetrograde.d.ts",
48
+ "default": "./lib/astrology/mercuryRetrograde.js"
49
+ },
50
+ "./astrology/MercuryWidget": {
51
+ "types": "./lib/astrology/MercuryWidget.d.ts",
52
+ "default": "./lib/astrology/MercuryWidget.js"
53
+ },
54
+ "./astrology/Moon": {
55
+ "types": "./lib/astrology/Moon.d.ts",
56
+ "default": "./lib/astrology/Moon.js"
57
+ },
58
+ "./astrology/MoonWidget": {
59
+ "types": "./lib/astrology/MoonWidget.d.ts",
60
+ "default": "./lib/astrology/MoonWidget.js"
61
+ },
62
+ "./astrology/PlanetarySpirit": {
63
+ "types": "./lib/astrology/PlanetarySpirit.d.ts",
64
+ "default": "./lib/astrology/PlanetarySpirit.js"
65
+ },
66
+ "./chakras/Chakras": {
67
+ "types": "./lib/chakras/Chakras.d.ts",
68
+ "default": "./lib/chakras/Chakras.js"
69
+ },
70
+ "./enochian/Tablet": {
71
+ "types": "./lib/enochian/Tablet.d.ts",
72
+ "default": "./lib/enochian/Tablet.js"
73
+ },
74
+ "./gd/FylfotCross": {
75
+ "types": "./lib/gd/FylfotCross.d.ts",
76
+ "default": "./lib/gd/FylfotCross.js"
77
+ },
78
+ "./gd/GradeTree": {
79
+ "types": "./lib/gd/GradeTree.d.ts",
80
+ "default": "./lib/gd/GradeTree.js"
81
+ },
82
+ "./gd/hall": {
83
+ "types": "./lib/gd/hall/index.d.ts",
84
+ "default": "./lib/gd/hall/index.js"
85
+ },
86
+ "./gd/hall/editor": {
87
+ "types": "./lib/gd/hall/editor.d.ts",
88
+ "default": "./lib/gd/hall/editor.js"
89
+ },
90
+ "./gd/hall/presets": {
91
+ "types": "./lib/gd/hall/presets/index.d.ts",
92
+ "default": "./lib/gd/hall/presets/index.js"
93
+ },
94
+ "./gd/Lamen": {
95
+ "types": "./lib/gd/Lamen.d.ts",
96
+ "default": "./lib/gd/Lamen.js"
97
+ },
98
+ "./gd/lamenGrades": {
99
+ "types": "./lib/gd/lamenGrades.d.ts",
100
+ "default": "./lib/gd/lamenGrades.js"
101
+ },
102
+ "./gd/RoseSigil": {
103
+ "types": "./lib/gd/RoseSigil.d.ts",
104
+ "default": "./lib/gd/RoseSigil.js"
105
+ },
106
+ "./gd/roseSigilGeometry": {
107
+ "types": "./lib/gd/roseSigilGeometry.d.ts",
108
+ "default": "./lib/gd/roseSigilGeometry.js"
109
+ },
110
+ "./gd/RoseSigilImage": {
111
+ "types": "./lib/gd/RoseSigilImage.d.ts",
112
+ "default": "./lib/gd/RoseSigilImage.js"
113
+ },
114
+ "./gd/roseSigilOptimizer": {
115
+ "types": "./lib/gd/roseSigilOptimizer.d.ts",
116
+ "default": "./lib/gd/roseSigilOptimizer.js"
117
+ },
118
+ "./gd/SevenBranchedCandlestick": {
119
+ "types": "./lib/gd/SevenBranchedCandlestick.d.ts",
120
+ "default": "./lib/gd/SevenBranchedCandlestick.js"
121
+ },
122
+ "./gd/TableOfShewbread": {
123
+ "types": "./lib/gd/TableOfShewbread.d.ts",
124
+ "default": "./lib/gd/TableOfShewbread.js"
125
+ },
126
+ "./kabbalah/fieldPath": {
127
+ "types": "./lib/kabbalah/fieldPath.d.ts",
128
+ "default": "./lib/kabbalah/fieldPath.js"
129
+ },
130
+ "./kabbalah/TreeOfLife": {
131
+ "types": "./lib/kabbalah/TreeOfLife.d.ts",
132
+ "default": "./lib/kabbalah/TreeOfLife.js"
133
+ },
134
+ "./fonts/*": "./fonts/*"
135
+ },
136
+ "peerDependencies": {
137
+ "@types/react": "^19",
138
+ "react": "^19"
139
+ },
140
+ "peerDependenciesMeta": {
141
+ "@types/react": {
142
+ "optional": true
143
+ }
144
+ },
145
+ "dependencies": {
146
+ "astronomy-engine": "^2.1.19",
147
+ "dot-prop": "^10.2.0",
148
+ "lune": "^0.4.0",
149
+ "luxon": "^3.7.2",
150
+ "magick-data": "^0.2.1",
151
+ "nlopt-js": "^0.1.1"
152
+ },
153
+ "devDependencies": {
154
+ "@types/luxon": "^3.7.6",
155
+ "@types/node": "24.19.2",
156
+ "@types/react": "^19.3.0",
157
+ "typescript": "^6.0.3"
158
+ },
159
+ "scripts": {
160
+ "typecheck": "tsc -p tsconfig.json",
161
+ "build": "rm -rf lib && tsc -p tsconfig.build.json",
162
+ "fonts:css": "node scripts/gdHallCss.mjs",
163
+ "smoke": "node scripts/smoke.mjs"
164
+ }
6
165
  }