@morphemeris/armilla-core 0.1.0 → 0.3.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.
package/docs/packs.md ADDED
@@ -0,0 +1,206 @@
1
+ # Glyph pack reference
2
+
3
+ Generated from the code by `UPDATE_DOCS=1 cargo test -p armilla-core --test docs`;
4
+ do not edit by hand. Spec §3.8 defines the manifest the core reads; §10.6 the
5
+ fallback rules. Packs key glyphs by the identifiers below — never by Unicode.
6
+
7
+ A manifest is `{ schema_version: 1, id, version, units: 10, glyphs }` (at most 4096 glyphs); each glyph carries an
8
+ origin-centered `bbox` in pack units, a `variants` map with at least `regular`, and
9
+ a `stroke_only` hint. A pack may cover any subset of the registry: the core falls
10
+ back per glyph to the compiled-in primitive pack and records every fallback in
11
+ the scene's provenance.
12
+
13
+ ## Authoring tiers
14
+
15
+ | tier | glyphs | meaning |
16
+ | --- | --- | --- |
17
+ | minimal | 52 | A default natal or transit wheel renders with zero fallbacks. |
18
+ | standard | 101 | Adds every aspect, the big-four asteroids, the remaining apsides and derived points, the lots, the derived-point marks, and the kind glyphs — so ids beyond the pack degrade gracefully within its own style. |
19
+ | complete | 147 | Every id in the registry; zero fallbacks anywhere. |
20
+
21
+ ## The registry
22
+
23
+ Every id the core can emit, by family; the tier column names the first tier
24
+ that includes the id.
25
+
26
+ ### signs (12)
27
+
28
+ | id | tier |
29
+ | --- | --- |
30
+ | `aries` | minimal |
31
+ | `taurus` | minimal |
32
+ | `gemini` | minimal |
33
+ | `cancer` | minimal |
34
+ | `leo` | minimal |
35
+ | `virgo` | minimal |
36
+ | `libra` | minimal |
37
+ | `scorpio` | minimal |
38
+ | `sagittarius` | minimal |
39
+ | `capricorn` | minimal |
40
+ | `aquarius` | minimal |
41
+ | `pisces` | minimal |
42
+
43
+ ### aspects (20)
44
+
45
+ | id | tier |
46
+ | --- | --- |
47
+ | `conjunction` | minimal |
48
+ | `opposition` | minimal |
49
+ | `trine` | minimal |
50
+ | `square` | minimal |
51
+ | `sextile` | minimal |
52
+ | `semi_sextile` | standard |
53
+ | `quincunx` | standard |
54
+ | `semi_square` | standard |
55
+ | `sesquiquadrate` | standard |
56
+ | `quintile` | standard |
57
+ | `bi_quintile` | standard |
58
+ | `septile` | standard |
59
+ | `bi_septile` | standard |
60
+ | `tri_septile` | standard |
61
+ | `novile` | standard |
62
+ | `bi_novile` | standard |
63
+ | `quad_novile` | standard |
64
+ | `quindecile` | standard |
65
+ | `parallel` | standard |
66
+ | `contraparallel` | standard |
67
+
68
+ ### marks (7)
69
+
70
+ | id | tier |
71
+ | --- | --- |
72
+ | `retrograde` | minimal |
73
+ | `direct` | minimal |
74
+ | `stationary` | minimal |
75
+ | `indicator` | minimal |
76
+ | `midpoint` | standard |
77
+ | `antiscion` | standard |
78
+ | `contra_antiscion` | standard |
79
+
80
+ ### phases (4)
81
+
82
+ | id | tier |
83
+ | --- | --- |
84
+ | `new_moon` | minimal |
85
+ | `full_moon` | minimal |
86
+ | `first_quarter` | minimal |
87
+ | `last_quarter` | minimal |
88
+
89
+ ### events (2)
90
+
91
+ | id | tier |
92
+ | --- | --- |
93
+ | `occultation` | complete |
94
+ | `lunar_eclipse` | complete |
95
+
96
+ ### kinds (12)
97
+
98
+ | id | tier |
99
+ | --- | --- |
100
+ | `luminary` | standard |
101
+ | `planet` | standard |
102
+ | `asteroid` | standard |
103
+ | `centaur` | standard |
104
+ | `tno` | standard |
105
+ | `node` | standard |
106
+ | `apsis` | standard |
107
+ | `lot` | standard |
108
+ | `angle` | standard |
109
+ | `fixed_star` | standard |
110
+ | `uranian` | standard |
111
+ | `unknown` | standard |
112
+
113
+ ### bodies (90)
114
+
115
+ | id | tier |
116
+ | --- | --- |
117
+ | `sun` | minimal |
118
+ | `moon` | minimal |
119
+ | `mercury` | minimal |
120
+ | `venus` | minimal |
121
+ | `earth` | minimal |
122
+ | `mars` | minimal |
123
+ | `jupiter` | minimal |
124
+ | `saturn` | minimal |
125
+ | `uranus` | minimal |
126
+ | `neptune` | minimal |
127
+ | `pluto` | minimal |
128
+ | `ceres` | standard |
129
+ | `pallas` | standard |
130
+ | `juno` | standard |
131
+ | `vesta` | standard |
132
+ | `hygiea` | complete |
133
+ | `astraea` | complete |
134
+ | `eros` | complete |
135
+ | `psyche` | complete |
136
+ | `amor` | complete |
137
+ | `sappho` | complete |
138
+ | `urania` | complete |
139
+ | `chiron` | minimal |
140
+ | `pholus` | complete |
141
+ | `nessus` | complete |
142
+ | `asbolus` | complete |
143
+ | `chariklo` | complete |
144
+ | `eris` | complete |
145
+ | `sedna` | complete |
146
+ | `haumea` | complete |
147
+ | `makemake` | complete |
148
+ | `quaoar` | complete |
149
+ | `orcus` | complete |
150
+ | `ixion` | complete |
151
+ | `varuna` | complete |
152
+ | `gonggong` | complete |
153
+ | `mean_node` | minimal |
154
+ | `true_node` | minimal |
155
+ | `north_node` | minimal |
156
+ | `south_node` | minimal |
157
+ | `mean_south_node` | minimal |
158
+ | `true_south_node` | minimal |
159
+ | `mean_apogee` | minimal |
160
+ | `osculating_apogee` | standard |
161
+ | `interpolated_apogee` | standard |
162
+ | `interpolated_perigee` | standard |
163
+ | `lilith` | minimal |
164
+ | `mean_lilith` | minimal |
165
+ | `true_lilith` | minimal |
166
+ | `black_moon_lilith` | minimal |
167
+ | `priapus` | standard |
168
+ | `ascendant` | minimal |
169
+ | `descendant` | minimal |
170
+ | `midheaven` | minimal |
171
+ | `imum_coeli` | minimal |
172
+ | `vertex` | standard |
173
+ | `antivertex` | standard |
174
+ | `east_point` | standard |
175
+ | `polar_ascendant` | standard |
176
+ | `cupido` | complete |
177
+ | `hades` | complete |
178
+ | `zeus` | complete |
179
+ | `kronos` | complete |
180
+ | `apollon` | complete |
181
+ | `admetos` | complete |
182
+ | `vulkanus` | complete |
183
+ | `poseidon` | complete |
184
+ | `transpluto` | complete |
185
+ | `regulus` | complete |
186
+ | `spica` | complete |
187
+ | `algol` | complete |
188
+ | `aldebaran` | complete |
189
+ | `antares` | complete |
190
+ | `fomalhaut` | complete |
191
+ | `sirius` | complete |
192
+ | `vega` | complete |
193
+ | `arcturus` | complete |
194
+ | `betelgeuse` | complete |
195
+ | `rigel` | complete |
196
+ | `pollux` | complete |
197
+ | `castor` | complete |
198
+ | `procyon` | complete |
199
+ | `alcyone` | complete |
200
+ | `part_of_fortune` | standard |
201
+ | `part_of_spirit` | standard |
202
+ | `part_of_eros` | standard |
203
+ | `part_of_necessity` | standard |
204
+ | `part_of_courage` | standard |
205
+ | `part_of_victory` | standard |
206
+ | `part_of_nemesis` | standard |
package/docs/themes.md CHANGED
@@ -47,6 +47,18 @@ The predicate language (§9.1) is a conjunction of `key=value` terms and `measur
47
47
  comparisons. Keys and closed value sets are listed in the generated
48
48
  [vocabulary reference](vocabulary.md).
49
49
 
50
+ ### Pinning the default
51
+
52
+ The default theme's content evolves; a theme that says `extends: "default"` (or nothing) rides
53
+ the latest. To freeze the base it was designed against, extend a **versioned base** instead:
54
+ `extends: "default_v3"`. Every historical default ships in `@morphemeris/armilla-core` —
55
+ `defaultTheme(3)` returns the snapshot, `DEFAULT_THEME_VERSION` names the newest — and the host
56
+ supplies it as the chain's first document. Under the hood the current default still sits beneath
57
+ as the implicit root, so marks the pinned era never styled (kinds and roles added since) render
58
+ sensibly instead of unstyled. A pinned theme handed to a host that does not supply its snapshot
59
+ fails with a `REF` error rather than silently rendering against the wrong base. Pinning freezes
60
+ theme content only — layout behavior follows the core version you run.
61
+
50
62
  ## The palette
51
63
 
52
64
  `$token` in any color-valued property resolves to `palette[token][scheme]` for the environment's
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@morphemeris/armilla-core",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "TypeScript binding for the armilla layout core (WASM): generated types and typed wrappers, no logic.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -50,24 +50,9 @@
50
50
  "test:bdd": "node --import tsx ./node_modules/@cucumber/cucumber/bin/cucumber.js",
51
51
  "test": "pnpm test:unit && pnpm test:bdd",
52
52
  "bench": "node --import tsx bench/perf.ts",
53
+ "gen:default-themes": "node scripts/gen-default-themes.mjs",
53
54
  "build:wasm": "node scripts/build-wasm.mjs nodejs",
54
55
  "build:wasm:web": "node scripts/build-wasm.mjs web",
55
56
  "build:wasm:all": "node scripts/build-wasm.mjs all"
56
- },
57
- "devDependencies": {
58
- "@cucumber/cucumber": "^13.2.1",
59
- "@eslint/js": "^10.0.1",
60
- "@tsconfig/node-lts": "^24.0.1",
61
- "@tsconfig/strictest": "^2.0.8",
62
- "@types/node": "^26.2.0",
63
- "eslint": "^10.9.0",
64
- "eslint-config-prettier": "^10.1.8",
65
- "eslint-import-resolver-typescript": "^4.4.5",
66
- "eslint-plugin-import-x": "^4.17.1",
67
- "tsx": "^4.23.12",
68
- "typescript": "^6.0.3",
69
- "typescript-eslint": "^8.67.0",
70
- "vitest": "^4.1.11",
71
- "wasm-pack": "^0.15.0"
72
57
  }
73
58
  }
Binary file
Binary file