@roxyapi/ui 0.8.1 → 0.10.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 (194) hide show
  1. package/AGENTS.md +54 -13
  2. package/README.md +33 -22
  3. package/THEMING.md +7 -5
  4. package/dist/cdn/components/angel-number-card.js +45 -0
  5. package/dist/cdn/components/angel-number-card.js.map +7 -0
  6. package/dist/cdn/components/angel-number-lookup.js +45 -0
  7. package/dist/cdn/components/angel-number-lookup.js.map +7 -0
  8. package/dist/cdn/components/ashtakavarga-grid.js +3 -3
  9. package/dist/cdn/components/ashtakavarga-grid.js.map +3 -3
  10. package/dist/cdn/components/biorhythm-chart.js +3 -3
  11. package/dist/cdn/components/biorhythm-chart.js.map +3 -3
  12. package/dist/cdn/components/bodygraph.js +8 -8
  13. package/dist/cdn/components/bodygraph.js.map +3 -3
  14. package/dist/cdn/components/choghadiya-grid.js +3 -3
  15. package/dist/cdn/components/choghadiya-grid.js.map +3 -3
  16. package/dist/cdn/components/compatibility-card.js +2 -2
  17. package/dist/cdn/components/compatibility-card.js.map +3 -3
  18. package/dist/cdn/components/crystal-grid.js +45 -0
  19. package/dist/cdn/components/crystal-grid.js.map +7 -0
  20. package/dist/cdn/components/dasha-timeline.js +2 -2
  21. package/dist/cdn/components/dasha-timeline.js.map +3 -3
  22. package/dist/cdn/components/data.js +2 -2
  23. package/dist/cdn/components/data.js.map +3 -3
  24. package/dist/cdn/components/divisional-chart.js +7 -7
  25. package/dist/cdn/components/divisional-chart.js.map +3 -3
  26. package/dist/cdn/components/dosha-card.js +3 -3
  27. package/dist/cdn/components/dosha-card.js.map +3 -3
  28. package/dist/cdn/components/dream-card.js +45 -0
  29. package/dist/cdn/components/dream-card.js.map +7 -0
  30. package/dist/cdn/components/forecast-timeline.js +3 -3
  31. package/dist/cdn/components/forecast-timeline.js.map +3 -3
  32. package/dist/cdn/components/guna-milan.js +3 -3
  33. package/dist/cdn/components/guna-milan.js.map +3 -3
  34. package/dist/cdn/components/hexagram.js +2 -2
  35. package/dist/cdn/components/hexagram.js.map +3 -3
  36. package/dist/cdn/components/horoscope-card.js +3 -3
  37. package/dist/cdn/components/horoscope-card.js.map +3 -3
  38. package/dist/cdn/components/kp-chart.js +2 -2
  39. package/dist/cdn/components/kp-chart.js.map +3 -3
  40. package/dist/cdn/components/kp-planets-table.js +3 -3
  41. package/dist/cdn/components/kp-planets-table.js.map +3 -3
  42. package/dist/cdn/components/kp-ruling-planets.js +3 -3
  43. package/dist/cdn/components/kp-ruling-planets.js.map +3 -3
  44. package/dist/cdn/components/moon-phase.js +3 -3
  45. package/dist/cdn/components/moon-phase.js.map +3 -3
  46. package/dist/cdn/components/nakshatra-card.js +3 -3
  47. package/dist/cdn/components/nakshatra-card.js.map +3 -3
  48. package/dist/cdn/components/natal-chart.js +2 -2
  49. package/dist/cdn/components/natal-chart.js.map +3 -3
  50. package/dist/cdn/components/numerology-card.js +3 -3
  51. package/dist/cdn/components/numerology-card.js.map +3 -3
  52. package/dist/cdn/components/panchang-table.js +2 -2
  53. package/dist/cdn/components/panchang-table.js.map +3 -3
  54. package/dist/cdn/components/shadbala-table.js +3 -3
  55. package/dist/cdn/components/shadbala-table.js.map +3 -3
  56. package/dist/cdn/components/synastry-chart.js +5 -5
  57. package/dist/cdn/components/synastry-chart.js.map +3 -3
  58. package/dist/cdn/components/tarot-card.js.map +3 -3
  59. package/dist/cdn/components/tarot-spread.js +3 -3
  60. package/dist/cdn/components/tarot-spread.js.map +3 -3
  61. package/dist/cdn/components/transits-table.js +3 -3
  62. package/dist/cdn/components/transits-table.js.map +3 -3
  63. package/dist/cdn/components/vedic-kundli.js +16 -16
  64. package/dist/cdn/components/vedic-kundli.js.map +3 -3
  65. package/dist/cdn/components/vedic-planets-table.js +3 -3
  66. package/dist/cdn/components/vedic-planets-table.js.map +3 -3
  67. package/dist/cdn/components/western-planets-table.js +2 -2
  68. package/dist/cdn/components/western-planets-table.js.map +3 -3
  69. package/dist/cdn/components/yoga-list.js +2 -2
  70. package/dist/cdn/components/yoga-list.js.map +3 -3
  71. package/dist/cdn/roxy-ui.js +289 -66
  72. package/dist/cdn/roxy-ui.js.map +4 -4
  73. package/dist/cdn.d.ts +8 -0
  74. package/dist/cdn.d.ts.map +1 -0
  75. package/dist/components/angel-number-card.d.ts +18 -0
  76. package/dist/components/angel-number-card.d.ts.map +1 -0
  77. package/dist/components/angel-number-card.js +2 -0
  78. package/dist/components/angel-number-card.js.map +7 -0
  79. package/dist/components/angel-number-lookup.d.ts +18 -0
  80. package/dist/components/angel-number-lookup.d.ts.map +1 -0
  81. package/dist/components/angel-number-lookup.js +2 -0
  82. package/dist/components/angel-number-lookup.js.map +7 -0
  83. package/dist/components/ashtakavarga-grid.js +1 -1
  84. package/dist/components/ashtakavarga-grid.js.map +3 -3
  85. package/dist/components/biorhythm-chart.js +1 -1
  86. package/dist/components/biorhythm-chart.js.map +3 -3
  87. package/dist/components/bodygraph.js +4 -4
  88. package/dist/components/bodygraph.js.map +3 -3
  89. package/dist/components/choghadiya-grid.js +1 -1
  90. package/dist/components/choghadiya-grid.js.map +3 -3
  91. package/dist/components/compatibility-card.js +1 -1
  92. package/dist/components/compatibility-card.js.map +3 -3
  93. package/dist/components/crystal-grid.d.ts +27 -0
  94. package/dist/components/crystal-grid.d.ts.map +1 -0
  95. package/dist/components/crystal-grid.js +2 -0
  96. package/dist/components/crystal-grid.js.map +7 -0
  97. package/dist/components/dasha-timeline.js +1 -1
  98. package/dist/components/dasha-timeline.js.map +3 -3
  99. package/dist/components/data.js +1 -1
  100. package/dist/components/data.js.map +3 -3
  101. package/dist/components/divisional-chart.js +34 -34
  102. package/dist/components/divisional-chart.js.map +3 -3
  103. package/dist/components/dosha-card.js +1 -1
  104. package/dist/components/dosha-card.js.map +3 -3
  105. package/dist/components/dream-card.d.ts +17 -0
  106. package/dist/components/dream-card.d.ts.map +1 -0
  107. package/dist/components/dream-card.js +2 -0
  108. package/dist/components/dream-card.js.map +7 -0
  109. package/dist/components/forecast-timeline.js.map +3 -3
  110. package/dist/components/guna-milan.js +1 -1
  111. package/dist/components/guna-milan.js.map +3 -3
  112. package/dist/components/hexagram.js +1 -1
  113. package/dist/components/hexagram.js.map +3 -3
  114. package/dist/components/horoscope-card.js +1 -1
  115. package/dist/components/horoscope-card.js.map +3 -3
  116. package/dist/components/kp-chart.js +1 -1
  117. package/dist/components/kp-chart.js.map +3 -3
  118. package/dist/components/kp-planets-table.js +1 -1
  119. package/dist/components/kp-planets-table.js.map +3 -3
  120. package/dist/components/kp-ruling-planets.js +1 -1
  121. package/dist/components/kp-ruling-planets.js.map +3 -3
  122. package/dist/components/moon-phase.js +1 -1
  123. package/dist/components/moon-phase.js.map +3 -3
  124. package/dist/components/nakshatra-card.js +1 -1
  125. package/dist/components/nakshatra-card.js.map +3 -3
  126. package/dist/components/natal-chart.js +5 -5
  127. package/dist/components/natal-chart.js.map +3 -3
  128. package/dist/components/numerology-card.d.ts +7 -3
  129. package/dist/components/numerology-card.d.ts.map +1 -1
  130. package/dist/components/numerology-card.js +1 -1
  131. package/dist/components/numerology-card.js.map +3 -3
  132. package/dist/components/panchang-table.js +1 -1
  133. package/dist/components/panchang-table.js.map +3 -3
  134. package/dist/components/shadbala-table.js +1 -1
  135. package/dist/components/shadbala-table.js.map +3 -3
  136. package/dist/components/synastry-chart.js +4 -4
  137. package/dist/components/synastry-chart.js.map +3 -3
  138. package/dist/components/tarot-card.js +1 -1
  139. package/dist/components/tarot-card.js.map +3 -3
  140. package/dist/components/tarot-spread.js +1 -1
  141. package/dist/components/tarot-spread.js.map +3 -3
  142. package/dist/components/transits-table.js +1 -1
  143. package/dist/components/transits-table.js.map +3 -3
  144. package/dist/components/vedic-kundli.d.ts +18 -0
  145. package/dist/components/vedic-kundli.d.ts.map +1 -1
  146. package/dist/components/vedic-kundli.js +62 -62
  147. package/dist/components/vedic-kundli.js.map +3 -3
  148. package/dist/components/vedic-planets-table.js +1 -1
  149. package/dist/components/vedic-planets-table.js.map +3 -3
  150. package/dist/components/western-planets-table.js +1 -1
  151. package/dist/components/western-planets-table.js.map +3 -3
  152. package/dist/components/yoga-list.js +1 -1
  153. package/dist/components/yoga-list.js.map +3 -3
  154. package/dist/index.cjs +74 -74
  155. package/dist/index.cjs.map +4 -4
  156. package/dist/index.d.ts +5 -0
  157. package/dist/index.d.ts.map +1 -1
  158. package/dist/index.js +74 -74
  159. package/dist/index.js.map +4 -4
  160. package/dist/manifest.d.ts.map +1 -1
  161. package/dist/manifest.json +28 -24
  162. package/dist/styles/tokens-css.d.ts +2 -0
  163. package/dist/styles/tokens-css.d.ts.map +1 -0
  164. package/dist/styles/tokens.css +26 -11
  165. package/dist/types/index.d.ts +1 -1
  166. package/dist/types/index.d.ts.map +1 -1
  167. package/dist/types/types.gen.d.ts +43 -26
  168. package/dist/types/types.gen.d.ts.map +1 -1
  169. package/dist/utils/inject-tokens.d.ts +16 -0
  170. package/dist/utils/inject-tokens.d.ts.map +1 -0
  171. package/dist/utils/kundli-render.d.ts +2 -1
  172. package/dist/utils/kundli-render.d.ts.map +1 -1
  173. package/dist/utils/markup-data.d.ts +34 -0
  174. package/dist/utils/markup-data.d.ts.map +1 -1
  175. package/dist/version.d.ts +1 -1
  176. package/dist/version.d.ts.map +1 -1
  177. package/package.json +1 -1
  178. package/src/cdn.ts +15 -0
  179. package/src/components/angel-number-card.ts +234 -0
  180. package/src/components/angel-number-lookup.ts +208 -0
  181. package/src/components/crystal-grid.ts +191 -0
  182. package/src/components/dream-card.ts +98 -0
  183. package/src/components/numerology-card.ts +22 -10
  184. package/src/components/vedic-kundli.ts +37 -2
  185. package/src/index.ts +14 -0
  186. package/src/manifest.ts +57 -5
  187. package/src/styles/tokens-css.ts +225 -0
  188. package/src/styles/tokens.css +26 -11
  189. package/src/types/index.ts +1 -1
  190. package/src/types/types.gen.ts +43 -26
  191. package/src/utils/inject-tokens.ts +27 -0
  192. package/src/utils/kundli-render.ts +9 -2
  193. package/src/utils/markup-data.ts +45 -0
  194. package/src/version.ts +1 -1
