@roxyapi/ui-vue 0.22.0 → 0.24.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 (260) hide show
  1. package/AGENTS.md +82 -3
  2. package/README.md +79 -0
  3. package/dist/components/angel-number-card.d.ts +8 -0
  4. package/dist/components/angel-number-card.d.ts.map +1 -1
  5. package/dist/components/angel-number-card.js +1 -1
  6. package/dist/components/angel-number-card.js.map +2 -2
  7. package/dist/components/angel-number-lookup.d.ts +8 -0
  8. package/dist/components/angel-number-lookup.d.ts.map +1 -1
  9. package/dist/components/angel-number-lookup.js +1 -1
  10. package/dist/components/angel-number-lookup.js.map +2 -2
  11. package/dist/components/arudha-padas.d.ts +8 -0
  12. package/dist/components/arudha-padas.d.ts.map +1 -1
  13. package/dist/components/arudha-padas.js +1 -1
  14. package/dist/components/arudha-padas.js.map +2 -2
  15. package/dist/components/ashtakavarga-grid.d.ts +8 -0
  16. package/dist/components/ashtakavarga-grid.d.ts.map +1 -1
  17. package/dist/components/ashtakavarga-grid.js +1 -1
  18. package/dist/components/ashtakavarga-grid.js.map +2 -2
  19. package/dist/components/aspects-table.d.ts +8 -0
  20. package/dist/components/aspects-table.d.ts.map +1 -1
  21. package/dist/components/aspects-table.js +1 -1
  22. package/dist/components/aspects-table.js.map +2 -2
  23. package/dist/components/astrocartography-map.d.ts +8 -0
  24. package/dist/components/astrocartography-map.d.ts.map +1 -1
  25. package/dist/components/astrocartography-map.js +1 -1
  26. package/dist/components/astrocartography-map.js.map +2 -2
  27. package/dist/components/bhav-chalit-table.d.ts +8 -0
  28. package/dist/components/bhav-chalit-table.d.ts.map +1 -1
  29. package/dist/components/bhav-chalit-table.js +1 -1
  30. package/dist/components/bhav-chalit-table.js.map +2 -2
  31. package/dist/components/bhava-bala-table.d.ts +8 -0
  32. package/dist/components/bhava-bala-table.d.ts.map +1 -1
  33. package/dist/components/bhava-bala-table.js +1 -1
  34. package/dist/components/bhava-bala-table.js.map +2 -2
  35. package/dist/components/biorhythm-chart.d.ts +8 -0
  36. package/dist/components/biorhythm-chart.d.ts.map +1 -1
  37. package/dist/components/biorhythm-chart.js +1 -1
  38. package/dist/components/biorhythm-chart.js.map +2 -2
  39. package/dist/components/bodygraph.d.ts +8 -0
  40. package/dist/components/bodygraph.d.ts.map +1 -1
  41. package/dist/components/bodygraph.js +1 -1
  42. package/dist/components/bodygraph.js.map +2 -2
  43. package/dist/components/chara-karakas.d.ts +8 -0
  44. package/dist/components/chara-karakas.d.ts.map +1 -1
  45. package/dist/components/chara-karakas.js +1 -1
  46. package/dist/components/chara-karakas.js.map +2 -2
  47. package/dist/components/choghadiya-grid.d.ts +8 -0
  48. package/dist/components/choghadiya-grid.d.ts.map +1 -1
  49. package/dist/components/choghadiya-grid.js +1 -1
  50. package/dist/components/choghadiya-grid.js.map +2 -2
  51. package/dist/components/compatibility-card.d.ts +8 -0
  52. package/dist/components/compatibility-card.d.ts.map +1 -1
  53. package/dist/components/compatibility-card.js +1 -1
  54. package/dist/components/compatibility-card.js.map +2 -2
  55. package/dist/components/crystal-card.d.ts +8 -0
  56. package/dist/components/crystal-card.d.ts.map +1 -1
  57. package/dist/components/crystal-card.js +1 -1
  58. package/dist/components/crystal-card.js.map +2 -2
  59. package/dist/components/crystal-grid.d.ts +8 -0
  60. package/dist/components/crystal-grid.d.ts.map +1 -1
  61. package/dist/components/crystal-grid.js +1 -1
  62. package/dist/components/crystal-grid.js.map +2 -2
  63. package/dist/components/dasha-timeline.d.ts +8 -0
  64. package/dist/components/dasha-timeline.d.ts.map +1 -1
  65. package/dist/components/dasha-timeline.js +1 -1
  66. package/dist/components/dasha-timeline.js.map +2 -2
  67. package/dist/components/data.d.ts +8 -0
  68. package/dist/components/data.d.ts.map +1 -1
  69. package/dist/components/data.js +1 -1
  70. package/dist/components/data.js.map +2 -2
  71. package/dist/components/divisional-chart.d.ts +8 -0
  72. package/dist/components/divisional-chart.d.ts.map +1 -1
  73. package/dist/components/divisional-chart.js +1 -1
  74. package/dist/components/divisional-chart.js.map +2 -2
  75. package/dist/components/dosha-card.d.ts +8 -0
  76. package/dist/components/dosha-card.d.ts.map +1 -1
  77. package/dist/components/dosha-card.js +1 -1
  78. package/dist/components/dosha-card.js.map +2 -2
  79. package/dist/components/dream-card.d.ts +8 -0
  80. package/dist/components/dream-card.d.ts.map +1 -1
  81. package/dist/components/dream-card.js +1 -1
  82. package/dist/components/dream-card.js.map +2 -2
  83. package/dist/components/dream-search.d.ts +8 -0
  84. package/dist/components/dream-search.d.ts.map +1 -1
  85. package/dist/components/dream-search.js +1 -1
  86. package/dist/components/dream-search.js.map +2 -2
  87. package/dist/components/endpoint-form.js +1 -1
  88. package/dist/components/endpoint-form.js.map +1 -1
  89. package/dist/components/fixed-stars.d.ts +8 -0
  90. package/dist/components/fixed-stars.d.ts.map +1 -1
  91. package/dist/components/fixed-stars.js +1 -1
  92. package/dist/components/fixed-stars.js.map +2 -2
  93. package/dist/components/forecast-digest.d.ts +8 -0
  94. package/dist/components/forecast-digest.d.ts.map +1 -1
  95. package/dist/components/forecast-digest.js +1 -1
  96. package/dist/components/forecast-digest.js.map +2 -2
  97. package/dist/components/forecast-timeline.d.ts +8 -0
  98. package/dist/components/forecast-timeline.d.ts.map +1 -1
  99. package/dist/components/forecast-timeline.js +1 -1
  100. package/dist/components/forecast-timeline.js.map +2 -2
  101. package/dist/components/gochara-table.d.ts +8 -0
  102. package/dist/components/gochara-table.d.ts.map +1 -1
  103. package/dist/components/gochara-table.js +1 -1
  104. package/dist/components/gochara-table.js.map +2 -2
  105. package/dist/components/guna-milan.d.ts +8 -0
  106. package/dist/components/guna-milan.d.ts.map +1 -1
  107. package/dist/components/guna-milan.js +1 -1
  108. package/dist/components/guna-milan.js.map +2 -2
  109. package/dist/components/hd-connection.d.ts +8 -0
  110. package/dist/components/hd-connection.d.ts.map +1 -1
  111. package/dist/components/hd-connection.js +1 -1
  112. package/dist/components/hd-connection.js.map +2 -2
  113. package/dist/components/hd-penta.d.ts +8 -0
  114. package/dist/components/hd-penta.d.ts.map +1 -1
  115. package/dist/components/hd-penta.js +1 -1
  116. package/dist/components/hd-penta.js.map +2 -2
  117. package/dist/components/hd-type-card.d.ts +8 -0
  118. package/dist/components/hd-type-card.d.ts.map +1 -1
  119. package/dist/components/hd-type-card.js +1 -1
  120. package/dist/components/hd-type-card.js.map +2 -2
  121. package/dist/components/hd-variables.d.ts +8 -0
  122. package/dist/components/hd-variables.d.ts.map +1 -1
  123. package/dist/components/hd-variables.js +1 -1
  124. package/dist/components/hd-variables.js.map +2 -2
  125. package/dist/components/heliacal-table.d.ts +8 -0
  126. package/dist/components/heliacal-table.d.ts.map +1 -1
  127. package/dist/components/heliacal-table.js +1 -1
  128. package/dist/components/heliacal-table.js.map +2 -2
  129. package/dist/components/hexagram.d.ts +8 -8
  130. package/dist/components/hexagram.d.ts.map +1 -1
  131. package/dist/components/hexagram.js +1 -1
  132. package/dist/components/hexagram.js.map +2 -2
  133. package/dist/components/hora-table.d.ts +8 -0
  134. package/dist/components/hora-table.d.ts.map +1 -1
  135. package/dist/components/hora-table.js +1 -1
  136. package/dist/components/hora-table.js.map +2 -2
  137. package/dist/components/horoscope-card.d.ts +8 -0
  138. package/dist/components/horoscope-card.d.ts.map +1 -1
  139. package/dist/components/horoscope-card.js +1 -1
  140. package/dist/components/horoscope-card.js.map +2 -2
  141. package/dist/components/kp-chart.d.ts +8 -0
  142. package/dist/components/kp-chart.d.ts.map +1 -1
  143. package/dist/components/kp-chart.js +1 -1
  144. package/dist/components/kp-chart.js.map +2 -2
  145. package/dist/components/kp-planets-table.d.ts +8 -0
  146. package/dist/components/kp-planets-table.d.ts.map +1 -1
  147. package/dist/components/kp-planets-table.js +1 -1
  148. package/dist/components/kp-planets-table.js.map +2 -2
  149. package/dist/components/kp-ruling-planets.d.ts +8 -0
  150. package/dist/components/kp-ruling-planets.d.ts.map +1 -1
  151. package/dist/components/kp-ruling-planets.js +1 -1
  152. package/dist/components/kp-ruling-planets.js.map +2 -2
  153. package/dist/components/local-space-compass.d.ts +8 -0
  154. package/dist/components/local-space-compass.d.ts.map +1 -1
  155. package/dist/components/local-space-compass.js +1 -1
  156. package/dist/components/local-space-compass.js.map +2 -2
  157. package/dist/components/location-search.js +1 -1
  158. package/dist/components/location-search.js.map +1 -1
  159. package/dist/components/moon-phase.d.ts +8 -0
  160. package/dist/components/moon-phase.d.ts.map +1 -1
  161. package/dist/components/moon-phase.js +1 -1
  162. package/dist/components/moon-phase.js.map +2 -2
  163. package/dist/components/nakshatra-card.d.ts +8 -0
  164. package/dist/components/nakshatra-card.d.ts.map +1 -1
  165. package/dist/components/nakshatra-card.js +1 -1
  166. package/dist/components/nakshatra-card.js.map +2 -2
  167. package/dist/components/natal-chart.d.ts +8 -8
  168. package/dist/components/natal-chart.d.ts.map +1 -1
  169. package/dist/components/natal-chart.js +1 -1
  170. package/dist/components/natal-chart.js.map +2 -2
  171. package/dist/components/numerology-card.d.ts +8 -0
  172. package/dist/components/numerology-card.d.ts.map +1 -1
  173. package/dist/components/numerology-card.js +1 -1
  174. package/dist/components/numerology-card.js.map +2 -2
  175. package/dist/components/panchang-table.d.ts +8 -0
  176. package/dist/components/panchang-table.d.ts.map +1 -1
  177. package/dist/components/panchang-table.js +1 -1
  178. package/dist/components/panchang-table.js.map +2 -2
  179. package/dist/components/positions-table.d.ts +8 -0
  180. package/dist/components/positions-table.d.ts.map +1 -1
  181. package/dist/components/positions-table.js +1 -1
  182. package/dist/components/positions-table.js.map +2 -2
  183. package/dist/components/profection-card.d.ts +8 -0
  184. package/dist/components/profection-card.d.ts.map +1 -1
  185. package/dist/components/profection-card.js +1 -1
  186. package/dist/components/profection-card.js.map +2 -2
  187. package/dist/components/reference-card.d.ts +8 -0
  188. package/dist/components/reference-card.d.ts.map +1 -1
  189. package/dist/components/reference-card.js +1 -1
  190. package/dist/components/reference-card.js.map +2 -2
  191. package/dist/components/relocation-wheel.d.ts +8 -0
  192. package/dist/components/relocation-wheel.d.ts.map +1 -1
  193. package/dist/components/relocation-wheel.js +1 -1
  194. package/dist/components/relocation-wheel.js.map +2 -2
  195. package/dist/components/shadbala-table.d.ts +8 -0
  196. package/dist/components/shadbala-table.d.ts.map +1 -1
  197. package/dist/components/shadbala-table.js +1 -1
  198. package/dist/components/shadbala-table.js.map +2 -2
  199. package/dist/components/synastry-chart.d.ts +8 -0
  200. package/dist/components/synastry-chart.d.ts.map +1 -1
  201. package/dist/components/synastry-chart.js +1 -1
  202. package/dist/components/synastry-chart.js.map +2 -2
  203. package/dist/components/tarot-card.d.ts +8 -0
  204. package/dist/components/tarot-card.d.ts.map +1 -1
  205. package/dist/components/tarot-card.js +1 -1
  206. package/dist/components/tarot-card.js.map +2 -2
  207. package/dist/components/tarot-catalog.d.ts +8 -0
  208. package/dist/components/tarot-catalog.d.ts.map +1 -1
  209. package/dist/components/tarot-catalog.js +1 -1
  210. package/dist/components/tarot-catalog.js.map +2 -2
  211. package/dist/components/tarot-spread.d.ts +8 -0
  212. package/dist/components/tarot-spread.d.ts.map +1 -1
  213. package/dist/components/tarot-spread.js +1 -1
  214. package/dist/components/tarot-spread.js.map +2 -2
  215. package/dist/components/transit-wheel.d.ts +117 -0
  216. package/dist/components/transit-wheel.d.ts.map +1 -0
  217. package/dist/components/transit-wheel.js +2 -0
  218. package/dist/components/transit-wheel.js.map +7 -0
  219. package/dist/components/transits-table.d.ts +8 -0
  220. package/dist/components/transits-table.d.ts.map +1 -1
  221. package/dist/components/transits-table.js +1 -1
  222. package/dist/components/transits-table.js.map +2 -2
  223. package/dist/components/upagraha-table.d.ts +8 -0
  224. package/dist/components/upagraha-table.d.ts.map +1 -1
  225. package/dist/components/upagraha-table.js +1 -1
  226. package/dist/components/upagraha-table.js.map +2 -2
  227. package/dist/components/vedic-aspects.d.ts +8 -0
  228. package/dist/components/vedic-aspects.d.ts.map +1 -1
  229. package/dist/components/vedic-aspects.js +1 -1
  230. package/dist/components/vedic-aspects.js.map +2 -2
  231. package/dist/components/vedic-kundli.d.ts +8 -0
  232. package/dist/components/vedic-kundli.d.ts.map +1 -1
  233. package/dist/components/vedic-kundli.js +1 -1
  234. package/dist/components/vedic-kundli.js.map +2 -2
  235. package/dist/components/vedic-planets-table.d.ts +8 -0
  236. package/dist/components/vedic-planets-table.d.ts.map +1 -1
  237. package/dist/components/vedic-planets-table.js +1 -1
  238. package/dist/components/vedic-planets-table.js.map +2 -2
  239. package/dist/components/western-planets-table.d.ts +8 -0
  240. package/dist/components/western-planets-table.d.ts.map +1 -1
  241. package/dist/components/western-planets-table.js +1 -1
  242. package/dist/components/western-planets-table.js.map +2 -2
  243. package/dist/components/yoga-list.d.ts +8 -0
  244. package/dist/components/yoga-list.d.ts.map +1 -1
  245. package/dist/components/yoga-list.js +1 -1
  246. package/dist/components/yoga-list.js.map +2 -2
  247. package/dist/index.cjs +1 -1
  248. package/dist/index.cjs.map +4 -4
  249. package/dist/index.d.ts +1 -0
  250. package/dist/index.d.ts.map +1 -1
  251. package/dist/index.js +1 -1
  252. package/dist/index.js.map +4 -4
  253. package/dist/load-ui.d.ts +1 -1
  254. package/dist/load-ui.js +1 -1
  255. package/dist/load-ui.js.map +1 -1
  256. package/dist/types/index.d.ts +1 -1
  257. package/dist/types/index.d.ts.map +1 -1
  258. package/dist/types/types.gen.d.ts +579 -90
  259. package/dist/types/types.gen.d.ts.map +1 -1
  260. package/package.json +1 -1
package/AGENTS.md CHANGED
@@ -58,6 +58,7 @@ Use the table below for the formal endpoint to component mapping.
58
58
  | `<roxy-synastry-chart>` | Western | POST /astrology/synastry | Dual-wheel synastry with inter-aspects table |
