@roxyapi/ui-react 0.0.1 → 0.1.1
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 +169 -0
- package/dist/components/biorhythm-chart.d.ts +9 -0
- package/dist/components/biorhythm-chart.d.ts.map +1 -0
- package/dist/components/biorhythm-chart.js +65 -0
- package/dist/components/biorhythm-chart.js.map +7 -0
- package/dist/components/compatibility-card.d.ts +9 -0
- package/dist/components/compatibility-card.d.ts.map +1 -0
- package/dist/components/compatibility-card.js +65 -0
- package/dist/components/compatibility-card.js.map +7 -0
- package/dist/components/dasha-timeline.d.ts +9 -0
- package/dist/components/dasha-timeline.d.ts.map +1 -0
- package/dist/components/dasha-timeline.js +65 -0
- package/dist/components/dasha-timeline.js.map +7 -0
- package/dist/components/data.d.ts +9 -0
- package/dist/components/data.d.ts.map +1 -0
- package/dist/components/data.js +65 -0
- package/dist/components/data.js.map +7 -0
- package/dist/components/dosha-card.d.ts +9 -0
- package/dist/components/dosha-card.d.ts.map +1 -0
- package/dist/components/dosha-card.js +65 -0
- package/dist/components/dosha-card.js.map +7 -0
- package/dist/components/endpoint-form.d.ts +9 -0
- package/dist/components/endpoint-form.d.ts.map +1 -0
- package/dist/components/endpoint-form.js +65 -0
- package/dist/components/endpoint-form.js.map +7 -0
- package/dist/components/guna-milan.d.ts +9 -0
- package/dist/components/guna-milan.d.ts.map +1 -0
- package/dist/components/guna-milan.js +65 -0
- package/dist/components/guna-milan.js.map +7 -0
- package/dist/components/hexagram.d.ts +9 -0
- package/dist/components/hexagram.d.ts.map +1 -0
- package/dist/components/hexagram.js +65 -0
- package/dist/components/hexagram.js.map +7 -0
- package/dist/components/horoscope-card.d.ts +9 -0
- package/dist/components/horoscope-card.d.ts.map +1 -0
- package/dist/components/horoscope-card.js +65 -0
- package/dist/components/horoscope-card.js.map +7 -0
- package/dist/components/kp-planets-table.d.ts +9 -0
- package/dist/components/kp-planets-table.d.ts.map +1 -0
- package/dist/components/kp-planets-table.js +65 -0
- package/dist/components/kp-planets-table.js.map +7 -0
- package/dist/components/location-search.d.ts +9 -0
- package/dist/components/location-search.d.ts.map +1 -0
- package/dist/components/location-search.js +65 -0
- package/dist/components/location-search.js.map +7 -0
- package/dist/components/moon-phase.d.ts +9 -0
- package/dist/components/moon-phase.d.ts.map +1 -0
- package/dist/components/moon-phase.js +65 -0
- package/dist/components/moon-phase.js.map +7 -0
- package/dist/components/natal-chart.d.ts +9 -0
- package/dist/components/natal-chart.d.ts.map +1 -0
- package/dist/components/natal-chart.js +65 -0
- package/dist/components/natal-chart.js.map +7 -0
- package/dist/components/numerology-card.d.ts +9 -0
- package/dist/components/numerology-card.d.ts.map +1 -0
- package/dist/components/numerology-card.js +65 -0
- package/dist/components/numerology-card.js.map +7 -0
- package/dist/components/panchang-table.d.ts +9 -0
- package/dist/components/panchang-table.d.ts.map +1 -0
- package/dist/components/panchang-table.js +65 -0
- package/dist/components/panchang-table.js.map +7 -0
- package/dist/components/synastry-chart.d.ts +9 -0
- package/dist/components/synastry-chart.d.ts.map +1 -0
- package/dist/components/synastry-chart.js +65 -0
- package/dist/components/synastry-chart.js.map +7 -0
- package/dist/components/tarot-card.d.ts +9 -0
- package/dist/components/tarot-card.d.ts.map +1 -0
- package/dist/components/tarot-card.js +65 -0
- package/dist/components/tarot-card.js.map +7 -0
- package/dist/components/tarot-spread.d.ts +9 -0
- package/dist/components/tarot-spread.d.ts.map +1 -0
- package/dist/components/tarot-spread.js +65 -0
- package/dist/components/tarot-spread.js.map +7 -0
- package/dist/components/vedic-kundli.d.ts +9 -0
- package/dist/components/vedic-kundli.d.ts.map +1 -0
- package/dist/components/vedic-kundli.js +65 -0
- package/dist/components/vedic-kundli.js.map +7 -0
- package/dist/index.cjs +565 -0
- package/dist/index.cjs.map +7 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +532 -0
- package/dist/index.js.map +7 -0
- package/dist/load-ui.d.ts +2 -0
- package/dist/load-ui.d.ts.map +1 -0
- package/dist/load-ui.js +38 -0
- package/dist/load-ui.js.map +7 -0
- package/package.json +47 -3
- package/src/components/biorhythm-chart.d.ts +12 -0
- package/src/components/biorhythm-chart.d.ts.map +1 -0
- package/src/components/biorhythm-chart.tsx +35 -0
- package/src/components/compatibility-card.d.ts +12 -0
- package/src/components/compatibility-card.d.ts.map +1 -0
- package/src/components/compatibility-card.tsx +35 -0
- package/src/components/dasha-timeline.d.ts +12 -0
- package/src/components/dasha-timeline.d.ts.map +1 -0
- package/src/components/dasha-timeline.tsx +35 -0
- package/src/components/data.d.ts +11 -0
- package/src/components/data.d.ts.map +1 -0
- package/src/components/data.tsx +35 -0
- package/src/components/dosha-card.d.ts +12 -0
- package/src/components/dosha-card.d.ts.map +1 -0
- package/src/components/dosha-card.tsx +35 -0
- package/src/components/endpoint-form.d.ts +12 -0
- package/src/components/endpoint-form.d.ts.map +1 -0
- package/src/components/endpoint-form.tsx +35 -0
- package/src/components/guna-milan.d.ts +12 -0
- package/src/components/guna-milan.d.ts.map +1 -0
- package/src/components/guna-milan.tsx +35 -0
- package/src/components/hexagram.d.ts +12 -0
- package/src/components/hexagram.d.ts.map +1 -0
- package/src/components/hexagram.tsx +35 -0
- package/src/components/horoscope-card.d.ts +12 -0
- package/src/components/horoscope-card.d.ts.map +1 -0
- package/src/components/horoscope-card.tsx +35 -0
- package/src/components/kp-planets-table.d.ts +12 -0
- package/src/components/kp-planets-table.d.ts.map +1 -0
- package/src/components/kp-planets-table.tsx +35 -0
- package/src/components/location-search.d.ts +12 -0
- package/src/components/location-search.d.ts.map +1 -0
- package/src/components/location-search.tsx +35 -0
- package/src/components/moon-phase.d.ts +12 -0
- package/src/components/moon-phase.d.ts.map +1 -0
- package/src/components/moon-phase.tsx +35 -0
- package/src/components/natal-chart.d.ts +12 -0
- package/src/components/natal-chart.d.ts.map +1 -0
- package/src/components/natal-chart.tsx +35 -0
- package/src/components/numerology-card.d.ts +12 -0
- package/src/components/numerology-card.d.ts.map +1 -0
- package/src/components/numerology-card.tsx +35 -0
- package/src/components/panchang-table.d.ts +12 -0
- package/src/components/panchang-table.d.ts.map +1 -0
- package/src/components/panchang-table.tsx +35 -0
- package/src/components/synastry-chart.d.ts +12 -0
- package/src/components/synastry-chart.d.ts.map +1 -0
- package/src/components/synastry-chart.tsx +35 -0
- package/src/components/tarot-card.d.ts +12 -0
- package/src/components/tarot-card.d.ts.map +1 -0
- package/src/components/tarot-card.tsx +35 -0
- package/src/components/tarot-spread.d.ts +12 -0
- package/src/components/tarot-spread.d.ts.map +1 -0
- package/src/components/tarot-spread.tsx +35 -0
- package/src/components/vedic-kundli.d.ts +12 -0
- package/src/components/vedic-kundli.d.ts.map +1 -0
- package/src/components/vedic-kundli.tsx +35 -0
- package/src/index.d.ts +21 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.ts +20 -0
- package/src/load-ui.d.ts +2 -0
- package/src/load-ui.d.ts.map +1 -0
- package/src/load-ui.ts +41 -0
package/AGENTS.md
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
This file teaches AI coding agents (Claude Code, Cursor, Copilot, Codex, Gemini CLI) how to use Roxy UI when integrating RoxyAPI into a project.
|
|
4
|
+
|
|
5
|
+
## Identity
|
|
6
|
+
|
|
7
|
+
Roxy UI is the official web component library for the RoxyAPI catalog. Components and helpers cover Western astrology, Vedic astrology, numerology, tarot, biorhythm, I Ching, crystals, dreams, angel numbers, with the location helper for geocoding. New endpoints regenerate component types automatically.
|
|
8
|
+
|
|
9
|
+
## Decision tree for picking a component
|
|
10
|
+
|
|
11
|
+
Use the table below. Match the user request against the endpoint, render the matching component.
|
|
12
|
+
|
|
13
|
+
<!-- BEGIN:COMPONENTS -->
|
|
14
|
+
| Element | Domain | Endpoint(s) | What it renders |
|
|
15
|
+
|---|---|---|---|
|
|
16
|
+
| `<roxy-natal-chart>` | Western | POST /astrology/natal-chart | Natal chart wheel with planet glyphs and aspect lines |
|
|
17
|
+
| `<roxy-horoscope-card>` | Western | GET /astrology/horoscope/{sign}/{daily,weekly,monthly} | Daily, weekly, or monthly horoscope card |
|
|
18
|
+
| `<roxy-synastry-chart>` | Western | POST /astrology/synastry | Dual-wheel synastry with inter-aspects table |
|
|
19
|
+
| `<roxy-compatibility-card>` | Cross | POST /astrology/compatibility-score, /numerology/compatibility, /biorhythm/compatibility | Score card with category breakdown |
|
|
20
|
+
| `<roxy-moon-phase>` | Western | GET /astrology/moon-phase/{current,upcoming,calendar/...} | Moon phase card and calendar |
|
|
21
|
+
| `<roxy-vedic-kundli>` | Vedic | POST /vedic-astrology/birth-chart | South or North Indian kundli |
|
|
22
|
+
| `<roxy-panchang-table>` | Vedic | POST /vedic-astrology/panchang/{basic,detailed} | 15+ muhurtas in detailed mode |
|
|
23
|
+
| `<roxy-dasha-timeline>` | Vedic | POST /vedic-astrology/dasha/{current,major,sub/...} | Vimshottari mahadasha + antardasha + pratyantardasha |
|
|
24
|
+
| `<roxy-dosha-card>` | Vedic | POST /vedic-astrology/dosha/{manglik,kalsarpa,sadhesati} | Presence, severity, remedies, scoped effects |
|
|
25
|
+
| `<roxy-guna-milan>` | Vedic | POST /vedic-astrology/compatibility | 36-point Ashtakoota with eight sub-scores |
|
|
26
|
+
| `<roxy-kp-planets-table>` | Vedic (KP) | POST /vedic-astrology/kp/planets | Sub-lord and sub-sub-lord columns |
|
|
27
|
+
| `<roxy-numerology-card>` | Numerology | POST /numerology/{life-path,expression,personal-year,chart} | Life path, expression, personal year, full chart |
|
|
28
|
+
| `<roxy-tarot-card>` | Tarot | GET /tarot/cards/{id}, POST /tarot/daily | Single card with upright and reversed flip |
|
|
29
|
+
| `<roxy-tarot-spread>` | Tarot | POST /tarot/spreads/{three-card,celtic-cross,love}, /tarot/yes-no, /tarot/draw | Spreads with positions and reading |
|
|
30
|
+
| `<roxy-biorhythm-chart>` | Biorhythm | POST /biorhythm/{daily,forecast,critical-days} | Daily bars, forecast cycle lines, critical days |
|
|
31
|
+
| `<roxy-hexagram>` | I Ching | GET /iching/hexagrams/{number}, /iching/cast, POST /iching/daily, /iching/daily/cast | Hexagram with trigrams, judgment, image, changing lines |
|
|
32
|
+
| `<roxy-endpoint-form>` | Helper | Any endpoint via x-roxy-ui hints | Schema-driven form, emits roxy-submit |
|
|
33
|
+
| `<roxy-location-search>` | Helper | GET /location/search | Debounced city search input, emits roxy-location-select |
|
|
34
|
+
| `<roxy-data>` | Helper | Any response shape | Generic fallback renderer for unknown shapes |
|
|
35
|
+
<!-- END:COMPONENTS -->
|
|
36
|
+
|
|
37
|
+
## Integration patterns
|
|
38
|
+
|
|
39
|
+
### Pattern 1: vanilla HTML, no build step
|
|
40
|
+
|
|
41
|
+
```html
|
|
42
|
+
<script
|
|
43
|
+
src="https://cdn.jsdelivr.net/npm/@roxyapi/ui@1/dist/cdn/roxy-ui.js"
|
|
44
|
+
crossorigin="anonymous"
|
|
45
|
+
></script>
|
|
46
|
+
|
|
47
|
+
<roxy-natal-chart id="chart"></roxy-natal-chart>
|
|
48
|
+
|
|
49
|
+
<script type="module">
|
|
50
|
+
const res = await fetch('https://roxyapi.com/api/v2/astrology/natal-chart', {
|
|
51
|
+
method: 'POST',
|
|
52
|
+
headers: { 'Content-Type': 'application/json', 'X-API-Key': 'roxy_xxx' },
|
|
53
|
+
body: JSON.stringify({
|
|
54
|
+
date: '1990-01-15',
|
|
55
|
+
time: '14:30:00',
|
|
56
|
+
latitude: 28.6139,
|
|
57
|
+
longitude: 77.209,
|
|
58
|
+
timezone: 5.5,
|
|
59
|
+
}),
|
|
60
|
+
});
|
|
61
|
+
const data = await res.json();
|
|
62
|
+
document.getElementById('chart').data = data;
|
|
63
|
+
</script>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Pattern 2: React, with the typed SDK
|
|
67
|
+
|
|
68
|
+
```tsx
|
|
69
|
+
import { createRoxy } from '@roxyapi/sdk';
|
|
70
|
+
import { RoxyNatalChart, RoxyLocationSearch } from '@roxyapi/ui-react';
|
|
71
|
+
import { useState } from 'react';
|
|
72
|
+
|
|
73
|
+
const roxy = createRoxy(process.env.NEXT_PUBLIC_ROXY_API_KEY!);
|
|
74
|
+
|
|
75
|
+
export function BirthChartView() {
|
|
76
|
+
const [chart, setChart] = useState(null);
|
|
77
|
+
|
|
78
|
+
const onLocationSelect = async (e: CustomEvent<{ latitude: number; longitude: number; timezone: string }>) => {
|
|
79
|
+
const { data } = await roxy.astrology.generateNatalChart({
|
|
80
|
+
body: { date: '1990-01-15', time: '14:30:00', ...e.detail },
|
|
81
|
+
});
|
|
82
|
+
setChart(data);
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
return (
|
|
86
|
+
<div>
|
|
87
|
+
<RoxyLocationSearch onroxy-location-select={onLocationSelect} />
|
|
88
|
+
{chart && <RoxyNatalChart data={chart} />}
|
|
89
|
+
</div>
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Pattern 3: schema-driven form
|
|
95
|
+
|
|
96
|
+
`<roxy-endpoint-form>` reads the OpenAPI spec and renders the inputs for any endpoint. Listen for the `roxy-submit` event with the validated payload.
|
|
97
|
+
|
|
98
|
+
```html
|
|
99
|
+
<roxy-endpoint-form
|
|
100
|
+
data-endpoint="vedic-astrology/birth-chart"
|
|
101
|
+
method="POST"
|
|
102
|
+
submit-label="Generate kundli"
|
|
103
|
+
></roxy-endpoint-form>
|
|
104
|
+
|
|
105
|
+
<script type="module">
|
|
106
|
+
const form = document.querySelector('roxy-endpoint-form');
|
|
107
|
+
form.addEventListener('roxy-submit', async (e) => {
|
|
108
|
+
const { endpoint, values } = e.detail;
|
|
109
|
+
const res = await fetch(`https://roxyapi.com/api/v2/${endpoint}`, {
|
|
110
|
+
method: 'POST',
|
|
111
|
+
headers: { 'Content-Type': 'application/json', 'X-API-Key': 'roxy_xxx' },
|
|
112
|
+
body: JSON.stringify(values),
|
|
113
|
+
});
|
|
114
|
+
const kundli = await res.json();
|
|
115
|
+
document.querySelector('roxy-vedic-kundli').data = kundli;
|
|
116
|
+
});
|
|
117
|
+
</script>
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Pattern 4: widgets auto-mount (no JavaScript wiring)
|
|
121
|
+
|
|
122
|
+
Use the publishable key flow for vibecoder embeds.
|
|
123
|
+
|
|
124
|
+
```html
|
|
125
|
+
<script
|
|
126
|
+
src="https://cdn.jsdelivr.net/npm/@roxyapi/ui@1/dist/cdn/widgets.js"
|
|
127
|
+
defer
|
|
128
|
+
></script>
|
|
129
|
+
|
|
130
|
+
<div
|
|
131
|
+
data-roxy-widget="natal-chart"
|
|
132
|
+
data-publishable-key="pk_live_xxx"
|
|
133
|
+
data-date="1990-01-15"
|
|
134
|
+
data-time="14:30:00"
|
|
135
|
+
data-latitude="28.6139"
|
|
136
|
+
data-longitude="77.209"
|
|
137
|
+
data-timezone="5.5"
|
|
138
|
+
></div>
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
The auto-mount script reads `data-*` attributes, calls the matching endpoint, and renders the matching component.
|
|
142
|
+
|
|
143
|
+
## Rules every agent must follow
|
|
144
|
+
|
|
145
|
+
- Always call `/location/search` first before any chart endpoint that takes latitude, longitude, or timezone. Use `<roxy-location-search>` for the input UI.
|
|
146
|
+
- Pass the response object directly. Components are stateless; they do not fetch internally except for `<roxy-location-search>`, `<roxy-endpoint-form>`, and the widgets auto-mount script.
|
|
147
|
+
- Use the typed SDK from `@roxyapi/sdk` so prop shapes match the spec automatically.
|
|
148
|
+
- Theming is CSS custom properties on `:root` or per element. Do not write Tailwind classes inside the components; the shadow DOM ignores them.
|
|
149
|
+
- Honor reduced motion. The library already respects `prefers-reduced-motion: reduce` and the `--roxy-motion-duration` variable.
|
|
150
|
+
- A11y violations are CI failures. Do not paste over `role` or `aria-*` attributes; the components emit them correctly already.
|
|
151
|
+
|
|
152
|
+
## Domain ordering
|
|
153
|
+
|
|
154
|
+
When listing domains in user-visible copy, use the canonical order: Western astrology, Vedic astrology, numerology, tarot, biorhythm, I Ching, crystals, dreams, angel numbers. Location is utility, not a selling domain.
|
|
155
|
+
|
|
156
|
+
## What not to ship
|
|
157
|
+
|
|
158
|
+
- Do not bundle `@roxyapi/ui` and `@roxyapi/ui-react` together; they are decoupled by design.
|
|
159
|
+
- Use `@roxyapi/ui-react` for React projects. Use `@roxyapi/ui` directly elsewhere.
|
|
160
|
+
- Do not write your own kundli component. The lifted layout in `<roxy-vedic-kundli>` is the canonical RoxyAPI render path.
|
|
161
|
+
- Do not call astrology endpoints with hardcoded coordinates. Always geocode first via `<roxy-location-search>` or `roxy.location.searchCities()`.
|
|
162
|
+
|
|
163
|
+
## Where to look next
|
|
164
|
+
|
|
165
|
+
- Component source: `packages/ui/src/components/`
|
|
166
|
+
- Sample data for every component: `apps/docs/sample-data.js`
|
|
167
|
+
- Token reference: `packages/ui/THEMING.md`
|
|
168
|
+
- Live preview: `bun run preview` then open `http://localhost:3001`
|
|
169
|
+
- Money endpoints reference: see the RoxyAPI methodology page at `roxyapi.com/methodology`
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
type DivAttrs = React.HTMLAttributes<HTMLElement>;
|
|
3
|
+
export interface RoxyBiorhythmChartProps extends Omit<DivAttrs, 'children' | 'onSelect'> {
|
|
4
|
+
data?: unknown;
|
|
5
|
+
[attr: string]: unknown;
|
|
6
|
+
}
|
|
7
|
+
export declare const RoxyBiorhythmChart: React.ForwardRefExoticComponent<Omit<RoxyBiorhythmChartProps, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=biorhythm-chart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"biorhythm-chart.d.ts","sourceRoot":"","sources":["../../src/components/biorhythm-chart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,KAAK,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AAElD,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IACvF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,kBAAkB,0GAwB9B,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// packages/ui-react/src/components/biorhythm-chart.tsx
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
|
|
4
|
+
// packages/ui-react/src/load-ui.ts
|
|
5
|
+
var SCRIPT_ID = "roxyapi-ui-loader";
|
|
6
|
+
var CDN_BASE = "https://cdn.jsdelivr.net/npm/@roxyapi/ui@0/dist/cdn";
|
|
7
|
+
var loaded = null;
|
|
8
|
+
function ensureScriptLoaded(version = "0.1.0") {
|
|
9
|
+
if (typeof document === "undefined") return Promise.resolve();
|
|
10
|
+
if (loaded) return loaded;
|
|
11
|
+
loaded = new Promise((resolve, reject) => {
|
|
12
|
+
const major = version.split(".")[0];
|
|
13
|
+
const url = `${CDN_BASE.replace("@0", "@" + major)}/roxy-ui.js`;
|
|
14
|
+
let existing = document.getElementById(SCRIPT_ID);
|
|
15
|
+
if (existing) {
|
|
16
|
+
if (existing.dataset.loaded === "true") {
|
|
17
|
+
resolve();
|
|
18
|
+
} else {
|
|
19
|
+
existing.addEventListener("load", () => resolve());
|
|
20
|
+
existing.addEventListener("error", () => reject(new Error("roxy-ui load failed")));
|
|
21
|
+
}
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
existing = document.createElement("script");
|
|
25
|
+
existing.id = SCRIPT_ID;
|
|
26
|
+
existing.src = url;
|
|
27
|
+
existing.async = true;
|
|
28
|
+
existing.crossOrigin = "anonymous";
|
|
29
|
+
existing.addEventListener("load", () => {
|
|
30
|
+
existing.dataset.loaded = "true";
|
|
31
|
+
resolve();
|
|
32
|
+
});
|
|
33
|
+
existing.addEventListener("error", () => reject(new Error("roxy-ui load failed")));
|
|
34
|
+
document.head.appendChild(existing);
|
|
35
|
+
});
|
|
36
|
+
return loaded;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// packages/ui-react/src/components/biorhythm-chart.tsx
|
|
40
|
+
var RoxyBiorhythmChart = React.forwardRef(
|
|
41
|
+
function RoxyBiorhythmChart2({ data, ...rest }, ref) {
|
|
42
|
+
const internal = React.useRef(null);
|
|
43
|
+
React.useImperativeHandle(ref, () => internal.current);
|
|
44
|
+
const [loaded2, setLoaded] = React.useState(false);
|
|
45
|
+
React.useEffect(() => {
|
|
46
|
+
let active = true;
|
|
47
|
+
ensureScriptLoaded().then(() => {
|
|
48
|
+
if (active) setLoaded(true);
|
|
49
|
+
});
|
|
50
|
+
return () => {
|
|
51
|
+
active = false;
|
|
52
|
+
};
|
|
53
|
+
}, []);
|
|
54
|
+
React.useEffect(() => {
|
|
55
|
+
if (internal.current && data !== void 0) {
|
|
56
|
+
internal.current.data = data;
|
|
57
|
+
}
|
|
58
|
+
}, [data, loaded2]);
|
|
59
|
+
return React.createElement("roxy-biorhythm-chart", { ref: internal, ...rest });
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
export {
|
|
63
|
+
RoxyBiorhythmChart
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=biorhythm-chart.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/biorhythm-chart.tsx", "../../src/load-ui.ts"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport { ensureScriptLoaded } from '../load-ui.js';\n\ntype DivAttrs = React.HTMLAttributes<HTMLElement>;\n\nexport interface RoxyBiorhythmChartProps extends Omit<DivAttrs, 'children' | 'onSelect'> {\n\tdata?: unknown;\n\t[attr: string]: unknown;\n}\n\nexport const RoxyBiorhythmChart = React.forwardRef<HTMLElement, RoxyBiorhythmChartProps>(\n\tfunction RoxyBiorhythmChart({ data, ...rest }, ref) {\n\t\tconst internal = React.useRef<HTMLElement | null>(null);\n\t\tReact.useImperativeHandle(ref, () => internal.current as HTMLElement);\n\t\tconst [loaded, setLoaded] = React.useState(false);\n\n\t\tReact.useEffect(() => {\n\t\t\tlet active = true;\n\t\t\tensureScriptLoaded().then(() => {\n\t\t\t\tif (active) setLoaded(true);\n\t\t\t});\n\t\t\treturn () => {\n\t\t\t\tactive = false;\n\t\t\t};\n\t\t}, []);\n\n\t\tReact.useEffect(() => {\n\t\t\tif (internal.current && data !== undefined) {\n\t\t\t\t(internal.current as unknown as { data: unknown }).data = data;\n\t\t\t}\n\t\t}, [data, loaded]);\n\n\t\treturn React.createElement('roxy-biorhythm-chart', { ref: internal, ...rest });\n\t},\n);\n", "/**\n * Loads the matching component bundle on first mount. Idempotent across\n * many components on the same page. Skips on the server (no document) so\n * React server components and Next.js SSR work without a flash.\n */\nconst SCRIPT_ID = 'roxyapi-ui-loader';\nconst CDN_BASE = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@0/dist/cdn\";\n\nlet loaded: Promise<void> | null = null;\n\nexport function ensureScriptLoaded(version: string = '0.1.0'): 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 major = version.split('.')[0];\n\t\tconst url = `${CDN_BASE.replace('@0', '@' + major)}/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"],
|
|
5
|
+
"mappings": ";AAAA,YAAY,WAAW;;;ACKvB,IAAM,YAAY;AAClB,IAAM,WAAW;AAEjB,IAAI,SAA+B;AAE5B,SAAS,mBAAmB,UAAkB,SAAwB;AAC5E,MAAI,OAAO,aAAa,YAAa,QAAO,QAAQ,QAAQ;AAC5D,MAAI,OAAQ,QAAO;AAEnB,WAAS,IAAI,QAAc,CAAC,SAAS,WAAW;AAC/C,UAAM,QAAQ,QAAQ,MAAM,GAAG,EAAE,CAAC;AAClC,UAAM,MAAM,GAAG,SAAS,QAAQ,MAAM,MAAM,KAAK,CAAC;AAClD,QAAI,WAAW,SAAS,eAAe,SAAS;AAChD,QAAI,UAAU;AACb,UAAI,SAAS,QAAQ,WAAW,QAAQ;AACvC,gBAAQ;AAAA,MACT,OAAO;AACN,iBAAS,iBAAiB,QAAQ,MAAM,QAAQ,CAAC;AACjD,iBAAS,iBAAiB,SAAS,MAAM,OAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC;AAAA,MAClF;AACA;AAAA,IACD;AACA,eAAW,SAAS,cAAc,QAAQ;AAC1C,aAAS,KAAK;AACd,aAAS,MAAM;AACf,aAAS,QAAQ;AACjB,aAAS,cAAc;AACvB,aAAS,iBAAiB,QAAQ,MAAM;AACvC,eAAU,QAAQ,SAAS;AAC3B,cAAQ;AAAA,IACT,CAAC;AACD,aAAS,iBAAiB,SAAS,MAAM,OAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC;AACjF,aAAS,KAAK,YAAY,QAAQ;AAAA,EACnC,CAAC;AACD,SAAO;AACR;;;AD9BO,IAAM,qBAA2B;AAAA,EACvC,SAASA,oBAAmB,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK;AACnD,UAAM,WAAiB,aAA2B,IAAI;AACtD,IAAM,0BAAoB,KAAK,MAAM,SAAS,OAAsB;AACpE,UAAM,CAACC,SAAQ,SAAS,IAAU,eAAS,KAAK;AAEhD,IAAM,gBAAU,MAAM;AACrB,UAAI,SAAS;AACb,yBAAmB,EAAE,KAAK,MAAM;AAC/B,YAAI,OAAQ,WAAU,IAAI;AAAA,MAC3B,CAAC;AACD,aAAO,MAAM;AACZ,iBAAS;AAAA,MACV;AAAA,IACD,GAAG,CAAC,CAAC;AAEL,IAAM,gBAAU,MAAM;AACrB,UAAI,SAAS,WAAW,SAAS,QAAW;AAC3C,QAAC,SAAS,QAAyC,OAAO;AAAA,MAC3D;AAAA,IACD,GAAG,CAAC,MAAMA,OAAM,CAAC;AAEjB,WAAa,oBAAc,wBAAwB,EAAE,KAAK,UAAU,GAAG,KAAK,CAAC;AAAA,EAC9E;AACD;",
|
|
6
|
+
"names": ["RoxyBiorhythmChart", "loaded"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
type DivAttrs = React.HTMLAttributes<HTMLElement>;
|
|
3
|
+
export interface RoxyCompatibilityCardProps extends Omit<DivAttrs, 'children' | 'onSelect'> {
|
|
4
|
+
data?: unknown;
|
|
5
|
+
[attr: string]: unknown;
|
|
6
|
+
}
|
|
7
|
+
export declare const RoxyCompatibilityCard: React.ForwardRefExoticComponent<Omit<RoxyCompatibilityCardProps, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=compatibility-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compatibility-card.d.ts","sourceRoot":"","sources":["../../src/components/compatibility-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,KAAK,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AAElD,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAC1F,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,qBAAqB,6GAwBjC,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// packages/ui-react/src/components/compatibility-card.tsx
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
|
|
4
|
+
// packages/ui-react/src/load-ui.ts
|
|
5
|
+
var SCRIPT_ID = "roxyapi-ui-loader";
|
|
6
|
+
var CDN_BASE = "https://cdn.jsdelivr.net/npm/@roxyapi/ui@0/dist/cdn";
|
|
7
|
+
var loaded = null;
|
|
8
|
+
function ensureScriptLoaded(version = "0.1.0") {
|
|
9
|
+
if (typeof document === "undefined") return Promise.resolve();
|
|
10
|
+
if (loaded) return loaded;
|
|
11
|
+
loaded = new Promise((resolve, reject) => {
|
|
12
|
+
const major = version.split(".")[0];
|
|
13
|
+
const url = `${CDN_BASE.replace("@0", "@" + major)}/roxy-ui.js`;
|
|
14
|
+
let existing = document.getElementById(SCRIPT_ID);
|
|
15
|
+
if (existing) {
|
|
16
|
+
if (existing.dataset.loaded === "true") {
|
|
17
|
+
resolve();
|
|
18
|
+
} else {
|
|
19
|
+
existing.addEventListener("load", () => resolve());
|
|
20
|
+
existing.addEventListener("error", () => reject(new Error("roxy-ui load failed")));
|
|
21
|
+
}
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
existing = document.createElement("script");
|
|
25
|
+
existing.id = SCRIPT_ID;
|
|
26
|
+
existing.src = url;
|
|
27
|
+
existing.async = true;
|
|
28
|
+
existing.crossOrigin = "anonymous";
|
|
29
|
+
existing.addEventListener("load", () => {
|
|
30
|
+
existing.dataset.loaded = "true";
|
|
31
|
+
resolve();
|
|
32
|
+
});
|
|
33
|
+
existing.addEventListener("error", () => reject(new Error("roxy-ui load failed")));
|
|
34
|
+
document.head.appendChild(existing);
|
|
35
|
+
});
|
|
36
|
+
return loaded;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// packages/ui-react/src/components/compatibility-card.tsx
|
|
40
|
+
var RoxyCompatibilityCard = React.forwardRef(
|
|
41
|
+
function RoxyCompatibilityCard2({ data, ...rest }, ref) {
|
|
42
|
+
const internal = React.useRef(null);
|
|
43
|
+
React.useImperativeHandle(ref, () => internal.current);
|
|
44
|
+
const [loaded2, setLoaded] = React.useState(false);
|
|
45
|
+
React.useEffect(() => {
|
|
46
|
+
let active = true;
|
|
47
|
+
ensureScriptLoaded().then(() => {
|
|
48
|
+
if (active) setLoaded(true);
|
|
49
|
+
});
|
|
50
|
+
return () => {
|
|
51
|
+
active = false;
|
|
52
|
+
};
|
|
53
|
+
}, []);
|
|
54
|
+
React.useEffect(() => {
|
|
55
|
+
if (internal.current && data !== void 0) {
|
|
56
|
+
internal.current.data = data;
|
|
57
|
+
}
|
|
58
|
+
}, [data, loaded2]);
|
|
59
|
+
return React.createElement("roxy-compatibility-card", { ref: internal, ...rest });
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
export {
|
|
63
|
+
RoxyCompatibilityCard
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=compatibility-card.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/compatibility-card.tsx", "../../src/load-ui.ts"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport { ensureScriptLoaded } from '../load-ui.js';\n\ntype DivAttrs = React.HTMLAttributes<HTMLElement>;\n\nexport interface RoxyCompatibilityCardProps extends Omit<DivAttrs, 'children' | 'onSelect'> {\n\tdata?: unknown;\n\t[attr: string]: unknown;\n}\n\nexport const RoxyCompatibilityCard = React.forwardRef<HTMLElement, RoxyCompatibilityCardProps>(\n\tfunction RoxyCompatibilityCard({ data, ...rest }, ref) {\n\t\tconst internal = React.useRef<HTMLElement | null>(null);\n\t\tReact.useImperativeHandle(ref, () => internal.current as HTMLElement);\n\t\tconst [loaded, setLoaded] = React.useState(false);\n\n\t\tReact.useEffect(() => {\n\t\t\tlet active = true;\n\t\t\tensureScriptLoaded().then(() => {\n\t\t\t\tif (active) setLoaded(true);\n\t\t\t});\n\t\t\treturn () => {\n\t\t\t\tactive = false;\n\t\t\t};\n\t\t}, []);\n\n\t\tReact.useEffect(() => {\n\t\t\tif (internal.current && data !== undefined) {\n\t\t\t\t(internal.current as unknown as { data: unknown }).data = data;\n\t\t\t}\n\t\t}, [data, loaded]);\n\n\t\treturn React.createElement('roxy-compatibility-card', { ref: internal, ...rest });\n\t},\n);\n", "/**\n * Loads the matching component bundle on first mount. Idempotent across\n * many components on the same page. Skips on the server (no document) so\n * React server components and Next.js SSR work without a flash.\n */\nconst SCRIPT_ID = 'roxyapi-ui-loader';\nconst CDN_BASE = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@0/dist/cdn\";\n\nlet loaded: Promise<void> | null = null;\n\nexport function ensureScriptLoaded(version: string = '0.1.0'): 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 major = version.split('.')[0];\n\t\tconst url = `${CDN_BASE.replace('@0', '@' + major)}/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"],
|
|
5
|
+
"mappings": ";AAAA,YAAY,WAAW;;;ACKvB,IAAM,YAAY;AAClB,IAAM,WAAW;AAEjB,IAAI,SAA+B;AAE5B,SAAS,mBAAmB,UAAkB,SAAwB;AAC5E,MAAI,OAAO,aAAa,YAAa,QAAO,QAAQ,QAAQ;AAC5D,MAAI,OAAQ,QAAO;AAEnB,WAAS,IAAI,QAAc,CAAC,SAAS,WAAW;AAC/C,UAAM,QAAQ,QAAQ,MAAM,GAAG,EAAE,CAAC;AAClC,UAAM,MAAM,GAAG,SAAS,QAAQ,MAAM,MAAM,KAAK,CAAC;AAClD,QAAI,WAAW,SAAS,eAAe,SAAS;AAChD,QAAI,UAAU;AACb,UAAI,SAAS,QAAQ,WAAW,QAAQ;AACvC,gBAAQ;AAAA,MACT,OAAO;AACN,iBAAS,iBAAiB,QAAQ,MAAM,QAAQ,CAAC;AACjD,iBAAS,iBAAiB,SAAS,MAAM,OAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC;AAAA,MAClF;AACA;AAAA,IACD;AACA,eAAW,SAAS,cAAc,QAAQ;AAC1C,aAAS,KAAK;AACd,aAAS,MAAM;AACf,aAAS,QAAQ;AACjB,aAAS,cAAc;AACvB,aAAS,iBAAiB,QAAQ,MAAM;AACvC,eAAU,QAAQ,SAAS;AAC3B,cAAQ;AAAA,IACT,CAAC;AACD,aAAS,iBAAiB,SAAS,MAAM,OAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC;AACjF,aAAS,KAAK,YAAY,QAAQ;AAAA,EACnC,CAAC;AACD,SAAO;AACR;;;AD9BO,IAAM,wBAA8B;AAAA,EAC1C,SAASA,uBAAsB,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK;AACtD,UAAM,WAAiB,aAA2B,IAAI;AACtD,IAAM,0BAAoB,KAAK,MAAM,SAAS,OAAsB;AACpE,UAAM,CAACC,SAAQ,SAAS,IAAU,eAAS,KAAK;AAEhD,IAAM,gBAAU,MAAM;AACrB,UAAI,SAAS;AACb,yBAAmB,EAAE,KAAK,MAAM;AAC/B,YAAI,OAAQ,WAAU,IAAI;AAAA,MAC3B,CAAC;AACD,aAAO,MAAM;AACZ,iBAAS;AAAA,MACV;AAAA,IACD,GAAG,CAAC,CAAC;AAEL,IAAM,gBAAU,MAAM;AACrB,UAAI,SAAS,WAAW,SAAS,QAAW;AAC3C,QAAC,SAAS,QAAyC,OAAO;AAAA,MAC3D;AAAA,IACD,GAAG,CAAC,MAAMA,OAAM,CAAC;AAEjB,WAAa,oBAAc,2BAA2B,EAAE,KAAK,UAAU,GAAG,KAAK,CAAC;AAAA,EACjF;AACD;",
|
|
6
|
+
"names": ["RoxyCompatibilityCard", "loaded"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
type DivAttrs = React.HTMLAttributes<HTMLElement>;
|
|
3
|
+
export interface RoxyDashaTimelineProps extends Omit<DivAttrs, 'children' | 'onSelect'> {
|
|
4
|
+
data?: unknown;
|
|
5
|
+
[attr: string]: unknown;
|
|
6
|
+
}
|
|
7
|
+
export declare const RoxyDashaTimeline: React.ForwardRefExoticComponent<Omit<RoxyDashaTimelineProps, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=dasha-timeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dasha-timeline.d.ts","sourceRoot":"","sources":["../../src/components/dasha-timeline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,KAAK,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AAElD,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IACtF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,iBAAiB,yGAwB7B,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// packages/ui-react/src/components/dasha-timeline.tsx
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
|
|
4
|
+
// packages/ui-react/src/load-ui.ts
|
|
5
|
+
var SCRIPT_ID = "roxyapi-ui-loader";
|
|
6
|
+
var CDN_BASE = "https://cdn.jsdelivr.net/npm/@roxyapi/ui@0/dist/cdn";
|
|
7
|
+
var loaded = null;
|
|
8
|
+
function ensureScriptLoaded(version = "0.1.0") {
|
|
9
|
+
if (typeof document === "undefined") return Promise.resolve();
|
|
10
|
+
if (loaded) return loaded;
|
|
11
|
+
loaded = new Promise((resolve, reject) => {
|
|
12
|
+
const major = version.split(".")[0];
|
|
13
|
+
const url = `${CDN_BASE.replace("@0", "@" + major)}/roxy-ui.js`;
|
|
14
|
+
let existing = document.getElementById(SCRIPT_ID);
|
|
15
|
+
if (existing) {
|
|
16
|
+
if (existing.dataset.loaded === "true") {
|
|
17
|
+
resolve();
|
|
18
|
+
} else {
|
|
19
|
+
existing.addEventListener("load", () => resolve());
|
|
20
|
+
existing.addEventListener("error", () => reject(new Error("roxy-ui load failed")));
|
|
21
|
+
}
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
existing = document.createElement("script");
|
|
25
|
+
existing.id = SCRIPT_ID;
|
|
26
|
+
existing.src = url;
|
|
27
|
+
existing.async = true;
|
|
28
|
+
existing.crossOrigin = "anonymous";
|
|
29
|
+
existing.addEventListener("load", () => {
|
|
30
|
+
existing.dataset.loaded = "true";
|
|
31
|
+
resolve();
|
|
32
|
+
});
|
|
33
|
+
existing.addEventListener("error", () => reject(new Error("roxy-ui load failed")));
|
|
34
|
+
document.head.appendChild(existing);
|
|
35
|
+
});
|
|
36
|
+
return loaded;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// packages/ui-react/src/components/dasha-timeline.tsx
|
|
40
|
+
var RoxyDashaTimeline = React.forwardRef(
|
|
41
|
+
function RoxyDashaTimeline2({ data, ...rest }, ref) {
|
|
42
|
+
const internal = React.useRef(null);
|
|
43
|
+
React.useImperativeHandle(ref, () => internal.current);
|
|
44
|
+
const [loaded2, setLoaded] = React.useState(false);
|
|
45
|
+
React.useEffect(() => {
|
|
46
|
+
let active = true;
|
|
47
|
+
ensureScriptLoaded().then(() => {
|
|
48
|
+
if (active) setLoaded(true);
|
|
49
|
+
});
|
|
50
|
+
return () => {
|
|
51
|
+
active = false;
|
|
52
|
+
};
|
|
53
|
+
}, []);
|
|
54
|
+
React.useEffect(() => {
|
|
55
|
+
if (internal.current && data !== void 0) {
|
|
56
|
+
internal.current.data = data;
|
|
57
|
+
}
|
|
58
|
+
}, [data, loaded2]);
|
|
59
|
+
return React.createElement("roxy-dasha-timeline", { ref: internal, ...rest });
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
export {
|
|
63
|
+
RoxyDashaTimeline
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=dasha-timeline.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/dasha-timeline.tsx", "../../src/load-ui.ts"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport { ensureScriptLoaded } from '../load-ui.js';\n\ntype DivAttrs = React.HTMLAttributes<HTMLElement>;\n\nexport interface RoxyDashaTimelineProps extends Omit<DivAttrs, 'children' | 'onSelect'> {\n\tdata?: unknown;\n\t[attr: string]: unknown;\n}\n\nexport const RoxyDashaTimeline = React.forwardRef<HTMLElement, RoxyDashaTimelineProps>(\n\tfunction RoxyDashaTimeline({ data, ...rest }, ref) {\n\t\tconst internal = React.useRef<HTMLElement | null>(null);\n\t\tReact.useImperativeHandle(ref, () => internal.current as HTMLElement);\n\t\tconst [loaded, setLoaded] = React.useState(false);\n\n\t\tReact.useEffect(() => {\n\t\t\tlet active = true;\n\t\t\tensureScriptLoaded().then(() => {\n\t\t\t\tif (active) setLoaded(true);\n\t\t\t});\n\t\t\treturn () => {\n\t\t\t\tactive = false;\n\t\t\t};\n\t\t}, []);\n\n\t\tReact.useEffect(() => {\n\t\t\tif (internal.current && data !== undefined) {\n\t\t\t\t(internal.current as unknown as { data: unknown }).data = data;\n\t\t\t}\n\t\t}, [data, loaded]);\n\n\t\treturn React.createElement('roxy-dasha-timeline', { ref: internal, ...rest });\n\t},\n);\n", "/**\n * Loads the matching component bundle on first mount. Idempotent across\n * many components on the same page. Skips on the server (no document) so\n * React server components and Next.js SSR work without a flash.\n */\nconst SCRIPT_ID = 'roxyapi-ui-loader';\nconst CDN_BASE = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@0/dist/cdn\";\n\nlet loaded: Promise<void> | null = null;\n\nexport function ensureScriptLoaded(version: string = '0.1.0'): 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 major = version.split('.')[0];\n\t\tconst url = `${CDN_BASE.replace('@0', '@' + major)}/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"],
|
|
5
|
+
"mappings": ";AAAA,YAAY,WAAW;;;ACKvB,IAAM,YAAY;AAClB,IAAM,WAAW;AAEjB,IAAI,SAA+B;AAE5B,SAAS,mBAAmB,UAAkB,SAAwB;AAC5E,MAAI,OAAO,aAAa,YAAa,QAAO,QAAQ,QAAQ;AAC5D,MAAI,OAAQ,QAAO;AAEnB,WAAS,IAAI,QAAc,CAAC,SAAS,WAAW;AAC/C,UAAM,QAAQ,QAAQ,MAAM,GAAG,EAAE,CAAC;AAClC,UAAM,MAAM,GAAG,SAAS,QAAQ,MAAM,MAAM,KAAK,CAAC;AAClD,QAAI,WAAW,SAAS,eAAe,SAAS;AAChD,QAAI,UAAU;AACb,UAAI,SAAS,QAAQ,WAAW,QAAQ;AACvC,gBAAQ;AAAA,MACT,OAAO;AACN,iBAAS,iBAAiB,QAAQ,MAAM,QAAQ,CAAC;AACjD,iBAAS,iBAAiB,SAAS,MAAM,OAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC;AAAA,MAClF;AACA;AAAA,IACD;AACA,eAAW,SAAS,cAAc,QAAQ;AAC1C,aAAS,KAAK;AACd,aAAS,MAAM;AACf,aAAS,QAAQ;AACjB,aAAS,cAAc;AACvB,aAAS,iBAAiB,QAAQ,MAAM;AACvC,eAAU,QAAQ,SAAS;AAC3B,cAAQ;AAAA,IACT,CAAC;AACD,aAAS,iBAAiB,SAAS,MAAM,OAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC;AACjF,aAAS,KAAK,YAAY,QAAQ;AAAA,EACnC,CAAC;AACD,SAAO;AACR;;;AD9BO,IAAM,oBAA0B;AAAA,EACtC,SAASA,mBAAkB,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK;AAClD,UAAM,WAAiB,aAA2B,IAAI;AACtD,IAAM,0BAAoB,KAAK,MAAM,SAAS,OAAsB;AACpE,UAAM,CAACC,SAAQ,SAAS,IAAU,eAAS,KAAK;AAEhD,IAAM,gBAAU,MAAM;AACrB,UAAI,SAAS;AACb,yBAAmB,EAAE,KAAK,MAAM;AAC/B,YAAI,OAAQ,WAAU,IAAI;AAAA,MAC3B,CAAC;AACD,aAAO,MAAM;AACZ,iBAAS;AAAA,MACV;AAAA,IACD,GAAG,CAAC,CAAC;AAEL,IAAM,gBAAU,MAAM;AACrB,UAAI,SAAS,WAAW,SAAS,QAAW;AAC3C,QAAC,SAAS,QAAyC,OAAO;AAAA,MAC3D;AAAA,IACD,GAAG,CAAC,MAAMA,OAAM,CAAC;AAEjB,WAAa,oBAAc,uBAAuB,EAAE,KAAK,UAAU,GAAG,KAAK,CAAC;AAAA,EAC7E;AACD;",
|
|
6
|
+
"names": ["RoxyDashaTimeline", "loaded"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
type DivAttrs = React.HTMLAttributes<HTMLElement>;
|
|
3
|
+
export interface RoxyDataProps extends Omit<DivAttrs, 'children' | 'onSelect'> {
|
|
4
|
+
data?: unknown;
|
|
5
|
+
[attr: string]: unknown;
|
|
6
|
+
}
|
|
7
|
+
export declare const RoxyData: React.ForwardRefExoticComponent<Omit<RoxyDataProps, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../src/components/data.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,KAAK,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AAElD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAC7E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,QAAQ,gGAwBpB,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// packages/ui-react/src/components/data.tsx
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
|
|
4
|
+
// packages/ui-react/src/load-ui.ts
|
|
5
|
+
var SCRIPT_ID = "roxyapi-ui-loader";
|
|
6
|
+
var CDN_BASE = "https://cdn.jsdelivr.net/npm/@roxyapi/ui@0/dist/cdn";
|
|
7
|
+
var loaded = null;
|
|
8
|
+
function ensureScriptLoaded(version = "0.1.0") {
|
|
9
|
+
if (typeof document === "undefined") return Promise.resolve();
|
|
10
|
+
if (loaded) return loaded;
|
|
11
|
+
loaded = new Promise((resolve, reject) => {
|
|
12
|
+
const major = version.split(".")[0];
|
|
13
|
+
const url = `${CDN_BASE.replace("@0", "@" + major)}/roxy-ui.js`;
|
|
14
|
+
let existing = document.getElementById(SCRIPT_ID);
|
|
15
|
+
if (existing) {
|
|
16
|
+
if (existing.dataset.loaded === "true") {
|
|
17
|
+
resolve();
|
|
18
|
+
} else {
|
|
19
|
+
existing.addEventListener("load", () => resolve());
|
|
20
|
+
existing.addEventListener("error", () => reject(new Error("roxy-ui load failed")));
|
|
21
|
+
}
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
existing = document.createElement("script");
|
|
25
|
+
existing.id = SCRIPT_ID;
|
|
26
|
+
existing.src = url;
|
|
27
|
+
existing.async = true;
|
|
28
|
+
existing.crossOrigin = "anonymous";
|
|
29
|
+
existing.addEventListener("load", () => {
|
|
30
|
+
existing.dataset.loaded = "true";
|
|
31
|
+
resolve();
|
|
32
|
+
});
|
|
33
|
+
existing.addEventListener("error", () => reject(new Error("roxy-ui load failed")));
|
|
34
|
+
document.head.appendChild(existing);
|
|
35
|
+
});
|
|
36
|
+
return loaded;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// packages/ui-react/src/components/data.tsx
|
|
40
|
+
var RoxyData = React.forwardRef(
|
|
41
|
+
function RoxyData2({ data, ...rest }, ref) {
|
|
42
|
+
const internal = React.useRef(null);
|
|
43
|
+
React.useImperativeHandle(ref, () => internal.current);
|
|
44
|
+
const [loaded2, setLoaded] = React.useState(false);
|
|
45
|
+
React.useEffect(() => {
|
|
46
|
+
let active = true;
|
|
47
|
+
ensureScriptLoaded().then(() => {
|
|
48
|
+
if (active) setLoaded(true);
|
|
49
|
+
});
|
|
50
|
+
return () => {
|
|
51
|
+
active = false;
|
|
52
|
+
};
|
|
53
|
+
}, []);
|
|
54
|
+
React.useEffect(() => {
|
|
55
|
+
if (internal.current && data !== void 0) {
|
|
56
|
+
internal.current.data = data;
|
|
57
|
+
}
|
|
58
|
+
}, [data, loaded2]);
|
|
59
|
+
return React.createElement("roxy-data", { ref: internal, ...rest });
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
export {
|
|
63
|
+
RoxyData
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=data.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/data.tsx", "../../src/load-ui.ts"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport { ensureScriptLoaded } from '../load-ui.js';\n\ntype DivAttrs = React.HTMLAttributes<HTMLElement>;\n\nexport interface RoxyDataProps extends Omit<DivAttrs, 'children' | 'onSelect'> {\n\tdata?: unknown;\n\t[attr: string]: unknown;\n}\n\nexport const RoxyData = React.forwardRef<HTMLElement, RoxyDataProps>(\n\tfunction RoxyData({ data, ...rest }, ref) {\n\t\tconst internal = React.useRef<HTMLElement | null>(null);\n\t\tReact.useImperativeHandle(ref, () => internal.current as HTMLElement);\n\t\tconst [loaded, setLoaded] = React.useState(false);\n\n\t\tReact.useEffect(() => {\n\t\t\tlet active = true;\n\t\t\tensureScriptLoaded().then(() => {\n\t\t\t\tif (active) setLoaded(true);\n\t\t\t});\n\t\t\treturn () => {\n\t\t\t\tactive = false;\n\t\t\t};\n\t\t}, []);\n\n\t\tReact.useEffect(() => {\n\t\t\tif (internal.current && data !== undefined) {\n\t\t\t\t(internal.current as unknown as { data: unknown }).data = data;\n\t\t\t}\n\t\t}, [data, loaded]);\n\n\t\treturn React.createElement('roxy-data', { ref: internal, ...rest });\n\t},\n);\n", "/**\n * Loads the matching component bundle on first mount. Idempotent across\n * many components on the same page. Skips on the server (no document) so\n * React server components and Next.js SSR work without a flash.\n */\nconst SCRIPT_ID = 'roxyapi-ui-loader';\nconst CDN_BASE = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@0/dist/cdn\";\n\nlet loaded: Promise<void> | null = null;\n\nexport function ensureScriptLoaded(version: string = '0.1.0'): 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 major = version.split('.')[0];\n\t\tconst url = `${CDN_BASE.replace('@0', '@' + major)}/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"],
|
|
5
|
+
"mappings": ";AAAA,YAAY,WAAW;;;ACKvB,IAAM,YAAY;AAClB,IAAM,WAAW;AAEjB,IAAI,SAA+B;AAE5B,SAAS,mBAAmB,UAAkB,SAAwB;AAC5E,MAAI,OAAO,aAAa,YAAa,QAAO,QAAQ,QAAQ;AAC5D,MAAI,OAAQ,QAAO;AAEnB,WAAS,IAAI,QAAc,CAAC,SAAS,WAAW;AAC/C,UAAM,QAAQ,QAAQ,MAAM,GAAG,EAAE,CAAC;AAClC,UAAM,MAAM,GAAG,SAAS,QAAQ,MAAM,MAAM,KAAK,CAAC;AAClD,QAAI,WAAW,SAAS,eAAe,SAAS;AAChD,QAAI,UAAU;AACb,UAAI,SAAS,QAAQ,WAAW,QAAQ;AACvC,gBAAQ;AAAA,MACT,OAAO;AACN,iBAAS,iBAAiB,QAAQ,MAAM,QAAQ,CAAC;AACjD,iBAAS,iBAAiB,SAAS,MAAM,OAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC;AAAA,MAClF;AACA;AAAA,IACD;AACA,eAAW,SAAS,cAAc,QAAQ;AAC1C,aAAS,KAAK;AACd,aAAS,MAAM;AACf,aAAS,QAAQ;AACjB,aAAS,cAAc;AACvB,aAAS,iBAAiB,QAAQ,MAAM;AACvC,eAAU,QAAQ,SAAS;AAC3B,cAAQ;AAAA,IACT,CAAC;AACD,aAAS,iBAAiB,SAAS,MAAM,OAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC;AACjF,aAAS,KAAK,YAAY,QAAQ;AAAA,EACnC,CAAC;AACD,SAAO;AACR;;;AD9BO,IAAM,WAAiB;AAAA,EAC7B,SAASA,UAAS,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK;AACzC,UAAM,WAAiB,aAA2B,IAAI;AACtD,IAAM,0BAAoB,KAAK,MAAM,SAAS,OAAsB;AACpE,UAAM,CAACC,SAAQ,SAAS,IAAU,eAAS,KAAK;AAEhD,IAAM,gBAAU,MAAM;AACrB,UAAI,SAAS;AACb,yBAAmB,EAAE,KAAK,MAAM;AAC/B,YAAI,OAAQ,WAAU,IAAI;AAAA,MAC3B,CAAC;AACD,aAAO,MAAM;AACZ,iBAAS;AAAA,MACV;AAAA,IACD,GAAG,CAAC,CAAC;AAEL,IAAM,gBAAU,MAAM;AACrB,UAAI,SAAS,WAAW,SAAS,QAAW;AAC3C,QAAC,SAAS,QAAyC,OAAO;AAAA,MAC3D;AAAA,IACD,GAAG,CAAC,MAAMA,OAAM,CAAC;AAEjB,WAAa,oBAAc,aAAa,EAAE,KAAK,UAAU,GAAG,KAAK,CAAC;AAAA,EACnE;AACD;",
|
|
6
|
+
"names": ["RoxyData", "loaded"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
type DivAttrs = React.HTMLAttributes<HTMLElement>;
|
|
3
|
+
export interface RoxyDoshaCardProps extends Omit<DivAttrs, 'children' | 'onSelect'> {
|
|
4
|
+
data?: unknown;
|
|
5
|
+
[attr: string]: unknown;
|
|
6
|
+
}
|
|
7
|
+
export declare const RoxyDoshaCard: React.ForwardRefExoticComponent<Omit<RoxyDoshaCardProps, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=dosha-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dosha-card.d.ts","sourceRoot":"","sources":["../../src/components/dosha-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,KAAK,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AAElD,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAClF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,aAAa,qGAwBzB,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// packages/ui-react/src/components/dosha-card.tsx
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
|
|
4
|
+
// packages/ui-react/src/load-ui.ts
|
|
5
|
+
var SCRIPT_ID = "roxyapi-ui-loader";
|
|
6
|
+
var CDN_BASE = "https://cdn.jsdelivr.net/npm/@roxyapi/ui@0/dist/cdn";
|
|
7
|
+
var loaded = null;
|
|
8
|
+
function ensureScriptLoaded(version = "0.1.0") {
|
|
9
|
+
if (typeof document === "undefined") return Promise.resolve();
|
|
10
|
+
if (loaded) return loaded;
|
|
11
|
+
loaded = new Promise((resolve, reject) => {
|
|
12
|
+
const major = version.split(".")[0];
|
|
13
|
+
const url = `${CDN_BASE.replace("@0", "@" + major)}/roxy-ui.js`;
|
|
14
|
+
let existing = document.getElementById(SCRIPT_ID);
|
|
15
|
+
if (existing) {
|
|
16
|
+
if (existing.dataset.loaded === "true") {
|
|
17
|
+
resolve();
|
|
18
|
+
} else {
|
|
19
|
+
existing.addEventListener("load", () => resolve());
|
|
20
|
+
existing.addEventListener("error", () => reject(new Error("roxy-ui load failed")));
|
|
21
|
+
}
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
existing = document.createElement("script");
|
|
25
|
+
existing.id = SCRIPT_ID;
|
|
26
|
+
existing.src = url;
|
|
27
|
+
existing.async = true;
|
|
28
|
+
existing.crossOrigin = "anonymous";
|
|
29
|
+
existing.addEventListener("load", () => {
|
|
30
|
+
existing.dataset.loaded = "true";
|
|
31
|
+
resolve();
|
|
32
|
+
});
|
|
33
|
+
existing.addEventListener("error", () => reject(new Error("roxy-ui load failed")));
|
|
34
|
+
document.head.appendChild(existing);
|
|
35
|
+
});
|
|
36
|
+
return loaded;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// packages/ui-react/src/components/dosha-card.tsx
|
|
40
|
+
var RoxyDoshaCard = React.forwardRef(
|
|
41
|
+
function RoxyDoshaCard2({ data, ...rest }, ref) {
|
|
42
|
+
const internal = React.useRef(null);
|
|
43
|
+
React.useImperativeHandle(ref, () => internal.current);
|
|
44
|
+
const [loaded2, setLoaded] = React.useState(false);
|
|
45
|
+
React.useEffect(() => {
|
|
46
|
+
let active = true;
|
|
47
|
+
ensureScriptLoaded().then(() => {
|
|
48
|
+
if (active) setLoaded(true);
|
|
49
|
+
});
|
|
50
|
+
return () => {
|
|
51
|
+
active = false;
|
|
52
|
+
};
|
|
53
|
+
}, []);
|
|
54
|
+
React.useEffect(() => {
|
|
55
|
+
if (internal.current && data !== void 0) {
|
|
56
|
+
internal.current.data = data;
|
|
57
|
+
}
|
|
58
|
+
}, [data, loaded2]);
|
|
59
|
+
return React.createElement("roxy-dosha-card", { ref: internal, ...rest });
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
export {
|
|
63
|
+
RoxyDoshaCard
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=dosha-card.js.map
|