@zendir/ui 0.1.7 → 0.1.9
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/dist/index.js +0 -137
- package/dist/index.js.map +1 -1
- package/dist/react/context/DisplaySettingsContext.js +0 -12
- package/dist/react/context/DisplaySettingsContext.js.map +1 -1
- package/dist/react/index.d.ts +0 -30
- package/dist/react/utils/index.js +0 -8
- package/dist/react/utils/index.js.map +1 -1
- package/dist/react.js +0 -137
- package/dist/react.js.map +1 -1
- package/package.json +2 -2
- package/dist/react/3d/EarthViewer.js +0 -836
- package/dist/react/3d/EarthViewer.js.map +0 -1
- package/dist/react/3d/SolarSystemViewer.js +0 -372
- package/dist/react/3d/SolarSystemViewer.js.map +0 -1
- package/dist/react/3d/ZenSpace3D.js +0 -1253
- package/dist/react/3d/ZenSpace3D.js.map +0 -1
- package/dist/react/3d/ZenSpace3DCesium.js +0 -186
- package/dist/react/3d/ZenSpace3DCesium.js.map +0 -1
- package/dist/react/3d/ZenSpace3DShaders.js +0 -94
- package/dist/react/3d/ZenSpace3DShaders.js.map +0 -1
- package/dist/react/3d/ZenSpace3DUtils.js +0 -213
- package/dist/react/3d/ZenSpace3DUtils.js.map +0 -1
- package/dist/react/3d/threeLoader.js +0 -18
- package/dist/react/3d/threeLoader.js.map +0 -1
- package/dist/react/cards/AccessCard.js +0 -410
- package/dist/react/cards/AccessCard.js.map +0 -1
- package/dist/react/cards/OrbitCard.js +0 -372
- package/dist/react/cards/OrbitCard.js.map +0 -1
- package/dist/react/cards/SpacecraftCard.js +0 -941
- package/dist/react/cards/SpacecraftCard.js.map +0 -1
- package/dist/react/cards/TelemetryCard.js +0 -742
- package/dist/react/cards/TelemetryCard.js.map +0 -1
- package/dist/react/cards/TelemetryStreamCard.js +0 -309
- package/dist/react/cards/TelemetryStreamCard.js.map +0 -1
- package/dist/react/charts/GroundTrackMap.js +0 -1123
- package/dist/react/charts/GroundTrackMap.js.map +0 -1
- package/dist/react/charts/GroundTrackMapLeaflet.js +0 -571
- package/dist/react/charts/GroundTrackMapLeaflet.js.map +0 -1
- package/dist/react/charts/groundTrackMapLeafletTiles.js +0 -11
- package/dist/react/charts/groundTrackMapLeafletTiles.js.map +0 -1
- package/dist/react/charts/groundTrackMapLeafletUtils.js +0 -109
- package/dist/react/charts/groundTrackMapLeafletUtils.js.map +0 -1
- package/dist/react/charts/unified/AstroChart.js +0 -1405
- package/dist/react/charts/unified/AstroChart.js.map +0 -1
- package/dist/react/charts/unified/PowerOverviewChart.js +0 -488
- package/dist/react/charts/unified/PowerOverviewChart.js.map +0 -1
- package/dist/react/charts/unified/domain.js +0 -3168
- package/dist/react/charts/unified/domain.js.map +0 -1
- package/dist/react/charts/unified/generators.js +0 -518
- package/dist/react/charts/unified/generators.js.map +0 -1
- package/dist/react/charts/unified/presets.js +0 -999
- package/dist/react/charts/unified/presets.js.map +0 -1
- package/dist/react/charts/unified/sync.js +0 -219
- package/dist/react/charts/unified/sync.js.map +0 -1
- package/dist/react/charts/unified/theme.js +0 -562
- package/dist/react/charts/unified/theme.js.map +0 -1
- package/dist/react/charts/unified/useChartStream.js +0 -226
- package/dist/react/charts/unified/useChartStream.js.map +0 -1
- package/dist/react/visualizations/EclipseTimerCard.js +0 -250
- package/dist/react/visualizations/EclipseTimerCard.js.map +0 -1
- package/dist/react/visualizations/LinkBudgetCard.js +0 -444
- package/dist/react/visualizations/LinkBudgetCard.js.map +0 -1
- package/dist/react/visualizations/NavBallCard.js +0 -243
- package/dist/react/visualizations/NavBallCard.js.map +0 -1
- package/dist/react/visualizations/PropulsionCard.js +0 -298
- package/dist/react/visualizations/PropulsionCard.js.map +0 -1
- package/dist/react/visualizations/SensorFootprintCard.js +0 -326
- package/dist/react/visualizations/SensorFootprintCard.js.map +0 -1
- package/dist/react/visualizations/ThermalHeatmapCard.js +0 -372
- package/dist/react/visualizations/ThermalHeatmapCard.js.map +0 -1
- package/dist/shaders/atmosphere.frag.js +0 -5
- package/dist/shaders/atmosphere.frag.js.map +0 -1
- package/dist/shaders/atmosphere.vert.js +0 -5
- package/dist/shaders/atmosphere.vert.js.map +0 -1
- package/dist/shaders/stars.frag.js +0 -5
- package/dist/shaders/stars.frag.js.map +0 -1
- package/dist/shaders/stars.vert.js +0 -5
- package/dist/shaders/stars.vert.js.map +0 -1
- package/dist/style.css +0 -143
package/dist/index.js
CHANGED
|
@@ -1,19 +1,6 @@
|
|
|
1
1
|
import { ErrorBoundary, withErrorBoundary } from "./react/shared/ErrorBoundary.js";
|
|
2
2
|
import { Skeleton3D, SkeletonBox, SkeletonCard, SkeletonChart, SkeletonCircle, SkeletonText } from "./react/shared/Skeleton.js";
|
|
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
|
-
import { SpacecraftCard } from "./react/cards/SpacecraftCard.js";
|
|
5
|
-
import { TelemetryCard } from "./react/cards/TelemetryCard.js";
|
|
6
|
-
import { AccessCard } from "./react/cards/AccessCard.js";
|
|
7
|
-
import { OrbitCard } from "./react/cards/OrbitCard.js";
|
|
8
|
-
import { TelemetryStreamCard } from "./react/cards/TelemetryStreamCard.js";
|
|
9
|
-
import { EclipseTimerCard } from "./react/visualizations/EclipseTimerCard.js";
|
|
10
|
-
import { NavBallCard } from "./react/visualizations/NavBallCard.js";
|
|
11
|
-
import { LinkBudgetCard } from "./react/visualizations/LinkBudgetCard.js";
|
|
12
|
-
import { ThermalHeatmapCard } from "./react/visualizations/ThermalHeatmapCard.js";
|
|
13
|
-
import { PropulsionCard } from "./react/visualizations/PropulsionCard.js";
|
|
14
|
-
import { SensorFootprintCard } from "./react/visualizations/SensorFootprintCard.js";
|
|
15
|
-
import { EarthViewer } from "./react/3d/EarthViewer.js";
|
|
16
|
-
import { SolarSystemViewer } from "./react/3d/SolarSystemViewer.js";
|
|
17
4
|
import { useZendirSession } from "./react/hooks/useZendirSession.js";
|
|
18
5
|
import { useTelemetry } from "./react/hooks/useTelemetry.js";
|
|
19
6
|
import { useSpacecraftPosition } from "./react/hooks/useSpacecraftPosition.js";
|
|
@@ -21,13 +8,9 @@ import { useCompactMode } from "./react/hooks/useCompactMode.js";
|
|
|
21
8
|
import { isInChatGPT, useCallTool, useChatGPTTheme, useDisplayMode, useIntrinsicHeight, useLocale, useMaxHeight, useOpenAiGlobal, useOpenExternal, useSendMessage, useToolInput, useToolOutput, useWidgetState } from "./react/chatgpt/index.js";
|
|
22
9
|
import { AppCard, ChatGPTCard } from "./react/chatgpt/AppCard.js";
|
|
23
10
|
import { PLANETS, auToKm, estimateOrbitalPeriod, estimateOrbitalVelocity, getPlanet, normalizePlanetName } from "./react/types.js";
|
|
24
|
-
import { ASTRO_DATA_VIZ_COLORS, STATUS_COLORS as STATUS_COLORS2, calculateAxisBounds, createAreaGradient, createAstroEChartsTheme, formatTimeLabel, formatValueWithUnit, getSeriesColor } from "./react/charts/unified/theme.js";
|
|
25
11
|
import { ASTRO_ICON_NAMES, AstroIcon, getAllIconNames, getAstroIconNames, getIconAliases, isAstroIconsAvailable, isIconAlias, preloadAstroIcons } from "./react/core/AstroIcon.js";
|
|
26
12
|
import { ActivityPlanner } from "./react/core/ActivityPlanner.js";
|
|
27
|
-
import { AntennaPattern3DChart, AttitudeChart, AttitudeHistory3DChart, Bar3DChart, ConjunctionAssessment3DChart, ConjunctionChart, ConstellationCoverageChart, ContactWindowChart, DopplerTrackChart, EclipseTimelineChart, HeliocentricOrbitPlot, LaunchCorridor3DChart, Lines3DChart, LinkBudgetChart, LinkMarginChart, ManeuverBudgetChart, OrbitChart, PowerChart, RoseDiagram, Scatter3DChart, SpectrumChart, SphericalRadar3DChart, SubsystemGauge, Surface3DChart, ThermalHeatmapChart, TransferOrbit3DChart, WaterfallChart } from "./react/charts/unified/domain.js";
|
|
28
13
|
import { AppBar } from "./react/core/AppBar.js";
|
|
29
|
-
import { AreaChart, BarChart, BubbleChart, CandlestickChart, DonutChart, DualAxisChart, GaugeChart, GraphChart, HeatmapChart, HistogramChart, LineChart, ParallelChart, PieChart, RadarChart, SankeyChart, ScatterChart, StackedAreaChart, StackedBarChart, SunburstChart, TimeSeriesChart, TreemapChart } from "./react/charts/unified/presets.js";
|
|
30
|
-
import { AstroChart } from "./react/charts/unified/AstroChart.js";
|
|
31
14
|
import { BREAKPOINTS, useBreakpoint } from "./react/core/layout/useBreakpoint.js";
|
|
32
15
|
import { Badge } from "./react/core/Badge.js";
|
|
33
16
|
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";
|
|
@@ -51,13 +34,11 @@ import { DataValue, DataValueGroup } from "./react/core/DataValue.js";
|
|
|
51
34
|
import { Dialog } from "./react/core/Dialog.js";
|
|
52
35
|
import { DisplaySettingsProvider, GLASS_TINTS, PRESET_COLORS, getEffectiveCompactMode, useDisplaySettings, useDisplaySettingsOptional } from "./react/context/DisplaySettingsContext.js";
|
|
53
36
|
import { Divider } from "./react/core/layout/Divider.js";
|
|
54
|
-
import { EARTH_RADIUS_KM, KM_TO_SCENE, SCENE_EARTH_RADIUS, calculateVisibilityConeGeometry, cartesianToLatLonAlt, generateHexGrid, generateOrbitPath, latLonAltToCartesian, parseTLE, propagateSGP4Simple, propagateSatellite } from "./react/3d/ZenSpace3DUtils.js";
|
|
55
37
|
import { FileExplorer } from "./react/core/FileExplorer.js";
|
|
56
38
|
import { Flex } from "./react/core/layout/Flex.js";
|
|
57
39
|
import { GLASS_COLOR_OVERLAYS, GlassCard } from "./react/core/GlassCard.js";
|
|
58
40
|
import { GlobalStatusBar } from "./react/astro/GlobalStatusBar.js";
|
|
59
41
|
import { Grid } from "./react/core/layout/Grid.js";
|
|
60
|
-
import { GroundTrackMap } from "./react/charts/GroundTrackMap.js";
|
|
61
42
|
import { HStack, Stack, VStack } from "./react/core/layout/Stack.js";
|
|
62
43
|
import { HeaderIconWithStatus } from "./react/core/HeaderIconWithStatus.js";
|
|
63
44
|
import { HexViewer, REGION_BORDER_COLORS, REGION_COLORS } from "./react/core/HexViewer.js";
|
|
@@ -77,7 +58,6 @@ import { NumberInput } from "./react/core/NumberInput.js";
|
|
|
77
58
|
import { PacketViewer } from "./react/core/PacketViewer.js";
|
|
78
59
|
import { Pagination } from "./react/core/Pagination.js";
|
|
79
60
|
import { PinInput } from "./react/core/PinInput.js";
|
|
80
|
-
import { PowerOverviewChart, generateSamplePowerData } from "./react/charts/unified/PowerOverviewChart.js";
|
|
81
61
|
import { Progress } from "./react/astro/Progress.js";
|
|
82
62
|
import { Select } from "./react/core/Select.js";
|
|
83
63
|
import { SideNav } from "./react/core/SideNav.js";
|
|
@@ -90,46 +70,28 @@ import { UnifiedTimeline } from "./react/astro/UnifiedTimeline.js";
|
|
|
90
70
|
import { ToastProvider, useToast, useToastManager } from "./react/core/Toast.js";
|
|
91
71
|
import { Toggle } from "./react/core/Toggle.js";
|
|
92
72
|
import { Tooltip } from "./react/core/Tooltip.js";
|
|
93
|
-
import { ZenSpace3D } from "./react/3d/ZenSpace3D.js";
|
|
94
|
-
import { ZenSpace3DCesium } from "./react/3d/ZenSpace3DCesium.js";
|
|
95
|
-
import { atmosphereFragmentShader, atmosphereVertexShader, starsFragmentShader, starsVertexShader } from "./react/3d/ZenSpace3DShaders.js";
|
|
96
|
-
import { dispatchToGroup, exportGroupAsCSV, exportGroupAsImages, getGroupCharts, hideGroupTooltip, resetGroupZoom, showGroupTooltip, syncZoomRange, useChartSync } from "./react/charts/unified/sync.js";
|
|
97
|
-
import { generateAttitudeData, generateConjunctionEvents, generateConstellationCoverage, generateContactWindows, generateDopplerData, generateEclipseTimeline, generateHeliocentricOrbits, generatePowerData, generateSpectrum, generateWaterfallData } from "./react/charts/unified/generators.js";
|
|
98
73
|
import { resolveResponsive, resolveSpacing } from "./react/core/layout/responsive.js";
|
|
99
|
-
import { useChartStream, useWebSocketStream } from "./react/charts/unified/useChartStream.js";
|
|
100
74
|
export {
|
|
101
|
-
ASTRO_DATA_VIZ_COLORS,
|
|
102
75
|
ASTRO_ICON_NAMES,
|
|
103
|
-
AccessCard,
|
|
104
76
|
ActivityPlanner,
|
|
105
|
-
AntennaPattern3DChart,
|
|
106
77
|
AppBar,
|
|
107
78
|
AppCard,
|
|
108
|
-
AreaChart,
|
|
109
|
-
AstroChart,
|
|
110
79
|
AstroIcon,
|
|
111
|
-
AttitudeChart,
|
|
112
|
-
AttitudeHistory3DChart,
|
|
113
80
|
BREAKPOINTS,
|
|
114
81
|
Badge,
|
|
115
|
-
Bar3DChart,
|
|
116
|
-
BarChart,
|
|
117
82
|
Body1,
|
|
118
83
|
Body2,
|
|
119
84
|
Body3,
|
|
120
85
|
Box,
|
|
121
|
-
BubbleChart,
|
|
122
86
|
Button,
|
|
123
87
|
CARD_ACCENT_COLORS,
|
|
124
88
|
CATEGORY_ICONS,
|
|
125
89
|
CATEGORY_LABELS,
|
|
126
|
-
STATUS_COLORS2 as CHART_STATUS_COLORS,
|
|
127
90
|
CHAT_RESPONSE_JSON_PROMPT,
|
|
128
91
|
CHAT_RESPONSE_MCP_TOOL,
|
|
129
92
|
CHAT_RESPONSE_TOOL_SCHEMA,
|
|
130
93
|
CHAT_RESPONSE_YAML_PROMPT,
|
|
131
94
|
CHAT_STATUS_RULES_PROMPT,
|
|
132
|
-
CandlestickChart,
|
|
133
95
|
CardAccentProvider,
|
|
134
96
|
CardHeader,
|
|
135
97
|
Center,
|
|
@@ -142,11 +104,7 @@ export {
|
|
|
142
104
|
Compact,
|
|
143
105
|
ConfirmDialog,
|
|
144
106
|
ConfirmProvider,
|
|
145
|
-
ConjunctionAssessment3DChart,
|
|
146
|
-
ConjunctionChart,
|
|
147
107
|
ConnectionForm,
|
|
148
|
-
ConstellationCoverageChart,
|
|
149
|
-
ContactWindowChart,
|
|
150
108
|
Container,
|
|
151
109
|
CopyButton,
|
|
152
110
|
DataTable,
|
|
@@ -159,13 +117,6 @@ export {
|
|
|
159
117
|
Display2,
|
|
160
118
|
DisplaySettingsProvider,
|
|
161
119
|
Divider,
|
|
162
|
-
DonutChart,
|
|
163
|
-
DopplerTrackChart,
|
|
164
|
-
DualAxisChart,
|
|
165
|
-
EARTH_RADIUS_KM,
|
|
166
|
-
EarthViewer,
|
|
167
|
-
EclipseTimelineChart,
|
|
168
|
-
EclipseTimerCard,
|
|
169
120
|
ErrorBoundary,
|
|
170
121
|
FONT_FAMILY_MONO,
|
|
171
122
|
FONT_FAMILY_PRIMARY,
|
|
@@ -174,12 +125,9 @@ export {
|
|
|
174
125
|
Flex,
|
|
175
126
|
GLASS_COLOR_OVERLAYS,
|
|
176
127
|
GLASS_TINTS,
|
|
177
|
-
GaugeChart,
|
|
178
128
|
GlassCard,
|
|
179
129
|
GlobalStatusBar,
|
|
180
|
-
GraphChart,
|
|
181
130
|
Grid,
|
|
182
|
-
GroundTrackMap,
|
|
183
131
|
H1,
|
|
184
132
|
H2,
|
|
185
133
|
H3,
|
|
@@ -188,24 +136,13 @@ export {
|
|
|
188
136
|
H6,
|
|
189
137
|
HStack,
|
|
190
138
|
HeaderIconWithStatus,
|
|
191
|
-
HeatmapChart,
|
|
192
|
-
HeliocentricOrbitPlot,
|
|
193
139
|
HexViewer,
|
|
194
|
-
HistogramChart,
|
|
195
140
|
Icon,
|
|
196
141
|
ImageGallery,
|
|
197
142
|
Input,
|
|
198
|
-
KM_TO_SCENE,
|
|
199
143
|
Label,
|
|
200
|
-
LaunchCorridor3DChart,
|
|
201
144
|
LimitsBar,
|
|
202
|
-
LineChart,
|
|
203
|
-
Lines3DChart,
|
|
204
|
-
LinkBudgetCard,
|
|
205
|
-
LinkBudgetChart,
|
|
206
|
-
LinkMarginChart,
|
|
207
145
|
LogViewer,
|
|
208
|
-
ManeuverBudgetChart,
|
|
209
146
|
Menu,
|
|
210
147
|
MessageStream,
|
|
211
148
|
Micro,
|
|
@@ -214,36 +151,21 @@ export {
|
|
|
214
151
|
MissionClock,
|
|
215
152
|
MonitoringIcon,
|
|
216
153
|
Mono,
|
|
217
|
-
NavBallCard,
|
|
218
154
|
Notification,
|
|
219
155
|
NumberInput,
|
|
220
|
-
OrbitCard,
|
|
221
|
-
OrbitChart,
|
|
222
156
|
PLANETS,
|
|
223
157
|
PRESET_COLORS,
|
|
224
158
|
PROPERTY_PRESETS,
|
|
225
159
|
PacketViewer,
|
|
226
160
|
Pagination,
|
|
227
|
-
ParallelChart,
|
|
228
|
-
PieChart,
|
|
229
161
|
PinInput,
|
|
230
162
|
Popover,
|
|
231
|
-
PowerChart,
|
|
232
|
-
PowerOverviewChart,
|
|
233
163
|
Progress,
|
|
234
|
-
PropulsionCard,
|
|
235
164
|
REGION_BORDER_COLORS,
|
|
236
165
|
REGION_COLORS,
|
|
237
|
-
RadarChart,
|
|
238
|
-
RoseDiagram,
|
|
239
|
-
SCENE_EARTH_RADIUS,
|
|
240
166
|
SPACE_SYSTEM_COLORS,
|
|
241
167
|
STATUS_COLORS,
|
|
242
|
-
SankeyChart,
|
|
243
|
-
Scatter3DChart,
|
|
244
|
-
ScatterChart,
|
|
245
168
|
Select,
|
|
246
|
-
SensorFootprintCard,
|
|
247
169
|
SideNav,
|
|
248
170
|
SidePanel,
|
|
249
171
|
SimulationControls,
|
|
@@ -254,56 +176,27 @@ export {
|
|
|
254
176
|
SkeletonChart,
|
|
255
177
|
SkeletonCircle,
|
|
256
178
|
SkeletonText,
|
|
257
|
-
SolarSystemViewer,
|
|
258
|
-
SpacecraftCard,
|
|
259
179
|
Spacer,
|
|
260
|
-
SpectrumChart,
|
|
261
|
-
SphericalRadar3DChart,
|
|
262
180
|
Stack,
|
|
263
|
-
StackedAreaChart,
|
|
264
|
-
StackedBarChart,
|
|
265
181
|
StatusIndicator,
|
|
266
|
-
SubsystemGauge,
|
|
267
|
-
SunburstChart,
|
|
268
|
-
Surface3DChart,
|
|
269
182
|
Tabs,
|
|
270
|
-
TelemetryCard,
|
|
271
|
-
TelemetryStreamCard,
|
|
272
183
|
ThemeProvider,
|
|
273
|
-
ThermalHeatmapCard,
|
|
274
|
-
ThermalHeatmapChart,
|
|
275
|
-
TimeSeriesChart,
|
|
276
184
|
UnifiedTimeline as Timeline,
|
|
277
185
|
ToastProvider,
|
|
278
186
|
Toggle,
|
|
279
187
|
Tooltip,
|
|
280
|
-
TransferOrbit3DChart,
|
|
281
|
-
TreemapChart,
|
|
282
188
|
Typography,
|
|
283
189
|
VStack,
|
|
284
|
-
WaterfallChart,
|
|
285
|
-
ZenSpace3D,
|
|
286
|
-
ZenSpace3DCesium,
|
|
287
190
|
addAlpha,
|
|
288
|
-
atmosphereFragmentShader,
|
|
289
|
-
atmosphereVertexShader,
|
|
290
191
|
auToKm,
|
|
291
|
-
calculateAxisBounds,
|
|
292
|
-
calculateVisibilityConeGeometry,
|
|
293
|
-
cartesianToLatLonAlt,
|
|
294
192
|
clamp,
|
|
295
193
|
classNames,
|
|
296
|
-
createAreaGradient,
|
|
297
|
-
createAstroEChartsTheme,
|
|
298
194
|
createChatResponseParser,
|
|
299
195
|
createPropertyConfig,
|
|
300
196
|
deriveBatteryStatus,
|
|
301
197
|
deriveStatus,
|
|
302
|
-
dispatchToGroup,
|
|
303
198
|
estimateOrbitalPeriod,
|
|
304
199
|
estimateOrbitalVelocity,
|
|
305
|
-
exportGroupAsCSV,
|
|
306
|
-
exportGroupAsImages,
|
|
307
200
|
focusRingStyle,
|
|
308
201
|
formatAltitude,
|
|
309
202
|
formatCoordinate,
|
|
@@ -323,73 +216,44 @@ export {
|
|
|
323
216
|
formatTabular,
|
|
324
217
|
formatTemperature,
|
|
325
218
|
formatTime,
|
|
326
|
-
formatTimeLabel,
|
|
327
219
|
formatUTC,
|
|
328
|
-
formatValueWithUnit,
|
|
329
220
|
formatVelocity,
|
|
330
|
-
generateAttitudeData,
|
|
331
|
-
generateConjunctionEvents,
|
|
332
|
-
generateConstellationCoverage,
|
|
333
|
-
generateContactWindows,
|
|
334
|
-
generateDopplerData,
|
|
335
|
-
generateEclipseTimeline,
|
|
336
|
-
generateHeliocentricOrbits,
|
|
337
|
-
generateHexGrid,
|
|
338
|
-
generateOrbitPath,
|
|
339
|
-
generatePowerData,
|
|
340
|
-
generateSamplePowerData,
|
|
341
|
-
generateSpectrum,
|
|
342
|
-
generateWaterfallData,
|
|
343
221
|
getAccentColorOptions,
|
|
344
222
|
getAllIconNames,
|
|
345
223
|
getAstroIconNames,
|
|
346
224
|
getEffectiveCompactMode,
|
|
347
|
-
getGroupCharts,
|
|
348
225
|
getIconAliases,
|
|
349
226
|
getIconNames,
|
|
350
227
|
getPlanet,
|
|
351
228
|
getPropertiesByCategory,
|
|
352
229
|
getPropertyConfig,
|
|
353
|
-
getSeriesColor,
|
|
354
230
|
getStatusColor,
|
|
355
231
|
getStatusFromValue,
|
|
356
232
|
getStatusSeverity,
|
|
357
233
|
getSystemAccentColor,
|
|
358
234
|
getWorstStatus,
|
|
359
|
-
hideGroupTooltip,
|
|
360
235
|
isAstroIconsAvailable,
|
|
361
236
|
isIconAlias,
|
|
362
237
|
isInChatGPT,
|
|
363
238
|
isStatusLevel,
|
|
364
239
|
isValidIconName,
|
|
365
240
|
isValidNumber,
|
|
366
|
-
latLonAltToCartesian,
|
|
367
241
|
lerp,
|
|
368
242
|
mapRange,
|
|
369
243
|
normalizePlanetName,
|
|
370
244
|
normalizeStatus,
|
|
371
245
|
parseChatResponse,
|
|
372
246
|
parseMcpToolResult,
|
|
373
|
-
parseTLE,
|
|
374
247
|
preloadAstroIcons,
|
|
375
|
-
propagateSGP4Simple,
|
|
376
|
-
propagateSatellite,
|
|
377
|
-
resetGroupZoom,
|
|
378
248
|
resolveResponsive,
|
|
379
249
|
resolveSpacing,
|
|
380
250
|
safeAccentText,
|
|
381
251
|
safeNumber,
|
|
382
|
-
showGroupTooltip,
|
|
383
|
-
starsFragmentShader,
|
|
384
|
-
starsVertexShader,
|
|
385
|
-
syncZoomRange,
|
|
386
252
|
tabularNumsStyle,
|
|
387
253
|
transitions,
|
|
388
254
|
useBreakpoint,
|
|
389
255
|
useCallTool,
|
|
390
256
|
useCardAccent,
|
|
391
|
-
useChartStream,
|
|
392
|
-
useChartSync,
|
|
393
257
|
useChatGPTTheme,
|
|
394
258
|
useCompactMode,
|
|
395
259
|
useConfirm,
|
|
@@ -412,7 +276,6 @@ export {
|
|
|
412
276
|
useToastManager,
|
|
413
277
|
useToolInput,
|
|
414
278
|
useToolOutput,
|
|
415
|
-
useWebSocketStream,
|
|
416
279
|
useWidgetState,
|
|
417
280
|
useZendirSession,
|
|
418
281
|
withErrorBoundary,
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -146,23 +146,11 @@ function getEffectiveCompactMode(propValue, contextValue) {
|
|
|
146
146
|
if (contextValue !== void 0) return contextValue;
|
|
147
147
|
return false;
|
|
148
148
|
}
|
|
149
|
-
function useCardBorderStyle(tokens, isTransparentTheme) {
|
|
150
|
-
const displaySettings = useDisplaySettingsOptional();
|
|
151
|
-
const accentBorders = (displaySettings == null ? void 0 : displaySettings.accentBorders) ?? true;
|
|
152
|
-
if (!isTransparentTheme) {
|
|
153
|
-
return tokens.colors.border.cardStyle ?? { border: `1px solid ${tokens.colors.border.muted}` };
|
|
154
|
-
}
|
|
155
|
-
if (accentBorders) {
|
|
156
|
-
return tokens.colors.border.cardStyle ?? {};
|
|
157
|
-
}
|
|
158
|
-
return { border: "1px solid rgba(255, 255, 255, 0.08)" };
|
|
159
|
-
}
|
|
160
149
|
export {
|
|
161
150
|
DisplaySettingsProvider,
|
|
162
151
|
GLASS_TINTS,
|
|
163
152
|
PRESET_COLORS,
|
|
164
153
|
getEffectiveCompactMode,
|
|
165
|
-
useCardBorderStyle,
|
|
166
154
|
useDisplaySettings,
|
|
167
155
|
useDisplaySettingsOptional
|
|
168
156
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisplaySettingsContext.js","sources":["../../../src/react/context/DisplaySettingsContext.tsx"],"sourcesContent":["/**\n * @zendir/ui - DisplaySettingsContext\n * \n * Centralized context for app-wide display preferences.\n * Controls compact mode, accent colors, glass tint, and other display settings.\n * \n * Features:\n * - Compact mode toggle (affects all cards globally)\n * - Accent color selection (for card accents)\n * - Glass tint selection (for transparent themes)\n * - Color target control (both, accent-only, glass-only)\n * - LocalStorage persistence\n * \n * @example\n * ```tsx\n * import { DisplaySettingsProvider, useDisplaySettings } from '@zendir/ui';\n * \n * // Wrap your app\n * <DisplaySettingsProvider>\n * <App />\n * </DisplaySettingsProvider>\n * \n * // Use in components\n * function MyCard() {\n * const { compactMode, accentColor } = useDisplaySettings();\n * return <Card compact={compactMode} />;\n * }\n * ```\n */\n\nimport React, { createContext, useContext, useState, useCallback, useMemo, useEffect, type ReactNode } from 'react';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport type ColorTarget = 'both' | 'accent' | 'glass';\n\nexport interface DisplaySettings {\n /** Global compact mode - affects all cards */\n compactMode: boolean;\n \n /** Accent color for cards and UI elements */\n accentColor: string;\n \n /** Glass tint color for transparent themes */\n glassTint: string;\n \n /** Which color setting to apply: both, accent-only, or glass-only */\n colorTarget: ColorTarget;\n \n /** Enable accent-colored borders on cards (for transparent themes) */\n accentBorders: boolean;\n}\n\nexport interface DisplaySettingsContextValue extends DisplaySettings {\n /** Set compact mode on/off */\n setCompactMode: (value: boolean) => void;\n \n /** Toggle compact mode */\n toggleCompactMode: () => void;\n \n /** Set accent color */\n setAccentColor: (color: string) => void;\n \n /** Set glass tint color */\n setGlassTint: (color: string) => void;\n \n /** Set which color setting to apply */\n setColorTarget: (target: ColorTarget) => void;\n \n /** Set a color that applies based on current target */\n setColor: (color: string) => void;\n \n /** Set accent borders on/off */\n setAccentBorders: (value: boolean) => void;\n \n /** Toggle accent borders */\n toggleAccentBorders: () => void;\n \n /** Reset all settings to defaults */\n resetSettings: () => void;\n}\n\n// =============================================================================\n// Preset Colors\n// =============================================================================\n\nexport const PRESET_COLORS = {\n purple: '#8b5cf6',\n blue: '#3b82f6',\n cyan: '#06b6d4',\n teal: '#14b8a6',\n green: '#10b981',\n lime: '#84cc16',\n amber: '#f59e0b',\n orange: '#f97316',\n pink: '#ec4899',\n red: '#ef4444',\n slate: '#64748b',\n} as const;\n\nexport const GLASS_TINTS = {\n ...PRESET_COLORS,\n clear: 'rgba(255,255,255,0.05)',\n dark: 'rgba(0,0,0,0.3)',\n} as const;\n\nexport type PresetColorKey = keyof typeof PRESET_COLORS;\nexport type GlassTintKey = keyof typeof GLASS_TINTS;\n\n// =============================================================================\n// Default Values\n// =============================================================================\n\nconst DEFAULT_SETTINGS: DisplaySettings = {\n compactMode: false,\n accentColor: PRESET_COLORS.purple,\n glassTint: PRESET_COLORS.purple,\n colorTarget: 'both',\n accentBorders: true,\n};\n\nconst STORAGE_KEY = 'zendir-display-settings';\n\n// =============================================================================\n// Context\n// =============================================================================\n\nconst DisplaySettingsContext = createContext<DisplaySettingsContextValue | null>(null);\n\n// =============================================================================\n// Provider Props\n// =============================================================================\n\nexport interface DisplaySettingsProviderProps {\n children: ReactNode;\n \n /** Initial compact mode state */\n defaultCompactMode?: boolean;\n \n /** Initial accent color */\n defaultAccentColor?: string;\n \n /** Initial glass tint color */\n defaultGlassTint?: string;\n \n /** Initial color target */\n defaultColorTarget?: ColorTarget;\n \n /** Initial accent borders state */\n defaultAccentBorders?: boolean;\n \n /** Enable localStorage persistence (default: true) */\n persist?: boolean;\n}\n\n// =============================================================================\n// Provider Component\n// =============================================================================\n\nexport function DisplaySettingsProvider({\n children,\n defaultCompactMode,\n defaultAccentColor,\n defaultGlassTint,\n defaultColorTarget,\n defaultAccentBorders,\n persist = true,\n}: DisplaySettingsProviderProps): React.ReactElement {\n // Initialize state from localStorage or defaults\n const [settings, setSettings] = useState<DisplaySettings>(() => {\n if (persist && typeof window !== 'undefined') {\n try {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored) {\n const parsed = JSON.parse(stored);\n return {\n compactMode: parsed.compactMode ?? defaultCompactMode ?? DEFAULT_SETTINGS.compactMode,\n accentColor: parsed.accentColor ?? defaultAccentColor ?? DEFAULT_SETTINGS.accentColor,\n glassTint: parsed.glassTint ?? defaultGlassTint ?? DEFAULT_SETTINGS.glassTint,\n colorTarget: parsed.colorTarget ?? defaultColorTarget ?? DEFAULT_SETTINGS.colorTarget,\n accentBorders: parsed.accentBorders ?? defaultAccentBorders ?? DEFAULT_SETTINGS.accentBorders,\n };\n }\n } catch {\n // Ignore parse errors\n }\n }\n \n return {\n compactMode: defaultCompactMode ?? DEFAULT_SETTINGS.compactMode,\n accentColor: defaultAccentColor ?? DEFAULT_SETTINGS.accentColor,\n glassTint: defaultGlassTint ?? DEFAULT_SETTINGS.glassTint,\n colorTarget: defaultColorTarget ?? DEFAULT_SETTINGS.colorTarget,\n accentBorders: defaultAccentBorders ?? DEFAULT_SETTINGS.accentBorders,\n };\n });\n \n // Persist to localStorage when settings change\n useEffect(() => {\n if (persist && typeof window !== 'undefined') {\n try {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(settings));\n } catch {\n // Ignore storage errors\n }\n }\n }, [settings, persist]);\n \n // Setters\n const setCompactMode = useCallback((value: boolean) => {\n setSettings(prev => ({ ...prev, compactMode: value }));\n }, []);\n \n const toggleCompactMode = useCallback(() => {\n setSettings(prev => ({ ...prev, compactMode: !prev.compactMode }));\n }, []);\n \n const setAccentColor = useCallback((color: string) => {\n setSettings(prev => ({ ...prev, accentColor: color }));\n }, []);\n \n const setGlassTint = useCallback((color: string) => {\n setSettings(prev => ({ ...prev, glassTint: color }));\n }, []);\n \n const setColorTarget = useCallback((target: ColorTarget) => {\n setSettings(prev => ({ ...prev, colorTarget: target }));\n }, []);\n \n // Set color based on current target\n const setColor = useCallback((color: string) => {\n setSettings(prev => {\n switch (prev.colorTarget) {\n case 'accent':\n return { ...prev, accentColor: color };\n case 'glass':\n return { ...prev, glassTint: color };\n case 'both':\n default:\n return { ...prev, accentColor: color, glassTint: color };\n }\n });\n }, []);\n \n const setAccentBorders = useCallback((value: boolean) => {\n setSettings(prev => ({ ...prev, accentBorders: value }));\n }, []);\n \n const toggleAccentBorders = useCallback(() => {\n setSettings(prev => ({ ...prev, accentBorders: !prev.accentBorders }));\n }, []);\n \n const resetSettings = useCallback(() => {\n setSettings(DEFAULT_SETTINGS);\n }, []);\n \n // Memoized context value\n const value = useMemo<DisplaySettingsContextValue>(() => ({\n ...settings,\n setCompactMode,\n toggleCompactMode,\n setAccentColor,\n setGlassTint,\n setColorTarget,\n setColor,\n setAccentBorders,\n toggleAccentBorders,\n resetSettings,\n }), [\n settings,\n setCompactMode,\n toggleCompactMode,\n setAccentColor,\n setGlassTint,\n setColorTarget,\n setColor,\n setAccentBorders,\n toggleAccentBorders,\n resetSettings,\n ]);\n \n return (\n <DisplaySettingsContext.Provider value={value}>\n {children}\n </DisplaySettingsContext.Provider>\n );\n}\n\n// =============================================================================\n// Hook\n// =============================================================================\n\n/**\n * Access display settings context\n * Must be used within a DisplaySettingsProvider\n */\nexport function useDisplaySettings(): DisplaySettingsContextValue {\n const context = useContext(DisplaySettingsContext);\n \n if (!context) {\n throw new Error('useDisplaySettings must be used within a DisplaySettingsProvider');\n }\n \n return context;\n}\n\n/**\n * Optional hook that returns null if not within provider\n * Useful for components that should work with or without the provider\n */\nexport function useDisplaySettingsOptional(): DisplaySettingsContextValue | null {\n return useContext(DisplaySettingsContext);\n}\n\n// =============================================================================\n// Utility Functions\n// =============================================================================\n\n/**\n * Get effective compact mode value\n * Priority: explicit prop > context value > default (false)\n */\nexport function getEffectiveCompactMode(\n propValue: boolean | undefined,\n contextValue: boolean | undefined\n): boolean {\n if (propValue !== undefined) return propValue;\n if (contextValue !== undefined) return contextValue;\n return false;\n}\n\n/**\n * Get effective accent borders value\n * Priority: explicit prop > context value > default (true)\n */\nexport function getEffectiveAccentBorders(\n propValue: boolean | undefined,\n contextValue: boolean | undefined\n): boolean {\n if (propValue !== undefined) return propValue;\n if (contextValue !== undefined) return contextValue;\n return true;\n}\n\n/**\n * Hook to get card border style based on accentBorders setting\n * Returns the appropriate border style for transparent themes\n */\nexport function useCardBorderStyle(\n tokens: any,\n isTransparentTheme: boolean\n): React.CSSProperties {\n const displaySettings = useDisplaySettingsOptional();\n const accentBorders = displaySettings?.accentBorders ?? true;\n \n if (!isTransparentTheme) {\n return tokens.colors.border.cardStyle ?? { border: `1px solid ${tokens.colors.border.muted}` };\n }\n \n if (accentBorders) {\n return tokens.colors.border.cardStyle ?? {};\n }\n \n // Fallback to subtle neutral border when accent borders disabled\n return { border: '1px solid rgba(255, 255, 255, 0.08)' };\n}\n\nexport default DisplaySettingsProvider;\n"],"names":["value"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DisplaySettingsContext.js","sources":["../../../src/react/context/DisplaySettingsContext.tsx"],"sourcesContent":["/**\n * @zendir/ui - DisplaySettingsContext\n * \n * Centralized context for app-wide display preferences.\n * Controls compact mode, accent colors, glass tint, and other display settings.\n * \n * Features:\n * - Compact mode toggle (affects all cards globally)\n * - Accent color selection (for card accents)\n * - Glass tint selection (for transparent themes)\n * - Color target control (both, accent-only, glass-only)\n * - LocalStorage persistence\n * \n * @example\n * ```tsx\n * import { DisplaySettingsProvider, useDisplaySettings } from '@zendir/ui';\n * \n * // Wrap your app\n * <DisplaySettingsProvider>\n * <App />\n * </DisplaySettingsProvider>\n * \n * // Use in components\n * function MyCard() {\n * const { compactMode, accentColor } = useDisplaySettings();\n * return <Card compact={compactMode} />;\n * }\n * ```\n */\n\nimport React, { createContext, useContext, useState, useCallback, useMemo, useEffect, type ReactNode } from 'react';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport type ColorTarget = 'both' | 'accent' | 'glass';\n\nexport interface DisplaySettings {\n /** Global compact mode - affects all cards */\n compactMode: boolean;\n \n /** Accent color for cards and UI elements */\n accentColor: string;\n \n /** Glass tint color for transparent themes */\n glassTint: string;\n \n /** Which color setting to apply: both, accent-only, or glass-only */\n colorTarget: ColorTarget;\n \n /** Enable accent-colored borders on cards (for transparent themes) */\n accentBorders: boolean;\n}\n\nexport interface DisplaySettingsContextValue extends DisplaySettings {\n /** Set compact mode on/off */\n setCompactMode: (value: boolean) => void;\n \n /** Toggle compact mode */\n toggleCompactMode: () => void;\n \n /** Set accent color */\n setAccentColor: (color: string) => void;\n \n /** Set glass tint color */\n setGlassTint: (color: string) => void;\n \n /** Set which color setting to apply */\n setColorTarget: (target: ColorTarget) => void;\n \n /** Set a color that applies based on current target */\n setColor: (color: string) => void;\n \n /** Set accent borders on/off */\n setAccentBorders: (value: boolean) => void;\n \n /** Toggle accent borders */\n toggleAccentBorders: () => void;\n \n /** Reset all settings to defaults */\n resetSettings: () => void;\n}\n\n// =============================================================================\n// Preset Colors\n// =============================================================================\n\nexport const PRESET_COLORS = {\n purple: '#8b5cf6',\n blue: '#3b82f6',\n cyan: '#06b6d4',\n teal: '#14b8a6',\n green: '#10b981',\n lime: '#84cc16',\n amber: '#f59e0b',\n orange: '#f97316',\n pink: '#ec4899',\n red: '#ef4444',\n slate: '#64748b',\n} as const;\n\nexport const GLASS_TINTS = {\n ...PRESET_COLORS,\n clear: 'rgba(255,255,255,0.05)',\n dark: 'rgba(0,0,0,0.3)',\n} as const;\n\nexport type PresetColorKey = keyof typeof PRESET_COLORS;\nexport type GlassTintKey = keyof typeof GLASS_TINTS;\n\n// =============================================================================\n// Default Values\n// =============================================================================\n\nconst DEFAULT_SETTINGS: DisplaySettings = {\n compactMode: false,\n accentColor: PRESET_COLORS.purple,\n glassTint: PRESET_COLORS.purple,\n colorTarget: 'both',\n accentBorders: true,\n};\n\nconst STORAGE_KEY = 'zendir-display-settings';\n\n// =============================================================================\n// Context\n// =============================================================================\n\nconst DisplaySettingsContext = createContext<DisplaySettingsContextValue | null>(null);\n\n// =============================================================================\n// Provider Props\n// =============================================================================\n\nexport interface DisplaySettingsProviderProps {\n children: ReactNode;\n \n /** Initial compact mode state */\n defaultCompactMode?: boolean;\n \n /** Initial accent color */\n defaultAccentColor?: string;\n \n /** Initial glass tint color */\n defaultGlassTint?: string;\n \n /** Initial color target */\n defaultColorTarget?: ColorTarget;\n \n /** Initial accent borders state */\n defaultAccentBorders?: boolean;\n \n /** Enable localStorage persistence (default: true) */\n persist?: boolean;\n}\n\n// =============================================================================\n// Provider Component\n// =============================================================================\n\nexport function DisplaySettingsProvider({\n children,\n defaultCompactMode,\n defaultAccentColor,\n defaultGlassTint,\n defaultColorTarget,\n defaultAccentBorders,\n persist = true,\n}: DisplaySettingsProviderProps): React.ReactElement {\n // Initialize state from localStorage or defaults\n const [settings, setSettings] = useState<DisplaySettings>(() => {\n if (persist && typeof window !== 'undefined') {\n try {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored) {\n const parsed = JSON.parse(stored);\n return {\n compactMode: parsed.compactMode ?? defaultCompactMode ?? DEFAULT_SETTINGS.compactMode,\n accentColor: parsed.accentColor ?? defaultAccentColor ?? DEFAULT_SETTINGS.accentColor,\n glassTint: parsed.glassTint ?? defaultGlassTint ?? DEFAULT_SETTINGS.glassTint,\n colorTarget: parsed.colorTarget ?? defaultColorTarget ?? DEFAULT_SETTINGS.colorTarget,\n accentBorders: parsed.accentBorders ?? defaultAccentBorders ?? DEFAULT_SETTINGS.accentBorders,\n };\n }\n } catch {\n // Ignore parse errors\n }\n }\n \n return {\n compactMode: defaultCompactMode ?? DEFAULT_SETTINGS.compactMode,\n accentColor: defaultAccentColor ?? DEFAULT_SETTINGS.accentColor,\n glassTint: defaultGlassTint ?? DEFAULT_SETTINGS.glassTint,\n colorTarget: defaultColorTarget ?? DEFAULT_SETTINGS.colorTarget,\n accentBorders: defaultAccentBorders ?? DEFAULT_SETTINGS.accentBorders,\n };\n });\n \n // Persist to localStorage when settings change\n useEffect(() => {\n if (persist && typeof window !== 'undefined') {\n try {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(settings));\n } catch {\n // Ignore storage errors\n }\n }\n }, [settings, persist]);\n \n // Setters\n const setCompactMode = useCallback((value: boolean) => {\n setSettings(prev => ({ ...prev, compactMode: value }));\n }, []);\n \n const toggleCompactMode = useCallback(() => {\n setSettings(prev => ({ ...prev, compactMode: !prev.compactMode }));\n }, []);\n \n const setAccentColor = useCallback((color: string) => {\n setSettings(prev => ({ ...prev, accentColor: color }));\n }, []);\n \n const setGlassTint = useCallback((color: string) => {\n setSettings(prev => ({ ...prev, glassTint: color }));\n }, []);\n \n const setColorTarget = useCallback((target: ColorTarget) => {\n setSettings(prev => ({ ...prev, colorTarget: target }));\n }, []);\n \n // Set color based on current target\n const setColor = useCallback((color: string) => {\n setSettings(prev => {\n switch (prev.colorTarget) {\n case 'accent':\n return { ...prev, accentColor: color };\n case 'glass':\n return { ...prev, glassTint: color };\n case 'both':\n default:\n return { ...prev, accentColor: color, glassTint: color };\n }\n });\n }, []);\n \n const setAccentBorders = useCallback((value: boolean) => {\n setSettings(prev => ({ ...prev, accentBorders: value }));\n }, []);\n \n const toggleAccentBorders = useCallback(() => {\n setSettings(prev => ({ ...prev, accentBorders: !prev.accentBorders }));\n }, []);\n \n const resetSettings = useCallback(() => {\n setSettings(DEFAULT_SETTINGS);\n }, []);\n \n // Memoized context value\n const value = useMemo<DisplaySettingsContextValue>(() => ({\n ...settings,\n setCompactMode,\n toggleCompactMode,\n setAccentColor,\n setGlassTint,\n setColorTarget,\n setColor,\n setAccentBorders,\n toggleAccentBorders,\n resetSettings,\n }), [\n settings,\n setCompactMode,\n toggleCompactMode,\n setAccentColor,\n setGlassTint,\n setColorTarget,\n setColor,\n setAccentBorders,\n toggleAccentBorders,\n resetSettings,\n ]);\n \n return (\n <DisplaySettingsContext.Provider value={value}>\n {children}\n </DisplaySettingsContext.Provider>\n );\n}\n\n// =============================================================================\n// Hook\n// =============================================================================\n\n/**\n * Access display settings context\n * Must be used within a DisplaySettingsProvider\n */\nexport function useDisplaySettings(): DisplaySettingsContextValue {\n const context = useContext(DisplaySettingsContext);\n \n if (!context) {\n throw new Error('useDisplaySettings must be used within a DisplaySettingsProvider');\n }\n \n return context;\n}\n\n/**\n * Optional hook that returns null if not within provider\n * Useful for components that should work with or without the provider\n */\nexport function useDisplaySettingsOptional(): DisplaySettingsContextValue | null {\n return useContext(DisplaySettingsContext);\n}\n\n// =============================================================================\n// Utility Functions\n// =============================================================================\n\n/**\n * Get effective compact mode value\n * Priority: explicit prop > context value > default (false)\n */\nexport function getEffectiveCompactMode(\n propValue: boolean | undefined,\n contextValue: boolean | undefined\n): boolean {\n if (propValue !== undefined) return propValue;\n if (contextValue !== undefined) return contextValue;\n return false;\n}\n\n/**\n * Get effective accent borders value\n * Priority: explicit prop > context value > default (true)\n */\nexport function getEffectiveAccentBorders(\n propValue: boolean | undefined,\n contextValue: boolean | undefined\n): boolean {\n if (propValue !== undefined) return propValue;\n if (contextValue !== undefined) return contextValue;\n return true;\n}\n\n/**\n * Hook to get card border style based on accentBorders setting\n * Returns the appropriate border style for transparent themes\n */\nexport function useCardBorderStyle(\n tokens: any,\n isTransparentTheme: boolean\n): React.CSSProperties {\n const displaySettings = useDisplaySettingsOptional();\n const accentBorders = displaySettings?.accentBorders ?? true;\n \n if (!isTransparentTheme) {\n return tokens.colors.border.cardStyle ?? { border: `1px solid ${tokens.colors.border.muted}` };\n }\n \n if (accentBorders) {\n return tokens.colors.border.cardStyle ?? {};\n }\n \n // Fallback to subtle neutral border when accent borders disabled\n return { border: '1px solid rgba(255, 255, 255, 0.08)' };\n}\n\nexport default DisplaySettingsProvider;\n"],"names":["value"],"mappings":"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"}
|
package/dist/react/index.d.ts
CHANGED
|
@@ -28,36 +28,6 @@ export { withNullSafety, safeNumber, isValidNumber, formatNumber, formatTabular,
|
|
|
28
28
|
export type { StatusLevel, FormatNumberOptions } from './utils';
|
|
29
29
|
export { StatusIndicator, ClassificationBanner, GlobalStatusBar, MissionClock, MonitoringIcon, Progress, Notification, Timeline, SimulationControls, MiniSimulationControls, SimulationControlsWithClock, } from './astro';
|
|
30
30
|
export type { StatusIndicatorProps, StatusVariant, ClassificationBannerProps, ClassificationLevel, GlobalStatusBarProps, MissionClockProps, MonitoringIconProps, MonitoringStatus, ProgressProps, NotificationProps, NotificationStatus, TimelineProps, TimelineEvent, TimelineTrackDef, TimelineViewMode, TimeFormat, TimelineFilter, AstroStatus, AstroClassification, SimulationControlsProps, MiniSimulationControlsProps, SimulationControlsWithClockProps, } from './astro';
|
|
31
|
-
export { SpacecraftCard } from './cards/SpacecraftCard';
|
|
32
|
-
export type { SpacecraftCardProps } from './cards/SpacecraftCard';
|
|
33
|
-
export { TelemetryCard } from './cards/TelemetryCard';
|
|
34
|
-
export type { TelemetryCardProps } from './cards/TelemetryCard';
|
|
35
|
-
export { AccessCard } from './cards/AccessCard';
|
|
36
|
-
export type { AccessCardProps } from './cards/AccessCard';
|
|
37
|
-
export { OrbitCard } from './cards/OrbitCard';
|
|
38
|
-
export type { OrbitCardProps } from './cards/OrbitCard';
|
|
39
|
-
export { TelemetryStreamCard } from './cards/TelemetryStreamCard';
|
|
40
|
-
export type { TelemetryStreamCardProps, TelemetryMetric } from './cards/TelemetryStreamCard';
|
|
41
|
-
export { AstroChart, LineChart, AreaChart, BarChart, ScatterChart, PieChart, DonutChart, GaugeChart, RadarChart, HeatmapChart, TimeSeriesChart, DualAxisChart, StackedAreaChart, StackedBarChart, BubbleChart, HistogramChart, SankeyChart, TreemapChart, SunburstChart, ParallelChart, CandlestickChart, GraphChart, PowerChart, AttitudeChart, ThermalHeatmapChart, LinkBudgetChart, SubsystemGauge, OrbitChart, ContactWindowChart, SpectrumChart, ManeuverBudgetChart, EclipseTimelineChart, RoseDiagram, HeliocentricOrbitPlot, Scatter3DChart, Bar3DChart, Surface3DChart, Lines3DChart, SphericalRadar3DChart, TransferOrbit3DChart, AttitudeHistory3DChart, ConjunctionAssessment3DChart, LaunchCorridor3DChart, AntennaPattern3DChart, WaterfallChart, DopplerTrackChart, LinkMarginChart, ConstellationCoverageChart, ConjunctionChart, generatePowerData, generateAttitudeData, generateDopplerData, generateWaterfallData, generateContactWindows, generateHeliocentricOrbits, generateSpectrum, generateEclipseTimeline, generateConstellationCoverage, generateConjunctionEvents, PowerOverviewChart, generateSamplePowerData, createAstroEChartsTheme, ASTRO_DATA_VIZ_COLORS, STATUS_COLORS as CHART_STATUS_COLORS, getSeriesColor, createAreaGradient, formatTimeLabel, formatValueWithUnit, calculateAxisBounds, useChartStream, useWebSocketStream, useChartSync, dispatchToGroup, syncZoomRange, resetGroupZoom, showGroupTooltip, hideGroupTooltip, getGroupCharts, exportGroupAsImages, exportGroupAsCSV, GroundTrackMap, } from './charts';
|
|
42
|
-
export type { AstroChartHandle, AstroChartProps, ChartType, ChartTheme, DataPoint, TimeSeriesPoint, SeriesData, AxisOptions, ZoomOptions, TooltipOptions as ChartTooltipOptions, LegendOptions, AnnotationOptions, RealTimeOptions, ExportOptions, ChartEventParams, ZoomEventParams, PowerChartData, AttitudeChartData, ThermalChartData, LinkBudgetChartData, ContactWindowData, SpectrumDataPoint, ManeuverBudgetData, EclipseTimelineData, BubbleDataPoint, RoseDiagramData, HeliocentricOrbitData, Data3DPoint, Scatter3DData, Bar3DData, Surface3DData, Lines3DData, LineChartProps, AreaChartProps, BarChartProps, ScatterChartProps, PieChartProps, GaugeChartProps, RadarChartProps, HeatmapChartProps, TimeSeriesChartProps, DualAxisChartProps, BubbleChartProps, HistogramChartProps, SankeyChartProps, TreemapChartProps, TreemapDataNode, SunburstChartProps, SunburstDataNode, ParallelChartProps, ParallelAxisDef, CandlestickChartProps, CandlestickDataPoint, GraphChartProps, GraphNode, GraphLink, GraphCategory, PowerChartProps, AttitudeChartProps, ThermalHeatmapChartProps, LinkBudgetChartProps, SubsystemGaugeProps, OrbitChartProps, ContactWindowChartProps, SpectrumChartProps, ManeuverBudgetChartProps, EclipseTimelineChartProps, RoseDiagramProps, HeliocentricOrbitProps, Scatter3DChartProps, Bar3DChartProps, Surface3DChartProps, Lines3DChartProps, SphericalRadar3DChartProps, SphericalRadar3DData, TransferOrbit3DChartProps, TransferOrbitSegment, TransferOrbitWaypoint, AttitudeHistory3DChartProps, AttitudeHistoryPoint, ConjunctionAssessment3DChartProps, ConjunctionEvent, LaunchCorridor3DChartProps, LaunchCorridorData, AntennaPattern3DChartProps, AntennaPattern3DData, WaterfallChartProps, DopplerTrackChartProps, LinkMarginChartProps, WaterfallDataPoint, WaterfallSignalMarker, DopplerTrackPoint, SatellitePassInfo, LinkMarginPoint, CoverageGridData, PowerGeneratorConfig, AttitudeGeneratorConfig, DopplerGeneratorConfig, WaterfallGeneratorConfig, ContactGeneratorConfig, HeliocentricGeneratorConfig, SpectrumGeneratorConfig, EclipseGeneratorConfig, PowerOverviewChartProps, PowerTimelinePoint, PowerEvent, PowerState, OperationalMode, EventType, StreamOptions, StreamController, UseChartSyncOptions, EChartsTheme, GroundTrackMapProps, SatelliteTrack, GroundStationEnhanced, TeamPath, SROGroundStation, } from './charts';
|
|
43
|
-
export { EclipseTimerCard } from './visualizations/EclipseTimerCard';
|
|
44
|
-
export type { EclipseTimerCardProps } from './visualizations/EclipseTimerCard';
|
|
45
|
-
export { NavBallCard } from './visualizations/NavBallCard';
|
|
46
|
-
export type { NavBallCardProps } from './visualizations/NavBallCard';
|
|
47
|
-
export { LinkBudgetCard } from './visualizations/LinkBudgetCard';
|
|
48
|
-
export type { LinkBudgetCardProps, LinkBudgetData } from './visualizations/LinkBudgetCard';
|
|
49
|
-
export { ThermalHeatmapCard } from './visualizations/ThermalHeatmapCard';
|
|
50
|
-
export type { ThermalHeatmapCardProps, ComponentThermal } from './visualizations/ThermalHeatmapCard';
|
|
51
|
-
export { PropulsionCard } from './visualizations/PropulsionCard';
|
|
52
|
-
export type { PropulsionCardProps, PropulsionTankData, ManeuverFeasibility } from './visualizations/PropulsionCard';
|
|
53
|
-
export { SensorFootprintCard } from './visualizations/SensorFootprintCard';
|
|
54
|
-
export type { SensorFootprintCardProps, FootprintSensorConfig } from './visualizations/SensorFootprintCard';
|
|
55
|
-
export { ZenSpace3D, ZenSpace3DCesium, latLonAltToCartesian, cartesianToLatLonAlt, parseTLE, propagateSGP4Simple, propagateSatellite, generateOrbitPath, calculateVisibilityConeGeometry, generateHexGrid, atmosphereVertexShader, atmosphereFragmentShader, starsVertexShader, starsFragmentShader, EARTH_RADIUS_KM, SCENE_EARTH_RADIUS, KM_TO_SCENE, } from './3d';
|
|
56
|
-
export type { ZenSpace3DProps, ZenSpace3DHandle, ZenSpace3DCesiumProps, ViewMode, CameraMode, ObjectCategory, SpaceObject, Satellite as ZenSatellite, Debris, SpaceStation as ZenSpaceStation, Asteroid, TLEData, OrbitPath, ManeuverNode, VisibilityCone, CoverageRegion, CoverageHexGrid, OverpassInfo, TimeState, SelectionState, CameraState, LayerVisibility, ToolType, Vector3D, LatLonAlt, ZenSpace3DCallbacks, } from './3d';
|
|
57
|
-
export { EarthViewer } from './3d/EarthViewer';
|
|
58
|
-
export type { EarthViewerProps } from './3d/EarthViewer';
|
|
59
|
-
export { SolarSystemViewer } from './3d/SolarSystemViewer';
|
|
60
|
-
export type { SolarSystemViewerProps, PlanetPosition } from './3d/SolarSystemViewer';
|
|
61
31
|
export { useZendirSession } from './hooks/useZendirSession';
|
|
62
32
|
export type { UseZendirSessionOptions, UseZendirSessionResult } from './hooks/useZendirSession';
|
|
63
33
|
export { useTelemetry } from './hooks/useTelemetry';
|
|
@@ -230,13 +230,6 @@ const STATUS_COLORS = {
|
|
|
230
230
|
function getStatusColor(status) {
|
|
231
231
|
return STATUS_COLORS[status ?? "off"];
|
|
232
232
|
}
|
|
233
|
-
function deriveBatteryStatus(level) {
|
|
234
|
-
if (level === void 0 || level === null) return "off";
|
|
235
|
-
if (level <= 10) return "critical";
|
|
236
|
-
if (level <= 20) return "serious";
|
|
237
|
-
if (level <= 30) return "caution";
|
|
238
|
-
return "normal";
|
|
239
|
-
}
|
|
240
233
|
function getStatusFromValue(value, thresholds, higherIsBetter = true) {
|
|
241
234
|
if (value === null || value === void 0 || !Number.isFinite(value)) {
|
|
242
235
|
return "off";
|
|
@@ -385,7 +378,6 @@ export {
|
|
|
385
378
|
addAlpha,
|
|
386
379
|
clamp,
|
|
387
380
|
classNames,
|
|
388
|
-
deriveBatteryStatus,
|
|
389
381
|
focusRingStyle,
|
|
390
382
|
formatAltitude,
|
|
391
383
|
formatCoordinate,
|