59
59
  | `<roxy-western-planets-table>` | Western | POST /astrology/natal-chart | Sign, degree, house, motion columns plus ASC, MC, PoF, Vertex |
60
60
  | `<roxy-transits-table>` | Western | POST /astrology/transits | Transit planet positions plus optional aspects to a natal chart |
61
+ | `<roxy-transit-wheel>` | Western | POST /astrology/transit-aspects | Natal chart on the inner ring, transiting bodies on the outer ring, aspect lines between them |
61
62
  | `<roxy-aspects-table>` | Western | POST /astrology/aspects, /astrology/transit-aspects, /astrology/aspect-patterns | Aspect rows coloured by nature with orb and strength, plus detected chart patterns |
62
63
  | `<roxy-moon-phase>` | Western | GET /astrology/moon-phase/{current,upcoming,calendar/...} | Moon phase card and calendar |
63
64
  | `<roxy-horoscope-card>` | Western | GET /astrology/horoscope/{sign}/{daily,weekly,monthly} | Daily, weekly, or monthly horoscope card |
@@ -213,6 +214,30 @@ Several components select a view, mode, or chart layout in addition to `data`. T
213
214
 
214
215
  The full set: `RoxyNatalChart` `houseSystem`, `RoxyHoroscopeCard` `period`, `RoxyMoonPhase` `mode`, `RoxyCompatibilityCard` `mode`, `RoxyVedicKundli` and `RoxyDivisionalChart` `chartStyle`, `RoxyPanchangTable` `detail`, `RoxyDashaTimeline` `period`, `RoxyDoshaCard` `type`, `RoxyNumerologyCard` `type`, `RoxyTarotSpread` `spread`, `RoxyBiorhythmChart` `mode`, `RoxyHexagram` `mode`. Outside React and Vue, set the same value as a kebab-case attribute or a JS property on the element (for example `chart-style="south"` or `el.chartStyle = 'south'`).
215
216
 
217
+ ### 6d. Chart without the written report
218
+
219
+ Every component takes `hide-readings` (`hideReadings` in React and Vue). It renders the chart and the data and leaves the interpretation out of the page: wheels, maps, tables, grids, legends, badges and every number stay, the interpretive prose goes. Off by default, so a component that does not set it is unchanged.
220
+
221
+ ```html
222
+ <roxy-natal-chart hide-readings></roxy-natal-chart>
223
+ ```
224
+
225
+ ```tsx
226
+ <RoxyNatalChart data={chart} hideReadings />
227
+ ```
228
+
229
+ Reach for it when the page supplies its own words, which is the usual case for a practitioner site that writes its own commentary under the chart. The prose is left out of the markup rather than hidden with CSS, so the page never ships text it is not showing.
230
+
231
+ **Which components act on it.** Every component that renders a written interpretation, so there is no tag you have to test to find out. A pure chart or table has no interpretation to take away, so the attribute is a no-op on those by definition.
232
+
233
+ One component is a documented no-op despite being mostly prose:
234
+
235
+ | Component | Behaviour |
236
+ |---|---|
237
+ | `<roxy-dream-card>` | Ignores `hide-readings`. The dream symbol response is the symbol, its dictionary letter and the interpretation, so removing the interpretation would leave a heading over nothing. Style it with `::part(card)` or leave the card out of the page instead. |
238
+
239
+ What survives, by family: charts keep the drawing, legend, glyphs, degrees and tab strip; tables keep every row and every calculated column (kaksha bindus, koota scores, significance bars, orbs, strengths); cards keep the header, badges, meters and fact grids, so a dosha keeps its verdict, phase and severity, a crystal keeps its Mohs hardness and attribute grid, and a horoscope keeps its energy meter, Moon placement, active transits and key dates; every Vedic response keeps its sidereal frame caption. What goes: interpretation paragraphs, reading accordions, keyword chips attached to a reading, remedies, action steps and strengths lists, and any section whose only content was one of those, heading included.
240
+
216
241
  ### 6c. Vue and Nuxt
217
242
 
218
243
  `@roxyapi/ui-vue` exposes the same components with the same prop names. Bind `data` and the config props normally; the package sets them as DOM properties for you, so an object payload never gets stringified into an attribute. Listen to widget events with the usual `@` syntax.
@@ -497,7 +522,7 @@ This is how the WordPress plugin renders: PHP fetches the response server-side,
497
522
 
498
523
  Most RoxyAPI endpoints return their interpretation text in eight languages, selected with the `lang` query parameter (`en`, `tr`, `de`, `es`, `hi`, `pt`, `fr`, `ru`). Human Design, for example, returns the type, strategy, authority, profile, channel, center, gate, and line readings in the requested language.
499
524
 
500
- The components hold no copy of their own; they print the prose the response carries. So the language of the response is the language of the render, and there is no locale prop to set.
525
+ The components hold no copy of their own; they print the prose the response carries. So the language of the response is the language of the render.
501
526
 
502
527
  ```ts
503
528
  const { data } = await roxy.humanDesign.generateBodygraph({
@@ -506,9 +531,33 @@ const { data } = await roxy.humanDesign.generateBodygraph({
506
531
  });
507
532
  ```
508
533
 
509
- `lang` is a query parameter even on a POST endpoint. Put it in `query`, never in `body`; a `lang` key in the body is ignored and you get English back. In the self-fetch pattern you do not fill a language field: set `lang` as an attribute on the element (`<roxy-horoscope-card lang="de" ...>`) and the form routes it to the `?lang=` query on submit.
534
+ `lang` is a query parameter even on a POST endpoint. Put it in `query`, never in `body`; a `lang` key in the body is ignored and you get English back. In the self-fetch pattern you do not fill a language field: the component reads the page language and routes it to the `?lang=` query on submit.
510
535
 
511
- The structural labels the components draw (section headings such as Reading or Centers, and column headers) are English.
536
+ ## The labels the components write
537
+
538
+ Separate from the response, and set separately. The wording a component supplies itself (headings, tab labels, table captions, legends, empty states) comes from a catalogue you load for the language you serve.
539
+
540
+ ```html
541
+ <html lang="es-AR">
542
+ ...
543
+ <script src="https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn/roxy-ui.js"></script>
544
+ <script src="https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn/locales/es.js"></script>
545
+ ```
546
+
547
+ ```ts
548
+ import '@roxyapi/ui';
549
+ import '@roxyapi/ui/locales/es';
550
+ ```
551
+
552
+ The language comes from `lang` on the element, else the nearest ancestor carrying `lang`, else `<html>`. So a site that already declares its language needs no per-component attribute. A regional tag reads its base language, so `es-AR` and `es-419` both use `es`, and the request goes out as `?lang=es` because that is what the API accepts.
553
+
554
+ English is the default and needs no catalogue. Load only the languages your site serves; one catalogue covers every Roxy component on the page.
555
+
556
+ A catalogue ships for every language the API serves: `de`, `es`, `fr`, `hi`, `pt`, `ru`, `tr`. Each covers `<roxy-natal-chart>`, `<roxy-transit-wheel>` and the shared labels every component inherits; the remaining components write English labels until their entries land. **The values the API returns are never rewritten**: a planet, sign, aspect, element or house-system name renders exactly as the response carries it, so the words on the chart and the words in the response can never disagree. Ask for a language and the response carries the reader-facing name beside the English one, so the chart prints the translated name while the English one stays available to compare against in your own code.
557
+
558
+ Dates, times and numbers need no catalogue at all. They follow the same page language and are written the way that language writes them, hour cycle included, so a German page reads `15. Jan. 1990, 14:30` and an Argentine one `15 de ene de 1990, 2:30 p. m.`.
559
+
560
+ Ask for the response language AND load the matching catalogue, and the whole card reads in one language.
512
561
 
513
562
  ## Theming and dark mode
514
563
 
@@ -536,6 +585,36 @@ Per-element scope is supported:
536
585
 
537
586
  Every visible aspect of the chart is driven by `--roxy-*` CSS custom properties on `:host`. Override any token on `:root`, on `:host`, or per element. Do not write Tailwind utility classes inside the components; the Shadow DOM boundary stops them at the door.
538
587
 
588
+ ## Restyling a block from outside the component
589
+
590
+ Tokens cover colour, spacing and type. When you need to reach a specific block, every chart and reading component names its structural pieces with `part`, so a stylesheet on the page can target them. The names are identical in every component, so one rule covers the library.
591
+
592
+ ```css
593
+ roxy-natal-chart::part(readings) {
594
+ display: none;
595
+ }
596
+ roxy-natal-chart::part(card) {
597
+ border: 0;
598
+ box-shadow: none;
599
+ }
600
+ ```
601
+
602
+ | part | What it names |
603
+ |---|---|
604
+ | `card` | The component's own card or wrapper root |
605
+ | `header` | The heading row (title, meta, score) |
606
+ | `chart` | The graphic: wheel, map, bodygraph, bar set, hexagram figure, card art |
607
+ | `legend` | The key to the chart |
608
+ | `details` | The numeric summary: pills, badges, stat lists, fact tiles |
609
+ | `table` | A data table, or the scroll box around one |
610
+ | `tablist`, `tab`, `panel` | The view switch and the panel it governs |
611
+ | `section` | Any structural block, paired with a specific name (`section patterns`) |
612
+ | `readings` | The interpretation accordion |
613
+ | `reading` | One disclosure card inside it |
614
+ | `form`, `loading`, `error`, `attribution` | The built-in states |
615
+
616
+ Two notes. Parts reach exactly one shadow root deep, and a component that draws another one re-exports its parts, so `roxy-relocation-wheel::part(readings)` reaches the wheel it nests. And to remove a reading rather than hide it, use `hide-readings` (above): a `display: none` rule still ships the words in the page.
617
+
539
618
  ## Rules every agent must follow
540
619
 
541
620
  - Always call `/location/search` first before any chart endpoint that takes latitude, longitude, or timezone. Use `<roxy-location-search>` for the input UI.
