/** * Single source of truth for component metadata. Every consumer that needs * the (tag, pascal, slug, description, heading) tuple reads from here: * scripts/build-react.ts, scripts/build-registry.ts, scripts/sync-docs.ts, * scripts/build-widgets.ts, and the browser-side apps/docs/manifest.js * (mirrored at build time). * * Hand-maintained. Add a component → add one entry here. The OpenAPI spec * does not yet carry component metadata, so this stays manual. */ export interface RoxyComponent { /** Pascal-case React export name, e.g. RoxyNatalChart */ pascal: string; /** Custom-element tag, e.g. roxy-natal-chart */ tag: string; /** Slug used in registry filenames and shadcn paths, e.g. natal-chart */ slug: string; /** Short human-readable heading shown on demo cards. */ heading: string; /** One-line description for registry / docs / SEO meta. */ description: string; /** Domain column label in the synced README/AGENTS table. */ docsLabel: string; /** Endpoint(s) column body in the synced README/AGENTS table. */ endpointLabel: string; /** What-it-renders column body in the synced README/AGENTS table. */ docsSummary: string; /** Filter category in the browser demo grid. */ topic: string; /** * True when the component does not consume a typed RoxyAPI response from a * consumer server route. Three cases today: * - : pure renderer, accepts any shape, no fetch. * - : calls /location/search itself via publishable key. * - : introspects the OpenAPI spec, emits roxy-submit. * The shadcn registry codegen emits a different doc body for these so we * never document a server route example with an undefined `data` reference. */ selfFetching?: boolean; } export const ROXY_COMPONENTS: readonly RoxyComponent[] = [ { pascal: 'RoxyNatalChart', tag: 'roxy-natal-chart', slug: 'natal-chart', heading: 'Natal chart', description: 'Western natal chart wheel for /astrology/natal-chart responses', docsLabel: 'Western', endpointLabel: 'POST /astrology/natal-chart', docsSummary: 'Natal chart wheel with planet glyphs and aspect lines', topic: 'Astrology', }, { pascal: 'RoxySynastryChart', tag: 'roxy-synastry-chart', slug: 'synastry-chart', heading: 'Synastry', description: 'Dual-wheel synastry chart with inter-aspects table', docsLabel: 'Western', endpointLabel: 'POST /astrology/synastry', docsSummary: 'Dual-wheel synastry with inter-aspects table', topic: 'Astrology', }, { pascal: 'RoxyWesternPlanetsTable', tag: 'roxy-western-planets-table', slug: 'western-planets-table', heading: 'Western planets', description: 'Western planetary positions table with sign, degree, house, and motion plus the chart angles', docsLabel: 'Western', endpointLabel: 'POST /astrology/natal-chart', docsSummary: 'Sign, degree, house, motion columns plus ASC, MC, PoF, Vertex', topic: 'Astrology', }, { pascal: 'RoxyTransitsTable', tag: 'roxy-transits-table', slug: 'transits-table', heading: 'Transits', description: 'Live planet positions plus aspects to a natal chart', docsLabel: 'Western', endpointLabel: 'POST /astrology/transits', docsSummary: 'Transit planet positions plus optional aspects to a natal chart', topic: 'Astrology', }, { pascal: 'RoxyTransitWheel', tag: 'roxy-transit-wheel', slug: 'transit-wheel', heading: 'Transit bi-wheel', description: 'Natal and transit bi-wheel with an aspect line for every transit to the natal chart', docsLabel: 'Western', endpointLabel: 'POST /astrology/transit-aspects', docsSummary: 'Natal chart on the inner ring, transiting bodies on the outer ring, aspect lines between them', topic: 'Astrology', }, { pascal: 'RoxyAspectsTable', tag: 'roxy-aspects-table', slug: 'aspects-table', heading: 'Aspects', description: 'Natal and transit aspect grid with chart-pattern detection (grand trines, t-squares, stelliums, yods)', docsLabel: 'Western', endpointLabel: 'POST /astrology/aspects, /astrology/transit-aspects, /astrology/aspect-patterns', docsSummary: 'Aspect rows coloured by nature with orb and strength, plus detected chart patterns', topic: 'Astrology', }, { pascal: 'RoxyMoonPhase', tag: 'roxy-moon-phase', slug: 'moon-phase', heading: 'Moon phase', description: 'Moon phase card and calendar', docsLabel: 'Western', endpointLabel: 'GET /astrology/moon-phase/{current,upcoming,calendar/...}', docsSummary: 'Moon phase card and calendar', topic: 'Astrology', }, { pascal: 'RoxyHoroscopeCard', tag: 'roxy-horoscope-card', slug: 'horoscope-card', heading: 'Horoscope', description: 'Daily, weekly, monthly, or yearly horoscope card for /astrology/horoscope/..., with the column, the dated sky events behind it, and the yearly themes, key periods, eclipses, retrogrades and best months', docsLabel: 'Western', endpointLabel: 'GET /astrology/horoscope/{sign}/{daily,weekly,monthly,yearly}', docsSummary: 'Daily, weekly, monthly, or yearly horoscope card', topic: 'Astrology', }, { pascal: 'RoxyAstrocartographyMap', tag: 'roxy-astrocartography-map', slug: 'astrocartography-map', heading: 'Astrocartography', description: 'Astrocartography world map plotting each body Midheaven, IC, Ascendant, and Descendant relocation lines', docsLabel: 'Western', endpointLabel: 'POST /astrology/astrocartography', docsSummary: 'World map of planetary MC, IC, Ascendant, and Descendant lines with per-line interpretations', topic: 'Astrology', }, { pascal: 'RoxyLocalSpaceCompass', tag: 'roxy-local-space-compass', slug: 'local-space-compass', heading: 'Local space', description: 'Local space compass plotting each body direction from the birthplace by azimuth and altitude', docsLabel: 'Western', endpointLabel: 'POST /astrology/local-space', docsSummary: 'Compass dial of planetary azimuth lines from the birthplace, dimmed below the horizon', topic: 'Astrology', }, { pascal: 'RoxyRelocationWheel', tag: 'roxy-relocation-wheel', slug: 'relocation-wheel', heading: 'Relocation chart', description: 'Relocation chart wheel recomputing houses and angles for a new place, with the planets that change house', docsLabel: 'Western', endpointLabel: 'POST /astrology/relocation-chart', docsSummary: 'Relocated chart wheel plus the move geometry, angular planets, and planets that change house', topic: 'Astrology', }, { pascal: 'RoxyPositionsTable', tag: 'roxy-positions-table', slug: 'positions-table', heading: 'Positions table', description: 'Editorial positions table for asteroids, Black Moon Lilith, secondary progressions, solar arc directions, and the Arabic lots', docsLabel: 'Western', endpointLabel: 'POST /astrology/asteroids, /astrology/lilith, /astrology/progressions, /astrology/solar-arc, /astrology/arabic-lots', docsSummary: 'Body, sign, degree, and per-shape columns (house, motion, formula, or natal arc) plus each reading', topic: 'Astrology', }, { pascal: 'RoxyEphemerisTable', tag: 'roxy-ephemeris-table', slug: 'ephemeris-table', heading: 'Ephemeris', description: 'Monthly ephemeris: every body day by day, with each sign change and retrograde stretch called out', docsLabel: 'Cross', endpointLabel: 'POST /astrology/planets/monthly, /vedic-astrology/planetary-positions/monthly', docsSummary: 'Per-body sign changes and retrograde windows for the month, over the full daily position grid', topic: 'Astrology', }, { pascal: 'RoxyFixedStars', tag: 'roxy-fixed-stars', slug: 'fixed-stars', heading: 'Fixed stars', description: 'Fixed star conjunctions to the natal chart, tightest first, with the precessed star catalog', docsLabel: 'Western', endpointLabel: 'POST /astrology/fixed-stars', docsSummary: 'Star to natal point conjunctions with readings, plus a catalog of position, magnitude, nature, and keywords', topic: 'Astrology', }, { pascal: 'RoxyProfectionCard', tag: 'roxy-profection-card', slug: 'profection-card', heading: 'Annual profection', description: 'Annual profection card with the profected house and sign, the lord of the year, and its natal placement', docsLabel: 'Western', endpointLabel: 'POST /astrology/profections', docsSummary: 'Profected house and sign for the year, the lord of the year, its natal placement, and the reading', topic: 'Astrology', }, { pascal: 'RoxyCompatibilityCard', tag: 'roxy-compatibility-card', slug: 'compatibility-card', heading: 'Compatibility score', description: 'Cross-domain compatibility score card', docsLabel: 'Cross', endpointLabel: 'POST /astrology/compatibility-score, /numerology/compatibility, /biorhythm/compatibility', docsSummary: 'Score card with category breakdown', topic: 'Astrology', }, { pascal: 'RoxyVedicKundli', tag: 'roxy-vedic-kundli', slug: 'vedic-kundli', heading: 'Vedic kundli', description: 'South, North, or East Indian Vedic kundli for /vedic-astrology/birth-chart with per-planet degree and nakshatra detail, plus an optional Chandra Lagna (Moon-as-ascendant) reference view', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/birth-chart', docsSummary: 'South, North, or East Indian kundli with degree detail and optional Chandra Lagna view', topic: 'Vedic', }, { pascal: 'RoxyDivisionalChart', tag: 'roxy-divisional-chart', slug: 'divisional-chart', heading: 'Divisional chart', description: 'D2 to D60 varga chart wheel with Vargottama markers', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/{divisional-chart,navamsa}', docsSummary: 'Generic divisional varga wheel from D2 Hora to D60 Shashtiamsa', topic: 'Vedic', }, { pascal: 'RoxyKpChart', tag: 'roxy-kp-chart', slug: 'kp-chart', heading: 'KP chart', description: 'Full KP chart with Ascendant, Placidus cusps, and planets and nodes in tabbed stellar-hierarchy tables', docsLabel: 'Vedic (KP)', endpointLabel: 'POST /vedic-astrology/kp/chart', docsSummary: 'Ascendant, cusps, planets and nodes with KP stellar hierarchy and house meanings', topic: 'Vedic', }, { pascal: 'RoxyVedicPlanetsTable', tag: 'roxy-vedic-planets-table', slug: 'vedic-planets-table', heading: 'Vedic planets', description: 'Vedic planetary positions table with degree, nakshatra, pada, nakshatra lord, bhava, and all three avastha systems', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/birth-chart', docsSummary: 'Degree, nakshatra, pada, lord, bhava, Baladi, Jagradadi and Deeptadi columns', topic: 'Vedic', }, { pascal: 'RoxyKpPlanetsTable', tag: 'roxy-kp-planets-table', slug: 'kp-planets-table', heading: 'KP planets', description: 'KP planets table with sub-lord and sub-sub-lord columns', docsLabel: 'Vedic (KP)', endpointLabel: 'POST /vedic-astrology/kp/planets', docsSummary: 'Sub-lord and sub-sub-lord columns', topic: 'Vedic', }, { pascal: 'RoxyKpRulingPlanets', tag: 'roxy-kp-ruling-planets', slug: 'kp-ruling-planets', heading: 'KP ruling planets', description: 'KP ruling planets with day lord, Moon and Lagna stellar hierarchies, and house significators', docsLabel: 'Vedic (KP)', endpointLabel: 'POST /vedic-astrology/kp/ruling-planets', docsSummary: 'Day lord, Moon/Lagna hierarchies, ruling planets, significators with house meanings', topic: 'Vedic', }, { pascal: 'RoxyAshtakavargaGrid', tag: 'roxy-ashtakavarga-grid', slug: 'ashtakavarga-grid', heading: 'Ashtakavarga', description: 'Sarva and Bhinna ashtakavarga heatmap with bindu scores', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/ashtakavarga', docsSummary: 'Sarva, Bhinna, and Shodhya Pinda views in a tabbed heatmap', topic: 'Vedic', }, { pascal: 'RoxyShadbalaTable', tag: 'roxy-shadbala-table', slug: 'shadbala-table', heading: 'Shadbala', description: 'Six-fold planetary strength with adequacy badge per planet', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/shadbala', docsSummary: 'Six-fold planetary strength bar plus rupas and adequacy badge', topic: 'Vedic', }, { pascal: 'RoxyDashaTimeline', tag: 'roxy-dasha-timeline', slug: 'dasha-timeline', heading: 'Vimshottari dasha', description: 'Vimshottari dasha timeline, mahadasha through prana, with the active period highlighted', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/dasha/{current,major,sub/...}', docsSummary: 'Vimshottari mahadasha, antardasha, pratyantardasha, sookshma and prana, drill-down at every level', topic: 'Vedic', }, { pascal: 'RoxyGunaMilan', tag: 'roxy-guna-milan', slug: 'guna-milan', heading: 'Guna milan', description: '36-point Ashtakoota matrimonial compatibility breakdown', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/compatibility', docsSummary: '36-point Ashtakoota with eight sub-scores', topic: 'Vedic', }, { pascal: 'RoxyPanchangTable', tag: 'roxy-panchang-table', slug: 'panchang-table', heading: 'Panchang', description: 'Panchang muhurta table with auspicious and inauspicious periods', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/panchang/{basic,detailed}', docsSummary: '15+ muhurtas in detailed mode', topic: 'Vedic', }, { pascal: 'RoxyVedicAspects', tag: 'roxy-vedic-aspects', slug: 'vedic-aspects', heading: 'Vedic aspects', description: 'Vedic graha drishti table: which planet aspects which, with mutual aspects surfaced first', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/aspects', docsSummary: 'Graha drishti rows with aspect type, strength, and orb, plus mutual aspects', topic: 'Vedic', }, { pascal: 'RoxyHoraTable', tag: 'roxy-hora-table', slug: 'hora-table', heading: 'Hora', description: 'Vedic Hora (planetary hours) table: 12 day and 12 night horas by ruling planet for electional timing', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/panchang/hora', docsSummary: 'Day and night planetary hours with ruling planet and window', topic: 'Vedic', }, { pascal: 'RoxyChoghadiyaGrid', tag: 'roxy-choghadiya-grid', slug: 'choghadiya-grid', heading: 'Choghadiya', description: 'Day and night Choghadiya muhurta tiles for activity timing', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/panchang/choghadiya', docsSummary: 'Day and night Choghadiya muhurta tiles colored by effect', topic: 'Vedic', }, { pascal: 'RoxyHeliacalTable', tag: 'roxy-heliacal-table', slug: 'heliacal-table', heading: 'Heliacal rising and setting', description: 'Whether each graha stands far enough from the Sun to be seen, with the date it next rises or sets', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/heliacal', docsSummary: 'Udaya and asta windows for the six visible grahas, the calculation behind Guru Asta and Shukra Asta', topic: 'Vedic', }, { pascal: 'RoxyVedicDaily', tag: 'roxy-vedic-daily', slug: 'vedic-daily', heading: 'Vedic daily', description: 'One native, one day: the verdict band, every graha state behind it, the Moon windows and the finance area', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/daily', docsSummary: 'Composed Vedic daily reading with the classical rule behind every graha state, the Tara and Chandrabala windows in full, and all three sidereal frames named', topic: 'Vedic', }, { pascal: 'RoxyKpFinanceCard', tag: 'roxy-kp-finance-card', slug: 'kp-finance-card', heading: 'KP daily finance', description: 'One native, one day scored for money: the band, the gain and loss significators, and the four sub lord layers behind the score', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/kp/daily-finance', docsSummary: 'KP daily finance reading with the cusp sub lords, the running dasha lords, the ruling planets and the Moon sub lord windows each scored against the gain and loss houses, weighed into one band for the day', topic: 'Vedic', }, { pascal: 'RoxyGocharaTable', tag: 'roxy-gochara-table', slug: 'gochara-table', heading: 'Gochara transits', description: 'Where each graha transits now, the natal house it falls in, and the Ashtakavarga-qualified kaksha verdict', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/transit', docsSummary: 'Vedic gochara with aspects to the natal chart and the Gochara Kaksha reading drawn as a position within the sign', topic: 'Vedic', }, { pascal: 'RoxyBhavaBalaTable', tag: 'roxy-bhava-bala-table', slug: 'bhava-bala-table', heading: 'Bhava Bala', description: 'The twelve houses ranked by strength, with the three classical components that make up each total', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/bhava-bala', docsSummary: 'House strength in rupas and virupas, ranked, with Bhavadhipati, Dig and Drishti Bala shown as proportions of the total', topic: 'Vedic', }, { pascal: 'RoxyBhavChalitTable', tag: 'roxy-bhav-chalit-table', slug: 'bhav-chalit-table', heading: 'Bhav Chalit', description: 'Which grahas change house once the bhavas are cut at their real cusps instead of at sign boundaries', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/bhav-chalit', docsSummary: 'The Chalit chart against the Rashi chart, leading with how many grahas move and which, plus the unequal bhava spans', topic: 'Vedic', }, { pascal: 'RoxyUpagrahaTable', tag: 'roxy-upagraha-table', slug: 'upagraha-table', heading: 'Upagrahas', description: 'The eleven upagrahas in their time-based and Sun-based groups, with rashi, degree, and nakshatra', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/upagraha', docsSummary: 'Time-based and Sun-based upagrahas with rashi, degree, longitude and nakshatra', topic: 'Vedic', }, { pascal: 'RoxyCharaKarakas', tag: 'roxy-chara-karakas', slug: 'chara-karakas', heading: 'Chara karakas', description: 'Jaimini chara karakas ranked Atmakaraka first, with the scheme that produced the ranking', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/chara-karakas', docsSummary: 'Karaka offices in rank order with graha, degree, scheme, and what each is read for', topic: 'Vedic', }, { pascal: 'RoxyArudhaPadas', tag: 'roxy-arudha-padas', slug: 'arudha-padas', heading: 'Arudha padas', description: 'The twelve Jaimini arudha padas with their derivation, the Arudha Lagna and the Upapada marked', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/arudha', docsSummary: 'Twelve padas with bhava, lord, pada rashi, house from Lagna, and the classical exception marked', topic: 'Vedic', }, { pascal: 'RoxyYogaList', tag: 'roxy-yoga-list', slug: 'yoga-list', heading: 'Yoga catalog', description: 'Yoga reference cards from the catalog with optional detail mode', docsLabel: 'Vedic', endpointLabel: 'GET /vedic-astrology/yoga, /vedic-astrology/yoga/{id}, POST /vedic-astrology/yoga/detect', docsSummary: 'Filterable yoga cards from the 300 plus yoga catalog, grouped by verdict in detect mode', topic: 'Vedic', }, { pascal: 'RoxyNakshatraCard', tag: 'roxy-nakshatra-card', slug: 'nakshatra-card', heading: 'Nakshatra', description: 'Nakshatra reference card with lord, deity, symbol, characteristics, and remedies', docsLabel: 'Vedic', endpointLabel: 'GET /vedic-astrology/nakshatras/{id}', docsSummary: 'Lord, deity, symbol, characteristics, remedies', topic: 'Vedic', }, { pascal: 'RoxyDoshaCard', tag: 'roxy-dosha-card', slug: 'dosha-card', heading: 'Manglik dosha', description: 'Manglik, Kaal Sarp, or Sade Sati presence card', docsLabel: 'Vedic', endpointLabel: 'POST /vedic-astrology/dosha/{manglik,kalsarpa,sadhesati}', docsSummary: 'Presence, severity, remedies, scoped effects', topic: 'Vedic', }, { pascal: 'RoxyNumerologyCard', tag: 'roxy-numerology-card', slug: 'numerology-card', heading: 'Life path number', description: 'Numerology card for life path, expression, soul urge, personality, personal year, or full chart', docsLabel: 'Numerology', endpointLabel: 'POST /numerology/{life-path,expression,soul-urge,personality,birth-day,maturity,daily,personal-day,personal-month,personal-year,chart}', docsSummary: 'Life path, expression, soul urge, personality, personal year, full chart', topic: 'Numerology', }, { pascal: 'RoxyCompoundNumber', tag: 'roxy-compound-number', slug: 'compound-number', heading: 'Compound number', description: 'Chaldean compound number card with the numeral, its symbolic name, root number, fortunate or unfortunate nature, the lower number it repeats, and the meaning', docsLabel: 'Numerology', endpointLabel: 'GET /numerology/compound-number/{number}', docsSummary: 'Compound 10 to 52 with name, root, nature and meaning', topic: 'Numerology', }, { pascal: 'RoxyGematria', tag: 'roxy-gematria', slug: 'gematria', heading: 'Gematria', description: 'Gematria calculator that shows its work: every Hebrew spelling the input can take, the value under each cipher with the ones that are not single valued, the per letter breakdown right to left, the two substitution ciphers, the Latin alphabet ciphers and the curated words of equal value', docsLabel: 'Kabbalah', endpointLabel: 'POST /kabbalah/gematria', docsSummary: 'Values by cipher, every candidate Hebrew spelling with its per letter breakdown, and equal-value words', topic: 'Kabbalah', }, { pascal: 'RoxyTarotCard', tag: 'roxy-tarot-card', slug: 'tarot-card', heading: 'Daily tarot card', description: 'Single tarot card with upright/reversed flip animation', docsLabel: 'Tarot', endpointLabel: 'GET /tarot/cards/{id}, POST /tarot/daily', docsSummary: 'Single card with upright and reversed flip', topic: 'Tarot', }, { pascal: 'RoxyTarotCatalog', tag: 'roxy-tarot-catalog', slug: 'tarot-catalog', heading: 'Tarot deck', description: 'Responsive tarot deck gallery with card art, name, and an arcana and suit caption; a picked tile opens its tarot card in place, and emits roxy-symbol-select for a host that pairs its own', docsLabel: 'Tarot', endpointLabel: 'GET /tarot/cards', docsSummary: 'Deck gallery tiles with card art, name, and arcana and suit; a pick opens the card in place', topic: 'Tarot', }, { pascal: 'RoxyTarotSpread', tag: 'roxy-tarot-spread', slug: 'tarot-spread', heading: 'Three-card spread', description: 'Tarot spread renderer for three-card, Celtic Cross, love, or yes/no', docsLabel: 'Tarot', endpointLabel: 'POST /tarot/spreads/{three-card,celtic-cross,love,career,custom}, /tarot/yes-no, /tarot/draw', docsSummary: 'Spreads with positions and reading', topic: 'Tarot', }, { pascal: 'RoxyBodygraph', tag: 'roxy-bodygraph', slug: 'bodygraph', heading: 'Bodygraph', description: 'Human Design bodygraph with nine centers, channels, and activated gates, plus the full reading: type, strategy, authority, profile, definition, incarnation cross, and a gate and line meaning for every activation', docsLabel: 'Human Design', endpointLabel: 'POST /human-design/bodygraph', docsSummary: 'Nine-center chart with defined and open centers, active channels, and gates, plus the type, strategy, authority, profile, and definition readings, the channels by circuit, the centers, and every activation with its gate and line meaning', topic: 'Human Design', }, { pascal: 'RoxyHdTypeCard', tag: 'roxy-hd-type-card', slug: 'hd-type-card', heading: 'HD type', description: 'Human Design type reading without the chart: type, strategy, authority, and profile, with the aura mechanic, the signature and not-self themes, and the interpretation behind each label. Also renders the profile response with its two line keynotes', docsLabel: 'Human Design', endpointLabel: 'POST /human-design/type, /human-design/profile', docsSummary: 'Type, strategy, authority, and profile tiles with the aura, signature, and not-self themes, plus the reading behind each label and the profile line keynotes', topic: 'Human Design', }, { pascal: 'RoxyHdConnection', tag: 'roxy-hd-connection', slug: 'hd-connection', heading: 'HD connection', description: 'Human Design connection chart: the composite channels two people form, with circuit, dynamic, and which person holds each gate', docsLabel: 'Human Design', endpointLabel: 'POST /human-design/connection', docsSummary: 'Electromagnetic, compromise, and dominance channels between two charts', topic: 'Human Design', }, { pascal: 'RoxyHdPenta', tag: 'roxy-hd-penta', slug: 'hd-penta', heading: 'HD penta', description: 'Human Design penta for a 3 to 5 person group: upper and lower triangle channels, defined or open, with core channels and member coverage', docsLabel: 'Human Design', endpointLabel: 'POST /human-design/penta', docsSummary: 'Group penta channels split into upper and lower triangles', topic: 'Human Design', }, { pascal: 'RoxyHdVariables', tag: 'roxy-hd-variables', slug: 'hd-variables', heading: 'HD variables', description: 'Human Design variables: the four PHS arrows (determination, environment, perspective, motivation) with left/right direction, color, tone, and base, plus the reading for each arrow and the cognition', docsLabel: 'Human Design', endpointLabel: 'POST /human-design/variables', docsSummary: 'The four transformation arrows with direction, color, tone, and base, plus a reading per arrow grouped by layer and the cognition', topic: 'Human Design', }, { pascal: 'RoxyForecastTimeline', tag: 'roxy-forecast-timeline', slug: 'forecast-timeline', heading: 'Forecast timeline', description: 'Cross-domain forecast event strip colored by domain and weighted by significance', docsLabel: 'Forecast', endpointLabel: 'POST /forecast/{timeline,significant-dates,transits}', docsSummary: 'Date-grouped events across Western, Vedic, and biorhythm domains, weighted by significance', topic: 'Forecast', }, { pascal: 'RoxyForecastDigest', tag: 'roxy-forecast-digest', slug: 'forecast-digest', heading: 'Forecast digest', description: 'Rolled-up forecast across the next 24 hours, 7, 30, and 90 days with per-domain breakdown and top events', docsLabel: 'Forecast', endpointLabel: 'POST /forecast/digest', docsSummary: 'Per-window event counts, domain breakdown, and the highest-significance events', topic: 'Forecast', }, { pascal: 'RoxyBaziChart', tag: 'roxy-bazi-chart', slug: 'bazi-chart', heading: 'Four pillars', description: 'BaZi four pillars chart: stem over branch per pillar with the Ten God relation, the stems each branch stores, the Na Yin, the Day Master, the five-element balance and every interaction the pillars form', docsLabel: 'Chinese', endpointLabel: 'POST /chinese-astrology/bazi/chart', docsSummary: 'Year, month, day and hour pillars in hanzi with hidden stems, Ten Gods, Na Yin, element balance and interactions', topic: 'Chinese Astrology', }, { pascal: 'RoxyLuckPillars', tag: 'roxy-luck-pillars', slug: 'luck-pillars', heading: 'Luck pillars', description: 'BaZi luck pillars: the ten-year stretches a chart is read through, each with its stem, branch and Ten God, plus the annual pillars inside them and the direction and starting age the sequence was built from', docsLabel: 'Chinese', endpointLabel: 'POST /chinese-astrology/bazi/luck-pillars', docsSummary: 'Ten-year luck pillars as a strip with ages and years, the annual pillars, and the direction and start age behind them', topic: 'Chinese Astrology', }, { pascal: 'RoxyZodiacCard', tag: 'roxy-zodiac-card', slug: 'zodiac-card', heading: 'Chinese zodiac', description: 'Chinese zodiac card: the animal a date falls in, the reference read of one animal with its trine and partner animals, a daily reading, or the compatibility of a pair', docsLabel: 'Chinese', endpointLabel: 'POST /chinese-astrology/zodiac/sign, GET /chinese-astrology/zodiac/{animals/{id},{id}/daily,compatibility/{sign1}/{sign2}}', docsSummary: 'The animal for a date, one animal in full, a daily reading, or a pair scored', topic: 'Chinese Astrology', }, { pascal: 'RoxyAlmanacDay', tag: 'roxy-almanac-day', slug: 'almanac-day', heading: 'Chinese almanac', description: 'Chinese almanac (Tong Shu): the day officer, what the day favours and avoids, the animal it clashes with, its three pillars and lunar mansion, for one day, a whole month, or a search for a date to act on', docsLabel: 'Chinese', endpointLabel: 'GET /chinese-astrology/calendar/{day/{date},monthly}, POST /chinese-astrology/calendar/auspicious-days', docsSummary: 'Day officer, favours and avoids, clash animal and pillars, as one day, a month, or a date search', topic: 'Chinese Astrology', }, { pascal: 'RoxyFlyingStarChart', tag: 'roxy-flying-star-chart', slug: 'flying-star-chart', heading: 'Flying star chart', description: 'Xuan Kong flying star plate: nine palaces on the compass with the mountain, period and water star of each, the facing and sitting mountains, and the structure the pair produces', docsLabel: 'Feng Shui', endpointLabel: 'POST /feng-shui/flying-stars/natal, GET /feng-shui/flying-stars/annual/{year}', docsSummary: 'Nine-palace flying star plate with the mountain, period and water star per palace, the facing and sitting mountains and the structure', topic: 'Feng Shui', }, { pascal: 'RoxyKuaCard', tag: 'roxy-kua-card', slug: 'kua-card', heading: 'Kua and eight mansions', description: 'Kua number with its trigram and the Eight Mansions map: all eight compass sectors on the nine-palace grid, each with its star, nature, rank and life domain, and the best and worst of them named', docsLabel: 'Feng Shui', endpointLabel: 'POST /feng-shui/kua, POST /feng-shui/eight-mansions', docsSummary: 'Kua number and trigram over the eight-sector direction map, favourable and unfavourable sectors ranked', topic: 'Feng Shui', }, { pascal: 'RoxyMayanDaySign', tag: 'roxy-mayan-day-sign', slug: 'mayan-day-sign', heading: 'Mayan day sign', description: 'Tzolkin day sign in all three of its spellings with the coefficient beside it, the trecena it sits in, the keynote, strengths, challenges and guidance, and on the full chart the Haab date, the Long Count, the Calendar Round, the year bearer and the four-fold cross', docsLabel: 'Mesoamerican', endpointLabel: 'POST /mesoamerican-astrology/mayan/tzolkin, POST /mesoamerican-astrology/mayan/chart', docsSummary: 'Day sign and coefficient with the trecena, the reading, and the Calendar Round on the fuller response', topic: 'Mesoamerican', }, { pascal: 'RoxyVastuMandala', tag: 'roxy-vastu-mandala', slug: 'vastu-mandala', heading: 'Vastu mandala', description: 'Vastu Purusha Mandala projected over a plot: every pada with the devata holding it, the brahmasthan block, the vamsa diagonals and where they cross, and in the entrance read the square the main door falls on with the verse effect for that pada', docsLabel: 'Vastu', endpointLabel: 'POST /vastu/mandala, POST /vastu/entrance', docsSummary: 'Pada grid with a devata per square, the brahmasthan, and the entrance pada lit with its effect', topic: 'Vastu', }, { pascal: 'RoxyBiorhythmChart', tag: 'roxy-biorhythm-chart', slug: 'biorhythm-chart', heading: 'Daily biorhythm', description: 'Daily biorhythm bars or multi-day forecast cycle lines', docsLabel: 'Biorhythm', endpointLabel: 'POST /biorhythm/{daily,forecast,critical-days}', docsSummary: 'Daily bars, forecast cycle lines, critical days', topic: 'Biorhythm', }, { pascal: 'RoxyDoshaConstitution', tag: 'roxy-dosha-constitution', slug: 'dosha-constitution', heading: 'Ayurvedic constitution', description: 'Ayurvedic constitution read from a birth chart: the three humour shares as one bar, the dominant and secondary humour, the three cited factors behind the blend with their verses, the shadbala ranking the third factor reads, and the scope note the response carries', docsLabel: 'Ayurveda', endpointLabel: 'POST /ayurveda/constitution', docsSummary: 'Vata, pitta and kapha shares as one bar with the dominant humour and the cited factors behind it', topic: 'Ayurveda', }, { pascal: 'RoxyHexagram', tag: 'roxy-hexagram', slug: 'hexagram', heading: 'I Ching hexagram', description: 'I Ching hexagram drawn line by line with trigram glyphs, judgment, image, and a reading for every line: the oracle statement and what it asks of the querent. A cast highlights the moving lines and shows only their readings, plus the hexagram it transforms into', docsLabel: 'I Ching', endpointLabel: 'GET /iching/hexagrams/{number}, /iching/hexagrams/random, /iching/hexagrams/lookup, /iching/cast, POST /iching/daily, /iching/daily/cast', docsSummary: 'Hexagram figure with trigrams, judgment, image, and a reading per line (statement plus meaning); a cast highlights the moving lines and the resulting hexagram', topic: 'I Ching', }, { pascal: 'RoxyCrystalCard', tag: 'roxy-crystal-card', slug: 'crystal-card', heading: 'Crystal detail', description: 'Single-crystal detail card with photo, spiritual, emotional, and physical meaning, metaphysical attributes, affirmation, and pairings; as a widget the visitor types a crystal name and picks it', docsLabel: 'Crystals', endpointLabel: 'GET /crystals/{id}', docsSummary: 'Photo, meaning sections, chakra, zodiac, element, hardness, keywords, and pairings', topic: 'Crystals', }, { pascal: 'RoxyCrystalGrid', tag: 'roxy-crystal-grid', slug: 'crystal-grid', heading: 'Crystal grid', description: 'Responsive crystal gallery with photo, name, and colour swatches from any crystals list response, filterable by chakra, zodiac sign, element, colour, and planet; a picked tile opens its crystal card in place', docsLabel: 'Crystals', endpointLabel: 'GET /crystals, /crystals/chakra/{chakra}, /crystals/element/{element}, /crystals/zodiac/{sign}, /crystals/birthstone/{month}, /crystals/search', docsSummary: 'Crystal gallery with chakra, zodiac, element, colour, and planet filters; a pick opens the card in place', topic: 'Crystals', }, { pascal: 'RoxyDreamCard', tag: 'roxy-dream-card', slug: 'dream-card', heading: 'Dream symbol', description: 'Dream symbol card with the symbol name, full interpretation, and dictionary letter; as a widget the visitor types a symbol and picks it', docsLabel: 'Dreams', endpointLabel: 'GET /dreams/symbols/{id}', docsSummary: 'Symbol name, interpretation body, and letter chip', topic: 'Dreams', }, { pascal: 'RoxyDreamSearch', tag: 'roxy-dream-search', slug: 'dream-search', heading: 'Dream search', description: 'The dream dictionary as selectable tiles under a search box and an A to Z bar; a picked tile opens its dream card in place, and emits roxy-symbol-select for a host that pairs its own', docsLabel: 'Dreams', endpointLabel: 'GET /dreams/symbols', docsSummary: 'The dream dictionary as tiles, browsed A to Z or searched; a pick opens the card in place', topic: 'Dreams', }, { pascal: 'RoxyAngelNumberCard', tag: 'roxy-angel-number-card', slug: 'angel-number-card', heading: 'Angel number', description: 'Angel number card with title, core message, badges, keywords, life-area interpretations, affirmation, and action steps', docsLabel: 'Angel Numbers', endpointLabel: 'GET /angel-numbers/numbers/{number}, POST /angel-numbers/daily', docsSummary: 'Number meaning with spiritual, love, career, money, twin flame, biblical, and shadow sections', topic: 'Angel Numbers', }, { pascal: 'RoxyAngelNumberLookup', tag: 'roxy-angel-number-lookup', slug: 'angel-number-lookup', heading: 'Angel number lookup', description: 'Angel number sequence analysis with pattern classification, the known meaning when present, and a digit-root fallback for any number', docsLabel: 'Angel Numbers', endpointLabel: 'GET /angel-numbers/lookup', docsSummary: 'Pattern analysis plus known meaning and digit-root fallback', topic: 'Angel Numbers', }, { pascal: 'RoxyReferenceCard', tag: 'roxy-reference-card', slug: 'reference-card', heading: 'Reference card', description: 'Glossary entry for any reference lookup: zodiac sign, planet meaning, rashi, I Ching trigram, Human Design gate or center, or numerology number', docsLabel: 'Reference', endpointLabel: 'GET /astrology/{signs,planet-meanings}/{id}, /vedic-astrology/{rashis,avasthas}/{id}, /iching/trigrams/{id}, /human-design/gates/{number}, /human-design/centers/{id}, /numerology/meanings/{number}', docsSummary: 'Symbol, name, description, keyword chips, and an attribute grid for any glossary lookup', topic: 'Helpers', }, { pascal: 'RoxyEndpointForm', tag: 'roxy-endpoint-form', slug: 'endpoint-form', heading: 'Schema-driven form', description: 'Schema-driven form that emits roxy-submit with a validated payload', docsLabel: 'Helper', endpointLabel: 'Any endpoint, from the spec', docsSummary: 'Schema-driven form, emits roxy-submit', topic: 'Helpers', selfFetching: true, }, { pascal: 'RoxyLocationSearch', tag: 'roxy-location-search', slug: 'location-search', heading: 'City search', description: 'City search input with debounced /location/search calls', docsLabel: 'Helper', endpointLabel: 'GET /location/search', docsSummary: 'Debounced city search input, emits roxy-location-select', topic: 'Helpers', selfFetching: true, }, { pascal: 'RoxyData', tag: 'roxy-data', slug: 'data', heading: 'Generic renderer', description: 'Generic fallback renderer for any OpenAPI response shape', docsLabel: 'Helper', endpointLabel: 'Any response shape', docsSummary: 'Generic fallback renderer for unknown shapes', topic: 'Helpers', selfFetching: true, }, ]; export type RoxyComponentSlug = (typeof ROXY_COMPONENTS)[number]['slug'];