@@ -0,0 +1,225 @@
1
+ // Generated by scripts/sync-tokens.ts from tokens.css. Do not edit.
2
+ export const ROXY_UI_TOKENS_CSS = `/**
3
+ * Roxy UI design tokens. ~30 CSS custom properties that every component reads. Light + dark defaults. Host page overrides at :root or per element. No Tailwind, no class-name overrides, no JS theme switcher.
4
+ *
5
+ * Delivery model: this file ships as a global light-DOM stylesheet (linked, or auto-injected by the CDN bundle). Custom properties inherit through the shadow boundary, so tokens set on a light-DOM ancestor reach every component shadow. The explicit theme blocks therefore target light-DOM selectors (:root, .dark, [data-theme="dark"], a wrapper element), NOT :host (a :host rule in a global sheet matches nothing). The :host([data-theme]) selectors are kept only for the case where this CSS is ever adopted directly into a shadow root; they are inert in global delivery.
6
+ *
7
+ * Light is the default. Dark applies under any of:
8
+ * - prefers-color-scheme: dark
9
+ * - [data-theme="dark"] on the element itself or any ancestor (typically :root)
10
+ * - .dark class on the element itself or any ancestor (typically :root)
11
+ *
12
+ * Explicit choice wins over the OS: the [data-theme] / .dark blocks come after the @media (prefers-color-scheme: dark) block in source order, and a closer ancestor overrides a farther one through normal custom-property inheritance.
13
+ *
14
+ * Motion gating:
15
+ * - --roxy-motion-duration defaults to 200ms. Set to 0ms to disable.
16
+ * - prefers-reduced-motion: reduce forces 0ms regardless of host overrides.
17
+ */
18
+
19
+ :root,
20
+ :host {
21
+ /* Color: brand */
22
+ --roxy-primary: #0f172a;
23
+ --roxy-secondary: #475569;
24
+ --roxy-accent: #f59e0b;
25
+ /* Text-safe accent variant. amber-500 hits 2.14:1 on white which fails
26
+ * WCAG AA for body text. amber-700 hits 4.5:1, used wherever the accent
27
+ * tone is applied to text. Fills (planet glyphs, chart accents, badges
28
+ * with non-text use) keep --roxy-accent. */
29
+ --roxy-accent-ink: #b45309;
30
+
31
+ /* Color: status. The base value (success, warning, danger, info) is for
32
+ * fills and tints. The -fg variant is darker so text on a light tint passes
33
+ * WCAG AA (>= 4.5:1 on white). Use -fg whenever status color hits text. */
34
+ --roxy-success: #16a34a;
35
+ --roxy-success-fg: #166534;
36
+ --roxy-warning: #ea580c;
37
+ --roxy-warning-fg: #9a3412;
38
+ --roxy-danger: #dc2626;
39
+ --roxy-danger-fg: #991b1b;
40
+ --roxy-info: #0284c7;
41
+ --roxy-info-fg: #075985;
42
+
43
+ /* Color: surface */
44
+ --roxy-bg: #ffffff;
45
+ --roxy-fg: #0a0a0a;
46
+ --roxy-muted: #71717a;
47
+ --roxy-border: #e4e4e7;
48
+ --roxy-ring: rgba(245, 158, 11, 0.4);
49
+
50
+ /* Typography */
51
+ --roxy-font-sans:
52
+ "Geist", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
53
+ sans-serif;
54
+ --roxy-font-mono:
55
+ "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono",
56
+ monospace;
57
+
58
+ --roxy-text-xs: 0.75rem;
59
+ --roxy-text-sm: 0.875rem;
60
+ --roxy-text-base: 1rem;
61
+ --roxy-text-lg: 1.125rem;
62
+ --roxy-text-xl: 1.5rem;
63
+
64
+ --roxy-weight-normal: 400;
65
+ --roxy-weight-bold: 600;
66
+
67
+ --roxy-leading-tight: 1.2;
68
+ --roxy-leading-normal: 1.5;
69
+
70
+ --roxy-tracking-tight: -0.02em;
71
+ --roxy-tracking-normal: 0em;
72
+
73
+ /* Spacing */
74
+ --roxy-space-xs: 0.25rem;
75
+ --roxy-space-sm: 0.5rem;
76
+ --roxy-space-md: 1rem;
77
+ --roxy-space-lg: 1.5rem;
78
+ --roxy-space-xl: 2.5rem;
79
+
80
+ /* Radius */
81
+ --roxy-radius-sm: 4px;
82
+ --roxy-radius-md: 8px;
83
+ --roxy-radius-lg: 12px;
84
+ --roxy-radius-full: 9999px;
85
+
86
+ /* Shadow */
87
+ --roxy-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.06);
88
+ --roxy-shadow-md:
89
+ 0 4px 6px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -2px rgba(0, 0, 0, 0.06);
90
+ --roxy-shadow-lg: 0 12px 24px -8px rgba(0, 0, 0, 0.14);
91
+
92
+ /* Motion */
93
+ --roxy-motion-duration: 200ms;
94
+ --roxy-motion-easing: cubic-bezier(0.4, 0, 0.2, 1);
95
+
96
+ /* Heat scale: a single base hue. Consumers mix it with \`transparent\` at
97
+ * increasing percentages to paint cooler-to-hotter tiers. The mix-with-
98
+ * transparent approach lets the page bg show through and keeps text
99
+ * colour stable (always --roxy-fg), so the cells read in both themes
100
+ * without per-tier text colours. */
101
+ --roxy-heat: var(--roxy-danger, #ef4444);
102
+ }
103
+
104
+ /* Dark theme via system preference */
105
+ @media (prefers-color-scheme: dark) {
106
+ :root,
107
+ :host {
108
+ --roxy-primary: #f8fafc;
109
+ --roxy-secondary: #94a3b8;
110
+ --roxy-accent: #fbbf24;
111
+ --roxy-accent-ink: #fbbf24;
112
+
113
+ /* Status -fg overrides must mirror the explicit [data-theme="dark"] block
114
+ * below. Without these, a user on system dark with no data-theme attribute
115
+ * inherits the light-mode -fg values (e.g. #166534 success) which renders
116
+ * as near-invisible dark green on a near-black surface and fails WCAG AA. */
117
+ --roxy-success: #22c55e;
118
+ --roxy-success-fg: #86efac;
119
+ --roxy-warning: #fb923c;
120
+ --roxy-warning-fg: #fdba74;
121
+ --roxy-danger: #ef4444;
122
+ --roxy-danger-fg: #fca5a5;
123
+ --roxy-info: #38bdf8;
124
+ --roxy-info-fg: #7dd3fc;
125
+
126
+ --roxy-bg: #0a0a0a;
127
+ --roxy-fg: #fafafa;
128
+ --roxy-muted: #a1a1aa;
129
+ --roxy-border: #27272a;
130
+ --roxy-ring: rgba(251, 191, 36, 0.45);
131
+
132
+ --roxy-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.5);
133
+ --roxy-shadow-md:
134
+ 0 4px 6px -1px rgba(0, 0, 0, 0.6), 0 2px 4px -2px rgba(0, 0, 0, 0.5);
135
+ --roxy-shadow-lg: 0 12px 24px -8px rgba(0, 0, 0, 0.7);
136
+
137
+ --roxy-heat: var(--roxy-danger, #ef4444);
138
+ }
139
+ }
140
+
141
+ /* Light theme override. Beats the @media (prefers-color-scheme: dark) block
142
+ * when the host explicitly opts back into light. Without this, a dark-mode OS
143
+ * pins the tokens to dark even after data-theme="light" is set. The light-DOM
144
+ * selectors (:root.light, .light, [data-theme="light"]) set the vars on the
145
+ * ancestor or the element itself so they inherit into every component shadow;
146
+ * :host([data-theme="light"]) is inert in global delivery and kept only for
147
+ * shadow-adopted use. */
148
+ :root[data-theme="light"],
149
+ [data-theme="light"],
150
+ :root.light,
151
+ .light,
152
+ :host([data-theme="light"]) {
153
+ --roxy-primary: #0f172a;
154
+ --roxy-secondary: #475569;
155
+ --roxy-accent: #f59e0b;
156
+ --roxy-accent-ink: #b45309;
157
+
158
+ --roxy-success: #16a34a;
159
+ --roxy-success-fg: #166534;
160
+ --roxy-warning: #ea580c;
161
+ --roxy-warning-fg: #9a3412;
162
+ --roxy-danger: #dc2626;
163
+ --roxy-danger-fg: #991b1b;
164
+ --roxy-info: #0284c7;
165
+ --roxy-info-fg: #075985;
166
+
167
+ --roxy-bg: #ffffff;
168
+ --roxy-fg: #0a0a0a;
169
+ --roxy-muted: #71717a;
170
+ --roxy-border: #e4e4e7;
171
+ --roxy-ring: rgba(245, 158, 11, 0.4);
172
+
173
+ --roxy-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.06);
174
+ --roxy-shadow-md:
175
+ 0 4px 6px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -2px rgba(0, 0, 0, 0.06);
176
+ --roxy-shadow-lg: 0 12px 24px -8px rgba(0, 0, 0, 0.14);
177
+ }
178
+
179
+ /* Dark theme via explicit opt-in. The light-DOM selectors (:root.dark, .dark,
180
+ * [data-theme="dark"]) set the vars on the ancestor or the element itself so
181
+ * they inherit into every component shadow; this is what makes a .dark class on
182
+ * any ancestor (Tailwind, shadcn) actually theme the components in global
183
+ * delivery. :host([data-theme="dark"]) is inert in global delivery and kept
184
+ * only for shadow-adopted use. */
185
+ :root[data-theme="dark"],
186
+ [data-theme="dark"],
187
+ :root.dark,
188
+ .dark,
189
+ :host([data-theme="dark"]) {
190
+ --roxy-primary: #f8fafc;
191
+ --roxy-secondary: #94a3b8;
192
+ --roxy-accent: #fbbf24;
193
+ --roxy-accent-ink: #fbbf24;
194
+
195
+ --roxy-success: #22c55e;
196
+ --roxy-success-fg: #86efac;
197
+ --roxy-warning: #fb923c;
198
+ --roxy-warning-fg: #fdba74;
199
+ --roxy-danger: #ef4444;
200
+ --roxy-danger-fg: #fca5a5;
201
+ --roxy-info: #38bdf8;
202
+ --roxy-info-fg: #7dd3fc;
203
+
204
+ --roxy-bg: #0a0a0a;
205
+ --roxy-fg: #fafafa;
206
+ --roxy-muted: #a1a1aa;
207
+ --roxy-border: #27272a;
208
+ --roxy-ring: rgba(251, 191, 36, 0.45);
209
+
210
+ --roxy-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.5);
211
+ --roxy-shadow-md:
212
+ 0 4px 6px -1px rgba(0, 0, 0, 0.6), 0 2px 4px -2px rgba(0, 0, 0, 0.5);
213
+ --roxy-shadow-lg: 0 12px 24px -8px rgba(0, 0, 0, 0.7);
214
+
215
+ --roxy-heat: var(--roxy-danger, #ef4444);
216
+ }
217
+
218
+ /* Reduced motion override */
219
+ @media (prefers-reduced-motion: reduce) {
220
+ :root,
221
+ :host {
222
+ --roxy-motion-duration: 0ms;
223
+ }
224
+ }
225
+ `;
@@ -1,12 +1,14 @@
1
1
  /**
2
- * Roxy UI design tokens. ~30 CSS custom properties that every component reads
3
- * via :host selector. Light + dark defaults. Host page overrides at :root or
4
- * per element. No Tailwind, no class-name overrides, no JS theme switcher.
2
+ * Roxy UI design tokens. ~30 CSS custom properties that every component reads. Light + dark defaults. Host page overrides at :root or per element. No Tailwind, no class-name overrides, no JS theme switcher.
3
+ *
4
+ * Delivery model: this file ships as a global light-DOM stylesheet (linked, or auto-injected by the CDN bundle). Custom properties inherit through the shadow boundary, so tokens set on a light-DOM ancestor reach every component shadow. The explicit theme blocks therefore target light-DOM selectors (:root, .dark, [data-theme="dark"], a wrapper element), NOT :host (a :host rule in a global sheet matches nothing). The :host([data-theme]) selectors are kept only for the case where this CSS is ever adopted directly into a shadow root; they are inert in global delivery.
5
5
  *
6
6
  * Light is the default. Dark applies under any of:
7
7
  * - prefers-color-scheme: dark
8
- * - [data-theme="dark"] on :root or any ancestor
9
- * - .dark class on :root or any ancestor
8
+ * - [data-theme="dark"] on the element itself or any ancestor (typically :root)
9
+ * - .dark class on the element itself or any ancestor (typically :root)
10
+ *
11
+ * Explicit choice wins over the OS: the [data-theme] / .dark blocks come after the @media (prefers-color-scheme: dark) block in source order, and a closer ancestor overrides a farther one through normal custom-property inheritance.
10
12
  *
11
13
  * Motion gating:
12
14
  * - --roxy-motion-duration defaults to 200ms. Set to 0ms to disable.
@@ -137,10 +139,16 @@
137
139
 
138
140
  /* Light theme override. Beats the @media (prefers-color-scheme: dark) block
139
141
  * when the host explicitly opts back into light. Without this, a dark-mode OS
140
- * pins the tokens to dark even after data-theme="light" is set. */
142
+ * pins the tokens to dark even after data-theme="light" is set. The light-DOM
143
+ * selectors (:root.light, .light, [data-theme="light"]) set the vars on the
144
+ * ancestor or the element itself so they inherit into every component shadow;
145
+ * :host([data-theme="light"]) is inert in global delivery and kept only for
146
+ * shadow-adopted use. */
141
147
  :root[data-theme="light"],