package/README.md CHANGED
@@ -607,6 +607,7 @@ The self-fetch form renders spec-driven inputs (a zodiac tile picker, a boolean
607
607
  | `<roxy-synastry-chart>` | Western | POST /astrology/synastry | Dual-wheel synastry with inter-aspects table |
608
608
  | `<roxy-western-planets-table>` | Western | POST /astrology/natal-chart | Sign, degree, house, motion columns plus ASC, MC, PoF, Vertex |
609
609
  | `<roxy-transits-table>` | Western | POST /astrology/transits | Transit planet positions plus optional aspects to a natal chart |
610
+ | `<roxy-transit-wheel>` | Western | POST /astrology/transit-aspects | Natal chart on the inner ring, transiting bodies on the outer ring, aspect lines between them |
610
611
  | `<roxy-aspects-table>` | Western | POST /astrology/aspects, /astrology/transit-aspects, /astrology/aspect-patterns | Aspect rows coloured by nature with orb and strength, plus detected chart patterns |
611
612
  | `<roxy-moon-phase>` | Western | GET /astrology/moon-phase/{current,upcoming,calendar/...} | Moon phase card and calendar |
612
613
  | `<roxy-horoscope-card>` | Western | GET /astrology/horoscope/{sign}/{daily,weekly,monthly} | Daily, weekly, or monthly horoscope card |
@@ -691,6 +692,84 @@ roxy-natal-chart {
691
692
  }
692
693
  ```
693
694
 
695
+ ### Reach inside the component from your own CSS
696
+
697
+ Every chart and reading component names its structural blocks with `part`, so a stylesheet outside the component can restyle or hide any of them with no JavaScript and no fork. The names are the same in every component, so one rule covers the whole library.
698
+
699
+ ```css
700
+ /* Chart only. The wheel, the tables and the numbers stay; the written report goes. */
701
+ roxy-natal-chart::part(readings) {
702
+ display: none;
703
+ }
704
+
705
+ /* Or restyle it. */
706
+ roxy-natal-chart::part(card) {
707
+ border: 0;
708
+ box-shadow: none;
709
+ }
710
+ ```
711
+
712
+ The parts: `card`, `header`, `chart`, `legend`, `details`, `table`, `tablist`, `tab`, `panel`, `section`, `readings`, `reading`, plus `form`, `loading`, `error` and `attribution` on the built-in states.
713
+
714
+ ### Chart without the written report
715
+
716
+ For the same outcome in markup rather than CSS, set `hide-readings`. The component renders the chart and the data and leaves the interpretation out of the page entirely, which is what you want when your own copy supplies the words.
717
+
718
+ ```html
719
+ <roxy-natal-chart hide-readings></roxy-natal-chart>
720
+ ```
721
+
722
+ ```tsx
723
+ <RoxyNatalChart data={chart} hideReadings />
724
+ ```
725
+
726
+ It is off by default, so nothing changes until you ask for it. Wheels, maps, tables, grids, legends, badges and every number stay; the interpretive prose is what goes.
727
+
728
+ #### Which components it applies to
729
+
730
+ Every component that renders a written interpretation acts on it, so you never have to test a tag to find out. A pure chart or table has no interpretation to take away, so on those it is a no-op by definition and there is nothing to know.
731
+
732
+ There is exactly one component where it is a no-op despite the component being mostly prose, and that is deliberate:
733
+
734
+ | Component | Behaviour |
735
+ |---|---|
736
+ | `<roxy-dream-card>` | `hide-readings` is ignored. The dream symbol response is the symbol, its dictionary letter and the interpretation, so removing the interpretation would leave a heading over nothing. Style it with `::part(card)` or leave the card out of the page instead. |
737
+
738
+ What each family keeps when you set it:
739
+
740
+ - Charts and wheels keep the drawing, the legend, the glyphs, every degree and house, and the tab strip.
741
+ - Tables keep every row and column, including the calculated ones (kaksha bindus, koota scores, significance bars, orbs and strengths).
742
+ - Cards keep the header, the badges, the meters and the fact grids: a dosha keeps its present or absent verdict, its phase and its severity; a crystal keeps its Mohs hardness and its attribute grid; a horoscope keeps its energy meter, its Moon placement, the transits behind the reading and its key dates.
743
+ - Vedic responses keep the sidereal frame caption, so a chart is still reconcilable against another calculator.
744
+
745
+ What goes: interpretation paragraphs, the reading accordions, keyword chips attached to a reading, remedies and action steps and strengths lists (sentences laid out as bullets), and any section whose only content was one of those, heading included.
746
+
747
+ ## Languages
748
+
749
+ A component reads the page language and renders its own labels in it. Set `lang` on the element, on any ancestor of it, or on `<html>`, and add the catalogue for that language.
750
+
751
+ ```html
752
+ <html lang="es-AR">
753
+ ...
754
+ <script src="https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn/roxy-ui.js"></script>
755
+ <script src="https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn/locales/es.js"></script>
756
+ ```
757
+
758
+ ```ts
759
+ import '@roxyapi/ui';
760
+ import '@roxyapi/ui/locales/es';
761
+ ```
762
+
763
+ With `@roxyapi/ui-react` or `@roxyapi/ui-vue`, add the catalogue with the script tag above: the components themselves are loaded from the CDN, and one tag in your HTML covers the whole app.
764
+
765
+ A regional tag resolves to its language, so `es-AR`, `es-MX` and `es-419` all read the `es` catalogue and a CMS that emits an accurate tag needs no configuration. English is the default and needs no catalogue, so an English-only page downloads nothing extra. Load only the languages your site serves: each is its own small file, and one of them translates every Roxy component on the page.
766
+
767
+ Two things are separate on purpose. The catalogue is the wording this library writes: headings, tabs, table captions, legends, empty states. The wording the API returns is localized by the request, as shown above, and the component prints what came back. That covers the vocabulary as well as the interpretations: ask a chart for Spanish and the planet, sign and aspect names read Spanish on the wheel, in its tooltips, in the aspect grid and in the tables, with the same glyphs beside them. Ask for both and the whole card reads in one language.
768
+
769
+ Dates, times and numbers follow the page as well, in the conventions that language actually uses: a Spanish page reads `15 ene 1990`, an Argentine one `15 de ene de 1990`, a German one `15. Jan. 1990, 14:30`. The hour cycle comes from the language, not from us, so nobody gets a 12-hour clock on a page that writes 24. This needs no catalogue and no attribute: it follows the same `lang` your page already declares.
770
+
771
+ A catalogue ships for every language the API serves: `de`, `es`, `fr`, `hi`, `pt`, `ru`, `tr`. Each covers `<roxy-natal-chart>`, `<roxy-transit-wheel>` and the shared chrome every component inherits; the remaining components render English labels until their catalogue entries land.
772
+
694
773
  ## Reliability
695
774
 
696
775
  - Verified astronomical calculations from Roxy Ephemeris, verified against NASA JPL Horizons.
@@ -19,6 +19,8 @@ export interface RoxyAngelNumberCardProps {
19
19
  submitLabel?: string;
20
20
  /** Render a small "Spiritual data by RoxyAPI" credit under a self-fetch result, linking back to RoxyAPI. Off by default; set any value to enable, or "off" to force it off. Never shown in controlled mode. */
21
21
  attribution?: string;
22
+ /** Render the chart and the data and omit the written interpretation. Off by default. Use it when the page supplies its own words: the wheels, tables, grids, legends and numbers stay, and the interpretive prose is left out of the markup entirely. */
23
+ hideReadings?: boolean;
22
24
  }
23
25
  export declare const RoxyAngelNumberCard: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
24
26
  data: {
@@ -48,6 +50,9 @@ export declare const RoxyAngelNumberCard: import("vue").DefineComponent<import("
48
50
  attribution: {
49
51
  type: PropType<RoxyAngelNumberCardProps["attribution"]>;
50
52
  };
53
+ hideReadings: {
54
+ type: PropType<RoxyAngelNumberCardProps["hideReadings"]>;
55
+ };
51
56
  }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
52
57
  [key: string]: any;
53
58
  }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -78,5 +83,8 @@ export declare const RoxyAngelNumberCard: import("vue").DefineComponent<import("
78
83
  attribution: {
79
84
  type: PropType<RoxyAngelNumberCardProps["attribution"]>;
80
85
  };
86
+ hideReadings: {
87
+ type: PropType<RoxyAngelNumberCardProps["hideReadings"]>;
88
+ };
81
89
  }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
82
90
  //# sourceMappingURL=angel-number-card.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"angel-number-card.d.ts","sourceRoot":"","sources":["../../src/components/angel-number-card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,QAAQ,EAAO,MAAM,KAAK,CAAC;AAExE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,WAAW,wBAAwB;IACxC,oEAAoE;IACpE,IAAI,CAAC,EAAE,sBAAsB,CAAC;IAC9B,mPAAmP;IACnP,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,6GAA6G;IAC7G,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+MAA+M;IAC/M,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uJAAuJ;IACvJ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+MAA+M;IAC/M,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,mBAAmB;;cAGN,QAAQ,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;;;cACtC,QAAQ,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;;;cAChD,QAAQ,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;;;cACpC,QAAQ,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;;;cAC3D,QAAQ,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;;;cAC7C,QAAQ,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;;;cAChD,QAAQ,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;;;cACnC,QAAQ,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;;;cACjD,QAAQ,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;;;;;;cARxD,QAAQ,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;;;cACtC,QAAQ,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;;;cAChD,QAAQ,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;;;cACpC,QAAQ,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;;;cAC3D,QAAQ,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;;;cAC7C,QAAQ,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;;;cAChD,QAAQ,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;;;cACnC,QAAQ,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;;;cACjD,QAAQ,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;;iGAkChF,CAAC"}
1
+ {"version":3,"file":"angel-number-card.d.ts","sourceRoot":"","sources":["../../src/components/angel-number-card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,QAAQ,EAAO,MAAM,KAAK,CAAC;AAExE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,WAAW,wBAAwB;IACxC,oEAAoE;IACpE,IAAI,CAAC,EAAE,sBAAsB,CAAC;IAC9B,mPAAmP;IACnP,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,6GAA6G;IAC7G,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+MAA+M;IAC/M,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uJAAuJ;IACvJ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+MAA+M;IAC/M,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0PAA0P;IAC1P,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,mBAAmB;;cAGN,QAAQ,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;;;cACtC,QAAQ,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;;;cAChD,QAAQ,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;;;cACpC,QAAQ,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;;;cAC3D,QAAQ,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;;;cAC7C,QAAQ,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;;;cAChD,QAAQ,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;;;cACnC,QAAQ,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;;;cACjD,QAAQ,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;;;cAC/C,QAAQ,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;;;;;;cAT3D,QAAQ,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;;;cACtC,QAAQ,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;;;cAChD,QAAQ,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;;;cACpC,QAAQ,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;;;cAC3D,QAAQ,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;;;cAC7C,QAAQ,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;;;cAChD,QAAQ,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;;;cACnC,QAAQ,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;;;cACjD,QAAQ,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;;;cAC/C,QAAQ,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;;iGAmCnF,CAAC"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as g,h as l,onMounted as c,ref as f}from"vue";var u="0.22.0",d="roxyapi-ui-loader",p="https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn",b="https://cdn.jsdelivr.net/npm/@roxyapi/ui@",y="/dist/cdn",i=null;function m(e){return!e||e==="latest"?p:`${b}${e}${y}`}function o(e=u,r){return typeof document>"u"?Promise.resolve():i||(i=new Promise((n,a)=>{let s=`${r??m(e)}/roxy-ui.js`,t=document.getElementById(d);if(t){t.dataset.loaded==="true"?n():(t.addEventListener("load",()=>n()),t.addEventListener("error",()=>a(new Error("roxy-ui load failed"))));return}t=document.createElement("script"),t.id=d,t.src=s,t.async=!0,t.crossOrigin="anonymous",t.addEventListener("load",()=>{t.dataset.loaded="true",n()}),t.addEventListener("error",()=>a(new Error("roxy-ui load failed"))),document.head.appendChild(t)}),i)}var R=g({name:"RoxyAngelNumberCard",props:{data:{type:Object},endpoint:{type:String},method:{type:String},publishableKey:{type:String},baseUrl:{type:String},specUrl:{type:String},lang:{type:String},submitLabel:{type:String},attribution:{type:String}},setup(e){let r=f(null);return c(()=>{o().catch(n=>{r.value=n instanceof Error?n:new Error(String(n))})}),()=>{if(r.value)return l("div",{role:"alert"},`Roxy UI script load failed: ${r.value.message}`);let n={};return e.data!==void 0&&(n[".data"]=e.data),e.endpoint!==void 0&&(n[".endpoint"]=e.endpoint),e.method!==void 0&&(n[".method"]=e.method),e.publishableKey!==void 0&&(n[".publishableKey"]=e.publishableKey),e.baseUrl!==void 0&&(n[".baseUrl"]=e.baseUrl),e.specUrl!==void 0&&(n[".specUrl"]=e.specUrl),e.lang!==void 0&&(n[".lang"]=e.lang),e.submitLabel!==void 0&&(n[".submitLabel"]=e.submitLabel),e.attribution!==void 0&&(n[".attribution"]=e.attribution),l("roxy-angel-number-card",n)}}});export{R as RoxyAngelNumberCard};
1
+ import{defineComponent as m,h as l,onMounted as f,ref as c}from"vue";var u="0.24.0",a="roxyapi-ui-loader",p="https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn",b="https://cdn.jsdelivr.net/npm/@roxyapi/ui@",y="/dist/cdn",i=null;function g(e){return!e||e==="latest"?p:`${b}${e}${y}`}function o(e=u,r){return typeof document>"u"?Promise.resolve():i||(i=new Promise((n,d)=>{let s=`${r??g(e)}/roxy-ui.js`,t=document.getElementById(a);if(t){t.dataset.loaded==="true"?n():(t.addEventListener("load",()=>n()),t.addEventListener("error",()=>d(new Error("roxy-ui load failed"))));return}t=document.createElement("script"),t.id=a,t.src=s,t.async=!0,t.crossOrigin="anonymous",t.addEventListener("load",()=>{t.dataset.loaded="true",n()}),t.addEventListener("error",()=>d(new Error("roxy-ui load failed"))),document.head.appendChild(t)}),i)}var h=m({name:"RoxyAngelNumberCard",props:{data:{type:Object},endpoint:{type:String},method:{type:String},publishableKey:{type:String},baseUrl:{type:String},specUrl:{type:String},lang:{type:String},submitLabel:{type:String},attribution:{type:String},hideReadings:{type:Boolean}},setup(e){let r=c(null);return f(()=>{o().catch(n=>{r.value=n instanceof Error?n:new Error(String(n))})}),()=>{if(r.value)return l("div",{role:"alert"},`Roxy UI script load failed: ${r.value.message}`);let n={};return e.data!==void 0&&(n[".data"]=e.data),e.endpoint!==void 0&&(n[".endpoint"]=e.endpoint),e.method!==void 0&&(n[".method"]=e.method),e.publishableKey!==void 0&&(n[".publishableKey"]=e.publishableKey),e.baseUrl!==void 0&&(n[".baseUrl"]=e.baseUrl),e.specUrl!==void 0&&(n[".specUrl"]=e.specUrl),e.lang!==void 0&&(n[".lang"]=e.lang),e.submitLabel!==void 0&&(n[".submitLabel"]=e.submitLabel),e.attribution!==void 0&&(n[".attribution"]=e.attribution),e.hideReadings!==void 0&&(n[".hideReadings"]=e.hideReadings),l("roxy-angel-number-card",n)}}});export{h as RoxyAngelNumberCard};
2
2
  //# sourceMappingURL=angel-number-card.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/components/angel-number-card.ts", "../../src/load-ui.ts"],
4
- "sourcesContent": ["import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetAngelNumberResponse } from '../types/index.js';\n\nexport interface RoxyAngelNumberCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetAngelNumberResponse;\n\t/** Endpoint path for built-in self-fetch (uncontrolled mode), e.g. \"astrology/natal-chart\". The component renders its own input form, fetches with the publishable key, and displays the result. Leave unset for controlled mode (pass `data`). */\n\tendpoint?: string;\n\t/** HTTP method for the self-fetch request. Defaults to POST. */\n\tmethod?: 'GET' | 'POST';\n\t/** Browser-safe publishable key (pk_) for self-fetch. A secret key is refused client-side and never sent. */\n\tpublishableKey?: string;\n\t/** Override the API origin for self-hosted or proxied deployments. */\n\tbaseUrl?: string;\n\t/** Override the OpenAPI spec URL the self-fetch form introspects. */\n\tspecUrl?: string;\n\t/** Response language for self-fetch, forwarded to the API `lang` query parameter (en, tr, de, es, hi, pt, fr, ru). The form never shows a language field; the site owner sets it here. Defaults to English. */\n\tlang?: string;\n\t/** Override the self-fetch form submit-button label. Empty derives an outcome-first label from the endpoint (Get reading, Generate, Compare, Cast). */\n\tsubmitLabel?: string;\n\t/** Render a small \"Spiritual data by RoxyAPI\" credit under a self-fetch result, linking back to RoxyAPI. Off by default; set any value to enable, or \"off\" to force it off. Never shown in controlled mode. */\n\tattribution?: string;\n}\n\nexport const RoxyAngelNumberCard = defineComponent({\n\tname: 'RoxyAngelNumberCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyAngelNumberCardProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyAngelNumberCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyAngelNumberCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyAngelNumberCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyAngelNumberCardProps['baseUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyAngelNumberCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyAngelNumberCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyAngelNumberCardProps['submitLabel']> },\n\t\tattribution: { type: String as PropType<RoxyAngelNumberCardProps['attribution']> },\n\t},\n\tsetup(props) {\n\t\tconst loadError = ref<Error | null>(null);\n\n\t\tonMounted(() => {\n\t\t\tensureScriptLoaded().catch((err: unknown) => {\n\t\t\t\tloadError.value = err instanceof Error ? err : new Error(String(err));\n\t\t\t});\n\t\t});\n\n\t\treturn () => {\n\t\t\tif (loadError.value) {\n\t\t\t\treturn h(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ role: 'alert' },\n\t\t\t\t\t`Roxy UI script load failed: ${loadError.value.message}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst elementProps: Record<string, unknown> = {};\n\t\t\tif (props.data !== undefined) elementProps['.data'] = props.data;\n\t\t\tif (props.endpoint !== undefined) elementProps['.endpoint'] = props.endpoint;\n\t\t\tif (props.method !== undefined) elementProps['.method'] = props.method;\n\t\t\tif (props.publishableKey !== undefined) elementProps['.publishableKey'] = props.publishableKey;\n\t\t\tif (props.baseUrl !== undefined) elementProps['.baseUrl'] = props.baseUrl;\n\t\t\tif (props.specUrl !== undefined) elementProps['.specUrl'] = props.specUrl;\n\t\t\tif (props.lang !== undefined) elementProps['.lang'] = props.lang;\n\t\t\tif (props.submitLabel !== undefined) elementProps['.submitLabel'] = props.submitLabel;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\n\t\t\treturn h('roxy-angel-number-card', elementProps);\n\t\t};\n\t},\n});\n", "/**\n * Loads the matching component bundle on first mount. Idempotent across\n * many components on the same page. Skips on the server (no document) so\n * Nuxt and Vue server rendering work without a flash.\n *\n * Defaults to the EXACT @roxyapi/ui release this wrapper was built against, so\n * `@roxyapi/ui-vue@x.y.z` always runs `@roxyapi/ui@x.y.z` and a lockfile actually\n * pins the runtime. It used to default to '@latest', which meant a pinned wrapper\n * silently picked up whatever the CDN was serving, and a new @roxyapi/ui release\n * changed the elements under every existing install with no lockfile change.\n *\n * Pass an explicit `version` to override, or 'latest' to opt back into floating.\n *\n * Pass `baseUrl` to serve the bundle from your own origin instead of the CDN, which is\n * what an air-gapped install or a strict Content-Security-Policy needs: copy\n * `node_modules/@roxyapi/ui/dist/cdn/` onto your host and call this once at app entry,\n * before any component mounts. The loader keeps a single shared promise, so the first\n * call wins and every component reuses it.\n */\n/** The @roxyapi/ui release this wrapper was generated against. The loader defaults to it, so the wrapper version in your lockfile is the runtime you actually get. */\nexport const ROXY_UI_VERSION = \"0.22.0\";\n\nconst SCRIPT_ID = 'roxyapi-ui-loader';\nconst CDN_BASE_LATEST = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn\";\nconst CDN_BASE_PREFIX = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@\";\nconst CDN_BASE_SUFFIX = \"/dist/cdn\";\n\nlet loaded: Promise<void> | null = null;\n\nfunction buildBase(version: string): string {\n\tif (!version || version === 'latest') return CDN_BASE_LATEST;\n\treturn `${CDN_BASE_PREFIX}${version}${CDN_BASE_SUFFIX}`;\n}\n\nexport function ensureScriptLoaded(\n\tversion: string = ROXY_UI_VERSION,\n\tbaseUrl?: string,\n): Promise<void> {\n\tif (typeof document === 'undefined') return Promise.resolve();\n\tif (loaded) return loaded;\n\n\tloaded = new Promise<void>((resolve, reject) => {\n\t\tconst url = `${baseUrl ?? buildBase(version)}/roxy-ui.js`;\n\t\tlet existing = document.getElementById(SCRIPT_ID) as HTMLScriptElement | null;\n\t\tif (existing) {\n\t\t\tif (existing.dataset.loaded === 'true') {\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\texisting.addEventListener('load', () => resolve());\n\t\t\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\texisting = document.createElement('script');\n\t\texisting.id = SCRIPT_ID;\n\t\texisting.src = url;\n\t\texisting.async = true;\n\t\texisting.crossOrigin = 'anonymous';\n\t\texisting.addEventListener('load', () => {\n\t\t\texisting!.dataset.loaded = 'true';\n\t\t\tresolve();\n\t\t});\n\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\tdocument.head.appendChild(existing);\n\t});\n\treturn loaded;\n}\n\n// Default export retained for convenience; matches the named export.\nexport default ensureScriptLoaded;\n// Surfaces the embedded @roxyapi/ui version this build of @roxyapi/ui-vue\n// was generated against. Useful for diagnostics; not load-bearing.\n"],
5
- "mappings": "AAAA,OAAS,mBAAAA,EAAiB,KAAAC,EAAG,aAAAC,EAA0B,OAAAC,MAAW,MCoB3D,IAAMC,EAAkB,SAEzBC,EAAY,oBACZC,EAAkB,2DAClBC,EAAkB,4CAClBC,EAAkB,YAEpBC,EAA+B,KAEnC,SAASC,EAAUC,EAAyB,CAC3C,MAAI,CAACA,GAAWA,IAAY,SAAiBL,EACtC,GAAGC,CAAe,GAAGI,CAAO,GAAGH,CAAe,EACtD,CAEO,SAASI,EACfD,EAAkBP,EAClBS,EACgB,CAChB,OAAI,OAAO,SAAa,IAAoB,QAAQ,QAAQ,EACxDJ,IAEJA,EAAS,IAAI,QAAc,CAACK,EAASC,IAAW,CAC/C,IAAMC,EAAM,GAAGH,GAAWH,EAAUC,CAAO,CAAC,cACxCM,EAAW,SAAS,eAAeZ,CAAS,EAChD,GAAIY,EAAU,CACTA,EAAS,QAAQ,SAAW,OAC/BH,EAAQ,GAERG,EAAS,iBAAiB,OAAQ,IAAMH,EAAQ,CAAC,EACjDG,EAAS,iBAAiB,QAAS,IAAMF,EAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC,GAElF,MACD,CACAE,EAAW,SAAS,cAAc,QAAQ,EAC1CA,EAAS,GAAKZ,EACdY,EAAS,IAAMD,EACfC,EAAS,MAAQ,GACjBA,EAAS,YAAc,YACvBA,EAAS,iBAAiB,OAAQ,IAAM,CACvCA,EAAU,QAAQ,OAAS,OAC3BH,EAAQ,CACT,CAAC,EACDG,EAAS,iBAAiB,QAAS,IAAMF,EAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC,EACjF,SAAS,KAAK,YAAYE,CAAQ,CACnC,CAAC,EACMR,EACR,CDzCO,IAAMS,EAAsBC,EAAgB,CAClD,KAAM,sBACN,MAAO,CACN,KAAM,CAAE,KAAM,MAAqD,EACnE,SAAU,CAAE,KAAM,MAAyD,EAC3E,OAAQ,CAAE,KAAM,MAAuD,EACvE,eAAgB,CAAE,KAAM,MAA+D,EACvF,QAAS,CAAE,KAAM,MAAwD,EACzE,QAAS,CAAE,KAAM,MAAwD,EACzE,KAAM,CAAE,KAAM,MAAqD,EACnE,YAAa,CAAE,KAAM,MAA4D,EACjF,YAAa,CAAE,KAAM,MAA4D,CAClF,EACA,MAAMC,EAAO,CACZ,IAAMC,EAAYC,EAAkB,IAAI,EAExC,OAAAC,EAAU,IAAM,CACfC,EAAmB,EAAE,MAAOC,GAAiB,CAC5CJ,EAAU,MAAQI,aAAe,MAAQA,EAAM,IAAI,MAAM,OAAOA,CAAG,CAAC,CACrE,CAAC,CACF,CAAC,EAEM,IAAM,CACZ,GAAIJ,EAAU,MACb,OAAOK,EACN,MACA,CAAE,KAAM,OAAQ,EAChB,+BAA+BL,EAAU,MAAM,OAAO,EACvD,EAGD,IAAMM,EAAwC,CAAC,EAC/C,OAAIP,EAAM,OAAS,SAAWO,EAAa,OAAO,EAAIP,EAAM,MACxDA,EAAM,WAAa,SAAWO,EAAa,WAAW,EAAIP,EAAM,UAChEA,EAAM,SAAW,SAAWO,EAAa,SAAS,EAAIP,EAAM,QAC5DA,EAAM,iBAAmB,SAAWO,EAAa,iBAAiB,EAAIP,EAAM,gBAC5EA,EAAM,UAAY,SAAWO,EAAa,UAAU,EAAIP,EAAM,SAC9DA,EAAM,UAAY,SAAWO,EAAa,UAAU,EAAIP,EAAM,SAC9DA,EAAM,OAAS,SAAWO,EAAa,OAAO,EAAIP,EAAM,MACxDA,EAAM,cAAgB,SAAWO,EAAa,cAAc,EAAIP,EAAM,aACtEA,EAAM,cAAgB,SAAWO,EAAa,cAAc,EAAIP,EAAM,aAEnEM,EAAE,yBAA0BC,CAAY,CAChD,CACD,CACD,CAAC",
4
+ "sourcesContent": ["import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetAngelNumberResponse } from '../types/index.js';\n\nexport interface RoxyAngelNumberCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetAngelNumberResponse;\n\t/** Endpoint path for built-in self-fetch (uncontrolled mode), e.g. \"astrology/natal-chart\". The component renders its own input form, fetches with the publishable key, and displays the result. Leave unset for controlled mode (pass `data`). */\n\tendpoint?: string;\n\t/** HTTP method for the self-fetch request. Defaults to POST. */\n\tmethod?: 'GET' | 'POST';\n\t/** Browser-safe publishable key (pk_) for self-fetch. A secret key is refused client-side and never sent. */\n\tpublishableKey?: string;\n\t/** Override the API origin for self-hosted or proxied deployments. */\n\tbaseUrl?: string;\n\t/** Override the OpenAPI spec URL the self-fetch form introspects. */\n\tspecUrl?: string;\n\t/** Response language for self-fetch, forwarded to the API `lang` query parameter (en, tr, de, es, hi, pt, fr, ru). The form never shows a language field; the site owner sets it here. Defaults to English. */\n\tlang?: string;\n\t/** Override the self-fetch form submit-button label. Empty derives an outcome-first label from the endpoint (Get reading, Generate, Compare, Cast). */\n\tsubmitLabel?: string;\n\t/** Render a small \"Spiritual data by RoxyAPI\" credit under a self-fetch result, linking back to RoxyAPI. Off by default; set any value to enable, or \"off\" to force it off. Never shown in controlled mode. */\n\tattribution?: string;\n\t/** Render the chart and the data and omit the written interpretation. Off by default. Use it when the page supplies its own words: the wheels, tables, grids, legends and numbers stay, and the interpretive prose is left out of the markup entirely. */\n\thideReadings?: boolean;\n}\n\nexport const RoxyAngelNumberCard = defineComponent({\n\tname: 'RoxyAngelNumberCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyAngelNumberCardProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyAngelNumberCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyAngelNumberCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyAngelNumberCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyAngelNumberCardProps['baseUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyAngelNumberCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyAngelNumberCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyAngelNumberCardProps['submitLabel']> },\n\t\tattribution: { type: String as PropType<RoxyAngelNumberCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyAngelNumberCardProps['hideReadings']> },\n\t},\n\tsetup(props) {\n\t\tconst loadError = ref<Error | null>(null);\n\n\t\tonMounted(() => {\n\t\t\tensureScriptLoaded().catch((err: unknown) => {\n\t\t\t\tloadError.value = err instanceof Error ? err : new Error(String(err));\n\t\t\t});\n\t\t});\n\n\t\treturn () => {\n\t\t\tif (loadError.value) {\n\t\t\t\treturn h(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ role: 'alert' },\n\t\t\t\t\t`Roxy UI script load failed: ${loadError.value.message}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst elementProps: Record<string, unknown> = {};\n\t\t\tif (props.data !== undefined) elementProps['.data'] = props.data;\n\t\t\tif (props.endpoint !== undefined) elementProps['.endpoint'] = props.endpoint;\n\t\t\tif (props.method !== undefined) elementProps['.method'] = props.method;\n\t\t\tif (props.publishableKey !== undefined) elementProps['.publishableKey'] = props.publishableKey;\n\t\t\tif (props.baseUrl !== undefined) elementProps['.baseUrl'] = props.baseUrl;\n\t\t\tif (props.specUrl !== undefined) elementProps['.specUrl'] = props.specUrl;\n\t\t\tif (props.lang !== undefined) elementProps['.lang'] = props.lang;\n\t\t\tif (props.submitLabel !== undefined) elementProps['.submitLabel'] = props.submitLabel;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\n\t\t\treturn h('roxy-angel-number-card', elementProps);\n\t\t};\n\t},\n});\n", "/**\n * Loads the matching component bundle on first mount. Idempotent across\n * many components on the same page. Skips on the server (no document) so\n * Nuxt and Vue server rendering work without a flash.\n *\n * Defaults to the EXACT @roxyapi/ui release this wrapper was built against, so\n * `@roxyapi/ui-vue@x.y.z` always runs `@roxyapi/ui@x.y.z` and a lockfile actually\n * pins the runtime. It used to default to '@latest', which meant a pinned wrapper\n * silently picked up whatever the CDN was serving, and a new @roxyapi/ui release\n * changed the elements under every existing install with no lockfile change.\n *\n * Pass an explicit `version` to override, or 'latest' to opt back into floating.\n *\n * Pass `baseUrl` to serve the bundle from your own origin instead of the CDN, which is\n * what an air-gapped install or a strict Content-Security-Policy needs: copy\n * `node_modules/@roxyapi/ui/dist/cdn/` onto your host and call this once at app entry,\n * before any component mounts. The loader keeps a single shared promise, so the first\n * call wins and every component reuses it.\n */\n/** The @roxyapi/ui release this wrapper was generated against. The loader defaults to it, so the wrapper version in your lockfile is the runtime you actually get. */\nexport const ROXY_UI_VERSION = \"0.24.0\";\n\nconst SCRIPT_ID = 'roxyapi-ui-loader';\nconst CDN_BASE_LATEST = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn\";\nconst CDN_BASE_PREFIX = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@\";\nconst CDN_BASE_SUFFIX = \"/dist/cdn\";\n\nlet loaded: Promise<void> | null = null;\n\nfunction buildBase(version: string): string {\n\tif (!version || version === 'latest') return CDN_BASE_LATEST;\n\treturn `${CDN_BASE_PREFIX}${version}${CDN_BASE_SUFFIX}`;\n}\n\nexport function ensureScriptLoaded(\n\tversion: string = ROXY_UI_VERSION,\n\tbaseUrl?: string,\n): Promise<void> {\n\tif (typeof document === 'undefined') return Promise.resolve();\n\tif (loaded) return loaded;\n\n\tloaded = new Promise<void>((resolve, reject) => {\n\t\tconst url = `${baseUrl ?? buildBase(version)}/roxy-ui.js`;\n\t\tlet existing = document.getElementById(SCRIPT_ID) as HTMLScriptElement | null;\n\t\tif (existing) {\n\t\t\tif (existing.dataset.loaded === 'true') {\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\texisting.addEventListener('load', () => resolve());\n\t\t\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\texisting = document.createElement('script');\n\t\texisting.id = SCRIPT_ID;\n\t\texisting.src = url;\n\t\texisting.async = true;\n\t\texisting.crossOrigin = 'anonymous';\n\t\texisting.addEventListener('load', () => {\n\t\t\texisting!.dataset.loaded = 'true';\n\t\t\tresolve();\n\t\t});\n\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\tdocument.head.appendChild(existing);\n\t});\n\treturn loaded;\n}\n\n// Default export retained for convenience; matches the named export.\nexport default ensureScriptLoaded;\n// Surfaces the embedded @roxyapi/ui version this build of @roxyapi/ui-vue\n// was generated against. Useful for diagnostics; not load-bearing.\n"],
5
+ "mappings": "AAAA,OAAS,mBAAAA,EAAiB,KAAAC,EAAG,aAAAC,EAA0B,OAAAC,MAAW,MCoB3D,IAAMC,EAAkB,SAEzBC,EAAY,oBACZC,EAAkB,2DAClBC,EAAkB,4CAClBC,EAAkB,YAEpBC,EAA+B,KAEnC,SAASC,EAAUC,EAAyB,CAC3C,MAAI,CAACA,GAAWA,IAAY,SAAiBL,EACtC,GAAGC,CAAe,GAAGI,CAAO,GAAGH,CAAe,EACtD,CAEO,SAASI,EACfD,EAAkBP,EAClBS,EACgB,CAChB,OAAI,OAAO,SAAa,IAAoB,QAAQ,QAAQ,EACxDJ,IAEJA,EAAS,IAAI,QAAc,CAACK,EAASC,IAAW,CAC/C,IAAMC,EAAM,GAAGH,GAAWH,EAAUC,CAAO,CAAC,cACxCM,EAAW,SAAS,eAAeZ,CAAS,EAChD,GAAIY,EAAU,CACTA,EAAS,QAAQ,SAAW,OAC/BH,EAAQ,GAERG,EAAS,iBAAiB,OAAQ,IAAMH,EAAQ,CAAC,EACjDG,EAAS,iBAAiB,QAAS,IAAMF,EAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC,GAElF,MACD,CACAE,EAAW,SAAS,cAAc,QAAQ,EAC1CA,EAAS,GAAKZ,EACdY,EAAS,IAAMD,EACfC,EAAS,MAAQ,GACjBA,EAAS,YAAc,YACvBA,EAAS,iBAAiB,OAAQ,IAAM,CACvCA,EAAU,QAAQ,OAAS,OAC3BH,EAAQ,CACT,CAAC,EACDG,EAAS,iBAAiB,QAAS,IAAMF,EAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC,EACjF,SAAS,KAAK,YAAYE,CAAQ,CACnC,CAAC,EACMR,EACR,CDvCO,IAAMS,EAAsBC,EAAgB,CAClD,KAAM,sBACN,MAAO,CACN,KAAM,CAAE,KAAM,MAAqD,EACnE,SAAU,CAAE,KAAM,MAAyD,EAC3E,OAAQ,CAAE,KAAM,MAAuD,EACvE,eAAgB,CAAE,KAAM,MAA+D,EACvF,QAAS,CAAE,KAAM,MAAwD,EACzE,QAAS,CAAE,KAAM,MAAwD,EACzE,KAAM,CAAE,KAAM,MAAqD,EACnE,YAAa,CAAE,KAAM,MAA4D,EACjF,YAAa,CAAE,KAAM,MAA4D,EACjF,aAAc,CAAE,KAAM,OAA8D,CACrF,EACA,MAAMC,EAAO,CACZ,IAAMC,EAAYC,EAAkB,IAAI,EAExC,OAAAC,EAAU,IAAM,CACfC,EAAmB,EAAE,MAAOC,GAAiB,CAC5CJ,EAAU,MAAQI,aAAe,MAAQA,EAAM,IAAI,MAAM,OAAOA,CAAG,CAAC,CACrE,CAAC,CACF,CAAC,EAEM,IAAM,CACZ,GAAIJ,EAAU,MACb,OAAOK,EACN,MACA,CAAE,KAAM,OAAQ,EAChB,+BAA+BL,EAAU,MAAM,OAAO,EACvD,EAGD,IAAMM,EAAwC,CAAC,EAC/C,OAAIP,EAAM,OAAS,SAAWO,EAAa,OAAO,EAAIP,EAAM,MACxDA,EAAM,WAAa,SAAWO,EAAa,WAAW,EAAIP,EAAM,UAChEA,EAAM,SAAW,SAAWO,EAAa,SAAS,EAAIP,EAAM,QAC5DA,EAAM,iBAAmB,SAAWO,EAAa,iBAAiB,EAAIP,EAAM,gBAC5EA,EAAM,UAAY,SAAWO,EAAa,UAAU,EAAIP,EAAM,SAC9DA,EAAM,UAAY,SAAWO,EAAa,UAAU,EAAIP,EAAM,SAC9DA,EAAM,OAAS,SAAWO,EAAa,OAAO,EAAIP,EAAM,MACxDA,EAAM,cAAgB,SAAWO,EAAa,cAAc,EAAIP,EAAM,aACtEA,EAAM,cAAgB,SAAWO,EAAa,cAAc,EAAIP,EAAM,aACtEA,EAAM,eAAiB,SAAWO,EAAa,eAAe,EAAIP,EAAM,cAErEM,EAAE,yBAA0BC,CAAY,CAChD,CACD,CACD,CAAC",
6
6
  "names": ["defineComponent", "h", "onMounted", "ref", "ROXY_UI_VERSION", "SCRIPT_ID", "CDN_BASE_LATEST", "CDN_BASE_PREFIX", "CDN_BASE_SUFFIX", "loaded", "buildBase", "version", "ensureScriptLoaded", "baseUrl", "resolve", "reject", "url", "existing", "RoxyAngelNumberCard", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps"]
7
7
  }
