@zendir/ui 0.2.21 → 0.3.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 +183 -1
- package/README.md +70 -28
- package/dist/index.d.ts +1 -1
- package/dist/index.js +51 -42
- package/dist/index.js.map +1 -1
- package/dist/react/3d/CesiumCaptureSource.d.ts +1 -1
- package/dist/react/3d/CesiumCaptureSource.js +1 -1
- package/dist/react/3d/CesiumCaptureSource.js.map +1 -1
- package/dist/react/3d/ZenSpace3D.js +1253 -0
- package/dist/react/3d/ZenSpace3D.js.map +1 -0
- package/dist/react/3d/ZenSpace3DCesium.js +579 -0
- package/dist/react/3d/ZenSpace3DCesium.js.map +1 -0
- package/dist/react/3d/ZenSpace3DTypes.d.ts +28 -1
- package/dist/react/3d/ZenSpace3DUtils.d.ts +17 -173
- package/dist/react/3d/ZenSpace3DUtils.js +20 -1
- package/dist/react/3d/ZenSpace3DUtils.js.map +1 -1
- package/dist/react/3d/index.d.ts +6 -12
- package/dist/react/3d/threeLoader.js +18 -0
- package/dist/react/3d/threeLoader.js.map +1 -0
- package/dist/react/astro/MonitoringIcon.js +1 -1
- package/dist/react/astro/MonitoringIcon.js.map +1 -1
- package/dist/react/astro/SimulationControls.js +2 -2
- package/dist/react/astro/SimulationControls.js.map +1 -1
- package/dist/react/astro/UnifiedTimeline.js +4 -4
- package/dist/react/astro/UnifiedTimeline.js.map +1 -1
- package/dist/react/charts/GroundTrackMap.d.ts +2 -15
- package/dist/react/charts/GroundTrackMap.js +1 -1
- package/dist/react/charts/GroundTrackMap.js.map +1 -1
- package/dist/react/charts/unified/AstroChart.js +34 -13
- package/dist/react/charts/unified/AstroChart.js.map +1 -1
- package/dist/react/chatgpt/AppCard.d.ts +0 -4
- package/dist/react/chatgpt/index.d.ts +0 -19
- package/dist/react/context/SpatialSelectionContext.d.ts +40 -0
- package/dist/react/context/SpatialSelectionContext.js +10 -0
- package/dist/react/context/SpatialSelectionContext.js.map +1 -0
- package/dist/react/context/index.d.ts +2 -0
- package/dist/react/core/{DataTable.d.ts → data/DataTable.d.ts} +1 -1
- package/dist/react/core/{DataTable.js → data/DataTable.js} +4 -4
- package/dist/react/core/data/DataTable.js.map +1 -0
- package/dist/react/core/{DataValue.d.ts → data/DataValue.d.ts} +2 -2
- package/dist/react/core/{DataValue.js → data/DataValue.js} +2 -2
- package/dist/react/core/data/DataValue.js.map +1 -0
- package/dist/react/core/{propertyConfig.d.ts → data/propertyConfig.d.ts} +2 -2
- package/dist/react/core/data/propertyConfig.js.map +1 -0
- package/dist/react/core/{AstroIcon.js → display/AstroIcon.js} +1 -1
- package/dist/react/core/display/AstroIcon.js.map +1 -0
- package/dist/react/core/{Badge.d.ts → display/Badge.d.ts} +1 -1
- package/dist/react/core/{Badge.js → display/Badge.js} +2 -2
- package/dist/react/core/display/Badge.js.map +1 -0
- package/dist/react/core/{CardHeader.d.ts → display/CardHeader.d.ts} +1 -1
- package/dist/react/core/{CardHeader.js → display/CardHeader.js} +2 -2
- package/dist/react/core/display/CardHeader.js.map +1 -0
- package/dist/react/core/{Container.d.ts → display/Container.d.ts} +1 -1
- package/dist/react/core/{Container.js → display/Container.js} +3 -3
- package/dist/react/core/display/Container.js.map +1 -0
- package/dist/react/core/{CopyButton.js → display/CopyButton.js} +1 -1
- package/dist/react/core/display/CopyButton.js.map +1 -0
- package/dist/react/core/{GlassCard.d.ts → display/GlassCard.d.ts} +1 -1
- package/dist/react/core/{GlassCard.js → display/GlassCard.js} +2 -2
- package/dist/react/core/display/GlassCard.js.map +1 -0
- package/dist/react/core/{HeaderIconWithStatus.d.ts → display/HeaderIconWithStatus.d.ts} +1 -1
- package/dist/react/core/{HeaderIconWithStatus.js → display/HeaderIconWithStatus.js} +1 -1
- package/dist/react/core/display/HeaderIconWithStatus.js.map +1 -0
- package/dist/react/core/{Icon.d.ts → display/Icon.d.ts} +1 -1
- package/dist/react/core/{Icon.js → display/Icon.js} +1 -1
- package/dist/react/core/display/Icon.js.map +1 -0
- package/dist/react/core/{Typography.d.ts → display/Typography.d.ts} +13 -4
- package/dist/react/core/{Typography.js → display/Typography.js} +1 -1
- package/dist/react/core/display/Typography.js.map +1 -0
- package/dist/react/core/{ConfirmDialog.js → feedback/ConfirmDialog.js} +1 -1
- package/dist/react/core/feedback/ConfirmDialog.js.map +1 -0
- package/dist/react/core/{Dialog.js → feedback/Dialog.js} +2 -2
- package/dist/react/core/feedback/Dialog.js.map +1 -0
- package/dist/react/core/{Toast.js → feedback/Toast.js} +3 -3
- package/dist/react/core/feedback/Toast.js.map +1 -0
- package/dist/react/core/index.d.ts +85 -85
- package/dist/react/core/{Button.js → inputs/Button.js} +2 -2
- package/dist/react/core/inputs/Button.js.map +1 -0
- package/dist/react/core/{Checkbox.js → inputs/Checkbox.js} +2 -2
- package/dist/react/core/inputs/Checkbox.js.map +1 -0
- package/dist/react/core/{Input.d.ts → inputs/Input.d.ts} +1 -1
- package/dist/react/core/{Input.js → inputs/Input.js} +3 -3
- package/dist/react/core/inputs/Input.js.map +1 -0
- package/dist/react/core/{LimitsBar.js → inputs/LimitsBar.js} +1 -1
- package/dist/react/core/inputs/LimitsBar.js.map +1 -0
- package/dist/react/core/{NumberInput.d.ts → inputs/NumberInput.d.ts} +2 -2
- package/dist/react/core/{NumberInput.js → inputs/NumberInput.js} +3 -3
- package/dist/react/core/inputs/NumberInput.js.map +1 -0
- package/dist/react/core/{PinInput.js → inputs/PinInput.js} +2 -2
- package/dist/react/core/inputs/PinInput.js.map +1 -0
- package/dist/react/core/{Select.js → inputs/Select.js} +3 -3
- package/dist/react/core/inputs/Select.js.map +1 -0
- package/dist/react/core/{Toggle.js → inputs/Toggle.js} +2 -2
- package/dist/react/core/inputs/Toggle.js.map +1 -0
- package/dist/react/core/{AppBar.d.ts → navigation/AppBar.d.ts} +1 -1
- package/dist/react/core/{AppBar.js → navigation/AppBar.js} +7 -7
- package/dist/react/core/navigation/AppBar.js.map +1 -0
- package/dist/react/core/{Pagination.js → navigation/Pagination.js} +2 -2
- package/dist/react/core/navigation/Pagination.js.map +1 -0
- package/dist/react/core/{SideNav.d.ts → navigation/SideNav.d.ts} +1 -1
- package/dist/react/core/{SideNav.js → navigation/SideNav.js} +3 -3
- package/dist/react/core/navigation/SideNav.js.map +1 -0
- package/dist/react/core/{Tabs.js → navigation/Tabs.js} +2 -2
- package/dist/react/core/navigation/Tabs.js.map +1 -0
- package/dist/react/core/{Popover.js → overlays/Popover.js} +1 -1
- package/dist/react/core/overlays/Popover.js.map +1 -0
- package/dist/react/core/{SidePanel.js → overlays/SidePanel.js} +3 -3
- package/dist/react/core/overlays/SidePanel.js.map +1 -0
- package/dist/react/core/{Tooltip.js → overlays/Tooltip.js} +2 -2
- package/dist/react/core/overlays/Tooltip.js.map +1 -0
- package/dist/react/core/{ActivityPlanner.js → widgets/ActivityPlanner.js} +1 -1
- package/dist/react/core/widgets/ActivityPlanner.js.map +1 -0
- package/dist/react/core/{Capture.js → widgets/Capture.js} +3 -3
- package/dist/react/core/widgets/Capture.js.map +1 -0
- package/dist/react/core/{ChatPanel.d.ts → widgets/ChatPanel.d.ts} +1 -1
- package/dist/react/core/{ChatPanel.js → widgets/ChatPanel.js} +2 -2
- package/dist/react/core/widgets/ChatPanel.js.map +1 -0
- package/dist/react/core/{ColorPickerPanel.d.ts → widgets/ColorPickerPanel.d.ts} +1 -1
- package/dist/react/core/{ColorPickerPanel.js → widgets/ColorPickerPanel.js} +3 -3
- package/dist/react/core/widgets/ColorPickerPanel.js.map +1 -0
- package/dist/react/core/{CommandBuilder.js → widgets/CommandBuilder.js} +1 -1
- package/dist/react/core/widgets/CommandBuilder.js.map +1 -0
- package/dist/react/core/{ConnectionForm.d.ts → widgets/ConnectionForm.d.ts} +1 -1
- package/dist/react/core/{ConnectionForm.js → widgets/ConnectionForm.js} +2 -2
- package/dist/react/core/widgets/ConnectionForm.js.map +1 -0
- package/dist/react/core/{FileExplorer.js → widgets/FileExplorer.js} +2 -2
- package/dist/react/core/widgets/FileExplorer.js.map +1 -0
- package/dist/react/core/{HexViewer.js → widgets/HexViewer.js} +1 -1
- package/dist/react/core/widgets/HexViewer.js.map +1 -0
- package/dist/react/core/{ImageGallery.d.ts → widgets/ImageGallery.d.ts} +1 -1
- package/dist/react/core/{ImageGallery.js → widgets/ImageGallery.js} +3 -3
- package/dist/react/core/widgets/ImageGallery.js.map +1 -0
- package/dist/react/core/{LogViewer.d.ts → widgets/LogViewer.d.ts} +13 -3
- package/dist/react/core/{LogViewer.js → widgets/LogViewer.js} +28 -8
- package/dist/react/core/widgets/LogViewer.js.map +1 -0
- package/dist/react/core/{MessageStream.d.ts → widgets/MessageStream.d.ts} +2 -2
- package/dist/react/core/{MessageStream.js → widgets/MessageStream.js} +4 -4
- package/dist/react/core/widgets/MessageStream.js.map +1 -0
- package/dist/react/core/{MissionCalendar.js → widgets/MissionCalendar.js} +2 -2
- package/dist/react/core/widgets/MissionCalendar.js.map +1 -0
- package/dist/react/core/{PacketViewer.js → widgets/PacketViewer.js} +1 -1
- package/dist/react/core/widgets/PacketViewer.js.map +1 -0
- package/dist/react/core/widgets/capture-placeholder.png.js.map +1 -0
- package/dist/react/hooks/index.d.ts +9 -11
- package/dist/react/hooks/useAccessWindows.d.ts +15 -19
- package/dist/react/hooks/useGroundTrackHistory.d.ts +34 -0
- package/dist/react/hooks/useSimulationScene.d.ts +141 -0
- package/dist/react/hooks/useSimulationScene.js +401 -0
- package/dist/react/hooks/useSimulationScene.js.map +1 -0
- package/dist/react/hooks/useZendirSession.d.ts +44 -69
- package/dist/react/index.d.ts +7 -3
- package/dist/react/panels/LayerControlPanel.d.ts +54 -0
- package/dist/react/panels/LayerControlPanel.js +184 -0
- package/dist/react/panels/LayerControlPanel.js.map +1 -0
- package/dist/react/panels/ObjectInventoryPanel.d.ts +57 -0
- package/dist/react/panels/ObjectInventoryPanel.js +261 -0
- package/dist/react/panels/ObjectInventoryPanel.js.map +1 -0
- package/dist/react/panels/index.d.ts +15 -0
- package/dist/react/theme/ThemeProvider.d.ts +2 -0
- package/dist/react/theme/ThemeProvider.js +50 -72
- package/dist/react/theme/ThemeProvider.js.map +1 -1
- package/dist/react/types.d.ts +32 -3
- package/dist/react/types.js.map +1 -1
- package/dist/react.js +51 -42
- package/dist/react.js.map +1 -1
- package/dist/shaders/atmosphere.frag.js +5 -0
- package/dist/shaders/atmosphere.frag.js.map +1 -0
- package/dist/shaders/atmosphere.vert.js +5 -0
- package/dist/shaders/atmosphere.vert.js.map +1 -0
- package/dist/shaders/stars.frag.js +5 -0
- package/dist/shaders/stars.frag.js.map +1 -0
- package/dist/shaders/stars.vert.js +5 -0
- package/dist/shaders/stars.vert.js.map +1 -0
- package/dist/style.css +6 -4
- package/dist/tokens/css-vars.d.ts +91 -0
- package/dist/tokens/css-vars.js +228 -0
- package/dist/tokens/css-vars.js.map +1 -0
- package/dist/tokens/index.d.ts +71 -18
- package/dist/tokens/index.js +206 -97
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/tokens.css +50 -50
- package/package.json +26 -22
- package/sdk-stub.js +10 -5
- package/dist/react/3d/EarthViewer.d.ts +0 -46
- package/dist/react/3d/SolarSystemViewer.d.ts +0 -43
- package/dist/react/chatgpt/ChatGPTCard.d.ts +0 -6
- package/dist/react/core/ActivityPlanner.js.map +0 -1
- package/dist/react/core/AppBar.js.map +0 -1
- package/dist/react/core/AstroIcon.js.map +0 -1
- package/dist/react/core/Badge.js.map +0 -1
- package/dist/react/core/Button.js.map +0 -1
- package/dist/react/core/Capture.js.map +0 -1
- package/dist/react/core/CardHeader.js.map +0 -1
- package/dist/react/core/ChatPanel.js.map +0 -1
- package/dist/react/core/Checkbox.js.map +0 -1
- package/dist/react/core/ColorPickerPanel.js.map +0 -1
- package/dist/react/core/CommandBuilder.js.map +0 -1
- package/dist/react/core/ConfirmDialog.js.map +0 -1
- package/dist/react/core/ConnectionForm.js.map +0 -1
- package/dist/react/core/Container.js.map +0 -1
- package/dist/react/core/CopyButton.js.map +0 -1
- package/dist/react/core/DataTable.js.map +0 -1
- package/dist/react/core/DataValue.js.map +0 -1
- package/dist/react/core/Dialog.js.map +0 -1
- package/dist/react/core/FileExplorer.js.map +0 -1
- package/dist/react/core/GlassCard.js.map +0 -1
- package/dist/react/core/HeaderIconWithStatus.js.map +0 -1
- package/dist/react/core/HexViewer.js.map +0 -1
- package/dist/react/core/Icon.js.map +0 -1
- package/dist/react/core/ImageGallery.js.map +0 -1
- package/dist/react/core/Input.js.map +0 -1
- package/dist/react/core/LimitsBar.js.map +0 -1
- package/dist/react/core/LogViewer.js.map +0 -1
- package/dist/react/core/MessageStream.js.map +0 -1
- package/dist/react/core/MissionCalendar.js.map +0 -1
- package/dist/react/core/NumberInput.js.map +0 -1
- package/dist/react/core/PacketViewer.js.map +0 -1
- package/dist/react/core/Pagination.js.map +0 -1
- package/dist/react/core/PinInput.js.map +0 -1
- package/dist/react/core/Popover.js.map +0 -1
- package/dist/react/core/Select.js.map +0 -1
- package/dist/react/core/SideNav.js.map +0 -1
- package/dist/react/core/SidePanel.js.map +0 -1
- package/dist/react/core/Tabs.js.map +0 -1
- package/dist/react/core/Toast.js.map +0 -1
- package/dist/react/core/Toggle.js.map +0 -1
- package/dist/react/core/Tooltip.js.map +0 -1
- package/dist/react/core/Typography.js.map +0 -1
- package/dist/react/core/capture-placeholder.png.js.map +0 -1
- package/dist/react/core/propertyConfig.js.map +0 -1
- package/dist/react/hooks/useSimulationTime.d.ts +0 -61
- package/dist/react/hooks/useSpacecraftPosition.d.ts +0 -50
- package/dist/react/hooks/useTelemetry.d.ts +0 -55
- package/dist/types.d.ts +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- /package/dist/react/core/{propertyConfig.js → data/propertyConfig.js} +0 -0
- /package/dist/react/core/{AstroIcon.d.ts → display/AstroIcon.d.ts} +0 -0
- /package/dist/react/core/{CopyButton.d.ts → display/CopyButton.d.ts} +0 -0
- /package/dist/react/core/{ConfirmDialog.d.ts → feedback/ConfirmDialog.d.ts} +0 -0
- /package/dist/react/core/{Dialog.d.ts → feedback/Dialog.d.ts} +0 -0
- /package/dist/react/core/{Toast.d.ts → feedback/Toast.d.ts} +0 -0
- /package/dist/react/core/{Button.d.ts → inputs/Button.d.ts} +0 -0
- /package/dist/react/core/{Checkbox.d.ts → inputs/Checkbox.d.ts} +0 -0
- /package/dist/react/core/{LimitsBar.d.ts → inputs/LimitsBar.d.ts} +0 -0
- /package/dist/react/core/{PinInput.d.ts → inputs/PinInput.d.ts} +0 -0
- /package/dist/react/core/{Select.d.ts → inputs/Select.d.ts} +0 -0
- /package/dist/react/core/{Toggle.d.ts → inputs/Toggle.d.ts} +0 -0
- /package/dist/react/core/{Pagination.d.ts → navigation/Pagination.d.ts} +0 -0
- /package/dist/react/core/{Tabs.d.ts → navigation/Tabs.d.ts} +0 -0
- /package/dist/react/core/{Popover.d.ts → overlays/Popover.d.ts} +0 -0
- /package/dist/react/core/{SidePanel.d.ts → overlays/SidePanel.d.ts} +0 -0
- /package/dist/react/core/{Tooltip.d.ts → overlays/Tooltip.d.ts} +0 -0
- /package/dist/react/core/{ActivityPlanner.d.ts → widgets/ActivityPlanner.d.ts} +0 -0
- /package/dist/react/core/{Capture.d.ts → widgets/Capture.d.ts} +0 -0
- /package/dist/react/core/{CommandBuilder.d.ts → widgets/CommandBuilder.d.ts} +0 -0
- /package/dist/react/core/{FileExplorer.d.ts → widgets/FileExplorer.d.ts} +0 -0
- /package/dist/react/core/{HexViewer.d.ts → widgets/HexViewer.d.ts} +0 -0
- /package/dist/react/core/{MissionCalendar.d.ts → widgets/MissionCalendar.d.ts} +0 -0
- /package/dist/react/core/{PacketViewer.d.ts → widgets/PacketViewer.d.ts} +0 -0
- /package/dist/react/core/{capture-placeholder.png.js → widgets/capture-placeholder.png.js} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,187 @@
|
|
|
1
1
|
# @zendir/ui
|
|
2
2
|
|
|
3
|
+
## 0.3.0
|
|
4
|
+
|
|
5
|
+
**Upgrade from npm:** The latest public release on the registry is
|
|
6
|
+
[0.2.21](https://www.npmjs.com/package/@zendir/ui). This **0.3.0** release
|
|
7
|
+
is the next version on npm and combines the hook / 3D integration work
|
|
8
|
+
with the token / `react/core/` architecture pass below.
|
|
9
|
+
|
|
10
|
+
This release reframes the React hook layer around a single, well-defined
|
|
11
|
+
bridge from `zendir-ts` to the live `<ZenSpace3D />` surface, and
|
|
12
|
+
replaces three legacy SDK-coupled hooks with smaller, REST-aligned
|
|
13
|
+
primitives. The Cesium backend gains proper sub-satellite ground-track
|
|
14
|
+
alignment, and the `ZenSpace3DUtils` helper module is slimmed to only
|
|
15
|
+
what the live backends actually consume. It also eliminates token drift
|
|
16
|
+
hazards by consolidating literals, auto-generating `tokens.css`, and
|
|
17
|
+
reorganising `react/core/` into thematic subfolders.
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
- **`useSimulationScene`** — primary integration hook
|
|
22
|
+
(`@zendir/ui/react/hooks` and `@zendir/ui/react/3d`). Bridges a
|
|
23
|
+
`zendir-ts` `ZendirClient` to `ZenSpace3D` props: fetches
|
|
24
|
+
`GetSimulationStructure` once, buckets spacecraft / ground stations /
|
|
25
|
+
planets, and polls `Position_BN_N` / `Velocity_BN_N` on a configurable
|
|
26
|
+
interval (default 2 s). Exports `SimulationSceneClient`,
|
|
27
|
+
`SimulationSceneObject`, `StructureDiag`, `PositionTickDiag`, and
|
|
28
|
+
`UseSimulationSceneResult` for typed app integration.
|
|
29
|
+
- **Operator 3D surface** — the hook is intended to drive a full-screen
|
|
30
|
+
`ZenSpace3D` in host apps (e.g. `space-range-operator`
|
|
31
|
+
`/admin/3d/:containerId/:simulationId`). Feed
|
|
32
|
+
`useSimulationScene` with `containerId`, `simulationId`, and the
|
|
33
|
+
session `client`.
|
|
34
|
+
- **`ZenSpace3DProps.referenceTime`** — new `Date` prop used by the
|
|
35
|
+
Cesium backend to convert ECI/J2000 positions into the Earth-Fixed
|
|
36
|
+
(ECEF) frame Cesium renders. Passing the simulation clock (sim epoch
|
|
37
|
+
+ sim seconds) lines the sub-satellite point on Earth up with the
|
|
38
|
+
true ground track; omitting it falls back to wall-clock time and the
|
|
39
|
+
ground track will drift.
|
|
40
|
+
- **Top-level re-exports** — `ZenSpace3D`, `useSimulationScene`, and
|
|
41
|
+
their types are now available from the main `@zendir/ui/react`
|
|
42
|
+
entry in addition to the `react/3d` and `react/hooks` subpaths.
|
|
43
|
+
|
|
44
|
+
### Breaking Changes
|
|
45
|
+
|
|
46
|
+
- **Removed legacy SDK hooks**: `useTelemetry`, `useSpacecraftPosition`,
|
|
47
|
+
and `useSimulationTime` no longer exist. Their
|
|
48
|
+
responsibilities are covered by `useSimulationScene` (live position /
|
|
49
|
+
velocity bucketed onto scene objects) and by the `referenceDate` /
|
|
50
|
+
`positionTickDiag` fields on its result.
|
|
51
|
+
- **`useAccessWindows` is now pure client-side math**. The Zendir REST
|
|
52
|
+
API does not expose a server-side access-prediction endpoint, so the
|
|
53
|
+
hook no longer attempts to load `zendir-ts` or fetch passes. It now
|
|
54
|
+
accepts a `windows: AccessPass[]` input (compute these with your own
|
|
55
|
+
propagator / SGP4 / demo data) and returns `TimerConfig` objects for
|
|
56
|
+
`<MissionClock />`. Removed options: `spacecraftId`, `groundStationId`,
|
|
57
|
+
`passCount`. Removed result fields: `isConnected`, `isSdkAvailable`,
|
|
58
|
+
`error`. The `manualWindows` option is kept as a deprecated alias
|
|
59
|
+
for `windows` for one minor.
|
|
60
|
+
- **Renames in `useAccessWindows`**: the `AccessWindow` type is now
|
|
61
|
+
`AccessPass`, and `createDemoAccessWindows` is now
|
|
62
|
+
`createDemoAccessPasses`. Update imports accordingly.
|
|
63
|
+
- **`ZenSpace3DUtils` pruned to the live surface**. Unused helpers were
|
|
64
|
+
removed: `cartesianToLatLonAlt`, `cartesianToSpherical`,
|
|
65
|
+
`sphericalToCartesian`, `eciToEcef`, `calculateGMST`,
|
|
66
|
+
`dateToJulianDate`, `parseTLE`, `propagateSGP4Simple`,
|
|
67
|
+
`propagateSatellite`, `generateOrbitPath`, `isVisible`,
|
|
68
|
+
`calculateVisibilityConeGeometry`, `calculateFootprint`,
|
|
69
|
+
`generateHexGrid`, `updateHexGridCoverage`, all vector-math helpers
|
|
70
|
+
(`dot`, `cross`, `magnitude`, `normalize`, `subtract`, `add`,
|
|
71
|
+
`scale`, `distance`, `lerp`), `easeInOutCubic`, `smoothstep`,
|
|
72
|
+
`lerpColor`, `hexToRgb`, `getGradientColor`, `formatDuration`,
|
|
73
|
+
`formatDistance`, `formatVelocity`, `formatDateTime`, and the
|
|
74
|
+
constants `EARTH_MU`, `AU_KM`, `J2000_EPOCH`. Retained:
|
|
75
|
+
`EARTH_RADIUS_KM`, `DEG_TO_RAD`, `RAD_TO_DEG`, `SCENE_EARTH_RADIUS`,
|
|
76
|
+
`KM_TO_SCENE`, `latLonAltToCartesian`, `easeOutCubic`. For orbital
|
|
77
|
+
mechanics, use a dedicated library (`satellite.js` for SGP4) or
|
|
78
|
+
Cesium's built-in transforms; the Three.js path already draws
|
|
79
|
+
coverage from the explicit `SatelliteCoverage` props.
|
|
80
|
+
|
|
81
|
+
### Improvements
|
|
82
|
+
|
|
83
|
+
- **`useZendirSession`** — reworked container + simulation lifecycle
|
|
84
|
+
(provision container, poll until `RUNNING`, then create a simulation),
|
|
85
|
+
with a new `SessionInfo` export and `preloadZendirSdk` /
|
|
86
|
+
`isZendirSdkAvailable` utilities.
|
|
87
|
+
- **`ZenSpace3D` Cesium backend** — substantial rework
|
|
88
|
+
(`ZenSpace3DCesium.tsx`) so positions streamed in J2000/ECI are
|
|
89
|
+
correctly rotated into ECEF each frame using the simulation clock,
|
|
90
|
+
keeping the orbit and its ground track visually consistent.
|
|
91
|
+
- **`ZenSpace3DTypes` docs** — updated SDK-compatibility example to the
|
|
92
|
+
new `useSimulationScene` pattern and clarified that coverage geometry
|
|
93
|
+
is either explicit (`footprintPolygon` / `halfAngle`) or computed
|
|
94
|
+
locally by the viewer.
|
|
95
|
+
- **`types.ts`** — clarified that UI-domain types (`Quaternion`,
|
|
96
|
+
`Vector3D`, `PointingMode`, etc.) ship with `@zendir/ui` and are not
|
|
97
|
+
provided by `zendir-ts` (which is REST-only and intentionally
|
|
98
|
+
minimal). Helpers like `estimateOrbitalPeriod` /
|
|
99
|
+
`estimateOrbitalVelocity` are documented as client-side approximations.
|
|
100
|
+
- **Docs refresh** — `SDKIntegration.mdx`, `ComponentsOverview.mdx`,
|
|
101
|
+
and `Introduction.mdx` updated to reflect the `zendir-ts` rename
|
|
102
|
+
(previously `@zendir/sdk`) and the new hook surface.
|
|
103
|
+
|
|
104
|
+
### Migration
|
|
105
|
+
|
|
106
|
+
```tsx
|
|
107
|
+
// Before (0.2.x)
|
|
108
|
+
import { useTelemetry, useSpacecraftPosition, useSimulationTime } from '@zendir/ui/react/hooks';
|
|
109
|
+
|
|
110
|
+
// After (0.3.0)
|
|
111
|
+
import { useSimulationScene } from '@zendir/ui/react/hooks';
|
|
112
|
+
|
|
113
|
+
const scene = useSimulationScene({ client, containerId, simulationId });
|
|
114
|
+
// scene.satellites, scene.groundStations, scene.referenceDate, scene.positionTickDiag
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
```tsx
|
|
118
|
+
// Before (0.2.x)
|
|
119
|
+
import { useAccessWindows, createDemoAccessWindows, AccessWindow } from '@zendir/ui/react/hooks';
|
|
120
|
+
|
|
121
|
+
const { aosTimer, losTimer } = useAccessWindows({
|
|
122
|
+
spacecraftId: 'my-sat',
|
|
123
|
+
groundStationId: 'gs-1',
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
// After (0.3.0)
|
|
127
|
+
import { useAccessWindows, createDemoAccessPasses, AccessPass } from '@zendir/ui/react/hooks';
|
|
128
|
+
|
|
129
|
+
const passes: AccessPass[] = computePasses(satellite, groundStation); // your propagator
|
|
130
|
+
const { aosTimer, losTimer } = useAccessWindows({ windows: passes });
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Notes
|
|
134
|
+
|
|
135
|
+
- Consumer apps that use a published tarball should depend on
|
|
136
|
+
`"@zendir/ui": "^0.3.0"`. Monorepo/local development can keep
|
|
137
|
+
`"@zendir/ui": "file:../zendir-ui"`.
|
|
138
|
+
- After `npm publish` in this package, run `npm install` in consuming
|
|
139
|
+
apps to pick up 0.3.0 (no automatic push; release is manual).
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
### Architecture — `core/` reorganised
|
|
143
|
+
|
|
144
|
+
The 42-file flat `react/core/` folder is split into thematic subfolders:
|
|
145
|
+
`inputs/`, `feedback/`, `overlays/`, `navigation/`, `data/`, `display/`,
|
|
146
|
+
`widgets/` (alongside the existing `layout/`).
|
|
147
|
+
|
|
148
|
+
- The `core/index.ts` barrel still exports everything by name. Consumers
|
|
149
|
+
using `import { Button } from '@zendir/ui'` or `from '@zendir/ui/react/core'`
|
|
150
|
+
are unaffected.
|
|
151
|
+
- Deep imports like `from '@zendir/ui/react/core/Button'` now resolve via
|
|
152
|
+
the new path; if you have these, switch to the barrel for stability.
|
|
153
|
+
|
|
154
|
+
### Theme + a11y
|
|
155
|
+
|
|
156
|
+
- **JS-side `tokens.animation.*` honours `prefers-reduced-motion`.**
|
|
157
|
+
The global CSS @media rule already stripped CSS animations; this
|
|
158
|
+
extends the same behaviour to the JS-side tokens surface so animation
|
|
159
|
+
libraries (Framer Motion etc.) reading `tokens.animation.fast` get
|
|
160
|
+
collapsed values too.
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
### Removed
|
|
164
|
+
|
|
165
|
+
- Legacy `EarthViewer` and `SolarSystemViewer` 3D components (~1.6k LOC
|
|
166
|
+
of dead code; superseded by `ZenSpace3D`).
|
|
167
|
+
- Deprecated `ChatGPTCard` alias (use `AppCard`) and `useIntrinsicHeight`
|
|
168
|
+
no-op hook (use `useMaxHeight`).
|
|
169
|
+
- `scripts/build-tokens.js` (had its own duplicate token literal —
|
|
170
|
+
replaced by `build-tokens.ts` that imports from `tokens/index.ts`).
|
|
171
|
+
|
|
172
|
+
### Internal
|
|
173
|
+
|
|
174
|
+
- `src/react/core/` reorganised — see "Architecture" above.
|
|
175
|
+
- Operator and dashboard verified working with new structure.
|
|
176
|
+
- **Toolchain** — ESLint 9 flat config (`eslint.config.js`), `typescript-eslint` v8,
|
|
177
|
+
Vitest 2.1 + Vite 5.4; `npm audit fix -w @zendir/ui --legacy-peer-deps` at monorepo
|
|
178
|
+
root to clear hoisted dev CVEs without `--force` onto Vite 8. Storybook 8
|
|
179
|
+
`eslint-plugin-storybook` rules removed until Storybook 10+ (plugin v0.8 uses
|
|
180
|
+
APIs dropped in ESLint 9).
|
|
181
|
+
- 284/284 tests pass; typecheck clean; build clean.
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
3
185
|
## 0.2.21
|
|
4
186
|
|
|
5
187
|
### Improvements
|
|
@@ -164,4 +346,4 @@ Initial public release.
|
|
|
164
346
|
- Layout primitives (Box, Flex, Grid, Stack, Container, SideNav, SidePanel)
|
|
165
347
|
- Accessibility-first (WCAG 2.2 AA oriented)
|
|
166
348
|
- Design tokens as JS objects and CSS custom properties
|
|
167
|
-
- Optional
|
|
349
|
+
- Optional `zendir-ts` (Zendir TypeScript SDK) integration with graceful fallback
|
package/README.md
CHANGED
|
@@ -14,23 +14,22 @@
|
|
|
14
14
|
</p>
|
|
15
15
|
|
|
16
16
|
<p align="center">
|
|
17
|
-
<a href="#quick-start">Quick Start</a> · <a href="#components">Components</a> · <a href="#ai-integration">AI Integration</a> · <a href="#theme-system">Theming</a> · <a href="#accessibility">Accessibility</a> · <a href="https://storybook.zendir.io">Storybook</a> · <a href="CONTRIBUTING.md">Contributing</a> · <a href="
|
|
17
|
+
<a href="#quick-start">Quick Start</a> · <a href="#components">Components</a> · <a href="#ai-integration">AI Integration</a> · <a href="#theme-system">Theming</a> · <a href="#accessibility">Accessibility</a> · <a href="https://storybook.zendir.io">Storybook</a> · <a href="CONTRIBUTING.md">Contributing</a> · <a href="CODE_OF_CONDUCT.md">Code of Conduct</a>
|
|
18
18
|
</p>
|
|
19
19
|
|
|
20
20
|
---
|
|
21
21
|
|
|
22
22
|
## Overview
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
React components for satellite telemetry, orbit visualisation, mission control dashboards, and space simulations. Follows the [Astro UX Design System](https://www.astrouxds.com/) used by the U.S. Space Force.
|
|
25
25
|
|
|
26
|
-
**
|
|
26
|
+
- **Astro UX-aligned** — dual-coded status indicators, classification banners, mission clocks
|
|
27
|
+
- **TypeScript-first** — full type definitions
|
|
28
|
+
- **Accessible** — [WCAG 2.2 AA](https://www.w3.org/TR/WCAG22/) conformant, keyboard navigable, reduced-motion aware, EAA-aligned
|
|
29
|
+
- **Tree-shakeable** with optional peer dependencies
|
|
30
|
+
- Works standalone or with [`zendir-ts`](https://www.npmjs.com/package/zendir-ts) for live API integration
|
|
27
31
|
|
|
28
|
-
|
|
29
|
-
- **Astro UX compliant** — dual-coded status indicators, classification banners, and mission clocks
|
|
30
|
-
- **TypeScript-first** — full type safety with 200+ exported interfaces
|
|
31
|
-
- **Accessible** — [WCAG 2.2 AA](https://www.w3.org/TR/WCAG22/) conformant, keyboard navigable, reduced motion aware, and aligned with the [European Accessibility Act](https://ec.europa.eu/social/main.jsp?catId=1202)
|
|
32
|
-
- **Modular** — tree-shakeable, optional peer dependencies, zero runtime cost for unused features
|
|
33
|
-
- **Framework-ready** — works standalone or with `@zendir/sdk` for live API integration
|
|
32
|
+
The full component catalogue with live examples lives in [Storybook](https://storybook.zendir.io).
|
|
34
33
|
|
|
35
34
|
## Quick Start
|
|
36
35
|
|
|
@@ -41,12 +40,18 @@ npm install @zendir/ui
|
|
|
41
40
|
```
|
|
42
41
|
|
|
43
42
|
> The SDK is optional. All TypeScript types ship with the UI library.
|
|
44
|
-
> Install
|
|
43
|
+
> Install `zendir-ts` only if you need the API client.
|
|
45
44
|
>
|
|
46
|
-
>
|
|
45
|
+
> Recent versions of `@zendir/ui` hide the SDK specifier from static
|
|
46
|
+
> import-analysis, so no Vite alias is required — missing `zendir-ts` simply
|
|
47
|
+
> causes hooks like `useZendirSession` to report "SDK not installed" while the
|
|
48
|
+
> rest of the UI keeps working.
|
|
49
|
+
>
|
|
50
|
+
> **Older bundlers / strict resolvers:** if you hit "Failed to resolve import
|
|
51
|
+
> 'zendir-ts'", point the optional peer at the bundled stub:
|
|
47
52
|
> ```js
|
|
48
53
|
> // vite.config.js
|
|
49
|
-
> resolve: { alias: { '
|
|
54
|
+
> resolve: { alias: { 'zendir-ts': require.resolve('@zendir/ui/sdk-stub') } }
|
|
50
55
|
> ```
|
|
51
56
|
|
|
52
57
|
### Use
|
|
@@ -104,7 +109,7 @@ Foundational primitives that compose into any interface.
|
|
|
104
109
|
| `SidePanel` | Slide-out panel with configurable position |
|
|
105
110
|
| `DataTable` | Sortable, filterable data grid |
|
|
106
111
|
| `Menu` / `Popover` | Context menus and floating content |
|
|
107
|
-
| `ChatPanel` | AI chat interface with structured blocks, status system, and [
|
|
112
|
+
| `ChatPanel` | AI chat interface with structured blocks, status system, and [4 LLM integration strategies](#ai-integration) |
|
|
108
113
|
|
|
109
114
|
### Status & Monitoring
|
|
110
115
|
|
|
@@ -156,7 +161,7 @@ import { DataValue, DataValueGroup } from '@zendir/ui/react';
|
|
|
156
161
|
</DataValueGroup>
|
|
157
162
|
```
|
|
158
163
|
|
|
159
|
-
**Presets:** `battery` · `voltage` · `temperature` · `signalStrength` · `altitude` · `velocity` · `fuelLevel` · `cpuUsage` · `memoryUsage` ·
|
|
164
|
+
**Presets:** `battery` · `voltage` · `temperature` · `signalStrength` · `altitude` · `velocity` · `fuelLevel` · `cpuUsage` · `memoryUsage` · and 20+ more (see [Storybook](https://storybook.zendir.io) for the full list)
|
|
160
165
|
|
|
161
166
|
### Visualizations
|
|
162
167
|
|
|
@@ -187,11 +192,23 @@ import { PowerChart, AttitudeChart, GroundTrackMap } from '@zendir/ui/react';
|
|
|
187
192
|
|
|
188
193
|
### 3D Viewers
|
|
189
194
|
|
|
190
|
-
|
|
195
|
+
Three viewers covering the operations spectrum from full-Earth to full solar system, with optional WebGL2 (Three.js) and Cesium backends.
|
|
191
196
|
|
|
192
197
|
```tsx
|
|
193
|
-
import { EarthViewer, SolarSystemViewer } from '@zendir/ui/react';
|
|
198
|
+
import { ZenSpace3D, EarthViewer, SolarSystemViewer } from '@zendir/ui/react';
|
|
199
|
+
|
|
200
|
+
// Unified 3D space view — Three.js by default, optional Cesium backend for
|
|
201
|
+
// physically-accurate ECI/ECEF transforms and high-fidelity Earth imagery.
|
|
202
|
+
// Pair with `useSimulationScene` (see SDK Integration) to render a live
|
|
203
|
+
// simulation directly from a `zendir-ts` `ZendirClient`.
|
|
204
|
+
<ZenSpace3D
|
|
205
|
+
satellites={satellites}
|
|
206
|
+
groundStations={groundStations}
|
|
207
|
+
satelliteCoverages={coverages}
|
|
208
|
+
referenceTime={referenceDate}
|
|
209
|
+
/>
|
|
194
210
|
|
|
211
|
+
// Lightweight Three.js Earth view — good for small dashboards and demos.
|
|
195
212
|
<EarthViewer
|
|
196
213
|
spacecraft={[{ id: 'SAT-001', name: 'Explorer-1', latitude: 45.2, longitude: -122.5, altitude: 408 }]}
|
|
197
214
|
groundStations={[{ id: 'DSN-14', name: 'Goldstone', latitude: 35.4, longitude: -116.9 }]}
|
|
@@ -203,6 +220,8 @@ import { EarthViewer, SolarSystemViewer } from '@zendir/ui/react';
|
|
|
203
220
|
<SolarSystemViewer focusedPlanet="earth" autoOrbit showLabels />
|
|
204
221
|
```
|
|
205
222
|
|
|
223
|
+
Coverage geometry (footprint polygons, sensor cones, nadir lines) is rendered from explicit `SatelliteCoverage` records — see `ZenSpace3DTypes` for the full prop surface. Heavy orbital propagation (SGP4 / TLE) is intentionally **not** shipped in this package; bring your own propagator (e.g. [`satellite.js`](https://github.com/shashwatak/satellite-js)) and feed positions in via props, or use `useSimulationScene` to read live `Position_BN_N` from the engine.
|
|
224
|
+
|
|
206
225
|
### Astro UX Components
|
|
207
226
|
|
|
208
227
|
Mission operations components following [Astro UX Design System](https://www.astrouxds.com/) specifications.
|
|
@@ -271,25 +290,50 @@ import { CardAccentProvider, useCardAccent } from '@zendir/ui/react';
|
|
|
271
290
|
|
|
272
291
|
## SDK Integration (Optional)
|
|
273
292
|
|
|
274
|
-
For live API integration, add
|
|
293
|
+
For live API integration, add the Zendir TypeScript SDK (`zendir-ts`):
|
|
275
294
|
|
|
276
295
|
```bash
|
|
277
|
-
npm install
|
|
296
|
+
npm install zendir-ts
|
|
278
297
|
```
|
|
279
298
|
|
|
299
|
+
`useZendirSession` provisions the container + simulation lifecycle.
|
|
300
|
+
`useSimulationScene` is the canonical bridge — it polls `Position_BN_N`,
|
|
301
|
+
buckets the simulation structure, and feeds props straight into `<ZenSpace3D />`.
|
|
302
|
+
|
|
280
303
|
```tsx
|
|
281
|
-
import {
|
|
282
|
-
|
|
304
|
+
import { useZendirSession, useSimulationScene, ZenSpace3D } from '@zendir/ui/react';
|
|
305
|
+
|
|
306
|
+
function MissionControl() {
|
|
307
|
+
// Lifecycle: createContainer → waitForRunning → createSimulation
|
|
308
|
+
const { client, session, connect, disconnect, isLoading, error } =
|
|
309
|
+
useZendirSession({ apiKey: 'your-key', autoConnect: true });
|
|
283
310
|
|
|
284
|
-
|
|
311
|
+
// Live data: structure + position polling, ECI→ECEF on the Cesium backend
|
|
312
|
+
const scene = useSimulationScene({
|
|
313
|
+
client,
|
|
314
|
+
containerId: session?.containerId ?? null,
|
|
315
|
+
simulationId: session?.simulationId ?? null,
|
|
316
|
+
});
|
|
285
317
|
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
318
|
+
if (error) return <div>Error: {error}</div>;
|
|
319
|
+
if (isLoading) return <div>Connecting…</div>;
|
|
320
|
+
if (!session) return <button onClick={connect}>Connect</button>;
|
|
321
|
+
|
|
322
|
+
return (
|
|
323
|
+
<ZenSpace3D
|
|
324
|
+
satellites={scene.satellites}
|
|
325
|
+
groundStations={scene.groundStations}
|
|
326
|
+
referenceTime={scene.referenceDate}
|
|
327
|
+
/>
|
|
328
|
+
);
|
|
289
329
|
}
|
|
290
330
|
```
|
|
291
331
|
|
|
292
|
-
|
|
332
|
+
| Hook | Purpose |
|
|
333
|
+
|---|---|
|
|
334
|
+
| `useZendirSession` | Container + simulation lifecycle (`createContainer` → `waitForRunning` → `createSimulation`); `disconnect` tears down |
|
|
335
|
+
| `useSimulationScene` | Bridges a `ZendirClient` to live `<ZenSpace3D />` props (satellites, ground stations, custom objects, reference time) |
|
|
336
|
+
| `useAccessWindows` | Pure client-side AOS/LOS pass-timing math from a list of `AccessPass` records (no SDK call) |
|
|
293
337
|
|
|
294
338
|
---
|
|
295
339
|
|
|
@@ -470,7 +514,7 @@ function SatelliteWidget() {
|
|
|
470
514
|
}
|
|
471
515
|
```
|
|
472
516
|
|
|
473
|
-
**Enterprise features:** Error boundary (children never crash host), loading skeleton, error display with retry, Astro UX 6-level status badges with shapes, WCAG 2.1 AA ARIA labels, `maxHeight` auto-constraint, theme sync, fullscreen support.
|
|
517
|
+
**Enterprise features:** Error boundary (children never crash host), loading skeleton, error display with retry, Astro UX 6-level status badges with shapes, WCAG 2.1 AA ARIA labels, `maxHeight` auto-constraint, theme sync, fullscreen support.
|
|
474
518
|
|
|
475
519
|
### MCP Server → ChatPanel Bridge
|
|
476
520
|
|
|
@@ -565,8 +609,6 @@ Zendir UI conforms to [**WCAG 2.2 Level AA**](https://www.w3.org/TR/WCAG22/) and
|
|
|
565
609
|
|
|
566
610
|
Testing: [eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y) in CI, [axe-core](https://storybook.js.org/addons/@storybook/addon-a11y) on all Storybook stories, manual keyboard and screen reader verification (VoiceOver, NVDA, TalkBack).
|
|
567
611
|
|
|
568
|
-
For the full conformance statement with WCAG success criteria mapping and EN 301 549 clause mapping, see [**ACCESSIBILITY.md**](ACCESSIBILITY.md).
|
|
569
|
-
|
|
570
612
|
Accessibility issues are treated as **P0 bugs**. [Report an issue](https://github.com/zendir-dev/zendir-ui/issues) with the `accessibility` label.
|
|
571
613
|
|
|
572
614
|
---
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @zendir/ui - UI Components and Widgets for Zendir
|
|
3
3
|
*
|
|
4
4
|
* React components, Three.js visualizations, and widgets for Zendir applications.
|
|
5
|
-
* All types are provided locally; install
|
|
5
|
+
* All types are provided locally; install `zendir-ts` separately for API client.
|
|
6
6
|
*/
|
|
7
7
|
export * from './react/index.js';
|
|
8
8
|
export * from './types/index.js';
|
package/dist/index.js
CHANGED
|
@@ -3,74 +3,78 @@ import { Skeleton3D, SkeletonBox, SkeletonCard, SkeletonChart, SkeletonCircle, S
|
|
|
3
3
|
import { STATUS_COLORS, addAlpha, clamp, classNames, focusRingStyle, formatAltitude, formatCoordinate, formatCountdown, formatDataRate, formatDecibels, formatDegrees, formatDistance, formatDuration, formatFrequency, formatLatLon, formatNumber, formatPercentage, formatPower, formatTabular, formatTemperature, formatTime, formatUTC, formatVelocity, getStatusColor, getStatusFromValue, getStatusSeverity, getWorstStatus, isStatusLevel, isValidNumber, lerp, mapRange, normalizeStatus, safeAccentText, safeNumber, tabularNumsStyle, transitions, withNullSafety } from "./react/utils/index.js";
|
|
4
4
|
import { useCompactMode } from "./react/hooks/useCompactMode.js";
|
|
5
5
|
import { PLANETS, auToKm, estimateOrbitalPeriod, estimateOrbitalVelocity, getPlanet, normalizePlanetName } from "./react/types.js";
|
|
6
|
-
import { ActivityPlanner } from "./react/core/ActivityPlanner.js";
|
|
7
|
-
import { AppBar } from "./react/core/AppBar.js";
|
|
6
|
+
import { ActivityPlanner } from "./react/core/widgets/ActivityPlanner.js";
|
|
7
|
+
import { AppBar } from "./react/core/navigation/AppBar.js";
|
|
8
8
|
import { AstroChart } from "./react/charts/unified/AstroChart.js";
|
|
9
9
|
import { BREAKPOINTS, useBreakpoint } from "./react/core/layout/useBreakpoint.js";
|
|
10
|
-
import { Badge } from "./react/core/Badge.js";
|
|
11
|
-
import { Body1, Body2, Body3, Compact, DataText, Display1, Display2, FONT_FAMILY_MONO, FONT_FAMILY_PRIMARY, FONT_WEIGHTS, H1, H2, H3, H4, H5, H6, Label, Micro, Mono, Typography } from "./react/core/Typography.js";
|
|
10
|
+
import { Badge } from "./react/core/display/Badge.js";
|
|
11
|
+
import { Body1, Body2, Body3, Compact, DataText, Display1, Display2, FONT_FAMILY_MONO, FONT_FAMILY_PRIMARY, FONT_WEIGHTS, H1, H2, H3, H4, H5, H6, Label, Micro, Mono, Typography } from "./react/core/display/Typography.js";
|
|
12
12
|
import { Box } from "./react/core/layout/Box.js";
|
|
13
|
-
import { Button } from "./react/core/Button.js";
|
|
13
|
+
import { Button } from "./react/core/inputs/Button.js";
|
|
14
14
|
import { CARD_ACCENT_COLORS, CardAccentProvider, SPACE_SYSTEM_COLORS, getAccentColorOptions, getSystemAccentColor, useCardAccent } from "./react/theme/cardAccent.js";
|
|
15
|
-
import { CATEGORY_ICONS, CATEGORY_LABELS, PROPERTY_PRESETS, createPropertyConfig, deriveBatteryStatus, deriveStatus, formatPropertyLabel, formatPropertyValue, getPropertiesByCategory, getPropertyConfig } from "./react/core/propertyConfig.js";
|
|
16
|
-
import { CHAT_RESPONSE_JSON_PROMPT, CHAT_RESPONSE_MCP_TOOL, CHAT_RESPONSE_TOOL_SCHEMA, CHAT_RESPONSE_YAML_PROMPT, CHAT_STATUS_RULES_PROMPT, ChatPanel, createChatResponseParser, parseChatResponse, parseMcpToolResult } from "./react/core/ChatPanel.js";
|
|
17
|
-
import { Capture, loadCapturePlaceholderImage, useCapture } from "./react/core/Capture.js";
|
|
18
|
-
import { CardHeader } from "./react/core/CardHeader.js";
|
|
15
|
+
import { CATEGORY_ICONS, CATEGORY_LABELS, PROPERTY_PRESETS, createPropertyConfig, deriveBatteryStatus, deriveStatus, formatPropertyLabel, formatPropertyValue, getPropertiesByCategory, getPropertyConfig } from "./react/core/data/propertyConfig.js";
|
|
16
|
+
import { CHAT_RESPONSE_JSON_PROMPT, CHAT_RESPONSE_MCP_TOOL, CHAT_RESPONSE_TOOL_SCHEMA, CHAT_RESPONSE_YAML_PROMPT, CHAT_STATUS_RULES_PROMPT, ChatPanel, createChatResponseParser, parseChatResponse, parseMcpToolResult } from "./react/core/widgets/ChatPanel.js";
|
|
17
|
+
import { Capture, loadCapturePlaceholderImage, useCapture } from "./react/core/widgets/Capture.js";
|
|
18
|
+
import { CardHeader } from "./react/core/display/CardHeader.js";
|
|
19
19
|
import { CategoryPalette } from "./react/utils/categoryPalette.js";
|
|
20
20
|
import { CategoryProvider, useCategoryPalette, useCategoryPaletteRequired } from "./react/context/CategoryContext.js";
|
|
21
21
|
import { Center } from "./react/core/layout/Center.js";
|
|
22
|
-
import { Checkbox } from "./react/core/Checkbox.js";
|
|
22
|
+
import { Checkbox } from "./react/core/inputs/Checkbox.js";
|
|
23
23
|
import { ClassificationBanner } from "./react/astro/ClassificationBanner.js";
|
|
24
|
-
import { ColorPickerPanel } from "./react/core/ColorPickerPanel.js";
|
|
25
|
-
import { CommandBuilder } from "./react/core/CommandBuilder.js";
|
|
26
|
-
import { ConfirmDialog, ConfirmProvider, useConfirm } from "./react/core/ConfirmDialog.js";
|
|
27
|
-
import { ConnectionForm } from "./react/core/ConnectionForm.js";
|
|
28
|
-
import { Container } from "./react/core/Container.js";
|
|
29
|
-
import { CopyButton, useCopyToClipboard } from "./react/core/CopyButton.js";
|
|
30
|
-
import { DataTable, DataTableRowDetail } from "./react/core/DataTable.js";
|
|
31
|
-
import { DataValue, DataValueGroup } from "./react/core/DataValue.js";
|
|
32
|
-
import { Dialog } from "./react/core/Dialog.js";
|
|
24
|
+
import { ColorPickerPanel } from "./react/core/widgets/ColorPickerPanel.js";
|
|
25
|
+
import { CommandBuilder } from "./react/core/widgets/CommandBuilder.js";
|
|
26
|
+
import { ConfirmDialog, ConfirmProvider, useConfirm } from "./react/core/feedback/ConfirmDialog.js";
|
|
27
|
+
import { ConnectionForm } from "./react/core/widgets/ConnectionForm.js";
|
|
28
|
+
import { Container } from "./react/core/display/Container.js";
|
|
29
|
+
import { CopyButton, useCopyToClipboard } from "./react/core/display/CopyButton.js";
|
|
30
|
+
import { DataTable, DataTableRowDetail } from "./react/core/data/DataTable.js";
|
|
31
|
+
import { DataValue, DataValueGroup } from "./react/core/data/DataValue.js";
|
|
32
|
+
import { Dialog } from "./react/core/feedback/Dialog.js";
|
|
33
33
|
import { DisplaySettingsProvider, GLASS_TINTS, PRESET_COLORS, getEffectiveCompactMode, useDisplaySettings, useDisplaySettingsOptional } from "./react/context/DisplaySettingsContext.js";
|
|
34
34
|
import { Divider } from "./react/core/layout/Divider.js";
|
|
35
|
-
import { FileExplorer } from "./react/core/FileExplorer.js";
|
|
35
|
+
import { FileExplorer } from "./react/core/widgets/FileExplorer.js";
|
|
36
36
|
import { Flex } from "./react/core/layout/Flex.js";
|
|
37
|
-
import { GLASS_COLOR_OVERLAYS, GlassCard } from "./react/core/GlassCard.js";
|
|
37
|
+
import { GLASS_COLOR_OVERLAYS, GlassCard } from "./react/core/display/GlassCard.js";
|
|
38
38
|
import { GlobalStatusBar } from "./react/astro/GlobalStatusBar.js";
|
|
39
39
|
import { Grid } from "./react/core/layout/Grid.js";
|
|
40
40
|
import { GroundTrackMap } from "./react/charts/GroundTrackMap.js";
|
|
41
41
|
import { HStack, Stack, VStack } from "./react/core/layout/Stack.js";
|
|
42
|
-
import { HeaderIconWithStatus } from "./react/core/HeaderIconWithStatus.js";
|
|
43
|
-
import { HexViewer, REGION_BORDER_COLORS, REGION_COLORS } from "./react/core/HexViewer.js";
|
|
44
|
-
import { Icon, getIconNames, isValidIconName } from "./react/core/Icon.js";
|
|
45
|
-
import { ImageGallery } from "./react/core/ImageGallery.js";
|
|
46
|
-
import { Input } from "./react/core/Input.js";
|
|
47
|
-
import {
|
|
48
|
-
import {
|
|
49
|
-
import {
|
|
50
|
-
import {
|
|
42
|
+
import { HeaderIconWithStatus } from "./react/core/display/HeaderIconWithStatus.js";
|
|
43
|
+
import { HexViewer, REGION_BORDER_COLORS, REGION_COLORS } from "./react/core/widgets/HexViewer.js";
|
|
44
|
+
import { Icon, getIconNames, isValidIconName } from "./react/core/display/Icon.js";
|
|
45
|
+
import { ImageGallery } from "./react/core/widgets/ImageGallery.js";
|
|
46
|
+
import { Input } from "./react/core/inputs/Input.js";
|
|
47
|
+
import { LayerControlPanel } from "./react/panels/LayerControlPanel.js";
|
|
48
|
+
import { LimitsBar } from "./react/core/inputs/LimitsBar.js";
|
|
49
|
+
import { LogViewer } from "./react/core/widgets/LogViewer.js";
|
|
50
|
+
import { Menu, Popover } from "./react/core/overlays/Popover.js";
|
|
51
|
+
import { MessageStream } from "./react/core/widgets/MessageStream.js";
|
|
51
52
|
import { MiniSimulationControls, SimulationControls, SimulationControlsWithClock } from "./react/astro/SimulationControls.js";
|
|
52
|
-
import { MissionCalendar } from "./react/core/MissionCalendar.js";
|
|
53
|
+
import { MissionCalendar } from "./react/core/widgets/MissionCalendar.js";
|
|
53
54
|
import { MissionClock } from "./react/astro/MissionClock.js";
|
|
54
55
|
import { MonitoringIcon } from "./react/astro/MonitoringIcon.js";
|
|
55
56
|
import { Notification } from "./react/astro/Notification.js";
|
|
56
|
-
import { NumberInput } from "./react/core/NumberInput.js";
|
|
57
|
-
import {
|
|
58
|
-
import {
|
|
59
|
-
import {
|
|
57
|
+
import { NumberInput } from "./react/core/inputs/NumberInput.js";
|
|
58
|
+
import { ObjectInventoryPanel, recommendedFlyDistance } from "./react/panels/ObjectInventoryPanel.js";
|
|
59
|
+
import { PacketViewer } from "./react/core/widgets/PacketViewer.js";
|
|
60
|
+
import { Pagination } from "./react/core/navigation/Pagination.js";
|
|
61
|
+
import { PinInput } from "./react/core/inputs/PinInput.js";
|
|
60
62
|
import { Progress } from "./react/astro/Progress.js";
|
|
61
|
-
import { SIDENAV_HEADER_LOGO_SLOT_HEIGHT_PX, SideNav } from "./react/core/SideNav.js";
|
|
62
|
-
import { Select } from "./react/core/Select.js";
|
|
63
|
-
import { SidePanel } from "./react/core/SidePanel.js";
|
|
63
|
+
import { SIDENAV_HEADER_LOGO_SLOT_HEIGHT_PX, SideNav } from "./react/core/navigation/SideNav.js";
|
|
64
|
+
import { Select } from "./react/core/inputs/Select.js";
|
|
65
|
+
import { SidePanel } from "./react/core/overlays/SidePanel.js";
|
|
64
66
|
import { Spacer } from "./react/core/layout/Spacer.js";
|
|
65
67
|
import { StatusIndicator } from "./react/astro/StatusIndicator.js";
|
|
66
|
-
import { Tabs } from "./react/core/Tabs.js";
|
|
68
|
+
import { Tabs } from "./react/core/navigation/Tabs.js";
|
|
67
69
|
import { ThemeProvider, useScrollbarStyles, useTheme, useThemeTokens } from "./react/theme/ThemeProvider.js";
|
|
68
70
|
import { UnifiedTimeline } from "./react/astro/UnifiedTimeline.js";
|
|
69
|
-
import { ToastProvider, useToast, useToastManager } from "./react/core/Toast.js";
|
|
70
|
-
import { Toggle } from "./react/core/Toggle.js";
|
|
71
|
-
import { Tooltip } from "./react/core/Tooltip.js";
|
|
71
|
+
import { ToastProvider, useToast, useToastManager } from "./react/core/feedback/Toast.js";
|
|
72
|
+
import { Toggle } from "./react/core/inputs/Toggle.js";
|
|
73
|
+
import { Tooltip } from "./react/core/overlays/Tooltip.js";
|
|
74
|
+
import { ZenSpace3D } from "./react/3d/ZenSpace3D.js";
|
|
72
75
|
import { ecefEulerXyzToHpr, ecefMetersToSdkPosition } from "./react/3d/CesiumCaptureSource.js";
|
|
73
76
|
import { resolveResponsive, resolveSpacing } from "./react/core/layout/responsive.js";
|
|
77
|
+
import { useSimulationScene } from "./react/hooks/useSimulationScene.js";
|
|
74
78
|
export {
|
|
75
79
|
ActivityPlanner,
|
|
76
80
|
AppBar,
|
|
@@ -142,6 +146,7 @@ export {
|
|
|
142
146
|
ImageGallery,
|
|
143
147
|
Input,
|
|
144
148
|
Label,
|
|
149
|
+
LayerControlPanel,
|
|
145
150
|
LimitsBar,
|
|
146
151
|
LogViewer,
|
|
147
152
|
Menu,
|
|
@@ -154,6 +159,7 @@ export {
|
|
|
154
159
|
Mono,
|
|
155
160
|
Notification,
|
|
156
161
|
NumberInput,
|
|
162
|
+
ObjectInventoryPanel,
|
|
157
163
|
PLANETS,
|
|
158
164
|
PRESET_COLORS,
|
|
159
165
|
PROPERTY_PRESETS,
|
|
@@ -189,6 +195,7 @@ export {
|
|
|
189
195
|
Tooltip,
|
|
190
196
|
Typography,
|
|
191
197
|
VStack,
|
|
198
|
+
ZenSpace3D,
|
|
192
199
|
addAlpha,
|
|
193
200
|
auToKm,
|
|
194
201
|
clamp,
|
|
@@ -243,6 +250,7 @@ export {
|
|
|
243
250
|
normalizeStatus,
|
|
244
251
|
parseChatResponse,
|
|
245
252
|
parseMcpToolResult,
|
|
253
|
+
recommendedFlyDistance,
|
|
246
254
|
resolveResponsive,
|
|
247
255
|
resolveSpacing,
|
|
248
256
|
safeAccentText,
|
|
@@ -260,6 +268,7 @@ export {
|
|
|
260
268
|
useDisplaySettings,
|
|
261
269
|
useDisplaySettingsOptional,
|
|
262
270
|
useScrollbarStyles,
|
|
271
|
+
useSimulationScene,
|
|
263
272
|
useTheme,
|
|
264
273
|
useThemeTokens,
|
|
265
274
|
useToast,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DEG_TO_RAD, RAD_TO_DEG, EARTH_RADIUS_KM } from "./ZenSpace3DUtils.js";
|
|
2
2
|
async function loadPlaceholderFallback() {
|
|
3
|
-
const { loadCapturePlaceholderImage } = await import("../core/Capture.js");
|
|
3
|
+
const { loadCapturePlaceholderImage } = await import("../core/widgets/Capture.js");
|
|
4
4
|
return loadCapturePlaceholderImage();
|
|
5
5
|
}
|
|
6
6
|
function ecefMetersToSdkPosition(ecef) {
|