@roxyapi/ui 0.9.0 → 0.11.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 +53 -27
- package/README.md +42 -12
- package/components-catalog.json +1022 -0
- package/dist/cdn/components/angel-number-card.js +52 -0
- package/dist/cdn/components/angel-number-card.js.map +7 -0
- package/dist/cdn/components/angel-number-lookup.js +52 -0
- package/dist/cdn/components/angel-number-lookup.js.map +7 -0
- package/dist/cdn/components/ashtakavarga-grid.js +10 -3
- package/dist/cdn/components/ashtakavarga-grid.js.map +4 -4
- package/dist/cdn/components/aspects-table.js +52 -0
- package/dist/cdn/components/aspects-table.js.map +7 -0
- package/dist/cdn/components/biorhythm-chart.js +10 -3
- package/dist/cdn/components/biorhythm-chart.js.map +4 -4
- package/dist/cdn/components/bodygraph.js +17 -10
- package/dist/cdn/components/bodygraph.js.map +4 -4
- package/dist/cdn/components/choghadiya-grid.js +10 -3
- package/dist/cdn/components/choghadiya-grid.js.map +4 -4
- package/dist/cdn/components/compatibility-card.js +10 -3
- package/dist/cdn/components/compatibility-card.js.map +4 -4
- package/dist/cdn/components/crystal-card.js +52 -0
- package/dist/cdn/components/crystal-card.js.map +7 -0
- package/dist/cdn/components/crystal-grid.js +52 -0
- package/dist/cdn/components/crystal-grid.js.map +7 -0
- package/dist/cdn/components/dasha-timeline.js +10 -3
- package/dist/cdn/components/dasha-timeline.js.map +4 -4
- package/dist/cdn/components/data.js +10 -3
- package/dist/cdn/components/data.js.map +4 -4
- package/dist/cdn/components/divisional-chart.js +31 -24
- package/dist/cdn/components/divisional-chart.js.map +4 -4
- package/dist/cdn/components/dosha-card.js +10 -3
- package/dist/cdn/components/dosha-card.js.map +4 -4
- package/dist/cdn/components/dream-card.js +52 -0
- package/dist/cdn/components/dream-card.js.map +7 -0
- package/dist/cdn/components/dream-search.js +52 -0
- package/dist/cdn/components/dream-search.js.map +7 -0
- package/dist/cdn/components/endpoint-form.js +3 -3
- package/dist/cdn/components/endpoint-form.js.map +3 -3
- package/dist/cdn/components/forecast-digest.js +52 -0
- package/dist/cdn/components/forecast-digest.js.map +7 -0
- package/dist/cdn/components/forecast-timeline.js +10 -3
- package/dist/cdn/components/forecast-timeline.js.map +4 -4
- package/dist/cdn/components/guna-milan.js +10 -3
- package/dist/cdn/components/guna-milan.js.map +4 -4
- package/dist/cdn/components/hd-connection.js +52 -0
- package/dist/cdn/components/hd-connection.js.map +7 -0
- package/dist/cdn/components/hd-penta.js +52 -0
- package/dist/cdn/components/hd-penta.js.map +7 -0
- package/dist/cdn/components/hd-variables.js +52 -0
- package/dist/cdn/components/hd-variables.js.map +7 -0
- package/dist/cdn/components/hexagram.js +10 -3
- package/dist/cdn/components/hexagram.js.map +4 -4
- package/dist/cdn/components/hora-table.js +52 -0
- package/dist/cdn/components/hora-table.js.map +7 -0
- package/dist/cdn/components/horoscope-card.js +10 -3
- package/dist/cdn/components/horoscope-card.js.map +4 -4
- package/dist/cdn/components/kp-chart.js +10 -3
- package/dist/cdn/components/kp-chart.js.map +4 -4
- package/dist/cdn/components/kp-planets-table.js +10 -3
- package/dist/cdn/components/kp-planets-table.js.map +4 -4
- package/dist/cdn/components/kp-ruling-planets.js +10 -3
- package/dist/cdn/components/kp-ruling-planets.js.map +4 -4
- package/dist/cdn/components/location-search.js +3 -3
- package/dist/cdn/components/location-search.js.map +2 -2
- package/dist/cdn/components/moon-phase.js +10 -3
- package/dist/cdn/components/moon-phase.js.map +4 -4
- package/dist/cdn/components/nakshatra-card.js +10 -3
- package/dist/cdn/components/nakshatra-card.js.map +4 -4
- package/dist/cdn/components/natal-chart.js +16 -9
- package/dist/cdn/components/natal-chart.js.map +4 -4
- package/dist/cdn/components/numerology-card.js +10 -3
- package/dist/cdn/components/numerology-card.js.map +4 -4
- package/dist/cdn/components/panchang-table.js +10 -3
- package/dist/cdn/components/panchang-table.js.map +4 -4
- package/dist/cdn/components/reference-card.js +52 -0
- package/dist/cdn/components/reference-card.js.map +7 -0
- package/dist/cdn/components/shadbala-table.js +10 -3
- package/dist/cdn/components/shadbala-table.js.map +4 -4
- package/dist/cdn/components/synastry-chart.js +16 -9
- package/dist/cdn/components/synastry-chart.js.map +4 -4
- package/dist/cdn/components/tarot-card.js +10 -3
- package/dist/cdn/components/tarot-card.js.map +4 -4
- package/dist/cdn/components/tarot-catalog.js +52 -0
- package/dist/cdn/components/tarot-catalog.js.map +7 -0
- package/dist/cdn/components/tarot-spread.js +10 -3
- package/dist/cdn/components/tarot-spread.js.map +4 -4
- package/dist/cdn/components/transits-table.js +10 -3
- package/dist/cdn/components/transits-table.js.map +4 -4
- package/dist/cdn/components/vedic-aspects.js +52 -0
- package/dist/cdn/components/vedic-aspects.js.map +7 -0
- package/dist/cdn/components/vedic-kundli.js +31 -24
- package/dist/cdn/components/vedic-kundli.js.map +4 -4
- package/dist/cdn/components/vedic-planets-table.js +10 -3
- package/dist/cdn/components/vedic-planets-table.js.map +4 -4
- package/dist/cdn/components/western-planets-table.js +10 -3
- package/dist/cdn/components/western-planets-table.js.map +4 -4
- package/dist/cdn/components/yoga-list.js +10 -3
- package/dist/cdn/components/yoga-list.js.map +4 -4
- package/dist/cdn/roxy-ui.js +92 -81
- package/dist/cdn/roxy-ui.js.map +4 -4
- package/dist/components/angel-number-card.d.ts +17 -0
- package/dist/components/angel-number-card.d.ts.map +1 -0
- package/dist/components/angel-number-card.js +2 -0
- package/dist/components/angel-number-card.js.map +7 -0
- package/dist/components/angel-number-lookup.d.ts +21 -0
- package/dist/components/angel-number-lookup.d.ts.map +1 -0
- package/dist/components/angel-number-lookup.js +2 -0
- package/dist/components/angel-number-lookup.js.map +7 -0
- package/dist/components/ashtakavarga-grid.d.ts +4 -5
- package/dist/components/ashtakavarga-grid.d.ts.map +1 -1
- package/dist/components/ashtakavarga-grid.js +1 -1
- package/dist/components/ashtakavarga-grid.js.map +4 -4
- package/dist/components/aspects-table.d.ts +23 -0
- package/dist/components/aspects-table.d.ts.map +1 -0
- package/dist/components/aspects-table.js +2 -0
- package/dist/components/aspects-table.js.map +7 -0
- package/dist/components/biorhythm-chart.d.ts +4 -5
- package/dist/components/biorhythm-chart.d.ts.map +1 -1
- package/dist/components/biorhythm-chart.js +1 -1
- package/dist/components/biorhythm-chart.js.map +4 -4
- package/dist/components/bodygraph.d.ts +4 -5
- package/dist/components/bodygraph.d.ts.map +1 -1
- package/dist/components/bodygraph.js +9 -9
- package/dist/components/bodygraph.js.map +4 -4
- package/dist/components/choghadiya-grid.d.ts +4 -5
- package/dist/components/choghadiya-grid.d.ts.map +1 -1
- package/dist/components/choghadiya-grid.js +1 -1
- package/dist/components/choghadiya-grid.js.map +4 -4
- package/dist/components/compatibility-card.d.ts +4 -5
- package/dist/components/compatibility-card.d.ts.map +1 -1
- package/dist/components/compatibility-card.js +1 -1
- package/dist/components/compatibility-card.js.map +4 -4
- package/dist/components/crystal-card.d.ts +19 -0
- package/dist/components/crystal-card.d.ts.map +1 -0
- package/dist/components/crystal-card.js +2 -0
- package/dist/components/crystal-card.js.map +7 -0
- package/dist/components/crystal-grid.d.ts +26 -0
- package/dist/components/crystal-grid.d.ts.map +1 -0
- package/dist/components/crystal-grid.js +2 -0
- package/dist/components/crystal-grid.js.map +7 -0
- package/dist/components/dasha-timeline.d.ts +4 -5
- package/dist/components/dasha-timeline.d.ts.map +1 -1
- package/dist/components/dasha-timeline.js +1 -1
- package/dist/components/dasha-timeline.js.map +4 -4
- package/dist/components/data.d.ts +5 -8
- package/dist/components/data.d.ts.map +1 -1
- package/dist/components/data.js +1 -1
- package/dist/components/data.js.map +4 -4
- package/dist/components/divisional-chart.d.ts +4 -5
- package/dist/components/divisional-chart.d.ts.map +1 -1
- package/dist/components/divisional-chart.js +59 -59
- package/dist/components/divisional-chart.js.map +4 -4
- package/dist/components/dosha-card.d.ts +4 -5
- package/dist/components/dosha-card.d.ts.map +1 -1
- package/dist/components/dosha-card.js +1 -1
- package/dist/components/dosha-card.js.map +4 -4
- package/dist/components/dream-card.d.ts +16 -0
- package/dist/components/dream-card.d.ts.map +1 -0
- package/dist/components/dream-card.js +2 -0
- package/dist/components/dream-card.js.map +7 -0
- package/dist/components/dream-search.d.ts +18 -0
- package/dist/components/dream-search.d.ts.map +1 -0
- package/dist/components/dream-search.js +2 -0
- package/dist/components/dream-search.js.map +7 -0
- package/dist/components/endpoint-form.d.ts +10 -5
- package/dist/components/endpoint-form.d.ts.map +1 -1
- package/dist/components/endpoint-form.js +1 -1
- package/dist/components/endpoint-form.js.map +3 -3
- package/dist/components/forecast-digest.d.ts +19 -0
- package/dist/components/forecast-digest.d.ts.map +1 -0
- package/dist/components/forecast-digest.js +2 -0
- package/dist/components/forecast-digest.js.map +7 -0
- package/dist/components/forecast-timeline.d.ts +8 -6
- package/dist/components/forecast-timeline.d.ts.map +1 -1
- package/dist/components/forecast-timeline.js +1 -1
- package/dist/components/forecast-timeline.js.map +4 -4
- package/dist/components/guna-milan.d.ts +4 -5
- package/dist/components/guna-milan.d.ts.map +1 -1
- package/dist/components/guna-milan.js +1 -1
- package/dist/components/guna-milan.js.map +4 -4
- package/dist/components/hd-connection.d.ts +18 -0
- package/dist/components/hd-connection.d.ts.map +1 -0
- package/dist/components/hd-connection.js +2 -0
- package/dist/components/hd-connection.js.map +7 -0
- package/dist/components/hd-penta.d.ts +18 -0
- package/dist/components/hd-penta.d.ts.map +1 -0
- package/dist/components/hd-penta.js +2 -0
- package/dist/components/hd-penta.js.map +7 -0
- package/dist/components/hd-variables.d.ts +17 -0
- package/dist/components/hd-variables.d.ts.map +1 -0
- package/dist/components/hd-variables.js +2 -0
- package/dist/components/hd-variables.js.map +7 -0
- package/dist/components/hexagram.d.ts +4 -5
- package/dist/components/hexagram.d.ts.map +1 -1
- package/dist/components/hexagram.js +1 -1
- package/dist/components/hexagram.js.map +4 -4
- package/dist/components/hora-table.d.ts +17 -0
- package/dist/components/hora-table.d.ts.map +1 -0
- package/dist/components/hora-table.js +2 -0
- package/dist/components/hora-table.js.map +7 -0
- package/dist/components/horoscope-card.d.ts +4 -5
- package/dist/components/horoscope-card.d.ts.map +1 -1
- package/dist/components/horoscope-card.js +1 -1
- package/dist/components/horoscope-card.js.map +4 -4
- package/dist/components/kp-chart.d.ts +4 -5
- package/dist/components/kp-chart.d.ts.map +1 -1
- package/dist/components/kp-chart.js +1 -1
- package/dist/components/kp-chart.js.map +4 -4
- package/dist/components/kp-planets-table.d.ts +4 -5
- package/dist/components/kp-planets-table.d.ts.map +1 -1
- package/dist/components/kp-planets-table.js +1 -1
- package/dist/components/kp-planets-table.js.map +4 -4
- package/dist/components/kp-ruling-planets.d.ts +4 -5
- package/dist/components/kp-ruling-planets.d.ts.map +1 -1
- package/dist/components/kp-ruling-planets.js +1 -1
- package/dist/components/kp-ruling-planets.js.map +4 -4
- package/dist/components/location-search.js +1 -1
- package/dist/components/location-search.js.map +2 -2
- package/dist/components/moon-phase.d.ts +5 -5
- package/dist/components/moon-phase.d.ts.map +1 -1
- package/dist/components/moon-phase.js +1 -1
- package/dist/components/moon-phase.js.map +4 -4
- package/dist/components/nakshatra-card.d.ts +4 -5
- package/dist/components/nakshatra-card.d.ts.map +1 -1
- package/dist/components/nakshatra-card.js +1 -1
- package/dist/components/nakshatra-card.js.map +4 -4
- package/dist/components/natal-chart.d.ts +4 -5
- package/dist/components/natal-chart.d.ts.map +1 -1
- package/dist/components/natal-chart.js +8 -8
- package/dist/components/natal-chart.js.map +4 -4
- package/dist/components/numerology-card.d.ts +15 -10
- package/dist/components/numerology-card.d.ts.map +1 -1
- package/dist/components/numerology-card.js +1 -1
- package/dist/components/numerology-card.js.map +4 -4
- package/dist/components/panchang-table.d.ts +4 -5
- package/dist/components/panchang-table.d.ts.map +1 -1
- package/dist/components/panchang-table.js +1 -1
- package/dist/components/panchang-table.js.map +4 -4
- package/dist/components/reference-card.d.ts +19 -0
- package/dist/components/reference-card.d.ts.map +1 -0
- package/dist/components/reference-card.js +2 -0
- package/dist/components/reference-card.js.map +7 -0
- package/dist/components/shadbala-table.d.ts +4 -5
- package/dist/components/shadbala-table.d.ts.map +1 -1
- package/dist/components/shadbala-table.js +1 -1
- package/dist/components/shadbala-table.js.map +4 -4
- package/dist/components/synastry-chart.d.ts +4 -5
- package/dist/components/synastry-chart.d.ts.map +1 -1
- package/dist/components/synastry-chart.js +7 -7
- package/dist/components/synastry-chart.js.map +4 -4
- package/dist/components/tarot-card.d.ts +4 -5
- package/dist/components/tarot-card.d.ts.map +1 -1
- package/dist/components/tarot-card.js +1 -1
- package/dist/components/tarot-card.js.map +4 -4
- package/dist/components/tarot-catalog.d.ts +20 -0
- package/dist/components/tarot-catalog.d.ts.map +1 -0
- package/dist/components/tarot-catalog.js +2 -0
- package/dist/components/tarot-catalog.js.map +7 -0
- package/dist/components/tarot-spread.d.ts +7 -8
- package/dist/components/tarot-spread.d.ts.map +1 -1
- package/dist/components/tarot-spread.js +1 -1
- package/dist/components/tarot-spread.js.map +4 -4
- package/dist/components/transits-table.d.ts +4 -5
- package/dist/components/transits-table.d.ts.map +1 -1
- package/dist/components/transits-table.js +1 -1
- package/dist/components/transits-table.js.map +4 -4
- package/dist/components/vedic-aspects.d.ts +16 -0
- package/dist/components/vedic-aspects.d.ts.map +1 -0
- package/dist/components/vedic-aspects.js +2 -0
- package/dist/components/vedic-aspects.js.map +7 -0
- package/dist/components/vedic-kundli.d.ts +22 -5
- package/dist/components/vedic-kundli.d.ts.map +1 -1
- package/dist/components/vedic-kundli.js +63 -63
- package/dist/components/vedic-kundli.js.map +4 -4
- package/dist/components/vedic-planets-table.d.ts +4 -5
- package/dist/components/vedic-planets-table.d.ts.map +1 -1
- package/dist/components/vedic-planets-table.js +1 -1
- package/dist/components/vedic-planets-table.js.map +4 -4
- package/dist/components/western-planets-table.d.ts +4 -5
- package/dist/components/western-planets-table.d.ts.map +1 -1
- package/dist/components/western-planets-table.js +1 -1
- package/dist/components/western-planets-table.js.map +4 -4
- package/dist/components/yoga-list.d.ts +6 -7
- package/dist/components/yoga-list.d.ts.map +1 -1
- package/dist/components/yoga-list.js +1 -1
- package/dist/components/yoga-list.js.map +4 -4
- package/dist/generated/endpoint-bindings.d.ts +15 -0
- package/dist/generated/endpoint-bindings.d.ts.map +1 -0
- package/dist/index.cjs +73 -73
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +71 -71
- package/dist/index.js.map +4 -4
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.json +39 -24
- package/dist/styles/tokens-css.d.ts +1 -1
- package/dist/styles/tokens-css.d.ts.map +1 -1
- package/dist/styles/tokens.css +4 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types.gen.d.ts +1103 -164
- package/dist/types/types.gen.d.ts.map +1 -1
- package/dist/utils/angel-sections.d.ts +14 -0
- package/dist/utils/angel-sections.d.ts.map +1 -0
- package/dist/utils/base-element.d.ts +73 -0
- package/dist/utils/base-element.d.ts.map +1 -0
- package/dist/utils/base-styles.d.ts.map +1 -1
- package/dist/utils/fetch-controller.d.ts +60 -0
- package/dist/utils/fetch-controller.d.ts.map +1 -0
- package/dist/utils/kundli-render.d.ts +2 -1
- package/dist/utils/kundli-render.d.ts.map +1 -1
- package/dist/utils/kundli-styles.d.ts.map +1 -1
- package/dist/utils/markup-data.d.ts +34 -0
- package/dist/utils/markup-data.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/components/angel-number-card.ts +210 -0
- package/src/components/angel-number-lookup.ts +207 -0
- package/src/components/ashtakavarga-grid.ts +15 -20
- package/src/components/aspects-table.ts +329 -0
- package/src/components/biorhythm-chart.ts +14 -18
- package/src/components/bodygraph.ts +9 -20
- package/src/components/choghadiya-grid.ts +15 -19
- package/src/components/compatibility-card.ts +9 -19
- package/src/components/crystal-card.ts +242 -0
- package/src/components/crystal-grid.ts +182 -0
- package/src/components/dasha-timeline.ts +9 -20
- package/src/components/data.ts +8 -27
- package/src/components/divisional-chart.ts +10 -18
- package/src/components/dosha-card.ts +8 -19
- package/src/components/dream-card.ts +88 -0
- package/src/components/dream-search.ts +135 -0
- package/src/components/endpoint-form.ts +149 -55
- package/src/components/forecast-digest.ts +213 -0
- package/src/components/forecast-timeline.ts +24 -19
- package/src/components/guna-milan.ts +8 -19
- package/src/components/hd-connection.ts +188 -0
- package/src/components/hd-penta.ts +165 -0
- package/src/components/hd-variables.ts +128 -0
- package/src/components/hexagram.ts +10 -18
- package/src/components/hora-table.ts +149 -0
- package/src/components/horoscope-card.ts +9 -19
- package/src/components/kp-chart.ts +11 -20
- package/src/components/kp-planets-table.ts +11 -20
- package/src/components/kp-ruling-planets.ts +8 -18
- package/src/components/moon-phase.ts +10 -19
- package/src/components/nakshatra-card.ts +11 -20
- package/src/components/natal-chart.ts +20 -23
- package/src/components/numerology-card.ts +90 -31
- package/src/components/panchang-table.ts +9 -19
- package/src/components/reference-card.ts +212 -0
- package/src/components/shadbala-table.ts +15 -18
- package/src/components/synastry-chart.ts +17 -20
- package/src/components/tarot-card.ts +9 -20
- package/src/components/tarot-catalog.ts +129 -0
- package/src/components/tarot-spread.ts +20 -21
- package/src/components/transits-table.ts +17 -20
- package/src/components/vedic-aspects.ts +188 -0
- package/src/components/vedic-kundli.ts +46 -19
- package/src/components/vedic-planets-table.ts +11 -19
- package/src/components/western-planets-table.ts +11 -19
- package/src/components/yoga-list.ts +17 -23
- package/src/generated/endpoint-bindings.ts +655 -0
- package/src/index.ts +27 -0
- package/src/manifest.ts +198 -6
- package/src/styles/tokens-css.ts +4 -0
- package/src/styles/tokens.css +4 -0
- package/src/types/index.ts +1 -1
- package/src/types/types.gen.ts +1123 -164
- package/src/utils/angel-sections.ts +38 -0
- package/src/utils/base-element.ts +183 -0
- package/src/utils/base-styles.ts +33 -0
- package/src/utils/fetch-controller.ts +166 -0
- package/src/utils/kundli-render.ts +9 -2
- package/src/utils/kundli-styles.ts +7 -1
- package/src/utils/markup-data.ts +45 -0
- package/src/version.ts +1 -1
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import { css, html,
|
|
1
|
+
import { css, html, nothing } from 'lit';
|
|
2
2
|
import { customElement, property } from 'lit/decorators.js';
|
|
3
3
|
import type {
|
|
4
|
+
CastCareerSpreadResponse,
|
|
4
5
|
CastCelticCrossResponse,
|
|
6
|
+
CastCustomSpreadResponse,
|
|
5
7
|
CastLoveSpreadResponse,
|
|
6
8
|
CastReadingResponse,
|
|
7
9
|
CastThreeCardResponse,
|
|
8
10
|
CastYesNoResponse,
|
|
9
11
|
DrawCardsResponse,
|
|
10
12
|
} from '../types/index.js';
|
|
13
|
+
import { RoxyDataElement } from '../utils/base-element.js';
|
|
11
14
|
import { baseStyles } from '../utils/base-styles.js';
|
|
12
|
-
import { MarkupDataController } from '../utils/markup-data.js';
|
|
13
15
|
|
|
14
16
|
type TarotSpreadData =
|
|
15
17
|
| CastThreeCardResponse
|
|
@@ -17,6 +19,8 @@ type TarotSpreadData =
|
|
|
17
19
|
| CastLoveSpreadResponse
|
|
18
20
|
| CastYesNoResponse
|
|
19
21
|
| CastReadingResponse
|
|
22
|
+
| CastCareerSpreadResponse
|
|
23
|
+
| CastCustomSpreadResponse
|
|
20
24
|
| DrawCardsResponse;
|
|
21
25
|
|
|
22
26
|
/**
|
|
@@ -24,7 +28,7 @@ type TarotSpreadData =
|
|
|
24
28
|
* /tarot/yes-no, /tarot/draw responses.
|
|
25
29
|
*/
|
|
26
30
|
@customElement('roxy-tarot-spread')
|
|
27
|
-
export class RoxyTarotSpread extends
|
|
31
|
+
export class RoxyTarotSpread extends RoxyDataElement<TarotSpreadData> {
|
|
28
32
|
static styles = [
|
|
29
33
|
baseStyles,
|
|
30
34
|
css`
|
|
@@ -84,7 +88,7 @@ export class RoxyTarotSpread extends LitElement {
|
|
|
84
88
|
border: 1px solid var(--roxy-border, #e4e4e7);
|
|
85
89
|
border-radius: var(--roxy-radius-md, 8px);
|
|
86
90
|
padding: var(--roxy-space-sm, 0.5rem);
|
|
87
|
-
background: var(--roxy-
|
|
91
|
+
background: var(--roxy-surface, #fff);
|
|
88
92
|
display: grid;
|
|
89
93
|
gap: var(--roxy-space-xs, 0.25rem);
|
|
90
94
|
}
|
|
@@ -136,26 +140,21 @@ export class RoxyTarotSpread extends LitElement {
|
|
|
136
140
|
`,
|
|
137
141
|
];
|
|
138
142
|
|
|
139
|
-
constructor() {
|
|
140
|
-
super();
|
|
141
|
-
// Enables hydrating `data` from a direct-child
|
|
142
|
-
// <script type="application/json" class="roxy-data"> for server-rendered
|
|
143
|
-
// and cached consumers. The JavaScript `data` property still wins.
|
|
144
|
-
new MarkupDataController(this);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
@property({ attribute: false })
|
|
148
|
-
data: TarotSpreadData | null = null;
|
|
149
|
-
|
|
150
143
|
@property({ type: String, reflect: true })
|
|
151
|
-
spread:
|
|
152
|
-
'three-card'
|
|
144
|
+
spread:
|
|
145
|
+
| 'three-card'
|
|
146
|
+
| 'celtic-cross'
|
|
147
|
+
| 'love'
|
|
148
|
+
| 'career'
|
|
149
|
+
| 'custom'
|
|
150
|
+
| 'yes-no'
|
|
151
|
+
| 'draw' = 'three-card';
|
|
153
152
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
return html`<div class="roxy-empty" role="status">No tarot spread</div>`;
|
|
153
|
+
protected renderEmpty() {
|
|
154
|
+
return html`<div class="roxy-empty" role="status">No tarot spread</div>`;
|
|
155
|
+
}
|
|
158
156
|
|
|
157
|
+
protected renderData(d: TarotSpreadData) {
|
|
159
158
|
const isYesNo = 'answer' in d;
|
|
160
159
|
const isDrawn = 'cards' in d && !('spread' in d);
|
|
161
160
|
const positions = isDrawn
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { css, html,
|
|
2
|
-
import { customElement,
|
|
1
|
+
import { css, html, nothing } from 'lit';
|
|
2
|
+
import { customElement, state } from 'lit/decorators.js';
|
|
3
3
|
import { PLANET_GLYPH, SIGN_GLYPH } from '../tokens/index.js';
|
|
4
4
|
import type { TransitsResponse } from '../types/index.js';
|
|
5
|
+
import { RoxyDataElement } from '../utils/base-element.js';
|
|
5
6
|
import { baseStyles } from '../utils/base-styles.js';
|
|
6
7
|
import { chevron, disclosureStyles } from '../utils/disclosure.js';
|
|
7
8
|
import { formatDate, formatNumber, formatTime } from '../utils/format.js';
|
|
8
|
-
import { MarkupDataController } from '../utils/markup-data.js';
|
|
9
9
|
import { capitalize } from '../utils/string.js';
|
|
10
10
|
import { renderTablist, tablistStyles } from '../utils/tablist.js';
|
|
11
11
|
|
|
@@ -15,13 +15,19 @@ import { renderTablist, tablistStyles } from '../utils/tablist.js';
|
|
|
15
15
|
* `data.summary` are present and rendered automatically.
|
|
16
16
|
*/
|
|
17
17
|
@customElement('roxy-transits-table')
|
|
18
|
-
export class RoxyTransitsTable extends
|
|
18
|
+
export class RoxyTransitsTable extends RoxyDataElement<TransitsResponse> {
|
|
19
19
|
static styles = [
|
|
20
20
|
baseStyles,
|
|
21
21
|
tablistStyles,
|
|
22
22
|
disclosureStyles,
|
|
23
23
|
css`
|
|
24
24
|
.wrap {
|
|
25
|
+
background: var(--roxy-surface, #fff);
|
|
26
|
+
color: var(--roxy-fg, #0a0a0a);
|
|
27
|
+
border: 1px solid var(--roxy-border, #e4e4e7);
|
|
28
|
+
border-radius: var(--roxy-radius-md, 8px);
|
|
29
|
+
padding: var(--roxy-space-lg, 1.5rem);
|
|
30
|
+
box-shadow: var(--roxy-shadow-sm);
|
|
25
31
|
display: grid;
|
|
26
32
|
gap: var(--roxy-space-md, 1rem);
|
|
27
33
|
}
|
|
@@ -219,25 +225,16 @@ export class RoxyTransitsTable extends LitElement {
|
|
|
219
225
|
`,
|
|
220
226
|
];
|
|
221
227
|
|
|
222
|
-
constructor() {
|
|
223
|
-
super();
|
|
224
|
-
// Enables hydrating `data` from a direct-child
|
|
225
|
-
// <script type="application/json" class="roxy-data"> for server-rendered
|
|
226
|
-
// and cached consumers. The JavaScript `data` property still wins.
|
|
227
|
-
new MarkupDataController(this);
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
@property({ attribute: false })
|
|
231
|
-
data: TransitsResponse | null = null;
|
|
232
|
-
|
|
233
228
|
/** Which panel is showing: planet positions or the transit-to-natal aspects. */
|
|
234
229
|
@state()
|
|
235
230
|
private tab: 'positions' | 'aspects' = 'positions';
|
|
236
231
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
232
|
+
protected renderEmpty() {
|
|
233
|
+
return html`<div class="roxy-empty" role="status">No transits data</div>`;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
protected renderData(d: TransitsResponse) {
|
|
237
|
+
if (!d.transitPlanets?.length) return this.renderEmpty();
|
|
241
238
|
|
|
242
239
|
const {
|
|
243
240
|
transitDate,
|
|
@@ -245,7 +242,7 @@ export class RoxyTransitsTable extends LitElement {
|
|
|
245
242
|
transitPlanets,
|
|
246
243
|
transitAspects,
|
|
247
244
|
summary,
|
|
248
|
-
} =
|
|
245
|
+
} = d;
|
|
249
246
|
|
|
250
247
|
const dateStr = [formatDate(transitDate), formatTime(transitTime)]
|
|
251
248
|
.filter(Boolean)
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { css, html, nothing } from 'lit';
|
|
2
|
+
import { customElement } from 'lit/decorators.js';
|
|
3
|
+
import type { CalculateDrishtiResponse } from '../types/index.js';
|
|
4
|
+
import { RoxyDataElement } from '../utils/base-element.js';
|
|
5
|
+
import { baseStyles } from '../utils/base-styles.js';
|
|
6
|
+
import { formatNumber } from '../utils/format.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Vedic graha drishti (planetary aspects) table. Renders /vedic-astrology/aspects: which planet casts an aspect on which, by special Vedic rules (every graha aspects the 7th; Mars the 4th and 8th, Jupiter the 5th and 9th, Saturn the 3rd and 10th). Mutual aspects (two planets aspecting each other) are surfaced first as they are the strongest sambandha. Each row shows the aspecting planet, the aspect kind, the aspected planet, its strength and orb.
|
|
10
|
+
*/
|
|
11
|
+
@customElement('roxy-vedic-aspects')
|
|
12
|
+
export class RoxyVedicAspects extends RoxyDataElement<CalculateDrishtiResponse> {
|
|
13
|
+
static styles = [
|
|
14
|
+
baseStyles,
|
|
15
|
+
css`
|
|
16
|
+
.wrap {
|
|
17
|
+
background: var(--roxy-surface, #fff);
|
|
18
|
+
color: var(--roxy-fg, #0a0a0a);
|
|
19
|
+
border: 1px solid var(--roxy-border, #e4e4e7);
|
|
20
|
+
border-radius: var(--roxy-radius-md, 8px);
|
|
21
|
+
padding: var(--roxy-space-lg, 1.5rem);
|
|
22
|
+
box-shadow: var(--roxy-shadow-sm);
|
|
23
|
+
display: grid;
|
|
24
|
+
gap: var(--roxy-space-md, 1rem);
|
|
25
|
+
}
|
|
26
|
+
.head {
|
|
27
|
+
display: flex;
|
|
28
|
+
justify-content: space-between;
|
|
29
|
+
align-items: baseline;
|
|
30
|
+
gap: var(--roxy-space-md, 1rem);
|
|
31
|
+
flex-wrap: wrap;
|
|
32
|
+
}
|
|
33
|
+
.title {
|
|
34
|
+
font-size: var(--roxy-text-lg, 1.125rem);
|
|
35
|
+
font-weight: var(--roxy-weight-bold, 600);
|
|
36
|
+
margin: 0;
|
|
37
|
+
}
|
|
38
|
+
.subtitle {
|
|
39
|
+
color: var(--roxy-muted, #71717a);
|
|
40
|
+
font-size: var(--roxy-text-sm, 0.875rem);
|
|
41
|
+
margin: 0;
|
|
42
|
+
}
|
|
43
|
+
.section-label {
|
|
44
|
+
font-size: var(--roxy-text-xs, 0.75rem);
|
|
45
|
+
color: var(--roxy-muted, #71717a);
|
|
46
|
+
text-transform: uppercase;
|
|
47
|
+
letter-spacing: 0.06em;
|
|
48
|
+
font-weight: var(--roxy-weight-bold, 600);
|
|
49
|
+
margin: 0 0 var(--roxy-space-xs, 0.25rem) 0;
|
|
50
|
+
}
|
|
51
|
+
.mutual {
|
|
52
|
+
display: flex;
|
|
53
|
+
flex-wrap: wrap;
|
|
54
|
+
gap: var(--roxy-space-sm, 0.5rem);
|
|
55
|
+
}
|
|
56
|
+
.mutual-pill {
|
|
57
|
+
display: inline-flex;
|
|
58
|
+
align-items: center;
|
|
59
|
+
gap: 0.35rem;
|
|
60
|
+
padding: 2px 10px;
|
|
61
|
+
border-radius: var(--roxy-radius-full, 9999px);
|
|
62
|
+
background: color-mix(in srgb, var(--roxy-accent, #f59e0b) 14%, transparent);
|
|
63
|
+
color: var(--roxy-fg, #0a0a0a);
|
|
64
|
+
font-size: var(--roxy-text-sm, 0.875rem);
|
|
65
|
+
font-weight: var(--roxy-weight-bold, 600);
|
|
66
|
+
}
|
|
67
|
+
.mutual-pill .rel {
|
|
68
|
+
font-size: var(--roxy-text-xs, 0.75rem);
|
|
69
|
+
font-weight: 400;
|
|
70
|
+
}
|
|
71
|
+
.overflow-scroll {
|
|
72
|
+
overflow-x: auto;
|
|
73
|
+
-webkit-overflow-scrolling: touch;
|
|
74
|
+
}
|
|
75
|
+
table {
|
|
76
|
+
width: 100%;
|
|
77
|
+
border-collapse: collapse;
|
|
78
|
+
font-size: var(--roxy-text-sm, 0.875rem);
|
|
79
|
+
}
|
|
80
|
+
th,
|
|
81
|
+
td {
|
|
82
|
+
padding: var(--roxy-space-sm, 0.5rem);
|
|
83
|
+
border-bottom: 1px solid var(--roxy-border, #e4e4e7);
|
|
84
|
+
text-align: left;
|
|
85
|
+
white-space: nowrap;
|
|
86
|
+
}
|
|
87
|
+
th {
|
|
88
|
+
color: var(--roxy-muted, #71717a);
|
|
89
|
+
font-weight: var(--roxy-weight-bold, 600);
|
|
90
|
+
text-transform: uppercase;
|
|
91
|
+
font-size: var(--roxy-text-xs, 0.75rem);
|
|
92
|
+
letter-spacing: 0.06em;
|
|
93
|
+
}
|
|
94
|
+
tbody tr:last-child td {
|
|
95
|
+
border-bottom: none;
|
|
96
|
+
}
|
|
97
|
+
.kind {
|
|
98
|
+
display: inline-block;
|
|
99
|
+
padding: 1px 8px;
|
|
100
|
+
border-radius: var(--roxy-radius-full, 9999px);
|
|
101
|
+
background: color-mix(in srgb, var(--roxy-border, #e4e4e7) 55%, transparent);
|
|
102
|
+
font-size: var(--roxy-text-xs, 0.75rem);
|
|
103
|
+
font-weight: 600;
|
|
104
|
+
}
|
|
105
|
+
.num {
|
|
106
|
+
font-variant-numeric: tabular-nums;
|
|
107
|
+
color: var(--roxy-muted, #71717a);
|
|
108
|
+
}
|
|
109
|
+
.bar {
|
|
110
|
+
display: inline-block;
|
|
111
|
+
height: 6px;
|
|
112
|
+
border-radius: 3px;
|
|
113
|
+
background: var(--roxy-accent, #f59e0b);
|
|
114
|
+
vertical-align: middle;
|
|
115
|
+
margin-right: 6px;
|
|
116
|
+
}
|
|
117
|
+
`,
|
|
118
|
+
];
|
|
119
|
+
|
|
120
|
+
protected renderEmpty() {
|
|
121
|
+
return html`<div class="roxy-empty" role="status">No aspect data</div>`;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
protected renderData(d: CalculateDrishtiResponse) {
|
|
125
|
+
const aspects = d.aspects ?? [];
|
|
126
|
+
const mutual = d.mutualAspects ?? [];
|
|
127
|
+
if (aspects.length === 0 && mutual.length === 0) return this.renderEmpty();
|
|
128
|
+
const date = d.datetime ? String(d.datetime).replace('T', ' ') : '';
|
|
129
|
+
|
|
130
|
+
return html`<div class="wrap" aria-label="Vedic aspects">
|
|
131
|
+
<div class="head">
|
|
132
|
+
<h2 class="title">Vedic Aspects</h2>
|
|
133
|
+
${date ? html`<p class="subtitle">${date}</p>` : nothing}
|
|
134
|
+
</div>
|
|
135
|
+
${
|
|
136
|
+
mutual.length > 0
|
|
137
|
+
? html`<div>
|
|
138
|
+
<p class="section-label">Mutual aspects</p>
|
|
139
|
+
<div class="mutual">
|
|
140
|
+
${mutual.map(
|
|
141
|
+
(m) => html`<span class="mutual-pill">
|
|
142
|
+
${m.planet1} ⟷ ${m.planet2}
|
|
143
|
+
${m.aspectType ? html`<span class="rel">${m.aspectType}</span>` : nothing}
|
|
144
|
+
</span>`,
|
|
145
|
+
)}
|
|
146
|
+
</div>
|
|
147
|
+
</div>`
|
|
148
|
+
: nothing
|
|
149
|
+
}
|
|
150
|
+
${
|
|
151
|
+
aspects.length > 0
|
|
152
|
+
? html`<div class="overflow-scroll">
|
|
153
|
+
<table>
|
|
154
|
+
<thead>
|
|
155
|
+
<tr>
|
|
156
|
+
<th scope="col">From</th>
|
|
157
|
+
<th scope="col">Aspect</th>
|
|
158
|
+
<th scope="col">To</th>
|
|
159
|
+
<th scope="col">Strength</th>
|
|
160
|
+
<th scope="col">Orb</th>
|
|
161
|
+
</tr>
|
|
162
|
+
</thead>
|
|
163
|
+
<tbody>
|
|
164
|
+
${aspects.map(
|
|
165
|
+
(a) => html`<tr>
|
|
166
|
+
<td>${a.aspectingPlanet}</td>
|
|
167
|
+
<td><span class="kind">${a.aspectType}</span></td>
|
|
168
|
+
<td>${a.aspectedPlanet}</td>
|
|
169
|
+
<td>
|
|
170
|
+
${typeof a.strength === 'number' ? html`<span class="bar" style="width:${Math.max(4, Math.min(100, a.strength) * 0.4)}px"></span><span class="num">${formatNumber(a.strength, 0)}</span>` : nothing}
|
|
171
|
+
</td>
|
|
172
|
+
<td class="num">${typeof a.orb === 'number' ? `${formatNumber(a.orb, 2)}°` : ''}</td>
|
|
173
|
+
</tr>`,
|
|
174
|
+
)}
|
|
175
|
+
</tbody>
|
|
176
|
+
</table>
|
|
177
|
+
</div>`
|
|
178
|
+
: nothing
|
|
179
|
+
}
|
|
180
|
+
</div>`;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
declare global {
|
|
185
|
+
interface HTMLElementTagNameMap {
|
|
186
|
+
'roxy-vedic-aspects': RoxyVedicAspects;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { html
|
|
1
|
+
import { html } from 'lit';
|
|
2
2
|
import { customElement, property } from 'lit/decorators.js';
|
|
3
3
|
import type { BirthChartResponse } from '../types/index.js';
|
|
4
|
+
import { RoxyDataElement } from '../utils/base-element.js';
|
|
4
5
|
import { baseStyles } from '../utils/base-styles.js';
|
|
5
6
|
import {
|
|
6
7
|
type ChartStyle,
|
|
@@ -10,7 +11,6 @@ import {
|
|
|
10
11
|
toKundliViewModel,
|
|
11
12
|
} from '../utils/kundli-render.js';
|
|
12
13
|
import { kundliStyles } from '../utils/kundli-styles.js';
|
|
13
|
-
import { MarkupDataController } from '../utils/markup-data.js';
|
|
14
14
|
import { tablistStyles } from '../utils/tablist.js';
|
|
15
15
|
|
|
16
16
|
/**
|
|
@@ -24,43 +24,70 @@ import { tablistStyles } from '../utils/tablist.js';
|
|
|
24
24
|
* page sets the initial style via `chart-style` attribute; from there the
|
|
25
25
|
* user takes over.
|
|
26
26
|
*
|
|
27
|
+
* The ascendant (house 1) defaults to the Janma Lagna carried in the response
|
|
28
|
+
* `meta`. Set `chart-reference="moon"` to render the Chandra Lagna (Moon as
|
|
29
|
+
* ascendant) from the same response, or `lagna-override="<rashi>"` to pin the
|
|
30
|
+
* reference to any sign (Surya Lagna, Arudha Lagna, a custom point). The same
|
|
31
|
+
* planet-in-sign data feeds every reference; only the house numbering rotates.
|
|
32
|
+
*
|
|
27
33
|
* Theming flows through CSS custom properties on `:host`, so the chart
|
|
28
34
|
* adopts the host page palette without runtime color probing.
|
|
29
35
|
*/
|
|
30
36
|
@customElement('roxy-vedic-kundli')
|
|
31
|
-
export class RoxyVedicKundli extends
|
|
37
|
+
export class RoxyVedicKundli extends RoxyDataElement<BirthChartResponse> {
|
|
32
38
|
static styles = [baseStyles, kundliStyles, tablistStyles];
|
|
33
39
|
|
|
34
|
-
constructor() {
|
|
35
|
-
super();
|
|
36
|
-
// Enables hydrating `data` from a direct-child
|
|
37
|
-
// <script type="application/json" class="roxy-data"> for server-rendered
|
|
38
|
-
// and cached consumers. The JavaScript `data` property still wins.
|
|
39
|
-
new MarkupDataController(this);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
@property({ attribute: false })
|
|
43
|
-
data: BirthChartResponse | null = null;
|
|
44
|
-
|
|
45
40
|
@property({ type: String, reflect: true, attribute: 'chart-style' })
|
|
46
41
|
chartStyle: ChartStyle = 'north';
|
|
47
42
|
|
|
43
|
+
/**
|
|
44
|
+
* Ascendant reference point. `'lagna'` (default) uses the Janma Lagna from the response; `'moon'` renders the Chandra Lagna (Moon sign as house 1) from the same response. An explicit {@link lagnaOverride} wins over this.
|
|
45
|
+
*/
|
|
46
|
+
@property({ type: String, reflect: true, attribute: 'chart-reference' })
|
|
47
|
+
chartReference: 'lagna' | 'moon' = 'lagna';
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Explicit rashi/sign name (case-insensitive, e.g. `"cancer"`) to use as the ascendant, overriding both the Janma Lagna and {@link chartReference}. Empty by default (standard Janma Lagna). Use for Surya Lagna, Arudha Lagna, or any custom reference chart.
|
|
51
|
+
*/
|
|
52
|
+
@property({ type: String, reflect: true, attribute: 'lagna-override' })
|
|
53
|
+
lagnaOverride = '';
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Resolve the ascendant override fed to {@link toKundliViewModel}. An explicit `lagna-override` wins; otherwise `chart-reference="moon"` derives the Moon rashi from the response `meta`. Returns `undefined` for the default Janma Lagna path.
|
|
57
|
+
*/
|
|
58
|
+
private resolveReference(): string | undefined {
|
|
59
|
+
if (this.lagnaOverride) return this.lagnaOverride;
|
|
60
|
+
if (this.chartReference === 'moon') return this.data?.meta?.Moon?.rashi;
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
|
|
48
64
|
private viewModel(): KundliViewModel | null {
|
|
49
65
|
if (!this.data?.meta) return null;
|
|
50
|
-
return toKundliViewModel(
|
|
66
|
+
return toKundliViewModel(
|
|
67
|
+
this.data.meta,
|
|
68
|
+
'D1 Rashi',
|
|
69
|
+
this.resolveReference(),
|
|
70
|
+
);
|
|
51
71
|
}
|
|
52
72
|
|
|
53
73
|
private setStyle = (next: ChartStyle) => {
|
|
54
74
|
this.chartStyle = next;
|
|
55
75
|
};
|
|
56
76
|
|
|
57
|
-
|
|
77
|
+
protected renderEmpty() {
|
|
78
|
+
return html`<div class="roxy-empty" role="status">No kundli data</div>`;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
protected renderData(_d: BirthChartResponse) {
|
|
58
82
|
const vm = this.viewModel();
|
|
59
|
-
if (!vm)
|
|
60
|
-
|
|
83
|
+
if (!vm) return this.renderEmpty();
|
|
84
|
+
const title =
|
|
85
|
+
this.chartReference === 'moon' && !this.lagnaOverride
|
|
86
|
+
? 'Chandra lagna'
|
|
87
|
+
: 'Vedic kundli';
|
|
61
88
|
return html`<div class="wrap">
|
|
62
89
|
<div class="header">
|
|
63
|
-
<h2 class="title"
|
|
90
|
+
<h2 class="title">${title}</h2>
|
|
64
91
|
${renderKundliStyleTablist(this.chartStyle, this.setStyle)}
|
|
65
92
|
</div>
|
|
66
93
|
<svg
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { css, html,
|
|
2
|
-
import { customElement
|
|
1
|
+
import { css, html, nothing } from 'lit';
|
|
2
|
+
import { customElement } from 'lit/decorators.js';
|
|
3
3
|
import { PLANET_GLYPH, SIGN_GLYPH } from '../tokens/index.js';
|
|
4
4
|
import type { BirthChartResponse } from '../types/index.js';
|
|
5
|
+
import { RoxyDataElement } from '../utils/base-element.js';
|
|
5
6
|
import { baseStyles } from '../utils/base-styles.js';
|
|
6
7
|
import { formatSignPosition } from '../utils/degree.js';
|
|
7
8
|
import { chevron, disclosureStyles } from '../utils/disclosure.js';
|
|
8
9
|
import { formatNumber } from '../utils/format.js';
|
|
9
|
-
import { MarkupDataController } from '../utils/markup-data.js';
|
|
10
10
|
import { capitalize } from '../utils/string.js';
|
|
11
11
|
|
|
12
12
|
/**
|
|
@@ -44,7 +44,7 @@ type MetaEntry = BirthChartResponse['meta'][string];
|
|
|
44
44
|
* non-empty.
|
|
45
45
|
*/
|
|
46
46
|
@customElement('roxy-vedic-planets-table')
|
|
47
|
-
export class RoxyVedicPlanetsTable extends
|
|
47
|
+
export class RoxyVedicPlanetsTable extends RoxyDataElement<BirthChartResponse> {
|
|
48
48
|
static styles = [
|
|
49
49
|
baseStyles,
|
|
50
50
|
disclosureStyles,
|
|
@@ -52,7 +52,7 @@ export class RoxyVedicPlanetsTable extends LitElement {
|
|
|
52
52
|
.wrap {
|
|
53
53
|
border: 1px solid var(--roxy-border, #e4e4e7);
|
|
54
54
|
border-radius: var(--roxy-radius-md, 8px);
|
|
55
|
-
background: var(--roxy-
|
|
55
|
+
background: var(--roxy-surface, #fff);
|
|
56
56
|
box-shadow: var(--roxy-shadow-sm);
|
|
57
57
|
overflow: hidden;
|
|
58
58
|
}
|
|
@@ -214,17 +214,6 @@ export class RoxyVedicPlanetsTable extends LitElement {
|
|
|
214
214
|
`,
|
|
215
215
|
];
|
|
216
216
|
|
|
217
|
-
constructor() {
|
|
218
|
-
super();
|
|
219
|
-
// Enables hydrating `data` from a direct-child
|
|
220
|
-
// <script type="application/json" class="roxy-data"> for server-rendered
|
|
221
|
-
// and cached consumers. The JavaScript `data` property still wins.
|
|
222
|
-
new MarkupDataController(this);
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
@property({ attribute: false })
|
|
226
|
-
data: BirthChartResponse | null = null;
|
|
227
|
-
|
|
228
217
|
/** Ordered [name, entry] pairs: GRAHA_ORDER first, then any extras. */
|
|
229
218
|
private orderedRows(): Array<[string, MetaEntry]> {
|
|
230
219
|
const meta = this.data?.meta ?? {};
|
|
@@ -243,9 +232,12 @@ export class RoxyVedicPlanetsTable extends LitElement {
|
|
|
243
232
|
return rows;
|
|
244
233
|
}
|
|
245
234
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
235
|
+
protected renderEmpty() {
|
|
236
|
+
return html`<div class="roxy-empty" role="status">No chart data</div>`;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
protected renderData(d: BirthChartResponse) {
|
|
240
|
+
if (!d.meta) return this.renderEmpty();
|
|
249
241
|
const rows = this.orderedRows();
|
|
250
242
|
|
|
251
243
|
return html`<div class="wrap" aria-label="Vedic planetary positions">
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { css, html,
|
|
2
|
-
import { customElement
|
|
1
|
+
import { css, html, nothing } from 'lit';
|
|
2
|
+
import { customElement } from 'lit/decorators.js';
|
|
3
3
|
import { PLANET_GLYPH, SIGN_GLYPH } from '../tokens/index.js';
|
|
4
4
|
import type { NatalChartResponse } from '../types/index.js';
|
|
5
|
+
import { RoxyDataElement } from '../utils/base-element.js';
|
|
5
6
|
import { baseStyles } from '../utils/base-styles.js';
|
|
6
7
|
import { formatSignPosition } from '../utils/degree.js';
|
|
7
8
|
import { formatNumber } from '../utils/format.js';
|
|
8
|
-
import { MarkupDataController } from '../utils/markup-data.js';
|
|
9
9
|
import { capitalize } from '../utils/string.js';
|
|
10
10
|
|
|
11
11
|
/** A body or point row, normalized so planets and the four angles share a table. */
|
|
@@ -27,14 +27,14 @@ interface BodyRow {
|
|
|
27
27
|
* the four chart points (Ascendant, Midheaven, Part of Fortune, Vertex).
|
|
28
28
|
*/
|
|
29
29
|
@customElement('roxy-western-planets-table')
|
|
30
|
-
export class RoxyWesternPlanetsTable extends
|
|
30
|
+
export class RoxyWesternPlanetsTable extends RoxyDataElement<NatalChartResponse> {
|
|
31
31
|
static styles = [
|
|
32
32
|
baseStyles,
|
|
33
33
|
css`
|
|
34
34
|
.wrap {
|
|
35
35
|
border: 1px solid var(--roxy-border, #e4e4e7);
|
|
36
36
|
border-radius: var(--roxy-radius-md, 8px);
|
|
37
|
-
background: var(--roxy-
|
|
37
|
+
background: var(--roxy-surface, #fff);
|
|
38
38
|
overflow: auto;
|
|
39
39
|
box-shadow: var(--roxy-shadow-sm);
|
|
40
40
|
}
|
|
@@ -93,17 +93,6 @@ export class RoxyWesternPlanetsTable extends LitElement {
|
|
|
93
93
|
`,
|
|
94
94
|
];
|
|
95
95
|
|
|
96
|
-
constructor() {
|
|
97
|
-
super();
|
|
98
|
-
// Enables hydrating `data` from a direct-child
|
|
99
|
-
// <script type="application/json" class="roxy-data"> for server-rendered
|
|
100
|
-
// and cached consumers. The JavaScript `data` property still wins.
|
|
101
|
-
new MarkupDataController(this);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
@property({ attribute: false })
|
|
105
|
-
data: NatalChartResponse | null = null;
|
|
106
|
-
|
|
107
96
|
/** Build the ordered row list: the planets array, then the four chart points. */
|
|
108
97
|
private rows(): BodyRow[] {
|
|
109
98
|
const d = this.data;
|
|
@@ -134,9 +123,12 @@ export class RoxyWesternPlanetsTable extends LitElement {
|
|
|
134
123
|
return rows;
|
|
135
124
|
}
|
|
136
125
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
126
|
+
protected renderEmpty() {
|
|
127
|
+
return html`<div class="roxy-empty" role="status">No chart data</div>`;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
protected renderData(d: NatalChartResponse) {
|
|
131
|
+
if (!d.planets) return this.renderEmpty();
|
|
140
132
|
const rows = this.rows();
|
|
141
133
|
|
|
142
134
|
return html`<div class="wrap" aria-label="Western planetary positions" tabindex="0">
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import { css, html,
|
|
2
|
-
import { customElement,
|
|
3
|
-
import type {
|
|
1
|
+
import { css, html, nothing } from 'lit';
|
|
2
|
+
import { customElement, state } from 'lit/decorators.js';
|
|
3
|
+
import type {
|
|
4
|
+
DetectYogasResponse,
|
|
5
|
+
GetYogaResponse,
|
|
6
|
+
ListYogasResponse,
|
|
7
|
+
} from '../types/index.js';
|
|
8
|
+
import { RoxyDataElement } from '../utils/base-element.js';
|
|
4
9
|
import { baseStyles } from '../utils/base-styles.js';
|
|
5
|
-
import { MarkupDataController } from '../utils/markup-data.js';
|
|
6
10
|
|
|
7
11
|
type YogaListData =
|
|
8
12
|
| ListYogasResponse
|
|
9
13
|
| GetYogaResponse
|
|
14
|
+
| DetectYogasResponse
|
|
10
15
|
| { yogas: Array<GetYogaResponse> };
|
|
11
16
|
|
|
12
17
|
/**
|
|
@@ -18,7 +23,7 @@ type YogaListData =
|
|
|
18
23
|
* Catalog and detail-array modes include a live search filter.
|
|
19
24
|
*/
|
|
20
25
|
@customElement('roxy-yoga-list')
|
|
21
|
-
export class RoxyYogaList extends
|
|
26
|
+
export class RoxyYogaList extends RoxyDataElement<YogaListData> {
|
|
22
27
|
static styles = [
|
|
23
28
|
baseStyles,
|
|
24
29
|
css`
|
|
@@ -55,7 +60,7 @@ export class RoxyYogaList extends LitElement {
|
|
|
55
60
|
font-family: var(--roxy-font-sans);
|
|
56
61
|
border: 1px solid var(--roxy-border, #e4e4e7);
|
|
57
62
|
border-radius: var(--roxy-radius-md, 8px);
|
|
58
|
-
background: var(--roxy-
|
|
63
|
+
background: var(--roxy-surface, #fff);
|
|
59
64
|
color: var(--roxy-fg, #0a0a0a);
|
|
60
65
|
outline: none;
|
|
61
66
|
}
|
|
@@ -77,7 +82,7 @@ export class RoxyYogaList extends LitElement {
|
|
|
77
82
|
border: 1px solid var(--roxy-border, #e4e4e7);
|
|
78
83
|
border-radius: var(--roxy-radius-md, 8px);
|
|
79
84
|
font-size: var(--roxy-text-sm, 0.875rem);
|
|
80
|
-
background: var(--roxy-
|
|
85
|
+
background: var(--roxy-surface, #fff);
|
|
81
86
|
color: var(--roxy-fg, #0a0a0a);
|
|
82
87
|
word-break: break-word;
|
|
83
88
|
}
|
|
@@ -92,7 +97,7 @@ export class RoxyYogaList extends LitElement {
|
|
|
92
97
|
border: 1px solid var(--roxy-border, #e4e4e7);
|
|
93
98
|
border-radius: var(--roxy-radius-md, 8px);
|
|
94
99
|
padding: var(--roxy-space-md, 1rem);
|
|
95
|
-
background: var(--roxy-
|
|
100
|
+
background: var(--roxy-surface, #fff);
|
|
96
101
|
display: grid;
|
|
97
102
|
gap: var(--roxy-space-sm, 0.5rem);
|
|
98
103
|
}
|
|
@@ -172,17 +177,6 @@ export class RoxyYogaList extends LitElement {
|
|
|
172
177
|
`,
|
|
173
178
|
];
|
|
174
179
|
|
|
175
|
-
constructor() {
|
|
176
|
-
super();
|
|
177
|
-
// Enables hydrating `data` from a direct-child
|
|
178
|
-
// <script type="application/json" class="roxy-data"> for server-rendered
|
|
179
|
-
// and cached consumers. The JavaScript `data` property still wins.
|
|
180
|
-
new MarkupDataController(this);
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
@property({ attribute: false })
|
|
184
|
-
data: YogaListData | null = null;
|
|
185
|
-
|
|
186
180
|
@state()
|
|
187
181
|
private filter = '';
|
|
188
182
|
|
|
@@ -217,11 +211,11 @@ export class RoxyYogaList extends LitElement {
|
|
|
217
211
|
</div>`;
|
|
218
212
|
}
|
|
219
213
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
214
|
+
protected renderEmpty() {
|
|
215
|
+
return html`<div class="roxy-empty" role="status">No yoga data</div>`;
|
|
216
|
+
}
|
|
223
217
|
|
|
224
|
-
|
|
218
|
+
protected renderData(d: YogaListData) {
|
|
225
219
|
const lc = this.filter.toLowerCase();
|
|
226
220
|
|
|
227
221
|
// Detail mode: single GetYogaResponse
|