@@ -19,6 +19,8 @@ export interface RoxyAngelNumberLookupProps {
19
19
  submitLabel?: string;
20
20
  /** Render a small "Spiritual data by RoxyAPI" credit under a self-fetch result, linking back to RoxyAPI. Off by default; set any value to enable, or "off" to force it off. Never shown in controlled mode. */
21
21
  attribution?: string;
22
+ /** Render the chart and the data and omit the written interpretation. Off by default. Use it when the page supplies its own words: the wheels, tables, grids, legends and numbers stay, and the interpretive prose is left out of the markup entirely. */
23
+ hideReadings?: boolean;
22
24
  }
23
25
  export declare const RoxyAngelNumberLookup: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
24
26
  data: {
@@ -48,6 +50,9 @@ export declare const RoxyAngelNumberLookup: import("vue").DefineComponent<import
48
50
  attribution: {
49
51
  type: PropType<RoxyAngelNumberLookupProps["attribution"]>;
50
52
  };
53
+ hideReadings: {
54
+ type: PropType<RoxyAngelNumberLookupProps["hideReadings"]>;
55
+ };
51
56
  }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
52
57
  [key: string]: any;
53
58
  }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -78,5 +83,8 @@ export declare const RoxyAngelNumberLookup: import("vue").DefineComponent<import
78
83
  attribution: {
79
84
  type: PropType<RoxyAngelNumberLookupProps["attribution"]>;
80
85
  };
86
+ hideReadings: {
87
+ type: PropType<RoxyAngelNumberLookupProps["hideReadings"]>;
88
+ };
81
89
  }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
