@roxyapi/ui-vue 0.37.0 → 0.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +4 -4
- package/README.md +4 -4
- package/dist/components/almanac-day.js +1 -1
- package/dist/components/almanac-day.js.map +1 -1
- package/dist/components/angel-number-card.js +1 -1
- package/dist/components/angel-number-card.js.map +1 -1
- package/dist/components/angel-number-lookup.js +1 -1
- package/dist/components/angel-number-lookup.js.map +1 -1
- package/dist/components/arudha-padas.js +1 -1
- package/dist/components/arudha-padas.js.map +1 -1
- package/dist/components/ashtakavarga-grid.js +1 -1
- package/dist/components/ashtakavarga-grid.js.map +1 -1
- package/dist/components/aspects-table.js +1 -1
- package/dist/components/aspects-table.js.map +1 -1
- package/dist/components/astrocartography-map.js +1 -1
- package/dist/components/astrocartography-map.js.map +1 -1
- package/dist/components/bazi-chart.js +1 -1
- package/dist/components/bazi-chart.js.map +1 -1
- package/dist/components/bhav-chalit-table.js +1 -1
- package/dist/components/bhav-chalit-table.js.map +1 -1
- package/dist/components/bhava-bala-table.js +1 -1
- package/dist/components/bhava-bala-table.js.map +1 -1
- package/dist/components/biorhythm-chart.js +1 -1
- package/dist/components/biorhythm-chart.js.map +1 -1
- package/dist/components/bodygraph.js +1 -1
- package/dist/components/bodygraph.js.map +1 -1
- package/dist/components/chara-karakas.js +1 -1
- package/dist/components/chara-karakas.js.map +1 -1
- package/dist/components/choghadiya-grid.js +1 -1
- package/dist/components/choghadiya-grid.js.map +1 -1
- package/dist/components/compatibility-card.js +1 -1
- package/dist/components/compatibility-card.js.map +1 -1
- package/dist/components/crystal-card.js +1 -1
- package/dist/components/crystal-card.js.map +1 -1
- package/dist/components/crystal-grid.js +1 -1
- package/dist/components/crystal-grid.js.map +1 -1
- package/dist/components/dasha-timeline.js +1 -1
- package/dist/components/dasha-timeline.js.map +1 -1
- package/dist/components/data.js +1 -1
- package/dist/components/data.js.map +1 -1
- package/dist/components/divisional-chart.js +1 -1
- package/dist/components/divisional-chart.js.map +1 -1
- package/dist/components/dosha-card.js +1 -1
- package/dist/components/dosha-card.js.map +1 -1
- package/dist/components/dosha-constitution.js +1 -1
- package/dist/components/dosha-constitution.js.map +1 -1
- package/dist/components/dream-card.js +1 -1
- package/dist/components/dream-card.js.map +1 -1
- package/dist/components/dream-search.js +1 -1
- package/dist/components/dream-search.js.map +1 -1
- package/dist/components/endpoint-form.js +1 -1
- package/dist/components/endpoint-form.js.map +1 -1
- package/dist/components/ephemeris-table.js +1 -1
- package/dist/components/ephemeris-table.js.map +1 -1
- package/dist/components/fixed-stars.js +1 -1
- package/dist/components/fixed-stars.js.map +1 -1
- package/dist/components/flying-star-chart.js +1 -1
- package/dist/components/flying-star-chart.js.map +1 -1
- package/dist/components/forecast-digest.js +1 -1
- package/dist/components/forecast-digest.js.map +1 -1
- package/dist/components/forecast-timeline.js +1 -1
- package/dist/components/forecast-timeline.js.map +1 -1
- package/dist/components/gematria.js +1 -1
- package/dist/components/gematria.js.map +1 -1
- package/dist/components/gochara-table.js +1 -1
- package/dist/components/gochara-table.js.map +1 -1
- package/dist/components/guna-milan.js +1 -1
- package/dist/components/guna-milan.js.map +1 -1
- package/dist/components/hd-connection.js +1 -1
- package/dist/components/hd-connection.js.map +1 -1
- package/dist/components/hd-penta.js +1 -1
- package/dist/components/hd-penta.js.map +1 -1
- package/dist/components/hd-type-card.js +1 -1
- package/dist/components/hd-type-card.js.map +1 -1
- package/dist/components/hd-variables.js +1 -1
- package/dist/components/hd-variables.js.map +1 -1
- package/dist/components/heliacal-table.js +1 -1
- package/dist/components/heliacal-table.js.map +1 -1
- package/dist/components/hexagram.js +1 -1
- package/dist/components/hexagram.js.map +1 -1
- package/dist/components/hora-table.js +1 -1
- package/dist/components/hora-table.js.map +1 -1
- package/dist/components/horoscope-card.js +1 -1
- package/dist/components/horoscope-card.js.map +1 -1
- package/dist/components/kp-chart.js +1 -1
- package/dist/components/kp-chart.js.map +1 -1
- package/dist/components/kp-planets-table.js +1 -1
- package/dist/components/kp-planets-table.js.map +1 -1
- package/dist/components/kp-ruling-planets.js +1 -1
- package/dist/components/kp-ruling-planets.js.map +1 -1
- package/dist/components/kua-card.js +1 -1
- package/dist/components/kua-card.js.map +1 -1
- package/dist/components/local-space-compass.js +1 -1
- package/dist/components/local-space-compass.js.map +1 -1
- package/dist/components/location-search.js +1 -1
- package/dist/components/location-search.js.map +1 -1
- package/dist/components/luck-pillars.js +1 -1
- package/dist/components/luck-pillars.js.map +1 -1
- package/dist/components/mayan-day-sign.js +1 -1
- package/dist/components/mayan-day-sign.js.map +1 -1
- package/dist/components/moon-phase.js +1 -1
- package/dist/components/moon-phase.js.map +1 -1
- package/dist/components/nakshatra-card.js +1 -1
- package/dist/components/nakshatra-card.js.map +1 -1
- package/dist/components/natal-chart.js +1 -1
- package/dist/components/natal-chart.js.map +1 -1
- package/dist/components/numerology-card.js +1 -1
- package/dist/components/numerology-card.js.map +1 -1
- package/dist/components/panchang-table.js +1 -1
- package/dist/components/panchang-table.js.map +1 -1
- package/dist/components/positions-table.js +1 -1
- package/dist/components/positions-table.js.map +1 -1
- package/dist/components/profection-card.js +1 -1
- package/dist/components/profection-card.js.map +1 -1
- package/dist/components/reference-card.js +1 -1
- package/dist/components/reference-card.js.map +1 -1
- package/dist/components/relocation-wheel.js +1 -1
- package/dist/components/relocation-wheel.js.map +1 -1
- package/dist/components/shadbala-table.js +1 -1
- package/dist/components/shadbala-table.js.map +1 -1
- package/dist/components/synastry-chart.js +1 -1
- package/dist/components/synastry-chart.js.map +1 -1
- package/dist/components/tarot-card.js +1 -1
- package/dist/components/tarot-card.js.map +1 -1
- package/dist/components/tarot-catalog.js +1 -1
- package/dist/components/tarot-catalog.js.map +1 -1
- package/dist/components/tarot-spread.js +1 -1
- package/dist/components/tarot-spread.js.map +1 -1
- package/dist/components/transit-wheel.js +1 -1
- package/dist/components/transit-wheel.js.map +1 -1
- package/dist/components/transits-table.js +1 -1
- package/dist/components/transits-table.js.map +1 -1
- package/dist/components/upagraha-table.js +1 -1
- package/dist/components/upagraha-table.js.map +1 -1
- package/dist/components/vastu-mandala.js +1 -1
- package/dist/components/vastu-mandala.js.map +1 -1
- package/dist/components/vedic-aspects.js +1 -1
- package/dist/components/vedic-aspects.js.map +1 -1
- package/dist/components/vedic-daily.js +1 -1
- package/dist/components/vedic-daily.js.map +1 -1
- package/dist/components/vedic-kundli.js +1 -1
- package/dist/components/vedic-kundli.js.map +1 -1
- package/dist/components/vedic-planets-table.js +1 -1
- package/dist/components/vedic-planets-table.js.map +1 -1
- package/dist/components/western-planets-table.js +1 -1
- package/dist/components/western-planets-table.js.map +1 -1
- package/dist/components/yoga-list.js +1 -1
- package/dist/components/yoga-list.js.map +1 -1
- package/dist/components/zodiac-card.js +1 -1
- package/dist/components/zodiac-card.js.map +1 -1
- package/dist/generated/tool-components.d.ts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +2 -2
- package/dist/load-ui.d.ts +1 -1
- package/dist/load-ui.js +1 -1
- package/dist/load-ui.js.map +1 -1
- package/dist/types/types.gen.d.ts +182 -62
- package/dist/types/types.gen.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/load-ui.ts", "../src/components/natal-chart.ts", "../src/components/synastry-chart.ts", "../src/components/western-planets-table.ts", "../src/components/transits-table.ts", "../src/components/transit-wheel.ts", "../src/components/aspects-table.ts", "../src/components/moon-phase.ts", "../src/components/horoscope-card.ts", "../src/components/astrocartography-map.ts", "../src/components/local-space-compass.ts", "../src/components/relocation-wheel.ts", "../src/components/positions-table.ts", "../src/components/ephemeris-table.ts", "../src/components/fixed-stars.ts", "../src/components/profection-card.ts", "../src/components/compatibility-card.ts", "../src/components/vedic-kundli.ts", "../src/components/divisional-chart.ts", "../src/components/kp-chart.ts", "../src/components/vedic-planets-table.ts", "../src/components/kp-planets-table.ts", "../src/components/kp-ruling-planets.ts", "../src/components/ashtakavarga-grid.ts", "../src/components/shadbala-table.ts", "../src/components/dasha-timeline.ts", "../src/components/guna-milan.ts", "../src/components/panchang-table.ts", "../src/components/vedic-aspects.ts", "../src/components/hora-table.ts", "../src/components/choghadiya-grid.ts", "../src/components/heliacal-table.ts", "../src/components/vedic-daily.ts", "../src/components/gochara-table.ts", "../src/components/bhava-bala-table.ts", "../src/components/bhav-chalit-table.ts", "../src/components/upagraha-table.ts", "../src/components/chara-karakas.ts", "../src/components/arudha-padas.ts", "../src/components/yoga-list.ts", "../src/components/nakshatra-card.ts", "../src/components/dosha-card.ts", "../src/components/numerology-card.ts", "../src/components/gematria.ts", "../src/components/tarot-card.ts", "../src/components/tarot-catalog.ts", "../src/components/tarot-spread.ts", "../src/components/bodygraph.ts", "../src/components/hd-type-card.ts", "../src/components/hd-connection.ts", "../src/components/hd-penta.ts", "../src/components/hd-variables.ts", "../src/components/forecast-timeline.ts", "../src/components/forecast-digest.ts", "../src/components/bazi-chart.ts", "../src/components/luck-pillars.ts", "../src/components/zodiac-card.ts", "../src/components/almanac-day.ts", "../src/components/flying-star-chart.ts", "../src/components/kua-card.ts", "../src/components/mayan-day-sign.ts", "../src/components/vastu-mandala.ts", "../src/components/biorhythm-chart.ts", "../src/components/dosha-constitution.ts", "../src/components/hexagram.ts", "../src/components/crystal-card.ts", "../src/components/crystal-grid.ts", "../src/components/dream-card.ts", "../src/components/dream-search.ts", "../src/components/angel-number-card.ts", "../src/components/angel-number-lookup.ts", "../src/components/reference-card.ts", "../src/components/endpoint-form.ts", "../src/components/location-search.ts", "../src/components/data.ts", "../src/utils/compact.ts", "../src/generated/tool-components.ts", "../src/utils/tool-component.ts"],
|
|
4
|
-
"sourcesContent": ["/**\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 * {@link ensureLocaleLoaded} is the other half and is OPT-IN: it loads the label\n * catalogue for one language from the same release, so a non-English app calls\n * both. There is one catalogue, shipped by `@roxyapi/ui` and read by every\n * wrapper, so nothing is restated here.\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.37.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/** Every language a label catalogue ships for. English is absent on purpose: the catalogue key IS the English string, so an English page downloads nothing. */\nexport const ROXY_UI_LOCALES = [\"de\",\"es\",\"fr\",\"hi\",\"pt\",\"ru\",\"tr\",\"zh-Hans\",\"zh-Hant\"] as const;\n\nconst localesLoaded = new Map<string, Promise<void>>();\n\n/**\n * Load the label catalogue for one language, so the components write their own\n * headings, buttons, empty states and form labels in it.\n *\n * Call it once at app entry, beside `ensureScriptLoaded`. The components read the\n * language from the page (their own `lang` attribute, the nearest ancestor\n * carrying one, or `<html lang>`), so this call supplies the WORDS and the page\n * supplies the CHOICE. Loading a catalogue a page never asks for is harmless.\n *\n * `es-AR`, `es-MX` and `es-419` all resolve to the `es` catalogue, so pass the\n * page tag as it stands. English resolves to nothing at all and is not an error:\n * the catalogue is keyed by the English text, so an English page needs no payload.\n * A language outside `ROXY_UI_LOCALES` resolves the same way rather than appending\n * a script tag that 404s.\n *\n * `version` and `baseUrl` behave exactly as they do for {@link ensureScriptLoaded},\n * and passing the same `baseUrl` to both is what an air-gapped or strict-CSP host\n * needs: copy `node_modules/@roxyapi/ui/dist/cdn/` onto your own origin, which\n * carries `locales/` beside `roxy-ui.js`.\n *\n * @example\n * ```ts\n * import { ensureScriptLoaded, ensureLocaleLoaded } from '@roxyapi/ui-vue';\n *\n * ensureScriptLoaded();\n * ensureLocaleLoaded(document.documentElement.lang);\n * ```\n */\nexport function ensureLocaleLoaded(\n\tlang: string,\n\tversion: string = ROXY_UI_VERSION,\n\tbaseUrl?: string,\n): Promise<void> {\n\tif (typeof document === 'undefined') return Promise.resolve();\n\tconst base = (lang || '').toLowerCase().split('-')[0] ?? '';\n\tif (!(ROXY_UI_LOCALES as readonly string[]).includes(base)) {\n\t\treturn Promise.resolve();\n\t}\n\tconst existing = localesLoaded.get(base);\n\tif (existing) return existing;\n\n\tconst pending = new Promise<void>((resolve, reject) => {\n\t\tconst id = `${SCRIPT_ID}-locale-${base}`;\n\t\tlet el = document.getElementById(id) as HTMLScriptElement | null;\n\t\tif (el) {\n\t\t\tif (el.dataset.loaded === 'true') resolve();\n\t\t\telse {\n\t\t\t\tel.addEventListener('load', () => resolve());\n\t\t\t\tel.addEventListener('error', () => reject(new Error(`roxy-ui locale ${base} load failed`)));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tel = document.createElement('script');\n\t\tel.id = id;\n\t\tel.src = `${baseUrl ?? buildBase(version)}/locales/${base}.js`;\n\t\tel.async = true;\n\t\tel.crossOrigin = 'anonymous';\n\t\tel.addEventListener('load', () => {\n\t\t\tel!.dataset.loaded = 'true';\n\t\t\tresolve();\n\t\t});\n\t\tel.addEventListener('error', () => reject(new Error(`roxy-ui locale ${base} load failed`)));\n\t\tdocument.head.appendChild(el);\n\t});\n\tlocalesLoaded.set(base, pending);\n\treturn pending;\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", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { NatalChartResponse } from '../types/index.js';\n\nexport interface RoxyNatalChartProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: NatalChartResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyNatalChart = defineComponent({\n\tname: 'RoxyNatalChart',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyNatalChartProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyNatalChartProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyNatalChartProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyNatalChartProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyNatalChartProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyNatalChartProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyNatalChartProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyNatalChartProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyNatalChartProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyNatalChartProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyNatalChartProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyNatalChartProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyNatalChartProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyNatalChartProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyNatalChartProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-natal-chart', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateSynastryResponse, NatalChartResponse } from '../types/index.js';\n\nexport interface RoxySynastryChartProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateSynastryResponse & { person1?: { planets?: NatalChartResponse['planets'] }; person2?: { planets?: NatalChartResponse['planets'] } };\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxySynastryChart = defineComponent({\n\tname: 'RoxySynastryChart',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxySynastryChartProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxySynastryChartProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxySynastryChartProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxySynastryChartProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxySynastryChartProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxySynastryChartProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxySynastryChartProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxySynastryChartProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxySynastryChartProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxySynastryChartProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxySynastryChartProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxySynastryChartProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxySynastryChartProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxySynastryChartProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxySynastryChartProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-synastry-chart', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { NatalChartResponse } from '../types/index.js';\n\nexport interface RoxyWesternPlanetsTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: NatalChartResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyWesternPlanetsTable = defineComponent({\n\tname: 'RoxyWesternPlanetsTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyWesternPlanetsTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyWesternPlanetsTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyWesternPlanetsTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyWesternPlanetsTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyWesternPlanetsTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyWesternPlanetsTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyWesternPlanetsTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyWesternPlanetsTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyWesternPlanetsTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyWesternPlanetsTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyWesternPlanetsTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyWesternPlanetsTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyWesternPlanetsTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyWesternPlanetsTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyWesternPlanetsTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-western-planets-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { TransitsResponse } from '../types/index.js';\n\nexport interface RoxyTransitsTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: TransitsResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyTransitsTable = defineComponent({\n\tname: 'RoxyTransitsTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyTransitsTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyTransitsTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyTransitsTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyTransitsTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyTransitsTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyTransitsTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyTransitsTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyTransitsTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyTransitsTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyTransitsTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyTransitsTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyTransitsTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyTransitsTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyTransitsTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyTransitsTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-transits-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateTransitAspectsResponse } from '../types/index.js';\n\nexport interface RoxyTransitWheelProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateTransitAspectsResponse;\n\t/** Heading above the bi-wheel. Defaults to \"Transits\". */\n\theading?: string;\n\t/** Natal Ascendant as an ecliptic longitude in degrees (0-360), supplied by the page from a chart endpoint that returns one. Rotates the wheel so that longitude falls on the left horizon and draws the ASC/DSC axis. Leave it unset and the wheel keeps a fixed zodiacal orientation with 0 degrees Aries on the left. */\n\tascendant?: number;\n\t/** The twelve natal house cusps, supplied by the page: the /astrology/natal-chart `houses` array verbatim, or twelve bare cusp longitudes in house order. The transit-aspects response numbers every body by house but returns no cusp longitudes, so this is the only way the wheel can draw the sectors those numbers refer to. Supplying it draws the twelve cusps and their numbers, and rotates the first cusp onto the left horizon unless an ascendant is also given. Anything that does not resolve to houses 1 to 12 with finite longitudes is ignored rather than half drawn. */\n\thouses?: Array<{ number: number; longitude: number }> | number[];\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyTransitWheel = defineComponent({\n\tname: 'RoxyTransitWheel',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyTransitWheelProps['data']> },\n\t\theading: { type: String as PropType<RoxyTransitWheelProps['heading']> },\n\t\tascendant: { type: Number as PropType<RoxyTransitWheelProps['ascendant']> },\n\t\thouses: { type: Array as PropType<RoxyTransitWheelProps['houses']> },\n\t\tendpoint: { type: String as PropType<RoxyTransitWheelProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyTransitWheelProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyTransitWheelProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyTransitWheelProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyTransitWheelProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyTransitWheelProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyTransitWheelProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyTransitWheelProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyTransitWheelProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyTransitWheelProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyTransitWheelProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyTransitWheelProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyTransitWheelProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyTransitWheelProps['hideSections']> },\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.heading !== undefined) elementProps['.heading'] = props.heading;\n\t\t\tif (props.ascendant !== undefined) elementProps['.ascendant'] = props.ascendant;\n\t\t\tif (props.houses !== undefined) elementProps['.houses'] = props.houses;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-transit-wheel', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateAspectsResponse, CalculateTransitAspectsResponse, DetectAspectPatternsResponse } from '../types/index.js';\n\nexport interface RoxyAspectsTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateAspectsResponse | CalculateTransitAspectsResponse | DetectAspectPatternsResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyAspectsTable = defineComponent({\n\tname: 'RoxyAspectsTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyAspectsTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyAspectsTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyAspectsTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyAspectsTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyAspectsTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyAspectsTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyAspectsTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyAspectsTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyAspectsTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyAspectsTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyAspectsTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyAspectsTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyAspectsTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyAspectsTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyAspectsTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-aspects-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetCurrentMoonPhaseResponse, GetMoonCalendarResponse, GetUpcomingMoonPhasesResponse } from '../types/index.js';\n\nexport interface RoxyMoonPhaseProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetCurrentMoonPhaseResponse | GetUpcomingMoonPhasesResponse | GetMoonCalendarResponse;\n\t/** Which moon-phase response shape to render: a single current phase, an upcoming list, or a calendar. */\n\tmode?: 'current' | 'upcoming' | 'calendar';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyMoonPhase = defineComponent({\n\tname: 'RoxyMoonPhase',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyMoonPhaseProps['data']> },\n\t\tmode: { type: String as PropType<RoxyMoonPhaseProps['mode']> },\n\t\tendpoint: { type: String as PropType<RoxyMoonPhaseProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyMoonPhaseProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyMoonPhaseProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyMoonPhaseProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyMoonPhaseProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyMoonPhaseProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyMoonPhaseProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyMoonPhaseProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyMoonPhaseProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyMoonPhaseProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyMoonPhaseProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyMoonPhaseProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyMoonPhaseProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyMoonPhaseProps['hideSections']> },\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.mode !== undefined) elementProps['.mode'] = props.mode;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-moon-phase', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetDailyHoroscopeResponse, GetMonthlyHoroscopeResponse, GetWeeklyHoroscopeResponse, GetYearlyHoroscopeResponse } from '../types/index.js';\n\nexport interface RoxyHoroscopeCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetDailyHoroscopeResponse | GetWeeklyHoroscopeResponse | GetMonthlyHoroscopeResponse | GetYearlyHoroscopeResponse;\n\t/** Which horoscope cadence the response is for. Selects the heading and date framing. */\n\tperiod?: 'daily' | 'weekly' | 'monthly' | 'yearly';\n\t/** Which shape the written reading takes. The endpoint returns the same reading twice, once whole as the column and once split into six topic sections, so exactly one is rendered. Defaults to auto, which prefers the column and falls back to the sections for a response that carries none. */\n\tlayout?: 'auto' | 'column' | 'sections';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyHoroscopeCard = defineComponent({\n\tname: 'RoxyHoroscopeCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyHoroscopeCardProps['data']> },\n\t\tperiod: { type: String as PropType<RoxyHoroscopeCardProps['period']> },\n\t\tlayout: { type: String as PropType<RoxyHoroscopeCardProps['layout']> },\n\t\tendpoint: { type: String as PropType<RoxyHoroscopeCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyHoroscopeCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyHoroscopeCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyHoroscopeCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyHoroscopeCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyHoroscopeCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyHoroscopeCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyHoroscopeCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyHoroscopeCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyHoroscopeCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyHoroscopeCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyHoroscopeCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyHoroscopeCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyHoroscopeCardProps['hideSections']> },\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.period !== undefined) elementProps['.period'] = props.period;\n\t\t\tif (props.layout !== undefined) elementProps['.layout'] = props.layout;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-horoscope-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { AstrocartographyResponse } from '../types/index.js';\n\nexport interface RoxyAstrocartographyMapProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: AstrocartographyResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyAstrocartographyMap = defineComponent({\n\tname: 'RoxyAstrocartographyMap',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyAstrocartographyMapProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyAstrocartographyMapProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyAstrocartographyMapProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyAstrocartographyMapProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyAstrocartographyMapProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyAstrocartographyMapProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyAstrocartographyMapProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyAstrocartographyMapProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyAstrocartographyMapProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyAstrocartographyMapProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyAstrocartographyMapProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyAstrocartographyMapProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyAstrocartographyMapProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyAstrocartographyMapProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyAstrocartographyMapProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-astrocartography-map', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { LocalSpaceResponse } from '../types/index.js';\n\nexport interface RoxyLocalSpaceCompassProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: LocalSpaceResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyLocalSpaceCompass = defineComponent({\n\tname: 'RoxyLocalSpaceCompass',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyLocalSpaceCompassProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyLocalSpaceCompassProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyLocalSpaceCompassProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyLocalSpaceCompassProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyLocalSpaceCompassProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyLocalSpaceCompassProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyLocalSpaceCompassProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyLocalSpaceCompassProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyLocalSpaceCompassProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyLocalSpaceCompassProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyLocalSpaceCompassProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyLocalSpaceCompassProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyLocalSpaceCompassProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyLocalSpaceCompassProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyLocalSpaceCompassProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-local-space-compass', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { RelocationChartResponse } from '../types/index.js';\n\nexport interface RoxyRelocationWheelProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: RelocationChartResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyRelocationWheel = defineComponent({\n\tname: 'RoxyRelocationWheel',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyRelocationWheelProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyRelocationWheelProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyRelocationWheelProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyRelocationWheelProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyRelocationWheelProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyRelocationWheelProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyRelocationWheelProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyRelocationWheelProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyRelocationWheelProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyRelocationWheelProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyRelocationWheelProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyRelocationWheelProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyRelocationWheelProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyRelocationWheelProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyRelocationWheelProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-relocation-wheel', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { ArabicLotsResponse, AsteroidsResponse, LilithResponse, ProgressionsResponse, SolarArcResponse } from '../types/index.js';\n\nexport interface RoxyPositionsTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: AsteroidsResponse | LilithResponse | ProgressionsResponse | SolarArcResponse | ArabicLotsResponse;\n\t/** Override the auto-derived heading. Empty by default, in which case it is derived from the response shape (Asteroids, Black Moon Lilith, Secondary progressions, Solar arc directions, or Arabic lots). */\n\theading?: string;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyPositionsTable = defineComponent({\n\tname: 'RoxyPositionsTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyPositionsTableProps['data']> },\n\t\theading: { type: String as PropType<RoxyPositionsTableProps['heading']> },\n\t\tendpoint: { type: String as PropType<RoxyPositionsTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyPositionsTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyPositionsTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyPositionsTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyPositionsTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyPositionsTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyPositionsTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyPositionsTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyPositionsTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyPositionsTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyPositionsTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyPositionsTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyPositionsTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyPositionsTableProps['hideSections']> },\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.heading !== undefined) elementProps['.heading'] = props.heading;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-positions-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetMonthlyEphemerisResponse, GetMonthlyTropicalEphemerisResponse } from '../types/index.js';\n\nexport interface RoxyEphemerisTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetMonthlyTropicalEphemerisResponse | GetMonthlyEphemerisResponse;\n\t/** Card heading above the month. Defaults to \"Ephemeris\", translated into the page language like every other label the component writes. */\n\theading?: string;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyEphemerisTable = defineComponent({\n\tname: 'RoxyEphemerisTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyEphemerisTableProps['data']> },\n\t\theading: { type: String as PropType<RoxyEphemerisTableProps['heading']> },\n\t\tendpoint: { type: String as PropType<RoxyEphemerisTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyEphemerisTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyEphemerisTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyEphemerisTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyEphemerisTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyEphemerisTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyEphemerisTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyEphemerisTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyEphemerisTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyEphemerisTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyEphemerisTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyEphemerisTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyEphemerisTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyEphemerisTableProps['hideSections']> },\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.heading !== undefined) elementProps['.heading'] = props.heading;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-ephemeris-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { FixedStarsResponse } from '../types/index.js';\n\nexport interface RoxyFixedStarsProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: FixedStarsResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyFixedStars = defineComponent({\n\tname: 'RoxyFixedStars',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyFixedStarsProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyFixedStarsProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyFixedStarsProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyFixedStarsProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyFixedStarsProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyFixedStarsProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyFixedStarsProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyFixedStarsProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyFixedStarsProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyFixedStarsProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyFixedStarsProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyFixedStarsProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyFixedStarsProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyFixedStarsProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyFixedStarsProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-fixed-stars', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { ProfectionsResponse } from '../types/index.js';\n\nexport interface RoxyProfectionCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: ProfectionsResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyProfectionCard = defineComponent({\n\tname: 'RoxyProfectionCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyProfectionCardProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyProfectionCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyProfectionCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyProfectionCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyProfectionCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyProfectionCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyProfectionCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyProfectionCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyProfectionCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyProfectionCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyProfectionCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyProfectionCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyProfectionCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyProfectionCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyProfectionCardProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-profection-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateBioCompatibilityResponse, CalculateCompatibilityResponse, CalculateNumCompatibilityResponse } from '../types/index.js';\n\nexport interface RoxyCompatibilityCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateCompatibilityResponse | CalculateNumCompatibilityResponse | CalculateBioCompatibilityResponse;\n\t/** Which compatibility domain the response is from. Themes the card and labels the category breakdown. */\n\tmode?: 'astrology' | 'numerology' | 'biorhythm';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyCompatibilityCard = defineComponent({\n\tname: 'RoxyCompatibilityCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyCompatibilityCardProps['data']> },\n\t\tmode: { type: String as PropType<RoxyCompatibilityCardProps['mode']> },\n\t\tendpoint: { type: String as PropType<RoxyCompatibilityCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyCompatibilityCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyCompatibilityCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyCompatibilityCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyCompatibilityCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyCompatibilityCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyCompatibilityCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyCompatibilityCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyCompatibilityCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyCompatibilityCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyCompatibilityCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyCompatibilityCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyCompatibilityCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyCompatibilityCardProps['hideSections']> },\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.mode !== undefined) elementProps['.mode'] = props.mode;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-compatibility-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { BirthChartResponse } from '../types/index.js';\n\nexport interface RoxyVedicKundliProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: BirthChartResponse;\n\t/** Initial regional kundli layout. The end user can switch styles at runtime via the visible tablist. */\n\tchartStyle?: 'south' | 'north' | 'east';\n\t/** Ascendant reference point. \"lagna\" (default) uses the Janma Lagna; \"moon\" renders the Chandra Lagna (Moon as house 1) from the same response. */\n\tchartReference?: 'lagna' | 'moon';\n\t/** Explicit rashi/sign name to pin as the ascendant, overriding both the Janma Lagna and chartReference. Empty by default. Use for Surya Lagna, Arudha Lagna, or any custom reference chart. */\n\tlagnaOverride?: string;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyVedicKundli = defineComponent({\n\tname: 'RoxyVedicKundli',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyVedicKundliProps['data']> },\n\t\tchartStyle: { type: String as PropType<RoxyVedicKundliProps['chartStyle']> },\n\t\tchartReference: { type: String as PropType<RoxyVedicKundliProps['chartReference']> },\n\t\tlagnaOverride: { type: String as PropType<RoxyVedicKundliProps['lagnaOverride']> },\n\t\tendpoint: { type: String as PropType<RoxyVedicKundliProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyVedicKundliProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyVedicKundliProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyVedicKundliProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyVedicKundliProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyVedicKundliProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyVedicKundliProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyVedicKundliProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyVedicKundliProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyVedicKundliProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyVedicKundliProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyVedicKundliProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyVedicKundliProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyVedicKundliProps['hideSections']> },\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.chartStyle !== undefined) elementProps['.chartStyle'] = props.chartStyle;\n\t\t\tif (props.chartReference !== undefined) elementProps['.chartReference'] = props.chartReference;\n\t\t\tif (props.lagnaOverride !== undefined) elementProps['.lagnaOverride'] = props.lagnaOverride;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-vedic-kundli', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { DivisionalChartResponse } from '../types/index.js';\n\nexport interface RoxyDivisionalChartProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: DivisionalChartResponse;\n\t/** Initial regional varga layout. The end user can switch styles at runtime via the visible tablist. */\n\tchartStyle?: 'south' | 'north' | 'east';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyDivisionalChart = defineComponent({\n\tname: 'RoxyDivisionalChart',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyDivisionalChartProps['data']> },\n\t\tchartStyle: { type: String as PropType<RoxyDivisionalChartProps['chartStyle']> },\n\t\tendpoint: { type: String as PropType<RoxyDivisionalChartProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyDivisionalChartProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyDivisionalChartProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyDivisionalChartProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyDivisionalChartProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyDivisionalChartProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyDivisionalChartProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyDivisionalChartProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyDivisionalChartProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyDivisionalChartProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyDivisionalChartProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyDivisionalChartProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyDivisionalChartProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyDivisionalChartProps['hideSections']> },\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.chartStyle !== undefined) elementProps['.chartStyle'] = props.chartStyle;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-divisional-chart', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { KpChartResponse } from '../types/index.js';\n\nexport interface RoxyKpChartProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: KpChartResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyKpChart = defineComponent({\n\tname: 'RoxyKpChart',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyKpChartProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyKpChartProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyKpChartProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyKpChartProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyKpChartProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyKpChartProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyKpChartProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyKpChartProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyKpChartProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyKpChartProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyKpChartProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyKpChartProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyKpChartProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyKpChartProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyKpChartProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-kp-chart', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { BirthChartResponse } from '../types/index.js';\n\nexport interface RoxyVedicPlanetsTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: BirthChartResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyVedicPlanetsTable = defineComponent({\n\tname: 'RoxyVedicPlanetsTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyVedicPlanetsTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyVedicPlanetsTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyVedicPlanetsTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyVedicPlanetsTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyVedicPlanetsTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyVedicPlanetsTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyVedicPlanetsTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyVedicPlanetsTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyVedicPlanetsTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyVedicPlanetsTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyVedicPlanetsTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyVedicPlanetsTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyVedicPlanetsTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyVedicPlanetsTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyVedicPlanetsTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-vedic-planets-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { KpPlanetsResponse } from '../types/index.js';\n\nexport interface RoxyKpPlanetsTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: KpPlanetsResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyKpPlanetsTable = defineComponent({\n\tname: 'RoxyKpPlanetsTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyKpPlanetsTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyKpPlanetsTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyKpPlanetsTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyKpPlanetsTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyKpPlanetsTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyKpPlanetsTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyKpPlanetsTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyKpPlanetsTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyKpPlanetsTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyKpPlanetsTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyKpPlanetsTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyKpPlanetsTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyKpPlanetsTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyKpPlanetsTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyKpPlanetsTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-kp-planets-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { KpRulingPlanetsResponse } from '../types/index.js';\n\nexport interface RoxyKpRulingPlanetsProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: KpRulingPlanetsResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyKpRulingPlanets = defineComponent({\n\tname: 'RoxyKpRulingPlanets',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyKpRulingPlanetsProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyKpRulingPlanetsProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyKpRulingPlanetsProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyKpRulingPlanetsProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyKpRulingPlanetsProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyKpRulingPlanetsProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyKpRulingPlanetsProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyKpRulingPlanetsProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyKpRulingPlanetsProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyKpRulingPlanetsProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyKpRulingPlanetsProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyKpRulingPlanetsProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyKpRulingPlanetsProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyKpRulingPlanetsProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyKpRulingPlanetsProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-kp-ruling-planets', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { AshtakavargaResponse } from '../types/index.js';\n\nexport interface RoxyAshtakavargaGridProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: AshtakavargaResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyAshtakavargaGrid = defineComponent({\n\tname: 'RoxyAshtakavargaGrid',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyAshtakavargaGridProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyAshtakavargaGridProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyAshtakavargaGridProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyAshtakavargaGridProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyAshtakavargaGridProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyAshtakavargaGridProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyAshtakavargaGridProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyAshtakavargaGridProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyAshtakavargaGridProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyAshtakavargaGridProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyAshtakavargaGridProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyAshtakavargaGridProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyAshtakavargaGridProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyAshtakavargaGridProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyAshtakavargaGridProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-ashtakavarga-grid', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { ShadbalaResponse } from '../types/index.js';\n\nexport interface RoxyShadbalaTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: ShadbalaResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyShadbalaTable = defineComponent({\n\tname: 'RoxyShadbalaTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyShadbalaTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyShadbalaTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyShadbalaTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyShadbalaTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyShadbalaTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyShadbalaTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyShadbalaTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyShadbalaTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyShadbalaTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyShadbalaTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyShadbalaTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyShadbalaTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyShadbalaTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyShadbalaTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyShadbalaTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-shadbala-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetCurrentDashaResponse, GetMajorDashasResponse, GetPranaDashasResponse, GetPratyantardashasResponse, GetSookshmaDashasResponse, GetSubDashasResponse } from '../types/index.js';\n\nexport interface RoxyDashaTimelineProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetCurrentDashaResponse | GetMajorDashasResponse | GetSubDashasResponse | GetPratyantardashasResponse | GetSookshmaDashasResponse | GetPranaDashasResponse;\n\t/** Which dasha response shape to render: the running periods, the major mahadashas, or one of the four drill-down levels (antardashas, pratyantardashas, sookshma dashas, prana dashas). */\n\tperiod?: 'current' | 'major' | 'sub' | 'antara' | 'sookshma' | 'prana';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyDashaTimeline = defineComponent({\n\tname: 'RoxyDashaTimeline',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyDashaTimelineProps['data']> },\n\t\tperiod: { type: String as PropType<RoxyDashaTimelineProps['period']> },\n\t\tendpoint: { type: String as PropType<RoxyDashaTimelineProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyDashaTimelineProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyDashaTimelineProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyDashaTimelineProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyDashaTimelineProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyDashaTimelineProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyDashaTimelineProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyDashaTimelineProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyDashaTimelineProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyDashaTimelineProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyDashaTimelineProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyDashaTimelineProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyDashaTimelineProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyDashaTimelineProps['hideSections']> },\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.period !== undefined) elementProps['.period'] = props.period;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-dasha-timeline', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CompatibilityResponse } from '../types/index.js';\n\nexport interface RoxyGunaMilanProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CompatibilityResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyGunaMilan = defineComponent({\n\tname: 'RoxyGunaMilan',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyGunaMilanProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyGunaMilanProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyGunaMilanProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyGunaMilanProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyGunaMilanProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyGunaMilanProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyGunaMilanProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyGunaMilanProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyGunaMilanProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyGunaMilanProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyGunaMilanProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyGunaMilanProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyGunaMilanProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyGunaMilanProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyGunaMilanProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-guna-milan', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetBasicPanchangResponse, GetDetailedPanchangResponse } from '../types/index.js';\n\nexport interface RoxyPanchangTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetBasicPanchangResponse | GetDetailedPanchangResponse;\n\t/** Whether the response is the basic five-limb panchang or the detailed muhurta set. Detailed mode shows the auspicious and inauspicious period sections. */\n\tdetail?: 'basic' | 'detailed';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyPanchangTable = defineComponent({\n\tname: 'RoxyPanchangTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyPanchangTableProps['data']> },\n\t\tdetail: { type: String as PropType<RoxyPanchangTableProps['detail']> },\n\t\tendpoint: { type: String as PropType<RoxyPanchangTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyPanchangTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyPanchangTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyPanchangTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyPanchangTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyPanchangTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyPanchangTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyPanchangTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyPanchangTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyPanchangTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyPanchangTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyPanchangTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyPanchangTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyPanchangTableProps['hideSections']> },\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.detail !== undefined) elementProps['.detail'] = props.detail;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-panchang-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateDrishtiResponse } from '../types/index.js';\n\nexport interface RoxyVedicAspectsProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateDrishtiResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyVedicAspects = defineComponent({\n\tname: 'RoxyVedicAspects',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyVedicAspectsProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyVedicAspectsProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyVedicAspectsProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyVedicAspectsProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyVedicAspectsProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyVedicAspectsProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyVedicAspectsProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyVedicAspectsProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyVedicAspectsProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyVedicAspectsProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyVedicAspectsProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyVedicAspectsProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyVedicAspectsProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyVedicAspectsProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyVedicAspectsProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-vedic-aspects', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetHoraResponse } from '../types/index.js';\n\nexport interface RoxyHoraTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetHoraResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyHoraTable = defineComponent({\n\tname: 'RoxyHoraTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyHoraTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyHoraTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyHoraTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyHoraTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyHoraTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyHoraTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyHoraTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyHoraTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyHoraTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyHoraTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyHoraTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyHoraTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyHoraTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyHoraTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyHoraTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-hora-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetChoghadiyaResponse } from '../types/index.js';\n\nexport interface RoxyChoghadiyaGridProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetChoghadiyaResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyChoghadiyaGrid = defineComponent({\n\tname: 'RoxyChoghadiyaGrid',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyChoghadiyaGridProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyChoghadiyaGridProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyChoghadiyaGridProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyChoghadiyaGridProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyChoghadiyaGridProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyChoghadiyaGridProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyChoghadiyaGridProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyChoghadiyaGridProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyChoghadiyaGridProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyChoghadiyaGridProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyChoghadiyaGridProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyChoghadiyaGridProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyChoghadiyaGridProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyChoghadiyaGridProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyChoghadiyaGridProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-choghadiya-grid', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { HeliacalResponse } from '../types/index.js';\n\nexport interface RoxyHeliacalTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: HeliacalResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyHeliacalTable = defineComponent({\n\tname: 'RoxyHeliacalTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyHeliacalTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyHeliacalTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyHeliacalTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyHeliacalTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyHeliacalTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyHeliacalTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyHeliacalTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyHeliacalTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyHeliacalTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyHeliacalTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyHeliacalTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyHeliacalTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyHeliacalTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyHeliacalTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyHeliacalTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-heliacal-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetVedicDailyReadingResponse } from '../types/index.js';\n\nexport interface RoxyVedicDailyProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetVedicDailyReadingResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyVedicDaily = defineComponent({\n\tname: 'RoxyVedicDaily',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyVedicDailyProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyVedicDailyProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyVedicDailyProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyVedicDailyProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyVedicDailyProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyVedicDailyProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyVedicDailyProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyVedicDailyProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyVedicDailyProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyVedicDailyProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyVedicDailyProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyVedicDailyProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyVedicDailyProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyVedicDailyProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyVedicDailyProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-vedic-daily', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateTransitResponse } from '../types/index.js';\n\nexport interface RoxyGocharaTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateTransitResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyGocharaTable = defineComponent({\n\tname: 'RoxyGocharaTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyGocharaTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyGocharaTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyGocharaTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyGocharaTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyGocharaTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyGocharaTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyGocharaTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyGocharaTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyGocharaTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyGocharaTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyGocharaTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyGocharaTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyGocharaTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyGocharaTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyGocharaTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-gochara-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { BhavaBalaResponse } from '../types/index.js';\n\nexport interface RoxyBhavaBalaTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: BhavaBalaResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyBhavaBalaTable = defineComponent({\n\tname: 'RoxyBhavaBalaTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyBhavaBalaTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyBhavaBalaTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyBhavaBalaTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyBhavaBalaTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyBhavaBalaTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyBhavaBalaTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyBhavaBalaTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyBhavaBalaTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyBhavaBalaTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyBhavaBalaTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyBhavaBalaTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyBhavaBalaTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyBhavaBalaTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyBhavaBalaTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyBhavaBalaTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-bhava-bala-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { BhavChalitResponse } from '../types/index.js';\n\nexport interface RoxyBhavChalitTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: BhavChalitResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyBhavChalitTable = defineComponent({\n\tname: 'RoxyBhavChalitTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyBhavChalitTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyBhavChalitTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyBhavChalitTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyBhavChalitTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyBhavChalitTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyBhavChalitTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyBhavChalitTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyBhavChalitTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyBhavChalitTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyBhavChalitTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyBhavChalitTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyBhavChalitTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyBhavChalitTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyBhavChalitTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyBhavChalitTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-bhav-chalit-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { UpagrahaResponse } from '../types/index.js';\n\nexport interface RoxyUpagrahaTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: UpagrahaResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyUpagrahaTable = defineComponent({\n\tname: 'RoxyUpagrahaTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyUpagrahaTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyUpagrahaTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyUpagrahaTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyUpagrahaTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyUpagrahaTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyUpagrahaTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyUpagrahaTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyUpagrahaTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyUpagrahaTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyUpagrahaTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyUpagrahaTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyUpagrahaTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyUpagrahaTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyUpagrahaTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyUpagrahaTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-upagraha-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CharaKarakaResponse } from '../types/index.js';\n\nexport interface RoxyCharaKarakasProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CharaKarakaResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyCharaKarakas = defineComponent({\n\tname: 'RoxyCharaKarakas',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyCharaKarakasProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyCharaKarakasProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyCharaKarakasProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyCharaKarakasProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyCharaKarakasProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyCharaKarakasProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyCharaKarakasProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyCharaKarakasProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyCharaKarakasProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyCharaKarakasProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyCharaKarakasProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyCharaKarakasProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyCharaKarakasProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyCharaKarakasProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyCharaKarakasProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-chara-karakas', elementProps);\n\t\t};\n\t},\n});\n", "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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: 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\tsubmitUrl: { type: String as PropType<RoxyArudhaPadasProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyArudhaPadasProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyArudhaPadasProps['locationUrl']> },\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\tremember: { type: Boolean as PropType<RoxyArudhaPadasProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyArudhaPadasProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyArudhaPadasProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyArudhaPadasProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-arudha-padas', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { DetectYogasResponse, GetYogaResponse, ListYogasResponse } from '../types/index.js';\n\nexport interface RoxyYogaListProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: ListYogasResponse | GetYogaResponse | DetectYogasResponse | { yogas: GetYogaResponse[] };\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyYogaList = defineComponent({\n\tname: 'RoxyYogaList',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyYogaListProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyYogaListProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyYogaListProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyYogaListProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyYogaListProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyYogaListProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyYogaListProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyYogaListProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyYogaListProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyYogaListProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyYogaListProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyYogaListProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyYogaListProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyYogaListProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyYogaListProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-yoga-list', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { NakshatraResponse } from '../types/index.js';\n\nexport interface RoxyNakshatraCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: NakshatraResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyNakshatraCard = defineComponent({\n\tname: 'RoxyNakshatraCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyNakshatraCardProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyNakshatraCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyNakshatraCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyNakshatraCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyNakshatraCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyNakshatraCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyNakshatraCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyNakshatraCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyNakshatraCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyNakshatraCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyNakshatraCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyNakshatraCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyNakshatraCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyNakshatraCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyNakshatraCardProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-nakshatra-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { KalsarpaResponse, ManglikResponse, SadhesatiResponse } from '../types/index.js';\n\nexport interface RoxyDoshaCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: ManglikResponse | KalsarpaResponse | SadhesatiResponse;\n\t/** Which dosha to title and theme. The three dosha responses share a shape, so the card cannot infer this. Defaults to manglik, so set it explicitly per card. */\n\ttype?: 'manglik' | 'kalsarpa' | 'sadhesati';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyDoshaCard = defineComponent({\n\tname: 'RoxyDoshaCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyDoshaCardProps['data']> },\n\t\ttype: { type: String as PropType<RoxyDoshaCardProps['type']> },\n\t\tendpoint: { type: String as PropType<RoxyDoshaCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyDoshaCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyDoshaCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyDoshaCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyDoshaCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyDoshaCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyDoshaCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyDoshaCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyDoshaCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyDoshaCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyDoshaCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyDoshaCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyDoshaCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyDoshaCardProps['hideSections']> },\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.type !== undefined) elementProps['.type'] = props.type;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-dosha-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateBirthDayResponse, CalculateExpressionResponse, CalculateLifePathResponse, CalculateMaturityResponse, CalculatePersonalDayResponse, CalculatePersonalMonthResponse, CalculatePersonalYearResponse, CalculatePersonalityResponse, CalculateSoulUrgeResponse, GenerateNumerologyChartResponse, GetDailyNumberResponse } from '../types/index.js';\n\nexport interface RoxyNumerologyCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateLifePathResponse | CalculateExpressionResponse | CalculateSoulUrgeResponse | CalculatePersonalityResponse | CalculateBirthDayResponse | CalculateMaturityResponse | GetDailyNumberResponse | CalculatePersonalDayResponse | CalculatePersonalMonthResponse | CalculatePersonalYearResponse | GenerateNumerologyChartResponse;\n\t/** Which numerology response the card is showing. Selects the heading and which fields are surfaced. */\n\ttype?: 'life-path' | 'expression' | 'soul-urge' | 'personality' | 'birth-day' | 'maturity' | 'daily' | 'personal-day' | 'personal-month' | 'personal-year' | 'chart';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyNumerologyCard = defineComponent({\n\tname: 'RoxyNumerologyCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyNumerologyCardProps['data']> },\n\t\ttype: { type: String as PropType<RoxyNumerologyCardProps['type']> },\n\t\tendpoint: { type: String as PropType<RoxyNumerologyCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyNumerologyCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyNumerologyCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyNumerologyCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyNumerologyCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyNumerologyCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyNumerologyCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyNumerologyCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyNumerologyCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyNumerologyCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyNumerologyCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyNumerologyCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyNumerologyCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyNumerologyCardProps['hideSections']> },\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.type !== undefined) elementProps['.type'] = props.type;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-numerology-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateGematriaResponse } from '../types/index.js';\n\nexport interface RoxyGematriaProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateGematriaResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyGematria = defineComponent({\n\tname: 'RoxyGematria',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyGematriaProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyGematriaProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyGematriaProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyGematriaProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyGematriaProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyGematriaProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyGematriaProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyGematriaProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyGematriaProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyGematriaProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyGematriaProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyGematriaProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyGematriaProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyGematriaProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyGematriaProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-gematria', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetCardResponse, GetDailyCardResponse } from '../types/index.js';\n\nexport interface RoxyTarotCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetCardResponse | GetDailyCardResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyTarotCard = defineComponent({\n\tname: 'RoxyTarotCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyTarotCardProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyTarotCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyTarotCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyTarotCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyTarotCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyTarotCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyTarotCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyTarotCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyTarotCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyTarotCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyTarotCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyTarotCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyTarotCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyTarotCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyTarotCardProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-tarot-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { ListCardsResponse } from '../types/index.js';\n\nexport interface RoxyTarotCatalogProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: ListCardsResponse;\n\t/** Override the auto-derived gallery heading. Empty by default, in which case the heading is \"Tarot deck\". */\n\theading?: string;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyTarotCatalog = defineComponent({\n\tname: 'RoxyTarotCatalog',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyTarotCatalogProps['data']> },\n\t\theading: { type: String as PropType<RoxyTarotCatalogProps['heading']> },\n\t\tendpoint: { type: String as PropType<RoxyTarotCatalogProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyTarotCatalogProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyTarotCatalogProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyTarotCatalogProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyTarotCatalogProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyTarotCatalogProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyTarotCatalogProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyTarotCatalogProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyTarotCatalogProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyTarotCatalogProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyTarotCatalogProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyTarotCatalogProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyTarotCatalogProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyTarotCatalogProps['hideSections']> },\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.heading !== undefined) elementProps['.heading'] = props.heading;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-tarot-catalog', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CastCareerSpreadResponse, CastCelticCrossResponse, CastCustomSpreadResponse, CastLoveSpreadResponse, CastReadingResponse, CastThreeCardResponse, CastYesNoResponse, DrawCardsResponse } from '../types/index.js';\n\nexport interface RoxyTarotSpreadProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CastThreeCardResponse | CastCelticCrossResponse | CastLoveSpreadResponse | CastYesNoResponse | CastReadingResponse | CastCareerSpreadResponse | CastCustomSpreadResponse | DrawCardsResponse;\n\t/** Which spread layout the response is for. Positions the cards and selects the reading template. */\n\tspread?: 'three-card' | 'celtic-cross' | 'love' | 'career' | 'custom' | 'yes-no' | 'draw';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyTarotSpread = defineComponent({\n\tname: 'RoxyTarotSpread',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyTarotSpreadProps['data']> },\n\t\tspread: { type: String as PropType<RoxyTarotSpreadProps['spread']> },\n\t\tendpoint: { type: String as PropType<RoxyTarotSpreadProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyTarotSpreadProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyTarotSpreadProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyTarotSpreadProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyTarotSpreadProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyTarotSpreadProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyTarotSpreadProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyTarotSpreadProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyTarotSpreadProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyTarotSpreadProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyTarotSpreadProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyTarotSpreadProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyTarotSpreadProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyTarotSpreadProps['hideSections']> },\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.spread !== undefined) elementProps['.spread'] = props.spread;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-tarot-spread', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GenerateBodygraphResponse } from '../types/index.js';\n\nexport interface RoxyBodygraphProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GenerateBodygraphResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyBodygraph = defineComponent({\n\tname: 'RoxyBodygraph',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyBodygraphProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyBodygraphProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyBodygraphProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyBodygraphProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyBodygraphProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyBodygraphProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyBodygraphProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyBodygraphProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyBodygraphProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyBodygraphProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyBodygraphProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyBodygraphProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyBodygraphProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyBodygraphProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyBodygraphProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-bodygraph', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateProfileResponse, CalculateTypeResponse } from '../types/index.js';\n\nexport interface RoxyHdTypeCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateTypeResponse | CalculateProfileResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyHdTypeCard = defineComponent({\n\tname: 'RoxyHdTypeCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyHdTypeCardProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyHdTypeCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyHdTypeCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyHdTypeCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyHdTypeCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyHdTypeCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyHdTypeCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyHdTypeCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyHdTypeCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyHdTypeCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyHdTypeCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyHdTypeCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyHdTypeCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyHdTypeCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyHdTypeCardProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-hd-type-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateConnectionResponse } from '../types/index.js';\n\nexport interface RoxyHdConnectionProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateConnectionResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyHdConnection = defineComponent({\n\tname: 'RoxyHdConnection',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyHdConnectionProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyHdConnectionProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyHdConnectionProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyHdConnectionProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyHdConnectionProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyHdConnectionProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyHdConnectionProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyHdConnectionProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyHdConnectionProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyHdConnectionProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyHdConnectionProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyHdConnectionProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyHdConnectionProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyHdConnectionProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyHdConnectionProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-hd-connection', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculatePentaResponse } from '../types/index.js';\n\nexport interface RoxyHdPentaProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculatePentaResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyHdPenta = defineComponent({\n\tname: 'RoxyHdPenta',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyHdPentaProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyHdPentaProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyHdPentaProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyHdPentaProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyHdPentaProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyHdPentaProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyHdPentaProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyHdPentaProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyHdPentaProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyHdPentaProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyHdPentaProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyHdPentaProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyHdPentaProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyHdPentaProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyHdPentaProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-hd-penta', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateVariablesResponse } from '../types/index.js';\n\nexport interface RoxyHdVariablesProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateVariablesResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyHdVariables = defineComponent({\n\tname: 'RoxyHdVariables',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyHdVariablesProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyHdVariablesProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyHdVariablesProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyHdVariablesProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyHdVariablesProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyHdVariablesProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyHdVariablesProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyHdVariablesProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyHdVariablesProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyHdVariablesProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyHdVariablesProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyHdVariablesProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyHdVariablesProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyHdVariablesProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyHdVariablesProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-hd-variables', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { FindSignificantDatesResponse, ForecastTransitsResponse, GenerateTimelineResponse } from '../types/index.js';\n\nexport interface RoxyForecastTimelineProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GenerateTimelineResponse | FindSignificantDatesResponse | ForecastTransitsResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyForecastTimeline = defineComponent({\n\tname: 'RoxyForecastTimeline',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyForecastTimelineProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyForecastTimelineProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyForecastTimelineProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyForecastTimelineProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyForecastTimelineProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyForecastTimelineProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyForecastTimelineProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyForecastTimelineProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyForecastTimelineProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyForecastTimelineProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyForecastTimelineProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyForecastTimelineProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyForecastTimelineProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyForecastTimelineProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyForecastTimelineProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-forecast-timeline', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GenerateDigestResponse } from '../types/index.js';\n\nexport interface RoxyForecastDigestProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GenerateDigestResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyForecastDigest = defineComponent({\n\tname: 'RoxyForecastDigest',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyForecastDigestProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyForecastDigestProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyForecastDigestProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyForecastDigestProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyForecastDigestProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyForecastDigestProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyForecastDigestProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyForecastDigestProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyForecastDigestProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyForecastDigestProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyForecastDigestProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyForecastDigestProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyForecastDigestProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyForecastDigestProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyForecastDigestProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-forecast-digest', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GenerateBaziChartResponse } from '../types/index.js';\n\nexport interface RoxyBaziChartProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GenerateBaziChartResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyBaziChart = defineComponent({\n\tname: 'RoxyBaziChart',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyBaziChartProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyBaziChartProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyBaziChartProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyBaziChartProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyBaziChartProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyBaziChartProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyBaziChartProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyBaziChartProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyBaziChartProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyBaziChartProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyBaziChartProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyBaziChartProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyBaziChartProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyBaziChartProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyBaziChartProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-bazi-chart', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateLuckPillarsResponse } from '../types/index.js';\n\nexport interface RoxyLuckPillarsProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateLuckPillarsResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyLuckPillars = defineComponent({\n\tname: 'RoxyLuckPillars',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyLuckPillarsProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyLuckPillarsProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyLuckPillarsProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyLuckPillarsProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyLuckPillarsProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyLuckPillarsProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyLuckPillarsProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyLuckPillarsProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyLuckPillarsProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyLuckPillarsProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyLuckPillarsProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyLuckPillarsProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyLuckPillarsProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyLuckPillarsProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyLuckPillarsProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-luck-pillars', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateZodiacAnimalResponse, GetDailyZodiacReadingResponse, GetZodiacAnimalResponse, GetZodiacCompatibilityResponse } from '../types/index.js';\n\nexport interface RoxyZodiacCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateZodiacAnimalResponse | GetZodiacAnimalResponse | GetDailyZodiacReadingResponse | GetZodiacCompatibilityResponse;\n\t/** Which of the four zodiac reads the response is: the animal a date falls in, the reference read of one animal, a daily reading, or the compatibility of a pair. */\n\tmode?: 'sign' | 'animal' | 'daily' | 'compatibility';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyZodiacCard = defineComponent({\n\tname: 'RoxyZodiacCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyZodiacCardProps['data']> },\n\t\tmode: { type: String as PropType<RoxyZodiacCardProps['mode']> },\n\t\tendpoint: { type: String as PropType<RoxyZodiacCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyZodiacCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyZodiacCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyZodiacCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyZodiacCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyZodiacCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyZodiacCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyZodiacCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyZodiacCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyZodiacCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyZodiacCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyZodiacCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyZodiacCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyZodiacCardProps['hideSections']> },\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.mode !== undefined) elementProps['.mode'] = props.mode;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-zodiac-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetAlmanacDayResponse, GetMonthlyAlmanacResponse, LookupAuspiciousDaysResponse } from '../types/index.js';\n\nexport interface RoxyAlmanacDayProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetAlmanacDayResponse | GetMonthlyAlmanacResponse | LookupAuspiciousDaysResponse;\n\t/** Which read the response is: one almanac day as a card, a whole month of them as rows, or the days a search returned for one activity. */\n\tmode?: 'day' | 'month' | 'auspicious';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyAlmanacDay = defineComponent({\n\tname: 'RoxyAlmanacDay',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyAlmanacDayProps['data']> },\n\t\tmode: { type: String as PropType<RoxyAlmanacDayProps['mode']> },\n\t\tendpoint: { type: String as PropType<RoxyAlmanacDayProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyAlmanacDayProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyAlmanacDayProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyAlmanacDayProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyAlmanacDayProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyAlmanacDayProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyAlmanacDayProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyAlmanacDayProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyAlmanacDayProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyAlmanacDayProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyAlmanacDayProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyAlmanacDayProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyAlmanacDayProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyAlmanacDayProps['hideSections']> },\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.mode !== undefined) elementProps['.mode'] = props.mode;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-almanac-day', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GenerateFlyingStarChartResponse, GetAnnualFlyingStarsResponse } from '../types/index.js';\n\nexport interface RoxyFlyingStarChartProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GenerateFlyingStarChartResponse | GetAnnualFlyingStarsResponse;\n\t/** Which plate the response is: the natal chart of a building, which carries a mountain and a water star per palace, or one year of stars over it, which carries one. */\n\tmode?: 'natal' | 'annual';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyFlyingStarChart = defineComponent({\n\tname: 'RoxyFlyingStarChart',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyFlyingStarChartProps['data']> },\n\t\tmode: { type: String as PropType<RoxyFlyingStarChartProps['mode']> },\n\t\tendpoint: { type: String as PropType<RoxyFlyingStarChartProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyFlyingStarChartProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyFlyingStarChartProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyFlyingStarChartProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyFlyingStarChartProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyFlyingStarChartProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyFlyingStarChartProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyFlyingStarChartProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyFlyingStarChartProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyFlyingStarChartProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyFlyingStarChartProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyFlyingStarChartProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyFlyingStarChartProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyFlyingStarChartProps['hideSections']> },\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.mode !== undefined) elementProps['.mode'] = props.mode;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-flying-star-chart', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateKuaNumberResponse, GenerateEightMansionsResponse } from '../types/index.js';\n\nexport interface RoxyKuaCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateKuaNumberResponse | GenerateEightMansionsResponse;\n\t/** Which read the response is: the Kua number alone, or the full Eight Mansions map, which adds a reading per sector and names the best and worst of them. */\n\tmode?: 'kua' | 'mansions';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyKuaCard = defineComponent({\n\tname: 'RoxyKuaCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyKuaCardProps['data']> },\n\t\tmode: { type: String as PropType<RoxyKuaCardProps['mode']> },\n\t\tendpoint: { type: String as PropType<RoxyKuaCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyKuaCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyKuaCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyKuaCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyKuaCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyKuaCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyKuaCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyKuaCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyKuaCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyKuaCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyKuaCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyKuaCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyKuaCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyKuaCardProps['hideSections']> },\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.mode !== undefined) elementProps['.mode'] = props.mode;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-kua-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateTzolkinResponse, GenerateMayanChartResponse } from '../types/index.js';\n\nexport interface RoxyMayanDaySignProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateTzolkinResponse | GenerateMayanChartResponse;\n\t/** Which read the response is: the Tzolkin day sign alone, or the full Calendar Round chart, which adds the Haab date, the Long Count, the year bearer and the four-fold cross. */\n\tmode?: 'day' | 'chart';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyMayanDaySign = defineComponent({\n\tname: 'RoxyMayanDaySign',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyMayanDaySignProps['data']> },\n\t\tmode: { type: String as PropType<RoxyMayanDaySignProps['mode']> },\n\t\tendpoint: { type: String as PropType<RoxyMayanDaySignProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyMayanDaySignProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyMayanDaySignProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyMayanDaySignProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyMayanDaySignProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyMayanDaySignProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyMayanDaySignProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyMayanDaySignProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyMayanDaySignProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyMayanDaySignProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyMayanDaySignProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyMayanDaySignProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyMayanDaySignProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyMayanDaySignProps['hideSections']> },\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.mode !== undefined) elementProps['.mode'] = props.mode;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-mayan-day-sign', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateEntrancePadaResponse, GenerateMandalaResponse } from '../types/index.js';\n\nexport interface RoxyVastuMandalaProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GenerateMandalaResponse | CalculateEntrancePadaResponse;\n\t/** Which read the response is: the projected pada grid with a devata on every square, or the entrance read, which lights the square the main door falls on. */\n\tmode?: 'mandala' | 'entrance';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyVastuMandala = defineComponent({\n\tname: 'RoxyVastuMandala',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyVastuMandalaProps['data']> },\n\t\tmode: { type: String as PropType<RoxyVastuMandalaProps['mode']> },\n\t\tendpoint: { type: String as PropType<RoxyVastuMandalaProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyVastuMandalaProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyVastuMandalaProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyVastuMandalaProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyVastuMandalaProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyVastuMandalaProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyVastuMandalaProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyVastuMandalaProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyVastuMandalaProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyVastuMandalaProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyVastuMandalaProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyVastuMandalaProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyVastuMandalaProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyVastuMandalaProps['hideSections']> },\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.mode !== undefined) elementProps['.mode'] = props.mode;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-vastu-mandala', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetCriticalDaysResponse, GetDailyBiorhythmResponse, GetForecastResponse } from '../types/index.js';\n\nexport interface RoxyBiorhythmChartProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetDailyBiorhythmResponse | GetForecastResponse | GetCriticalDaysResponse;\n\t/** Which biorhythm response shape to render: a single day, a multi-day forecast, or the critical days list. */\n\tmode?: 'daily' | 'forecast' | 'critical-days';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyBiorhythmChart = defineComponent({\n\tname: 'RoxyBiorhythmChart',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyBiorhythmChartProps['data']> },\n\t\tmode: { type: String as PropType<RoxyBiorhythmChartProps['mode']> },\n\t\tendpoint: { type: String as PropType<RoxyBiorhythmChartProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyBiorhythmChartProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyBiorhythmChartProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyBiorhythmChartProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyBiorhythmChartProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyBiorhythmChartProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyBiorhythmChartProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyBiorhythmChartProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyBiorhythmChartProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyBiorhythmChartProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyBiorhythmChartProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyBiorhythmChartProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyBiorhythmChartProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyBiorhythmChartProps['hideSections']> },\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.mode !== undefined) elementProps['.mode'] = props.mode;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-biorhythm-chart', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateAyurvedicConstitutionResponse } from '../types/index.js';\n\nexport interface RoxyDoshaConstitutionProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateAyurvedicConstitutionResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyDoshaConstitution = defineComponent({\n\tname: 'RoxyDoshaConstitution',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyDoshaConstitutionProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyDoshaConstitutionProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyDoshaConstitutionProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyDoshaConstitutionProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyDoshaConstitutionProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyDoshaConstitutionProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyDoshaConstitutionProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyDoshaConstitutionProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyDoshaConstitutionProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyDoshaConstitutionProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyDoshaConstitutionProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyDoshaConstitutionProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyDoshaConstitutionProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyDoshaConstitutionProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyDoshaConstitutionProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-dosha-constitution', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CastReadingResponse, GetDailyHexagramResponse, GetHexagramResponse, GetRandomHexagramResponse, LookupHexagramResponse } from '../types/index.js';\n\nexport interface RoxyHexagramProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetHexagramResponse | GetRandomHexagramResponse | LookupHexagramResponse | GetDailyHexagramResponse | CastReadingResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyHexagram = defineComponent({\n\tname: 'RoxyHexagram',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyHexagramProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyHexagramProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyHexagramProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyHexagramProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyHexagramProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyHexagramProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyHexagramProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyHexagramProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyHexagramProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyHexagramProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyHexagramProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyHexagramProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyHexagramProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyHexagramProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyHexagramProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-hexagram', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetCrystalResponse } from '../types/index.js';\n\nexport interface RoxyCrystalCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetCrystalResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyCrystalCard = defineComponent({\n\tname: 'RoxyCrystalCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyCrystalCardProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyCrystalCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyCrystalCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyCrystalCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyCrystalCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyCrystalCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyCrystalCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyCrystalCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyCrystalCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyCrystalCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyCrystalCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyCrystalCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyCrystalCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyCrystalCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyCrystalCardProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-crystal-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetBirthstonesResponse, GetCrystalsByChakraResponse, GetCrystalsByElementResponse, GetCrystalsByZodiacResponse, ListCrystalsResponse, SearchCrystalsResponse } from '../types/index.js';\n\nexport interface RoxyCrystalGridProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: ListCrystalsResponse | GetCrystalsByChakraResponse | GetCrystalsByElementResponse | GetCrystalsByZodiacResponse | GetBirthstonesResponse | SearchCrystalsResponse;\n\t/** Override the auto-derived grid heading. Empty by default, in which case the heading is derived from the response filter (chakra, element, zodiac sign, or birth month). */\n\theading?: string;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyCrystalGrid = defineComponent({\n\tname: 'RoxyCrystalGrid',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyCrystalGridProps['data']> },\n\t\theading: { type: String as PropType<RoxyCrystalGridProps['heading']> },\n\t\tendpoint: { type: String as PropType<RoxyCrystalGridProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyCrystalGridProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyCrystalGridProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyCrystalGridProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyCrystalGridProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyCrystalGridProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyCrystalGridProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyCrystalGridProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyCrystalGridProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyCrystalGridProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyCrystalGridProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyCrystalGridProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyCrystalGridProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyCrystalGridProps['hideSections']> },\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.heading !== undefined) elementProps['.heading'] = props.heading;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-crystal-grid', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetDreamSymbolResponse } from '../types/index.js';\n\nexport interface RoxyDreamCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetDreamSymbolResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyDreamCard = defineComponent({\n\tname: 'RoxyDreamCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyDreamCardProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyDreamCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyDreamCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyDreamCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyDreamCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyDreamCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyDreamCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyDreamCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyDreamCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyDreamCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyDreamCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyDreamCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyDreamCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyDreamCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyDreamCardProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-dream-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { SearchDreamSymbolsResponse } from '../types/index.js';\n\nexport interface RoxyDreamSearchProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: SearchDreamSymbolsResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyDreamSearch = defineComponent({\n\tname: 'RoxyDreamSearch',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyDreamSearchProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyDreamSearchProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyDreamSearchProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyDreamSearchProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyDreamSearchProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyDreamSearchProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyDreamSearchProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyDreamSearchProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyDreamSearchProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyDreamSearchProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyDreamSearchProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyDreamSearchProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyDreamSearchProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyDreamSearchProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyDreamSearchProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-dream-search', elementProps);\n\t\t};\n\t},\n});\n", "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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: 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\tsubmitUrl: { type: String as PropType<RoxyAngelNumberCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyAngelNumberCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyAngelNumberCardProps['locationUrl']> },\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\tremember: { type: Boolean as PropType<RoxyAngelNumberCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyAngelNumberCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyAngelNumberCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyAngelNumberCardProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-angel-number-card', elementProps);\n\t\t};\n\t},\n});\n", "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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: 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\tsubmitUrl: { type: String as PropType<RoxyAngelNumberLookupProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyAngelNumberLookupProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyAngelNumberLookupProps['locationUrl']> },\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\tremember: { type: Boolean as PropType<RoxyAngelNumberLookupProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyAngelNumberLookupProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyAngelNumberLookupProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyAngelNumberLookupProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-angel-number-lookup', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetAvasthaResponse, GetCenterResponse, GetCompoundNumberResponse, GetGateResponse, GetNumberMeaningResponse, GetPlanetMeaningResponse, GetRashiResponse, GetTrigramResponse, GetZodiacSignResponse } from '../types/index.js';\n\nexport interface RoxyReferenceCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetZodiacSignResponse | GetPlanetMeaningResponse | GetRashiResponse | GetTrigramResponse | GetGateResponse | GetCenterResponse | GetNumberMeaningResponse | GetCompoundNumberResponse | GetAvasthaResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyReferenceCard = defineComponent({\n\tname: 'RoxyReferenceCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyReferenceCardProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyReferenceCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyReferenceCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyReferenceCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyReferenceCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyReferenceCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyReferenceCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyReferenceCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyReferenceCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyReferenceCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyReferenceCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyReferenceCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyReferenceCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyReferenceCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyReferenceCardProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-reference-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\n\nexport interface RoxyEndpointFormProps {\n\t/** Fires when the underlying <roxy-endpoint-form> dispatches `roxy-submit`. */\n\tonRoxySubmit?: (event: CustomEvent<{ endpoint: string; values: Record<string, unknown>; queryKeys: string[]; sticky: boolean }>) => void;\n\t/** Fires when the underlying <roxy-endpoint-form> dispatches `roxy-validation-error`. */\n\tonRoxyValidationError?: (event: CustomEvent<{ missing: string[] }>) => void;\n\t/** Fires when the underlying <roxy-endpoint-form> dispatches `roxy-spec-error`. */\n\tonRoxySpecError?: (event: CustomEvent<{ url: string; message: string }>) => void;\n}\n\nexport const RoxyEndpointForm = defineComponent({\n\tname: 'RoxyEndpointForm',\n\tprops: {\n\t\tonRoxySubmit: { type: Function as PropType<RoxyEndpointFormProps['onRoxySubmit']> },\n\t\tonRoxyValidationError: { type: Function as PropType<RoxyEndpointFormProps['onRoxyValidationError']> },\n\t\tonRoxySpecError: { type: Function as PropType<RoxyEndpointFormProps['onRoxySpecError']> },\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.onRoxySubmit) elementProps.onRoxySubmit = props.onRoxySubmit;\n\t\t\tif (props.onRoxyValidationError) elementProps.onRoxyValidationError = props.onRoxyValidationError;\n\t\t\tif (props.onRoxySpecError) elementProps.onRoxySpecError = props.onRoxySpecError;\n\n\t\t\treturn h('roxy-endpoint-form', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { SearchCitiesResponse } from '../types/index.js';\n\nexport interface RoxyLocationSearchProps {\n\t/** Fires when the underlying <roxy-location-search> dispatches `roxy-location-select`. */\n\tonRoxyLocationSelect?: (event: CustomEvent<NonNullable<SearchCitiesResponse['cities']>[number] | { latitude?: number; longitude?: number; timezone?: string; utcOffset?: number; city?: string; province?: string; country?: string }>) => void;\n\t/** Fires when the underlying <roxy-location-search> dispatches `roxy-validation-error`. */\n\tonRoxyValidationError?: (event: CustomEvent<{ reason: string; message: string }>) => void;\n}\n\nexport const RoxyLocationSearch = defineComponent({\n\tname: 'RoxyLocationSearch',\n\tprops: {\n\t\tonRoxyLocationSelect: { type: Function as PropType<RoxyLocationSearchProps['onRoxyLocationSelect']> },\n\t\tonRoxyValidationError: { type: Function as PropType<RoxyLocationSearchProps['onRoxyValidationError']> },\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.onRoxyLocationSelect) elementProps.onRoxyLocationSelect = props.onRoxyLocationSelect;\n\t\t\tif (props.onRoxyValidationError) elementProps.onRoxyValidationError = props.onRoxyValidationError;\n\n\t\t\treturn h('roxy-location-search', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\n\nexport interface RoxyDataProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: unknown;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyData = defineComponent({\n\tname: 'RoxyData',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyDataProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyDataProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyDataProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyDataProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyDataProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyDataProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyDataProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyDataProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyDataProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyDataProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyDataProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyDataProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyDataProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyDataProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyDataProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-data', elementProps);\n\t\t};\n\t},\n});\n", "const COLS = '__cols';\nconst ROWS = '__rows';\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/**\n * Walk a value, rebuilding only the branches that actually hold an encoded array.\n *\n * @remarks\n * The identity return is the contract, not an optimisation: a response with nothing encoded in it comes back as the same object, so every render path that existed before this decoder sees the exact bytes it always saw.\n */\nfunction decode(value: unknown): unknown {\n\tif (Array.isArray(value)) {\n\t\tlet rebuilt = false;\n\t\tconst out = value.map((item) => {\n\t\t\tconst next = decode(item);\n\t\t\tif (next !== item) rebuilt = true;\n\t\t\treturn next;\n\t\t});\n\t\treturn rebuilt ? out : value;\n\t}\n\tif (!isPlainObject(value)) return value;\n\n\tconst cols = value[COLS];\n\tconst rows = value[ROWS];\n\t// Exactly the two keys and nothing else: a real payload that happens to carry\n\t// a field of either name is left alone.\n\tif (\n\t\tArray.isArray(cols) &&\n\t\tArray.isArray(rows) &&\n\t\tObject.keys(value).length === 2\n\t) {\n\t\treturn rows.map((row) => {\n\t\t\tconst item: Record<string, unknown> = {};\n\t\t\t(cols as string[]).forEach((col, i) => {\n\t\t\t\titem[col] = decode((row as unknown[])[i]);\n\t\t\t});\n\t\t\treturn item;\n\t\t});\n\t}\n\n\tlet rebuilt = false;\n\tconst out: Record<string, unknown> = {};\n\tfor (const [key, item] of Object.entries(value)) {\n\t\tconst next = decode(item);\n\t\tif (next !== item) rebuilt = true;\n\t\tout[key] = next;\n\t}\n\treturn rebuilt ? out : value;\n}\n\n/**\n * Turn a compact API response back into the plain shape the components render.\n *\n * @remarks\n * Asking a Remote MCP tool for a compact result trades repeated field names for a header: an array of same-shaped objects arrives as `{ __cols: [names], __rows: [[values]] }`, which costs an agent far fewer tokens to read and carries exactly the same data. This is the decoder, applied at every depth, so a compact result renders in a component with nothing else to do.\n *\n * Every data component runs it on the way in, so a page that sets `data` from a tool result needs no call of its own. It is exported for the paths that hold the JSON before an element does.\n *\n * A value with nothing encoded in it is returned unchanged, by reference.\n *\n * @example\n * ```ts\n * expandCompact({ aspects: { __cols: ['a', 'b'], __rows: [['sun', 'moon'], ['sun', 'mars'], ['moon', 'mars']] } });\n * // { aspects: [{ a: 'sun', b: 'moon' }, { a: 'sun', b: 'mars' }, { a: 'moon', b: 'mars' }] }\n * ```\n */\nexport function expandCompact<T>(value: T): T {\n\treturn decode(value) as T;\n}\n", "// Generated by scripts/sync-bindings.ts (bindings.config.ts joined with specs/openapi.json). Do not edit.\n\n/** The component that renders one MCP tool result. `toolName` is the key it is found under. */\nexport interface ToolComponentEntry {\n /** Custom-element tag to create, query, or render. */\n tag: string;\n /** Export name in the React and Vue packages. */\n pascal: string;\n /** OpenAPI operation the tool calls. */\n operationId: string;\n /** Config attributes that select this endpoint on a component that renders several. Set them beside `data`. */\n attrs?: Record<string, string>;\n}\n\n/** MCP tool name -> the component that draws its result. */\nexport const TOOL_COMPONENTS: Record<string, ToolComponentEntry> = {\n \"post_astrology_natal_chart\": {\n \"tag\": \"roxy-natal-chart\",\n \"pascal\": \"RoxyNatalChart\",\n \"operationId\": \"generateNatalChart\"\n },\n \"post_astrology_synastry\": {\n \"tag\": \"roxy-synastry-chart\",\n \"pascal\": \"RoxySynastryChart\",\n \"operationId\": \"calculateSynastry\"\n },\n \"post_astrology_transits\": {\n \"tag\": \"roxy-transits-table\",\n \"pascal\": \"RoxyTransitsTable\",\n \"operationId\": \"calculateTransits\"\n },\n \"post_astrology_transit_aspects\": {\n \"tag\": \"roxy-transit-wheel\",\n \"pascal\": \"RoxyTransitWheel\",\n \"operationId\": \"calculateTransitAspects\"\n },\n \"post_astrology_aspects\": {\n \"tag\": \"roxy-aspects-table\",\n \"pascal\": \"RoxyAspectsTable\",\n \"operationId\": \"calculateAspects\"\n },\n \"post_astrology_aspect_patterns\": {\n \"tag\": \"roxy-aspects-table\",\n \"pascal\": \"RoxyAspectsTable\",\n \"operationId\": \"detectAspectPatterns\"\n },\n \"get_astrology_moon_phase_current\": {\n \"tag\": \"roxy-moon-phase\",\n \"pascal\": \"RoxyMoonPhase\",\n \"operationId\": \"getCurrentMoonPhase\",\n \"attrs\": {\n \"mode\": \"current\"\n }\n },\n \"get_astrology_moon_phase_upcoming\": {\n \"tag\": \"roxy-moon-phase\",\n \"pascal\": \"RoxyMoonPhase\",\n \"operationId\": \"getUpcomingMoonPhases\",\n \"attrs\": {\n \"mode\": \"upcoming\"\n }\n },\n \"get_astrology_moon_phase_calendar_year_month\": {\n \"tag\": \"roxy-moon-phase\",\n \"pascal\": \"RoxyMoonPhase\",\n \"operationId\": \"getMoonCalendar\",\n \"attrs\": {\n \"mode\": \"calendar\"\n }\n },\n \"get_astrology_horoscope_sign_daily\": {\n \"tag\": \"roxy-horoscope-card\",\n \"pascal\": \"RoxyHoroscopeCard\",\n \"operationId\": \"getDailyHoroscope\",\n \"attrs\": {\n \"period\": \"daily\"\n }\n },\n \"get_astrology_horoscope_sign_weekly\": {\n \"tag\": \"roxy-horoscope-card\",\n \"pascal\": \"RoxyHoroscopeCard\",\n \"operationId\": \"getWeeklyHoroscope\",\n \"attrs\": {\n \"period\": \"weekly\"\n }\n },\n \"get_astrology_horoscope_sign_monthly\": {\n \"tag\": \"roxy-horoscope-card\",\n \"pascal\": \"RoxyHoroscopeCard\",\n \"operationId\": \"getMonthlyHoroscope\",\n \"attrs\": {\n \"period\": \"monthly\"\n }\n },\n \"get_astrology_horoscope_sign_yearly\": {\n \"tag\": \"roxy-horoscope-card\",\n \"pascal\": \"RoxyHoroscopeCard\",\n \"operationId\": \"getYearlyHoroscope\",\n \"attrs\": {\n \"period\": \"yearly\"\n }\n },\n \"post_astrology_astrocartography\": {\n \"tag\": \"roxy-astrocartography-map\",\n \"pascal\": \"RoxyAstrocartographyMap\",\n \"operationId\": \"generateAstrocartography\"\n },\n \"post_astrology_local_space\": {\n \"tag\": \"roxy-local-space-compass\",\n \"pascal\": \"RoxyLocalSpaceCompass\",\n \"operationId\": \"generateLocalSpace\"\n },\n \"post_astrology_relocation_chart\": {\n \"tag\": \"roxy-relocation-wheel\",\n \"pascal\": \"RoxyRelocationWheel\",\n \"operationId\": \"generateRelocationChart\"\n },\n \"post_astrology_asteroids\": {\n \"tag\": \"roxy-positions-table\",\n \"pascal\": \"RoxyPositionsTable\",\n \"operationId\": \"generateAsteroids\"\n },\n \"post_astrology_lilith\": {\n \"tag\": \"roxy-positions-table\",\n \"pascal\": \"RoxyPositionsTable\",\n \"operationId\": \"generateLilith\"\n },\n \"post_astrology_progressions\": {\n \"tag\": \"roxy-positions-table\",\n \"pascal\": \"RoxyPositionsTable\",\n \"operationId\": \"generateProgressions\"\n },\n \"post_astrology_solar_arc\": {\n \"tag\": \"roxy-positions-table\",\n \"pascal\": \"RoxyPositionsTable\",\n \"operationId\": \"generateSolarArc\"\n },\n \"post_astrology_arabic_lots\": {\n \"tag\": \"roxy-positions-table\",\n \"pascal\": \"RoxyPositionsTable\",\n \"operationId\": \"calculateArabicLots\"\n },\n \"post_astrology_planets_monthly\": {\n \"tag\": \"roxy-ephemeris-table\",\n \"pascal\": \"RoxyEphemerisTable\",\n \"operationId\": \"getMonthlyTropicalEphemeris\"\n },\n \"post_vedic_astrology_planetary_positions_monthly\": {\n \"tag\": \"roxy-ephemeris-table\",\n \"pascal\": \"RoxyEphemerisTable\",\n \"operationId\": \"getMonthlyEphemeris\"\n },\n \"post_astrology_fixed_stars\": {\n \"tag\": \"roxy-fixed-stars\",\n \"pascal\": \"RoxyFixedStars\",\n \"operationId\": \"generateFixedStars\"\n },\n \"post_astrology_profections\": {\n \"tag\": \"roxy-profection-card\",\n \"pascal\": \"RoxyProfectionCard\",\n \"operationId\": \"generateProfections\"\n },\n \"post_astrology_compatibility_score\": {\n \"tag\": \"roxy-compatibility-card\",\n \"pascal\": \"RoxyCompatibilityCard\",\n \"operationId\": \"calculateCompatibility\",\n \"attrs\": {\n \"mode\": \"astrology\"\n }\n },\n \"post_numerology_compatibility\": {\n \"tag\": \"roxy-compatibility-card\",\n \"pascal\": \"RoxyCompatibilityCard\",\n \"operationId\": \"calculateNumCompatibility\",\n \"attrs\": {\n \"mode\": \"numerology\"\n }\n },\n \"post_biorhythm_compatibility\": {\n \"tag\": \"roxy-compatibility-card\",\n \"pascal\": \"RoxyCompatibilityCard\",\n \"operationId\": \"calculateBioCompatibility\",\n \"attrs\": {\n \"mode\": \"biorhythm\"\n }\n },\n \"post_vedic_astrology_birth_chart\": {\n \"tag\": \"roxy-vedic-kundli\",\n \"pascal\": \"RoxyVedicKundli\",\n \"operationId\": \"generateBirthChart\"\n },\n \"post_vedic_astrology_divisional_chart\": {\n \"tag\": \"roxy-divisional-chart\",\n \"pascal\": \"RoxyDivisionalChart\",\n \"operationId\": \"generateDivisionalChart\"\n },\n \"post_vedic_astrology_navamsa\": {\n \"tag\": \"roxy-divisional-chart\",\n \"pascal\": \"RoxyDivisionalChart\",\n \"operationId\": \"generateNavamsa\"\n },\n \"post_vedic_astrology_kp_chart\": {\n \"tag\": \"roxy-kp-chart\",\n \"pascal\": \"RoxyKpChart\",\n \"operationId\": \"generateKpChart\"\n },\n \"post_vedic_astrology_kp_planets\": {\n \"tag\": \"roxy-kp-planets-table\",\n \"pascal\": \"RoxyKpPlanetsTable\",\n \"operationId\": \"getKpPlanets\"\n },\n \"post_vedic_astrology_kp_ruling_planets\": {\n \"tag\": \"roxy-kp-ruling-planets\",\n \"pascal\": \"RoxyKpRulingPlanets\",\n \"operationId\": \"getKpRulingPlanets\"\n },\n \"post_vedic_astrology_ashtakavarga\": {\n \"tag\": \"roxy-ashtakavarga-grid\",\n \"pascal\": \"RoxyAshtakavargaGrid\",\n \"operationId\": \"calculateAshtakavarga\"\n },\n \"post_vedic_astrology_shadbala\": {\n \"tag\": \"roxy-shadbala-table\",\n \"pascal\": \"RoxyShadbalaTable\",\n \"operationId\": \"calculateShadbala\"\n },\n \"post_vedic_astrology_dasha_major\": {\n \"tag\": \"roxy-dasha-timeline\",\n \"pascal\": \"RoxyDashaTimeline\",\n \"operationId\": \"getMajorDashas\",\n \"attrs\": {\n \"period\": \"major\"\n }\n },\n \"post_vedic_astrology_dasha_current\": {\n \"tag\": \"roxy-dasha-timeline\",\n \"pascal\": \"RoxyDashaTimeline\",\n \"operationId\": \"getCurrentDasha\",\n \"attrs\": {\n \"period\": \"current\"\n }\n },\n \"post_vedic_astrology_dasha_sub_mahadasha\": {\n \"tag\": \"roxy-dasha-timeline\",\n \"pascal\": \"RoxyDashaTimeline\",\n \"operationId\": \"getSubDashas\",\n \"attrs\": {\n \"period\": \"sub\"\n }\n },\n \"post_vedic_astrology_dasha_sub_mahadasha_antardasha\": {\n \"tag\": \"roxy-dasha-timeline\",\n \"pascal\": \"RoxyDashaTimeline\",\n \"operationId\": \"getPratyantardashas\",\n \"attrs\": {\n \"period\": \"antara\"\n }\n },\n \"post_vedic_astrology_dasha_sub_mahadasha_antardasha_pratyantardasha\": {\n \"tag\": \"roxy-dasha-timeline\",\n \"pascal\": \"RoxyDashaTimeline\",\n \"operationId\": \"getSookshmaDashas\",\n \"attrs\": {\n \"period\": \"sookshma\"\n }\n },\n \"post_vedic_astrology_dasha_sub_mahadasha_antardasha_pratyantardasha_sookshma\": {\n \"tag\": \"roxy-dasha-timeline\",\n \"pascal\": \"RoxyDashaTimeline\",\n \"operationId\": \"getPranaDashas\",\n \"attrs\": {\n \"period\": \"prana\"\n }\n },\n \"post_vedic_astrology_compatibility\": {\n \"tag\": \"roxy-guna-milan\",\n \"pascal\": \"RoxyGunaMilan\",\n \"operationId\": \"calculateGunMilan\"\n },\n \"post_vedic_astrology_panchang_detailed\": {\n \"tag\": \"roxy-panchang-table\",\n \"pascal\": \"RoxyPanchangTable\",\n \"operationId\": \"getDetailedPanchang\",\n \"attrs\": {\n \"detail\": \"detailed\"\n }\n },\n \"post_vedic_astrology_panchang_basic\": {\n \"tag\": \"roxy-panchang-table\",\n \"pascal\": \"RoxyPanchangTable\",\n \"operationId\": \"getBasicPanchang\",\n \"attrs\": {\n \"detail\": \"basic\"\n }\n },\n \"post_vedic_astrology_aspects\": {\n \"tag\": \"roxy-vedic-aspects\",\n \"pascal\": \"RoxyVedicAspects\",\n \"operationId\": \"calculateDrishti\"\n },\n \"post_vedic_astrology_panchang_hora\": {\n \"tag\": \"roxy-hora-table\",\n \"pascal\": \"RoxyHoraTable\",\n \"operationId\": \"getHora\"\n },\n \"post_vedic_astrology_panchang_choghadiya\": {\n \"tag\": \"roxy-choghadiya-grid\",\n \"pascal\": \"RoxyChoghadiyaGrid\",\n \"operationId\": \"getChoghadiya\"\n },\n \"post_vedic_astrology_heliacal\": {\n \"tag\": \"roxy-heliacal-table\",\n \"pascal\": \"RoxyHeliacalTable\",\n \"operationId\": \"getHeliacalVisibility\"\n },\n \"post_vedic_astrology_daily\": {\n \"tag\": \"roxy-vedic-daily\",\n \"pascal\": \"RoxyVedicDaily\",\n \"operationId\": \"getVedicDailyReading\"\n },\n \"post_vedic_astrology_transit\": {\n \"tag\": \"roxy-gochara-table\",\n \"pascal\": \"RoxyGocharaTable\",\n \"operationId\": \"calculateTransit\"\n },\n \"post_vedic_astrology_bhava_bala\": {\n \"tag\": \"roxy-bhava-bala-table\",\n \"pascal\": \"RoxyBhavaBalaTable\",\n \"operationId\": \"calculateBhavaBala\"\n },\n \"post_vedic_astrology_bhav_chalit\": {\n \"tag\": \"roxy-bhav-chalit-table\",\n \"pascal\": \"RoxyBhavChalitTable\",\n \"operationId\": \"calculateBhavChalit\"\n },\n \"post_vedic_astrology_upagraha\": {\n \"tag\": \"roxy-upagraha-table\",\n \"pascal\": \"RoxyUpagrahaTable\",\n \"operationId\": \"getUpagrahaPositions\"\n },\n \"post_vedic_astrology_chara_karakas\": {\n \"tag\": \"roxy-chara-karakas\",\n \"pascal\": \"RoxyCharaKarakas\",\n \"operationId\": \"calculateCharaKarakas\"\n },\n \"post_vedic_astrology_arudha\": {\n \"tag\": \"roxy-arudha-padas\",\n \"pascal\": \"RoxyArudhaPadas\",\n \"operationId\": \"calculateArudhaPadas\"\n },\n \"get_vedic_astrology_yoga\": {\n \"tag\": \"roxy-yoga-list\",\n \"pascal\": \"RoxyYogaList\",\n \"operationId\": \"listYogas\"\n },\n \"post_vedic_astrology_yoga_detect\": {\n \"tag\": \"roxy-yoga-list\",\n \"pascal\": \"RoxyYogaList\",\n \"operationId\": \"detectYogas\"\n },\n \"get_vedic_astrology_nakshatras_id\": {\n \"tag\": \"roxy-nakshatra-card\",\n \"pascal\": \"RoxyNakshatraCard\",\n \"operationId\": \"getNakshatra\"\n },\n \"post_vedic_astrology_dosha_manglik\": {\n \"tag\": \"roxy-dosha-card\",\n \"pascal\": \"RoxyDoshaCard\",\n \"operationId\": \"checkManglikDosha\",\n \"attrs\": {\n \"type\": \"manglik\"\n }\n },\n \"post_vedic_astrology_dosha_kalsarpa\": {\n \"tag\": \"roxy-dosha-card\",\n \"pascal\": \"RoxyDoshaCard\",\n \"operationId\": \"checkKalsarpaDosha\",\n \"attrs\": {\n \"type\": \"kalsarpa\"\n }\n },\n \"post_vedic_astrology_dosha_sadhesati\": {\n \"tag\": \"roxy-dosha-card\",\n \"pascal\": \"RoxyDoshaCard\",\n \"operationId\": \"checkSadhesati\",\n \"attrs\": {\n \"type\": \"sadhesati\"\n }\n },\n \"post_numerology_life_path\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"calculateLifePath\",\n \"attrs\": {\n \"type\": \"life-path\"\n }\n },\n \"post_numerology_expression\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"calculateExpression\",\n \"attrs\": {\n \"type\": \"expression\"\n }\n },\n \"post_numerology_soul_urge\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"calculateSoulUrge\",\n \"attrs\": {\n \"type\": \"soul-urge\"\n }\n },\n \"post_numerology_personality\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"calculatePersonality\",\n \"attrs\": {\n \"type\": \"personality\"\n }\n },\n \"post_numerology_birth_day\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"calculateBirthDay\",\n \"attrs\": {\n \"type\": \"birth-day\"\n }\n },\n \"post_numerology_maturity\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"calculateMaturity\",\n \"attrs\": {\n \"type\": \"maturity\"\n }\n },\n \"post_numerology_daily\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"getDailyNumber\",\n \"attrs\": {\n \"type\": \"daily\"\n }\n },\n \"post_numerology_personal_day\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"calculatePersonalDay\",\n \"attrs\": {\n \"type\": \"personal-day\"\n }\n },\n \"post_numerology_personal_month\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"calculatePersonalMonth\",\n \"attrs\": {\n \"type\": \"personal-month\"\n }\n },\n \"post_numerology_personal_year\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"calculatePersonalYear\",\n \"attrs\": {\n \"type\": \"personal-year\"\n }\n },\n \"post_numerology_chart\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"generateNumerologyChart\",\n \"attrs\": {\n \"type\": \"chart\"\n }\n },\n \"post_kabbalah_gematria\": {\n \"tag\": \"roxy-gematria\",\n \"pascal\": \"RoxyGematria\",\n \"operationId\": \"calculateGematria\"\n },\n \"post_tarot_daily\": {\n \"tag\": \"roxy-tarot-card\",\n \"pascal\": \"RoxyTarotCard\",\n \"operationId\": \"getDailyCard\"\n },\n \"get_tarot_cards\": {\n \"tag\": \"roxy-tarot-catalog\",\n \"pascal\": \"RoxyTarotCatalog\",\n \"operationId\": \"listCards\"\n },\n \"post_tarot_spreads_three_card\": {\n \"tag\": \"roxy-tarot-spread\",\n \"pascal\": \"RoxyTarotSpread\",\n \"operationId\": \"castThreeCard\",\n \"attrs\": {\n \"spread\": \"three-card\"\n }\n },\n \"post_tarot_spreads_celtic_cross\": {\n \"tag\": \"roxy-tarot-spread\",\n \"pascal\": \"RoxyTarotSpread\",\n \"operationId\": \"castCelticCross\",\n \"attrs\": {\n \"spread\": \"celtic-cross\"\n }\n },\n \"post_tarot_spreads_love\": {\n \"tag\": \"roxy-tarot-spread\",\n \"pascal\": \"RoxyTarotSpread\",\n \"operationId\": \"castLoveSpread\",\n \"attrs\": {\n \"spread\": \"love\"\n }\n },\n \"post_tarot_spreads_career\": {\n \"tag\": \"roxy-tarot-spread\",\n \"pascal\": \"RoxyTarotSpread\",\n \"operationId\": \"castCareerSpread\",\n \"attrs\": {\n \"spread\": \"career\"\n }\n },\n \"post_tarot_spreads_custom\": {\n \"tag\": \"roxy-tarot-spread\",\n \"pascal\": \"RoxyTarotSpread\",\n \"operationId\": \"castCustomSpread\",\n \"attrs\": {\n \"spread\": \"custom\"\n }\n },\n \"post_tarot_yes_no\": {\n \"tag\": \"roxy-tarot-spread\",\n \"pascal\": \"RoxyTarotSpread\",\n \"operationId\": \"castYesNo\",\n \"attrs\": {\n \"spread\": \"yes-no\"\n }\n },\n \"post_tarot_draw\": {\n \"tag\": \"roxy-tarot-spread\",\n \"pascal\": \"RoxyTarotSpread\",\n \"operationId\": \"drawCards\",\n \"attrs\": {\n \"spread\": \"draw\"\n }\n },\n \"post_human_design_bodygraph\": {\n \"tag\": \"roxy-bodygraph\",\n \"pascal\": \"RoxyBodygraph\",\n \"operationId\": \"generateBodygraph\"\n },\n \"post_human_design_type\": {\n \"tag\": \"roxy-hd-type-card\",\n \"pascal\": \"RoxyHdTypeCard\",\n \"operationId\": \"calculateType\"\n },\n \"post_human_design_profile\": {\n \"tag\": \"roxy-hd-type-card\",\n \"pascal\": \"RoxyHdTypeCard\",\n \"operationId\": \"calculateProfile\"\n },\n \"post_human_design_connection\": {\n \"tag\": \"roxy-hd-connection\",\n \"pascal\": \"RoxyHdConnection\",\n \"operationId\": \"calculateConnection\"\n },\n \"post_human_design_penta\": {\n \"tag\": \"roxy-hd-penta\",\n \"pascal\": \"RoxyHdPenta\",\n \"operationId\": \"calculatePenta\"\n },\n \"post_human_design_variables\": {\n \"tag\": \"roxy-hd-variables\",\n \"pascal\": \"RoxyHdVariables\",\n \"operationId\": \"calculateVariables\"\n },\n \"post_forecast_timeline\": {\n \"tag\": \"roxy-forecast-timeline\",\n \"pascal\": \"RoxyForecastTimeline\",\n \"operationId\": \"generateTimeline\"\n },\n \"post_forecast_significant_dates\": {\n \"tag\": \"roxy-forecast-timeline\",\n \"pascal\": \"RoxyForecastTimeline\",\n \"operationId\": \"findSignificantDates\"\n },\n \"post_forecast_transits\": {\n \"tag\": \"roxy-forecast-timeline\",\n \"pascal\": \"RoxyForecastTimeline\",\n \"operationId\": \"forecastTransits\"\n },\n \"post_forecast_digest\": {\n \"tag\": \"roxy-forecast-digest\",\n \"pascal\": \"RoxyForecastDigest\",\n \"operationId\": \"generateDigest\"\n },\n \"post_chinese_astrology_bazi_chart\": {\n \"tag\": \"roxy-bazi-chart\",\n \"pascal\": \"RoxyBaziChart\",\n \"operationId\": \"generateBaziChart\"\n },\n \"post_chinese_astrology_bazi_luck_pillars\": {\n \"tag\": \"roxy-luck-pillars\",\n \"pascal\": \"RoxyLuckPillars\",\n \"operationId\": \"calculateLuckPillars\"\n },\n \"post_chinese_astrology_zodiac_sign\": {\n \"tag\": \"roxy-zodiac-card\",\n \"pascal\": \"RoxyZodiacCard\",\n \"operationId\": \"calculateZodiacAnimal\",\n \"attrs\": {\n \"mode\": \"sign\"\n }\n },\n \"get_chinese_astrology_zodiac_animals_id\": {\n \"tag\": \"roxy-zodiac-card\",\n \"pascal\": \"RoxyZodiacCard\",\n \"operationId\": \"getZodiacAnimal\",\n \"attrs\": {\n \"mode\": \"animal\"\n }\n },\n \"get_chinese_astrology_zodiac_id_daily\": {\n \"tag\": \"roxy-zodiac-card\",\n \"pascal\": \"RoxyZodiacCard\",\n \"operationId\": \"getDailyZodiacReading\",\n \"attrs\": {\n \"mode\": \"daily\"\n }\n },\n \"get_chinese_astrology_zodiac_compatibility_sign1_sign2\": {\n \"tag\": \"roxy-zodiac-card\",\n \"pascal\": \"RoxyZodiacCard\",\n \"operationId\": \"getZodiacCompatibility\",\n \"attrs\": {\n \"mode\": \"compatibility\"\n }\n },\n \"get_chinese_astrology_calendar_day_date\": {\n \"tag\": \"roxy-almanac-day\",\n \"pascal\": \"RoxyAlmanacDay\",\n \"operationId\": \"getAlmanacDay\",\n \"attrs\": {\n \"mode\": \"day\"\n }\n },\n \"get_chinese_astrology_calendar_monthly\": {\n \"tag\": \"roxy-almanac-day\",\n \"pascal\": \"RoxyAlmanacDay\",\n \"operationId\": \"getMonthlyAlmanac\",\n \"attrs\": {\n \"mode\": \"month\"\n }\n },\n \"post_chinese_astrology_calendar_auspicious_days\": {\n \"tag\": \"roxy-almanac-day\",\n \"pascal\": \"RoxyAlmanacDay\",\n \"operationId\": \"lookupAuspiciousDays\",\n \"attrs\": {\n \"mode\": \"auspicious\"\n }\n },\n \"post_feng_shui_flying_stars_natal\": {\n \"tag\": \"roxy-flying-star-chart\",\n \"pascal\": \"RoxyFlyingStarChart\",\n \"operationId\": \"generateFlyingStarChart\",\n \"attrs\": {\n \"mode\": \"natal\"\n }\n },\n \"get_feng_shui_flying_stars_annual_year\": {\n \"tag\": \"roxy-flying-star-chart\",\n \"pascal\": \"RoxyFlyingStarChart\",\n \"operationId\": \"getAnnualFlyingStars\",\n \"attrs\": {\n \"mode\": \"annual\"\n }\n },\n \"post_feng_shui_kua\": {\n \"tag\": \"roxy-kua-card\",\n \"pascal\": \"RoxyKuaCard\",\n \"operationId\": \"calculateKuaNumber\",\n \"attrs\": {\n \"mode\": \"kua\"\n }\n },\n \"post_feng_shui_eight_mansions\": {\n \"tag\": \"roxy-kua-card\",\n \"pascal\": \"RoxyKuaCard\",\n \"operationId\": \"generateEightMansions\",\n \"attrs\": {\n \"mode\": \"mansions\"\n }\n },\n \"post_mesoamerican_astrology_mayan_tzolkin\": {\n \"tag\": \"roxy-mayan-day-sign\",\n \"pascal\": \"RoxyMayanDaySign\",\n \"operationId\": \"calculateTzolkin\",\n \"attrs\": {\n \"mode\": \"day\"\n }\n },\n \"post_mesoamerican_astrology_mayan_chart\": {\n \"tag\": \"roxy-mayan-day-sign\",\n \"pascal\": \"RoxyMayanDaySign\",\n \"operationId\": \"generateMayanChart\",\n \"attrs\": {\n \"mode\": \"chart\"\n }\n },\n \"post_vastu_mandala\": {\n \"tag\": \"roxy-vastu-mandala\",\n \"pascal\": \"RoxyVastuMandala\",\n \"operationId\": \"generateMandala\",\n \"attrs\": {\n \"mode\": \"mandala\"\n }\n },\n \"post_vastu_entrance\": {\n \"tag\": \"roxy-vastu-mandala\",\n \"pascal\": \"RoxyVastuMandala\",\n \"operationId\": \"calculateEntrancePada\",\n \"attrs\": {\n \"mode\": \"entrance\"\n }\n },\n \"post_biorhythm_daily\": {\n \"tag\": \"roxy-biorhythm-chart\",\n \"pascal\": \"RoxyBiorhythmChart\",\n \"operationId\": \"getDailyBiorhythm\",\n \"attrs\": {\n \"mode\": \"daily\"\n }\n },\n \"post_biorhythm_forecast\": {\n \"tag\": \"roxy-biorhythm-chart\",\n \"pascal\": \"RoxyBiorhythmChart\",\n \"operationId\": \"getForecast\",\n \"attrs\": {\n \"mode\": \"forecast\"\n }\n },\n \"post_biorhythm_critical_days\": {\n \"tag\": \"roxy-biorhythm-chart\",\n \"pascal\": \"RoxyBiorhythmChart\",\n \"operationId\": \"getCriticalDays\",\n \"attrs\": {\n \"mode\": \"critical-days\"\n }\n },\n \"post_ayurveda_constitution\": {\n \"tag\": \"roxy-dosha-constitution\",\n \"pascal\": \"RoxyDoshaConstitution\",\n \"operationId\": \"calculateAyurvedicConstitution\"\n },\n \"get_iching_hexagrams_random\": {\n \"tag\": \"roxy-hexagram\",\n \"pascal\": \"RoxyHexagram\",\n \"operationId\": \"getRandomHexagram\"\n },\n \"get_crystals_id\": {\n \"tag\": \"roxy-crystal-card\",\n \"pascal\": \"RoxyCrystalCard\",\n \"operationId\": \"getCrystal\"\n },\n \"get_crystals_chakra\": {\n \"tag\": \"roxy-crystal-grid\",\n \"pascal\": \"RoxyCrystalGrid\",\n \"operationId\": \"getCrystalsByChakra\"\n },\n \"get_crystals_element\": {\n \"tag\": \"roxy-crystal-grid\",\n \"pascal\": \"RoxyCrystalGrid\",\n \"operationId\": \"getCrystalsByElement\"\n },\n \"get_crystals_zodiac_sign\": {\n \"tag\": \"roxy-crystal-grid\",\n \"pascal\": \"RoxyCrystalGrid\",\n \"operationId\": \"getCrystalsByZodiac\"\n },\n \"get_dreams_symbols_id\": {\n \"tag\": \"roxy-dream-card\",\n \"pascal\": \"RoxyDreamCard\",\n \"operationId\": \"getDreamSymbol\"\n },\n \"get_dreams_symbols\": {\n \"tag\": \"roxy-dream-search\",\n \"pascal\": \"RoxyDreamSearch\",\n \"operationId\": \"searchDreamSymbols\"\n },\n \"get_angel_numbers_number\": {\n \"tag\": \"roxy-angel-number-card\",\n \"pascal\": \"RoxyAngelNumberCard\",\n \"operationId\": \"getAngelNumber\"\n },\n \"get_angel_numbers_lookup\": {\n \"tag\": \"roxy-angel-number-lookup\",\n \"pascal\": \"RoxyAngelNumberLookup\",\n \"operationId\": \"analyzeNumberSequence\"\n },\n \"get_astrology_signs_id\": {\n \"tag\": \"roxy-reference-card\",\n \"pascal\": \"RoxyReferenceCard\",\n \"operationId\": \"getZodiacSign\"\n },\n \"get_astrology_planet_meanings_id\": {\n \"tag\": \"roxy-reference-card\",\n \"pascal\": \"RoxyReferenceCard\",\n \"operationId\": \"getPlanetMeaning\"\n },\n \"get_vedic_astrology_rashis_id\": {\n \"tag\": \"roxy-reference-card\",\n \"pascal\": \"RoxyReferenceCard\",\n \"operationId\": \"getRashi\"\n },\n \"get_iching_trigrams_id\": {\n \"tag\": \"roxy-reference-card\",\n \"pascal\": \"RoxyReferenceCard\",\n \"operationId\": \"getTrigram\"\n },\n \"get_human_design_gates_number\": {\n \"tag\": \"roxy-reference-card\",\n \"pascal\": \"RoxyReferenceCard\",\n \"operationId\": \"getGate\"\n },\n \"get_human_design_centers_id\": {\n \"tag\": \"roxy-reference-card\",\n \"pascal\": \"RoxyReferenceCard\",\n \"operationId\": \"getCenter\"\n },\n \"get_numerology_meanings_number\": {\n \"tag\": \"roxy-reference-card\",\n \"pascal\": \"RoxyReferenceCard\",\n \"operationId\": \"getNumberMeaning\"\n },\n \"get_numerology_compound_number\": {\n \"tag\": \"roxy-reference-card\",\n \"pascal\": \"RoxyReferenceCard\",\n \"operationId\": \"getCompoundNumber\"\n },\n \"get_vedic_astrology_avasthas_id\": {\n \"tag\": \"roxy-reference-card\",\n \"pascal\": \"RoxyReferenceCard\",\n \"operationId\": \"getAvastha\"\n }\n};\n", "import {\n\tTOOL_COMPONENTS,\n\ttype ToolComponentEntry,\n} from '../generated/tool-components.js';\n\n/** The component that renders one MCP tool result, plus the name it was matched on. */\nexport interface ToolComponent extends ToolComponentEntry {\n\t/** The name the lookup resolved, with any server prefix removed. */\n\ttoolName: string;\n}\n\n/**\n * The component that renders the result of one MCP tool call, or `undefined` when nothing in the library draws that shape.\n *\n * @remarks\n * The name is what every model vendor hands back beside a tool result, so it is the key this resolves on. A host is free to prefix it with the server the tool came from and a colon; ours never contain one, so everything up to the last colon is dropped before the lookup.\n *\n * The table is resolved at build time, so this is a property read rather than a scan and the browser carries only the four fields a caller acts on.\n *\n * The result is a `data` consumer like any other: parse the JSON out of the tool result, set it on the element, and set the `attrs` beside it.\n *\n * @example\n * ```ts\n * const found = componentForTool('post_tarot_spreads_three_card');\n * if (found) {\n * const el = document.createElement(found.tag);\n * for (const [name, value] of Object.entries(found.attrs ?? {})) el.setAttribute(name, value);\n * el.data = JSON.parse(result.content[0].text);\n * }\n * ```\n */\nexport function componentForTool(name: string): ToolComponent | undefined {\n\tconst prefix = name.lastIndexOf(':');\n\tconst toolName = prefix === -1 ? name : name.slice(prefix + 1);\n\tconst found = TOOL_COMPONENTS[toolName];\n\treturn found ? { ...found, toolName } : undefined;\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["/**\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 * {@link ensureLocaleLoaded} is the other half and is OPT-IN: it loads the label\n * catalogue for one language from the same release, so a non-English app calls\n * both. There is one catalogue, shipped by `@roxyapi/ui` and read by every\n * wrapper, so nothing is restated here.\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.39.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/** Every language a label catalogue ships for. English is absent on purpose: the catalogue key IS the English string, so an English page downloads nothing. */\nexport const ROXY_UI_LOCALES = [\"de\",\"es\",\"fr\",\"hi\",\"pt\",\"ru\",\"tr\",\"zh-Hans\",\"zh-Hant\"] as const;\n\nconst localesLoaded = new Map<string, Promise<void>>();\n\n/**\n * Load the label catalogue for one language, so the components write their own\n * headings, buttons, empty states and form labels in it.\n *\n * Call it once at app entry, beside `ensureScriptLoaded`. The components read the\n * language from the page (their own `lang` attribute, the nearest ancestor\n * carrying one, or `<html lang>`), so this call supplies the WORDS and the page\n * supplies the CHOICE. Loading a catalogue a page never asks for is harmless.\n *\n * `es-AR`, `es-MX` and `es-419` all resolve to the `es` catalogue, so pass the\n * page tag as it stands. English resolves to nothing at all and is not an error:\n * the catalogue is keyed by the English text, so an English page needs no payload.\n * A language outside `ROXY_UI_LOCALES` resolves the same way rather than appending\n * a script tag that 404s.\n *\n * `version` and `baseUrl` behave exactly as they do for {@link ensureScriptLoaded},\n * and passing the same `baseUrl` to both is what an air-gapped or strict-CSP host\n * needs: copy `node_modules/@roxyapi/ui/dist/cdn/` onto your own origin, which\n * carries `locales/` beside `roxy-ui.js`.\n *\n * @example\n * ```ts\n * import { ensureScriptLoaded, ensureLocaleLoaded } from '@roxyapi/ui-vue';\n *\n * ensureScriptLoaded();\n * ensureLocaleLoaded(document.documentElement.lang);\n * ```\n */\nexport function ensureLocaleLoaded(\n\tlang: string,\n\tversion: string = ROXY_UI_VERSION,\n\tbaseUrl?: string,\n): Promise<void> {\n\tif (typeof document === 'undefined') return Promise.resolve();\n\tconst base = (lang || '').toLowerCase().split('-')[0] ?? '';\n\tif (!(ROXY_UI_LOCALES as readonly string[]).includes(base)) {\n\t\treturn Promise.resolve();\n\t}\n\tconst existing = localesLoaded.get(base);\n\tif (existing) return existing;\n\n\tconst pending = new Promise<void>((resolve, reject) => {\n\t\tconst id = `${SCRIPT_ID}-locale-${base}`;\n\t\tlet el = document.getElementById(id) as HTMLScriptElement | null;\n\t\tif (el) {\n\t\t\tif (el.dataset.loaded === 'true') resolve();\n\t\t\telse {\n\t\t\t\tel.addEventListener('load', () => resolve());\n\t\t\t\tel.addEventListener('error', () => reject(new Error(`roxy-ui locale ${base} load failed`)));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tel = document.createElement('script');\n\t\tel.id = id;\n\t\tel.src = `${baseUrl ?? buildBase(version)}/locales/${base}.js`;\n\t\tel.async = true;\n\t\tel.crossOrigin = 'anonymous';\n\t\tel.addEventListener('load', () => {\n\t\t\tel!.dataset.loaded = 'true';\n\t\t\tresolve();\n\t\t});\n\t\tel.addEventListener('error', () => reject(new Error(`roxy-ui locale ${base} load failed`)));\n\t\tdocument.head.appendChild(el);\n\t});\n\tlocalesLoaded.set(base, pending);\n\treturn pending;\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", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { NatalChartResponse } from '../types/index.js';\n\nexport interface RoxyNatalChartProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: NatalChartResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyNatalChart = defineComponent({\n\tname: 'RoxyNatalChart',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyNatalChartProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyNatalChartProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyNatalChartProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyNatalChartProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyNatalChartProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyNatalChartProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyNatalChartProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyNatalChartProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyNatalChartProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyNatalChartProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyNatalChartProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyNatalChartProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyNatalChartProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyNatalChartProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyNatalChartProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-natal-chart', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateSynastryResponse, NatalChartResponse } from '../types/index.js';\n\nexport interface RoxySynastryChartProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateSynastryResponse & { person1?: { planets?: NatalChartResponse['planets'] }; person2?: { planets?: NatalChartResponse['planets'] } };\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxySynastryChart = defineComponent({\n\tname: 'RoxySynastryChart',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxySynastryChartProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxySynastryChartProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxySynastryChartProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxySynastryChartProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxySynastryChartProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxySynastryChartProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxySynastryChartProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxySynastryChartProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxySynastryChartProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxySynastryChartProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxySynastryChartProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxySynastryChartProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxySynastryChartProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxySynastryChartProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxySynastryChartProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-synastry-chart', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { NatalChartResponse } from '../types/index.js';\n\nexport interface RoxyWesternPlanetsTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: NatalChartResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyWesternPlanetsTable = defineComponent({\n\tname: 'RoxyWesternPlanetsTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyWesternPlanetsTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyWesternPlanetsTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyWesternPlanetsTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyWesternPlanetsTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyWesternPlanetsTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyWesternPlanetsTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyWesternPlanetsTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyWesternPlanetsTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyWesternPlanetsTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyWesternPlanetsTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyWesternPlanetsTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyWesternPlanetsTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyWesternPlanetsTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyWesternPlanetsTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyWesternPlanetsTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-western-planets-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { TransitsResponse } from '../types/index.js';\n\nexport interface RoxyTransitsTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: TransitsResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyTransitsTable = defineComponent({\n\tname: 'RoxyTransitsTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyTransitsTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyTransitsTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyTransitsTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyTransitsTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyTransitsTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyTransitsTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyTransitsTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyTransitsTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyTransitsTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyTransitsTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyTransitsTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyTransitsTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyTransitsTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyTransitsTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyTransitsTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-transits-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateTransitAspectsResponse } from '../types/index.js';\n\nexport interface RoxyTransitWheelProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateTransitAspectsResponse;\n\t/** Heading above the bi-wheel. Defaults to \"Transits\". */\n\theading?: string;\n\t/** Natal Ascendant as an ecliptic longitude in degrees (0-360), supplied by the page from a chart endpoint that returns one. Rotates the wheel so that longitude falls on the left horizon and draws the ASC/DSC axis. Leave it unset and the wheel keeps a fixed zodiacal orientation with 0 degrees Aries on the left. */\n\tascendant?: number;\n\t/** The twelve natal house cusps, supplied by the page: the /astrology/natal-chart `houses` array verbatim, or twelve bare cusp longitudes in house order. The transit-aspects response numbers every body by house but returns no cusp longitudes, so this is the only way the wheel can draw the sectors those numbers refer to. Supplying it draws the twelve cusps and their numbers, and rotates the first cusp onto the left horizon unless an ascendant is also given. Anything that does not resolve to houses 1 to 12 with finite longitudes is ignored rather than half drawn. */\n\thouses?: Array<{ number: number; longitude: number }> | number[];\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyTransitWheel = defineComponent({\n\tname: 'RoxyTransitWheel',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyTransitWheelProps['data']> },\n\t\theading: { type: String as PropType<RoxyTransitWheelProps['heading']> },\n\t\tascendant: { type: Number as PropType<RoxyTransitWheelProps['ascendant']> },\n\t\thouses: { type: Array as PropType<RoxyTransitWheelProps['houses']> },\n\t\tendpoint: { type: String as PropType<RoxyTransitWheelProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyTransitWheelProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyTransitWheelProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyTransitWheelProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyTransitWheelProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyTransitWheelProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyTransitWheelProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyTransitWheelProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyTransitWheelProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyTransitWheelProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyTransitWheelProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyTransitWheelProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyTransitWheelProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyTransitWheelProps['hideSections']> },\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.heading !== undefined) elementProps['.heading'] = props.heading;\n\t\t\tif (props.ascendant !== undefined) elementProps['.ascendant'] = props.ascendant;\n\t\t\tif (props.houses !== undefined) elementProps['.houses'] = props.houses;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-transit-wheel', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateAspectsResponse, CalculateTransitAspectsResponse, DetectAspectPatternsResponse } from '../types/index.js';\n\nexport interface RoxyAspectsTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateAspectsResponse | CalculateTransitAspectsResponse | DetectAspectPatternsResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyAspectsTable = defineComponent({\n\tname: 'RoxyAspectsTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyAspectsTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyAspectsTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyAspectsTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyAspectsTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyAspectsTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyAspectsTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyAspectsTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyAspectsTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyAspectsTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyAspectsTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyAspectsTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyAspectsTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyAspectsTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyAspectsTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyAspectsTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-aspects-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetCurrentMoonPhaseResponse, GetMoonCalendarResponse, GetUpcomingMoonPhasesResponse } from '../types/index.js';\n\nexport interface RoxyMoonPhaseProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetCurrentMoonPhaseResponse | GetUpcomingMoonPhasesResponse | GetMoonCalendarResponse;\n\t/** Which moon-phase response shape to render: a single current phase, an upcoming list, or a calendar. */\n\tmode?: 'current' | 'upcoming' | 'calendar';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyMoonPhase = defineComponent({\n\tname: 'RoxyMoonPhase',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyMoonPhaseProps['data']> },\n\t\tmode: { type: String as PropType<RoxyMoonPhaseProps['mode']> },\n\t\tendpoint: { type: String as PropType<RoxyMoonPhaseProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyMoonPhaseProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyMoonPhaseProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyMoonPhaseProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyMoonPhaseProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyMoonPhaseProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyMoonPhaseProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyMoonPhaseProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyMoonPhaseProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyMoonPhaseProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyMoonPhaseProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyMoonPhaseProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyMoonPhaseProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyMoonPhaseProps['hideSections']> },\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.mode !== undefined) elementProps['.mode'] = props.mode;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-moon-phase', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetDailyHoroscopeResponse, GetMonthlyHoroscopeResponse, GetWeeklyHoroscopeResponse, GetYearlyHoroscopeResponse } from '../types/index.js';\n\nexport interface RoxyHoroscopeCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetDailyHoroscopeResponse | GetWeeklyHoroscopeResponse | GetMonthlyHoroscopeResponse | GetYearlyHoroscopeResponse;\n\t/** Which horoscope cadence the response is for. Selects the heading and date framing. */\n\tperiod?: 'daily' | 'weekly' | 'monthly' | 'yearly';\n\t/** Which shape the written reading takes. The endpoint returns the same reading twice, once whole as the column and once split into six topic sections, so exactly one is rendered. Defaults to auto, which prefers the column and falls back to the sections for a response that carries none. */\n\tlayout?: 'auto' | 'column' | 'sections';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyHoroscopeCard = defineComponent({\n\tname: 'RoxyHoroscopeCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyHoroscopeCardProps['data']> },\n\t\tperiod: { type: String as PropType<RoxyHoroscopeCardProps['period']> },\n\t\tlayout: { type: String as PropType<RoxyHoroscopeCardProps['layout']> },\n\t\tendpoint: { type: String as PropType<RoxyHoroscopeCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyHoroscopeCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyHoroscopeCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyHoroscopeCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyHoroscopeCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyHoroscopeCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyHoroscopeCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyHoroscopeCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyHoroscopeCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyHoroscopeCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyHoroscopeCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyHoroscopeCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyHoroscopeCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyHoroscopeCardProps['hideSections']> },\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.period !== undefined) elementProps['.period'] = props.period;\n\t\t\tif (props.layout !== undefined) elementProps['.layout'] = props.layout;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-horoscope-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { AstrocartographyResponse } from '../types/index.js';\n\nexport interface RoxyAstrocartographyMapProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: AstrocartographyResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyAstrocartographyMap = defineComponent({\n\tname: 'RoxyAstrocartographyMap',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyAstrocartographyMapProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyAstrocartographyMapProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyAstrocartographyMapProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyAstrocartographyMapProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyAstrocartographyMapProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyAstrocartographyMapProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyAstrocartographyMapProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyAstrocartographyMapProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyAstrocartographyMapProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyAstrocartographyMapProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyAstrocartographyMapProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyAstrocartographyMapProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyAstrocartographyMapProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyAstrocartographyMapProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyAstrocartographyMapProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-astrocartography-map', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { LocalSpaceResponse } from '../types/index.js';\n\nexport interface RoxyLocalSpaceCompassProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: LocalSpaceResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyLocalSpaceCompass = defineComponent({\n\tname: 'RoxyLocalSpaceCompass',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyLocalSpaceCompassProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyLocalSpaceCompassProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyLocalSpaceCompassProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyLocalSpaceCompassProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyLocalSpaceCompassProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyLocalSpaceCompassProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyLocalSpaceCompassProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyLocalSpaceCompassProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyLocalSpaceCompassProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyLocalSpaceCompassProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyLocalSpaceCompassProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyLocalSpaceCompassProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyLocalSpaceCompassProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyLocalSpaceCompassProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyLocalSpaceCompassProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-local-space-compass', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { RelocationChartResponse } from '../types/index.js';\n\nexport interface RoxyRelocationWheelProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: RelocationChartResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyRelocationWheel = defineComponent({\n\tname: 'RoxyRelocationWheel',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyRelocationWheelProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyRelocationWheelProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyRelocationWheelProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyRelocationWheelProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyRelocationWheelProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyRelocationWheelProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyRelocationWheelProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyRelocationWheelProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyRelocationWheelProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyRelocationWheelProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyRelocationWheelProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyRelocationWheelProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyRelocationWheelProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyRelocationWheelProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyRelocationWheelProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-relocation-wheel', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { ArabicLotsResponse, AsteroidsResponse, LilithResponse, ProgressionsResponse, SolarArcResponse } from '../types/index.js';\n\nexport interface RoxyPositionsTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: AsteroidsResponse | LilithResponse | ProgressionsResponse | SolarArcResponse | ArabicLotsResponse;\n\t/** Override the auto-derived heading. Empty by default, in which case it is derived from the response shape (Asteroids, Black Moon Lilith, Secondary progressions, Solar arc directions, or Arabic lots). */\n\theading?: string;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyPositionsTable = defineComponent({\n\tname: 'RoxyPositionsTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyPositionsTableProps['data']> },\n\t\theading: { type: String as PropType<RoxyPositionsTableProps['heading']> },\n\t\tendpoint: { type: String as PropType<RoxyPositionsTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyPositionsTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyPositionsTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyPositionsTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyPositionsTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyPositionsTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyPositionsTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyPositionsTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyPositionsTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyPositionsTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyPositionsTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyPositionsTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyPositionsTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyPositionsTableProps['hideSections']> },\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.heading !== undefined) elementProps['.heading'] = props.heading;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-positions-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetMonthlyEphemerisResponse, GetMonthlyTropicalEphemerisResponse } from '../types/index.js';\n\nexport interface RoxyEphemerisTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetMonthlyTropicalEphemerisResponse | GetMonthlyEphemerisResponse;\n\t/** Card heading above the month. Defaults to \"Ephemeris\", translated into the page language like every other label the component writes. */\n\theading?: string;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyEphemerisTable = defineComponent({\n\tname: 'RoxyEphemerisTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyEphemerisTableProps['data']> },\n\t\theading: { type: String as PropType<RoxyEphemerisTableProps['heading']> },\n\t\tendpoint: { type: String as PropType<RoxyEphemerisTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyEphemerisTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyEphemerisTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyEphemerisTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyEphemerisTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyEphemerisTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyEphemerisTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyEphemerisTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyEphemerisTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyEphemerisTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyEphemerisTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyEphemerisTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyEphemerisTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyEphemerisTableProps['hideSections']> },\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.heading !== undefined) elementProps['.heading'] = props.heading;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-ephemeris-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { FixedStarsResponse } from '../types/index.js';\n\nexport interface RoxyFixedStarsProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: FixedStarsResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyFixedStars = defineComponent({\n\tname: 'RoxyFixedStars',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyFixedStarsProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyFixedStarsProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyFixedStarsProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyFixedStarsProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyFixedStarsProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyFixedStarsProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyFixedStarsProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyFixedStarsProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyFixedStarsProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyFixedStarsProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyFixedStarsProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyFixedStarsProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyFixedStarsProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyFixedStarsProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyFixedStarsProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-fixed-stars', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { ProfectionsResponse } from '../types/index.js';\n\nexport interface RoxyProfectionCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: ProfectionsResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyProfectionCard = defineComponent({\n\tname: 'RoxyProfectionCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyProfectionCardProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyProfectionCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyProfectionCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyProfectionCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyProfectionCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyProfectionCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyProfectionCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyProfectionCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyProfectionCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyProfectionCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyProfectionCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyProfectionCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyProfectionCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyProfectionCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyProfectionCardProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-profection-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateBioCompatibilityResponse, CalculateCompatibilityResponse, CalculateNumCompatibilityResponse } from '../types/index.js';\n\nexport interface RoxyCompatibilityCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateCompatibilityResponse | CalculateNumCompatibilityResponse | CalculateBioCompatibilityResponse;\n\t/** Which compatibility domain the response is from. Themes the card and labels the category breakdown. */\n\tmode?: 'astrology' | 'numerology' | 'biorhythm';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyCompatibilityCard = defineComponent({\n\tname: 'RoxyCompatibilityCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyCompatibilityCardProps['data']> },\n\t\tmode: { type: String as PropType<RoxyCompatibilityCardProps['mode']> },\n\t\tendpoint: { type: String as PropType<RoxyCompatibilityCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyCompatibilityCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyCompatibilityCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyCompatibilityCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyCompatibilityCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyCompatibilityCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyCompatibilityCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyCompatibilityCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyCompatibilityCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyCompatibilityCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyCompatibilityCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyCompatibilityCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyCompatibilityCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyCompatibilityCardProps['hideSections']> },\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.mode !== undefined) elementProps['.mode'] = props.mode;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-compatibility-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { BirthChartResponse } from '../types/index.js';\n\nexport interface RoxyVedicKundliProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: BirthChartResponse;\n\t/** Initial regional kundli layout. The end user can switch styles at runtime via the visible tablist. */\n\tchartStyle?: 'south' | 'north' | 'east';\n\t/** Ascendant reference point. \"lagna\" (default) uses the Janma Lagna; \"moon\" renders the Chandra Lagna (Moon as house 1) from the same response. */\n\tchartReference?: 'lagna' | 'moon';\n\t/** Explicit rashi/sign name to pin as the ascendant, overriding both the Janma Lagna and chartReference. Empty by default. Use for Surya Lagna, Arudha Lagna, or any custom reference chart. */\n\tlagnaOverride?: string;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyVedicKundli = defineComponent({\n\tname: 'RoxyVedicKundli',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyVedicKundliProps['data']> },\n\t\tchartStyle: { type: String as PropType<RoxyVedicKundliProps['chartStyle']> },\n\t\tchartReference: { type: String as PropType<RoxyVedicKundliProps['chartReference']> },\n\t\tlagnaOverride: { type: String as PropType<RoxyVedicKundliProps['lagnaOverride']> },\n\t\tendpoint: { type: String as PropType<RoxyVedicKundliProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyVedicKundliProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyVedicKundliProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyVedicKundliProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyVedicKundliProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyVedicKundliProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyVedicKundliProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyVedicKundliProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyVedicKundliProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyVedicKundliProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyVedicKundliProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyVedicKundliProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyVedicKundliProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyVedicKundliProps['hideSections']> },\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.chartStyle !== undefined) elementProps['.chartStyle'] = props.chartStyle;\n\t\t\tif (props.chartReference !== undefined) elementProps['.chartReference'] = props.chartReference;\n\t\t\tif (props.lagnaOverride !== undefined) elementProps['.lagnaOverride'] = props.lagnaOverride;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-vedic-kundli', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { DivisionalChartResponse } from '../types/index.js';\n\nexport interface RoxyDivisionalChartProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: DivisionalChartResponse;\n\t/** Initial regional varga layout. The end user can switch styles at runtime via the visible tablist. */\n\tchartStyle?: 'south' | 'north' | 'east';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyDivisionalChart = defineComponent({\n\tname: 'RoxyDivisionalChart',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyDivisionalChartProps['data']> },\n\t\tchartStyle: { type: String as PropType<RoxyDivisionalChartProps['chartStyle']> },\n\t\tendpoint: { type: String as PropType<RoxyDivisionalChartProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyDivisionalChartProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyDivisionalChartProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyDivisionalChartProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyDivisionalChartProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyDivisionalChartProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyDivisionalChartProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyDivisionalChartProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyDivisionalChartProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyDivisionalChartProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyDivisionalChartProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyDivisionalChartProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyDivisionalChartProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyDivisionalChartProps['hideSections']> },\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.chartStyle !== undefined) elementProps['.chartStyle'] = props.chartStyle;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-divisional-chart', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { KpChartResponse } from '../types/index.js';\n\nexport interface RoxyKpChartProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: KpChartResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyKpChart = defineComponent({\n\tname: 'RoxyKpChart',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyKpChartProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyKpChartProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyKpChartProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyKpChartProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyKpChartProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyKpChartProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyKpChartProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyKpChartProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyKpChartProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyKpChartProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyKpChartProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyKpChartProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyKpChartProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyKpChartProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyKpChartProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-kp-chart', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { BirthChartResponse } from '../types/index.js';\n\nexport interface RoxyVedicPlanetsTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: BirthChartResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyVedicPlanetsTable = defineComponent({\n\tname: 'RoxyVedicPlanetsTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyVedicPlanetsTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyVedicPlanetsTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyVedicPlanetsTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyVedicPlanetsTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyVedicPlanetsTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyVedicPlanetsTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyVedicPlanetsTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyVedicPlanetsTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyVedicPlanetsTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyVedicPlanetsTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyVedicPlanetsTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyVedicPlanetsTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyVedicPlanetsTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyVedicPlanetsTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyVedicPlanetsTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-vedic-planets-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { KpPlanetsResponse } from '../types/index.js';\n\nexport interface RoxyKpPlanetsTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: KpPlanetsResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyKpPlanetsTable = defineComponent({\n\tname: 'RoxyKpPlanetsTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyKpPlanetsTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyKpPlanetsTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyKpPlanetsTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyKpPlanetsTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyKpPlanetsTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyKpPlanetsTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyKpPlanetsTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyKpPlanetsTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyKpPlanetsTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyKpPlanetsTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyKpPlanetsTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyKpPlanetsTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyKpPlanetsTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyKpPlanetsTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyKpPlanetsTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-kp-planets-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { KpRulingPlanetsResponse } from '../types/index.js';\n\nexport interface RoxyKpRulingPlanetsProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: KpRulingPlanetsResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyKpRulingPlanets = defineComponent({\n\tname: 'RoxyKpRulingPlanets',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyKpRulingPlanetsProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyKpRulingPlanetsProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyKpRulingPlanetsProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyKpRulingPlanetsProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyKpRulingPlanetsProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyKpRulingPlanetsProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyKpRulingPlanetsProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyKpRulingPlanetsProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyKpRulingPlanetsProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyKpRulingPlanetsProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyKpRulingPlanetsProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyKpRulingPlanetsProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyKpRulingPlanetsProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyKpRulingPlanetsProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyKpRulingPlanetsProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-kp-ruling-planets', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { AshtakavargaResponse } from '../types/index.js';\n\nexport interface RoxyAshtakavargaGridProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: AshtakavargaResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyAshtakavargaGrid = defineComponent({\n\tname: 'RoxyAshtakavargaGrid',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyAshtakavargaGridProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyAshtakavargaGridProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyAshtakavargaGridProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyAshtakavargaGridProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyAshtakavargaGridProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyAshtakavargaGridProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyAshtakavargaGridProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyAshtakavargaGridProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyAshtakavargaGridProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyAshtakavargaGridProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyAshtakavargaGridProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyAshtakavargaGridProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyAshtakavargaGridProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyAshtakavargaGridProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyAshtakavargaGridProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-ashtakavarga-grid', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { ShadbalaResponse } from '../types/index.js';\n\nexport interface RoxyShadbalaTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: ShadbalaResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyShadbalaTable = defineComponent({\n\tname: 'RoxyShadbalaTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyShadbalaTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyShadbalaTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyShadbalaTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyShadbalaTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyShadbalaTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyShadbalaTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyShadbalaTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyShadbalaTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyShadbalaTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyShadbalaTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyShadbalaTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyShadbalaTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyShadbalaTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyShadbalaTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyShadbalaTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-shadbala-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetCurrentDashaResponse, GetMajorDashasResponse, GetPranaDashasResponse, GetPratyantardashasResponse, GetSookshmaDashasResponse, GetSubDashasResponse } from '../types/index.js';\n\nexport interface RoxyDashaTimelineProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetCurrentDashaResponse | GetMajorDashasResponse | GetSubDashasResponse | GetPratyantardashasResponse | GetSookshmaDashasResponse | GetPranaDashasResponse;\n\t/** Which dasha response shape to render: the running periods, the major mahadashas, or one of the four drill-down levels (antardashas, pratyantardashas, sookshma dashas, prana dashas). */\n\tperiod?: 'current' | 'major' | 'sub' | 'antara' | 'sookshma' | 'prana';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyDashaTimeline = defineComponent({\n\tname: 'RoxyDashaTimeline',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyDashaTimelineProps['data']> },\n\t\tperiod: { type: String as PropType<RoxyDashaTimelineProps['period']> },\n\t\tendpoint: { type: String as PropType<RoxyDashaTimelineProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyDashaTimelineProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyDashaTimelineProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyDashaTimelineProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyDashaTimelineProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyDashaTimelineProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyDashaTimelineProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyDashaTimelineProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyDashaTimelineProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyDashaTimelineProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyDashaTimelineProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyDashaTimelineProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyDashaTimelineProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyDashaTimelineProps['hideSections']> },\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.period !== undefined) elementProps['.period'] = props.period;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-dasha-timeline', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CompatibilityResponse } from '../types/index.js';\n\nexport interface RoxyGunaMilanProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CompatibilityResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyGunaMilan = defineComponent({\n\tname: 'RoxyGunaMilan',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyGunaMilanProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyGunaMilanProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyGunaMilanProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyGunaMilanProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyGunaMilanProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyGunaMilanProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyGunaMilanProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyGunaMilanProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyGunaMilanProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyGunaMilanProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyGunaMilanProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyGunaMilanProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyGunaMilanProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyGunaMilanProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyGunaMilanProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-guna-milan', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetBasicPanchangResponse, GetDetailedPanchangResponse } from '../types/index.js';\n\nexport interface RoxyPanchangTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetBasicPanchangResponse | GetDetailedPanchangResponse;\n\t/** Whether the response is the basic five-limb panchang or the detailed muhurta set. Detailed mode shows the auspicious and inauspicious period sections. */\n\tdetail?: 'basic' | 'detailed';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyPanchangTable = defineComponent({\n\tname: 'RoxyPanchangTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyPanchangTableProps['data']> },\n\t\tdetail: { type: String as PropType<RoxyPanchangTableProps['detail']> },\n\t\tendpoint: { type: String as PropType<RoxyPanchangTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyPanchangTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyPanchangTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyPanchangTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyPanchangTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyPanchangTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyPanchangTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyPanchangTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyPanchangTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyPanchangTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyPanchangTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyPanchangTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyPanchangTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyPanchangTableProps['hideSections']> },\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.detail !== undefined) elementProps['.detail'] = props.detail;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-panchang-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateDrishtiResponse } from '../types/index.js';\n\nexport interface RoxyVedicAspectsProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateDrishtiResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyVedicAspects = defineComponent({\n\tname: 'RoxyVedicAspects',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyVedicAspectsProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyVedicAspectsProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyVedicAspectsProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyVedicAspectsProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyVedicAspectsProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyVedicAspectsProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyVedicAspectsProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyVedicAspectsProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyVedicAspectsProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyVedicAspectsProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyVedicAspectsProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyVedicAspectsProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyVedicAspectsProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyVedicAspectsProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyVedicAspectsProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-vedic-aspects', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetHoraResponse } from '../types/index.js';\n\nexport interface RoxyHoraTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetHoraResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyHoraTable = defineComponent({\n\tname: 'RoxyHoraTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyHoraTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyHoraTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyHoraTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyHoraTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyHoraTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyHoraTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyHoraTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyHoraTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyHoraTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyHoraTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyHoraTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyHoraTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyHoraTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyHoraTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyHoraTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-hora-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetChoghadiyaResponse } from '../types/index.js';\n\nexport interface RoxyChoghadiyaGridProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetChoghadiyaResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyChoghadiyaGrid = defineComponent({\n\tname: 'RoxyChoghadiyaGrid',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyChoghadiyaGridProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyChoghadiyaGridProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyChoghadiyaGridProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyChoghadiyaGridProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyChoghadiyaGridProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyChoghadiyaGridProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyChoghadiyaGridProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyChoghadiyaGridProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyChoghadiyaGridProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyChoghadiyaGridProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyChoghadiyaGridProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyChoghadiyaGridProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyChoghadiyaGridProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyChoghadiyaGridProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyChoghadiyaGridProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-choghadiya-grid', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { HeliacalResponse } from '../types/index.js';\n\nexport interface RoxyHeliacalTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: HeliacalResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyHeliacalTable = defineComponent({\n\tname: 'RoxyHeliacalTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyHeliacalTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyHeliacalTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyHeliacalTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyHeliacalTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyHeliacalTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyHeliacalTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyHeliacalTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyHeliacalTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyHeliacalTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyHeliacalTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyHeliacalTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyHeliacalTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyHeliacalTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyHeliacalTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyHeliacalTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-heliacal-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetVedicDailyReadingResponse } from '../types/index.js';\n\nexport interface RoxyVedicDailyProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetVedicDailyReadingResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyVedicDaily = defineComponent({\n\tname: 'RoxyVedicDaily',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyVedicDailyProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyVedicDailyProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyVedicDailyProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyVedicDailyProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyVedicDailyProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyVedicDailyProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyVedicDailyProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyVedicDailyProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyVedicDailyProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyVedicDailyProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyVedicDailyProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyVedicDailyProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyVedicDailyProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyVedicDailyProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyVedicDailyProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-vedic-daily', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateTransitResponse } from '../types/index.js';\n\nexport interface RoxyGocharaTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateTransitResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyGocharaTable = defineComponent({\n\tname: 'RoxyGocharaTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyGocharaTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyGocharaTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyGocharaTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyGocharaTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyGocharaTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyGocharaTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyGocharaTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyGocharaTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyGocharaTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyGocharaTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyGocharaTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyGocharaTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyGocharaTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyGocharaTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyGocharaTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-gochara-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { BhavaBalaResponse } from '../types/index.js';\n\nexport interface RoxyBhavaBalaTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: BhavaBalaResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyBhavaBalaTable = defineComponent({\n\tname: 'RoxyBhavaBalaTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyBhavaBalaTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyBhavaBalaTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyBhavaBalaTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyBhavaBalaTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyBhavaBalaTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyBhavaBalaTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyBhavaBalaTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyBhavaBalaTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyBhavaBalaTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyBhavaBalaTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyBhavaBalaTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyBhavaBalaTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyBhavaBalaTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyBhavaBalaTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyBhavaBalaTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-bhava-bala-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { BhavChalitResponse } from '../types/index.js';\n\nexport interface RoxyBhavChalitTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: BhavChalitResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyBhavChalitTable = defineComponent({\n\tname: 'RoxyBhavChalitTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyBhavChalitTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyBhavChalitTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyBhavChalitTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyBhavChalitTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyBhavChalitTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyBhavChalitTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyBhavChalitTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyBhavChalitTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyBhavChalitTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyBhavChalitTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyBhavChalitTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyBhavChalitTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyBhavChalitTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyBhavChalitTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyBhavChalitTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-bhav-chalit-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { UpagrahaResponse } from '../types/index.js';\n\nexport interface RoxyUpagrahaTableProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: UpagrahaResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyUpagrahaTable = defineComponent({\n\tname: 'RoxyUpagrahaTable',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyUpagrahaTableProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyUpagrahaTableProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyUpagrahaTableProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyUpagrahaTableProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyUpagrahaTableProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyUpagrahaTableProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyUpagrahaTableProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyUpagrahaTableProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyUpagrahaTableProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyUpagrahaTableProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyUpagrahaTableProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyUpagrahaTableProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyUpagrahaTableProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyUpagrahaTableProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyUpagrahaTableProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-upagraha-table', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CharaKarakaResponse } from '../types/index.js';\n\nexport interface RoxyCharaKarakasProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CharaKarakaResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyCharaKarakas = defineComponent({\n\tname: 'RoxyCharaKarakas',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyCharaKarakasProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyCharaKarakasProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyCharaKarakasProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyCharaKarakasProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyCharaKarakasProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyCharaKarakasProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyCharaKarakasProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyCharaKarakasProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyCharaKarakasProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyCharaKarakasProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyCharaKarakasProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyCharaKarakasProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyCharaKarakasProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyCharaKarakasProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyCharaKarakasProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-chara-karakas', elementProps);\n\t\t};\n\t},\n});\n", "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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: 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\tsubmitUrl: { type: String as PropType<RoxyArudhaPadasProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyArudhaPadasProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyArudhaPadasProps['locationUrl']> },\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\tremember: { type: Boolean as PropType<RoxyArudhaPadasProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyArudhaPadasProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyArudhaPadasProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyArudhaPadasProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-arudha-padas', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { DetectYogasResponse, GetYogaResponse, ListYogasResponse } from '../types/index.js';\n\nexport interface RoxyYogaListProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: ListYogasResponse | GetYogaResponse | DetectYogasResponse | { yogas: GetYogaResponse[] };\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyYogaList = defineComponent({\n\tname: 'RoxyYogaList',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyYogaListProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyYogaListProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyYogaListProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyYogaListProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyYogaListProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyYogaListProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyYogaListProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyYogaListProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyYogaListProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyYogaListProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyYogaListProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyYogaListProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyYogaListProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyYogaListProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyYogaListProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-yoga-list', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { NakshatraResponse } from '../types/index.js';\n\nexport interface RoxyNakshatraCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: NakshatraResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyNakshatraCard = defineComponent({\n\tname: 'RoxyNakshatraCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyNakshatraCardProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyNakshatraCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyNakshatraCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyNakshatraCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyNakshatraCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyNakshatraCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyNakshatraCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyNakshatraCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyNakshatraCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyNakshatraCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyNakshatraCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyNakshatraCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyNakshatraCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyNakshatraCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyNakshatraCardProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-nakshatra-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { KalsarpaResponse, ManglikResponse, SadhesatiResponse } from '../types/index.js';\n\nexport interface RoxyDoshaCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: ManglikResponse | KalsarpaResponse | SadhesatiResponse;\n\t/** Which dosha to title and theme. The three dosha responses share a shape, so the card cannot infer this. Defaults to manglik, so set it explicitly per card. */\n\ttype?: 'manglik' | 'kalsarpa' | 'sadhesati';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyDoshaCard = defineComponent({\n\tname: 'RoxyDoshaCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyDoshaCardProps['data']> },\n\t\ttype: { type: String as PropType<RoxyDoshaCardProps['type']> },\n\t\tendpoint: { type: String as PropType<RoxyDoshaCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyDoshaCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyDoshaCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyDoshaCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyDoshaCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyDoshaCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyDoshaCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyDoshaCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyDoshaCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyDoshaCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyDoshaCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyDoshaCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyDoshaCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyDoshaCardProps['hideSections']> },\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.type !== undefined) elementProps['.type'] = props.type;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-dosha-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateBirthDayResponse, CalculateExpressionResponse, CalculateLifePathResponse, CalculateMaturityResponse, CalculatePersonalDayResponse, CalculatePersonalMonthResponse, CalculatePersonalYearResponse, CalculatePersonalityResponse, CalculateSoulUrgeResponse, GenerateNumerologyChartResponse, GetDailyNumberResponse } from '../types/index.js';\n\nexport interface RoxyNumerologyCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateLifePathResponse | CalculateExpressionResponse | CalculateSoulUrgeResponse | CalculatePersonalityResponse | CalculateBirthDayResponse | CalculateMaturityResponse | GetDailyNumberResponse | CalculatePersonalDayResponse | CalculatePersonalMonthResponse | CalculatePersonalYearResponse | GenerateNumerologyChartResponse;\n\t/** Which numerology response the card is showing. Selects the heading and which fields are surfaced. */\n\ttype?: 'life-path' | 'expression' | 'soul-urge' | 'personality' | 'birth-day' | 'maturity' | 'daily' | 'personal-day' | 'personal-month' | 'personal-year' | 'chart';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyNumerologyCard = defineComponent({\n\tname: 'RoxyNumerologyCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyNumerologyCardProps['data']> },\n\t\ttype: { type: String as PropType<RoxyNumerologyCardProps['type']> },\n\t\tendpoint: { type: String as PropType<RoxyNumerologyCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyNumerologyCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyNumerologyCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyNumerologyCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyNumerologyCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyNumerologyCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyNumerologyCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyNumerologyCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyNumerologyCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyNumerologyCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyNumerologyCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyNumerologyCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyNumerologyCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyNumerologyCardProps['hideSections']> },\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.type !== undefined) elementProps['.type'] = props.type;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-numerology-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateGematriaResponse } from '../types/index.js';\n\nexport interface RoxyGematriaProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateGematriaResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyGematria = defineComponent({\n\tname: 'RoxyGematria',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyGematriaProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyGematriaProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyGematriaProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyGematriaProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyGematriaProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyGematriaProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyGematriaProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyGematriaProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyGematriaProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyGematriaProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyGematriaProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyGematriaProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyGematriaProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyGematriaProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyGematriaProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-gematria', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetCardResponse, GetDailyCardResponse } from '../types/index.js';\n\nexport interface RoxyTarotCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetCardResponse | GetDailyCardResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyTarotCard = defineComponent({\n\tname: 'RoxyTarotCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyTarotCardProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyTarotCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyTarotCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyTarotCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyTarotCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyTarotCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyTarotCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyTarotCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyTarotCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyTarotCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyTarotCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyTarotCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyTarotCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyTarotCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyTarotCardProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-tarot-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { ListCardsResponse } from '../types/index.js';\n\nexport interface RoxyTarotCatalogProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: ListCardsResponse;\n\t/** Override the auto-derived gallery heading. Empty by default, in which case the heading is \"Tarot deck\". */\n\theading?: string;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyTarotCatalog = defineComponent({\n\tname: 'RoxyTarotCatalog',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyTarotCatalogProps['data']> },\n\t\theading: { type: String as PropType<RoxyTarotCatalogProps['heading']> },\n\t\tendpoint: { type: String as PropType<RoxyTarotCatalogProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyTarotCatalogProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyTarotCatalogProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyTarotCatalogProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyTarotCatalogProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyTarotCatalogProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyTarotCatalogProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyTarotCatalogProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyTarotCatalogProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyTarotCatalogProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyTarotCatalogProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyTarotCatalogProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyTarotCatalogProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyTarotCatalogProps['hideSections']> },\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.heading !== undefined) elementProps['.heading'] = props.heading;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-tarot-catalog', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CastCareerSpreadResponse, CastCelticCrossResponse, CastCustomSpreadResponse, CastLoveSpreadResponse, CastReadingResponse, CastThreeCardResponse, CastYesNoResponse, DrawCardsResponse } from '../types/index.js';\n\nexport interface RoxyTarotSpreadProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CastThreeCardResponse | CastCelticCrossResponse | CastLoveSpreadResponse | CastYesNoResponse | CastReadingResponse | CastCareerSpreadResponse | CastCustomSpreadResponse | DrawCardsResponse;\n\t/** Which spread layout the response is for. Positions the cards and selects the reading template. */\n\tspread?: 'three-card' | 'celtic-cross' | 'love' | 'career' | 'custom' | 'yes-no' | 'draw';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyTarotSpread = defineComponent({\n\tname: 'RoxyTarotSpread',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyTarotSpreadProps['data']> },\n\t\tspread: { type: String as PropType<RoxyTarotSpreadProps['spread']> },\n\t\tendpoint: { type: String as PropType<RoxyTarotSpreadProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyTarotSpreadProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyTarotSpreadProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyTarotSpreadProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyTarotSpreadProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyTarotSpreadProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyTarotSpreadProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyTarotSpreadProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyTarotSpreadProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyTarotSpreadProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyTarotSpreadProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyTarotSpreadProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyTarotSpreadProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyTarotSpreadProps['hideSections']> },\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.spread !== undefined) elementProps['.spread'] = props.spread;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-tarot-spread', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GenerateBodygraphResponse } from '../types/index.js';\n\nexport interface RoxyBodygraphProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GenerateBodygraphResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyBodygraph = defineComponent({\n\tname: 'RoxyBodygraph',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyBodygraphProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyBodygraphProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyBodygraphProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyBodygraphProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyBodygraphProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyBodygraphProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyBodygraphProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyBodygraphProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyBodygraphProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyBodygraphProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyBodygraphProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyBodygraphProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyBodygraphProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyBodygraphProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyBodygraphProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-bodygraph', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateProfileResponse, CalculateTypeResponse } from '../types/index.js';\n\nexport interface RoxyHdTypeCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateTypeResponse | CalculateProfileResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyHdTypeCard = defineComponent({\n\tname: 'RoxyHdTypeCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyHdTypeCardProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyHdTypeCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyHdTypeCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyHdTypeCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyHdTypeCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyHdTypeCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyHdTypeCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyHdTypeCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyHdTypeCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyHdTypeCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyHdTypeCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyHdTypeCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyHdTypeCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyHdTypeCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyHdTypeCardProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-hd-type-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateConnectionResponse } from '../types/index.js';\n\nexport interface RoxyHdConnectionProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateConnectionResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyHdConnection = defineComponent({\n\tname: 'RoxyHdConnection',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyHdConnectionProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyHdConnectionProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyHdConnectionProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyHdConnectionProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyHdConnectionProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyHdConnectionProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyHdConnectionProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyHdConnectionProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyHdConnectionProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyHdConnectionProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyHdConnectionProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyHdConnectionProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyHdConnectionProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyHdConnectionProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyHdConnectionProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-hd-connection', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculatePentaResponse } from '../types/index.js';\n\nexport interface RoxyHdPentaProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculatePentaResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyHdPenta = defineComponent({\n\tname: 'RoxyHdPenta',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyHdPentaProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyHdPentaProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyHdPentaProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyHdPentaProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyHdPentaProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyHdPentaProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyHdPentaProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyHdPentaProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyHdPentaProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyHdPentaProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyHdPentaProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyHdPentaProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyHdPentaProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyHdPentaProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyHdPentaProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-hd-penta', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateVariablesResponse } from '../types/index.js';\n\nexport interface RoxyHdVariablesProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateVariablesResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyHdVariables = defineComponent({\n\tname: 'RoxyHdVariables',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyHdVariablesProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyHdVariablesProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyHdVariablesProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyHdVariablesProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyHdVariablesProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyHdVariablesProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyHdVariablesProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyHdVariablesProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyHdVariablesProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyHdVariablesProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyHdVariablesProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyHdVariablesProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyHdVariablesProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyHdVariablesProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyHdVariablesProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-hd-variables', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { FindSignificantDatesResponse, ForecastTransitsResponse, GenerateTimelineResponse } from '../types/index.js';\n\nexport interface RoxyForecastTimelineProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GenerateTimelineResponse | FindSignificantDatesResponse | ForecastTransitsResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyForecastTimeline = defineComponent({\n\tname: 'RoxyForecastTimeline',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyForecastTimelineProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyForecastTimelineProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyForecastTimelineProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyForecastTimelineProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyForecastTimelineProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyForecastTimelineProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyForecastTimelineProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyForecastTimelineProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyForecastTimelineProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyForecastTimelineProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyForecastTimelineProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyForecastTimelineProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyForecastTimelineProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyForecastTimelineProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyForecastTimelineProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-forecast-timeline', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GenerateDigestResponse } from '../types/index.js';\n\nexport interface RoxyForecastDigestProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GenerateDigestResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyForecastDigest = defineComponent({\n\tname: 'RoxyForecastDigest',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyForecastDigestProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyForecastDigestProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyForecastDigestProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyForecastDigestProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyForecastDigestProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyForecastDigestProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyForecastDigestProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyForecastDigestProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyForecastDigestProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyForecastDigestProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyForecastDigestProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyForecastDigestProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyForecastDigestProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyForecastDigestProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyForecastDigestProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-forecast-digest', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GenerateBaziChartResponse } from '../types/index.js';\n\nexport interface RoxyBaziChartProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GenerateBaziChartResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyBaziChart = defineComponent({\n\tname: 'RoxyBaziChart',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyBaziChartProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyBaziChartProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyBaziChartProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyBaziChartProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyBaziChartProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyBaziChartProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyBaziChartProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyBaziChartProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyBaziChartProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyBaziChartProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyBaziChartProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyBaziChartProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyBaziChartProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyBaziChartProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyBaziChartProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-bazi-chart', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateLuckPillarsResponse } from '../types/index.js';\n\nexport interface RoxyLuckPillarsProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateLuckPillarsResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyLuckPillars = defineComponent({\n\tname: 'RoxyLuckPillars',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyLuckPillarsProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyLuckPillarsProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyLuckPillarsProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyLuckPillarsProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyLuckPillarsProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyLuckPillarsProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyLuckPillarsProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyLuckPillarsProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyLuckPillarsProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyLuckPillarsProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyLuckPillarsProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyLuckPillarsProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyLuckPillarsProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyLuckPillarsProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyLuckPillarsProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-luck-pillars', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateZodiacAnimalResponse, GetDailyZodiacReadingResponse, GetZodiacAnimalResponse, GetZodiacCompatibilityResponse } from '../types/index.js';\n\nexport interface RoxyZodiacCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateZodiacAnimalResponse | GetZodiacAnimalResponse | GetDailyZodiacReadingResponse | GetZodiacCompatibilityResponse;\n\t/** Which of the four zodiac reads the response is: the animal a date falls in, the reference read of one animal, a daily reading, or the compatibility of a pair. */\n\tmode?: 'sign' | 'animal' | 'daily' | 'compatibility';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyZodiacCard = defineComponent({\n\tname: 'RoxyZodiacCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyZodiacCardProps['data']> },\n\t\tmode: { type: String as PropType<RoxyZodiacCardProps['mode']> },\n\t\tendpoint: { type: String as PropType<RoxyZodiacCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyZodiacCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyZodiacCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyZodiacCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyZodiacCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyZodiacCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyZodiacCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyZodiacCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyZodiacCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyZodiacCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyZodiacCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyZodiacCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyZodiacCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyZodiacCardProps['hideSections']> },\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.mode !== undefined) elementProps['.mode'] = props.mode;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-zodiac-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetAlmanacDayResponse, GetMonthlyAlmanacResponse, LookupAuspiciousDaysResponse } from '../types/index.js';\n\nexport interface RoxyAlmanacDayProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetAlmanacDayResponse | GetMonthlyAlmanacResponse | LookupAuspiciousDaysResponse;\n\t/** Which read the response is: one almanac day as a card, a whole month of them as rows, or the days a search returned for one activity. */\n\tmode?: 'day' | 'month' | 'auspicious';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyAlmanacDay = defineComponent({\n\tname: 'RoxyAlmanacDay',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyAlmanacDayProps['data']> },\n\t\tmode: { type: String as PropType<RoxyAlmanacDayProps['mode']> },\n\t\tendpoint: { type: String as PropType<RoxyAlmanacDayProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyAlmanacDayProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyAlmanacDayProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyAlmanacDayProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyAlmanacDayProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyAlmanacDayProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyAlmanacDayProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyAlmanacDayProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyAlmanacDayProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyAlmanacDayProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyAlmanacDayProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyAlmanacDayProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyAlmanacDayProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyAlmanacDayProps['hideSections']> },\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.mode !== undefined) elementProps['.mode'] = props.mode;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-almanac-day', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GenerateFlyingStarChartResponse, GetAnnualFlyingStarsResponse } from '../types/index.js';\n\nexport interface RoxyFlyingStarChartProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GenerateFlyingStarChartResponse | GetAnnualFlyingStarsResponse;\n\t/** Which plate the response is: the natal chart of a building, which carries a mountain and a water star per palace, or one year of stars over it, which carries one. */\n\tmode?: 'natal' | 'annual';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyFlyingStarChart = defineComponent({\n\tname: 'RoxyFlyingStarChart',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyFlyingStarChartProps['data']> },\n\t\tmode: { type: String as PropType<RoxyFlyingStarChartProps['mode']> },\n\t\tendpoint: { type: String as PropType<RoxyFlyingStarChartProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyFlyingStarChartProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyFlyingStarChartProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyFlyingStarChartProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyFlyingStarChartProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyFlyingStarChartProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyFlyingStarChartProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyFlyingStarChartProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyFlyingStarChartProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyFlyingStarChartProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyFlyingStarChartProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyFlyingStarChartProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyFlyingStarChartProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyFlyingStarChartProps['hideSections']> },\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.mode !== undefined) elementProps['.mode'] = props.mode;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-flying-star-chart', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateKuaNumberResponse, GenerateEightMansionsResponse } from '../types/index.js';\n\nexport interface RoxyKuaCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateKuaNumberResponse | GenerateEightMansionsResponse;\n\t/** Which read the response is: the Kua number alone, or the full Eight Mansions map, which adds a reading per sector and names the best and worst of them. */\n\tmode?: 'kua' | 'mansions';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyKuaCard = defineComponent({\n\tname: 'RoxyKuaCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyKuaCardProps['data']> },\n\t\tmode: { type: String as PropType<RoxyKuaCardProps['mode']> },\n\t\tendpoint: { type: String as PropType<RoxyKuaCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyKuaCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyKuaCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyKuaCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyKuaCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyKuaCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyKuaCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyKuaCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyKuaCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyKuaCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyKuaCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyKuaCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyKuaCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyKuaCardProps['hideSections']> },\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.mode !== undefined) elementProps['.mode'] = props.mode;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-kua-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateTzolkinResponse, GenerateMayanChartResponse } from '../types/index.js';\n\nexport interface RoxyMayanDaySignProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateTzolkinResponse | GenerateMayanChartResponse;\n\t/** Which read the response is: the Tzolkin day sign alone, or the full Calendar Round chart, which adds the Haab date, the Long Count, the year bearer and the four-fold cross. */\n\tmode?: 'day' | 'chart';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyMayanDaySign = defineComponent({\n\tname: 'RoxyMayanDaySign',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyMayanDaySignProps['data']> },\n\t\tmode: { type: String as PropType<RoxyMayanDaySignProps['mode']> },\n\t\tendpoint: { type: String as PropType<RoxyMayanDaySignProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyMayanDaySignProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyMayanDaySignProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyMayanDaySignProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyMayanDaySignProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyMayanDaySignProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyMayanDaySignProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyMayanDaySignProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyMayanDaySignProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyMayanDaySignProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyMayanDaySignProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyMayanDaySignProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyMayanDaySignProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyMayanDaySignProps['hideSections']> },\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.mode !== undefined) elementProps['.mode'] = props.mode;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-mayan-day-sign', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateEntrancePadaResponse, GenerateMandalaResponse } from '../types/index.js';\n\nexport interface RoxyVastuMandalaProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GenerateMandalaResponse | CalculateEntrancePadaResponse;\n\t/** Which read the response is: the projected pada grid with a devata on every square, or the entrance read, which lights the square the main door falls on. */\n\tmode?: 'mandala' | 'entrance';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyVastuMandala = defineComponent({\n\tname: 'RoxyVastuMandala',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyVastuMandalaProps['data']> },\n\t\tmode: { type: String as PropType<RoxyVastuMandalaProps['mode']> },\n\t\tendpoint: { type: String as PropType<RoxyVastuMandalaProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyVastuMandalaProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyVastuMandalaProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyVastuMandalaProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyVastuMandalaProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyVastuMandalaProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyVastuMandalaProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyVastuMandalaProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyVastuMandalaProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyVastuMandalaProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyVastuMandalaProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyVastuMandalaProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyVastuMandalaProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyVastuMandalaProps['hideSections']> },\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.mode !== undefined) elementProps['.mode'] = props.mode;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-vastu-mandala', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetCriticalDaysResponse, GetDailyBiorhythmResponse, GetForecastResponse } from '../types/index.js';\n\nexport interface RoxyBiorhythmChartProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetDailyBiorhythmResponse | GetForecastResponse | GetCriticalDaysResponse;\n\t/** Which biorhythm response shape to render: a single day, a multi-day forecast, or the critical days list. */\n\tmode?: 'daily' | 'forecast' | 'critical-days';\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyBiorhythmChart = defineComponent({\n\tname: 'RoxyBiorhythmChart',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyBiorhythmChartProps['data']> },\n\t\tmode: { type: String as PropType<RoxyBiorhythmChartProps['mode']> },\n\t\tendpoint: { type: String as PropType<RoxyBiorhythmChartProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyBiorhythmChartProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyBiorhythmChartProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyBiorhythmChartProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyBiorhythmChartProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyBiorhythmChartProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyBiorhythmChartProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyBiorhythmChartProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyBiorhythmChartProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyBiorhythmChartProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyBiorhythmChartProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyBiorhythmChartProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyBiorhythmChartProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyBiorhythmChartProps['hideSections']> },\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.mode !== undefined) elementProps['.mode'] = props.mode;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-biorhythm-chart', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CalculateAyurvedicConstitutionResponse } from '../types/index.js';\n\nexport interface RoxyDoshaConstitutionProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: CalculateAyurvedicConstitutionResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyDoshaConstitution = defineComponent({\n\tname: 'RoxyDoshaConstitution',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyDoshaConstitutionProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyDoshaConstitutionProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyDoshaConstitutionProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyDoshaConstitutionProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyDoshaConstitutionProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyDoshaConstitutionProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyDoshaConstitutionProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyDoshaConstitutionProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyDoshaConstitutionProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyDoshaConstitutionProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyDoshaConstitutionProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyDoshaConstitutionProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyDoshaConstitutionProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyDoshaConstitutionProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyDoshaConstitutionProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-dosha-constitution', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { CastReadingResponse, GetDailyHexagramResponse, GetHexagramResponse, GetRandomHexagramResponse, LookupHexagramResponse } from '../types/index.js';\n\nexport interface RoxyHexagramProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetHexagramResponse | GetRandomHexagramResponse | LookupHexagramResponse | GetDailyHexagramResponse | CastReadingResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyHexagram = defineComponent({\n\tname: 'RoxyHexagram',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyHexagramProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyHexagramProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyHexagramProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyHexagramProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyHexagramProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyHexagramProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyHexagramProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyHexagramProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyHexagramProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyHexagramProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyHexagramProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyHexagramProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyHexagramProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyHexagramProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyHexagramProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-hexagram', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetCrystalResponse } from '../types/index.js';\n\nexport interface RoxyCrystalCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetCrystalResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyCrystalCard = defineComponent({\n\tname: 'RoxyCrystalCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyCrystalCardProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyCrystalCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyCrystalCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyCrystalCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyCrystalCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyCrystalCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyCrystalCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyCrystalCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyCrystalCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyCrystalCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyCrystalCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyCrystalCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyCrystalCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyCrystalCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyCrystalCardProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-crystal-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetBirthstonesResponse, GetCrystalsByChakraResponse, GetCrystalsByElementResponse, GetCrystalsByZodiacResponse, ListCrystalsResponse, SearchCrystalsResponse } from '../types/index.js';\n\nexport interface RoxyCrystalGridProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: ListCrystalsResponse | GetCrystalsByChakraResponse | GetCrystalsByElementResponse | GetCrystalsByZodiacResponse | GetBirthstonesResponse | SearchCrystalsResponse;\n\t/** Override the auto-derived grid heading. Empty by default, in which case the heading is derived from the response filter (chakra, element, zodiac sign, or birth month). */\n\theading?: string;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyCrystalGrid = defineComponent({\n\tname: 'RoxyCrystalGrid',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyCrystalGridProps['data']> },\n\t\theading: { type: String as PropType<RoxyCrystalGridProps['heading']> },\n\t\tendpoint: { type: String as PropType<RoxyCrystalGridProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyCrystalGridProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyCrystalGridProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyCrystalGridProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyCrystalGridProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyCrystalGridProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyCrystalGridProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyCrystalGridProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyCrystalGridProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyCrystalGridProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyCrystalGridProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyCrystalGridProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyCrystalGridProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyCrystalGridProps['hideSections']> },\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.heading !== undefined) elementProps['.heading'] = props.heading;\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-crystal-grid', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetDreamSymbolResponse } from '../types/index.js';\n\nexport interface RoxyDreamCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetDreamSymbolResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyDreamCard = defineComponent({\n\tname: 'RoxyDreamCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyDreamCardProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyDreamCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyDreamCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyDreamCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyDreamCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyDreamCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyDreamCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyDreamCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyDreamCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyDreamCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyDreamCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyDreamCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyDreamCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyDreamCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyDreamCardProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-dream-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { SearchDreamSymbolsResponse } from '../types/index.js';\n\nexport interface RoxyDreamSearchProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: SearchDreamSymbolsResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyDreamSearch = defineComponent({\n\tname: 'RoxyDreamSearch',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyDreamSearchProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyDreamSearchProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyDreamSearchProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyDreamSearchProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyDreamSearchProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyDreamSearchProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyDreamSearchProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyDreamSearchProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyDreamSearchProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyDreamSearchProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyDreamSearchProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyDreamSearchProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyDreamSearchProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyDreamSearchProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyDreamSearchProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-dream-search', elementProps);\n\t\t};\n\t},\n});\n", "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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: 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\tsubmitUrl: { type: String as PropType<RoxyAngelNumberCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyAngelNumberCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyAngelNumberCardProps['locationUrl']> },\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\tremember: { type: Boolean as PropType<RoxyAngelNumberCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyAngelNumberCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyAngelNumberCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyAngelNumberCardProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-angel-number-card', elementProps);\n\t\t};\n\t},\n});\n", "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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: 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\tsubmitUrl: { type: String as PropType<RoxyAngelNumberLookupProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyAngelNumberLookupProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyAngelNumberLookupProps['locationUrl']> },\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\tremember: { type: Boolean as PropType<RoxyAngelNumberLookupProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyAngelNumberLookupProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyAngelNumberLookupProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyAngelNumberLookupProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-angel-number-lookup', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { GetAvasthaResponse, GetCenterResponse, GetCompoundNumberResponse, GetGateResponse, GetNumberMeaningResponse, GetPlanetMeaningResponse, GetRashiResponse, GetTrigramResponse, GetZodiacSignResponse } from '../types/index.js';\n\nexport interface RoxyReferenceCardProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: GetZodiacSignResponse | GetPlanetMeaningResponse | GetRashiResponse | GetTrigramResponse | GetGateResponse | GetCenterResponse | GetNumberMeaningResponse | GetCompoundNumberResponse | GetAvasthaResponse;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyReferenceCard = defineComponent({\n\tname: 'RoxyReferenceCard',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyReferenceCardProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyReferenceCardProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyReferenceCardProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyReferenceCardProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyReferenceCardProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyReferenceCardProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyReferenceCardProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyReferenceCardProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyReferenceCardProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyReferenceCardProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyReferenceCardProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyReferenceCardProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyReferenceCardProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyReferenceCardProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyReferenceCardProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-reference-card', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\n\nexport interface RoxyEndpointFormProps {\n\t/** Fires when the underlying <roxy-endpoint-form> dispatches `roxy-submit`. */\n\tonRoxySubmit?: (event: CustomEvent<{ endpoint: string; values: Record<string, unknown>; queryKeys: string[]; sticky: boolean }>) => void;\n\t/** Fires when the underlying <roxy-endpoint-form> dispatches `roxy-validation-error`. */\n\tonRoxyValidationError?: (event: CustomEvent<{ missing: string[] }>) => void;\n\t/** Fires when the underlying <roxy-endpoint-form> dispatches `roxy-spec-error`. */\n\tonRoxySpecError?: (event: CustomEvent<{ url: string; message: string }>) => void;\n}\n\nexport const RoxyEndpointForm = defineComponent({\n\tname: 'RoxyEndpointForm',\n\tprops: {\n\t\tonRoxySubmit: { type: Function as PropType<RoxyEndpointFormProps['onRoxySubmit']> },\n\t\tonRoxyValidationError: { type: Function as PropType<RoxyEndpointFormProps['onRoxyValidationError']> },\n\t\tonRoxySpecError: { type: Function as PropType<RoxyEndpointFormProps['onRoxySpecError']> },\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.onRoxySubmit) elementProps.onRoxySubmit = props.onRoxySubmit;\n\t\t\tif (props.onRoxyValidationError) elementProps.onRoxyValidationError = props.onRoxyValidationError;\n\t\t\tif (props.onRoxySpecError) elementProps.onRoxySpecError = props.onRoxySpecError;\n\n\t\t\treturn h('roxy-endpoint-form', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { SearchCitiesResponse } from '../types/index.js';\n\nexport interface RoxyLocationSearchProps {\n\t/** Fires when the underlying <roxy-location-search> dispatches `roxy-location-select`. */\n\tonRoxyLocationSelect?: (event: CustomEvent<NonNullable<SearchCitiesResponse['cities']>[number] | { latitude?: number; longitude?: number; timezone?: string; utcOffset?: number; city?: string; province?: string; country?: string }>) => void;\n\t/** Fires when the underlying <roxy-location-search> dispatches `roxy-validation-error`. */\n\tonRoxyValidationError?: (event: CustomEvent<{ reason: string; message: string }>) => void;\n}\n\nexport const RoxyLocationSearch = defineComponent({\n\tname: 'RoxyLocationSearch',\n\tprops: {\n\t\tonRoxyLocationSelect: { type: Function as PropType<RoxyLocationSearchProps['onRoxyLocationSelect']> },\n\t\tonRoxyValidationError: { type: Function as PropType<RoxyLocationSearchProps['onRoxyValidationError']> },\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.onRoxyLocationSelect) elementProps.onRoxyLocationSelect = props.onRoxyLocationSelect;\n\t\t\tif (props.onRoxyValidationError) elementProps.onRoxyValidationError = props.onRoxyValidationError;\n\n\t\t\treturn h('roxy-location-search', elementProps);\n\t\t};\n\t},\n});\n", "import { defineComponent, h, onMounted, type PropType, ref } from 'vue';\nimport { ensureScriptLoaded } from '../load-ui.js';\n\nexport interface RoxyDataProps {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: unknown;\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. Absolute, or relative to the page for a same-origin route. */\n\tbaseUrl?: string;\n\t/** Your own backend route, which holds the secret key. Self-fetch POSTs `{ path, method, body, query }` there instead of calling RoxyAPI directly and renders the JSON your route returns, so no key of any kind reaches the browser. */\n\tsubmitUrl?: string;\n\t/** An object of your own, sent to your submitUrl route as `context` beside the request, so a page can attach its own verification data to a proxied submission. Passed through untouched and never read by the component: what it holds is for your page and your route to agree on. Unset, nothing is added and the route receives the request exactly as before. Rides the submitUrl path only; a direct call sends what the endpoint declares. */\n\tsubmitContext?: Record<string, unknown>;\n\t/** Where the self-fetch form city search sends its request, absolute or relative to the page. The companion of submitUrl: the city search is a GET the form issues on its own while a visitor types, so a page that routes its API traffic through its own server names that route here as well. Unset, the search calls the public location endpoint. */\n\tlocationUrl?: 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/** Persist the last self-fetch form values in sessionStorage, keyed by endpoint, and prefill the form when the visitor returns. Off by default. */\n\tremember?: boolean;\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\t/** Comma-separated list of `part` names to take off this component, for example \"patterns\" or \"patterns, legend\". Per element rather than per site, so the same component can drop a block on one page and keep it on another with no CSS. Sibling of hideReadings and a different tool: this hides a whole block whatever it contains, where hideReadings drops interpretive prose out of the markup. Names come from the `parts` array in components-catalog.json; a name the component does not carry hides nothing and is not an error. */\n\thideSections?: string;\n}\n\nexport const RoxyData = defineComponent({\n\tname: 'RoxyData',\n\tprops: {\n\t\tdata: { type: Object as PropType<RoxyDataProps['data']> },\n\t\tendpoint: { type: String as PropType<RoxyDataProps['endpoint']> },\n\t\tmethod: { type: String as PropType<RoxyDataProps['method']> },\n\t\tpublishableKey: { type: String as PropType<RoxyDataProps['publishableKey']> },\n\t\tbaseUrl: { type: String as PropType<RoxyDataProps['baseUrl']> },\n\t\tsubmitUrl: { type: String as PropType<RoxyDataProps['submitUrl']> },\n\t\tsubmitContext: { type: Object as PropType<RoxyDataProps['submitContext']> },\n\t\tlocationUrl: { type: String as PropType<RoxyDataProps['locationUrl']> },\n\t\tspecUrl: { type: String as PropType<RoxyDataProps['specUrl']> },\n\t\tlang: { type: String as PropType<RoxyDataProps['lang']> },\n\t\tsubmitLabel: { type: String as PropType<RoxyDataProps['submitLabel']> },\n\t\tremember: { type: Boolean as PropType<RoxyDataProps['remember']> },\n\t\tattribution: { type: String as PropType<RoxyDataProps['attribution']> },\n\t\thideReadings: { type: Boolean as PropType<RoxyDataProps['hideReadings']> },\n\t\thideSections: { type: String as PropType<RoxyDataProps['hideSections']> },\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.submitUrl !== undefined) elementProps['.submitUrl'] = props.submitUrl;\n\t\t\tif (props.submitContext !== undefined) elementProps['.submitContext'] = props.submitContext;\n\t\t\tif (props.locationUrl !== undefined) elementProps['.locationUrl'] = props.locationUrl;\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.remember !== undefined) elementProps['.remember'] = props.remember;\n\t\t\tif (props.attribution !== undefined) elementProps['.attribution'] = props.attribution;\n\t\t\tif (props.hideReadings !== undefined) elementProps['.hideReadings'] = props.hideReadings;\n\t\t\tif (props.hideSections !== undefined) elementProps['.hideSections'] = props.hideSections;\n\n\t\t\treturn h('roxy-data', elementProps);\n\t\t};\n\t},\n});\n", "const COLS = '__cols';\nconst ROWS = '__rows';\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/**\n * Walk a value, rebuilding only the branches that actually hold an encoded array.\n *\n * @remarks\n * The identity return is the contract, not an optimisation: a response with nothing encoded in it comes back as the same object, so every render path that existed before this decoder sees the exact bytes it always saw.\n */\nfunction decode(value: unknown): unknown {\n\tif (Array.isArray(value)) {\n\t\tlet rebuilt = false;\n\t\tconst out = value.map((item) => {\n\t\t\tconst next = decode(item);\n\t\t\tif (next !== item) rebuilt = true;\n\t\t\treturn next;\n\t\t});\n\t\treturn rebuilt ? out : value;\n\t}\n\tif (!isPlainObject(value)) return value;\n\n\tconst cols = value[COLS];\n\tconst rows = value[ROWS];\n\t// Exactly the two keys and nothing else: a real payload that happens to carry\n\t// a field of either name is left alone.\n\tif (\n\t\tArray.isArray(cols) &&\n\t\tArray.isArray(rows) &&\n\t\tObject.keys(value).length === 2\n\t) {\n\t\treturn rows.map((row) => {\n\t\t\tconst item: Record<string, unknown> = {};\n\t\t\t(cols as string[]).forEach((col, i) => {\n\t\t\t\titem[col] = decode((row as unknown[])[i]);\n\t\t\t});\n\t\t\treturn item;\n\t\t});\n\t}\n\n\tlet rebuilt = false;\n\tconst out: Record<string, unknown> = {};\n\tfor (const [key, item] of Object.entries(value)) {\n\t\tconst next = decode(item);\n\t\tif (next !== item) rebuilt = true;\n\t\tout[key] = next;\n\t}\n\treturn rebuilt ? out : value;\n}\n\n/**\n * Turn a compact API response back into the plain shape the components render.\n *\n * @remarks\n * Asking a Remote MCP tool for a compact result trades repeated field names for a header: an array of same-shaped objects arrives as `{ __cols: [names], __rows: [[values]] }`, which costs an agent far fewer tokens to read and carries exactly the same data. This is the decoder, applied at every depth, so a compact result renders in a component with nothing else to do.\n *\n * Every data component runs it on the way in, so a page that sets `data` from a tool result needs no call of its own. It is exported for the paths that hold the JSON before an element does.\n *\n * A value with nothing encoded in it is returned unchanged, by reference.\n *\n * @example\n * ```ts\n * expandCompact({ aspects: { __cols: ['a', 'b'], __rows: [['sun', 'moon'], ['sun', 'mars'], ['moon', 'mars']] } });\n * // { aspects: [{ a: 'sun', b: 'moon' }, { a: 'sun', b: 'mars' }, { a: 'moon', b: 'mars' }] }\n * ```\n */\nexport function expandCompact<T>(value: T): T {\n\treturn decode(value) as T;\n}\n", "// Generated by scripts/sync-bindings.ts (bindings.config.ts joined with specs/openapi.json). Do not edit.\n\n/** The component that renders one MCP tool result. `toolName` is the key it is found under. */\nexport interface ToolComponentEntry {\n /** Custom-element tag to create, query, or render. */\n tag: string;\n /** Export name in the React and Vue packages. */\n pascal: string;\n /** OpenAPI operation the tool calls. */\n operationId: string;\n /** Config attributes that select this endpoint on a component that renders several. Set them beside `data`. */\n attrs?: Record<string, string>;\n}\n\n/** MCP tool name -> the component that draws its result. */\nexport const TOOL_COMPONENTS: Record<string, ToolComponentEntry> = {\n \"post_astrology_natal_chart\": {\n \"tag\": \"roxy-natal-chart\",\n \"pascal\": \"RoxyNatalChart\",\n \"operationId\": \"generateNatalChart\"\n },\n \"post_astrology_synastry\": {\n \"tag\": \"roxy-synastry-chart\",\n \"pascal\": \"RoxySynastryChart\",\n \"operationId\": \"calculateSynastry\"\n },\n \"post_astrology_transits\": {\n \"tag\": \"roxy-transits-table\",\n \"pascal\": \"RoxyTransitsTable\",\n \"operationId\": \"calculateTransits\"\n },\n \"post_astrology_transit_aspects\": {\n \"tag\": \"roxy-transit-wheel\",\n \"pascal\": \"RoxyTransitWheel\",\n \"operationId\": \"calculateTransitAspects\"\n },\n \"post_astrology_aspects\": {\n \"tag\": \"roxy-aspects-table\",\n \"pascal\": \"RoxyAspectsTable\",\n \"operationId\": \"calculateAspects\"\n },\n \"post_astrology_aspect_patterns\": {\n \"tag\": \"roxy-aspects-table\",\n \"pascal\": \"RoxyAspectsTable\",\n \"operationId\": \"detectAspectPatterns\"\n },\n \"get_astrology_moon_phase_current\": {\n \"tag\": \"roxy-moon-phase\",\n \"pascal\": \"RoxyMoonPhase\",\n \"operationId\": \"getCurrentMoonPhase\",\n \"attrs\": {\n \"mode\": \"current\"\n }\n },\n \"get_astrology_moon_phase_upcoming\": {\n \"tag\": \"roxy-moon-phase\",\n \"pascal\": \"RoxyMoonPhase\",\n \"operationId\": \"getUpcomingMoonPhases\",\n \"attrs\": {\n \"mode\": \"upcoming\"\n }\n },\n \"get_astrology_moon_phase_calendar_year_month\": {\n \"tag\": \"roxy-moon-phase\",\n \"pascal\": \"RoxyMoonPhase\",\n \"operationId\": \"getMoonCalendar\",\n \"attrs\": {\n \"mode\": \"calendar\"\n }\n },\n \"get_astrology_horoscope_sign_daily\": {\n \"tag\": \"roxy-horoscope-card\",\n \"pascal\": \"RoxyHoroscopeCard\",\n \"operationId\": \"getDailyHoroscope\",\n \"attrs\": {\n \"period\": \"daily\"\n }\n },\n \"get_astrology_horoscope_sign_weekly\": {\n \"tag\": \"roxy-horoscope-card\",\n \"pascal\": \"RoxyHoroscopeCard\",\n \"operationId\": \"getWeeklyHoroscope\",\n \"attrs\": {\n \"period\": \"weekly\"\n }\n },\n \"get_astrology_horoscope_sign_monthly\": {\n \"tag\": \"roxy-horoscope-card\",\n \"pascal\": \"RoxyHoroscopeCard\",\n \"operationId\": \"getMonthlyHoroscope\",\n \"attrs\": {\n \"period\": \"monthly\"\n }\n },\n \"get_astrology_horoscope_sign_yearly\": {\n \"tag\": \"roxy-horoscope-card\",\n \"pascal\": \"RoxyHoroscopeCard\",\n \"operationId\": \"getYearlyHoroscope\",\n \"attrs\": {\n \"period\": \"yearly\"\n }\n },\n \"post_astrology_astrocartography\": {\n \"tag\": \"roxy-astrocartography-map\",\n \"pascal\": \"RoxyAstrocartographyMap\",\n \"operationId\": \"generateAstrocartography\"\n },\n \"post_astrology_local_space\": {\n \"tag\": \"roxy-local-space-compass\",\n \"pascal\": \"RoxyLocalSpaceCompass\",\n \"operationId\": \"generateLocalSpace\"\n },\n \"post_astrology_relocation_chart\": {\n \"tag\": \"roxy-relocation-wheel\",\n \"pascal\": \"RoxyRelocationWheel\",\n \"operationId\": \"generateRelocationChart\"\n },\n \"post_astrology_asteroids\": {\n \"tag\": \"roxy-positions-table\",\n \"pascal\": \"RoxyPositionsTable\",\n \"operationId\": \"generateAsteroids\"\n },\n \"post_astrology_lilith\": {\n \"tag\": \"roxy-positions-table\",\n \"pascal\": \"RoxyPositionsTable\",\n \"operationId\": \"generateLilith\"\n },\n \"post_astrology_progressions\": {\n \"tag\": \"roxy-positions-table\",\n \"pascal\": \"RoxyPositionsTable\",\n \"operationId\": \"generateProgressions\"\n },\n \"post_astrology_solar_arc\": {\n \"tag\": \"roxy-positions-table\",\n \"pascal\": \"RoxyPositionsTable\",\n \"operationId\": \"generateSolarArc\"\n },\n \"post_astrology_arabic_lots\": {\n \"tag\": \"roxy-positions-table\",\n \"pascal\": \"RoxyPositionsTable\",\n \"operationId\": \"calculateArabicLots\"\n },\n \"post_astrology_planets_monthly\": {\n \"tag\": \"roxy-ephemeris-table\",\n \"pascal\": \"RoxyEphemerisTable\",\n \"operationId\": \"getMonthlyTropicalEphemeris\"\n },\n \"post_vedic_astrology_planetary_positions_monthly\": {\n \"tag\": \"roxy-ephemeris-table\",\n \"pascal\": \"RoxyEphemerisTable\",\n \"operationId\": \"getMonthlyEphemeris\"\n },\n \"post_astrology_fixed_stars\": {\n \"tag\": \"roxy-fixed-stars\",\n \"pascal\": \"RoxyFixedStars\",\n \"operationId\": \"generateFixedStars\"\n },\n \"post_astrology_profections\": {\n \"tag\": \"roxy-profection-card\",\n \"pascal\": \"RoxyProfectionCard\",\n \"operationId\": \"generateProfections\"\n },\n \"post_astrology_compatibility_score\": {\n \"tag\": \"roxy-compatibility-card\",\n \"pascal\": \"RoxyCompatibilityCard\",\n \"operationId\": \"calculateCompatibility\",\n \"attrs\": {\n \"mode\": \"astrology\"\n }\n },\n \"post_numerology_compatibility\": {\n \"tag\": \"roxy-compatibility-card\",\n \"pascal\": \"RoxyCompatibilityCard\",\n \"operationId\": \"calculateNumCompatibility\",\n \"attrs\": {\n \"mode\": \"numerology\"\n }\n },\n \"post_biorhythm_compatibility\": {\n \"tag\": \"roxy-compatibility-card\",\n \"pascal\": \"RoxyCompatibilityCard\",\n \"operationId\": \"calculateBioCompatibility\",\n \"attrs\": {\n \"mode\": \"biorhythm\"\n }\n },\n \"post_vedic_astrology_birth_chart\": {\n \"tag\": \"roxy-vedic-kundli\",\n \"pascal\": \"RoxyVedicKundli\",\n \"operationId\": \"generateBirthChart\"\n },\n \"post_vedic_astrology_divisional_chart\": {\n \"tag\": \"roxy-divisional-chart\",\n \"pascal\": \"RoxyDivisionalChart\",\n \"operationId\": \"generateDivisionalChart\"\n },\n \"post_vedic_astrology_navamsa\": {\n \"tag\": \"roxy-divisional-chart\",\n \"pascal\": \"RoxyDivisionalChart\",\n \"operationId\": \"generateNavamsa\"\n },\n \"post_vedic_astrology_kp_chart\": {\n \"tag\": \"roxy-kp-chart\",\n \"pascal\": \"RoxyKpChart\",\n \"operationId\": \"generateKpChart\"\n },\n \"post_vedic_astrology_kp_planets\": {\n \"tag\": \"roxy-kp-planets-table\",\n \"pascal\": \"RoxyKpPlanetsTable\",\n \"operationId\": \"getKpPlanets\"\n },\n \"post_vedic_astrology_kp_ruling_planets\": {\n \"tag\": \"roxy-kp-ruling-planets\",\n \"pascal\": \"RoxyKpRulingPlanets\",\n \"operationId\": \"getKpRulingPlanets\"\n },\n \"post_vedic_astrology_ashtakavarga\": {\n \"tag\": \"roxy-ashtakavarga-grid\",\n \"pascal\": \"RoxyAshtakavargaGrid\",\n \"operationId\": \"calculateAshtakavarga\"\n },\n \"post_vedic_astrology_shadbala\": {\n \"tag\": \"roxy-shadbala-table\",\n \"pascal\": \"RoxyShadbalaTable\",\n \"operationId\": \"calculateShadbala\"\n },\n \"post_vedic_astrology_dasha_major\": {\n \"tag\": \"roxy-dasha-timeline\",\n \"pascal\": \"RoxyDashaTimeline\",\n \"operationId\": \"getMajorDashas\",\n \"attrs\": {\n \"period\": \"major\"\n }\n },\n \"post_vedic_astrology_dasha_current\": {\n \"tag\": \"roxy-dasha-timeline\",\n \"pascal\": \"RoxyDashaTimeline\",\n \"operationId\": \"getCurrentDasha\",\n \"attrs\": {\n \"period\": \"current\"\n }\n },\n \"post_vedic_astrology_dasha_sub_mahadasha\": {\n \"tag\": \"roxy-dasha-timeline\",\n \"pascal\": \"RoxyDashaTimeline\",\n \"operationId\": \"getSubDashas\",\n \"attrs\": {\n \"period\": \"sub\"\n }\n },\n \"post_vedic_astrology_dasha_sub_mahadasha_antardasha\": {\n \"tag\": \"roxy-dasha-timeline\",\n \"pascal\": \"RoxyDashaTimeline\",\n \"operationId\": \"getPratyantardashas\",\n \"attrs\": {\n \"period\": \"antara\"\n }\n },\n \"post_vedic_astrology_dasha_sub_mahadasha_antardasha_pratyantardasha\": {\n \"tag\": \"roxy-dasha-timeline\",\n \"pascal\": \"RoxyDashaTimeline\",\n \"operationId\": \"getSookshmaDashas\",\n \"attrs\": {\n \"period\": \"sookshma\"\n }\n },\n \"post_vedic_astrology_dasha_sub_mahadasha_antardasha_pratyantardasha_sookshma\": {\n \"tag\": \"roxy-dasha-timeline\",\n \"pascal\": \"RoxyDashaTimeline\",\n \"operationId\": \"getPranaDashas\",\n \"attrs\": {\n \"period\": \"prana\"\n }\n },\n \"post_vedic_astrology_compatibility\": {\n \"tag\": \"roxy-guna-milan\",\n \"pascal\": \"RoxyGunaMilan\",\n \"operationId\": \"calculateGunMilan\"\n },\n \"post_vedic_astrology_panchang_detailed\": {\n \"tag\": \"roxy-panchang-table\",\n \"pascal\": \"RoxyPanchangTable\",\n \"operationId\": \"getDetailedPanchang\",\n \"attrs\": {\n \"detail\": \"detailed\"\n }\n },\n \"post_vedic_astrology_panchang_basic\": {\n \"tag\": \"roxy-panchang-table\",\n \"pascal\": \"RoxyPanchangTable\",\n \"operationId\": \"getBasicPanchang\",\n \"attrs\": {\n \"detail\": \"basic\"\n }\n },\n \"post_vedic_astrology_aspects\": {\n \"tag\": \"roxy-vedic-aspects\",\n \"pascal\": \"RoxyVedicAspects\",\n \"operationId\": \"calculateDrishti\"\n },\n \"post_vedic_astrology_panchang_hora\": {\n \"tag\": \"roxy-hora-table\",\n \"pascal\": \"RoxyHoraTable\",\n \"operationId\": \"getHora\"\n },\n \"post_vedic_astrology_panchang_choghadiya\": {\n \"tag\": \"roxy-choghadiya-grid\",\n \"pascal\": \"RoxyChoghadiyaGrid\",\n \"operationId\": \"getChoghadiya\"\n },\n \"post_vedic_astrology_heliacal\": {\n \"tag\": \"roxy-heliacal-table\",\n \"pascal\": \"RoxyHeliacalTable\",\n \"operationId\": \"getHeliacalVisibility\"\n },\n \"post_vedic_astrology_daily\": {\n \"tag\": \"roxy-vedic-daily\",\n \"pascal\": \"RoxyVedicDaily\",\n \"operationId\": \"getVedicDailyReading\"\n },\n \"post_vedic_astrology_transit\": {\n \"tag\": \"roxy-gochara-table\",\n \"pascal\": \"RoxyGocharaTable\",\n \"operationId\": \"calculateTransit\"\n },\n \"post_vedic_astrology_bhava_bala\": {\n \"tag\": \"roxy-bhava-bala-table\",\n \"pascal\": \"RoxyBhavaBalaTable\",\n \"operationId\": \"calculateBhavaBala\"\n },\n \"post_vedic_astrology_bhav_chalit\": {\n \"tag\": \"roxy-bhav-chalit-table\",\n \"pascal\": \"RoxyBhavChalitTable\",\n \"operationId\": \"calculateBhavChalit\"\n },\n \"post_vedic_astrology_upagraha\": {\n \"tag\": \"roxy-upagraha-table\",\n \"pascal\": \"RoxyUpagrahaTable\",\n \"operationId\": \"getUpagrahaPositions\"\n },\n \"post_vedic_astrology_chara_karakas\": {\n \"tag\": \"roxy-chara-karakas\",\n \"pascal\": \"RoxyCharaKarakas\",\n \"operationId\": \"calculateCharaKarakas\"\n },\n \"post_vedic_astrology_arudha\": {\n \"tag\": \"roxy-arudha-padas\",\n \"pascal\": \"RoxyArudhaPadas\",\n \"operationId\": \"calculateArudhaPadas\"\n },\n \"get_vedic_astrology_yoga\": {\n \"tag\": \"roxy-yoga-list\",\n \"pascal\": \"RoxyYogaList\",\n \"operationId\": \"listYogas\"\n },\n \"post_vedic_astrology_yoga_detect\": {\n \"tag\": \"roxy-yoga-list\",\n \"pascal\": \"RoxyYogaList\",\n \"operationId\": \"detectYogas\"\n },\n \"get_vedic_astrology_yoga_id\": {\n \"tag\": \"roxy-yoga-list\",\n \"pascal\": \"RoxyYogaList\",\n \"operationId\": \"getYoga\"\n },\n \"get_vedic_astrology_nakshatras_id\": {\n \"tag\": \"roxy-nakshatra-card\",\n \"pascal\": \"RoxyNakshatraCard\",\n \"operationId\": \"getNakshatra\"\n },\n \"post_vedic_astrology_dosha_manglik\": {\n \"tag\": \"roxy-dosha-card\",\n \"pascal\": \"RoxyDoshaCard\",\n \"operationId\": \"checkManglikDosha\",\n \"attrs\": {\n \"type\": \"manglik\"\n }\n },\n \"post_vedic_astrology_dosha_kalsarpa\": {\n \"tag\": \"roxy-dosha-card\",\n \"pascal\": \"RoxyDoshaCard\",\n \"operationId\": \"checkKalsarpaDosha\",\n \"attrs\": {\n \"type\": \"kalsarpa\"\n }\n },\n \"post_vedic_astrology_dosha_sadhesati\": {\n \"tag\": \"roxy-dosha-card\",\n \"pascal\": \"RoxyDoshaCard\",\n \"operationId\": \"checkSadhesati\",\n \"attrs\": {\n \"type\": \"sadhesati\"\n }\n },\n \"post_numerology_life_path\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"calculateLifePath\",\n \"attrs\": {\n \"type\": \"life-path\"\n }\n },\n \"post_numerology_expression\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"calculateExpression\",\n \"attrs\": {\n \"type\": \"expression\"\n }\n },\n \"post_numerology_soul_urge\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"calculateSoulUrge\",\n \"attrs\": {\n \"type\": \"soul-urge\"\n }\n },\n \"post_numerology_personality\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"calculatePersonality\",\n \"attrs\": {\n \"type\": \"personality\"\n }\n },\n \"post_numerology_birth_day\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"calculateBirthDay\",\n \"attrs\": {\n \"type\": \"birth-day\"\n }\n },\n \"post_numerology_maturity\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"calculateMaturity\",\n \"attrs\": {\n \"type\": \"maturity\"\n }\n },\n \"post_numerology_daily\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"getDailyNumber\",\n \"attrs\": {\n \"type\": \"daily\"\n }\n },\n \"post_numerology_personal_day\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"calculatePersonalDay\",\n \"attrs\": {\n \"type\": \"personal-day\"\n }\n },\n \"post_numerology_personal_month\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"calculatePersonalMonth\",\n \"attrs\": {\n \"type\": \"personal-month\"\n }\n },\n \"post_numerology_personal_year\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"calculatePersonalYear\",\n \"attrs\": {\n \"type\": \"personal-year\"\n }\n },\n \"post_numerology_chart\": {\n \"tag\": \"roxy-numerology-card\",\n \"pascal\": \"RoxyNumerologyCard\",\n \"operationId\": \"generateNumerologyChart\",\n \"attrs\": {\n \"type\": \"chart\"\n }\n },\n \"post_kabbalah_gematria\": {\n \"tag\": \"roxy-gematria\",\n \"pascal\": \"RoxyGematria\",\n \"operationId\": \"calculateGematria\"\n },\n \"post_tarot_daily\": {\n \"tag\": \"roxy-tarot-card\",\n \"pascal\": \"RoxyTarotCard\",\n \"operationId\": \"getDailyCard\"\n },\n \"get_tarot_cards_id\": {\n \"tag\": \"roxy-tarot-card\",\n \"pascal\": \"RoxyTarotCard\",\n \"operationId\": \"getCard\"\n },\n \"get_tarot_cards\": {\n \"tag\": \"roxy-tarot-catalog\",\n \"pascal\": \"RoxyTarotCatalog\",\n \"operationId\": \"listCards\"\n },\n \"post_tarot_spreads_three_card\": {\n \"tag\": \"roxy-tarot-spread\",\n \"pascal\": \"RoxyTarotSpread\",\n \"operationId\": \"castThreeCard\",\n \"attrs\": {\n \"spread\": \"three-card\"\n }\n },\n \"post_tarot_spreads_celtic_cross\": {\n \"tag\": \"roxy-tarot-spread\",\n \"pascal\": \"RoxyTarotSpread\",\n \"operationId\": \"castCelticCross\",\n \"attrs\": {\n \"spread\": \"celtic-cross\"\n }\n },\n \"post_tarot_spreads_love\": {\n \"tag\": \"roxy-tarot-spread\",\n \"pascal\": \"RoxyTarotSpread\",\n \"operationId\": \"castLoveSpread\",\n \"attrs\": {\n \"spread\": \"love\"\n }\n },\n \"post_tarot_spreads_career\": {\n \"tag\": \"roxy-tarot-spread\",\n \"pascal\": \"RoxyTarotSpread\",\n \"operationId\": \"castCareerSpread\",\n \"attrs\": {\n \"spread\": \"career\"\n }\n },\n \"post_tarot_spreads_custom\": {\n \"tag\": \"roxy-tarot-spread\",\n \"pascal\": \"RoxyTarotSpread\",\n \"operationId\": \"castCustomSpread\",\n \"attrs\": {\n \"spread\": \"custom\"\n }\n },\n \"post_tarot_yes_no\": {\n \"tag\": \"roxy-tarot-spread\",\n \"pascal\": \"RoxyTarotSpread\",\n \"operationId\": \"castYesNo\",\n \"attrs\": {\n \"spread\": \"yes-no\"\n }\n },\n \"post_tarot_draw\": {\n \"tag\": \"roxy-tarot-spread\",\n \"pascal\": \"RoxyTarotSpread\",\n \"operationId\": \"drawCards\",\n \"attrs\": {\n \"spread\": \"draw\"\n }\n },\n \"post_human_design_bodygraph\": {\n \"tag\": \"roxy-bodygraph\",\n \"pascal\": \"RoxyBodygraph\",\n \"operationId\": \"generateBodygraph\"\n },\n \"post_human_design_type\": {\n \"tag\": \"roxy-hd-type-card\",\n \"pascal\": \"RoxyHdTypeCard\",\n \"operationId\": \"calculateType\"\n },\n \"post_human_design_profile\": {\n \"tag\": \"roxy-hd-type-card\",\n \"pascal\": \"RoxyHdTypeCard\",\n \"operationId\": \"calculateProfile\"\n },\n \"post_human_design_connection\": {\n \"tag\": \"roxy-hd-connection\",\n \"pascal\": \"RoxyHdConnection\",\n \"operationId\": \"calculateConnection\"\n },\n \"post_human_design_penta\": {\n \"tag\": \"roxy-hd-penta\",\n \"pascal\": \"RoxyHdPenta\",\n \"operationId\": \"calculatePenta\"\n },\n \"post_human_design_variables\": {\n \"tag\": \"roxy-hd-variables\",\n \"pascal\": \"RoxyHdVariables\",\n \"operationId\": \"calculateVariables\"\n },\n \"post_forecast_timeline\": {\n \"tag\": \"roxy-forecast-timeline\",\n \"pascal\": \"RoxyForecastTimeline\",\n \"operationId\": \"generateTimeline\"\n },\n \"post_forecast_significant_dates\": {\n \"tag\": \"roxy-forecast-timeline\",\n \"pascal\": \"RoxyForecastTimeline\",\n \"operationId\": \"findSignificantDates\"\n },\n \"post_forecast_transits\": {\n \"tag\": \"roxy-forecast-timeline\",\n \"pascal\": \"RoxyForecastTimeline\",\n \"operationId\": \"forecastTransits\"\n },\n \"post_forecast_digest\": {\n \"tag\": \"roxy-forecast-digest\",\n \"pascal\": \"RoxyForecastDigest\",\n \"operationId\": \"generateDigest\"\n },\n \"post_chinese_astrology_bazi_chart\": {\n \"tag\": \"roxy-bazi-chart\",\n \"pascal\": \"RoxyBaziChart\",\n \"operationId\": \"generateBaziChart\"\n },\n \"post_chinese_astrology_bazi_luck_pillars\": {\n \"tag\": \"roxy-luck-pillars\",\n \"pascal\": \"RoxyLuckPillars\",\n \"operationId\": \"calculateLuckPillars\"\n },\n \"post_chinese_astrology_zodiac_sign\": {\n \"tag\": \"roxy-zodiac-card\",\n \"pascal\": \"RoxyZodiacCard\",\n \"operationId\": \"calculateZodiacAnimal\",\n \"attrs\": {\n \"mode\": \"sign\"\n }\n },\n \"get_chinese_astrology_zodiac_animals_id\": {\n \"tag\": \"roxy-zodiac-card\",\n \"pascal\": \"RoxyZodiacCard\",\n \"operationId\": \"getZodiacAnimal\",\n \"attrs\": {\n \"mode\": \"animal\"\n }\n },\n \"get_chinese_astrology_zodiac_id_daily\": {\n \"tag\": \"roxy-zodiac-card\",\n \"pascal\": \"RoxyZodiacCard\",\n \"operationId\": \"getDailyZodiacReading\",\n \"attrs\": {\n \"mode\": \"daily\"\n }\n },\n \"get_chinese_astrology_zodiac_compatibility_sign1_sign2\": {\n \"tag\": \"roxy-zodiac-card\",\n \"pascal\": \"RoxyZodiacCard\",\n \"operationId\": \"getZodiacCompatibility\",\n \"attrs\": {\n \"mode\": \"compatibility\"\n }\n },\n \"get_chinese_astrology_calendar_day_date\": {\n \"tag\": \"roxy-almanac-day\",\n \"pascal\": \"RoxyAlmanacDay\",\n \"operationId\": \"getAlmanacDay\",\n \"attrs\": {\n \"mode\": \"day\"\n }\n },\n \"get_chinese_astrology_calendar_monthly\": {\n \"tag\": \"roxy-almanac-day\",\n \"pascal\": \"RoxyAlmanacDay\",\n \"operationId\": \"getMonthlyAlmanac\",\n \"attrs\": {\n \"mode\": \"month\"\n }\n },\n \"post_chinese_astrology_calendar_auspicious_days\": {\n \"tag\": \"roxy-almanac-day\",\n \"pascal\": \"RoxyAlmanacDay\",\n \"operationId\": \"lookupAuspiciousDays\",\n \"attrs\": {\n \"mode\": \"auspicious\"\n }\n },\n \"post_feng_shui_flying_stars_natal\": {\n \"tag\": \"roxy-flying-star-chart\",\n \"pascal\": \"RoxyFlyingStarChart\",\n \"operationId\": \"generateFlyingStarChart\",\n \"attrs\": {\n \"mode\": \"natal\"\n }\n },\n \"get_feng_shui_flying_stars_annual_year\": {\n \"tag\": \"roxy-flying-star-chart\",\n \"pascal\": \"RoxyFlyingStarChart\",\n \"operationId\": \"getAnnualFlyingStars\",\n \"attrs\": {\n \"mode\": \"annual\"\n }\n },\n \"post_feng_shui_kua\": {\n \"tag\": \"roxy-kua-card\",\n \"pascal\": \"RoxyKuaCard\",\n \"operationId\": \"calculateKuaNumber\",\n \"attrs\": {\n \"mode\": \"kua\"\n }\n },\n \"post_feng_shui_eight_mansions\": {\n \"tag\": \"roxy-kua-card\",\n \"pascal\": \"RoxyKuaCard\",\n \"operationId\": \"generateEightMansions\",\n \"attrs\": {\n \"mode\": \"mansions\"\n }\n },\n \"post_mesoamerican_astrology_mayan_tzolkin\": {\n \"tag\": \"roxy-mayan-day-sign\",\n \"pascal\": \"RoxyMayanDaySign\",\n \"operationId\": \"calculateTzolkin\",\n \"attrs\": {\n \"mode\": \"day\"\n }\n },\n \"post_mesoamerican_astrology_mayan_chart\": {\n \"tag\": \"roxy-mayan-day-sign\",\n \"pascal\": \"RoxyMayanDaySign\",\n \"operationId\": \"generateMayanChart\",\n \"attrs\": {\n \"mode\": \"chart\"\n }\n },\n \"post_vastu_mandala\": {\n \"tag\": \"roxy-vastu-mandala\",\n \"pascal\": \"RoxyVastuMandala\",\n \"operationId\": \"generateMandala\",\n \"attrs\": {\n \"mode\": \"mandala\"\n }\n },\n \"post_vastu_entrance\": {\n \"tag\": \"roxy-vastu-mandala\",\n \"pascal\": \"RoxyVastuMandala\",\n \"operationId\": \"calculateEntrancePada\",\n \"attrs\": {\n \"mode\": \"entrance\"\n }\n },\n \"post_biorhythm_daily\": {\n \"tag\": \"roxy-biorhythm-chart\",\n \"pascal\": \"RoxyBiorhythmChart\",\n \"operationId\": \"getDailyBiorhythm\",\n \"attrs\": {\n \"mode\": \"daily\"\n }\n },\n \"post_biorhythm_forecast\": {\n \"tag\": \"roxy-biorhythm-chart\",\n \"pascal\": \"RoxyBiorhythmChart\",\n \"operationId\": \"getForecast\",\n \"attrs\": {\n \"mode\": \"forecast\"\n }\n },\n \"post_biorhythm_critical_days\": {\n \"tag\": \"roxy-biorhythm-chart\",\n \"pascal\": \"RoxyBiorhythmChart\",\n \"operationId\": \"getCriticalDays\",\n \"attrs\": {\n \"mode\": \"critical-days\"\n }\n },\n \"post_ayurveda_constitution\": {\n \"tag\": \"roxy-dosha-constitution\",\n \"pascal\": \"RoxyDoshaConstitution\",\n \"operationId\": \"calculateAyurvedicConstitution\"\n },\n \"get_iching_hexagrams_random\": {\n \"tag\": \"roxy-hexagram\",\n \"pascal\": \"RoxyHexagram\",\n \"operationId\": \"getRandomHexagram\"\n },\n \"get_iching_hexagrams_number\": {\n \"tag\": \"roxy-hexagram\",\n \"pascal\": \"RoxyHexagram\",\n \"operationId\": \"getHexagram\"\n },\n \"get_iching_hexagrams_lookup\": {\n \"tag\": \"roxy-hexagram\",\n \"pascal\": \"RoxyHexagram\",\n \"operationId\": \"lookupHexagram\"\n },\n \"get_iching_cast\": {\n \"tag\": \"roxy-hexagram\",\n \"pascal\": \"RoxyHexagram\",\n \"operationId\": \"castReading\"\n },\n \"post_iching_daily\": {\n \"tag\": \"roxy-hexagram\",\n \"pascal\": \"RoxyHexagram\",\n \"operationId\": \"getDailyHexagram\"\n },\n \"get_crystals_id\": {\n \"tag\": \"roxy-crystal-card\",\n \"pascal\": \"RoxyCrystalCard\",\n \"operationId\": \"getCrystal\"\n },\n \"get_crystals_chakra\": {\n \"tag\": \"roxy-crystal-grid\",\n \"pascal\": \"RoxyCrystalGrid\",\n \"operationId\": \"getCrystalsByChakra\"\n },\n \"get_crystals_element\": {\n \"tag\": \"roxy-crystal-grid\",\n \"pascal\": \"RoxyCrystalGrid\",\n \"operationId\": \"getCrystalsByElement\"\n },\n \"get_crystals_zodiac_sign\": {\n \"tag\": \"roxy-crystal-grid\",\n \"pascal\": \"RoxyCrystalGrid\",\n \"operationId\": \"getCrystalsByZodiac\"\n },\n \"get_crystals\": {\n \"tag\": \"roxy-crystal-grid\",\n \"pascal\": \"RoxyCrystalGrid\",\n \"operationId\": \"listCrystals\"\n },\n \"get_crystals_birthstone_month\": {\n \"tag\": \"roxy-crystal-grid\",\n \"pascal\": \"RoxyCrystalGrid\",\n \"operationId\": \"getBirthstones\"\n },\n \"get_crystals_search\": {\n \"tag\": \"roxy-crystal-grid\",\n \"pascal\": \"RoxyCrystalGrid\",\n \"operationId\": \"searchCrystals\"\n },\n \"get_dreams_symbols_id\": {\n \"tag\": \"roxy-dream-card\",\n \"pascal\": \"RoxyDreamCard\",\n \"operationId\": \"getDreamSymbol\"\n },\n \"get_dreams_symbols\": {\n \"tag\": \"roxy-dream-search\",\n \"pascal\": \"RoxyDreamSearch\",\n \"operationId\": \"searchDreamSymbols\"\n },\n \"get_angel_numbers_number\": {\n \"tag\": \"roxy-angel-number-card\",\n \"pascal\": \"RoxyAngelNumberCard\",\n \"operationId\": \"getAngelNumber\"\n },\n \"get_angel_numbers_lookup\": {\n \"tag\": \"roxy-angel-number-lookup\",\n \"pascal\": \"RoxyAngelNumberLookup\",\n \"operationId\": \"analyzeNumberSequence\"\n },\n \"get_astrology_signs_id\": {\n \"tag\": \"roxy-reference-card\",\n \"pascal\": \"RoxyReferenceCard\",\n \"operationId\": \"getZodiacSign\"\n },\n \"get_astrology_planet_meanings_id\": {\n \"tag\": \"roxy-reference-card\",\n \"pascal\": \"RoxyReferenceCard\",\n \"operationId\": \"getPlanetMeaning\"\n },\n \"get_vedic_astrology_rashis_id\": {\n \"tag\": \"roxy-reference-card\",\n \"pascal\": \"RoxyReferenceCard\",\n \"operationId\": \"getRashi\"\n },\n \"get_iching_trigrams_id\": {\n \"tag\": \"roxy-reference-card\",\n \"pascal\": \"RoxyReferenceCard\",\n \"operationId\": \"getTrigram\"\n },\n \"get_human_design_gates_number\": {\n \"tag\": \"roxy-reference-card\",\n \"pascal\": \"RoxyReferenceCard\",\n \"operationId\": \"getGate\"\n },\n \"get_human_design_centers_id\": {\n \"tag\": \"roxy-reference-card\",\n \"pascal\": \"RoxyReferenceCard\",\n \"operationId\": \"getCenter\"\n },\n \"get_numerology_meanings_number\": {\n \"tag\": \"roxy-reference-card\",\n \"pascal\": \"RoxyReferenceCard\",\n \"operationId\": \"getNumberMeaning\"\n },\n \"get_numerology_compound_number\": {\n \"tag\": \"roxy-reference-card\",\n \"pascal\": \"RoxyReferenceCard\",\n \"operationId\": \"getCompoundNumber\"\n },\n \"get_vedic_astrology_avasthas_id\": {\n \"tag\": \"roxy-reference-card\",\n \"pascal\": \"RoxyReferenceCard\",\n \"operationId\": \"getAvastha\"\n }\n};\n", "import {\n\tTOOL_COMPONENTS,\n\ttype ToolComponentEntry,\n} from '../generated/tool-components.js';\n\n/** The component that renders one MCP tool result, plus the name it was matched on. */\nexport interface ToolComponent extends ToolComponentEntry {\n\t/** The name the lookup resolved, with any server prefix removed. */\n\ttoolName: string;\n}\n\n/**\n * The component that renders the result of one MCP tool call, or `undefined` when nothing in the library draws that shape.\n *\n * @remarks\n * The name is what every model vendor hands back beside a tool result, so it is the key this resolves on. A host is free to prefix it with the server the tool came from and a colon; ours never contain one, so everything up to the last colon is dropped before the lookup.\n *\n * The table is resolved at build time, so this is a property read rather than a scan and the browser carries only the four fields a caller acts on.\n *\n * The result is a `data` consumer like any other: parse the JSON out of the tool result, set it on the element, and set the `attrs` beside it.\n *\n * @example\n * ```ts\n * const found = componentForTool('post_tarot_spreads_three_card');\n * if (found) {\n * const el = document.createElement(found.tag);\n * for (const [name, value] of Object.entries(found.attrs ?? {})) el.setAttribute(name, value);\n * el.data = JSON.parse(result.content[0].text);\n * }\n * ```\n */\nexport function componentForTool(name: string): ToolComponent | undefined {\n\tconst prefix = name.lastIndexOf(':');\n\tconst toolName = prefix === -1 ? name : name.slice(prefix + 1);\n\tconst found = TOOL_COMPONENTS[toolName];\n\treturn found ? { ...found, toolName } : undefined;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["ROXY_UI_VERSION", "SCRIPT_ID", "CDN_BASE_LATEST", "CDN_BASE_PREFIX", "CDN_BASE_SUFFIX", "loaded", "buildBase", "version", "ensureScriptLoaded", "baseUrl", "resolve", "reject", "url", "existing", "ROXY_UI_LOCALES", "localesLoaded", "ensureLocaleLoaded", "lang", "base", "pending", "id", "el", "defineComponent", "onMounted", "ref", "RoxyNatalChart", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxySynastryChart", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyWesternPlanetsTable", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyTransitsTable", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyTransitWheel", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyAspectsTable", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyMoonPhase", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyHoroscopeCard", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyAstrocartographyMap", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyLocalSpaceCompass", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyRelocationWheel", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyPositionsTable", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyEphemerisTable", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyFixedStars", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyProfectionCard", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyCompatibilityCard", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyVedicKundli", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyDivisionalChart", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyKpChart", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyVedicPlanetsTable", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyKpPlanetsTable", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyKpRulingPlanets", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyAshtakavargaGrid", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyShadbalaTable", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyDashaTimeline", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyGunaMilan", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyPanchangTable", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyVedicAspects", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyHoraTable", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyChoghadiyaGrid", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyHeliacalTable", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyVedicDaily", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyGocharaTable", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyBhavaBalaTable", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyBhavChalitTable", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyUpagrahaTable", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyCharaKarakas", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyArudhaPadas", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyYogaList", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyNakshatraCard", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyDoshaCard", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyNumerologyCard", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyGematria", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyTarotCard", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyTarotCatalog", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyTarotSpread", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyBodygraph", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyHdTypeCard", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyHdConnection", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyHdPenta", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyHdVariables", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyForecastTimeline", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyForecastDigest", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyBaziChart", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyLuckPillars", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyZodiacCard", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyAlmanacDay", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyFlyingStarChart", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyKuaCard", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyMayanDaySign", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyVastuMandala", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyBiorhythmChart", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyDoshaConstitution", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyHexagram", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyCrystalCard", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyCrystalGrid", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyDreamCard", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyDreamSearch", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyAngelNumberCard", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyAngelNumberLookup", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyReferenceCard", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyEndpointForm", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyLocationSearch", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "defineComponent", "h", "onMounted", "ref", "RoxyData", "defineComponent", "props", "loadError", "ref", "onMounted", "ensureScriptLoaded", "err", "h", "elementProps", "COLS", "ROWS", "isPlainObject", "value", "decode", "rebuilt", "out", "item", "next", "cols", "rows", "row", "col", "i", "key", "expandCompact", "TOOL_COMPONENTS", "componentForTool", "name", "prefix", "toolName", "found", "TOOL_COMPONENTS"]
|
|
7
7
|
}
|