@johnmorrisdotca/wakusei-planets 0.3.1 → 0.4.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/CHANGELOG.md +9 -0
- package/README.md +3 -2
- package/dist/element.d.ts +2 -2
- package/dist/embed.d.ts +96 -0
- package/dist/embed.js +112 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.0
|
|
4
|
+
|
|
5
|
+
"Put it in your page" is a configurator.
|
|
6
|
+
|
|
7
|
+
- **Set up a body, copy the code.** The demo's last section follows what is set up above it (body, look, sky and date, moons, turning) and a size (160, 240, 320 or 480), and writes working code for plain HTML from jsDelivr, an ES module, React, Vue, Angular, Svelte and an iframe of the embed page, on tabs that answer the arrow keys, beside a picture made from the same choices, with a Copy button and the credits that go with the picture. The choices are kept in the address (`?embed=react&size=240`).
|
|
8
|
+
- **`embedCode(options, kind, settings)` and `embedCredit(options)`** make the same text for a page of your own (`EMBED_KINDS`: `html`, `module`, `react`, `vue`, `angular`, `svelte`, `iframe`). Pattern: senshu-jerseys' `embedCode` and its tabbed "Put it in your page". Every snippet is tested (`test/embed.test.ts`): the React component is built and rendered, the Vue and Svelte components compiled, the Angular template parsed, the module checked as TypeScript, the iframe's address read the way the embed page reads it, and every body's entry point exists in the package.
|
|
9
|
+
- A guide, "Put it in your page", in English and Japanese.
|
|
10
|
+
- **kazoku-ui 0.11.0**: the view controls' Centre button (it appears once the body is dragged away), a pan that keeps a quarter of the body in sight (told the body's size with `object-size`), and a drag that keeps the touched point under the pointer (`grab-radius`). The 0.3.1 stopgap that made Fit re-centre is gone.
|
|
11
|
+
|
|
3
12
|
## 0.3.1
|
|
4
13
|
|
|
5
14
|
The Earth is a body like the others, and "To scale" is a comparison.
|
package/README.md
CHANGED
|
@@ -11,9 +11,9 @@ A clean line drawing, a shaded realistic drawing, or a painted surface map, with
|
|
|
11
11
|
|
|
12
12
|
<p align="center"><a href="https://johnmorrisdotca.github.io/wakusei-planets/"><strong>Open the demo →</strong></a> · <a href="https://johnmorrisdotca.github.io/wakusei-planets/embed.html">Embed page</a> · <a href="https://johnmorrisdotca.github.io/wakusei-planets/docs/">Docs</a></p>
|
|
13
13
|
|
|
14
|
-
<p align="center"><img alt="Jupiter and Saturn drawn in the realistic look, and Saturn as a line drawing" src="https://raw.githubusercontent.com/johnmorrisdotca/wakusei-planets/v0.
|
|
14
|
+
<p align="center"><img alt="Jupiter and Saturn drawn in the realistic look, and Saturn as a line drawing" src="https://raw.githubusercontent.com/johnmorrisdotca/wakusei-planets/v0.4.0/docs/images/hero-desk.png" width="640"></p>
|
|
15
15
|
|
|
16
|
-
<p align="center"><img alt="Every body at one scale, the Earth among them: each small body has a magnified picture joined by a line, and the Sun shows only its edge" src="https://raw.githubusercontent.com/johnmorrisdotca/wakusei-planets/v0.
|
|
16
|
+
<p align="center"><img alt="Every body at one scale, the Earth among them: each small body has a magnified picture joined by a line, and the Sun shows only its edge" src="https://raw.githubusercontent.com/johnmorrisdotca/wakusei-planets/v0.4.0/docs/images/lineup-desk.png" width="640"></p>
|
|
17
17
|
|
|
18
18
|
## One minute
|
|
19
19
|
|
|
@@ -94,6 +94,7 @@ Give a body a `time` and it is drawn as the sky shows it then: its pole and rota
|
|
|
94
94
|
| An ES module in Vite or webpack, only the bodies you need | [bundlers guide](docs/guides/bundlers.md) |
|
|
95
95
|
| React, Vue, Svelte, Angular; Next.js, Nuxt, SvelteKit | [frameworks guide](docs/guides/frameworks.md) |
|
|
96
96
|
| An `<iframe>` of the embed page, no script of your own | [iframe guide](docs/guides/embed-in-an-iframe.md) |
|
|
97
|
+
| Set up a body in the demo and copy the code for HTML, React, Vue, Angular, Svelte or an iframe | [Put it in your page](docs/guides/put-it-in-your-page.md), or `embedCode()` |
|
|
97
98
|
| TypeScript types, an SVG string on a server, Node | [TypeScript and Node guide](docs/guides/typescript-and-node.md) |
|
|
98
99
|
| The looks, the entry points, one WebGL context | [looks and bodies](docs/guides/looks-and-bodies.md) |
|
|
99
100
|
| Moons where they are on a date, time that runs fast | [moons and time](docs/guides/moons-and-time.md) |
|
package/dist/element.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export type WakuseiState = "line" | "loading" | "still" | "live" | "lost" | "una
|
|
|
25
25
|
* console.log(TEXTURE_BASE);
|
|
26
26
|
* ```
|
|
27
27
|
*/
|
|
28
|
-
export declare const TEXTURE_BASE = "https://cdn.jsdelivr.net/npm/@johnmorrisdotca/wakusei-planets@0.
|
|
28
|
+
export declare const TEXTURE_BASE = "https://cdn.jsdelivr.net/npm/@johnmorrisdotca/wakusei-planets@0.4.0/dist/textures/";
|
|
29
29
|
/**
|
|
30
30
|
* Where the sharpest surface pictures are: the files of this exact version in the repository, on jsDelivr's GitHub address. The npm package holds only the two smaller widths, so a page that
|
|
31
31
|
* never zooms in never fetches them. Set `texture-far-base` on an element to serve them yourself.
|
|
@@ -37,7 +37,7 @@ export declare const TEXTURE_BASE = "https://cdn.jsdelivr.net/npm/@johnmorrisdot
|
|
|
37
37
|
* console.log(TEXTURE_FAR_BASE);
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
|
-
export declare const TEXTURE_FAR_BASE = "https://cdn.jsdelivr.net/gh/johnmorrisdotca/wakusei-planets@v0.
|
|
40
|
+
export declare const TEXTURE_FAR_BASE = "https://cdn.jsdelivr.net/gh/johnmorrisdotca/wakusei-planets@v0.4.0/textures/";
|
|
41
41
|
/**
|
|
42
42
|
* The `<wakusei-body>` custom element: a body of the solar system, drawn in a look.
|
|
43
43
|
*
|
package/dist/embed.d.ts
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { type BodyId, type Look } from "./facts.ts";
|
|
2
|
+
/**
|
|
3
|
+
* The ways `embedCode` writes a body into a page.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import { EMBED_KINDS } from "@johnmorrisdotca/wakusei-planets";
|
|
8
|
+
*
|
|
9
|
+
* console.log(EMBED_KINDS.join(", "));
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export declare const EMBED_KINDS: readonly ["html", "module", "react", "vue", "angular", "svelte", "iframe"];
|
|
13
|
+
/**
|
|
14
|
+
* One of the ways in `EMBED_KINDS`.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { EMBED_KINDS, type EmbedKind } from "@johnmorrisdotca/wakusei-planets";
|
|
19
|
+
*
|
|
20
|
+
* const kind: EmbedKind = EMBED_KINDS[2];
|
|
21
|
+
* console.log(kind);
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export type EmbedKind = (typeof EMBED_KINDS)[number];
|
|
25
|
+
/**
|
|
26
|
+
* What the reader chose: the body, how it is drawn, and whether it is a portrait or the sky at a date.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* import { embedCode, type EmbedOptions } from "@johnmorrisdotca/wakusei-planets";
|
|
31
|
+
*
|
|
32
|
+
* const options: EmbedOptions = { body: "saturn", look: "painted", size: 320, turn: 12 };
|
|
33
|
+
* console.log(embedCode(options, "html"));
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export interface EmbedOptions {
|
|
37
|
+
body: BodyId;
|
|
38
|
+
look?: Look;
|
|
39
|
+
/** The date and time as an ISO string, or `now`: the body as the Earth sees it then. Left out, a portrait. */
|
|
40
|
+
time?: string;
|
|
41
|
+
/** A planet with its moons on their orbits (needs `time`). */
|
|
42
|
+
moons?: boolean;
|
|
43
|
+
/** Degrees a second it turns by itself; left out or 0, it is still. */
|
|
44
|
+
turn?: number;
|
|
45
|
+
/** Pixels across. */
|
|
46
|
+
size?: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Where the embed code points: the package's version on jsDelivr, and the published demo, where `embed.html` is.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```ts
|
|
53
|
+
* import { embedCode } from "@johnmorrisdotca/wakusei-planets";
|
|
54
|
+
*
|
|
55
|
+
* console.log(embedCode({ body: "mars", look: "line" }, "iframe", { site: "https://example.com/wakusei/" }));
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export interface EmbedSettings {
|
|
59
|
+
/** The published demo's address, ending in a slash. */
|
|
60
|
+
site?: string;
|
|
61
|
+
/** The package's address on the CDN, with its version. */
|
|
62
|
+
cdn?: string;
|
|
63
|
+
}
|
|
64
|
+
/** The entry point that holds a body's shaded and painted look. */
|
|
65
|
+
export declare function entryOf(id: BodyId): string;
|
|
66
|
+
/**
|
|
67
|
+
* The text that puts a body in a page, for one way of making the page. Each way is built, parsed or run by the package's tests: the plain HTML one with a script tag from jsDelivr, an ES module, a React component,
|
|
68
|
+
* a Vue single-file component, an Angular standalone component, a Svelte component, and an iframe of the demo's `embed.html`.
|
|
69
|
+
*
|
|
70
|
+
* @param options - The body, its look, the date, the moons, the turn and the size.
|
|
71
|
+
* @param kind - The way the page is made; `html` by default.
|
|
72
|
+
* @param settings - The CDN and the demo's address, when they are not the package's own.
|
|
73
|
+
* @returns The text to paste into the page's source.
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```ts
|
|
77
|
+
* import { embedCode } from "@johnmorrisdotca/wakusei-planets";
|
|
78
|
+
*
|
|
79
|
+
* console.log(embedCode({ body: "jupiter", look: "realistic", time: "now", moons: true }, "react"));
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export declare function embedCode(options: EmbedOptions, kind?: EmbedKind, settings?: EmbedSettings): string;
|
|
83
|
+
/**
|
|
84
|
+
* The credits that travel with a picture of a body: the line and shaded looks are drawn from numbers, the painted look uses public-domain pictures.
|
|
85
|
+
*
|
|
86
|
+
* @param options - The choices, so only what is used is named.
|
|
87
|
+
* @returns A short line of credit to put near the picture.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```ts
|
|
91
|
+
* import { embedCredit } from "@johnmorrisdotca/wakusei-planets";
|
|
92
|
+
*
|
|
93
|
+
* console.log(embedCredit({ body: "mars", look: "painted" }));
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export declare function embedCredit(options: EmbedOptions): string;
|
package/dist/embed.js
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
// The text to put a body in a page, for each way a page is made: a script tag from a CDN, an ES module, React, Vue, Angular, Svelte, or an iframe of `embed.html`. The demo's "Put it in your page"
|
|
2
|
+
// section shows these as the reader changes a choice, and the tests build or parse every one. Pure: no DOM.
|
|
3
|
+
import { BODIES } from "./facts.js";
|
|
4
|
+
import { VERSION } from "./version.js";
|
|
5
|
+
/**
|
|
6
|
+
* The ways `embedCode` writes a body into a page.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { EMBED_KINDS } from "@johnmorrisdotca/wakusei-planets";
|
|
11
|
+
*
|
|
12
|
+
* console.log(EMBED_KINDS.join(", "));
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export const EMBED_KINDS = ["html", "module", "react", "vue", "angular", "svelte", "iframe"];
|
|
16
|
+
const SITE = "https://johnmorrisdotca.github.io/wakusei-planets/";
|
|
17
|
+
const CDN = `https://cdn.jsdelivr.net/npm/@johnmorrisdotca/wakusei-planets@${VERSION}`;
|
|
18
|
+
const PACKAGE = "@johnmorrisdotca/wakusei-planets";
|
|
19
|
+
/** The entry point that holds a body's shaded and painted look. */
|
|
20
|
+
export function entryOf(id) {
|
|
21
|
+
const parent = BODIES[id].parent;
|
|
22
|
+
return parent === undefined ? id : `moons-${parent}`;
|
|
23
|
+
}
|
|
24
|
+
/** The attributes of the element for these choices, in the order they are written. */
|
|
25
|
+
function attributesOf(o) {
|
|
26
|
+
const out = [["body", o.body], ["look", o.look ?? "realistic"]];
|
|
27
|
+
if (o.size !== undefined && o.size !== 320)
|
|
28
|
+
out.push(["size", String(o.size)]);
|
|
29
|
+
if (o.time !== undefined)
|
|
30
|
+
out.push(["time", o.time]);
|
|
31
|
+
if (o.moons === true && o.time !== undefined)
|
|
32
|
+
out.push(["moons", ""]);
|
|
33
|
+
if (o.turn !== undefined && o.turn > 0)
|
|
34
|
+
out.push(["turn", String(o.turn)]);
|
|
35
|
+
return out;
|
|
36
|
+
}
|
|
37
|
+
const quote = (v) => `"${v.replace(/&/g, "&").replace(/"/g, """)}"`;
|
|
38
|
+
const tagAttrs = (o) => attributesOf(o).map(([k, v]) => (v === "" ? k : `${k}=${quote(v)}`)).join(" ");
|
|
39
|
+
const needsShading = (o) => (o.look ?? "realistic") !== "line";
|
|
40
|
+
/**
|
|
41
|
+
* The text that puts a body in a page, for one way of making the page. Each way is built, parsed or run by the package's tests: the plain HTML one with a script tag from jsDelivr, an ES module, a React component,
|
|
42
|
+
* a Vue single-file component, an Angular standalone component, a Svelte component, and an iframe of the demo's `embed.html`.
|
|
43
|
+
*
|
|
44
|
+
* @param options - The body, its look, the date, the moons, the turn and the size.
|
|
45
|
+
* @param kind - The way the page is made; `html` by default.
|
|
46
|
+
* @param settings - The CDN and the demo's address, when they are not the package's own.
|
|
47
|
+
* @returns The text to paste into the page's source.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```ts
|
|
51
|
+
* import { embedCode } from "@johnmorrisdotca/wakusei-planets";
|
|
52
|
+
*
|
|
53
|
+
* console.log(embedCode({ body: "jupiter", look: "realistic", time: "now", moons: true }, "react"));
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export function embedCode(options, kind = "html", settings = {}) {
|
|
57
|
+
const cdn = settings.cdn ?? CDN;
|
|
58
|
+
const site = settings.site ?? SITE;
|
|
59
|
+
const shaded = needsShading(options);
|
|
60
|
+
const entry = entryOf(options.body);
|
|
61
|
+
const size = options.size ?? 320;
|
|
62
|
+
if (kind === "iframe") {
|
|
63
|
+
const query = new URLSearchParams({ body: options.body, look: options.look ?? "realistic" });
|
|
64
|
+
if (options.time !== undefined)
|
|
65
|
+
query.set("time", options.time);
|
|
66
|
+
if (options.moons === true && options.time !== undefined)
|
|
67
|
+
query.set("moons", "1");
|
|
68
|
+
if (options.turn !== undefined && options.turn > 0)
|
|
69
|
+
query.set("turn", String(options.turn));
|
|
70
|
+
return `<iframe\n src=${quote(`${site}embed.html?${query.toString()}`)}\n title=${quote(BODIES[options.body].name.en)}\n width="${size}"\n height="${size}"\n loading="lazy"\n style="border: 0"\n></iframe>`;
|
|
71
|
+
}
|
|
72
|
+
if (kind === "html") {
|
|
73
|
+
const scripts = [`<script type="module" src="${cdn}/element/+esm"></script>`, ...(shaded ? [`<script type="module" src="${cdn}/${entry}/+esm"></script>`] : [])];
|
|
74
|
+
return `${scripts.join("\n")}\n\n<wakusei-body ${tagAttrs(options)}></wakusei-body>`;
|
|
75
|
+
}
|
|
76
|
+
const imports = [`import "${PACKAGE}/element";`, ...(shaded ? [`import "${PACKAGE}/${entry}";`] : [])];
|
|
77
|
+
if (kind === "module") {
|
|
78
|
+
const sets = attributesOf(options).map(([k, v]) => `planet.setAttribute(${JSON.stringify(k)}, ${JSON.stringify(v)});`);
|
|
79
|
+
return `${imports.join("\n")}\n\nconst planet = document.createElement("wakusei-body");\n${sets.join("\n")}\ndocument.querySelector("#planet").append(planet);`;
|
|
80
|
+
}
|
|
81
|
+
const dynamic = [`void import("${PACKAGE}/element");`, ...(shaded ? [`void import("${PACKAGE}/${entry}");`] : [])];
|
|
82
|
+
if (kind === "react") {
|
|
83
|
+
const props = attributesOf(options).map(([k, v]) => (v === "" ? k : `${k}=${quote(v)}`)).join(" ");
|
|
84
|
+
return `import { useEffect } from "react";\n\nexport function Planet() {\n useEffect(() => {\n // The element needs a browser, so it is imported in an effect, never at the top of the file.\n${dynamic.map((l) => ` ${l}`).join("\n")}\n }, []);\n return <wakusei-body ${props} />;\n}`;
|
|
85
|
+
}
|
|
86
|
+
if (kind === "vue") {
|
|
87
|
+
return `<script setup lang="ts">\nimport { onMounted } from "vue";\n\nonMounted(() => {\n${dynamic.map((l) => ` ${l}`).join("\n")}\n});\n</script>\n\n<template>\n <wakusei-body ${tagAttrs(options)}></wakusei-body>\n</template>`;
|
|
88
|
+
}
|
|
89
|
+
if (kind === "angular") {
|
|
90
|
+
return `import { Component, CUSTOM_ELEMENTS_SCHEMA, OnInit } from "@angular/core";\n\n@Component({\n selector: "app-planet",\n standalone: true,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n template: \`<wakusei-body ${tagAttrs(options)}></wakusei-body>\`,\n})\nexport class PlanetComponent implements OnInit {\n ngOnInit(): void {\n // The element needs a browser: ngOnInit also runs when a server renders.\n if (typeof window !== "undefined") {\n${dynamic.map((l) => ` ${l}`).join("\n")}\n }\n }\n}`;
|
|
91
|
+
}
|
|
92
|
+
return `<script lang="ts">\n import { onMount } from "svelte";\n\n onMount(() => {\n${dynamic.map((l) => ` ${l}`).join("\n")}\n });\n</script>\n\n<wakusei-body ${tagAttrs(options)}></wakusei-body>`;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* The credits that travel with a picture of a body: the line and shaded looks are drawn from numbers, the painted look uses public-domain pictures.
|
|
96
|
+
*
|
|
97
|
+
* @param options - The choices, so only what is used is named.
|
|
98
|
+
* @returns A short line of credit to put near the picture.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```ts
|
|
102
|
+
* import { embedCredit } from "@johnmorrisdotca/wakusei-planets";
|
|
103
|
+
*
|
|
104
|
+
* console.log(embedCredit({ body: "mars", look: "painted" }));
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
export function embedCredit(options) {
|
|
108
|
+
const base = "Wakusei Planets by John Morris (MIT). Sizes, tilt and rotation: IAU and NASA fact sheets.";
|
|
109
|
+
const painted = (options.look ?? "realistic") === "painted" ? " Surface pictures: NASA, USGS and JPL imagery in the public domain (details in the package's NOTICE.md)." : "";
|
|
110
|
+
const earth = options.body === "earth" ? " Earth: NASA Earth Observatory, Blue Marble." : "";
|
|
111
|
+
return `${base}${painted}${earth}`;
|
|
112
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,3 +3,4 @@ export { apparent, moonGeocentric, heliocentric, orbitPath, system, type Apparen
|
|
|
3
3
|
export { drawnTilt, portrait, type PortraitOptions } from "./pose.ts";
|
|
4
4
|
export { lineSvg, mix, type LineOptions } from "./line.ts";
|
|
5
5
|
export { ringStrip, type RingStrip } from "./scene/rings.ts";
|
|
6
|
+
export { embedCode, embedCredit, EMBED_KINDS, type EmbedKind, type EmbedOptions, type EmbedSettings } from "./embed.ts";
|
package/dist/index.js
CHANGED
|
@@ -3,3 +3,4 @@ export { apparent, moonGeocentric, heliocentric, orbitPath, system } from "./eph
|
|
|
3
3
|
export { drawnTilt, portrait } from "./pose.js";
|
|
4
4
|
export { lineSvg, mix } from "./line.js";
|
|
5
5
|
export { ringStrip } from "./scene/rings.js";
|
|
6
|
+
export { embedCode, embedCredit, EMBED_KINDS } from "./embed.js";
|
package/dist/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "0.
|
|
1
|
+
export declare const VERSION = "0.4.0";
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = "0.
|
|
1
|
+
export const VERSION = "0.4.0";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@johnmorrisdotca/wakusei-planets",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Wakusei Planets 惑星 — The Sun, planets and moons for the web: each as a clean line drawing, a shaded realistic drawing or a painted surface map, with real sizes, axial tilt and rotation as data, and positions of the moons for any date and time. SVG for the lines, three.js (optional) for the rest.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"planets",
|
|
@@ -217,11 +217,11 @@
|
|
|
217
217
|
},
|
|
218
218
|
"packageManager": "pnpm@10.28.0",
|
|
219
219
|
"dependencies": {
|
|
220
|
-
"@johnmorrisdotca/kazoku-ui": "^0.
|
|
220
|
+
"@johnmorrisdotca/kazoku-ui": "^0.11.0"
|
|
221
221
|
},
|
|
222
222
|
"peerDependencies": {
|
|
223
|
-
"
|
|
224
|
-
"
|
|
223
|
+
"@johnmorrisdotca/chikyu-earth": ">=0.10.0",
|
|
224
|
+
"three": ">=0.160.0"
|
|
225
225
|
},
|
|
226
226
|
"peerDependenciesMeta": {
|
|
227
227
|
"three": {
|