82
90
  //# sourceMappingURL=angel-number-lookup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"angel-number-lookup.d.ts","sourceRoot":"","sources":["../../src/components/angel-number-lookup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,QAAQ,EAAO,MAAM,KAAK,CAAC;AAExE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,WAAW,0BAA0B;IAC1C,oEAAoE;IACpE,IAAI,CAAC,EAAE,6BAA6B,CAAC;IACrC,mPAAmP;IACnP,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,6GAA6G;IAC7G,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+MAA+M;IAC/M,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uJAAuJ;IACvJ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+MAA+M;IAC/M,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,qBAAqB;;cAGR,QAAQ,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;;;cACxC,QAAQ,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;;;cAClD,QAAQ,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;;;cACtC,QAAQ,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;;;cAC7D,QAAQ,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;;;cAC/C,QAAQ,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;;;cAClD,QAAQ,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;;;cACrC,QAAQ,CAAC,0BAA0B,CAAC,aAAa,CAAC,CAAC;;;cACnD,QAAQ,CAAC,0BAA0B,CAAC,aAAa,CAAC,CAAC;;;;;;cAR1D,QAAQ,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;;;cACxC,QAAQ,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;;;cAClD,QAAQ,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;;;cACtC,QAAQ,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;;;cAC7D,QAAQ,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;;;cAC/C,QAAQ,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;;;cAClD,QAAQ,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;;;cACrC,QAAQ,CAAC,0BAA0B,CAAC,aAAa,CAAC,CAAC;;;cACnD,QAAQ,CAAC,0BAA0B,CAAC,aAAa,CAAC,CAAC;;iGAkClF,CAAC"}