142
- :host([data-theme="light"]),
143
- .light :host {
148
+ [data-theme="light"],
149
+ :root.light,
150
+ .light,
151
+ :host([data-theme="light"]) {
144
152
  --roxy-primary: #0f172a;
145
153
  --roxy-secondary: #475569;
146
154
  --roxy-accent: #f59e0b;
@@ -167,10 +175,17 @@
167
175
  --roxy-shadow-lg: 0 12px 24px -8px rgba(0, 0, 0, 0.14);
168
176
  }
169
177
 
170
- /* Dark theme via host opt-in */
178
+ /* Dark theme via explicit opt-in. The light-DOM selectors (:root.dark, .dark,
179
+ * [data-theme="dark"]) set the vars on the ancestor or the element itself so
180
+ * they inherit into every component shadow; this is what makes a .dark class on
181
+ * any ancestor (Tailwind, shadcn) actually theme the components in global
182
+ * delivery. :host([data-theme="dark"]) is inert in global delivery and kept
183
+ * only for shadow-adopted use. */
171
184
  :root[data-theme="dark"],
172
- :host([data-theme="dark"]),
173
- .dark :host {
185
+ [data-theme="dark"],
186
+ :root.dark,
187
+ .dark,
188
+ :host([data-theme="dark"]) {
174
189
  --roxy-primary: #f8fafc;
175
190
  --roxy-secondary: #94a3b8;
176
191
  --roxy-accent: #fbbf24;
@@ -1,3 +1,3 @@
1
1
  // This file is auto-generated by @hey-api/openapi-ts
2
2
 
3
- export type { AnalyzeKarmicLessonsData, AnalyzeKarmicLessonsError, AnalyzeKarmicLessonsErrors, AnalyzeKarmicLessonsResponse, AnalyzeKarmicLessonsResponses, AnalyzeNumberSequenceData, AnalyzeNumberSequenceError, AnalyzeNumberSequenceErrors, AnalyzeNumberSequenceResponse, AnalyzeNumberSequenceResponses, AshtakavargaRequest, AshtakavargaResponse, AspectPatternsRequest, AspectPatternsResponse, AspectsRequest, AspectsResponse, BasicCard, BasicDreamSymbol, BasicHexagram, BasicTrigram, BirthChartRequest, BirthChartResponse, CalculateAshtakavargaData, CalculateAshtakavargaError, CalculateAshtakavargaErrors, CalculateAshtakavargaResponse, CalculateAshtakavargaResponses, CalculateAspectsData, CalculateAspectsError, CalculateAspectsErrors, CalculateAspectsResponse, CalculateAspectsResponses, CalculateBioCompatibilityData, CalculateBioCompatibilityError, CalculateBioCompatibilityErrors, CalculateBioCompatibilityResponse, CalculateBioCompatibilityResponses, CalculateBirthDayData, CalculateBirthDayError, CalculateBirthDayErrors, CalculateBirthDayResponse, CalculateBirthDayResponses, CalculateBridgeNumbersData, CalculateBridgeNumbersError, CalculateBridgeNumbersErrors, CalculateBridgeNumbersResponse, CalculateBridgeNumbersResponses, CalculateCentersData, CalculateCentersError, CalculateCentersErrors, CalculateCentersResponse, CalculateCentersResponses, CalculateChannelsData, CalculateChannelsError, CalculateChannelsErrors, CalculateChannelsResponse, CalculateChannelsResponses, CalculateCompatibilityData, CalculateCompatibilityError, CalculateCompatibilityErrors, CalculateCompatibilityResponse, CalculateCompatibilityResponses, CalculateConnectionData, CalculateConnectionError, CalculateConnectionErrors, CalculateConnectionResponse, CalculateConnectionResponses, CalculateDrishtiData, CalculateDrishtiError, CalculateDrishtiErrors, CalculateDrishtiResponse, CalculateDrishtiResponses, CalculateExpressionData, CalculateExpressionError, CalculateExpressionErrors, CalculateExpressionResponse, CalculateExpressionResponses, CalculateGatesData, CalculateGatesError, CalculateGatesErrors, CalculateGatesResponse, CalculateGatesResponses, CalculateGunMilanData, CalculateGunMilanError, CalculateGunMilanErrors, CalculateGunMilanResponse, CalculateGunMilanResponses, CalculateHousesData, CalculateHousesError, CalculateHousesErrors, CalculateHousesResponse, CalculateHousesResponses, CalculateLifePathData, CalculateLifePathError, CalculateLifePathErrors, CalculateLifePathResponse, CalculateLifePathResponses, CalculateMaturityData, CalculateMaturityError, CalculateMaturityErrors, CalculateMaturityResponse, CalculateMaturityResponses, CalculateNumCompatibilityData, CalculateNumCompatibilityError, CalculateNumCompatibilityErrors, CalculateNumCompatibilityResponse, CalculateNumCompatibilityResponses, CalculateParallelsData, CalculateParallelsError, CalculateParallelsErrors, CalculateParallelsResponse, CalculateParallelsResponses, CalculatePentaData, CalculatePentaError, CalculatePentaErrors, CalculatePentaResponse, CalculatePentaResponses, CalculatePersonalDayData, CalculatePersonalDayError, CalculatePersonalDayErrors, CalculatePersonalDayResponse, CalculatePersonalDayResponses, CalculatePersonalityData, CalculatePersonalityError, CalculatePersonalityErrors, CalculatePersonalityResponse, CalculatePersonalityResponses, CalculatePersonalMonthData, CalculatePersonalMonthError, CalculatePersonalMonthErrors, CalculatePersonalMonthResponse, CalculatePersonalMonthResponses, CalculatePersonalYearData, CalculatePersonalYearError, CalculatePersonalYearErrors, CalculatePersonalYearResponse, CalculatePersonalYearResponses, CalculateProfileData, CalculateProfileError, CalculateProfileErrors, CalculateProfileResponse, CalculateProfileResponses, CalculateShadbalaData, CalculateShadbalaError, CalculateShadbalaErrors, CalculateShadbalaResponse, CalculateShadbalaResponses, CalculateSoulUrgeData, CalculateSoulUrgeError, CalculateSoulUrgeErrors, CalculateSoulUrgeResponse, CalculateSoulUrgeResponses, CalculateSynastryData, CalculateSynastryError, CalculateSynastryErrors, CalculateSynastryResponse, CalculateSynastryResponses, CalculateTransitAspectsData, CalculateTransitAspectsError, CalculateTransitAspectsErrors, CalculateTransitAspectsResponse, CalculateTransitAspectsResponses, CalculateTransitData, CalculateTransitError, CalculateTransitErrors, CalculateTransitResponse, CalculateTransitResponses, CalculateTransitsData, CalculateTransitsError, CalculateTransitsErrors, CalculateTransitsResponse, CalculateTransitsResponses, CalculateTypeData, CalculateTypeError, CalculateTypeErrors, CalculateTypeResponse, CalculateTypeResponses, CalculateVariablesData, CalculateVariablesError, CalculateVariablesErrors, CalculateVariablesResponse, CalculateVariablesResponses, Card, CastCareerSpreadData, CastCareerSpreadError, CastCareerSpreadErrors, CastCareerSpreadResponse, CastCareerSpreadResponses, CastCelticCrossData, CastCelticCrossError, CastCelticCrossErrors, CastCelticCrossResponse, CastCelticCrossResponses, CastCustomSpreadData, CastCustomSpreadError, CastCustomSpreadErrors, CastCustomSpreadResponse, CastCustomSpreadResponses, CastDailyReadingData, CastDailyReadingError, CastDailyReadingErrors, CastDailyReadingResponse, CastDailyReadingResponses, CastLoveSpreadData, CastLoveSpreadError, CastLoveSpreadErrors, CastLoveSpreadResponse, CastLoveSpreadResponses, CastReadingData, CastReadingError, CastReadingErrors, CastReadingResponse, CastReadingResponses, CastThreeCardData, CastThreeCardError, CastThreeCardErrors, CastThreeCardResponse, CastThreeCardResponses, CastYesNoData, CastYesNoError, CastYesNoErrors, CastYesNoResponse, CastYesNoResponses, ChangingLine, CheckKalsarpaDoshaData, CheckKalsarpaDoshaError, CheckKalsarpaDoshaErrors, CheckKalsarpaDoshaResponse, CheckKalsarpaDoshaResponses, CheckKarmicDebtData, CheckKarmicDebtError, CheckKarmicDebtErrors, CheckKarmicDebtResponse, CheckKarmicDebtResponses, CheckManglikDoshaData, CheckManglikDoshaError, CheckManglikDoshaErrors, CheckManglikDoshaResponse, CheckManglikDoshaResponses, CheckSadhesatiData, CheckSadhesatiError, CheckSadhesatiErrors, CheckSadhesatiResponse, CheckSadhesatiResponses, ClientOptions, CompatibilityRequest, CompatibilityResponse, DetectAspectPatternsData, DetectAspectPatternsError, DetectAspectPatternsErrors, DetectAspectPatternsResponse, DetectAspectPatternsResponses, DetectYogasData, DetectYogasError, DetectYogasErrors, DetectYogasResponse, DetectYogasResponses, DivisionalChartRequest, DivisionalChartResponse, DrawCardsData, DrawCardsError, DrawCardsErrors, DrawCardsResponse, DrawCardsResponses, DrawnCard, DreamSymbol, FindSignificantDatesData, FindSignificantDatesError, FindSignificantDatesErrors, FindSignificantDatesResponse, FindSignificantDatesResponses, ForecastTransitsData, ForecastTransitsError, ForecastTransitsErrors, ForecastTransitsResponse, ForecastTransitsResponses, GenerateBirthChartData, GenerateBirthChartError, GenerateBirthChartErrors, GenerateBirthChartResponse, GenerateBirthChartResponses, GenerateBodygraphData, GenerateBodygraphError, GenerateBodygraphErrors, GenerateBodygraphResponse, GenerateBodygraphResponses, GenerateCompositeChartData, GenerateCompositeChartError, GenerateCompositeChartErrors, GenerateCompositeChartResponse, GenerateCompositeChartResponses, GenerateDigestData, GenerateDigestError, GenerateDigestErrors, GenerateDigestResponse, GenerateDigestResponses, GenerateDivisionalChartData, GenerateDivisionalChartError, GenerateDivisionalChartErrors, GenerateDivisionalChartResponse, GenerateDivisionalChartResponses, GenerateKpChartData, GenerateKpChartError, GenerateKpChartErrors, GenerateKpChartResponse, GenerateKpChartResponses, GenerateLunarReturnData, GenerateLunarReturnError, GenerateLunarReturnErrors, GenerateLunarReturnResponse, GenerateLunarReturnResponses, GenerateNatalChartData, GenerateNatalChartError, GenerateNatalChartErrors, GenerateNatalChartResponse, GenerateNatalChartResponses, GenerateNavamsaData, GenerateNavamsaError, GenerateNavamsaErrors, GenerateNavamsaResponse, GenerateNavamsaResponses, GenerateNumerologyChartData, GenerateNumerologyChartError, GenerateNumerologyChartErrors, GenerateNumerologyChartResponse, GenerateNumerologyChartResponses, GeneratePlanetaryReturnData, GeneratePlanetaryReturnError, GeneratePlanetaryReturnErrors, GeneratePlanetaryReturnResponse, GeneratePlanetaryReturnResponses, GenerateSolarReturn2Data, GenerateSolarReturn2Error, GenerateSolarReturn2Errors, GenerateSolarReturn2Response, GenerateSolarReturn2Responses, GenerateSolarReturnData, GenerateSolarReturnError, GenerateSolarReturnErrors, GenerateSolarReturnResponse, GenerateSolarReturnResponses, GenerateTimelineData, GenerateTimelineError, GenerateTimelineErrors, GenerateTimelineResponse, GenerateTimelineResponses, GenerateTransitData, GenerateTransitError, GenerateTransitErrors, GenerateTransitResponse, GenerateTransitResponses, GetAngelNumberData, GetAngelNumberError, GetAngelNumberErrors, GetAngelNumberResponse, GetAngelNumberResponses, GetBasicPanchangData, GetBasicPanchangError, GetBasicPanchangErrors, GetBasicPanchangResponse, GetBasicPanchangResponses, GetBirthstonesData, GetBirthstonesError, GetBirthstonesErrors, GetBirthstonesResponse, GetBirthstonesResponses, GetCardData, GetCardError, GetCardErrors, GetCardResponse, GetCardResponses, GetCenterData, GetCenterError, GetCenterErrors, GetCenterResponse, GetCenterResponses, GetChoghadiyaData, GetChoghadiyaError, GetChoghadiyaErrors, GetChoghadiyaResponse, GetChoghadiyaResponses, GetCitiesByCountryData, GetCitiesByCountryError, GetCitiesByCountryErrors, GetCitiesByCountryResponse, GetCitiesByCountryResponses, GetCriticalDaysData, GetCriticalDaysError, GetCriticalDaysErrors, GetCriticalDaysResponse, GetCriticalDaysResponses, GetCrystalData, GetCrystalError, GetCrystalErrors, GetCrystalPairingsData, GetCrystalPairingsError, GetCrystalPairingsErrors, GetCrystalPairingsResponse, GetCrystalPairingsResponses, GetCrystalResponse, GetCrystalResponses, GetCrystalsByChakraData, GetCrystalsByChakraError, GetCrystalsByChakraErrors, GetCrystalsByChakraResponse, GetCrystalsByChakraResponses, GetCrystalsByElementData, GetCrystalsByElementError, GetCrystalsByElementErrors, GetCrystalsByElementResponse, GetCrystalsByElementResponses, GetCrystalsByZodiacData, GetCrystalsByZodiacError, GetCrystalsByZodiacErrors, GetCrystalsByZodiacResponse, GetCrystalsByZodiacResponses, GetCurrentDashaData, GetCurrentDashaError, GetCurrentDashaErrors, GetCurrentDashaResponse, GetCurrentDashaResponses, GetCurrentMoonPhaseData, GetCurrentMoonPhaseError, GetCurrentMoonPhaseErrors, GetCurrentMoonPhaseResponse, GetCurrentMoonPhaseResponses, GetDailyAngelNumberData, GetDailyAngelNumberError, GetDailyAngelNumberErrors, GetDailyAngelNumberResponse, GetDailyAngelNumberResponses, GetDailyBiorhythmData, GetDailyBiorhythmError, GetDailyBiorhythmErrors, GetDailyBiorhythmResponse, GetDailyBiorhythmResponses, GetDailyCardData, GetDailyCardError, GetDailyCardErrors, GetDailyCardResponse, GetDailyCardResponses, GetDailyCrystalData, GetDailyCrystalError, GetDailyCrystalErrors, GetDailyCrystalResponse, GetDailyCrystalResponses, GetDailyDreamSymbolData, GetDailyDreamSymbolError, GetDailyDreamSymbolErrors, GetDailyDreamSymbolResponse, GetDailyDreamSymbolResponses, GetDailyHexagramData, GetDailyHexagramError, GetDailyHexagramErrors, GetDailyHexagramResponse, GetDailyHexagramResponses, GetDailyHoroscopeData, GetDailyHoroscopeError, GetDailyHoroscopeErrors, GetDailyHoroscopeResponse, GetDailyHoroscopeResponses, GetDailyNumberData, GetDailyNumberError, GetDailyNumberErrors, GetDailyNumberResponse, GetDailyNumberResponses, GetDetailedPanchangData, GetDetailedPanchangError, GetDetailedPanchangErrors, GetDetailedPanchangResponse, GetDetailedPanchangResponses, GetDreamSymbolData, GetDreamSymbolError, GetDreamSymbolErrors, GetDreamSymbolResponse, GetDreamSymbolResponses, GetEclipticCrossingsData, GetEclipticCrossingsError, GetEclipticCrossingsErrors, GetEclipticCrossingsResponse, GetEclipticCrossingsResponses, GetForecastData, GetForecastError, GetForecastErrors, GetForecastResponse, GetForecastResponses, GetGateData, GetGateError, GetGateErrors, GetGateResponse, GetGateResponses, GetHexagramData, GetHexagramError, GetHexagramErrors, GetHexagramResponse, GetHexagramResponses, GetHoraData, GetHoraError, GetHoraErrors, GetHoraResponse, GetHoraResponses, GetKpAyanamsaData, GetKpAyanamsaError, GetKpAyanamsaErrors, GetKpAyanamsaResponse, GetKpAyanamsaResponses, GetKpCuspsData, GetKpCuspsError, GetKpCuspsErrors, GetKpCuspsResponse, GetKpCuspsResponses, GetKpPlanetsData, GetKpPlanetsError, GetKpPlanetsErrors, GetKpPlanetsIntervalData, GetKpPlanetsIntervalError, GetKpPlanetsIntervalErrors, GetKpPlanetsIntervalResponse, GetKpPlanetsIntervalResponses, GetKpPlanetsResponse, GetKpPlanetsResponses, GetKpRasiChangesData, GetKpRasiChangesError, GetKpRasiChangesErrors, GetKpRasiChangesResponse, GetKpRasiChangesResponses, GetKpRulingIntervalData, GetKpRulingIntervalError, GetKpRulingIntervalErrors, GetKpRulingIntervalResponse, GetKpRulingIntervalResponses, GetKpRulingPlanetsData, GetKpRulingPlanetsError, GetKpRulingPlanetsErrors, GetKpRulingPlanetsResponse, GetKpRulingPlanetsResponses, GetKpSublordChangesData, GetKpSublordChangesError, GetKpSublordChangesErrors, GetKpSublordChangesResponse, GetKpSublordChangesResponses, GetLunarAspectsData, GetLunarAspectsError, GetLunarAspectsErrors, GetLunarAspectsResponse, GetLunarAspectsResponses, GetMajorDashasData, GetMajorDashasError, GetMajorDashasErrors, GetMajorDashasResponse, GetMajorDashasResponses, GetMonthlyAspectsData, GetMonthlyAspectsError, GetMonthlyAspectsErrors, GetMonthlyAspectsResponse, GetMonthlyAspectsResponses, GetMonthlyEphemerisData, GetMonthlyEphemerisError, GetMonthlyEphemerisErrors, GetMonthlyEphemerisResponse, GetMonthlyEphemerisResponses, GetMonthlyHoroscopeData, GetMonthlyHoroscopeError, GetMonthlyHoroscopeErrors, GetMonthlyHoroscopeResponse, GetMonthlyHoroscopeResponses, GetMonthlyParallelsData, GetMonthlyParallelsError, GetMonthlyParallelsErrors, GetMonthlyParallelsResponse, GetMonthlyParallelsResponses, GetMonthlyTransitsData, GetMonthlyTransitsError, GetMonthlyTransitsErrors, GetMonthlyTransitsResponse, GetMonthlyTransitsResponses, GetMoonCalendarData, GetMoonCalendarError, GetMoonCalendarErrors, GetMoonCalendarResponse, GetMoonCalendarResponses, GetNakshatraData, GetNakshatraError, GetNakshatraErrors, GetNakshatraResponse, GetNakshatraResponses, GetNumberMeaningData, GetNumberMeaningError, GetNumberMeaningErrors, GetNumberMeaningResponse, GetNumberMeaningResponses, GetPhasesData, GetPhasesError, GetPhasesErrors, GetPhasesResponse, GetPhasesResponses, GetPlanetaryPositionsData, GetPlanetaryPositionsError, GetPlanetaryPositionsErrors, GetPlanetaryPositionsResponse, GetPlanetaryPositionsResponses, GetPlanetMeaningData, GetPlanetMeaningError, GetPlanetMeaningErrors, GetPlanetMeaningResponse, GetPlanetMeaningResponses, GetPlanetPositionsData, GetPlanetPositionsError, GetPlanetPositionsErrors, GetPlanetPositionsResponse, GetPlanetPositionsResponses, GetRandomCrystalData, GetRandomCrystalError, GetRandomCrystalErrors, GetRandomCrystalResponse, GetRandomCrystalResponses, GetRandomHexagramData, GetRandomHexagramError, GetRandomHexagramErrors, GetRandomHexagramResponse, GetRandomHexagramResponses, GetRandomSymbolsData, GetRandomSymbolsError, GetRandomSymbolsErrors, GetRandomSymbolsResponse, GetRandomSymbolsResponses, GetRashiData, GetRashiError, GetRashiErrors, GetRashiResponse, GetRashiResponses, GetReadingData, GetReadingError, GetReadingErrors, GetReadingResponse, GetReadingResponses, GetSubDashasData, GetSubDashasError, GetSubDashasErrors, GetSubDashasResponse, GetSubDashasResponses, GetSymbolLetterCountsData, GetSymbolLetterCountsError, GetSymbolLetterCountsErrors, GetSymbolLetterCountsResponse, GetSymbolLetterCountsResponses, GetTrigramData, GetTrigramError, GetTrigramErrors, GetTrigramResponse, GetTrigramResponses, GetUpagrahaPositionsData, GetUpagrahaPositionsError, GetUpagrahaPositionsErrors, GetUpagrahaPositionsResponse, GetUpagrahaPositionsResponses, GetUpcomingMoonPhasesData, GetUpcomingMoonPhasesError, GetUpcomingMoonPhasesErrors, GetUpcomingMoonPhasesResponse, GetUpcomingMoonPhasesResponses, GetUsageStatsData, GetUsageStatsError, GetUsageStatsErrors, GetUsageStatsResponse, GetUsageStatsResponses, GetWeeklyHoroscopeData, GetWeeklyHoroscopeError, GetWeeklyHoroscopeErrors, GetWeeklyHoroscopeResponse, GetWeeklyHoroscopeResponses, GetYogaData, GetYogaError, GetYogaErrors, GetYogaResponse, GetYogaResponses, GetZodiacSignData, GetZodiacSignError, GetZodiacSignErrors, GetZodiacSignResponse, GetZodiacSignResponses, Hexagram, HousesResponse, Interpretation, KalsarpaRequest, KalsarpaResponse, KpAyanamsaResponse, KpChartRequest, KpChartResponse, KpCuspsRequest, KpCuspsResponse, KpPlanetsIntervalRequest, KpPlanetsIntervalResponse, KpPlanetsRequest, KpPlanetsResponse, KpRasiChangesRequest, KpRasiChangesResponse, KpRulingPlanetsIntervalResponse, KpRulingPlanetsResponse, KpSublordChangesRequest, KpSublordChangesResponse, ListAngelNumbersData, ListAngelNumbersError, ListAngelNumbersErrors, ListAngelNumbersResponse, ListAngelNumbersResponses, ListCardsData, ListCardsError, ListCardsErrors, ListCardsResponse, ListCardsResponses, ListCountriesData, ListCountriesError, ListCountriesErrors, ListCountriesResponse, ListCountriesResponses, ListCrystalColorsData, ListCrystalColorsError, ListCrystalColorsErrors, ListCrystalColorsResponse, ListCrystalColorsResponses, ListCrystalPlanetsData, ListCrystalPlanetsError, ListCrystalPlanetsErrors, ListCrystalPlanetsResponse, ListCrystalPlanetsResponses, ListCrystalsData, ListCrystalsError, ListCrystalsErrors, ListCrystalsResponse, ListCrystalsResponses, ListHexagramsData, ListHexagramsError, ListHexagramsErrors, ListHexagramsResponse, ListHexagramsResponses, ListLanguagesData, ListLanguagesError, ListLanguagesErrors, ListLanguagesResponse, ListLanguagesResponses, ListNakshatrasData, ListNakshatrasError, ListNakshatrasErrors, ListNakshatrasResponse, ListNakshatrasResponses, ListPlanetMeaningsData, ListPlanetMeaningsError, ListPlanetMeaningsErrors, ListPlanetMeaningsResponse, ListPlanetMeaningsResponses, ListRashisData, ListRashisError, ListRashisErrors, ListRashisResponse, ListRashisResponses, ListTrigramsData, ListTrigramsError, ListTrigramsErrors, ListTrigramsResponse, ListTrigramsResponses, ListYogasData, ListYogasError, ListYogasErrors, ListYogasResponse, ListYogasResponses, ListZodiacSignsData, ListZodiacSignsError, ListZodiacSignsErrors, ListZodiacSignsResponse, ListZodiacSignsResponses, LookupHexagramData, LookupHexagramError, LookupHexagramErrors, LookupHexagramResponse, LookupHexagramResponses, ManglikRequest, ManglikResponse, NakshatraListResponse, NakshatraResponse, NatalChartRequest, NatalChartResponse, NavamsaRequest, NavamsaResponse, PlanetaryPositionsRequest, PlanetaryPositionsResponse, RashiListResponse, RashiResponse, SadhesatiRequest, SadhesatiResponse, SearchCitiesData, SearchCitiesError, SearchCitiesErrors, SearchCitiesResponse, SearchCitiesResponses, SearchCrystalsData, SearchCrystalsError, SearchCrystalsErrors, SearchCrystalsResponse, SearchCrystalsResponses, SearchDreamSymbolsData, SearchDreamSymbolsError, SearchDreamSymbolsErrors, SearchDreamSymbolsResponse, SearchDreamSymbolsResponses, ShadbalaRequest, ShadbalaResponse, TransitsRequest, TransitsResponse, Trigram, UpagrahaRequest, UpagrahaResponse, YogaDetectRequest, YogaDetectResponse } from './types.gen';
3
+ export type { AnalyzeKarmicLessonsData, AnalyzeKarmicLessonsError, AnalyzeKarmicLessonsErrors, AnalyzeKarmicLessonsResponse, AnalyzeKarmicLessonsResponses, AnalyzeNumberSequenceData, AnalyzeNumberSequenceError, AnalyzeNumberSequenceErrors, AnalyzeNumberSequenceResponse, AnalyzeNumberSequenceResponses, AshtakavargaRequest, AshtakavargaResponse, AspectPatternsRequest, AspectPatternsResponse, AspectsRequest, AspectsResponse, BasicCard, BasicDreamSymbol, BasicHexagram, BasicTrigram, BirthChartRequest, BirthChartResponse, CalculateAshtakavargaData, CalculateAshtakavargaError, CalculateAshtakavargaErrors, CalculateAshtakavargaResponse, CalculateAshtakavargaResponses, CalculateAspectsData, CalculateAspectsError, CalculateAspectsErrors, CalculateAspectsResponse, CalculateAspectsResponses, CalculateBioCompatibilityData, CalculateBioCompatibilityError, CalculateBioCompatibilityErrors, CalculateBioCompatibilityResponse, CalculateBioCompatibilityResponses, CalculateBirthDayData, CalculateBirthDayError, CalculateBirthDayErrors, CalculateBirthDayResponse, CalculateBirthDayResponses, CalculateBridgeNumbersData, CalculateBridgeNumbersError, CalculateBridgeNumbersErrors, CalculateBridgeNumbersResponse, CalculateBridgeNumbersResponses, CalculateCentersData, CalculateCentersError, CalculateCentersErrors, CalculateCentersResponse, CalculateCentersResponses, CalculateChannelsData, CalculateChannelsError, CalculateChannelsErrors, CalculateChannelsResponse, CalculateChannelsResponses, CalculateCompatibilityData, CalculateCompatibilityError, CalculateCompatibilityErrors, CalculateCompatibilityResponse, CalculateCompatibilityResponses, CalculateConnectionData, CalculateConnectionError, CalculateConnectionErrors, CalculateConnectionResponse, CalculateConnectionResponses, CalculateDrishtiData, CalculateDrishtiError, CalculateDrishtiErrors, CalculateDrishtiResponse, CalculateDrishtiResponses, CalculateExpressionData, CalculateExpressionError, CalculateExpressionErrors, CalculateExpressionResponse, CalculateExpressionResponses, CalculateGatesData, CalculateGatesError, CalculateGatesErrors, CalculateGatesResponse, CalculateGatesResponses, CalculateGunMilanData, CalculateGunMilanError, CalculateGunMilanErrors, CalculateGunMilanResponse, CalculateGunMilanResponses, CalculateHousesData, CalculateHousesError, CalculateHousesErrors, CalculateHousesResponse, CalculateHousesResponses, CalculateLifePathData, CalculateLifePathError, CalculateLifePathErrors, CalculateLifePathResponse, CalculateLifePathResponses, CalculateMaturityData, CalculateMaturityError, CalculateMaturityErrors, CalculateMaturityResponse, CalculateMaturityResponses, CalculateNumCompatibilityData, CalculateNumCompatibilityError, CalculateNumCompatibilityErrors, CalculateNumCompatibilityResponse, CalculateNumCompatibilityResponses, CalculateParallelsData, CalculateParallelsError, CalculateParallelsErrors, CalculateParallelsResponse, CalculateParallelsResponses, CalculatePentaData, CalculatePentaError, CalculatePentaErrors, CalculatePentaResponse, CalculatePentaResponses, CalculatePersonalDayData, CalculatePersonalDayError, CalculatePersonalDayErrors, CalculatePersonalDayResponse, CalculatePersonalDayResponses, CalculatePersonalityData, CalculatePersonalityError, CalculatePersonalityErrors, CalculatePersonalityResponse, CalculatePersonalityResponses, CalculatePersonalMonthData, CalculatePersonalMonthError, CalculatePersonalMonthErrors, CalculatePersonalMonthResponse, CalculatePersonalMonthResponses, CalculatePersonalYearData, CalculatePersonalYearError, CalculatePersonalYearErrors, CalculatePersonalYearResponse, CalculatePersonalYearResponses, CalculateProfileData, CalculateProfileError, CalculateProfileErrors, CalculateProfileResponse, CalculateProfileResponses, CalculateShadbalaData, CalculateShadbalaError, CalculateShadbalaErrors, CalculateShadbalaResponse, CalculateShadbalaResponses, CalculateSoulUrgeData, CalculateSoulUrgeError, CalculateSoulUrgeErrors, CalculateSoulUrgeResponse, CalculateSoulUrgeResponses, CalculateSynastryData, CalculateSynastryError, CalculateSynastryErrors, CalculateSynastryResponse, CalculateSynastryResponses, CalculateTransitAspectsData, CalculateTransitAspectsError, CalculateTransitAspectsErrors, CalculateTransitAspectsResponse, CalculateTransitAspectsResponses, CalculateTransitData, CalculateTransitError, CalculateTransitErrors, CalculateTransitResponse, CalculateTransitResponses, CalculateTransitsData, CalculateTransitsError, CalculateTransitsErrors, CalculateTransitsResponse, CalculateTransitsResponses, CalculateTypeData, CalculateTypeError, CalculateTypeErrors, CalculateTypeResponse, CalculateTypeResponses, CalculateVariablesData, CalculateVariablesError, CalculateVariablesErrors, CalculateVariablesResponse, CalculateVariablesResponses, Card, CastCareerSpreadData, CastCareerSpreadError, CastCareerSpreadErrors, CastCareerSpreadResponse, CastCareerSpreadResponses, CastCelticCrossData, CastCelticCrossError, CastCelticCrossErrors, CastCelticCrossResponse, CastCelticCrossResponses, CastCustomSpreadData, CastCustomSpreadError, CastCustomSpreadErrors, CastCustomSpreadResponse, CastCustomSpreadResponses, CastDailyReadingData, CastDailyReadingError, CastDailyReadingErrors, CastDailyReadingResponse, CastDailyReadingResponses, CastLoveSpreadData, CastLoveSpreadError, CastLoveSpreadErrors, CastLoveSpreadResponse, CastLoveSpreadResponses, CastReadingData, CastReadingError, CastReadingErrors, CastReadingResponse, CastReadingResponses, CastThreeCardData, CastThreeCardError, CastThreeCardErrors, CastThreeCardResponse, CastThreeCardResponses, CastYesNoData, CastYesNoError, CastYesNoErrors, CastYesNoResponse, CastYesNoResponses, ChangingLine, CheckKalsarpaDoshaData, CheckKalsarpaDoshaError, CheckKalsarpaDoshaErrors, CheckKalsarpaDoshaResponse, CheckKalsarpaDoshaResponses, CheckKarmicDebtData, CheckKarmicDebtError, CheckKarmicDebtErrors, CheckKarmicDebtResponse, CheckKarmicDebtResponses, CheckManglikDoshaData, CheckManglikDoshaError, CheckManglikDoshaErrors, CheckManglikDoshaResponse, CheckManglikDoshaResponses, CheckSadhesatiData, CheckSadhesatiError, CheckSadhesatiErrors, CheckSadhesatiResponse, CheckSadhesatiResponses, ClientOptions, CompatibilityRequest, CompatibilityResponse, DetectAspectPatternsData, DetectAspectPatternsError, DetectAspectPatternsErrors, DetectAspectPatternsResponse, DetectAspectPatternsResponses, DetectYogasData, DetectYogasError, DetectYogasErrors, DetectYogasResponse, DetectYogasResponses, DivisionalChartRequest, DivisionalChartResponse, DrawCardsData, DrawCardsError, DrawCardsErrors, DrawCardsResponse, DrawCardsResponses, DrawnCard, DreamSymbol, FindSignificantDatesData, FindSignificantDatesError, FindSignificantDatesErrors, FindSignificantDatesResponse, FindSignificantDatesResponses, ForecastSolarReturnData, ForecastSolarReturnError, ForecastSolarReturnErrors, ForecastSolarReturnResponse, ForecastSolarReturnResponses, ForecastTransitsData, ForecastTransitsError, ForecastTransitsErrors, ForecastTransitsResponse, ForecastTransitsResponses, GenerateBirthChartData, GenerateBirthChartError, GenerateBirthChartErrors, GenerateBirthChartResponse, GenerateBirthChartResponses, GenerateBodygraphData, GenerateBodygraphError, GenerateBodygraphErrors, GenerateBodygraphResponse, GenerateBodygraphResponses, GenerateCompositeChartData, GenerateCompositeChartError, GenerateCompositeChartErrors, GenerateCompositeChartResponse, GenerateCompositeChartResponses, GenerateDigestData, GenerateDigestError, GenerateDigestErrors, GenerateDigestResponse, GenerateDigestResponses, GenerateDivisionalChartData, GenerateDivisionalChartError, GenerateDivisionalChartErrors, GenerateDivisionalChartResponse, GenerateDivisionalChartResponses, GenerateKpChartData, GenerateKpChartError, GenerateKpChartErrors, GenerateKpChartResponse, GenerateKpChartResponses, GenerateLunarReturnData, GenerateLunarReturnError, GenerateLunarReturnErrors, GenerateLunarReturnResponse, GenerateLunarReturnResponses, GenerateNatalChartData, GenerateNatalChartError, GenerateNatalChartErrors, GenerateNatalChartResponse, GenerateNatalChartResponses, GenerateNavamsaData, GenerateNavamsaError, GenerateNavamsaErrors, GenerateNavamsaResponse, GenerateNavamsaResponses, GenerateNumerologyChartData, GenerateNumerologyChartError, GenerateNumerologyChartErrors, GenerateNumerologyChartResponse, GenerateNumerologyChartResponses, GeneratePlanetaryReturnData, GeneratePlanetaryReturnError, GeneratePlanetaryReturnErrors, GeneratePlanetaryReturnResponse, GeneratePlanetaryReturnResponses, GenerateSolarReturnData, GenerateSolarReturnError, GenerateSolarReturnErrors, GenerateSolarReturnResponse, GenerateSolarReturnResponses, GenerateTimelineData, GenerateTimelineError, GenerateTimelineErrors, GenerateTimelineResponse, GenerateTimelineResponses, GenerateTransitData, GenerateTransitError, GenerateTransitErrors, GenerateTransitResponse, GenerateTransitResponses, GetAngelNumberData, GetAngelNumberError, GetAngelNumberErrors, GetAngelNumberResponse, GetAngelNumberResponses, GetBasicPanchangData, GetBasicPanchangError, GetBasicPanchangErrors, GetBasicPanchangResponse, GetBasicPanchangResponses, GetBirthstonesData, GetBirthstonesError, GetBirthstonesErrors, GetBirthstonesResponse, GetBirthstonesResponses, GetCardData, GetCardError, GetCardErrors, GetCardResponse, GetCardResponses, GetCenterData, GetCenterError, GetCenterErrors, GetCenterResponse, GetCenterResponses, GetChoghadiyaData, GetChoghadiyaError, GetChoghadiyaErrors, GetChoghadiyaResponse, GetChoghadiyaResponses, GetCitiesByCountryData, GetCitiesByCountryError, GetCitiesByCountryErrors, GetCitiesByCountryResponse, GetCitiesByCountryResponses, GetCriticalDaysData, GetCriticalDaysError, GetCriticalDaysErrors, GetCriticalDaysResponse, GetCriticalDaysResponses, GetCrystalData, GetCrystalError, GetCrystalErrors, GetCrystalPairingsData, GetCrystalPairingsError, GetCrystalPairingsErrors, GetCrystalPairingsResponse, GetCrystalPairingsResponses, GetCrystalResponse, GetCrystalResponses, GetCrystalsByChakraData, GetCrystalsByChakraError, GetCrystalsByChakraErrors, GetCrystalsByChakraResponse, GetCrystalsByChakraResponses, GetCrystalsByElementData, GetCrystalsByElementError, GetCrystalsByElementErrors, GetCrystalsByElementResponse, GetCrystalsByElementResponses, GetCrystalsByZodiacData, GetCrystalsByZodiacError, GetCrystalsByZodiacErrors, GetCrystalsByZodiacResponse, GetCrystalsByZodiacResponses, GetCurrentDashaData, GetCurrentDashaError, GetCurrentDashaErrors, GetCurrentDashaResponse, GetCurrentDashaResponses, GetCurrentMoonPhaseData, GetCurrentMoonPhaseError, GetCurrentMoonPhaseErrors, GetCurrentMoonPhaseResponse, GetCurrentMoonPhaseResponses, GetDailyAngelNumberData, GetDailyAngelNumberError, GetDailyAngelNumberErrors, GetDailyAngelNumberResponse, GetDailyAngelNumberResponses, GetDailyBiorhythmData, GetDailyBiorhythmError, GetDailyBiorhythmErrors, GetDailyBiorhythmResponse, GetDailyBiorhythmResponses, GetDailyCardData, GetDailyCardError, GetDailyCardErrors, GetDailyCardResponse, GetDailyCardResponses, GetDailyCrystalData, GetDailyCrystalError, GetDailyCrystalErrors, GetDailyCrystalResponse, GetDailyCrystalResponses, GetDailyDreamSymbolData, GetDailyDreamSymbolError, GetDailyDreamSymbolErrors, GetDailyDreamSymbolResponse, GetDailyDreamSymbolResponses, GetDailyHexagramData, GetDailyHexagramError, GetDailyHexagramErrors, GetDailyHexagramResponse, GetDailyHexagramResponses, GetDailyHoroscopeData, GetDailyHoroscopeError, GetDailyHoroscopeErrors, GetDailyHoroscopeResponse, GetDailyHoroscopeResponses, GetDailyNumberData, GetDailyNumberError, GetDailyNumberErrors, GetDailyNumberResponse, GetDailyNumberResponses, GetDetailedPanchangData, GetDetailedPanchangError, GetDetailedPanchangErrors, GetDetailedPanchangResponse, GetDetailedPanchangResponses, GetDreamSymbolData, GetDreamSymbolError, GetDreamSymbolErrors, GetDreamSymbolResponse, GetDreamSymbolResponses, GetEclipticCrossingsData, GetEclipticCrossingsError, GetEclipticCrossingsErrors, GetEclipticCrossingsResponse, GetEclipticCrossingsResponses, GetForecastData, GetForecastError, GetForecastErrors, GetForecastResponse, GetForecastResponses, GetGateData, GetGateError, GetGateErrors, GetGateResponse, GetGateResponses, GetHexagramData, GetHexagramError, GetHexagramErrors, GetHexagramResponse, GetHexagramResponses, GetHoraData, GetHoraError, GetHoraErrors, GetHoraResponse, GetHoraResponses, GetKpAyanamsaData, GetKpAyanamsaError, GetKpAyanamsaErrors, GetKpAyanamsaResponse, GetKpAyanamsaResponses, GetKpCuspsData, GetKpCuspsError, GetKpCuspsErrors, GetKpCuspsResponse, GetKpCuspsResponses, GetKpPlanetsData, GetKpPlanetsError, GetKpPlanetsErrors, GetKpPlanetsIntervalData, GetKpPlanetsIntervalError, GetKpPlanetsIntervalErrors, GetKpPlanetsIntervalResponse, GetKpPlanetsIntervalResponses, GetKpPlanetsResponse, GetKpPlanetsResponses, GetKpRasiChangesData, GetKpRasiChangesError, GetKpRasiChangesErrors, GetKpRasiChangesResponse, GetKpRasiChangesResponses, GetKpRulingIntervalData, GetKpRulingIntervalError, GetKpRulingIntervalErrors, GetKpRulingIntervalResponse, GetKpRulingIntervalResponses, GetKpRulingPlanetsData, GetKpRulingPlanetsError, GetKpRulingPlanetsErrors, GetKpRulingPlanetsResponse, GetKpRulingPlanetsResponses, GetKpSublordChangesData, GetKpSublordChangesError, GetKpSublordChangesErrors, GetKpSublordChangesResponse, GetKpSublordChangesResponses, GetLunarAspectsData, GetLunarAspectsError, GetLunarAspectsErrors, GetLunarAspectsResponse, GetLunarAspectsResponses, GetMajorDashasData, GetMajorDashasError, GetMajorDashasErrors, GetMajorDashasResponse, GetMajorDashasResponses, GetMonthlyAspectsData, GetMonthlyAspectsError, GetMonthlyAspectsErrors, GetMonthlyAspectsResponse, GetMonthlyAspectsResponses, GetMonthlyEphemerisData, GetMonthlyEphemerisError, GetMonthlyEphemerisErrors, GetMonthlyEphemerisResponse, GetMonthlyEphemerisResponses, GetMonthlyHoroscopeData, GetMonthlyHoroscopeError, GetMonthlyHoroscopeErrors, GetMonthlyHoroscopeResponse, GetMonthlyHoroscopeResponses, GetMonthlyParallelsData, GetMonthlyParallelsError, GetMonthlyParallelsErrors, GetMonthlyParallelsResponse, GetMonthlyParallelsResponses, GetMonthlyTransitsData, GetMonthlyTransitsError, GetMonthlyTransitsErrors, GetMonthlyTransitsResponse, GetMonthlyTransitsResponses, GetMoonCalendarData, GetMoonCalendarError, GetMoonCalendarErrors, GetMoonCalendarResponse, GetMoonCalendarResponses, GetNakshatraData, GetNakshatraError, GetNakshatraErrors, GetNakshatraResponse, GetNakshatraResponses, GetNumberMeaningData, GetNumberMeaningError, GetNumberMeaningErrors, GetNumberMeaningResponse, GetNumberMeaningResponses, GetPhasesData, GetPhasesError, GetPhasesErrors, GetPhasesResponse, GetPhasesResponses, GetPlanetaryPositionsData, GetPlanetaryPositionsError, GetPlanetaryPositionsErrors, GetPlanetaryPositionsResponse, GetPlanetaryPositionsResponses, GetPlanetMeaningData, GetPlanetMeaningError, GetPlanetMeaningErrors, GetPlanetMeaningResponse, GetPlanetMeaningResponses, GetPlanetPositionsData, GetPlanetPositionsError, GetPlanetPositionsErrors, GetPlanetPositionsResponse, GetPlanetPositionsResponses, GetRandomCrystalData, GetRandomCrystalError, GetRandomCrystalErrors, GetRandomCrystalResponse, GetRandomCrystalResponses, GetRandomHexagramData, GetRandomHexagramError, GetRandomHexagramErrors, GetRandomHexagramResponse, GetRandomHexagramResponses, GetRandomSymbolsData, GetRandomSymbolsError, GetRandomSymbolsErrors, GetRandomSymbolsResponse, GetRandomSymbolsResponses, GetRashiData, GetRashiError, GetRashiErrors, GetRashiResponse, GetRashiResponses, GetReadingData, GetReadingError, GetReadingErrors, GetReadingResponse, GetReadingResponses, GetSubDashasData, GetSubDashasError, GetSubDashasErrors, GetSubDashasResponse, GetSubDashasResponses, GetSymbolLetterCountsData, GetSymbolLetterCountsError, GetSymbolLetterCountsErrors, GetSymbolLetterCountsResponse, GetSymbolLetterCountsResponses, GetTrigramData, GetTrigramError, GetTrigramErrors, GetTrigramResponse, GetTrigramResponses, GetUpagrahaPositionsData, GetUpagrahaPositionsError, GetUpagrahaPositionsErrors, GetUpagrahaPositionsResponse, GetUpagrahaPositionsResponses, GetUpcomingMoonPhasesData, GetUpcomingMoonPhasesError, GetUpcomingMoonPhasesErrors, GetUpcomingMoonPhasesResponse, GetUpcomingMoonPhasesResponses, GetUsageStatsData, GetUsageStatsError, GetUsageStatsErrors, GetUsageStatsResponse, GetUsageStatsResponses, GetWeeklyHoroscopeData, GetWeeklyHoroscopeError, GetWeeklyHoroscopeErrors, GetWeeklyHoroscopeResponse, GetWeeklyHoroscopeResponses, GetYogaData, GetYogaError, GetYogaErrors, GetYogaResponse, GetYogaResponses, GetZodiacSignData, GetZodiacSignError, GetZodiacSignErrors, GetZodiacSignResponse, GetZodiacSignResponses, Hexagram, HousesResponse, Interpretation, KalsarpaRequest, KalsarpaResponse, KpAyanamsaResponse, KpChartRequest, KpChartResponse, KpCuspsRequest, KpCuspsResponse, KpPlanetsIntervalRequest, KpPlanetsIntervalResponse, KpPlanetsRequest, KpPlanetsResponse, KpRasiChangesRequest, KpRasiChangesResponse, KpRulingPlanetsIntervalResponse, KpRulingPlanetsResponse, KpSublordChangesRequest, KpSublordChangesResponse, ListAngelNumbersData, ListAngelNumbersError, ListAngelNumbersErrors, ListAngelNumbersResponse, ListAngelNumbersResponses, ListCardsData, ListCardsError, ListCardsErrors, ListCardsResponse, ListCardsResponses, ListCountriesData, ListCountriesError, ListCountriesErrors, ListCountriesResponse, ListCountriesResponses, ListCrystalColorsData, ListCrystalColorsError, ListCrystalColorsErrors, ListCrystalColorsResponse, ListCrystalColorsResponses, ListCrystalPlanetsData, ListCrystalPlanetsError, ListCrystalPlanetsErrors, ListCrystalPlanetsResponse, ListCrystalPlanetsResponses, ListCrystalsData, ListCrystalsError, ListCrystalsErrors, ListCrystalsResponse, ListCrystalsResponses, ListHexagramsData, ListHexagramsError, ListHexagramsErrors, ListHexagramsResponse, ListHexagramsResponses, ListLanguagesData, ListLanguagesError, ListLanguagesErrors, ListLanguagesResponse, ListLanguagesResponses, ListNakshatrasData, ListNakshatrasError, ListNakshatrasErrors, ListNakshatrasResponse, ListNakshatrasResponses, ListPlanetMeaningsData, ListPlanetMeaningsError, ListPlanetMeaningsErrors, ListPlanetMeaningsResponse, ListPlanetMeaningsResponses, ListRashisData, ListRashisError, ListRashisErrors, ListRashisResponse, ListRashisResponses, ListTrigramsData, ListTrigramsError, ListTrigramsErrors, ListTrigramsResponse, ListTrigramsResponses, ListYogasData, ListYogasError, ListYogasErrors, ListYogasResponse, ListYogasResponses, ListZodiacSignsData, ListZodiacSignsError, ListZodiacSignsErrors, ListZodiacSignsResponse, ListZodiacSignsResponses, LookupHexagramData, LookupHexagramError, LookupHexagramErrors, LookupHexagramResponse, LookupHexagramResponses, ManglikRequest, ManglikResponse, NakshatraListResponse, NakshatraResponse, NatalChartRequest, NatalChartResponse, NavamsaRequest, NavamsaResponse, PlanetaryPositionsRequest, PlanetaryPositionsResponse, RashiListResponse, RashiResponse, SadhesatiRequest, SadhesatiResponse, SearchCitiesData, SearchCitiesError, SearchCitiesErrors, SearchCitiesResponse, SearchCitiesResponses, SearchCrystalsData, SearchCrystalsError, SearchCrystalsErrors, SearchCrystalsResponse, SearchCrystalsResponses, SearchDreamSymbolsData, SearchDreamSymbolsError, SearchDreamSymbolsErrors, SearchDreamSymbolsResponse, SearchDreamSymbolsResponses, ShadbalaRequest, ShadbalaResponse, TransitsRequest, TransitsResponse, Trigram, UpagrahaRequest, UpagrahaResponse, YogaDetectRequest, YogaDetectResponse } from './types.gen';
@@ -25565,19 +25565,19 @@ export type GenerateTimelineResponses = {
25565
25565
  */
25566
25566
  datetime: string;
25567
25567
  /**
25568
- * Forecast domain. western covers transit aspects, sign ingresses, and retrograde stations. vedic covers Vimshottari mahadasha and antardasha boundaries. biorhythm covers critical days. A stable machine value, never localized, so consumers can branch on it under any language.
25568
+ * Forecast domain. western covers transit aspects, sign ingresses, retrograde stations, eclipses, and new and full moons. vedic covers Vimshottari mahadasha, antardasha, and pratyantardasha boundaries. biorhythm covers critical days. A stable machine value, never localized, so consumers can branch on it under any language.
25569
25569
  */
25570
25570
  domain: 'western' | 'vedic' | 'biorhythm';
25571
25571
  /**
25572
- * Event kind. transit-aspect, sign-ingress, retrograde-station, and eclipse are western, dasha-change is vedic Vimshottari, critical-day is biorhythm. A stable machine value, never localized, so consumers can branch on it under any language.
25572
+ * Event kind. transit-aspect, sign-ingress, retrograde-station, eclipse, and lunar-phase are western, dasha-change is vedic Vimshottari, critical-day is biorhythm. A stable machine value, never localized, so consumers can branch on it under any language.
25573
25573
  */
25574
- type: 'transit-aspect' | 'sign-ingress' | 'retrograde-station' | 'eclipse' | 'dasha-change' | 'critical-day';
25574
+ type: 'transit-aspect' | 'sign-ingress' | 'retrograde-station' | 'eclipse' | 'lunar-phase' | 'dasha-change' | 'critical-day';
25575
25575
  /**
25576
- * Primary subject of the event. A transiting planet for western events, Sun for a solar eclipse or Moon for a lunar eclipse, a mahadasha or antardasha label for dasha changes, or the critical cycle for biorhythm days.
25576
+ * Primary subject of the event. A transiting planet for western events, Sun for a solar eclipse, Moon for a lunar eclipse or a new or full moon, a mahadasha, antardasha, or pratyantardasha label for dasha changes, or the critical cycle for biorhythm days.
25577
25577
  */
25578
25578
  body: string;
25579
25579
  /**
25580
- * For a transit-aspect, the natal body the transit aspects. For a sign-ingress, the zodiac sign entered. Absent for other event types.
25580
+ * For a transit-aspect, the natal body the transit aspects. For a sign-ingress, the zodiac sign entered, and for a lunar-phase, the zodiac sign of the New or Full Moon. Absent for other event types.
25581
25581
  */
25582
25582
  target?: string;
25583
25583
  /**
@@ -25600,6 +25600,10 @@ export type GenerateTimelineResponses = {
25600
25600
  * For a lunar eclipse, the peak fraction from 0 to 1 of the Moon disc covered by Earth umbra. 1 for a total lunar eclipse, between 0 and 1 for a partial, 0 for a penumbral. Absent for solar eclipses and other event types.
25601
25601
  */
25602
25602
  obscuration?: number;
25603
+ /**
25604
+ * For a lunar-phase event, which syzygy it is: new-moon (Sun-Moon conjunction) or full-moon (Sun-Moon opposition). The intermediate quarters are not emitted. A stable machine value, never localized. Absent for other event types.
25605
+ */
25606
+ phase?: 'new-moon' | 'full-moon';
25603
25607
  /**
25604
25608
  * Plain-language summary of the event, suitable for direct display. The only localized field: when lang is set this sentence, and the body, target, and aspect names within it, render in the requested language while the structured fields stay English.
25605
25609
  */
@@ -25770,7 +25774,7 @@ export type ForecastTransitsError = ForecastTransitsErrors[keyof ForecastTransit
25770
25774
 
25771
25775
  export type ForecastTransitsResponses = {
25772
25776
  /**
25773
- * Time-ordered western transit events: aspects, ingresses, and stations
25777
+ * Time-ordered western forecast events: aspects, ingresses, stations, eclipses, and moon phases
25774
25778
  */
25775
25779
  200: {
25776
25780
  /**
@@ -25823,19 +25827,19 @@ export type ForecastTransitsResponses = {
25823
25827
  */
25824
25828
  datetime: string;
25825
25829
  /**
25826
- * Forecast domain. western covers transit aspects, sign ingresses, and retrograde stations. vedic covers Vimshottari mahadasha and antardasha boundaries. biorhythm covers critical days. A stable machine value, never localized, so consumers can branch on it under any language.
25830
+ * Forecast domain. western covers transit aspects, sign ingresses, retrograde stations, eclipses, and new and full moons. vedic covers Vimshottari mahadasha, antardasha, and pratyantardasha boundaries. biorhythm covers critical days. A stable machine value, never localized, so consumers can branch on it under any language.
25827
25831
  */
25828
25832
  domain: 'western' | 'vedic' | 'biorhythm';
25829
25833
  /**
25830
- * Event kind. transit-aspect, sign-ingress, retrograde-station, and eclipse are western, dasha-change is vedic Vimshottari, critical-day is biorhythm. A stable machine value, never localized, so consumers can branch on it under any language.
25834
+ * Event kind. transit-aspect, sign-ingress, retrograde-station, eclipse, and lunar-phase are western, dasha-change is vedic Vimshottari, critical-day is biorhythm. A stable machine value, never localized, so consumers can branch on it under any language.
25831
25835
  */
25832
- type: 'transit-aspect' | 'sign-ingress' | 'retrograde-station' | 'eclipse' | 'dasha-change' | 'critical-day';
25836
+ type: 'transit-aspect' | 'sign-ingress' | 'retrograde-station' | 'eclipse' | 'lunar-phase' | 'dasha-change' | 'critical-day';
25833
25837
  /**
25834
- * Primary subject of the event. A transiting planet for western events, Sun for a solar eclipse or Moon for a lunar eclipse, a mahadasha or antardasha label for dasha changes, or the critical cycle for biorhythm days.
25838
+ * Primary subject of the event. A transiting planet for western events, Sun for a solar eclipse, Moon for a lunar eclipse or a new or full moon, a mahadasha, antardasha, or pratyantardasha label for dasha changes, or the critical cycle for biorhythm days.
25835
25839
  */
25836
25840
  body: string;
25837
25841
  /**
25838
- * For a transit-aspect, the natal body the transit aspects. For a sign-ingress, the zodiac sign entered. Absent for other event types.
25842
+ * For a transit-aspect, the natal body the transit aspects. For a sign-ingress, the zodiac sign entered, and for a lunar-phase, the zodiac sign of the New or Full Moon. Absent for other event types.
25839
25843
  */
25840
25844
  target?: string;
25841
25845
  /**
@@ -25858,6 +25862,10 @@ export type ForecastTransitsResponses = {
25858
25862
  * For a lunar eclipse, the peak fraction from 0 to 1 of the Moon disc covered by Earth umbra. 1 for a total lunar eclipse, between 0 and 1 for a partial, 0 for a penumbral. Absent for solar eclipses and other event types.
25859
25863
  */
25860
25864
  obscuration?: number;
25865
+ /**
25866
+ * For a lunar-phase event, which syzygy it is: new-moon (Sun-Moon conjunction) or full-moon (Sun-Moon opposition). The intermediate quarters are not emitted. A stable machine value, never localized. Absent for other event types.
25867
+ */
25868
+ phase?: 'new-moon' | 'full-moon';
25861
25869
  /**
25862
25870
  * Plain-language summary of the event, suitable for direct display. The only localized field: when lang is set this sentence, and the body, target, and aspect names within it, render in the requested language while the structured fields stay English.
25863
25871
  */
@@ -26102,19 +26110,19 @@ export type FindSignificantDatesResponses = {
26102
26110
  */
26103
26111
  datetime: string;
26104
26112
  /**
26105
- * Forecast domain. western covers transit aspects, sign ingresses, and retrograde stations. vedic covers Vimshottari mahadasha and antardasha boundaries. biorhythm covers critical days. A stable machine value, never localized, so consumers can branch on it under any language.
26113
+ * Forecast domain. western covers transit aspects, sign ingresses, retrograde stations, eclipses, and new and full moons. vedic covers Vimshottari mahadasha, antardasha, and pratyantardasha boundaries. biorhythm covers critical days. A stable machine value, never localized, so consumers can branch on it under any language.
26106
26114
  */
26107
26115
  domain: 'western' | 'vedic' | 'biorhythm';
26108
26116
  /**
26109
- * Event kind. transit-aspect, sign-ingress, retrograde-station, and eclipse are western, dasha-change is vedic Vimshottari, critical-day is biorhythm. A stable machine value, never localized, so consumers can branch on it under any language.
26117
+ * Event kind. transit-aspect, sign-ingress, retrograde-station, eclipse, and lunar-phase are western, dasha-change is vedic Vimshottari, critical-day is biorhythm. A stable machine value, never localized, so consumers can branch on it under any language.
26110
26118
  */
26111
- type: 'transit-aspect' | 'sign-ingress' | 'retrograde-station' | 'eclipse' | 'dasha-change' | 'critical-day';
26119
+ type: 'transit-aspect' | 'sign-ingress' | 'retrograde-station' | 'eclipse' | 'lunar-phase' | 'dasha-change' | 'critical-day';
26112
26120
  /**
26113
- * Primary subject of the event. A transiting planet for western events, Sun for a solar eclipse or Moon for a lunar eclipse, a mahadasha or antardasha label for dasha changes, or the critical cycle for biorhythm days.
26121
+ * Primary subject of the event. A transiting planet for western events, Sun for a solar eclipse, Moon for a lunar eclipse or a new or full moon, a mahadasha, antardasha, or pratyantardasha label for dasha changes, or the critical cycle for biorhythm days.
26114
26122
  */
26115
26123
  body: string;
26116
26124
  /**
26117
- * For a transit-aspect, the natal body the transit aspects. For a sign-ingress, the zodiac sign entered. Absent for other event types.
26125
+ * For a transit-aspect, the natal body the transit aspects. For a sign-ingress, the zodiac sign entered, and for a lunar-phase, the zodiac sign of the New or Full Moon. Absent for other event types.
26118
26126
  */
26119
26127
  target?: string;
26120
26128
  /**
@@ -26137,6 +26145,10 @@ export type FindSignificantDatesResponses = {
26137
26145
  * For a lunar eclipse, the peak fraction from 0 to 1 of the Moon disc covered by Earth umbra. 1 for a total lunar eclipse, between 0 and 1 for a partial, 0 for a penumbral. Absent for solar eclipses and other event types.
26138
26146
  */
26139
26147
  obscuration?: number;
26148
+ /**
26149
+ * For a lunar-phase event, which syzygy it is: new-moon (Sun-Moon conjunction) or full-moon (Sun-Moon opposition). The intermediate quarters are not emitted. A stable machine value, never localized. Absent for other event types.
26150
+ */
26151
+ phase?: 'new-moon' | 'full-moon';
26140
26152
  /**
26141
26153
  * Plain-language summary of the event, suitable for direct display. The only localized field: when lang is set this sentence, and the body, target, and aspect names within it, render in the requested language while the structured fields stay English.
26142
26154
  */
@@ -26400,6 +26412,7 @@ export type GenerateDigestResponses = {
26400
26412
  'sign-ingress'?: number;
26401
26413
  'retrograde-station'?: number;
26402
26414
  eclipse?: number;
26415
+ 'lunar-phase'?: number;
26403
26416
  'dasha-change'?: number;
26404
26417
  'critical-day'?: number;
26405
26418
  };
@@ -26416,19 +26429,19 @@ export type GenerateDigestResponses = {
26416
26429
  */
26417
26430
  datetime: string;
26418
26431
  /**
26419
- * Forecast domain. western covers transit aspects, sign ingresses, and retrograde stations. vedic covers Vimshottari mahadasha and antardasha boundaries. biorhythm covers critical days. A stable machine value, never localized, so consumers can branch on it under any language.
26432
+ * Forecast domain. western covers transit aspects, sign ingresses, retrograde stations, eclipses, and new and full moons. vedic covers Vimshottari mahadasha, antardasha, and pratyantardasha boundaries. biorhythm covers critical days. A stable machine value, never localized, so consumers can branch on it under any language.
26420
26433
  */
26421
26434
  domain: 'western' | 'vedic' | 'biorhythm';
26422
26435
  /**
26423
- * Event kind. transit-aspect, sign-ingress, retrograde-station, and eclipse are western, dasha-change is vedic Vimshottari, critical-day is biorhythm. A stable machine value, never localized, so consumers can branch on it under any language.
26436
+ * Event kind. transit-aspect, sign-ingress, retrograde-station, eclipse, and lunar-phase are western, dasha-change is vedic Vimshottari, critical-day is biorhythm. A stable machine value, never localized, so consumers can branch on it under any language.
26424
26437
  */
26425
- type: 'transit-aspect' | 'sign-ingress' | 'retrograde-station' | 'eclipse' | 'dasha-change' | 'critical-day';
26438
+ type: 'transit-aspect' | 'sign-ingress' | 'retrograde-station' | 'eclipse' | 'lunar-phase' | 'dasha-change' | 'critical-day';
26426
26439
  /**
26427
- * Primary subject of the event. A transiting planet for western events, Sun for a solar eclipse or Moon for a lunar eclipse, a mahadasha or antardasha label for dasha changes, or the critical cycle for biorhythm days.
26440
+ * Primary subject of the event. A transiting planet for western events, Sun for a solar eclipse, Moon for a lunar eclipse or a new or full moon, a mahadasha, antardasha, or pratyantardasha label for dasha changes, or the critical cycle for biorhythm days.
26428
26441
  */
26429
26442
  body: string;
26430
26443
  /**
26431
- * For a transit-aspect, the natal body the transit aspects. For a sign-ingress, the zodiac sign entered. Absent for other event types.
26444
+ * For a transit-aspect, the natal body the transit aspects. For a sign-ingress, the zodiac sign entered, and for a lunar-phase, the zodiac sign of the New or Full Moon. Absent for other event types.
26432
26445
  */
26433
26446
  target?: string;
26434
26447
  /**
@@ -26451,6 +26464,10 @@ export type GenerateDigestResponses = {
26451
26464
  * For a lunar eclipse, the peak fraction from 0 to 1 of the Moon disc covered by Earth umbra. 1 for a total lunar eclipse, between 0 and 1 for a partial, 0 for a penumbral. Absent for solar eclipses and other event types.
26452
26465
  */
26453
26466
  obscuration?: number;
26467
+ /**
26468
+ * For a lunar-phase event, which syzygy it is: new-moon (Sun-Moon conjunction) or full-moon (Sun-Moon opposition). The intermediate quarters are not emitted. A stable machine value, never localized. Absent for other event types.
26469
+ */
26470
+ phase?: 'new-moon' | 'full-moon';
26454
26471
  /**
26455
26472
  * Plain-language summary of the event, suitable for direct display. The only localized field: when lang is set this sentence, and the body, target, and aspect names within it, render in the requested language while the structured fields stay English.
26456
26473
  */
@@ -26466,7 +26483,7 @@ export type GenerateDigestResponses = {
26466
26483
 
26467
26484
  export type GenerateDigestResponse = GenerateDigestResponses[keyof GenerateDigestResponses];
26468
26485
 
26469
- export type GenerateSolarReturn2Data = {
26486
+ export type ForecastSolarReturnData = {
26470
26487
  body?: {
26471
26488
  /**
26472
26489
  * Birth date in YYYY-MM-DD format. Anchors the natal Sun longitude the transiting Sun returns to each year.
@@ -26507,7 +26524,7 @@ export type GenerateSolarReturn2Data = {
26507
26524
  url: '/forecast/solar-return';
26508
26525
  };
26509
26526
 
26510
- export type GenerateSolarReturn2Errors = {
26527
+ export type ForecastSolarReturnErrors = {
26511
26528
  /**
26512
26529
  * Validation error. `issues[]` lists every failed field.
26513
26530
  */
@@ -26609,9 +26626,9 @@ export type GenerateSolarReturn2Errors = {
26609
26626
  };
26610
26627
  };
26611
26628
 
26612
- export type GenerateSolarReturn2Error = GenerateSolarReturn2Errors[keyof GenerateSolarReturn2Errors];
26629
+ export type ForecastSolarReturnError = ForecastSolarReturnErrors[keyof ForecastSolarReturnErrors];
26613
26630
 
26614
- export type GenerateSolarReturn2Responses = {
26631
+ export type ForecastSolarReturnResponses = {
26615
26632
  /**
26616
26633
  * Solar return chart cast for the requested year and location
26617
26634
  */
@@ -26832,7 +26849,7 @@ export type GenerateSolarReturn2Responses = {
26832
26849
  };
26833
26850
  };
26834
26851
 
26835
- export type GenerateSolarReturn2Response = GenerateSolarReturn2Responses[keyof GenerateSolarReturn2Responses];
26852
+ export type ForecastSolarReturnResponse = ForecastSolarReturnResponses[keyof ForecastSolarReturnResponses];
26836
26853
 
26837
26854
  export type GetReadingData = {
26838
26855
  body?: {
@@ -0,0 +1,27 @@
1
+ import { ROXY_UI_TOKENS_CSS } from '../styles/tokens-css.js';
2
+
3
+ /** Element id of the injected token stylesheet. Stable so injection is idempotent and so a host page can find, inspect, or remove it. */
4
+ export const ROXY_UI_TOKENS_STYLE_ID = 'roxy-ui-tokens';
5
+
6
+ /**
7
+ * Inject the Roxy UI design tokens (light + dark, all theme triggers) into the document head as the cascade's lowest-priority source, so a single CDN script tag yields full theming and dark mode with no separate stylesheet link.
8
+ *
9
+ * @remarks
10
+ * Three invariants hold this safe for every consumer:
11
+ *
12
+ * - SSR-safe: a missing `document` (Node, Lit-SSR, Bun) is a no-op. Only the CDN bundle calls this; the npm/ESM entry (`src/index.ts`) never touches the document, so bundler and server consumers are unaffected.
13
+ * - Idempotent: a second call (two script tags, HMR, re-registration) finds the existing `#roxy-ui-tokens` and returns without duplicating.
14
+ * - Lowest priority: the style is PREPENDED to `<head>`, so it is the earliest source-order rule. Any consumer `:root { --roxy-* }` brand override or linked `tokens.css` appears later and wins ties. This preserves backwards compatibility: existing pages that already link `tokens.css` and set overrides keep their exact behaviour.
15
+ *
16
+ * @returns The injected (or pre-existing) style element, or `null` under SSR.
17
+ */
18
+ export function injectRoxyTokens(): HTMLStyleElement | null {
19
+ if (typeof document === 'undefined') return null;
20
+ const existing = document.getElementById(ROXY_UI_TOKENS_STYLE_ID);
21
+ if (existing) return existing as HTMLStyleElement;
22
+ const style = document.createElement('style');
23
+ style.id = ROXY_UI_TOKENS_STYLE_ID;
24
+ style.textContent = ROXY_UI_TOKENS_CSS;
25
+ document.head.prepend(style);
26
+ return style;
27
+ }
@@ -173,6 +173,7 @@ function renderPlanetStack(
173
173
  *
174
174
  * @param meta - Graha-keyed map; missing rashi entries are skipped.
175
175
  * @param divisionLabel - Optional title written inside the chart centre.
176
+ * @param lagnaOverride - Optional rashi/sign name (case-insensitive, e.g. `"cancer"`) that replaces the `meta.Lagna`-derived ascendant. Drives the Chandra Lagna (Moon-as-ascendant) and other reference-point views: the `meta` of a `/birth-chart` response always carries the Janma Lagna as its `Lagna` key, so this is the only way to pivot the houses without a second request. Ignored when it does not resolve to a known sign.
176
177
  */
177
178
  export function toKundliViewModel(
178
179
  meta: Record<
@@ -187,14 +188,20 @@ export function toKundliViewModel(
187
188
  }
188
189
  >,
189
190
  divisionLabel?: string,
191
+ lagnaOverride?: string,
190
192
  ): KundliViewModel {
191
193
  const placements: Record<string, PlacedGraha[]> = {};
192
194
  for (const sign of SIGNS_ORDER) placements[sign.toLowerCase()] = [];
193
- let lagnaSign = '';
195
+ const override = lagnaOverride
196
+ ? (RASHI_TO_SIGN[lagnaOverride.toLowerCase()] ?? '')
197
+ : '';
198
+ let lagnaSign = override;
194
199
  for (const [name, pos] of Object.entries(meta ?? {})) {
195
200
  const rashiKey = (pos?.rashi ?? '').toLowerCase();
196
201
  if (name === 'Lagna' || pos?.graha === 'Lagna') {
197
- lagnaSign = RASHI_TO_SIGN[rashiKey] ?? '';
202
+ // An explicit override pins the ascendant; otherwise the Janma Lagna
203
+ // from meta is the reference point.
204
+ if (!override) lagnaSign = RASHI_TO_SIGN[rashiKey] ?? '';
198
205
  continue;
199
206
  }
200
207
  if (!rashiKey || !(rashiKey in placements)) continue;