@roxyapi/ui-react 0.5.0 → 0.6.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/README.md +1 -1
- package/dist/components/ashtakavarga-grid.js +1 -90
- package/dist/components/ashtakavarga-grid.js.map +3 -3
- package/dist/components/biorhythm-chart.js +1 -90
- package/dist/components/biorhythm-chart.js.map +3 -3
- package/dist/components/choghadiya-grid.js +1 -90
- package/dist/components/choghadiya-grid.js.map +3 -3
- package/dist/components/compatibility-card.js +1 -90
- package/dist/components/compatibility-card.js.map +3 -3
- package/dist/components/dasha-timeline.js +1 -90
- package/dist/components/dasha-timeline.js.map +3 -3
- package/dist/components/data.js +1 -84
- package/dist/components/data.js.map +3 -3
- package/dist/components/divisional-chart.js +1 -90
- package/dist/components/divisional-chart.js.map +3 -3
- package/dist/components/dosha-card.js +1 -90
- package/dist/components/dosha-card.js.map +3 -3
- package/dist/components/endpoint-form.js +1 -108
- package/dist/components/endpoint-form.js.map +3 -3
- package/dist/components/guna-milan.js +1 -90
- package/dist/components/guna-milan.js.map +3 -3
- package/dist/components/hexagram.js +1 -90
- package/dist/components/hexagram.js.map +3 -3
- package/dist/components/horoscope-card.js +1 -90
- package/dist/components/horoscope-card.js.map +3 -3
- package/dist/components/kp-chart.js +1 -90
- package/dist/components/kp-chart.js.map +3 -3
- package/dist/components/kp-planets-table.js +1 -90
- package/dist/components/kp-planets-table.js.map +3 -3
- package/dist/components/kp-ruling-planets.js +1 -90
- package/dist/components/kp-ruling-planets.js.map +3 -3
- package/dist/components/location-search.js +1 -100
- package/dist/components/location-search.js.map +3 -3
- package/dist/components/moon-phase.js +1 -90
- package/dist/components/moon-phase.js.map +3 -3
- package/dist/components/nakshatra-card.js +1 -90
- package/dist/components/nakshatra-card.js.map +3 -3
- package/dist/components/natal-chart.js +1 -90
- package/dist/components/natal-chart.js.map +3 -3
- package/dist/components/numerology-card.js +1 -90
- package/dist/components/numerology-card.js.map +3 -3
- package/dist/components/panchang-table.js +1 -90
- package/dist/components/panchang-table.js.map +3 -3
- package/dist/components/shadbala-table.js +1 -90
- package/dist/components/shadbala-table.js.map +3 -3
- package/dist/components/synastry-chart.js +1 -90
- package/dist/components/synastry-chart.js.map +3 -3
- package/dist/components/tarot-card.js +1 -90
- package/dist/components/tarot-card.js.map +3 -3
- package/dist/components/tarot-spread.js +1 -90
- package/dist/components/tarot-spread.js.map +3 -3
- package/dist/components/transits-table.js +1 -90
- package/dist/components/transits-table.js.map +3 -3
- package/dist/components/vedic-kundli.js +1 -90
- package/dist/components/vedic-kundli.js.map +3 -3
- package/dist/components/vedic-planets-table.js +1 -90
- package/dist/components/vedic-planets-table.js.map +3 -3
- package/dist/components/western-planets-table.js +1 -90
- package/dist/components/western-planets-table.js.map +3 -3
- package/dist/components/yoga-list.js +1 -90
- package/dist/components/yoga-list.js.map +3 -3
- package/dist/index.cjs +1 -1509
- package/dist/index.cjs.map +3 -3
- package/dist/index.js +1 -1476
- package/dist/index.js.map +3 -3
- package/dist/load-ui.d.ts +1 -1
- package/dist/load-ui.js +1 -46
- package/dist/load-ui.js.map +3 -3
- package/package.json +1 -1
|
@@ -1,91 +1,2 @@
|
|
|
1
|
-
|
|
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_LATEST = "https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn";
|
|
7
|
-
var CDN_BASE_PREFIX = "https://cdn.jsdelivr.net/npm/@roxyapi/ui@";
|
|
8
|
-
var CDN_BASE_SUFFIX = "/dist/cdn";
|
|
9
|
-
var loaded = null;
|
|
10
|
-
function buildBase(version) {
|
|
11
|
-
if (!version || version === "latest") return CDN_BASE_LATEST;
|
|
12
|
-
return `${CDN_BASE_PREFIX}${version}${CDN_BASE_SUFFIX}`;
|
|
13
|
-
}
|
|
14
|
-
function ensureScriptLoaded(version = "latest") {
|
|
15
|
-
if (typeof document === "undefined") return Promise.resolve();
|
|
16
|
-
if (loaded) return loaded;
|
|
17
|
-
loaded = new Promise((resolve, reject) => {
|
|
18
|
-
const url = `${buildBase(version)}/roxy-ui.js`;
|
|
19
|
-
let existing = document.getElementById(SCRIPT_ID);
|
|
20
|
-
if (existing) {
|
|
21
|
-
if (existing.dataset.loaded === "true") {
|
|
22
|
-
resolve();
|
|
23
|
-
} else {
|
|
24
|
-
existing.addEventListener("load", () => resolve());
|
|
25
|
-
existing.addEventListener("error", () => reject(new Error("roxy-ui load failed")));
|
|
26
|
-
}
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
existing = document.createElement("script");
|
|
30
|
-
existing.id = SCRIPT_ID;
|
|
31
|
-
existing.src = url;
|
|
32
|
-
existing.async = true;
|
|
33
|
-
existing.crossOrigin = "anonymous";
|
|
34
|
-
existing.addEventListener("load", () => {
|
|
35
|
-
existing.dataset.loaded = "true";
|
|
36
|
-
resolve();
|
|
37
|
-
});
|
|
38
|
-
existing.addEventListener("error", () => reject(new Error("roxy-ui load failed")));
|
|
39
|
-
document.head.appendChild(existing);
|
|
40
|
-
});
|
|
41
|
-
return loaded;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// packages/ui-react/src/components/kp-chart.tsx
|
|
45
|
-
var RoxyKpChart = React.forwardRef(
|
|
46
|
-
function RoxyKpChart2({ data, className, style, ...rest }, ref) {
|
|
47
|
-
const internal = React.useRef(null);
|
|
48
|
-
React.useImperativeHandle(
|
|
49
|
-
ref,
|
|
50
|
-
() => internal.current,
|
|
51
|
-
[]
|
|
52
|
-
);
|
|
53
|
-
const [loaded2, setLoaded] = React.useState(false);
|
|
54
|
-
const [error, setError] = React.useState(null);
|
|
55
|
-
React.useEffect(() => {
|
|
56
|
-
let active = true;
|
|
57
|
-
ensureScriptLoaded().then(() => {
|
|
58
|
-
if (active) setLoaded(true);
|
|
59
|
-
}).catch((err) => {
|
|
60
|
-
if (!active) return;
|
|
61
|
-
setError(err instanceof Error ? err : new Error(String(err)));
|
|
62
|
-
});
|
|
63
|
-
return () => {
|
|
64
|
-
active = false;
|
|
65
|
-
};
|
|
66
|
-
}, []);
|
|
67
|
-
React.useEffect(() => {
|
|
68
|
-
const el = internal.current;
|
|
69
|
-
if (el && data !== void 0) {
|
|
70
|
-
el.data = data;
|
|
71
|
-
}
|
|
72
|
-
}, [data, loaded2]);
|
|
73
|
-
if (error) {
|
|
74
|
-
return React.createElement(
|
|
75
|
-
"div",
|
|
76
|
-
{ role: "alert", className, style },
|
|
77
|
-
`Roxy UI script load failed: ${error.message}`
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
return React.createElement("roxy-kp-chart", {
|
|
81
|
-
ref: internal,
|
|
82
|
-
className,
|
|
83
|
-
style,
|
|
84
|
-
...rest
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
);
|
|
88
|
-
export {
|
|
89
|
-
RoxyKpChart
|
|
90
|
-
};
|
|
1
|
+
import*as t from"react";var c="roxyapi-ui-loader",x="https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn",y="https://cdn.jsdelivr.net/npm/@roxyapi/ui@",L="/dist/cdn",i=null;function S(n){return!n||n==="latest"?x:`${y}${n}${L}`}function p(n="latest"){return typeof document>"u"?Promise.resolve():i||(i=new Promise((r,a)=>{let s=`${S(n)}/roxy-ui.js`,e=document.getElementById(c);if(e){e.dataset.loaded==="true"?r():(e.addEventListener("load",()=>r()),e.addEventListener("error",()=>a(new Error("roxy-ui load failed"))));return}e=document.createElement("script"),e.id=c,e.src=s,e.async=!0,e.crossOrigin="anonymous",e.addEventListener("load",()=>{e.dataset.loaded="true",r()}),e.addEventListener("error",()=>a(new Error("roxy-ui load failed"))),document.head.appendChild(e)}),i)}var T=t.forwardRef(function({data:r,className:a,style:s,...e},f){let d=t.useRef(null);t.useImperativeHandle(f,()=>d.current,[]);let[m,E]=t.useState(!1),[u,R]=t.useState(null);return t.useEffect(()=>{let o=!0;return p().then(()=>{o&&E(!0)}).catch(l=>{o&&R(l instanceof Error?l:new Error(String(l)))}),()=>{o=!1}},[]),t.useEffect(()=>{let o=d.current;o&&r!==void 0&&(o.data=r)},[r,m]),u?t.createElement("div",{role:"alert",className:a,style:s},`Roxy UI script load failed: ${u.message}`):t.createElement("roxy-kp-chart",{ref:d,className:a,style:s,...e})});export{T as RoxyKpChart};
|
|
91
2
|
//# sourceMappingURL=kp-chart.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/components/kp-chart.tsx", "../../src/load-ui.ts"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { KpChartResponse } from '@roxyapi/ui/types';\n\ntype ElementAttrs = Omit<\n\tReact.HTMLAttributes<HTMLElement>,\n\t'children' | 'data'\n>;\n\nexport interface RoxyKpChartProps extends ElementAttrs {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: KpChartResponse;\n\tclassName?: string;\n\tstyle?: React.CSSProperties;\n\n}\n\nexport const RoxyKpChart = React.forwardRef<HTMLElement | null, RoxyKpChartProps>(\n\tfunction RoxyKpChart({ data, className, style, ...rest }, ref) {\n\t\tconst internal = React.useRef<HTMLElement | null>(null);\n\t\tReact.useImperativeHandle<HTMLElement | null, HTMLElement | null>(\n\t\t\tref,\n\t\t\t() => internal.current,\n\t\t\t[],\n\t\t);\n\t\tconst [loaded, setLoaded] = React.useState(false);\n\t\tconst [error, setError] = React.useState<Error | null>(null);\n\n\t\tReact.useEffect(() => {\n\t\t\tlet active = true;\n\t\t\tensureScriptLoaded()\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (active) setLoaded(true);\n\t\t\t\t})\n\t\t\t\t.catch((err: unknown) => {\n\t\t\t\t\tif (!active) return;\n\t\t\t\t\tsetError(err instanceof Error ? err : new Error(String(err)));\n\t\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\tconst el = internal.current;\n\t\t\tif (el && data !== undefined) {\n\t\t\t\t(el as unknown as { data: unknown }).data = data;\n\t\t\t}\n\t\t}, [data, loaded]);\n\n\t\tif (error) {\n\t\t\treturn React.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ role: 'alert', className, style },\n\t\t\t\t`Roxy UI script load failed: ${error.message}`,\n\t\t\t);\n\t\t}\n\n\t\treturn React.createElement('roxy-kp-chart', {\n\t\t\tref: internal,\n\t\t\tclassName,\n\t\t\tstyle,\n\t\t\t...rest,\n\t\t});\n\t},\n);\n", "/**\n * Loads the matching component bundle on first mount. Idempotent across\n * many components on the same page. Skips on the server (no document) so\n * React server components and Next.js SSR work without a flash.\n *\n * Pass an explicit `version` (e.g. `'0.1.5'`) to pin the loaded bundle to a\n * specific @roxyapi/ui release; the default ('latest') resolves to whatever\n * the CDN currently serves for @latest.\n */\nconst SCRIPT_ID = 'roxyapi-ui-loader';\nconst CDN_BASE_LATEST = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn\";\nconst CDN_BASE_PREFIX = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@\";\nconst CDN_BASE_SUFFIX = \"/dist/cdn\";\n\nlet loaded: Promise<void> | null = null;\n\nfunction buildBase(version: string): string {\n\tif (!version || version === 'latest') return CDN_BASE_LATEST;\n\treturn `${CDN_BASE_PREFIX}${version}${CDN_BASE_SUFFIX}`;\n}\n\nexport function ensureScriptLoaded(version: string = 'latest'): Promise<void> {\n\tif (typeof document === 'undefined') return Promise.resolve();\n\tif (loaded) return loaded;\n\n\tloaded = new Promise<void>((resolve, reject) => {\n\t\tconst url = `${buildBase(version)}/roxy-ui.js`;\n\t\tlet existing = document.getElementById(SCRIPT_ID) as HTMLScriptElement | null;\n\t\tif (existing) {\n\t\t\tif (existing.dataset.loaded === 'true') {\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\texisting.addEventListener('load', () => resolve());\n\t\t\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\texisting = document.createElement('script');\n\t\texisting.id = SCRIPT_ID;\n\t\texisting.src = url;\n\t\texisting.async = true;\n\t\texisting.crossOrigin = 'anonymous';\n\t\texisting.addEventListener('load', () => {\n\t\t\texisting!.dataset.loaded = 'true';\n\t\t\tresolve();\n\t\t});\n\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\tdocument.head.appendChild(existing);\n\t});\n\treturn loaded;\n}\n\n// Default export retained for convenience; matches the named export.\nexport default ensureScriptLoaded;\n// Surfaces the embedded @roxyapi/ui version this build of @roxyapi/ui-react\n// was generated against. Useful for diagnostics; not load-bearing.\nexport const ROXY_UI_VERSION = \"0.
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["RoxyKpChart", "loaded"]
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { KpChartResponse } from '@roxyapi/ui/types';\n\ntype ElementAttrs = Omit<\n\tReact.HTMLAttributes<HTMLElement>,\n\t'children' | 'data'\n>;\n\nexport interface RoxyKpChartProps extends ElementAttrs {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: KpChartResponse;\n\tclassName?: string;\n\tstyle?: React.CSSProperties;\n\n}\n\nexport const RoxyKpChart = React.forwardRef<HTMLElement | null, RoxyKpChartProps>(\n\tfunction RoxyKpChart({ data, className, style, ...rest }, ref) {\n\t\tconst internal = React.useRef<HTMLElement | null>(null);\n\t\tReact.useImperativeHandle<HTMLElement | null, HTMLElement | null>(\n\t\t\tref,\n\t\t\t() => internal.current,\n\t\t\t[],\n\t\t);\n\t\tconst [loaded, setLoaded] = React.useState(false);\n\t\tconst [error, setError] = React.useState<Error | null>(null);\n\n\t\tReact.useEffect(() => {\n\t\t\tlet active = true;\n\t\t\tensureScriptLoaded()\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (active) setLoaded(true);\n\t\t\t\t})\n\t\t\t\t.catch((err: unknown) => {\n\t\t\t\t\tif (!active) return;\n\t\t\t\t\tsetError(err instanceof Error ? err : new Error(String(err)));\n\t\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\tconst el = internal.current;\n\t\t\tif (el && data !== undefined) {\n\t\t\t\t(el as unknown as { data: unknown }).data = data;\n\t\t\t}\n\t\t}, [data, loaded]);\n\n\t\tif (error) {\n\t\t\treturn React.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ role: 'alert', className, style },\n\t\t\t\t`Roxy UI script load failed: ${error.message}`,\n\t\t\t);\n\t\t}\n\n\t\treturn React.createElement('roxy-kp-chart', {\n\t\t\tref: internal,\n\t\t\tclassName,\n\t\t\tstyle,\n\t\t\t...rest,\n\t\t});\n\t},\n);\n", "/**\n * Loads the matching component bundle on first mount. Idempotent across\n * many components on the same page. Skips on the server (no document) so\n * React server components and Next.js SSR work without a flash.\n *\n * Pass an explicit `version` (e.g. `'0.1.5'`) to pin the loaded bundle to a\n * specific @roxyapi/ui release; the default ('latest') resolves to whatever\n * the CDN currently serves for @latest.\n */\nconst SCRIPT_ID = 'roxyapi-ui-loader';\nconst CDN_BASE_LATEST = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn\";\nconst CDN_BASE_PREFIX = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@\";\nconst CDN_BASE_SUFFIX = \"/dist/cdn\";\n\nlet loaded: Promise<void> | null = null;\n\nfunction buildBase(version: string): string {\n\tif (!version || version === 'latest') return CDN_BASE_LATEST;\n\treturn `${CDN_BASE_PREFIX}${version}${CDN_BASE_SUFFIX}`;\n}\n\nexport function ensureScriptLoaded(version: string = 'latest'): Promise<void> {\n\tif (typeof document === 'undefined') return Promise.resolve();\n\tif (loaded) return loaded;\n\n\tloaded = new Promise<void>((resolve, reject) => {\n\t\tconst url = `${buildBase(version)}/roxy-ui.js`;\n\t\tlet existing = document.getElementById(SCRIPT_ID) as HTMLScriptElement | null;\n\t\tif (existing) {\n\t\t\tif (existing.dataset.loaded === 'true') {\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\texisting.addEventListener('load', () => resolve());\n\t\t\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\texisting = document.createElement('script');\n\t\texisting.id = SCRIPT_ID;\n\t\texisting.src = url;\n\t\texisting.async = true;\n\t\texisting.crossOrigin = 'anonymous';\n\t\texisting.addEventListener('load', () => {\n\t\t\texisting!.dataset.loaded = 'true';\n\t\t\tresolve();\n\t\t});\n\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\tdocument.head.appendChild(existing);\n\t});\n\treturn loaded;\n}\n\n// Default export retained for convenience; matches the named export.\nexport default ensureScriptLoaded;\n// Surfaces the embedded @roxyapi/ui version this build of @roxyapi/ui-react\n// was generated against. Useful for diagnostics; not load-bearing.\nexport const ROXY_UI_VERSION = \"0.6.0\";\n"],
|
|
5
|
+
"mappings": "AAAA,UAAYA,MAAW,QCSvB,IAAMC,EAAY,oBACZC,EAAkB,2DAClBC,EAAkB,4CAClBC,EAAkB,YAEpBC,EAA+B,KAEnC,SAASC,EAAUC,EAAyB,CAC3C,MAAI,CAACA,GAAWA,IAAY,SAAiBL,EACtC,GAAGC,CAAe,GAAGI,CAAO,GAAGH,CAAe,EACtD,CAEO,SAASI,EAAmBD,EAAkB,SAAyB,CAC7E,OAAI,OAAO,SAAa,IAAoB,QAAQ,QAAQ,EACxDF,IAEJA,EAAS,IAAI,QAAc,CAACI,EAASC,IAAW,CAC/C,IAAMC,EAAM,GAAGL,EAAUC,CAAO,CAAC,cAC7BK,EAAW,SAAS,eAAeX,CAAS,EAChD,GAAIW,EAAU,CACTA,EAAS,QAAQ,SAAW,OAC/BH,EAAQ,GAERG,EAAS,iBAAiB,OAAQ,IAAMH,EAAQ,CAAC,EACjDG,EAAS,iBAAiB,QAAS,IAAMF,EAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC,GAElF,MACD,CACAE,EAAW,SAAS,cAAc,QAAQ,EAC1CA,EAAS,GAAKX,EACdW,EAAS,IAAMD,EACfC,EAAS,MAAQ,GACjBA,EAAS,YAAc,YACvBA,EAAS,iBAAiB,OAAQ,IAAM,CACvCA,EAAU,QAAQ,OAAS,OAC3BH,EAAQ,CACT,CAAC,EACDG,EAAS,iBAAiB,QAAS,IAAMF,EAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC,EACjF,SAAS,KAAK,YAAYE,CAAQ,CACnC,CAAC,EACMP,EACR,CDjCO,IAAMQ,EAAoB,aAChC,SAAqB,CAAE,KAAAC,EAAM,UAAAC,EAAW,MAAAC,EAAO,GAAGC,CAAK,EAAGC,EAAK,CAC9D,IAAMC,EAAiB,SAA2B,IAAI,EAChD,sBACLD,EACA,IAAMC,EAAS,QACf,CAAC,CACF,EACA,GAAM,CAACC,EAAQC,CAAS,EAAU,WAAS,EAAK,EAC1C,CAACC,EAAOC,CAAQ,EAAU,WAAuB,IAAI,EAwB3D,OAtBM,YAAU,IAAM,CACrB,IAAIC,EAAS,GACb,OAAAC,EAAmB,EACjB,KAAK,IAAM,CACPD,GAAQH,EAAU,EAAI,CAC3B,CAAC,EACA,MAAOK,GAAiB,CACnBF,GACLD,EAASG,aAAe,MAAQA,EAAM,IAAI,MAAM,OAAOA,CAAG,CAAC,CAAC,CAC7D,CAAC,EACK,IAAM,CACZF,EAAS,EACV,CACD,EAAG,CAAC,CAAC,EAEC,YAAU,IAAM,CACrB,IAAMG,EAAKR,EAAS,QAChBQ,GAAMb,IAAS,SACjBa,EAAoC,KAAOb,EAE9C,EAAG,CAACA,EAAMM,CAAM,CAAC,EAEbE,EACU,gBACZ,MACA,CAAE,KAAM,QAAS,UAAAP,EAAW,MAAAC,CAAM,EAClC,+BAA+BM,EAAM,OAAO,EAC7C,EAGY,gBAAc,gBAAiB,CAC3C,IAAKH,EACL,UAAAJ,EACA,MAAAC,EACA,GAAGC,CACJ,CAAC,CACF,CACD",
|
|
6
|
+
"names": ["React", "SCRIPT_ID", "CDN_BASE_LATEST", "CDN_BASE_PREFIX", "CDN_BASE_SUFFIX", "loaded", "buildBase", "version", "ensureScriptLoaded", "resolve", "reject", "url", "existing", "RoxyKpChart", "data", "className", "style", "rest", "ref", "internal", "loaded", "setLoaded", "error", "setError", "active", "ensureScriptLoaded", "err", "el"]
|
|
7
7
|
}
|
|
@@ -1,91 +1,2 @@
|
|
|
1
|
-
|
|
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_LATEST = "https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn";
|
|
7
|
-
var CDN_BASE_PREFIX = "https://cdn.jsdelivr.net/npm/@roxyapi/ui@";
|
|
8
|
-
var CDN_BASE_SUFFIX = "/dist/cdn";
|
|
9
|
-
var loaded = null;
|
|
10
|
-
function buildBase(version) {
|
|
11
|
-
if (!version || version === "latest") return CDN_BASE_LATEST;
|
|
12
|
-
return `${CDN_BASE_PREFIX}${version}${CDN_BASE_SUFFIX}`;
|
|
13
|
-
}
|
|
14
|
-
function ensureScriptLoaded(version = "latest") {
|
|
15
|
-
if (typeof document === "undefined") return Promise.resolve();
|
|
16
|
-
if (loaded) return loaded;
|
|
17
|
-
loaded = new Promise((resolve, reject) => {
|
|
18
|
-
const url = `${buildBase(version)}/roxy-ui.js`;
|
|
19
|
-
let existing = document.getElementById(SCRIPT_ID);
|
|
20
|
-
if (existing) {
|
|
21
|
-
if (existing.dataset.loaded === "true") {
|
|
22
|
-
resolve();
|
|
23
|
-
} else {
|
|
24
|
-
existing.addEventListener("load", () => resolve());
|
|
25
|
-
existing.addEventListener("error", () => reject(new Error("roxy-ui load failed")));
|
|
26
|
-
}
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
existing = document.createElement("script");
|
|
30
|
-
existing.id = SCRIPT_ID;
|
|
31
|
-
existing.src = url;
|
|
32
|
-
existing.async = true;
|
|
33
|
-
existing.crossOrigin = "anonymous";
|
|
34
|
-
existing.addEventListener("load", () => {
|
|
35
|
-
existing.dataset.loaded = "true";
|
|
36
|
-
resolve();
|
|
37
|
-
});
|
|
38
|
-
existing.addEventListener("error", () => reject(new Error("roxy-ui load failed")));
|
|
39
|
-
document.head.appendChild(existing);
|
|
40
|
-
});
|
|
41
|
-
return loaded;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// packages/ui-react/src/components/kp-planets-table.tsx
|
|
45
|
-
var RoxyKpPlanetsTable = React.forwardRef(
|
|
46
|
-
function RoxyKpPlanetsTable2({ data, className, style, ...rest }, ref) {
|
|
47
|
-
const internal = React.useRef(null);
|
|
48
|
-
React.useImperativeHandle(
|
|
49
|
-
ref,
|
|
50
|
-
() => internal.current,
|
|
51
|
-
[]
|
|
52
|
-
);
|
|
53
|
-
const [loaded2, setLoaded] = React.useState(false);
|
|
54
|
-
const [error, setError] = React.useState(null);
|
|
55
|
-
React.useEffect(() => {
|
|
56
|
-
let active = true;
|
|
57
|
-
ensureScriptLoaded().then(() => {
|
|
58
|
-
if (active) setLoaded(true);
|
|
59
|
-
}).catch((err) => {
|
|
60
|
-
if (!active) return;
|
|
61
|
-
setError(err instanceof Error ? err : new Error(String(err)));
|
|
62
|
-
});
|
|
63
|
-
return () => {
|
|
64
|
-
active = false;
|
|
65
|
-
};
|
|
66
|
-
}, []);
|
|
67
|
-
React.useEffect(() => {
|
|
68
|
-
const el = internal.current;
|
|
69
|
-
if (el && data !== void 0) {
|
|
70
|
-
el.data = data;
|
|
71
|
-
}
|
|
72
|
-
}, [data, loaded2]);
|
|
73
|
-
if (error) {
|
|
74
|
-
return React.createElement(
|
|
75
|
-
"div",
|
|
76
|
-
{ role: "alert", className, style },
|
|
77
|
-
`Roxy UI script load failed: ${error.message}`
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
return React.createElement("roxy-kp-planets-table", {
|
|
81
|
-
ref: internal,
|
|
82
|
-
className,
|
|
83
|
-
style,
|
|
84
|
-
...rest
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
);
|
|
88
|
-
export {
|
|
89
|
-
RoxyKpPlanetsTable
|
|
90
|
-
};
|
|
1
|
+
import*as t from"react";var c="roxyapi-ui-loader",x="https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn",y="https://cdn.jsdelivr.net/npm/@roxyapi/ui@",L="/dist/cdn",l=null;function P(r){return!r||r==="latest"?x:`${y}${r}${L}`}function p(r="latest"){return typeof document>"u"?Promise.resolve():l||(l=new Promise((n,o)=>{let s=`${P(r)}/roxy-ui.js`,e=document.getElementById(c);if(e){e.dataset.loaded==="true"?n():(e.addEventListener("load",()=>n()),e.addEventListener("error",()=>o(new Error("roxy-ui load failed"))));return}e=document.createElement("script"),e.id=c,e.src=s,e.async=!0,e.crossOrigin="anonymous",e.addEventListener("load",()=>{e.dataset.loaded="true",n()}),e.addEventListener("error",()=>o(new Error("roxy-ui load failed"))),document.head.appendChild(e)}),l)}var g=t.forwardRef(function({data:n,className:o,style:s,...e},f){let i=t.useRef(null);t.useImperativeHandle(f,()=>i.current,[]);let[m,E]=t.useState(!1),[u,R]=t.useState(null);return t.useEffect(()=>{let a=!0;return p().then(()=>{a&&E(!0)}).catch(d=>{a&&R(d instanceof Error?d:new Error(String(d)))}),()=>{a=!1}},[]),t.useEffect(()=>{let a=i.current;a&&n!==void 0&&(a.data=n)},[n,m]),u?t.createElement("div",{role:"alert",className:o,style:s},`Roxy UI script load failed: ${u.message}`):t.createElement("roxy-kp-planets-table",{ref:i,className:o,style:s,...e})});export{g as RoxyKpPlanetsTable};
|
|
91
2
|
//# sourceMappingURL=kp-planets-table.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/components/kp-planets-table.tsx", "../../src/load-ui.ts"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { KpPlanetsResponse } from '@roxyapi/ui/types';\n\ntype ElementAttrs = Omit<\n\tReact.HTMLAttributes<HTMLElement>,\n\t'children' | 'data'\n>;\n\nexport interface RoxyKpPlanetsTableProps extends ElementAttrs {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: KpPlanetsResponse;\n\tclassName?: string;\n\tstyle?: React.CSSProperties;\n\n}\n\nexport const RoxyKpPlanetsTable = React.forwardRef<HTMLElement | null, RoxyKpPlanetsTableProps>(\n\tfunction RoxyKpPlanetsTable({ data, className, style, ...rest }, ref) {\n\t\tconst internal = React.useRef<HTMLElement | null>(null);\n\t\tReact.useImperativeHandle<HTMLElement | null, HTMLElement | null>(\n\t\t\tref,\n\t\t\t() => internal.current,\n\t\t\t[],\n\t\t);\n\t\tconst [loaded, setLoaded] = React.useState(false);\n\t\tconst [error, setError] = React.useState<Error | null>(null);\n\n\t\tReact.useEffect(() => {\n\t\t\tlet active = true;\n\t\t\tensureScriptLoaded()\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (active) setLoaded(true);\n\t\t\t\t})\n\t\t\t\t.catch((err: unknown) => {\n\t\t\t\t\tif (!active) return;\n\t\t\t\t\tsetError(err instanceof Error ? err : new Error(String(err)));\n\t\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\tconst el = internal.current;\n\t\t\tif (el && data !== undefined) {\n\t\t\t\t(el as unknown as { data: unknown }).data = data;\n\t\t\t}\n\t\t}, [data, loaded]);\n\n\t\tif (error) {\n\t\t\treturn React.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ role: 'alert', className, style },\n\t\t\t\t`Roxy UI script load failed: ${error.message}`,\n\t\t\t);\n\t\t}\n\n\t\treturn React.createElement('roxy-kp-planets-table', {\n\t\t\tref: internal,\n\t\t\tclassName,\n\t\t\tstyle,\n\t\t\t...rest,\n\t\t});\n\t},\n);\n", "/**\n * Loads the matching component bundle on first mount. Idempotent across\n * many components on the same page. Skips on the server (no document) so\n * React server components and Next.js SSR work without a flash.\n *\n * Pass an explicit `version` (e.g. `'0.1.5'`) to pin the loaded bundle to a\n * specific @roxyapi/ui release; the default ('latest') resolves to whatever\n * the CDN currently serves for @latest.\n */\nconst SCRIPT_ID = 'roxyapi-ui-loader';\nconst CDN_BASE_LATEST = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn\";\nconst CDN_BASE_PREFIX = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@\";\nconst CDN_BASE_SUFFIX = \"/dist/cdn\";\n\nlet loaded: Promise<void> | null = null;\n\nfunction buildBase(version: string): string {\n\tif (!version || version === 'latest') return CDN_BASE_LATEST;\n\treturn `${CDN_BASE_PREFIX}${version}${CDN_BASE_SUFFIX}`;\n}\n\nexport function ensureScriptLoaded(version: string = 'latest'): Promise<void> {\n\tif (typeof document === 'undefined') return Promise.resolve();\n\tif (loaded) return loaded;\n\n\tloaded = new Promise<void>((resolve, reject) => {\n\t\tconst url = `${buildBase(version)}/roxy-ui.js`;\n\t\tlet existing = document.getElementById(SCRIPT_ID) as HTMLScriptElement | null;\n\t\tif (existing) {\n\t\t\tif (existing.dataset.loaded === 'true') {\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\texisting.addEventListener('load', () => resolve());\n\t\t\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\texisting = document.createElement('script');\n\t\texisting.id = SCRIPT_ID;\n\t\texisting.src = url;\n\t\texisting.async = true;\n\t\texisting.crossOrigin = 'anonymous';\n\t\texisting.addEventListener('load', () => {\n\t\t\texisting!.dataset.loaded = 'true';\n\t\t\tresolve();\n\t\t});\n\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\tdocument.head.appendChild(existing);\n\t});\n\treturn loaded;\n}\n\n// Default export retained for convenience; matches the named export.\nexport default ensureScriptLoaded;\n// Surfaces the embedded @roxyapi/ui version this build of @roxyapi/ui-react\n// was generated against. Useful for diagnostics; not load-bearing.\nexport const ROXY_UI_VERSION = \"0.
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["RoxyKpPlanetsTable", "loaded"]
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { KpPlanetsResponse } from '@roxyapi/ui/types';\n\ntype ElementAttrs = Omit<\n\tReact.HTMLAttributes<HTMLElement>,\n\t'children' | 'data'\n>;\n\nexport interface RoxyKpPlanetsTableProps extends ElementAttrs {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: KpPlanetsResponse;\n\tclassName?: string;\n\tstyle?: React.CSSProperties;\n\n}\n\nexport const RoxyKpPlanetsTable = React.forwardRef<HTMLElement | null, RoxyKpPlanetsTableProps>(\n\tfunction RoxyKpPlanetsTable({ data, className, style, ...rest }, ref) {\n\t\tconst internal = React.useRef<HTMLElement | null>(null);\n\t\tReact.useImperativeHandle<HTMLElement | null, HTMLElement | null>(\n\t\t\tref,\n\t\t\t() => internal.current,\n\t\t\t[],\n\t\t);\n\t\tconst [loaded, setLoaded] = React.useState(false);\n\t\tconst [error, setError] = React.useState<Error | null>(null);\n\n\t\tReact.useEffect(() => {\n\t\t\tlet active = true;\n\t\t\tensureScriptLoaded()\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (active) setLoaded(true);\n\t\t\t\t})\n\t\t\t\t.catch((err: unknown) => {\n\t\t\t\t\tif (!active) return;\n\t\t\t\t\tsetError(err instanceof Error ? err : new Error(String(err)));\n\t\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\tconst el = internal.current;\n\t\t\tif (el && data !== undefined) {\n\t\t\t\t(el as unknown as { data: unknown }).data = data;\n\t\t\t}\n\t\t}, [data, loaded]);\n\n\t\tif (error) {\n\t\t\treturn React.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ role: 'alert', className, style },\n\t\t\t\t`Roxy UI script load failed: ${error.message}`,\n\t\t\t);\n\t\t}\n\n\t\treturn React.createElement('roxy-kp-planets-table', {\n\t\t\tref: internal,\n\t\t\tclassName,\n\t\t\tstyle,\n\t\t\t...rest,\n\t\t});\n\t},\n);\n", "/**\n * Loads the matching component bundle on first mount. Idempotent across\n * many components on the same page. Skips on the server (no document) so\n * React server components and Next.js SSR work without a flash.\n *\n * Pass an explicit `version` (e.g. `'0.1.5'`) to pin the loaded bundle to a\n * specific @roxyapi/ui release; the default ('latest') resolves to whatever\n * the CDN currently serves for @latest.\n */\nconst SCRIPT_ID = 'roxyapi-ui-loader';\nconst CDN_BASE_LATEST = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn\";\nconst CDN_BASE_PREFIX = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@\";\nconst CDN_BASE_SUFFIX = \"/dist/cdn\";\n\nlet loaded: Promise<void> | null = null;\n\nfunction buildBase(version: string): string {\n\tif (!version || version === 'latest') return CDN_BASE_LATEST;\n\treturn `${CDN_BASE_PREFIX}${version}${CDN_BASE_SUFFIX}`;\n}\n\nexport function ensureScriptLoaded(version: string = 'latest'): Promise<void> {\n\tif (typeof document === 'undefined') return Promise.resolve();\n\tif (loaded) return loaded;\n\n\tloaded = new Promise<void>((resolve, reject) => {\n\t\tconst url = `${buildBase(version)}/roxy-ui.js`;\n\t\tlet existing = document.getElementById(SCRIPT_ID) as HTMLScriptElement | null;\n\t\tif (existing) {\n\t\t\tif (existing.dataset.loaded === 'true') {\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\texisting.addEventListener('load', () => resolve());\n\t\t\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\texisting = document.createElement('script');\n\t\texisting.id = SCRIPT_ID;\n\t\texisting.src = url;\n\t\texisting.async = true;\n\t\texisting.crossOrigin = 'anonymous';\n\t\texisting.addEventListener('load', () => {\n\t\t\texisting!.dataset.loaded = 'true';\n\t\t\tresolve();\n\t\t});\n\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\tdocument.head.appendChild(existing);\n\t});\n\treturn loaded;\n}\n\n// Default export retained for convenience; matches the named export.\nexport default ensureScriptLoaded;\n// Surfaces the embedded @roxyapi/ui version this build of @roxyapi/ui-react\n// was generated against. Useful for diagnostics; not load-bearing.\nexport const ROXY_UI_VERSION = \"0.6.0\";\n"],
|
|
5
|
+
"mappings": "AAAA,UAAYA,MAAW,QCSvB,IAAMC,EAAY,oBACZC,EAAkB,2DAClBC,EAAkB,4CAClBC,EAAkB,YAEpBC,EAA+B,KAEnC,SAASC,EAAUC,EAAyB,CAC3C,MAAI,CAACA,GAAWA,IAAY,SAAiBL,EACtC,GAAGC,CAAe,GAAGI,CAAO,GAAGH,CAAe,EACtD,CAEO,SAASI,EAAmBD,EAAkB,SAAyB,CAC7E,OAAI,OAAO,SAAa,IAAoB,QAAQ,QAAQ,EACxDF,IAEJA,EAAS,IAAI,QAAc,CAACI,EAASC,IAAW,CAC/C,IAAMC,EAAM,GAAGL,EAAUC,CAAO,CAAC,cAC7BK,EAAW,SAAS,eAAeX,CAAS,EAChD,GAAIW,EAAU,CACTA,EAAS,QAAQ,SAAW,OAC/BH,EAAQ,GAERG,EAAS,iBAAiB,OAAQ,IAAMH,EAAQ,CAAC,EACjDG,EAAS,iBAAiB,QAAS,IAAMF,EAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC,GAElF,MACD,CACAE,EAAW,SAAS,cAAc,QAAQ,EAC1CA,EAAS,GAAKX,EACdW,EAAS,IAAMD,EACfC,EAAS,MAAQ,GACjBA,EAAS,YAAc,YACvBA,EAAS,iBAAiB,OAAQ,IAAM,CACvCA,EAAU,QAAQ,OAAS,OAC3BH,EAAQ,CACT,CAAC,EACDG,EAAS,iBAAiB,QAAS,IAAMF,EAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC,EACjF,SAAS,KAAK,YAAYE,CAAQ,CACnC,CAAC,EACMP,EACR,CDjCO,IAAMQ,EAA2B,aACvC,SAA4B,CAAE,KAAAC,EAAM,UAAAC,EAAW,MAAAC,EAAO,GAAGC,CAAK,EAAGC,EAAK,CACrE,IAAMC,EAAiB,SAA2B,IAAI,EAChD,sBACLD,EACA,IAAMC,EAAS,QACf,CAAC,CACF,EACA,GAAM,CAACC,EAAQC,CAAS,EAAU,WAAS,EAAK,EAC1C,CAACC,EAAOC,CAAQ,EAAU,WAAuB,IAAI,EAwB3D,OAtBM,YAAU,IAAM,CACrB,IAAIC,EAAS,GACb,OAAAC,EAAmB,EACjB,KAAK,IAAM,CACPD,GAAQH,EAAU,EAAI,CAC3B,CAAC,EACA,MAAOK,GAAiB,CACnBF,GACLD,EAASG,aAAe,MAAQA,EAAM,IAAI,MAAM,OAAOA,CAAG,CAAC,CAAC,CAC7D,CAAC,EACK,IAAM,CACZF,EAAS,EACV,CACD,EAAG,CAAC,CAAC,EAEC,YAAU,IAAM,CACrB,IAAMG,EAAKR,EAAS,QAChBQ,GAAMb,IAAS,SACjBa,EAAoC,KAAOb,EAE9C,EAAG,CAACA,EAAMM,CAAM,CAAC,EAEbE,EACU,gBACZ,MACA,CAAE,KAAM,QAAS,UAAAP,EAAW,MAAAC,CAAM,EAClC,+BAA+BM,EAAM,OAAO,EAC7C,EAGY,gBAAc,wBAAyB,CACnD,IAAKH,EACL,UAAAJ,EACA,MAAAC,EACA,GAAGC,CACJ,CAAC,CACF,CACD",
|
|
6
|
+
"names": ["React", "SCRIPT_ID", "CDN_BASE_LATEST", "CDN_BASE_PREFIX", "CDN_BASE_SUFFIX", "loaded", "buildBase", "version", "ensureScriptLoaded", "resolve", "reject", "url", "existing", "RoxyKpPlanetsTable", "data", "className", "style", "rest", "ref", "internal", "loaded", "setLoaded", "error", "setError", "active", "ensureScriptLoaded", "err", "el"]
|
|
7
7
|
}
|
|
@@ -1,91 +1,2 @@
|
|
|
1
|
-
|
|
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_LATEST = "https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn";
|
|
7
|
-
var CDN_BASE_PREFIX = "https://cdn.jsdelivr.net/npm/@roxyapi/ui@";
|
|
8
|
-
var CDN_BASE_SUFFIX = "/dist/cdn";
|
|
9
|
-
var loaded = null;
|
|
10
|
-
function buildBase(version) {
|
|
11
|
-
if (!version || version === "latest") return CDN_BASE_LATEST;
|
|
12
|
-
return `${CDN_BASE_PREFIX}${version}${CDN_BASE_SUFFIX}`;
|
|
13
|
-
}
|
|
14
|
-
function ensureScriptLoaded(version = "latest") {
|
|
15
|
-
if (typeof document === "undefined") return Promise.resolve();
|
|
16
|
-
if (loaded) return loaded;
|
|
17
|
-
loaded = new Promise((resolve, reject) => {
|
|
18
|
-
const url = `${buildBase(version)}/roxy-ui.js`;
|
|
19
|
-
let existing = document.getElementById(SCRIPT_ID);
|
|
20
|
-
if (existing) {
|
|
21
|
-
if (existing.dataset.loaded === "true") {
|
|
22
|
-
resolve();
|
|
23
|
-
} else {
|
|
24
|
-
existing.addEventListener("load", () => resolve());
|
|
25
|
-
existing.addEventListener("error", () => reject(new Error("roxy-ui load failed")));
|
|
26
|
-
}
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
existing = document.createElement("script");
|
|
30
|
-
existing.id = SCRIPT_ID;
|
|
31
|
-
existing.src = url;
|
|
32
|
-
existing.async = true;
|
|
33
|
-
existing.crossOrigin = "anonymous";
|
|
34
|
-
existing.addEventListener("load", () => {
|
|
35
|
-
existing.dataset.loaded = "true";
|
|
36
|
-
resolve();
|
|
37
|
-
});
|
|
38
|
-
existing.addEventListener("error", () => reject(new Error("roxy-ui load failed")));
|
|
39
|
-
document.head.appendChild(existing);
|
|
40
|
-
});
|
|
41
|
-
return loaded;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// packages/ui-react/src/components/kp-ruling-planets.tsx
|
|
45
|
-
var RoxyKpRulingPlanets = React.forwardRef(
|
|
46
|
-
function RoxyKpRulingPlanets2({ data, className, style, ...rest }, ref) {
|
|
47
|
-
const internal = React.useRef(null);
|
|
48
|
-
React.useImperativeHandle(
|
|
49
|
-
ref,
|
|
50
|
-
() => internal.current,
|
|
51
|
-
[]
|
|
52
|
-
);
|
|
53
|
-
const [loaded2, setLoaded] = React.useState(false);
|
|
54
|
-
const [error, setError] = React.useState(null);
|
|
55
|
-
React.useEffect(() => {
|
|
56
|
-
let active = true;
|
|
57
|
-
ensureScriptLoaded().then(() => {
|
|
58
|
-
if (active) setLoaded(true);
|
|
59
|
-
}).catch((err) => {
|
|
60
|
-
if (!active) return;
|
|
61
|
-
setError(err instanceof Error ? err : new Error(String(err)));
|
|
62
|
-
});
|
|
63
|
-
return () => {
|
|
64
|
-
active = false;
|
|
65
|
-
};
|
|
66
|
-
}, []);
|
|
67
|
-
React.useEffect(() => {
|
|
68
|
-
const el = internal.current;
|
|
69
|
-
if (el && data !== void 0) {
|
|
70
|
-
el.data = data;
|
|
71
|
-
}
|
|
72
|
-
}, [data, loaded2]);
|
|
73
|
-
if (error) {
|
|
74
|
-
return React.createElement(
|
|
75
|
-
"div",
|
|
76
|
-
{ role: "alert", className, style },
|
|
77
|
-
`Roxy UI script load failed: ${error.message}`
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
return React.createElement("roxy-kp-ruling-planets", {
|
|
81
|
-
ref: internal,
|
|
82
|
-
className,
|
|
83
|
-
style,
|
|
84
|
-
...rest
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
);
|
|
88
|
-
export {
|
|
89
|
-
RoxyKpRulingPlanets
|
|
90
|
-
};
|
|
1
|
+
import*as t from"react";var c="roxyapi-ui-loader",x="https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn",y="https://cdn.jsdelivr.net/npm/@roxyapi/ui@",g="/dist/cdn",l=null;function L(r){return!r||r==="latest"?x:`${y}${r}${g}`}function p(r="latest"){return typeof document>"u"?Promise.resolve():l||(l=new Promise((n,a)=>{let s=`${L(r)}/roxy-ui.js`,e=document.getElementById(c);if(e){e.dataset.loaded==="true"?n():(e.addEventListener("load",()=>n()),e.addEventListener("error",()=>a(new Error("roxy-ui load failed"))));return}e=document.createElement("script"),e.id=c,e.src=s,e.async=!0,e.crossOrigin="anonymous",e.addEventListener("load",()=>{e.dataset.loaded="true",n()}),e.addEventListener("error",()=>a(new Error("roxy-ui load failed"))),document.head.appendChild(e)}),l)}var T=t.forwardRef(function({data:n,className:a,style:s,...e},f){let i=t.useRef(null);t.useImperativeHandle(f,()=>i.current,[]);let[m,R]=t.useState(!1),[u,E]=t.useState(null);return t.useEffect(()=>{let o=!0;return p().then(()=>{o&&R(!0)}).catch(d=>{o&&E(d instanceof Error?d:new Error(String(d)))}),()=>{o=!1}},[]),t.useEffect(()=>{let o=i.current;o&&n!==void 0&&(o.data=n)},[n,m]),u?t.createElement("div",{role:"alert",className:a,style:s},`Roxy UI script load failed: ${u.message}`):t.createElement("roxy-kp-ruling-planets",{ref:i,className:a,style:s,...e})});export{T as RoxyKpRulingPlanets};
|
|
91
2
|
//# sourceMappingURL=kp-ruling-planets.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/components/kp-ruling-planets.tsx", "../../src/load-ui.ts"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { KpRulingPlanetsResponse } from '@roxyapi/ui/types';\n\ntype ElementAttrs = Omit<\n\tReact.HTMLAttributes<HTMLElement>,\n\t'children' | 'data'\n>;\n\nexport interface RoxyKpRulingPlanetsProps extends ElementAttrs {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: KpRulingPlanetsResponse;\n\tclassName?: string;\n\tstyle?: React.CSSProperties;\n\n}\n\nexport const RoxyKpRulingPlanets = React.forwardRef<HTMLElement | null, RoxyKpRulingPlanetsProps>(\n\tfunction RoxyKpRulingPlanets({ data, className, style, ...rest }, ref) {\n\t\tconst internal = React.useRef<HTMLElement | null>(null);\n\t\tReact.useImperativeHandle<HTMLElement | null, HTMLElement | null>(\n\t\t\tref,\n\t\t\t() => internal.current,\n\t\t\t[],\n\t\t);\n\t\tconst [loaded, setLoaded] = React.useState(false);\n\t\tconst [error, setError] = React.useState<Error | null>(null);\n\n\t\tReact.useEffect(() => {\n\t\t\tlet active = true;\n\t\t\tensureScriptLoaded()\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (active) setLoaded(true);\n\t\t\t\t})\n\t\t\t\t.catch((err: unknown) => {\n\t\t\t\t\tif (!active) return;\n\t\t\t\t\tsetError(err instanceof Error ? err : new Error(String(err)));\n\t\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\tconst el = internal.current;\n\t\t\tif (el && data !== undefined) {\n\t\t\t\t(el as unknown as { data: unknown }).data = data;\n\t\t\t}\n\t\t}, [data, loaded]);\n\n\t\tif (error) {\n\t\t\treturn React.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ role: 'alert', className, style },\n\t\t\t\t`Roxy UI script load failed: ${error.message}`,\n\t\t\t);\n\t\t}\n\n\t\treturn React.createElement('roxy-kp-ruling-planets', {\n\t\t\tref: internal,\n\t\t\tclassName,\n\t\t\tstyle,\n\t\t\t...rest,\n\t\t});\n\t},\n);\n", "/**\n * Loads the matching component bundle on first mount. Idempotent across\n * many components on the same page. Skips on the server (no document) so\n * React server components and Next.js SSR work without a flash.\n *\n * Pass an explicit `version` (e.g. `'0.1.5'`) to pin the loaded bundle to a\n * specific @roxyapi/ui release; the default ('latest') resolves to whatever\n * the CDN currently serves for @latest.\n */\nconst SCRIPT_ID = 'roxyapi-ui-loader';\nconst CDN_BASE_LATEST = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn\";\nconst CDN_BASE_PREFIX = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@\";\nconst CDN_BASE_SUFFIX = \"/dist/cdn\";\n\nlet loaded: Promise<void> | null = null;\n\nfunction buildBase(version: string): string {\n\tif (!version || version === 'latest') return CDN_BASE_LATEST;\n\treturn `${CDN_BASE_PREFIX}${version}${CDN_BASE_SUFFIX}`;\n}\n\nexport function ensureScriptLoaded(version: string = 'latest'): Promise<void> {\n\tif (typeof document === 'undefined') return Promise.resolve();\n\tif (loaded) return loaded;\n\n\tloaded = new Promise<void>((resolve, reject) => {\n\t\tconst url = `${buildBase(version)}/roxy-ui.js`;\n\t\tlet existing = document.getElementById(SCRIPT_ID) as HTMLScriptElement | null;\n\t\tif (existing) {\n\t\t\tif (existing.dataset.loaded === 'true') {\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\texisting.addEventListener('load', () => resolve());\n\t\t\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\texisting = document.createElement('script');\n\t\texisting.id = SCRIPT_ID;\n\t\texisting.src = url;\n\t\texisting.async = true;\n\t\texisting.crossOrigin = 'anonymous';\n\t\texisting.addEventListener('load', () => {\n\t\t\texisting!.dataset.loaded = 'true';\n\t\t\tresolve();\n\t\t});\n\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\tdocument.head.appendChild(existing);\n\t});\n\treturn loaded;\n}\n\n// Default export retained for convenience; matches the named export.\nexport default ensureScriptLoaded;\n// Surfaces the embedded @roxyapi/ui version this build of @roxyapi/ui-react\n// was generated against. Useful for diagnostics; not load-bearing.\nexport const ROXY_UI_VERSION = \"0.
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["RoxyKpRulingPlanets", "loaded"]
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { KpRulingPlanetsResponse } from '@roxyapi/ui/types';\n\ntype ElementAttrs = Omit<\n\tReact.HTMLAttributes<HTMLElement>,\n\t'children' | 'data'\n>;\n\nexport interface RoxyKpRulingPlanetsProps extends ElementAttrs {\n\t/** Spec-derived response payload. Pass the raw RoxyAPI response. */\n\tdata?: KpRulingPlanetsResponse;\n\tclassName?: string;\n\tstyle?: React.CSSProperties;\n\n}\n\nexport const RoxyKpRulingPlanets = React.forwardRef<HTMLElement | null, RoxyKpRulingPlanetsProps>(\n\tfunction RoxyKpRulingPlanets({ data, className, style, ...rest }, ref) {\n\t\tconst internal = React.useRef<HTMLElement | null>(null);\n\t\tReact.useImperativeHandle<HTMLElement | null, HTMLElement | null>(\n\t\t\tref,\n\t\t\t() => internal.current,\n\t\t\t[],\n\t\t);\n\t\tconst [loaded, setLoaded] = React.useState(false);\n\t\tconst [error, setError] = React.useState<Error | null>(null);\n\n\t\tReact.useEffect(() => {\n\t\t\tlet active = true;\n\t\t\tensureScriptLoaded()\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (active) setLoaded(true);\n\t\t\t\t})\n\t\t\t\t.catch((err: unknown) => {\n\t\t\t\t\tif (!active) return;\n\t\t\t\t\tsetError(err instanceof Error ? err : new Error(String(err)));\n\t\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\tconst el = internal.current;\n\t\t\tif (el && data !== undefined) {\n\t\t\t\t(el as unknown as { data: unknown }).data = data;\n\t\t\t}\n\t\t}, [data, loaded]);\n\n\t\tif (error) {\n\t\t\treturn React.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ role: 'alert', className, style },\n\t\t\t\t`Roxy UI script load failed: ${error.message}`,\n\t\t\t);\n\t\t}\n\n\t\treturn React.createElement('roxy-kp-ruling-planets', {\n\t\t\tref: internal,\n\t\t\tclassName,\n\t\t\tstyle,\n\t\t\t...rest,\n\t\t});\n\t},\n);\n", "/**\n * Loads the matching component bundle on first mount. Idempotent across\n * many components on the same page. Skips on the server (no document) so\n * React server components and Next.js SSR work without a flash.\n *\n * Pass an explicit `version` (e.g. `'0.1.5'`) to pin the loaded bundle to a\n * specific @roxyapi/ui release; the default ('latest') resolves to whatever\n * the CDN currently serves for @latest.\n */\nconst SCRIPT_ID = 'roxyapi-ui-loader';\nconst CDN_BASE_LATEST = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn\";\nconst CDN_BASE_PREFIX = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@\";\nconst CDN_BASE_SUFFIX = \"/dist/cdn\";\n\nlet loaded: Promise<void> | null = null;\n\nfunction buildBase(version: string): string {\n\tif (!version || version === 'latest') return CDN_BASE_LATEST;\n\treturn `${CDN_BASE_PREFIX}${version}${CDN_BASE_SUFFIX}`;\n}\n\nexport function ensureScriptLoaded(version: string = 'latest'): Promise<void> {\n\tif (typeof document === 'undefined') return Promise.resolve();\n\tif (loaded) return loaded;\n\n\tloaded = new Promise<void>((resolve, reject) => {\n\t\tconst url = `${buildBase(version)}/roxy-ui.js`;\n\t\tlet existing = document.getElementById(SCRIPT_ID) as HTMLScriptElement | null;\n\t\tif (existing) {\n\t\t\tif (existing.dataset.loaded === 'true') {\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\texisting.addEventListener('load', () => resolve());\n\t\t\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\texisting = document.createElement('script');\n\t\texisting.id = SCRIPT_ID;\n\t\texisting.src = url;\n\t\texisting.async = true;\n\t\texisting.crossOrigin = 'anonymous';\n\t\texisting.addEventListener('load', () => {\n\t\t\texisting!.dataset.loaded = 'true';\n\t\t\tresolve();\n\t\t});\n\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\tdocument.head.appendChild(existing);\n\t});\n\treturn loaded;\n}\n\n// Default export retained for convenience; matches the named export.\nexport default ensureScriptLoaded;\n// Surfaces the embedded @roxyapi/ui version this build of @roxyapi/ui-react\n// was generated against. Useful for diagnostics; not load-bearing.\nexport const ROXY_UI_VERSION = \"0.6.0\";\n"],
|
|
5
|
+
"mappings": "AAAA,UAAYA,MAAW,QCSvB,IAAMC,EAAY,oBACZC,EAAkB,2DAClBC,EAAkB,4CAClBC,EAAkB,YAEpBC,EAA+B,KAEnC,SAASC,EAAUC,EAAyB,CAC3C,MAAI,CAACA,GAAWA,IAAY,SAAiBL,EACtC,GAAGC,CAAe,GAAGI,CAAO,GAAGH,CAAe,EACtD,CAEO,SAASI,EAAmBD,EAAkB,SAAyB,CAC7E,OAAI,OAAO,SAAa,IAAoB,QAAQ,QAAQ,EACxDF,IAEJA,EAAS,IAAI,QAAc,CAACI,EAASC,IAAW,CAC/C,IAAMC,EAAM,GAAGL,EAAUC,CAAO,CAAC,cAC7BK,EAAW,SAAS,eAAeX,CAAS,EAChD,GAAIW,EAAU,CACTA,EAAS,QAAQ,SAAW,OAC/BH,EAAQ,GAERG,EAAS,iBAAiB,OAAQ,IAAMH,EAAQ,CAAC,EACjDG,EAAS,iBAAiB,QAAS,IAAMF,EAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC,GAElF,MACD,CACAE,EAAW,SAAS,cAAc,QAAQ,EAC1CA,EAAS,GAAKX,EACdW,EAAS,IAAMD,EACfC,EAAS,MAAQ,GACjBA,EAAS,YAAc,YACvBA,EAAS,iBAAiB,OAAQ,IAAM,CACvCA,EAAU,QAAQ,OAAS,OAC3BH,EAAQ,CACT,CAAC,EACDG,EAAS,iBAAiB,QAAS,IAAMF,EAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC,EACjF,SAAS,KAAK,YAAYE,CAAQ,CACnC,CAAC,EACMP,EACR,CDjCO,IAAMQ,EAA4B,aACxC,SAA6B,CAAE,KAAAC,EAAM,UAAAC,EAAW,MAAAC,EAAO,GAAGC,CAAK,EAAGC,EAAK,CACtE,IAAMC,EAAiB,SAA2B,IAAI,EAChD,sBACLD,EACA,IAAMC,EAAS,QACf,CAAC,CACF,EACA,GAAM,CAACC,EAAQC,CAAS,EAAU,WAAS,EAAK,EAC1C,CAACC,EAAOC,CAAQ,EAAU,WAAuB,IAAI,EAwB3D,OAtBM,YAAU,IAAM,CACrB,IAAIC,EAAS,GACb,OAAAC,EAAmB,EACjB,KAAK,IAAM,CACPD,GAAQH,EAAU,EAAI,CAC3B,CAAC,EACA,MAAOK,GAAiB,CACnBF,GACLD,EAASG,aAAe,MAAQA,EAAM,IAAI,MAAM,OAAOA,CAAG,CAAC,CAAC,CAC7D,CAAC,EACK,IAAM,CACZF,EAAS,EACV,CACD,EAAG,CAAC,CAAC,EAEC,YAAU,IAAM,CACrB,IAAMG,EAAKR,EAAS,QAChBQ,GAAMb,IAAS,SACjBa,EAAoC,KAAOb,EAE9C,EAAG,CAACA,EAAMM,CAAM,CAAC,EAEbE,EACU,gBACZ,MACA,CAAE,KAAM,QAAS,UAAAP,EAAW,MAAAC,CAAM,EAClC,+BAA+BM,EAAM,OAAO,EAC7C,EAGY,gBAAc,yBAA0B,CACpD,IAAKH,EACL,UAAAJ,EACA,MAAAC,EACA,GAAGC,CACJ,CAAC,CACF,CACD",
|
|
6
|
+
"names": ["React", "SCRIPT_ID", "CDN_BASE_LATEST", "CDN_BASE_PREFIX", "CDN_BASE_SUFFIX", "loaded", "buildBase", "version", "ensureScriptLoaded", "resolve", "reject", "url", "existing", "RoxyKpRulingPlanets", "data", "className", "style", "rest", "ref", "internal", "loaded", "setLoaded", "error", "setError", "active", "ensureScriptLoaded", "err", "el"]
|
|
7
7
|
}
|
|
@@ -1,101 +1,2 @@
|
|
|
1
|
-
|
|
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_LATEST = "https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn";
|
|
7
|
-
var CDN_BASE_PREFIX = "https://cdn.jsdelivr.net/npm/@roxyapi/ui@";
|
|
8
|
-
var CDN_BASE_SUFFIX = "/dist/cdn";
|
|
9
|
-
var loaded = null;
|
|
10
|
-
function buildBase(version) {
|
|
11
|
-
if (!version || version === "latest") return CDN_BASE_LATEST;
|
|
12
|
-
return `${CDN_BASE_PREFIX}${version}${CDN_BASE_SUFFIX}`;
|
|
13
|
-
}
|
|
14
|
-
function ensureScriptLoaded(version = "latest") {
|
|
15
|
-
if (typeof document === "undefined") return Promise.resolve();
|
|
16
|
-
if (loaded) return loaded;
|
|
17
|
-
loaded = new Promise((resolve, reject) => {
|
|
18
|
-
const url = `${buildBase(version)}/roxy-ui.js`;
|
|
19
|
-
let existing = document.getElementById(SCRIPT_ID);
|
|
20
|
-
if (existing) {
|
|
21
|
-
if (existing.dataset.loaded === "true") {
|
|
22
|
-
resolve();
|
|
23
|
-
} else {
|
|
24
|
-
existing.addEventListener("load", () => resolve());
|
|
25
|
-
existing.addEventListener("error", () => reject(new Error("roxy-ui load failed")));
|
|
26
|
-
}
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
existing = document.createElement("script");
|
|
30
|
-
existing.id = SCRIPT_ID;
|
|
31
|
-
existing.src = url;
|
|
32
|
-
existing.async = true;
|
|
33
|
-
existing.crossOrigin = "anonymous";
|
|
34
|
-
existing.addEventListener("load", () => {
|
|
35
|
-
existing.dataset.loaded = "true";
|
|
36
|
-
resolve();
|
|
37
|
-
});
|
|
38
|
-
existing.addEventListener("error", () => reject(new Error("roxy-ui load failed")));
|
|
39
|
-
document.head.appendChild(existing);
|
|
40
|
-
});
|
|
41
|
-
return loaded;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// packages/ui-react/src/components/location-search.tsx
|
|
45
|
-
var RoxyLocationSearch = React.forwardRef(
|
|
46
|
-
function RoxyLocationSearch2({ className, style, onRoxyLocationSelect, onRoxyValidationError, ...rest }, ref) {
|
|
47
|
-
const internal = React.useRef(null);
|
|
48
|
-
React.useImperativeHandle(
|
|
49
|
-
ref,
|
|
50
|
-
() => internal.current,
|
|
51
|
-
[]
|
|
52
|
-
);
|
|
53
|
-
const [loaded2, setLoaded] = React.useState(false);
|
|
54
|
-
const [error, setError] = React.useState(null);
|
|
55
|
-
React.useEffect(() => {
|
|
56
|
-
let active = true;
|
|
57
|
-
ensureScriptLoaded().then(() => {
|
|
58
|
-
if (active) setLoaded(true);
|
|
59
|
-
}).catch((err) => {
|
|
60
|
-
if (!active) return;
|
|
61
|
-
setError(err instanceof Error ? err : new Error(String(err)));
|
|
62
|
-
});
|
|
63
|
-
return () => {
|
|
64
|
-
active = false;
|
|
65
|
-
};
|
|
66
|
-
}, []);
|
|
67
|
-
React.useEffect(() => {
|
|
68
|
-
const el = internal.current;
|
|
69
|
-
const handler = onRoxyLocationSelect;
|
|
70
|
-
if (!el || !handler) return;
|
|
71
|
-
const listener = (event) => handler(event);
|
|
72
|
-
el.addEventListener("roxy-location-select", listener);
|
|
73
|
-
return () => el.removeEventListener("roxy-location-select", listener);
|
|
74
|
-
}, [onRoxyLocationSelect, loaded2]);
|
|
75
|
-
React.useEffect(() => {
|
|
76
|
-
const el = internal.current;
|
|
77
|
-
const handler = onRoxyValidationError;
|
|
78
|
-
if (!el || !handler) return;
|
|
79
|
-
const listener = (event) => handler(event);
|
|
80
|
-
el.addEventListener("roxy-validation-error", listener);
|
|
81
|
-
return () => el.removeEventListener("roxy-validation-error", listener);
|
|
82
|
-
}, [onRoxyValidationError, loaded2]);
|
|
83
|
-
if (error) {
|
|
84
|
-
return React.createElement(
|
|
85
|
-
"div",
|
|
86
|
-
{ role: "alert", className, style },
|
|
87
|
-
`Roxy UI script load failed: ${error.message}`
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
return React.createElement("roxy-location-search", {
|
|
91
|
-
ref: internal,
|
|
92
|
-
className,
|
|
93
|
-
style,
|
|
94
|
-
...rest
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
);
|
|
98
|
-
export {
|
|
99
|
-
RoxyLocationSearch
|
|
100
|
-
};
|
|
1
|
+
import*as t from"react";var f="roxyapi-ui-loader",x="https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn",L="https://cdn.jsdelivr.net/npm/@roxyapi/ui@",S="/dist/cdn",u=null;function h(o){return!o||o==="latest"?x:`${L}${o}${S}`}function p(o="latest"){return typeof document>"u"?Promise.resolve():u||(u=new Promise((i,s)=>{let c=`${h(o)}/roxy-ui.js`,e=document.getElementById(f);if(e){e.dataset.loaded==="true"?i():(e.addEventListener("load",()=>i()),e.addEventListener("error",()=>s(new Error("roxy-ui load failed"))));return}e=document.createElement("script"),e.id=f,e.src=c,e.async=!0,e.crossOrigin="anonymous",e.addEventListener("load",()=>{e.dataset.loaded="true",i()}),e.addEventListener("error",()=>s(new Error("roxy-ui load failed"))),document.head.appendChild(e)}),u)}var T=t.forwardRef(function({className:i,style:s,onRoxyLocationSelect:c,onRoxyValidationError:e,...v},y){let l=t.useRef(null);t.useImperativeHandle(y,()=>l.current,[]);let[m,R]=t.useState(!1),[E,g]=t.useState(null);return t.useEffect(()=>{let r=!0;return p().then(()=>{r&&R(!0)}).catch(n=>{r&&g(n instanceof Error?n:new Error(String(n)))}),()=>{r=!1}},[]),t.useEffect(()=>{let r=l.current,n=c;if(!r||!n)return;let a=d=>n(d);return r.addEventListener("roxy-location-select",a),()=>r.removeEventListener("roxy-location-select",a)},[c,m]),t.useEffect(()=>{let r=l.current,n=e;if(!r||!n)return;let a=d=>n(d);return r.addEventListener("roxy-validation-error",a),()=>r.removeEventListener("roxy-validation-error",a)},[e,m]),E?t.createElement("div",{role:"alert",className:i,style:s},`Roxy UI script load failed: ${E.message}`):t.createElement("roxy-location-search",{ref:l,className:i,style:s,...v})});export{T as RoxyLocationSearch};
|
|
101
2
|
//# sourceMappingURL=location-search.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/components/location-search.tsx", "../../src/load-ui.ts"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { SearchCitiesResponse } from '@roxyapi/ui/types';\n\ntype ElementAttrs = Omit<\n\tReact.HTMLAttributes<HTMLElement>,\n\t'children'\n>;\n\nexport interface RoxyLocationSearchProps extends ElementAttrs {\n\tclassName?: string;\n\tstyle?: React.CSSProperties;\n\t/** Fires when the underlying <roxy-location-search> dispatches `roxy-location-select`. */\n\tonRoxyLocationSelect?: (event: CustomEvent<NonNullable<SearchCitiesResponse['cities']>[number] | { latitude?: number; longitude?: number; timezone?: string; utcOffset?: number; city?: string; province?: string; country?: string }>) => void;\n\t/** Fires when the underlying <roxy-location-search> dispatches `roxy-validation-error`. */\n\tonRoxyValidationError?: (event: CustomEvent<{ reason: string; message: string }>) => void;\n}\n\nexport const RoxyLocationSearch = React.forwardRef<HTMLElement | null, RoxyLocationSearchProps>(\n\tfunction RoxyLocationSearch({ className, style, onRoxyLocationSelect, onRoxyValidationError, ...rest }, ref) {\n\t\tconst internal = React.useRef<HTMLElement | null>(null);\n\t\tReact.useImperativeHandle<HTMLElement | null, HTMLElement | null>(\n\t\t\tref,\n\t\t\t() => internal.current,\n\t\t\t[],\n\t\t);\n\t\tconst [loaded, setLoaded] = React.useState(false);\n\t\tconst [error, setError] = React.useState<Error | null>(null);\n\n\t\tReact.useEffect(() => {\n\t\t\tlet active = true;\n\t\t\tensureScriptLoaded()\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (active) setLoaded(true);\n\t\t\t\t})\n\t\t\t\t.catch((err: unknown) => {\n\t\t\t\t\tif (!active) return;\n\t\t\t\t\tsetError(err instanceof Error ? err : new Error(String(err)));\n\t\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\tconst el = internal.current;\n\t\t\tconst handler = onRoxyLocationSelect;\n\t\t\tif (!el || !handler) return;\n\t\t\tconst listener = (event: Event) => handler(event as CustomEvent<NonNullable<SearchCitiesResponse['cities']>[number] | { latitude?: number; longitude?: number; timezone?: string; utcOffset?: number; city?: string; province?: string; country?: string }>);\n\t\t\tel.addEventListener('roxy-location-select', listener);\n\t\t\treturn () => el.removeEventListener('roxy-location-select', listener);\n\t\t}, [onRoxyLocationSelect, loaded]);\n\n\t\tReact.useEffect(() => {\n\t\t\tconst el = internal.current;\n\t\t\tconst handler = onRoxyValidationError;\n\t\t\tif (!el || !handler) return;\n\t\t\tconst listener = (event: Event) => handler(event as CustomEvent<{ reason: string; message: string }>);\n\t\t\tel.addEventListener('roxy-validation-error', listener);\n\t\t\treturn () => el.removeEventListener('roxy-validation-error', listener);\n\t\t}, [onRoxyValidationError, loaded]);\n\n\t\tif (error) {\n\t\t\treturn React.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ role: 'alert', className, style },\n\t\t\t\t`Roxy UI script load failed: ${error.message}`,\n\t\t\t);\n\t\t}\n\n\t\treturn React.createElement('roxy-location-search', {\n\t\t\tref: internal,\n\t\t\tclassName,\n\t\t\tstyle,\n\t\t\t...rest,\n\t\t});\n\t},\n);\n", "/**\n * Loads the matching component bundle on first mount. Idempotent across\n * many components on the same page. Skips on the server (no document) so\n * React server components and Next.js SSR work without a flash.\n *\n * Pass an explicit `version` (e.g. `'0.1.5'`) to pin the loaded bundle to a\n * specific @roxyapi/ui release; the default ('latest') resolves to whatever\n * the CDN currently serves for @latest.\n */\nconst SCRIPT_ID = 'roxyapi-ui-loader';\nconst CDN_BASE_LATEST = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn\";\nconst CDN_BASE_PREFIX = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@\";\nconst CDN_BASE_SUFFIX = \"/dist/cdn\";\n\nlet loaded: Promise<void> | null = null;\n\nfunction buildBase(version: string): string {\n\tif (!version || version === 'latest') return CDN_BASE_LATEST;\n\treturn `${CDN_BASE_PREFIX}${version}${CDN_BASE_SUFFIX}`;\n}\n\nexport function ensureScriptLoaded(version: string = 'latest'): Promise<void> {\n\tif (typeof document === 'undefined') return Promise.resolve();\n\tif (loaded) return loaded;\n\n\tloaded = new Promise<void>((resolve, reject) => {\n\t\tconst url = `${buildBase(version)}/roxy-ui.js`;\n\t\tlet existing = document.getElementById(SCRIPT_ID) as HTMLScriptElement | null;\n\t\tif (existing) {\n\t\t\tif (existing.dataset.loaded === 'true') {\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\texisting.addEventListener('load', () => resolve());\n\t\t\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\texisting = document.createElement('script');\n\t\texisting.id = SCRIPT_ID;\n\t\texisting.src = url;\n\t\texisting.async = true;\n\t\texisting.crossOrigin = 'anonymous';\n\t\texisting.addEventListener('load', () => {\n\t\t\texisting!.dataset.loaded = 'true';\n\t\t\tresolve();\n\t\t});\n\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\tdocument.head.appendChild(existing);\n\t});\n\treturn loaded;\n}\n\n// Default export retained for convenience; matches the named export.\nexport default ensureScriptLoaded;\n// Surfaces the embedded @roxyapi/ui version this build of @roxyapi/ui-react\n// was generated against. Useful for diagnostics; not load-bearing.\nexport const ROXY_UI_VERSION = \"0.
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["RoxyLocationSearch", "loaded"]
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport { ensureScriptLoaded } from '../load-ui.js';\nimport type { SearchCitiesResponse } from '@roxyapi/ui/types';\n\ntype ElementAttrs = Omit<\n\tReact.HTMLAttributes<HTMLElement>,\n\t'children'\n>;\n\nexport interface RoxyLocationSearchProps extends ElementAttrs {\n\tclassName?: string;\n\tstyle?: React.CSSProperties;\n\t/** Fires when the underlying <roxy-location-search> dispatches `roxy-location-select`. */\n\tonRoxyLocationSelect?: (event: CustomEvent<NonNullable<SearchCitiesResponse['cities']>[number] | { latitude?: number; longitude?: number; timezone?: string; utcOffset?: number; city?: string; province?: string; country?: string }>) => void;\n\t/** Fires when the underlying <roxy-location-search> dispatches `roxy-validation-error`. */\n\tonRoxyValidationError?: (event: CustomEvent<{ reason: string; message: string }>) => void;\n}\n\nexport const RoxyLocationSearch = React.forwardRef<HTMLElement | null, RoxyLocationSearchProps>(\n\tfunction RoxyLocationSearch({ className, style, onRoxyLocationSelect, onRoxyValidationError, ...rest }, ref) {\n\t\tconst internal = React.useRef<HTMLElement | null>(null);\n\t\tReact.useImperativeHandle<HTMLElement | null, HTMLElement | null>(\n\t\t\tref,\n\t\t\t() => internal.current,\n\t\t\t[],\n\t\t);\n\t\tconst [loaded, setLoaded] = React.useState(false);\n\t\tconst [error, setError] = React.useState<Error | null>(null);\n\n\t\tReact.useEffect(() => {\n\t\t\tlet active = true;\n\t\t\tensureScriptLoaded()\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (active) setLoaded(true);\n\t\t\t\t})\n\t\t\t\t.catch((err: unknown) => {\n\t\t\t\t\tif (!active) return;\n\t\t\t\t\tsetError(err instanceof Error ? err : new Error(String(err)));\n\t\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\tconst el = internal.current;\n\t\t\tconst handler = onRoxyLocationSelect;\n\t\t\tif (!el || !handler) return;\n\t\t\tconst listener = (event: Event) => handler(event as CustomEvent<NonNullable<SearchCitiesResponse['cities']>[number] | { latitude?: number; longitude?: number; timezone?: string; utcOffset?: number; city?: string; province?: string; country?: string }>);\n\t\t\tel.addEventListener('roxy-location-select', listener);\n\t\t\treturn () => el.removeEventListener('roxy-location-select', listener);\n\t\t}, [onRoxyLocationSelect, loaded]);\n\n\t\tReact.useEffect(() => {\n\t\t\tconst el = internal.current;\n\t\t\tconst handler = onRoxyValidationError;\n\t\t\tif (!el || !handler) return;\n\t\t\tconst listener = (event: Event) => handler(event as CustomEvent<{ reason: string; message: string }>);\n\t\t\tel.addEventListener('roxy-validation-error', listener);\n\t\t\treturn () => el.removeEventListener('roxy-validation-error', listener);\n\t\t}, [onRoxyValidationError, loaded]);\n\n\t\tif (error) {\n\t\t\treturn React.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ role: 'alert', className, style },\n\t\t\t\t`Roxy UI script load failed: ${error.message}`,\n\t\t\t);\n\t\t}\n\n\t\treturn React.createElement('roxy-location-search', {\n\t\t\tref: internal,\n\t\t\tclassName,\n\t\t\tstyle,\n\t\t\t...rest,\n\t\t});\n\t},\n);\n", "/**\n * Loads the matching component bundle on first mount. Idempotent across\n * many components on the same page. Skips on the server (no document) so\n * React server components and Next.js SSR work without a flash.\n *\n * Pass an explicit `version` (e.g. `'0.1.5'`) to pin the loaded bundle to a\n * specific @roxyapi/ui release; the default ('latest') resolves to whatever\n * the CDN currently serves for @latest.\n */\nconst SCRIPT_ID = 'roxyapi-ui-loader';\nconst CDN_BASE_LATEST = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@latest/dist/cdn\";\nconst CDN_BASE_PREFIX = \"https://cdn.jsdelivr.net/npm/@roxyapi/ui@\";\nconst CDN_BASE_SUFFIX = \"/dist/cdn\";\n\nlet loaded: Promise<void> | null = null;\n\nfunction buildBase(version: string): string {\n\tif (!version || version === 'latest') return CDN_BASE_LATEST;\n\treturn `${CDN_BASE_PREFIX}${version}${CDN_BASE_SUFFIX}`;\n}\n\nexport function ensureScriptLoaded(version: string = 'latest'): Promise<void> {\n\tif (typeof document === 'undefined') return Promise.resolve();\n\tif (loaded) return loaded;\n\n\tloaded = new Promise<void>((resolve, reject) => {\n\t\tconst url = `${buildBase(version)}/roxy-ui.js`;\n\t\tlet existing = document.getElementById(SCRIPT_ID) as HTMLScriptElement | null;\n\t\tif (existing) {\n\t\t\tif (existing.dataset.loaded === 'true') {\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\texisting.addEventListener('load', () => resolve());\n\t\t\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\texisting = document.createElement('script');\n\t\texisting.id = SCRIPT_ID;\n\t\texisting.src = url;\n\t\texisting.async = true;\n\t\texisting.crossOrigin = 'anonymous';\n\t\texisting.addEventListener('load', () => {\n\t\t\texisting!.dataset.loaded = 'true';\n\t\t\tresolve();\n\t\t});\n\t\texisting.addEventListener('error', () => reject(new Error('roxy-ui load failed')));\n\t\tdocument.head.appendChild(existing);\n\t});\n\treturn loaded;\n}\n\n// Default export retained for convenience; matches the named export.\nexport default ensureScriptLoaded;\n// Surfaces the embedded @roxyapi/ui version this build of @roxyapi/ui-react\n// was generated against. Useful for diagnostics; not load-bearing.\nexport const ROXY_UI_VERSION = \"0.6.0\";\n"],
|
|
5
|
+
"mappings": "AAAA,UAAYA,MAAW,QCSvB,IAAMC,EAAY,oBACZC,EAAkB,2DAClBC,EAAkB,4CAClBC,EAAkB,YAEpBC,EAA+B,KAEnC,SAASC,EAAUC,EAAyB,CAC3C,MAAI,CAACA,GAAWA,IAAY,SAAiBL,EACtC,GAAGC,CAAe,GAAGI,CAAO,GAAGH,CAAe,EACtD,CAEO,SAASI,EAAmBD,EAAkB,SAAyB,CAC7E,OAAI,OAAO,SAAa,IAAoB,QAAQ,QAAQ,EACxDF,IAEJA,EAAS,IAAI,QAAc,CAACI,EAASC,IAAW,CAC/C,IAAMC,EAAM,GAAGL,EAAUC,CAAO,CAAC,cAC7BK,EAAW,SAAS,eAAeX,CAAS,EAChD,GAAIW,EAAU,CACTA,EAAS,QAAQ,SAAW,OAC/BH,EAAQ,GAERG,EAAS,iBAAiB,OAAQ,IAAMH,EAAQ,CAAC,EACjDG,EAAS,iBAAiB,QAAS,IAAMF,EAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC,GAElF,MACD,CACAE,EAAW,SAAS,cAAc,QAAQ,EAC1CA,EAAS,GAAKX,EACdW,EAAS,IAAMD,EACfC,EAAS,MAAQ,GACjBA,EAAS,YAAc,YACvBA,EAAS,iBAAiB,OAAQ,IAAM,CACvCA,EAAU,QAAQ,OAAS,OAC3BH,EAAQ,CACT,CAAC,EACDG,EAAS,iBAAiB,QAAS,IAAMF,EAAO,IAAI,MAAM,qBAAqB,CAAC,CAAC,EACjF,SAAS,KAAK,YAAYE,CAAQ,CACnC,CAAC,EACMP,EACR,CDhCO,IAAMQ,EAA2B,aACvC,SAA4B,CAAE,UAAAC,EAAW,MAAAC,EAAO,qBAAAC,EAAsB,sBAAAC,EAAuB,GAAGC,CAAK,EAAGC,EAAK,CAC5G,IAAMC,EAAiB,SAA2B,IAAI,EAChD,sBACLD,EACA,IAAMC,EAAS,QACf,CAAC,CACF,EACA,GAAM,CAACC,EAAQC,CAAS,EAAU,WAAS,EAAK,EAC1C,CAACC,EAAOC,CAAQ,EAAU,WAAuB,IAAI,EAmC3D,OAjCM,YAAU,IAAM,CACrB,IAAIC,EAAS,GACb,OAAAC,EAAmB,EACjB,KAAK,IAAM,CACPD,GAAQH,EAAU,EAAI,CAC3B,CAAC,EACA,MAAOK,GAAiB,CACnBF,GACLD,EAASG,aAAe,MAAQA,EAAM,IAAI,MAAM,OAAOA,CAAG,CAAC,CAAC,CAC7D,CAAC,EACK,IAAM,CACZF,EAAS,EACV,CACD,EAAG,CAAC,CAAC,EAEC,YAAU,IAAM,CACrB,IAAMG,EAAKR,EAAS,QACdS,EAAUb,EAChB,GAAI,CAACY,GAAM,CAACC,EAAS,OACrB,IAAMC,EAAYC,GAAiBF,EAAQE,CAAgN,EAC3P,OAAAH,EAAG,iBAAiB,uBAAwBE,CAAQ,EAC7C,IAAMF,EAAG,oBAAoB,uBAAwBE,CAAQ,CACrE,EAAG,CAACd,EAAsBK,CAAM,CAAC,EAE3B,YAAU,IAAM,CACrB,IAAMO,EAAKR,EAAS,QACdS,EAAUZ,EAChB,GAAI,CAACW,GAAM,CAACC,EAAS,OACrB,IAAMC,EAAYC,GAAiBF,EAAQE,CAAyD,EACpG,OAAAH,EAAG,iBAAiB,wBAAyBE,CAAQ,EAC9C,IAAMF,EAAG,oBAAoB,wBAAyBE,CAAQ,CACtE,EAAG,CAACb,EAAuBI,CAAM,CAAC,EAE9BE,EACU,gBACZ,MACA,CAAE,KAAM,QAAS,UAAAT,EAAW,MAAAC,CAAM,EAClC,+BAA+BQ,EAAM,OAAO,EAC7C,EAGY,gBAAc,uBAAwB,CAClD,IAAKH,EACL,UAAAN,EACA,MAAAC,EACA,GAAGG,CACJ,CAAC,CACF,CACD",
|
|
6
|
+
"names": ["React", "SCRIPT_ID", "CDN_BASE_LATEST", "CDN_BASE_PREFIX", "CDN_BASE_SUFFIX", "loaded", "buildBase", "version", "ensureScriptLoaded", "resolve", "reject", "url", "existing", "RoxyLocationSearch", "className", "style", "onRoxyLocationSelect", "onRoxyValidationError", "rest", "ref", "internal", "loaded", "setLoaded", "error", "setError", "active", "ensureScriptLoaded", "err", "el", "handler", "listener", "event"]
|
|
7
7
|
}
|