1
+ {"version":3,"file":"angel-number-lookup.d.ts","sourceRoot":"","sources":["../../src/components/angel-number-lookup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,QAAQ,EAAO,MAAM,KAAK,CAAC;AAExE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,WAAW,0BAA0B;IAC1C,oEAAoE;IACpE,IAAI,CAAC,EAAE,6BAA6B,CAAC;IACrC,mPAAmP;IACnP,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,6GAA6G;IAC7G,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+MAA+M;IAC/M,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uJAAuJ;IACvJ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+MAA+M;IAC/M,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0PAA0P;IAC1P,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,qBAAqB;;cAGR,QAAQ,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;;;cACxC,QAAQ,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;;;cAClD,QAAQ,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;;;cACtC,QAAQ,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;;;cAC7D,QAAQ,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;;;cAC/C,QAAQ,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;;;cAClD,QAAQ,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;;;cACrC,QAAQ,CAAC,0BAA0B,CAAC,aAAa,CAAC,CAAC;;;cACnD,QAAQ,CAAC,0BAA0B,CAAC,aAAa,CAAC,CAAC;;;cACjD,QAAQ,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC;;;;;;cAT7D,QAAQ,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;;;cACxC,QAAQ,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;;;cAClD,QAAQ,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;;;cACtC,QAAQ,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;;;cAC7D,QAAQ,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;;;cAC/C,QAAQ,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;;;cAClD,QAAQ,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;;;cACrC,QAAQ,CAAC,0BAA0B,CAAC,aAAa,CAAC,CAAC;;;cACnD,QAAQ,CAAC,0BAA0B,CAAC,aAAa,CAAC,CAAC;;;cACjD,QAAQ,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC;;iGAmCrF,CAAC"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as g,h as d,onMounted as c,ref as f}from"vue";var s="0.22.0",u="roxyapi-ui-loader",p="https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn",y="https://cdn.jsdelivr.net/npm/@roxyapi/ui@",b="/dist/cdn",o=null;function m(e){return!e||e==="latest"?p:`${y}${e}${b}`}function a(e=s,r){return typeof document>"u"?Promise.resolve():o||(o=new Promise((n,i)=>{let l=`${r??m(e)}/roxy-ui.js`,t=document.getElementById(u);if(t){t.dataset.loaded==="true"?n():(t.addEventListener("load",()=>n()),t.addEventListener("error",()=>i(new Error("roxy-ui load failed"))));return}t=document.createElement("script"),t.id=u,t.src=l,t.async=!0,t.crossOrigin="anonymous",t.addEventListener("load",()=>{t.dataset.loaded="true",n()}),t.addEventListener("error",()=>i(new Error("roxy-ui load failed"))),document.head.appendChild(t)}),o)}var S=g({name:"RoxyAngelNumberLookup",props:{data:{type:Object},endpoint:{type:String},method:{type:String},publishableKey:{type:String},baseUrl:{type:String},specUrl:{type:String},lang:{type:String},submitLabel:{type:String},attribution:{type:String}},setup(e){let r=f(null);return c(()=>{a().catch(n=>{r.value=n instanceof Error?n:new Error(String(n))})}),()=>{if(r.value)return d("div",{role:"alert"},`Roxy UI script load failed: ${r.value.message}`);let n={};return e.data!==void 0&&(n[".data"]=e.data),e.endpoint!==void 0&&(n[".endpoint"]=e.endpoint),e.method!==void 0&&(n[".method"]=e.method),e.publishableKey!==void 0&&(n[".publishableKey"]=e.publishableKey),e.baseUrl!==void 0&&(n[".baseUrl"]=e.baseUrl),e.specUrl!==void 0&&(n[".specUrl"]=e.specUrl),e.lang!==void 0&&(n[".lang"]=e.lang),e.submitLabel!==void 0&&(n[".submitLabel"]=e.submitLabel),e.attribution!==void 0&&(n[".attribution"]=e.attribution),d("roxy-angel-number-lookup",n)}}});export{S as RoxyAngelNumberLookup};
1
+ import{defineComponent as g,h as u,onMounted as c,ref as f}from"vue";var s="0.24.0",d="roxyapi-ui-loader",p="https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn",y="https://cdn.jsdelivr.net/npm/@roxyapi/ui@",b="/dist/cdn",o=null;function m(e){return!e||e==="latest"?p:`${y}${e}${b}`}function a(e=s,r){return typeof document>"u"?Promise.resolve():o||(o=new Promise((n,i)=>{let l=`${r??m(e)}/roxy-ui.js`,t=document.getElementById(d);if(t){t.dataset.loaded==="true"?n():(t.addEventListener("load",()=>n()),t.addEventListener("error",()=>i(new Error("roxy-ui load failed"))));return}t=document.createElement("script"),t.id=d,t.src=l,t.async=!0,t.crossOrigin="anonymous",t.addEventListener("load",()=>{t.dataset.loaded="true",n()}),t.addEventListener("error",()=>i(new Error("roxy-ui load failed"))),document.head.appendChild(t)}),o)}var R=g({name:"RoxyAngelNumberLookup",props:{data:{type:Object},endpoint:{type:String},method:{type:String},publishableKey:{type:String},baseUrl:{type:String},specUrl:{type:String},lang:{type:String},submitLabel:{type:String},attribution:{type:String},hideReadings:{type:Boolean}},setup(e){let r=f(null);return c(()=>{a().catch(n=>{r.value=n instanceof Error?n:new Error(String(n))})}),()=>{if(r.value)return u("div",{role:"alert"},`Roxy UI script load failed: ${r.value.message}`);let n={};return e.data!==void 0&&(n[".data"]=e.data),e.endpoint!==void 0&&(n[".endpoint"]=e.endpoint),e.method!==void 0&&(n[".method"]=e.method),e.publishableKey!==void 0&&(n[".publishableKey"]=e.publishableKey),e.baseUrl!==void 0&&(n[".baseUrl"]=e.baseUrl),e.specUrl!==void 0&&(n[".specUrl"]=e.specUrl),e.lang!==void 0&&(n[".lang"]=e.lang),e.submitLabel!==void 0&&(n[".submitLabel"]=e.submitLabel),e.attribution!==void 0&&(n[".attribution"]=e.attribution),e.hideReadings!==void 0&&(n[".hideReadings"]=e.hideReadings),u("roxy-angel-number-lookup",n)}}});export{R as RoxyAngelNumberLookup};
2
2
  //# sourceMappingURL=angel-number-lookup.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/components/angel-number-lookup.ts", "../../src/load-ui.ts"],
4
- "sourcesContent": ["import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { AnalyzeNumberSequenceResponse } from '../types/index.js';\n\nexport interface RoxyAngelNumberLookupProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: AnalyzeNumberSequenceResponse;\n\t/** Endpoint path for built-in self-fetch (uncontrolled mode), e.g. \"astrology/natal-chart\". The component renders its own input form, fetches with the publishable key, and displays the result. Leave unset for controlled mode (pass `data`). */\n\tendpoint?: string;\n\t/** HTTP method for the self-fetch request. Defaults to POST. */\n\tmethod?: 'GET' | 'POST';\n\t/** Browser-safe publishable key (pk_) for self-fetch. A secret key is refused client-side and never sent. */\n\tpublishableKey?: string;\n\t/** Override the API origin for self-hosted or proxied deployments. */\n\tbaseUrl?: string;\n\t/** Override the OpenAPI spec URL the self-fetch form introspects. */\n\tspecUrl?: string;\n\t/** Response language for self-fetch, forwarded to the API `lang` query parameter (en, tr, de, es, hi, pt, fr, ru). The form never shows a language field; the site owner sets it here. Defaults to English. */\n\tlang?: string;\n\t/** Override the self-fetch form submit-button label. Empty derives an outcome-first label from the endpoint (Get reading, Generate, Compare, Cast). */\n\tsubmitLabel?: string;\n\t/** Render a small \"Spiritual data by RoxyAPI\" credit under a self-fetch result, linking back to RoxyAPI. Off by default; set any value to enable, or \"off\" to force it off. Never shown in controlled mode. */\n\tattribution?: string;\n}\n\nexport const RoxyAngelNumberLookup = defineComponent({\n\tname: 'RoxyAngelNumberLookup',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyAngelNumberLookupProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyAngelNumberLookupProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyAngelNumberLookupProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyAngelNumberLookupProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyAngelNumberLookupProps['baseUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyAngelNumberLookupProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyAngelNumberLookupProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyAngelNumberLookupProps['submitLabel']> },\n\t\tattribution: { type: String as PropType<RoxyAngelNumberLookupProps['attribution']> },\n\t},\n\tsetup(props) {\n\t\tconst loadError = ref<Error | null>(null);\n\n\t\tonMounted(() => {\n\t\t\tensureScriptLoaded().catch((err: unknown) => {\n\t\t\t\tloadError.value = err instanceof Error ? err : new Error(String(err));\n\t\t\t});\n\t\t});\n\n\t\treturn () => {\n\t\t\tif (loadError.value) {\n\t\t\t\treturn h(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ role: 'alert' },\n\t\t\t\t\t`Roxy UI script load failed: ${loadError.value.message}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst elementProps: Record<string, unknown> = {};\n\t\t\tif (props.data !== undefined) elementProps['.data'] = props.data;\n\t\t\tif (props.endpoint !== undefined) elementProps['.endpoint'] = props.endpoint;\n\t\t\tif (props.method !== undefined) elementProps['.method'] = props.method;\n\t\t\tif (props.publishableKey !== undefined) elementProps['.publishableKey'] = props.publishableKey;\n\t\t\tif (props.baseUrl !== undefined) elementProps['.baseUrl'] = props.baseUrl;\n\t\t\tif (props.specUrl !== undefined) elementProps['.specUrl'] = props.specUrl;\n\t\t\tif (props.lang !== undefined) elementProps['.lang'] = props.lang;\n\t\t\tif (props.submitLabel !== undefined) elementProps['.submitLabel'] = props.submitLabel;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\n\t\t\treturn h('roxy-angel-number-lookup', elementProps);\n\t\t};\n\t},\n});\n", "/**\n * Loads the matching component bundle on first mount. Idempotent across\n * many components on the same page. Skips on the server (no document) so\n * Nuxt and Vue server rendering work without a flash.\n *\n * Defaults to the EXACT @roxyapi/ui release this wrapper was built against, so\n * `@roxyapi/ui-vue@x.y.z` always runs `@roxyapi/ui@x.y.z` and a lockfile actually\n * pins the runtime. It used to default to '@latest', which meant a pinned wrapper\n * silently picked up whatever the CDN was serving, and a new @roxyapi/ui release\n * changed the elements under every existing install with no lockfile change.\n *\n * Pass an explicit `version` to override, or 'latest' to opt back into floating.\n *\n * Pass `baseUrl` to serve the bundle from your own origin instead of the CDN, which is\n * what an air-gapped install or a strict Content-Security-Policy needs: copy\n * `node_modules/@roxyapi/ui/dist/cdn/` onto your host and call this once at app entry,\n * before any component mounts. The loader keeps a single shared promise, so the first\n * call wins and every component reuses it.\n */\n/** The @roxyapi/ui release this wrapper was generated against. The loader defaults to it, so the wrapper version in your lockfile is the runtime you actually get. */\nexport const ROXY_UI_VERSION = \"0.22.0\";\n\nconst SCRIPT_ID = 'roxyapi-ui-loader';\nconst CDN_BASE_LATEST = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn\";\nconst CDN_BASE_PREFIX = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@\";\nconst CDN_BASE_SUFFIX = \"/dist/cdn\";\n\nlet loaded: Promise<void> | null = null;\n\nfunction buildBase(version: string): string {\n\tif (!version || version === 'latest') return CDN_BASE_LATEST;\n\treturn `${CDN_BASE_PREFIX}${version}${CDN_BASE_SUFFIX}`;\n}\n\nexport function ensureScriptLoaded(\n\tversion: string = ROXY_UI_VERSION,\n\tbaseUrl?: string,\n): Promise<void> {\n\tif (typeof document === 'undefined') return Promise.resolve();\n\tif (loaded) return loaded;\n\n\tloaded = new Promise<void>((resolve, reject) => {\n\t\tconst url = `${baseUrl ?? buildBase(version)}/roxy-ui.js`;\n\t\tlet existing = document.getElementById(SCRIPT_ID) as HTMLScriptElement | null;\n\t\tif (existing) {\n\t\t\tif (existing.dataset.loaded === 'true') {\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\texisting.addEventListener('load', () => resolve());\n\t\t\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\texisting = document.createElement('script');\n\t\texisting.id = SCRIPT_ID;\n\t\texisting.src = url;\n\t\texisting.async = true;\n\t\texisting.crossOrigin = 'anonymous';\n\t\texisting.addEventListener('load', () => {\n\t\t\texisting!.dataset.loaded = 'true';\n\t\t\tresolve();\n\t\t});\n\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\tdocument.head.appendChild(existing);\n\t});\n\treturn loaded;\n}\n\n// Default export retained for convenience; matches the named export.\nexport default ensureScriptLoaded;\n// Surfaces the embedded @roxyapi/ui version this build of @roxyapi/ui-vue\n// was generated against. Useful for diagnostics; not load-bearing.\n"],
5
- "mappings": "AAAA,OAAS,mBAAAA,EAAiB,KAAAC,EAAG,aAAAC,EAA0B,OAAAC,MAAW,MCoB3D,IAAMC,EAAkB,SAEzBC,EAAY,oBACZC,EAAkB,2DAClBC,EAAkB,4CAClBC,EAAkB,YAEpBC,EAA+B,KAEnC,SAASC,EAAUC,EAAyB,CAC3C,MAAI,CAACA,GAAWA,IAAY,SAAiBL,EACtC,GAAGC,CAAe,GAAGI,CAAO,GAAGH,CAAe,EACtD,CAEO,SAASI,EACfD,EAAkBP,EAClBS,EACgB,CAChB,OAAI,OAAO,SAAa,IAAoB,QAAQ,QAAQ,EACxDJ,IAEJA,EAAS,IAAI,QAAc,CAACK,EAASC,IAAW,CAC/C,IAAMC,EAAM,GAAGH,GAAWH,EAAUC,CAAO,CAAC,cACxCM,EAAW,SAAS,eAAeZ,CAAS,EAChD,GAAIY,EAAU,CACTA,EAAS,QAAQ,SAAW,OAC/BH,EAAQ,GAERG,EAAS,iBAAiB,OAAQ,IAAMH,EAAQ,CAAC,EACjDG,EAAS,iBAAiB,QAAS,IAAMF,EAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC,GAElF,MACD,CACAE,EAAW,SAAS,cAAc,QAAQ,EAC1CA,EAAS,GAAKZ,EACdY,EAAS,IAAMD,EACfC,EAAS,MAAQ,GACjBA,EAAS,YAAc,YACvBA,EAAS,iBAAiB,OAAQ,IAAM,CACvCA,EAAU,QAAQ,OAAS,OAC3BH,EAAQ,CACT,CAAC,EACDG,EAAS,iBAAiB,QAAS,IAAMF,EAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC,EACjF,SAAS,KAAK,YAAYE,CAAQ,CACnC,CAAC,EACMR,EACR,CDzCO,IAAMS,EAAwBC,EAAgB,CACpD,KAAM,wBACN,MAAO,CACN,KAAM,CAAE,KAAM,MAAuD,EACrE,SAAU,CAAE,KAAM,MAA2D,EAC7E,OAAQ,CAAE,KAAM,MAAyD,EACzE,eAAgB,CAAE,KAAM,MAAiE,EACzF,QAAS,CAAE,KAAM,MAA0D,EAC3E,QAAS,CAAE,KAAM,MAA0D,EAC3E,KAAM,CAAE,KAAM,MAAuD,EACrE,YAAa,CAAE,KAAM,MAA8D,EACnF,YAAa,CAAE,KAAM,MAA8D,CACpF,EACA,MAAMC,EAAO,CACZ,IAAMC,EAAYC,EAAkB,IAAI,EAExC,OAAAC,EAAU,IAAM,CACfC,EAAmB,EAAE,MAAOC,GAAiB,CAC5CJ,EAAU,MAAQI,aAAe,MAAQA,EAAM,IAAI,MAAM,OAAOA,CAAG,CAAC,CACrE,CAAC,CACF,CAAC,EAEM,IAAM,CACZ,GAAIJ,EAAU,MACb,OAAOK,EACN,MACA,CAAE,KAAM,OAAQ,EAChB,+BAA+BL,EAAU,MAAM,OAAO,EACvD,EAGD,IAAMM,EAAwC,CAAC,EAC/C,OAAIP,EAAM,OAAS,SAAWO,EAAa,OAAO,EAAIP,EAAM,MACxDA,EAAM,WAAa,SAAWO,EAAa,WAAW,EAAIP,EAAM,UAChEA,EAAM,SAAW,SAAWO,EAAa,SAAS,EAAIP,EAAM,QAC5DA,EAAM,iBAAmB,SAAWO,EAAa,iBAAiB,EAAIP,EAAM,gBAC5EA,EAAM,UAAY,SAAWO,EAAa,UAAU,EAAIP,EAAM,SAC9DA,EAAM,UAAY,SAAWO,EAAa,UAAU,EAAIP,EAAM,SAC9DA,EAAM,OAAS,SAAWO,EAAa,OAAO,EAAIP,EAAM,MACxDA,EAAM,cAAgB,SAAWO,EAAa,cAAc,EAAIP,EAAM,aACtEA,EAAM,cAAgB,SAAWO,EAAa,cAAc,EAAIP,EAAM,aAEnEM,EAAE,2BAA4BC,CAAY,CAClD,CACD,CACD,CAAC",
4
+ "sourcesContent": ["import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { AnalyzeNumberSequenceResponse } from '../types/index.js';\n\nexport interface RoxyAngelNumberLookupProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: AnalyzeNumberSequenceResponse;\n\t/** Endpoint path for built-in self-fetch (uncontrolled mode), e.g. \"astrology/natal-chart\". The component renders its own input form, fetches with the publishable key, and displays the result. Leave unset for controlled mode (pass `data`). */\n\tendpoint?: string;\n\t/** HTTP method for the self-fetch request. Defaults to POST. */\n\tmethod?: 'GET' | 'POST';\n\t/** Browser-safe publishable key (pk_) for self-fetch. A secret key is refused client-side and never sent. */\n\tpublishableKey?: string;\n\t/** Override the API origin for self-hosted or proxied deployments. */\n\tbaseUrl?: string;\n\t/** Override the OpenAPI spec URL the self-fetch form introspects. */\n\tspecUrl?: string;\n\t/** Response language for self-fetch, forwarded to the API `lang` query parameter (en, tr, de, es, hi, pt, fr, ru). The form never shows a language field; the site owner sets it here. Defaults to English. */\n\tlang?: string;\n\t/** Override the self-fetch form submit-button label. Empty derives an outcome-first label from the endpoint (Get reading, Generate, Compare, Cast). */\n\tsubmitLabel?: string;\n\t/** Render a small \"Spiritual data by RoxyAPI\" credit under a self-fetch result, linking back to RoxyAPI. Off by default; set any value to enable, or \"off\" to force it off. Never shown in controlled mode. */\n\tattribution?: string;\n\t/** Render the chart and the data and omit the written interpretation. Off by default. Use it when the page supplies its own words: the wheels, tables, grids, legends and numbers stay, and the interpretive prose is left out of the markup entirely. */\n\thideReadings?: boolean;\n}\n\nexport const RoxyAngelNumberLookup = defineComponent({\n\tname: 'RoxyAngelNumberLookup',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyAngelNumberLookupProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyAngelNumberLookupProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyAngelNumberLookupProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyAngelNumberLookupProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyAngelNumberLookupProps['baseUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyAngelNumberLookupProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyAngelNumberLookupProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyAngelNumberLookupProps['submitLabel']> },\n\t\tattribution: { type: String as PropType<RoxyAngelNumberLookupProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyAngelNumberLookupProps['hideReadings']> },\n\t},\n\tsetup(props) {\n\t\tconst loadError = ref<Error | null>(null);\n\n\t\tonMounted(() => {\n\t\t\tensureScriptLoaded().catch((err: unknown) => {\n\t\t\t\tloadError.value = err instanceof Error ? err : new Error(String(err));\n\t\t\t});\n\t\t});\n\n\t\treturn () => {\n\t\t\tif (loadError.value) {\n\t\t\t\treturn h(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ role: 'alert' },\n\t\t\t\t\t`Roxy UI script load failed: ${loadError.value.message}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst elementProps: Record<string, unknown> = {};\n\t\t\tif (props.data !== undefined) elementProps['.data'] = props.data;\n\t\t\tif (props.endpoint !== undefined) elementProps['.endpoint'] = props.endpoint;\n\t\t\tif (props.method !== undefined) elementProps['.method'] = props.method;\n\t\t\tif (props.publishableKey !== undefined) elementProps['.publishableKey'] = props.publishableKey;\n\t\t\tif (props.baseUrl !== undefined) elementProps['.baseUrl'] = props.baseUrl;\n\t\t\tif (props.specUrl !== undefined) elementProps['.specUrl'] = props.specUrl;\n\t\t\tif (props.lang !== undefined) elementProps['.lang'] = props.lang;\n\t\t\tif (props.submitLabel !== undefined) elementProps['.submitLabel'] = props.submitLabel;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\n\t\t\treturn h('roxy-angel-number-lookup', elementProps);\n\t\t};\n\t},\n});\n", "/**\n * Loads the matching component bundle on first mount. Idempotent across\n * many components on the same page. Skips on the server (no document) so\n * Nuxt and Vue server rendering work without a flash.\n *\n * Defaults to the EXACT @roxyapi/ui release this wrapper was built against, so\n * `@roxyapi/ui-vue@x.y.z` always runs `@roxyapi/ui@x.y.z` and a lockfile actually\n * pins the runtime. It used to default to '@latest', which meant a pinned wrapper\n * silently picked up whatever the CDN was serving, and a new @roxyapi/ui release\n * changed the elements under every existing install with no lockfile change.\n *\n * Pass an explicit `version` to override, or 'latest' to opt back into floating.\n *\n * Pass `baseUrl` to serve the bundle from your own origin instead of the CDN, which is\n * what an air-gapped install or a strict Content-Security-Policy needs: copy\n * `node_modules/@roxyapi/ui/dist/cdn/` onto your host and call this once at app entry,\n * before any component mounts. The loader keeps a single shared promise, so the first\n * call wins and every component reuses it.\n */\n/** The @roxyapi/ui release this wrapper was generated against. The loader defaults to it, so the wrapper version in your lockfile is the runtime you actually get. */\nexport const ROXY_UI_VERSION = \"0.24.0\";\n\nconst SCRIPT_ID = 'roxyapi-ui-loader';\nconst CDN_BASE_LATEST = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn\";\nconst CDN_BASE_PREFIX = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@\";\nconst CDN_BASE_SUFFIX = \"/dist/cdn\";\n\nlet loaded: Promise<void> | null = null;\n\nfunction buildBase(version: string): string {\n\tif (!version || version === 'latest') return CDN_BASE_LATEST;\n\treturn `${CDN_BASE_PREFIX}${version}${CDN_BASE_SUFFIX}`;\n}\n\nexport function ensureScriptLoaded(\n\tversion: string = ROXY_UI_VERSION,\n\tbaseUrl?: string,\n): Promise<void> {\n\tif (typeof document === 'undefined') return Promise.resolve();\n\tif (loaded) return loaded;\n\n\tloaded = new Promise<void>((resolve, reject) => {\n\t\tconst url = `${baseUrl ?? buildBase(version)}/roxy-ui.js`;\n\t\tlet existing = document.getElementById(SCRIPT_ID) as HTMLScriptElement | null;\n\t\tif (existing) {\n\t\t\tif (existing.dataset.loaded === 'true') {\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\texisting.addEventListener('load', () => resolve());\n\t\t\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\texisting = document.createElement('script');\n\t\texisting.id = SCRIPT_ID;\n\t\texisting.src = url;\n\t\texisting.async = true;\n\t\texisting.crossOrigin = 'anonymous';\n\t\texisting.addEventListener('load', () => {\n\t\t\texisting!.dataset.loaded = 'true';\n\t\t\tresolve();\n\t\t});\n\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\tdocument.head.appendChild(existing);\n\t});\n\treturn loaded;\n}\n\n// Default export retained for convenience; matches the named export.\nexport default ensureScriptLoaded;\n// Surfaces the embedded @roxyapi/ui version this build of @roxyapi/ui-vue\n// was generated against. Useful for diagnostics; not load-bearing.\n"],
5
+ "mappings": "AAAA,OAAS,mBAAAA,EAAiB,KAAAC,EAAG,aAAAC,EAA0B,OAAAC,MAAW,MCoB3D,IAAMC,EAAkB,SAEzBC,EAAY,oBACZC,EAAkB,2DAClBC,EAAkB,4CAClBC,EAAkB,YAEpBC,EAA+B,KAEnC,SAASC,EAAUC,EAAyB,CAC3C,MAAI,CAACA,GAAWA,IAAY,SAAiBL,EACtC,GAAGC,CAAe,GAAGI,CAAO,GAAGH,CAAe,EACtD,CAEO,SAASI,EACfD,EAAkBP,EAClBS,EACgB,CAChB,OAAI,OAAO,SAAa,IAAoB,QAAQ,QAAQ,EACxDJ,IAEJA,EAAS,IAAI,QAAc,CAACK,EAASC,IAAW,CAC/C,IAAMC,EAAM,GAAGH,GAAWH,EAAUC,CAAO,CAAC,cACxCM,EAAW,SAAS,eAAeZ,CAAS,EAChD,GAAIY,EAAU,CACTA,EAAS,QAAQ,SAAW,OAC/BH,EAAQ,GAERG,EAAS,iBAAiB,OAAQ,IAAMH,EAAQ,CAAC,EACjDG,EAAS,iBAAiB,QAAS,IAAMF,EAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC,GAElF,MACD,CACAE,EAAW,SAAS,cAAc,QAAQ,EAC1CA,EAAS,GAAKZ,EACdY,EAAS,IAAMD,EACfC,EAAS,MAAQ,GACjBA,EAAS,YAAc,YACvBA,EAAS,iBAAiB,OAAQ,IAAM,CACvCA,EAAU,QAAQ,OAAS,OAC3BH,EAAQ,CACT,CAAC,EACDG,EAAS,iBAAiB,QAAS,IAAMF,EAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC,EACjF,SAAS,KAAK,YAAYE,CAAQ,CACnC,CAAC,EACMR,EACR,CDvCO,IAAMS,EAAwBC,EAAgB,CACpD,KAAM,wBACN,MAAO,CACN,KAAM,CAAE,KAAM,MAAuD,EACrE,SAAU,CAAE,KAAM,MAA2D,EAC7E,OAAQ,CAAE,KAAM,MAAyD,EACzE,eAAgB,CAAE,KAAM,MAAiE,EACzF,QAAS,CAAE,KAAM,MAA0D,EAC3E,QAAS,CAAE,KAAM,MAA0D,EAC3E,KAAM,CAAE,KAAM,MAAuD,EACrE,YAAa,CAAE,KAAM,MAA8D,EACnF,YAAa,CAAE,KAAM,MAA8D,EACnF,aAAc,CAAE,KAAM,OAAgE,CACvF,EACA,MAAMC,EAAO,CACZ,IAAMC,EAAYC,EAAkB,IAAI,EAExC,OAAAC,EAAU,IAAM,CACfC,EAAmB,EAAE,MAAOC,GAAiB,CAC5CJ,EAAU,MAAQI,aAAe,MAAQA,EAAM,IAAI,MAAM,OAAOA,CAAG,CAAC,CACrE,CAAC,CACF,CAAC,EAEM,IAAM,CACZ,GAAIJ,EAAU,MACb,OAAOK,EACN,MACA,CAAE,KAAM,OAAQ,EAChB,+BAA+BL,EAAU,MAAM,OAAO,EACvD,EAGD,IAAMM,EAAwC,CAAC,EAC/C,OAAIP,EAAM,OAAS,SAAWO,EAAa,OAAO,EAAIP,EAAM,MACxDA,EAAM,WAAa,SAAWO,EAAa,WAAW,EAAIP,EAAM,UAChEA,EAAM,SAAW,SAAWO,EAAa,SAAS,EAAIP,EAAM,QAC5DA,EAAM,iBAAmB,SAAWO,EAAa,iBAAiB,EAAIP,EAAM,gBAC5EA,EAAM,UAAY,SAAWO,EAAa,UAAU,EAAIP,EAAM,SAC9DA,EAAM,UAAY,SAAWO,EAAa,UAAU,EAAIP,EAAM,SAC9DA,EAAM,OAAS,SAAWO,EAAa,OAAO,EAAIP,EAAM,MACxDA,EAAM,cAAgB,SAAWO,EAAa,cAAc,EAAIP,EAAM,aACtEA,EAAM,cAAgB,SAAWO,EAAa,cAAc,EAAIP,EAAM,aACtEA,EAAM,eAAiB,SAAWO,EAAa,eAAe,EAAIP,EAAM,cAErEM,EAAE,2BAA4BC,CAAY,CAClD,CACD,CACD,CAAC",
6
6
  "names": ["defineComponent", "h", "onMounted", "ref", "ROXY_UI_VERSION", "SCRIPT_ID", "CDN_BASE_LATEST", "CDN_BASE_PREFIX", "CDN_BASE_SUFFIX", "loaded", "buildBase", "version", "ensureScriptLoaded", "baseUrl", "resolve", "reject", "url", "existing", "RoxyAngelNumberLookup", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps"]
7
7
  }
@@ -19,6 +19,8 @@ export interface RoxyArudhaPadasProps {
19
19
  submitLabel?: string;
20
20
  /** Render a small "Spiritual data by RoxyAPI" credit under a self-fetch result, linking back to RoxyAPI. Off by default; set any value to enable, or "off" to force it off. Never shown in controlled mode. */
21
21
  attribution?: string;
22
+ /** Render the chart and the data and omit the written interpretation. Off by default. Use it when the page supplies its own words: the wheels, tables, grids, legends and numbers stay, and the interpretive prose is left out of the markup entirely. */
23
+ hideReadings?: boolean;
22
24
  }
23
25
  export declare const RoxyArudhaPadas: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
24
26
  data: {
@@ -48,6 +50,9 @@ export declare const RoxyArudhaPadas: import("vue").DefineComponent<import("vue"
48
50
  attribution: {
49
51
  type: PropType<RoxyArudhaPadasProps["attribution"]>;
50
52
  };
53
+ hideReadings: {
54
+ type: PropType<RoxyArudhaPadasProps["hideReadings"]>;
55
+ };
51
56
  }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
52
57
  [key: string]: any;
53
58
  }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -78,5 +83,8 @@ export declare const RoxyArudhaPadas: import("vue").DefineComponent<import("vue"
78
83
  attribution: {
79
84
  type: PropType<RoxyArudhaPadasProps["attribution"]>;
80
85
  };
86
+ hideReadings: {
87
+ type: PropType<RoxyArudhaPadasProps["hideReadings"]>;
88
+ };
81
89
  }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
82
90
  //# sourceMappingURL=arudha-padas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"arudha-padas.d.ts","sourceRoot":"","sources":["../../src/components/arudha-padas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,QAAQ,EAAO,MAAM,KAAK,CAAC;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACpC,oEAAoE;IACpE,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,mPAAmP;IACnP,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,6GAA6G;IAC7G,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+MAA+M;IAC/M,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uJAAuJ;IACvJ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+MAA+M;IAC/M,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,eAAe;;cAGF,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;;;cAClC,QAAQ,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;;;cAC5C,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;;;cAChC,QAAQ,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;;;cACvD,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;;;cACzC,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;;;cAC5C,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;;;cAC/B,QAAQ,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;;;cAC7C,QAAQ,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;;;;;;cARpD,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;;;cAClC,QAAQ,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;;;cAC5C,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;;;cAChC,QAAQ,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;;;cACvD,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;;;cACzC,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;;;cAC5C,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;;;cAC/B,QAAQ,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;;;cAC7C,QAAQ,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;;iGAkC5E,CAAC"}
1
+ {"version":3,"file":"arudha-padas.d.ts","sourceRoot":"","sources":["../../src/components/arudha-padas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,QAAQ,EAAO,MAAM,KAAK,CAAC;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACpC,oEAAoE;IACpE,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,mPAAmP;IACnP,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,6GAA6G;IAC7G,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+MAA+M;IAC/M,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uJAAuJ;IACvJ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+MAA+M;IAC/M,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0PAA0P;IAC1P,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,eAAe;;cAGF,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;;;cAClC,QAAQ,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;;;cAC5C,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;;;cAChC,QAAQ,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;;;cACvD,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;;;cACzC,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;;;cAC5C,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;;;cAC/B,QAAQ,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;;;cAC7C,QAAQ,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;;;cAC3C,QAAQ,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;;;;;;cATvD,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;;;cAClC,QAAQ,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;;;cAC5C,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;;;cAChC,QAAQ,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;;;cACvD,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;;;cACzC,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;;;cAC5C,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;;;cAC/B,QAAQ,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;;;cAC7C,QAAQ,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;;;cAC3C,QAAQ,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;;iGAmC/E,CAAC"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as f,h as s,onMounted as b,ref as m}from"vue";var l="0.22.0",i="roxyapi-ui-loader",p="https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn",y="https://cdn.jsdelivr.net/npm/@roxyapi/ui@",P="/dist/cdn",a=null;function c(e){return!e||e==="latest"?p:`${y}${e}${P}`}function o(e=l,r){return typeof document>"u"?Promise.resolve():a||(a=new Promise((t,d)=>{let u=`${r??c(e)}/roxy-ui.js`,n=document.getElementById(i);if(n){n.dataset.loaded==="true"?t():(n.addEventListener("load",()=>t()),n.addEventListener("error",()=>d(new Error("roxy-ui load failed"))));return}n=document.createElement("script"),n.id=i,n.src=u,n.async=!0,n.crossOrigin="anonymous",n.addEventListener("load",()=>{n.dataset.loaded="true",t()}),n.addEventListener("error",()=>d(new Error("roxy-ui load failed"))),document.head.appendChild(n)}),a)}var E=f({name:"RoxyArudhaPadas",props:{data:{type:Object},endpoint:{type:String},method:{type:String},publishableKey:{type:String},baseUrl:{type:String},specUrl:{type:String},lang:{type:String},submitLabel:{type:String},attribution:{type:String}},setup(e){let r=m(null);return b(()=>{o().catch(t=>{r.value=t instanceof Error?t:new Error(String(t))})}),()=>{if(r.value)return s("div",{role:"alert"},`Roxy UI script load failed: ${r.value.message}`);let t={};return e.data!==void 0&&(t[".data"]=e.data),e.endpoint!==void 0&&(t[".endpoint"]=e.endpoint),e.method!==void 0&&(t[".method"]=e.method),e.publishableKey!==void 0&&(t[".publishableKey"]=e.publishableKey),e.baseUrl!==void 0&&(t[".baseUrl"]=e.baseUrl),e.specUrl!==void 0&&(t[".specUrl"]=e.specUrl),e.lang!==void 0&&(t[".lang"]=e.lang),e.submitLabel!==void 0&&(t[".submitLabel"]=e.submitLabel),e.attribution!==void 0&&(t[".attribution"]=e.attribution),s("roxy-arudha-padas",t)}}});export{E as RoxyArudhaPadas};
1
+ import{defineComponent as h,h as s,onMounted as b,ref as c}from"vue";var l="0.24.0",i="roxyapi-ui-loader",p="https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn",y="https://cdn.jsdelivr.net/npm/@roxyapi/ui@",P="/dist/cdn",r=null;function f(e){return!e||e==="latest"?p:`${y}${e}${P}`}function o(e=l,a){return typeof document>"u"?Promise.resolve():r||(r=new Promise((t,d)=>{let u=`${a??f(e)}/roxy-ui.js`,n=document.getElementById(i);if(n){n.dataset.loaded==="true"?t():(n.addEventListener("load",()=>t()),n.addEventListener("error",()=>d(new Error("roxy-ui load failed"))));return}n=document.createElement("script"),n.id=i,n.src=u,n.async=!0,n.crossOrigin="anonymous",n.addEventListener("load",()=>{n.dataset.loaded="true",t()}),n.addEventListener("error",()=>d(new Error("roxy-ui load failed"))),document.head.appendChild(n)}),r)}var R=h({name:"RoxyArudhaPadas",props:{data:{type:Object},endpoint:{type:String},method:{type:String},publishableKey:{type:String},baseUrl:{type:String},specUrl:{type:String},lang:{type:String},submitLabel:{type:String},attribution:{type:String},hideReadings:{type:Boolean}},setup(e){let a=c(null);return b(()=>{o().catch(t=>{a.value=t instanceof Error?t:new Error(String(t))})}),()=>{if(a.value)return s("div",{role:"alert"},`Roxy UI script load failed: ${a.value.message}`);let t={};return e.data!==void 0&&(t[".data"]=e.data),e.endpoint!==void 0&&(t[".endpoint"]=e.endpoint),e.method!==void 0&&(t[".method"]=e.method),e.publishableKey!==void 0&&(t[".publishableKey"]=e.publishableKey),e.baseUrl!==void 0&&(t[".baseUrl"]=e.baseUrl),e.specUrl!==void 0&&(t[".specUrl"]=e.specUrl),e.lang!==void 0&&(t[".lang"]=e.lang),e.submitLabel!==void 0&&(t[".submitLabel"]=e.submitLabel),e.attribution!==void 0&&(t[".attribution"]=e.attribution),e.hideReadings!==void 0&&(t[".hideReadings"]=e.hideReadings),s("roxy-arudha-padas",t)}}});export{R as RoxyArudhaPadas};
2
2
  //# sourceMappingURL=arudha-padas.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/components/arudha-padas.ts", "../../src/load-ui.ts"],
4
- "sourcesContent": ["import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { ArudhaResponse } from '../types/index.js';\n\nexport interface RoxyArudhaPadasProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: ArudhaResponse;\n\t/** Endpoint path for built-in self-fetch (uncontrolled mode), e.g. \"astrology/natal-chart\". The component renders its own input form, fetches with the publishable key, and displays the result. Leave unset for controlled mode (pass `data`). */\n\tendpoint?: string;\n\t/** HTTP method for the self-fetch request. Defaults to POST. */\n\tmethod?: 'GET' | 'POST';\n\t/** Browser-safe publishable key (pk_) for self-fetch. A secret key is refused client-side and never sent. */\n\tpublishableKey?: string;\n\t/** Override the API origin for self-hosted or proxied deployments. */\n\tbaseUrl?: string;\n\t/** Override the OpenAPI spec URL the self-fetch form introspects. */\n\tspecUrl?: string;\n\t/** Response language for self-fetch, forwarded to the API `lang` query parameter (en, tr, de, es, hi, pt, fr, ru). The form never shows a language field; the site owner sets it here. Defaults to English. */\n\tlang?: string;\n\t/** Override the self-fetch form submit-button label. Empty derives an outcome-first label from the endpoint (Get reading, Generate, Compare, Cast). */\n\tsubmitLabel?: string;\n\t/** Render a small \"Spiritual data by RoxyAPI\" credit under a self-fetch result, linking back to RoxyAPI. Off by default; set any value to enable, or \"off\" to force it off. Never shown in controlled mode. */\n\tattribution?: string;\n}\n\nexport const RoxyArudhaPadas = defineComponent({\n\tname: 'RoxyArudhaPadas',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyArudhaPadasProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyArudhaPadasProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyArudhaPadasProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyArudhaPadasProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyArudhaPadasProps['baseUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyArudhaPadasProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyArudhaPadasProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyArudhaPadasProps['submitLabel']> },\n\t\tattribution: { type: String as PropType<RoxyArudhaPadasProps['attribution']> },\n\t},\n\tsetup(props) {\n\t\tconst loadError = ref<Error | null>(null);\n\n\t\tonMounted(() => {\n\t\t\tensureScriptLoaded().catch((err: unknown) => {\n\t\t\t\tloadError.value = err instanceof Error ? err : new Error(String(err));\n\t\t\t});\n\t\t});\n\n\t\treturn () => {\n\t\t\tif (loadError.value) {\n\t\t\t\treturn h(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ role: 'alert' },\n\t\t\t\t\t`Roxy UI script load failed: ${loadError.value.message}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst elementProps: Record<string, unknown> = {};\n\t\t\tif (props.data !== undefined) elementProps['.data'] = props.data;\n\t\t\tif (props.endpoint !== undefined) elementProps['.endpoint'] = props.endpoint;\n\t\t\tif (props.method !== undefined) elementProps['.method'] = props.method;\n\t\t\tif (props.publishableKey !== undefined) elementProps['.publishableKey'] = props.publishableKey;\n\t\t\tif (props.baseUrl !== undefined) elementProps['.baseUrl'] = props.baseUrl;\n\t\t\tif (props.specUrl !== undefined) elementProps['.specUrl'] = props.specUrl;\n\t\t\tif (props.lang !== undefined) elementProps['.lang'] = props.lang;\n\t\t\tif (props.submitLabel !== undefined) elementProps['.submitLabel'] = props.submitLabel;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\n\t\t\treturn h('roxy-arudha-padas', elementProps);\n\t\t};\n\t},\n});\n", "/**\n * Loads the matching component bundle on first mount. Idempotent across\n * many components on the same page. Skips on the server (no document) so\n * Nuxt and Vue server rendering work without a flash.\n *\n * Defaults to the EXACT @roxyapi/ui release this wrapper was built against, so\n * `@roxyapi/ui-vue@x.y.z` always runs `@roxyapi/ui@x.y.z` and a lockfile actually\n * pins the runtime. It used to default to '@latest', which meant a pinned wrapper\n * silently picked up whatever the CDN was serving, and a new @roxyapi/ui release\n * changed the elements under every existing install with no lockfile change.\n *\n * Pass an explicit `version` to override, or 'latest' to opt back into floating.\n *\n * Pass `baseUrl` to serve the bundle from your own origin instead of the CDN, which is\n * what an air-gapped install or a strict Content-Security-Policy needs: copy\n * `node_modules/@roxyapi/ui/dist/cdn/` onto your host and call this once at app entry,\n * before any component mounts. The loader keeps a single shared promise, so the first\n * call wins and every component reuses it.\n */\n/** The @roxyapi/ui release this wrapper was generated against. The loader defaults to it, so the wrapper version in your lockfile is the runtime you actually get. */\nexport const ROXY_UI_VERSION = \"0.22.0\";\n\nconst SCRIPT_ID = 'roxyapi-ui-loader';\nconst CDN_BASE_LATEST = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn\";\nconst CDN_BASE_PREFIX = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@\";\nconst CDN_BASE_SUFFIX = \"/dist/cdn\";\n\nlet loaded: Promise<void> | null = null;\n\nfunction buildBase(version: string): string {\n\tif (!version || version === 'latest') return CDN_BASE_LATEST;\n\treturn `${CDN_BASE_PREFIX}${version}${CDN_BASE_SUFFIX}`;\n}\n\nexport function ensureScriptLoaded(\n\tversion: string = ROXY_UI_VERSION,\n\tbaseUrl?: string,\n): Promise<void> {\n\tif (typeof document === 'undefined') return Promise.resolve();\n\tif (loaded) return loaded;\n\n\tloaded = new Promise<void>((resolve, reject) => {\n\t\tconst url = `${baseUrl ?? buildBase(version)}/roxy-ui.js`;\n\t\tlet existing = document.getElementById(SCRIPT_ID) as HTMLScriptElement | null;\n\t\tif (existing) {\n\t\t\tif (existing.dataset.loaded === 'true') {\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\texisting.addEventListener('load', () => resolve());\n\t\t\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\texisting = document.createElement('script');\n\t\texisting.id = SCRIPT_ID;\n\t\texisting.src = url;\n\t\texisting.async = true;\n\t\texisting.crossOrigin = 'anonymous';\n\t\texisting.addEventListener('load', () => {\n\t\t\texisting!.dataset.loaded = 'true';\n\t\t\tresolve();\n\t\t});\n\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\tdocument.head.appendChild(existing);\n\t});\n\treturn loaded;\n}\n\n// Default export retained for convenience; matches the named export.\nexport default ensureScriptLoaded;\n// Surfaces the embedded @roxyapi/ui version this build of @roxyapi/ui-vue\n// was generated against. Useful for diagnostics; not load-bearing.\n"],
5
- "mappings": "AAAA,OAAS,mBAAAA,EAAiB,KAAAC,EAAG,aAAAC,EAA0B,OAAAC,MAAW,MCoB3D,IAAMC,EAAkB,SAEzBC,EAAY,oBACZC,EAAkB,2DAClBC,EAAkB,4CAClBC,EAAkB,YAEpBC,EAA+B,KAEnC,SAASC,EAAUC,EAAyB,CAC3C,MAAI,CAACA,GAAWA,IAAY,SAAiBL,EACtC,GAAGC,CAAe,GAAGI,CAAO,GAAGH,CAAe,EACtD,CAEO,SAASI,EACfD,EAAkBP,EAClBS,EACgB,CAChB,OAAI,OAAO,SAAa,IAAoB,QAAQ,QAAQ,EACxDJ,IAEJA,EAAS,IAAI,QAAc,CAACK,EAASC,IAAW,CAC/C,IAAMC,EAAM,GAAGH,GAAWH,EAAUC,CAAO,CAAC,cACxCM,EAAW,SAAS,eAAeZ,CAAS,EAChD,GAAIY,EAAU,CACTA,EAAS,QAAQ,SAAW,OAC/BH,EAAQ,GAERG,EAAS,iBAAiB,OAAQ,IAAMH,EAAQ,CAAC,EACjDG,EAAS,iBAAiB,QAAS,IAAMF,EAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC,GAElF,MACD,CACAE,EAAW,SAAS,cAAc,QAAQ,EAC1CA,EAAS,GAAKZ,EACdY,EAAS,IAAMD,EACfC,EAAS,MAAQ,GACjBA,EAAS,YAAc,YACvBA,EAAS,iBAAiB,OAAQ,IAAM,CACvCA,EAAU,QAAQ,OAAS,OAC3BH,EAAQ,CACT,CAAC,EACDG,EAAS,iBAAiB,QAAS,IAAMF,EAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC,EACjF,SAAS,KAAK,YAAYE,CAAQ,CACnC,CAAC,EACMR,EACR,CDzCO,IAAMS,EAAkBC,EAAgB,CAC9C,KAAM,kBACN,MAAO,CACN,KAAM,CAAE,KAAM,MAAiD,EAC/D,SAAU,CAAE,KAAM,MAAqD,EACvE,OAAQ,CAAE,KAAM,MAAmD,EACnE,eAAgB,CAAE,KAAM,MAA2D,EACnF,QAAS,CAAE,KAAM,MAAoD,EACrE,QAAS,CAAE,KAAM,MAAoD,EACrE,KAAM,CAAE,KAAM,MAAiD,EAC/D,YAAa,CAAE,KAAM,MAAwD,EAC7E,YAAa,CAAE,KAAM,MAAwD,CAC9E,EACA,MAAMC,EAAO,CACZ,IAAMC,EAAYC,EAAkB,IAAI,EAExC,OAAAC,EAAU,IAAM,CACfC,EAAmB,EAAE,MAAOC,GAAiB,CAC5CJ,EAAU,MAAQI,aAAe,MAAQA,EAAM,IAAI,MAAM,OAAOA,CAAG,CAAC,CACrE,CAAC,CACF,CAAC,EAEM,IAAM,CACZ,GAAIJ,EAAU,MACb,OAAOK,EACN,MACA,CAAE,KAAM,OAAQ,EAChB,+BAA+BL,EAAU,MAAM,OAAO,EACvD,EAGD,IAAMM,EAAwC,CAAC,EAC/C,OAAIP,EAAM,OAAS,SAAWO,EAAa,OAAO,EAAIP,EAAM,MACxDA,EAAM,WAAa,SAAWO,EAAa,WAAW,EAAIP,EAAM,UAChEA,EAAM,SAAW,SAAWO,EAAa,SAAS,EAAIP,EAAM,QAC5DA,EAAM,iBAAmB,SAAWO,EAAa,iBAAiB,EAAIP,EAAM,gBAC5EA,EAAM,UAAY,SAAWO,EAAa,UAAU,EAAIP,EAAM,SAC9DA,EAAM,UAAY,SAAWO,EAAa,UAAU,EAAIP,EAAM,SAC9DA,EAAM,OAAS,SAAWO,EAAa,OAAO,EAAIP,EAAM,MACxDA,EAAM,cAAgB,SAAWO,EAAa,cAAc,EAAIP,EAAM,aACtEA,EAAM,cAAgB,SAAWO,EAAa,cAAc,EAAIP,EAAM,aAEnEM,EAAE,oBAAqBC,CAAY,CAC3C,CACD,CACD,CAAC",
4
+ "sourcesContent": ["import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { ArudhaResponse } from '../types/index.js';\n\nexport interface RoxyArudhaPadasProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: ArudhaResponse;\n\t/** Endpoint path for built-in self-fetch (uncontrolled mode), e.g. \"astrology/natal-chart\". The component renders its own input form, fetches with the publishable key, and displays the result. Leave unset for controlled mode (pass `data`). */\n\tendpoint?: string;\n\t/** HTTP method for the self-fetch request. Defaults to POST. */\n\tmethod?: 'GET' | 'POST';\n\t/** Browser-safe publishable key (pk_) for self-fetch. A secret key is refused client-side and never sent. */\n\tpublishableKey?: string;\n\t/** Override the API origin for self-hosted or proxied deployments. */\n\tbaseUrl?: string;\n\t/** Override the OpenAPI spec URL the self-fetch form introspects. */\n\tspecUrl?: string;\n\t/** Response language for self-fetch, forwarded to the API `lang` query parameter (en, tr, de, es, hi, pt, fr, ru). The form never shows a language field; the site owner sets it here. Defaults to English. */\n\tlang?: string;\n\t/** Override the self-fetch form submit-button label. Empty derives an outcome-first label from the endpoint (Get reading, Generate, Compare, Cast). */\n\tsubmitLabel?: string;\n\t/** Render a small \"Spiritual data by RoxyAPI\" credit under a self-fetch result, linking back to RoxyAPI. Off by default; set any value to enable, or \"off\" to force it off. Never shown in controlled mode. */\n\tattribution?: string;\n\t/** Render the chart and the data and omit the written interpretation. Off by default. Use it when the page supplies its own words: the wheels, tables, grids, legends and numbers stay, and the interpretive prose is left out of the markup entirely. */\n\thideReadings?: boolean;\n}\n\nexport const RoxyArudhaPadas = defineComponent({\n\tname: 'RoxyArudhaPadas',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyArudhaPadasProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyArudhaPadasProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyArudhaPadasProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyArudhaPadasProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyArudhaPadasProps['baseUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyArudhaPadasProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyArudhaPadasProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyArudhaPadasProps['submitLabel']> },\n\t\tattribution: { type: String as PropType<RoxyArudhaPadasProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyArudhaPadasProps['hideReadings']> },\n\t},\n\tsetup(props) {\n\t\tconst loadError = ref<Error | null>(null);\n\n\t\tonMounted(() => {\n\t\t\tensureScriptLoaded().catch((err: unknown) => {\n\t\t\t\tloadError.value = err instanceof Error ? err : new Error(String(err));\n\t\t\t});\n\t\t});\n\n\t\treturn () => {\n\t\t\tif (loadError.value) {\n\t\t\t\treturn h(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ role: 'alert' },\n\t\t\t\t\t`Roxy UI script load failed: ${loadError.value.message}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst elementProps: Record<string, unknown> = {};\n\t\t\tif (props.data !== undefined) elementProps['.data'] = props.data;\n\t\t\tif (props.endpoint !== undefined) elementProps['.endpoint'] = props.endpoint;\n\t\t\tif (props.method !== undefined) elementProps['.method'] = props.method;\n\t\t\tif (props.publishableKey !== undefined) elementProps['.publishableKey'] = props.publishableKey;\n\t\t\tif (props.baseUrl !== undefined) elementProps['.baseUrl'] = props.baseUrl;\n\t\t\tif (props.specUrl !== undefined) elementProps['.specUrl'] = props.specUrl;\n\t\t\tif (props.lang !== undefined) elementProps['.lang'] = props.lang;\n\t\t\tif (props.submitLabel !== undefined) elementProps['.submitLabel'] = props.submitLabel;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\n\t\t\treturn h('roxy-arudha-padas', elementProps);\n\t\t};\n\t},\n});\n", "/**\n * Loads the matching component bundle on first mount. Idempotent across\n * many components on the same page. Skips on the server (no document) so\n * Nuxt and Vue server rendering work without a flash.\n *\n * Defaults to the EXACT @roxyapi/ui release this wrapper was built against, so\n * `@roxyapi/ui-vue@x.y.z` always runs `@roxyapi/ui@x.y.z` and a lockfile actually\n * pins the runtime. It used to default to '@latest', which meant a pinned wrapper\n * silently picked up whatever the CDN was serving, and a new @roxyapi/ui release\n * changed the elements under every existing install with no lockfile change.\n *\n * Pass an explicit `version` to override, or 'latest' to opt back into floating.\n *\n * Pass `baseUrl` to serve the bundle from your own origin instead of the CDN, which is\n * what an air-gapped install or a strict Content-Security-Policy needs: copy\n * `node_modules/@roxyapi/ui/dist/cdn/` onto your host and call this once at app entry,\n * before any component mounts. The loader keeps a single shared promise, so the first\n * call wins and every component reuses it.\n */\n/** The @roxyapi/ui release this wrapper was generated against. The loader defaults to it, so the wrapper version in your lockfile is the runtime you actually get. */\nexport const ROXY_UI_VERSION = \"0.24.0\";\n\nconst SCRIPT_ID = 'roxyapi-ui-loader';\nconst CDN_BASE_LATEST = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn\";\nconst CDN_BASE_PREFIX = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@\";\nconst CDN_BASE_SUFFIX = \"/dist/cdn\";\n\nlet loaded: Promise<void> | null = null;\n\nfunction buildBase(version: string): string {\n\tif (!version || version === 'latest') return CDN_BASE_LATEST;\n\treturn `${CDN_BASE_PREFIX}${version}${CDN_BASE_SUFFIX}`;\n}\n\nexport function ensureScriptLoaded(\n\tversion: string = ROXY_UI_VERSION,\n\tbaseUrl?: string,\n): Promise<void> {\n\tif (typeof document === 'undefined') return Promise.resolve();\n\tif (loaded) return loaded;\n\n\tloaded = new Promise<void>((resolve, reject) => {\n\t\tconst url = `${baseUrl ?? buildBase(version)}/roxy-ui.js`;\n\t\tlet existing = document.getElementById(SCRIPT_ID) as HTMLScriptElement | null;\n\t\tif (existing) {\n\t\t\tif (existing.dataset.loaded === 'true') {\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\texisting.addEventListener('load', () => resolve());\n\t\t\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\texisting = document.createElement('script');\n\t\texisting.id = SCRIPT_ID;\n\t\texisting.src = url;\n\t\texisting.async = true;\n\t\texisting.crossOrigin = 'anonymous';\n\t\texisting.addEventListener('load', () => {\n\t\t\texisting!.dataset.loaded = 'true';\n\t\t\tresolve();\n\t\t});\n\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\tdocument.head.appendChild(existing);\n\t});\n\treturn loaded;\n}\n\n// Default export retained for convenience; matches the named export.\nexport default ensureScriptLoaded;\n// Surfaces the embedded @roxyapi/ui version this build of @roxyapi/ui-vue\n// was generated against. Useful for diagnostics; not load-bearing.\n"],
5
+ "mappings": "AAAA,OAAS,mBAAAA,EAAiB,KAAAC,EAAG,aAAAC,EAA0B,OAAAC,MAAW,MCoB3D,IAAMC,EAAkB,SAEzBC,EAAY,oBACZC,EAAkB,2DAClBC,EAAkB,4CAClBC,EAAkB,YAEpBC,EAA+B,KAEnC,SAASC,EAAUC,EAAyB,CAC3C,MAAI,CAACA,GAAWA,IAAY,SAAiBL,EACtC,GAAGC,CAAe,GAAGI,CAAO,GAAGH,CAAe,EACtD,CAEO,SAASI,EACfD,EAAkBP,EAClBS,EACgB,CAChB,OAAI,OAAO,SAAa,IAAoB,QAAQ,QAAQ,EACxDJ,IAEJA,EAAS,IAAI,QAAc,CAACK,EAASC,IAAW,CAC/C,IAAMC,EAAM,GAAGH,GAAWH,EAAUC,CAAO,CAAC,cACxCM,EAAW,SAAS,eAAeZ,CAAS,EAChD,GAAIY,EAAU,CACTA,EAAS,QAAQ,SAAW,OAC/BH,EAAQ,GAERG,EAAS,iBAAiB,OAAQ,IAAMH,EAAQ,CAAC,EACjDG,EAAS,iBAAiB,QAAS,IAAMF,EAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC,GAElF,MACD,CACAE,EAAW,SAAS,cAAc,QAAQ,EAC1CA,EAAS,GAAKZ,EACdY,EAAS,IAAMD,EACfC,EAAS,MAAQ,GACjBA,EAAS,YAAc,YACvBA,EAAS,iBAAiB,OAAQ,IAAM,CACvCA,EAAU,QAAQ,OAAS,OAC3BH,EAAQ,CACT,CAAC,EACDG,EAAS,iBAAiB,QAAS,IAAMF,EAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC,EACjF,SAAS,KAAK,YAAYE,CAAQ,CACnC,CAAC,EACMR,EACR,CDvCO,IAAMS,EAAkBC,EAAgB,CAC9C,KAAM,kBACN,MAAO,CACN,KAAM,CAAE,KAAM,MAAiD,EAC/D,SAAU,CAAE,KAAM,MAAqD,EACvE,OAAQ,CAAE,KAAM,MAAmD,EACnE,eAAgB,CAAE,KAAM,MAA2D,EACnF,QAAS,CAAE,KAAM,MAAoD,EACrE,QAAS,CAAE,KAAM,MAAoD,EACrE,KAAM,CAAE,KAAM,MAAiD,EAC/D,YAAa,CAAE,KAAM,MAAwD,EAC7E,YAAa,CAAE,KAAM,MAAwD,EAC7E,aAAc,CAAE,KAAM,OAA0D,CACjF,EACA,MAAMC,EAAO,CACZ,IAAMC,EAAYC,EAAkB,IAAI,EAExC,OAAAC,EAAU,IAAM,CACfC,EAAmB,EAAE,MAAOC,GAAiB,CAC5CJ,EAAU,MAAQI,aAAe,MAAQA,EAAM,IAAI,MAAM,OAAOA,CAAG,CAAC,CACrE,CAAC,CACF,CAAC,EAEM,IAAM,CACZ,GAAIJ,EAAU,MACb,OAAOK,EACN,MACA,CAAE,KAAM,OAAQ,EAChB,+BAA+BL,EAAU,MAAM,OAAO,EACvD,EAGD,IAAMM,EAAwC,CAAC,EAC/C,OAAIP,EAAM,OAAS,SAAWO,EAAa,OAAO,EAAIP,EAAM,MACxDA,EAAM,WAAa,SAAWO,EAAa,WAAW,EAAIP,EAAM,UAChEA,EAAM,SAAW,SAAWO,EAAa,SAAS,EAAIP,EAAM,QAC5DA,EAAM,iBAAmB,SAAWO,EAAa,iBAAiB,EAAIP,EAAM,gBAC5EA,EAAM,UAAY,SAAWO,EAAa,UAAU,EAAIP,EAAM,SAC9DA,EAAM,UAAY,SAAWO,EAAa,UAAU,EAAIP,EAAM,SAC9DA,EAAM,OAAS,SAAWO,EAAa,OAAO,EAAIP,EAAM,MACxDA,EAAM,cAAgB,SAAWO,EAAa,cAAc,EAAIP,EAAM,aACtEA,EAAM,cAAgB,SAAWO,EAAa,cAAc,EAAIP,EAAM,aACtEA,EAAM,eAAiB,SAAWO,EAAa,eAAe,EAAIP,EAAM,cAErEM,EAAE,oBAAqBC,CAAY,CAC3C,CACD,CACD,CAAC",
6
6
  "names": ["defineComponent", "h", "onMounted", "ref", "ROXY_UI_VERSION", "SCRIPT_ID", "CDN_BASE_LATEST", "CDN_BASE_PREFIX", "CDN_BASE_SUFFIX", "loaded", "buildBase", "version", "ensureScriptLoaded", "baseUrl", "resolve", "reject", "url", "existing", "RoxyArudhaPadas", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps"]
7
7
  }
@@ -19,6 +19,8 @@ export interface RoxyAshtakavargaGridProps {
19
19
  submitLabel?: string;
20
20
  /** Render a small "Spiritual data by RoxyAPI" credit under a self-fetch result, linking back to RoxyAPI. Off by default; set any value to enable, or "off" to force it off. Never shown in controlled mode. */
21
21
  attribution?: string;
22
+ /** Render the chart and the data and omit the written interpretation. Off by default. Use it when the page supplies its own words: the wheels, tables, grids, legends and numbers stay, and the interpretive prose is left out of the markup entirely. */
23
+ hideReadings?: boolean;
22
24
  }
23
25
  export declare const RoxyAshtakavargaGrid: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
24
26
  data: {
@@ -48,6 +50,9 @@ export declare const RoxyAshtakavargaGrid: import("vue").DefineComponent<import(
48
50
  attribution: {
49
51
  type: PropType<RoxyAshtakavargaGridProps["attribution"]>;
50
52
  };
53
+ hideReadings: {
54
+ type: PropType<RoxyAshtakavargaGridProps["hideReadings"]>;
55
+ };
51
56
  }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
52
57
  [key: string]: any;
53
58
  }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -78,5 +83,8 @@ export declare const RoxyAshtakavargaGrid: import("vue").DefineComponent<import(
78
83
  attribution: {
79
84
  type: PropType<RoxyAshtakavargaGridProps["attribution"]>;
80
85
  };
86
+ hideReadings: {
87
+ type: PropType<RoxyAshtakavargaGridProps["hideReadings"]>;
88
+ };
81
89
  }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
82
90
  //# sourceMappingURL=ashtakavarga-grid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ashtakavarga-grid.d.ts","sourceRoot":"","sources":["../../src/components/ashtakavarga-grid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,QAAQ,EAAO,MAAM,KAAK,CAAC;AAExE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,MAAM,WAAW,yBAAyB;IACzC,oEAAoE;IACpE,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,mPAAmP;IACnP,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,6GAA6G;IAC7G,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+MAA+M;IAC/M,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uJAAuJ;IACvJ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+MAA+M;IAC/M,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,oBAAoB;;cAGP,QAAQ,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;;;cACvC,QAAQ,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;;;cACjD,QAAQ,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;;;cACrC,QAAQ,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;;;cAC5D,QAAQ,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;;;cAC9C,QAAQ,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;;;cACjD,QAAQ,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;;;cACpC,QAAQ,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC;;;cAClD,QAAQ,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC;;;;;;cARzD,QAAQ,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;;;cACvC,QAAQ,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;;;cACjD,QAAQ,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;;;cACrC,QAAQ,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;;;cAC5D,QAAQ,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;;;cAC9C,QAAQ,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;;;cACjD,QAAQ,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;;;cACpC,QAAQ,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC;;;cAClD,QAAQ,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC;;iGAkCjF,CAAC"}
1
+ {"version":3,"file":"ashtakavarga-grid.d.ts","sourceRoot":"","sources":["../../src/components/ashtakavarga-grid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,QAAQ,EAAO,MAAM,KAAK,CAAC;AAExE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,MAAM,WAAW,yBAAyB;IACzC,oEAAoE;IACpE,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,mPAAmP;IACnP,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,6GAA6G;IAC7G,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+MAA+M;IAC/M,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uJAAuJ;IACvJ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+MAA+M;IAC/M,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0PAA0P;IAC1P,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,oBAAoB;;cAGP,QAAQ,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;;;cACvC,QAAQ,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;;;cACjD,QAAQ,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;;;cACrC,QAAQ,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;;;cAC5D,QAAQ,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;;;cAC9C,QAAQ,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;;;cACjD,QAAQ,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;;;cACpC,QAAQ,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC;;;cAClD,QAAQ,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC;;;cAChD,QAAQ,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC;;;;;;cAT5D,QAAQ,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;;;cACvC,QAAQ,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;;;cACjD,QAAQ,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;;;cACrC,QAAQ,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;;;cAC5D,QAAQ,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;;;cAC9C,QAAQ,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;;;cACjD,QAAQ,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;;;cACpC,QAAQ,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC;;;cAClD,QAAQ,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC;;;cAChD,QAAQ,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC;;iGAmCpF,CAAC"}