@buoy-gg/shared-ui 7.0.26 → 7.0.28
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/lib/commonjs/JsModal.js +156 -20
- package/lib/commonjs/JsModal.web.js +85 -39
- package/lib/commonjs/dataViewer/VirtualizedDataExplorer.js +14 -4
- package/lib/commonjs/dataViewer/diffThemes.js +20 -18
- package/lib/commonjs/dataViewer/tree/TreeDiffViewer.js +8 -8
- package/lib/commonjs/hooks/safe-area-impl.js +1 -1
- package/lib/commonjs/icons/lucide-icons.js +74 -15
- package/lib/commonjs/index.js +86 -0
- package/lib/commonjs/ui/backgrounds/BackgroundSwitcher.js +248 -74
- package/lib/commonjs/ui/backgrounds/README.md +102 -20
- package/lib/commonjs/ui/backgrounds/backgroundStore.js +20 -6
- package/lib/commonjs/ui/backgrounds/index.js +91 -1
- package/lib/commonjs/ui/backgrounds/primitives.js +50 -14
- package/lib/commonjs/ui/backgrounds/registry.js +41 -64
- package/lib/commonjs/ui/backgrounds/rng.js +21 -0
- package/lib/commonjs/ui/backgrounds/skyClock.js +45 -0
- package/lib/commonjs/ui/backgrounds/variants/daylight.js +453 -0
- package/lib/commonjs/ui/backgrounds/variants/deepField.js +60 -30
- package/lib/commonjs/ui/backgrounds/variants/hyperspace.js +218 -0
- package/lib/commonjs/ui/backgrounds/variants/liveSky.js +898 -0
- package/lib/commonjs/ui/backgrounds/variants/meteors.js +257 -0
- package/lib/commonjs/ui/backgrounds/variants/moonlight.js +472 -0
- package/lib/commonjs/ui/backgrounds/variants/underwater.js +757 -0
- package/lib/commonjs/ui/components/Badge.js +11 -10
- package/lib/commonjs/ui/components/CompactRow.js +35 -18
- package/lib/commonjs/ui/components/CopyButton.js +6 -4
- package/lib/commonjs/ui/components/DevToolsCard.js +16 -9
- package/lib/commonjs/ui/components/DynamicFilterView.js +43 -41
- package/lib/commonjs/ui/components/EventStepperFooter.js +38 -10
- package/lib/commonjs/ui/components/FilterComponents.js +11 -11
- package/lib/commonjs/ui/components/ModalHeader.js +28 -15
- package/lib/commonjs/ui/components/SectionHeader.js +3 -1
- package/lib/commonjs/ui/components/StorageTypeBadge.js +3 -2
- package/lib/commonjs/ui/components/TabSelector.js +56 -38
- package/lib/commonjs/ui/components/ValueTypeBadge.js +7 -6
- package/lib/commonjs/ui/components/WindowControls.js +37 -10
- package/lib/commonjs/ui/gameUI/constants/gameUIColors.js +8 -0
- package/lib/commonjs/ui/night/nightTheme.js +120 -0
- package/lib/commonjs/ui/night/primitives.js +498 -0
- package/lib/module/JsModal.js +156 -20
- package/lib/module/JsModal.web.js +83 -39
- package/lib/module/dataViewer/VirtualizedDataExplorer.js +14 -4
- package/lib/module/dataViewer/diffThemes.js +20 -18
- package/lib/module/dataViewer/tree/TreeDiffViewer.js +9 -9
- package/lib/module/hooks/safe-area-impl.js +1 -1
- package/lib/module/icons/lucide-icons.js +74 -15
- package/lib/module/index.js +4 -0
- package/lib/module/ui/backgrounds/BackgroundSwitcher.js +250 -76
- package/lib/module/ui/backgrounds/README.md +102 -20
- package/lib/module/ui/backgrounds/backgroundStore.js +19 -5
- package/lib/module/ui/backgrounds/index.js +11 -2
- package/lib/module/ui/backgrounds/primitives.js +53 -16
- package/lib/module/ui/backgrounds/registry.js +41 -64
- package/lib/module/ui/backgrounds/rng.js +20 -0
- package/lib/module/ui/backgrounds/skyClock.js +39 -0
- package/lib/module/ui/backgrounds/variants/daylight.js +449 -0
- package/lib/module/ui/backgrounds/variants/deepField.js +62 -31
- package/lib/module/ui/backgrounds/variants/hyperspace.js +214 -0
- package/lib/module/ui/backgrounds/variants/liveSky.js +893 -0
- package/lib/module/ui/backgrounds/variants/meteors.js +253 -0
- package/lib/module/ui/backgrounds/variants/moonlight.js +468 -0
- package/lib/module/ui/backgrounds/variants/underwater.js +753 -0
- package/lib/module/ui/components/Badge.js +11 -10
- package/lib/module/ui/components/CompactRow.js +35 -18
- package/lib/module/ui/components/CopyButton.js +6 -4
- package/lib/module/ui/components/DevToolsCard.js +16 -9
- package/lib/module/ui/components/DynamicFilterView.js +43 -41
- package/lib/module/ui/components/EventStepperFooter.js +38 -10
- package/lib/module/ui/components/FilterComponents.js +11 -11
- package/lib/module/ui/components/ModalHeader.js +28 -15
- package/lib/module/ui/components/SectionHeader.js +3 -1
- package/lib/module/ui/components/StorageTypeBadge.js +3 -2
- package/lib/module/ui/components/TabSelector.js +57 -39
- package/lib/module/ui/components/ValueTypeBadge.js +7 -6
- package/lib/module/ui/components/WindowControls.js +37 -10
- package/lib/module/ui/gameUI/constants/gameUIColors.js +8 -0
- package/lib/module/ui/night/nightTheme.js +116 -0
- package/lib/module/ui/night/primitives.js +485 -0
- package/lib/typescript/commonjs/JsModal.d.ts +18 -0
- package/lib/typescript/commonjs/JsModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/JsModal.web.d.ts +13 -0
- package/lib/typescript/commonjs/JsModal.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/dataViewer/VirtualizedDataExplorer.d.ts.map +1 -1
- package/lib/typescript/commonjs/dataViewer/diffThemes.d.ts +3 -1
- package/lib/typescript/commonjs/dataViewer/diffThemes.d.ts.map +1 -1
- package/lib/typescript/commonjs/dataViewer/tree/TreeDiffViewer.d.ts.map +1 -1
- package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts +1 -1
- package/lib/typescript/commonjs/icons/lucide-icons.d.ts +12 -1
- package/lib/typescript/commonjs/icons/lucide-icons.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +3 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/backgrounds/BackgroundSwitcher.d.ts +26 -6
- package/lib/typescript/commonjs/ui/backgrounds/BackgroundSwitcher.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/backgrounds/backgroundStore.d.ts +3 -0
- package/lib/typescript/commonjs/ui/backgrounds/backgroundStore.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/backgrounds/index.d.ts +7 -1
- package/lib/typescript/commonjs/ui/backgrounds/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/backgrounds/primitives.d.ts +18 -3
- package/lib/typescript/commonjs/ui/backgrounds/primitives.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/backgrounds/registry.d.ts +8 -0
- package/lib/typescript/commonjs/ui/backgrounds/registry.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/backgrounds/rng.d.ts +6 -0
- package/lib/typescript/commonjs/ui/backgrounds/rng.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/backgrounds/skyClock.d.ts +17 -0
- package/lib/typescript/commonjs/ui/backgrounds/skyClock.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/backgrounds/types.d.ts +1 -1
- package/lib/typescript/commonjs/ui/backgrounds/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/backgrounds/variants/daylight.d.ts +30 -0
- package/lib/typescript/commonjs/ui/backgrounds/variants/daylight.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/backgrounds/variants/deepField.d.ts +19 -4
- package/lib/typescript/commonjs/ui/backgrounds/variants/deepField.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/backgrounds/variants/hyperspace.d.ts +39 -0
- package/lib/typescript/commonjs/ui/backgrounds/variants/hyperspace.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/backgrounds/variants/liveSky.d.ts +41 -0
- package/lib/typescript/commonjs/ui/backgrounds/variants/liveSky.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/backgrounds/variants/meteors.d.ts +26 -0
- package/lib/typescript/commonjs/ui/backgrounds/variants/meteors.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/backgrounds/variants/moonlight.d.ts +35 -0
- package/lib/typescript/commonjs/ui/backgrounds/variants/moonlight.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/backgrounds/variants/underwater.d.ts +51 -0
- package/lib/typescript/commonjs/ui/backgrounds/variants/underwater.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/Badge.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/CompactRow.d.ts +3 -1
- package/lib/typescript/commonjs/ui/components/CompactRow.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/CopyButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/DevToolsCard.d.ts +3 -1
- package/lib/typescript/commonjs/ui/components/DevToolsCard.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/DynamicFilterView.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/EventStepperFooter.d.ts +2 -0
- package/lib/typescript/commonjs/ui/components/EventStepperFooter.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ModalHeader.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/StorageTypeBadge.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/TabSelector.d.ts +9 -0
- package/lib/typescript/commonjs/ui/components/TabSelector.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ValueTypeBadge.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/WindowControls.d.ts +4 -2
- package/lib/typescript/commonjs/ui/components/WindowControls.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/gameUI/constants/gameUIColors.d.ts +8 -0
- package/lib/typescript/commonjs/ui/gameUI/constants/gameUIColors.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/night/nightTheme.d.ts +113 -0
- package/lib/typescript/commonjs/ui/night/nightTheme.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/night/primitives.d.ts +111 -0
- package/lib/typescript/commonjs/ui/night/primitives.d.ts.map +1 -0
- package/lib/typescript/module/JsModal.d.ts +18 -0
- package/lib/typescript/module/JsModal.d.ts.map +1 -1
- package/lib/typescript/module/JsModal.web.d.ts +13 -0
- package/lib/typescript/module/JsModal.web.d.ts.map +1 -1
- package/lib/typescript/module/dataViewer/VirtualizedDataExplorer.d.ts.map +1 -1
- package/lib/typescript/module/dataViewer/diffThemes.d.ts +3 -1
- package/lib/typescript/module/dataViewer/diffThemes.d.ts.map +1 -1
- package/lib/typescript/module/dataViewer/tree/TreeDiffViewer.d.ts.map +1 -1
- package/lib/typescript/module/hooks/safe-area-impl.d.ts +1 -1
- package/lib/typescript/module/icons/lucide-icons.d.ts +12 -1
- package/lib/typescript/module/icons/lucide-icons.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +3 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/backgrounds/BackgroundSwitcher.d.ts +26 -6
- package/lib/typescript/module/ui/backgrounds/BackgroundSwitcher.d.ts.map +1 -1
- package/lib/typescript/module/ui/backgrounds/backgroundStore.d.ts +3 -0
- package/lib/typescript/module/ui/backgrounds/backgroundStore.d.ts.map +1 -1
- package/lib/typescript/module/ui/backgrounds/index.d.ts +7 -1
- package/lib/typescript/module/ui/backgrounds/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/backgrounds/primitives.d.ts +18 -3
- package/lib/typescript/module/ui/backgrounds/primitives.d.ts.map +1 -1
- package/lib/typescript/module/ui/backgrounds/registry.d.ts +8 -0
- package/lib/typescript/module/ui/backgrounds/registry.d.ts.map +1 -1
- package/lib/typescript/module/ui/backgrounds/rng.d.ts +6 -0
- package/lib/typescript/module/ui/backgrounds/rng.d.ts.map +1 -1
- package/lib/typescript/module/ui/backgrounds/skyClock.d.ts +17 -0
- package/lib/typescript/module/ui/backgrounds/skyClock.d.ts.map +1 -0
- package/lib/typescript/module/ui/backgrounds/types.d.ts +1 -1
- package/lib/typescript/module/ui/backgrounds/types.d.ts.map +1 -1
- package/lib/typescript/module/ui/backgrounds/variants/daylight.d.ts +30 -0
- package/lib/typescript/module/ui/backgrounds/variants/daylight.d.ts.map +1 -0
- package/lib/typescript/module/ui/backgrounds/variants/deepField.d.ts +19 -4
- package/lib/typescript/module/ui/backgrounds/variants/deepField.d.ts.map +1 -1
- package/lib/typescript/module/ui/backgrounds/variants/hyperspace.d.ts +39 -0
- package/lib/typescript/module/ui/backgrounds/variants/hyperspace.d.ts.map +1 -0
- package/lib/typescript/module/ui/backgrounds/variants/liveSky.d.ts +41 -0
- package/lib/typescript/module/ui/backgrounds/variants/liveSky.d.ts.map +1 -0
- package/lib/typescript/module/ui/backgrounds/variants/meteors.d.ts +26 -0
- package/lib/typescript/module/ui/backgrounds/variants/meteors.d.ts.map +1 -0
- package/lib/typescript/module/ui/backgrounds/variants/moonlight.d.ts +35 -0
- package/lib/typescript/module/ui/backgrounds/variants/moonlight.d.ts.map +1 -0
- package/lib/typescript/module/ui/backgrounds/variants/underwater.d.ts +51 -0
- package/lib/typescript/module/ui/backgrounds/variants/underwater.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/Badge.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/CompactRow.d.ts +3 -1
- package/lib/typescript/module/ui/components/CompactRow.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/CopyButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/DevToolsCard.d.ts +3 -1
- package/lib/typescript/module/ui/components/DevToolsCard.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/DynamicFilterView.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/EventStepperFooter.d.ts +2 -0
- package/lib/typescript/module/ui/components/EventStepperFooter.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ModalHeader.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/StorageTypeBadge.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/TabSelector.d.ts +9 -0
- package/lib/typescript/module/ui/components/TabSelector.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ValueTypeBadge.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/WindowControls.d.ts +4 -2
- package/lib/typescript/module/ui/components/WindowControls.d.ts.map +1 -1
- package/lib/typescript/module/ui/gameUI/constants/gameUIColors.d.ts +8 -0
- package/lib/typescript/module/ui/gameUI/constants/gameUIColors.d.ts.map +1 -1
- package/lib/typescript/module/ui/night/nightTheme.d.ts +113 -0
- package/lib/typescript/module/ui/night/nightTheme.d.ts.map +1 -0
- package/lib/typescript/module/ui/night/primitives.d.ts +111 -0
- package/lib/typescript/module/ui/night/primitives.d.ts.map +1 -0
- package/package.json +4 -4
- package/lib/commonjs/ui/backgrounds/variants/lattice.js +0 -579
- package/lib/commonjs/ui/backgrounds/variants/starfield.js +0 -210
- package/lib/module/ui/backgrounds/variants/lattice.js +0 -575
- package/lib/module/ui/backgrounds/variants/starfield.js +0 -206
- package/lib/typescript/commonjs/ui/backgrounds/variants/lattice.d.ts +0 -33
- package/lib/typescript/commonjs/ui/backgrounds/variants/lattice.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/backgrounds/variants/starfield.d.ts +0 -12
- package/lib/typescript/commonjs/ui/backgrounds/variants/starfield.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/variants/lattice.d.ts +0 -33
- package/lib/typescript/module/ui/backgrounds/variants/lattice.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/variants/starfield.d.ts +0 -12
- package/lib/typescript/module/ui/backgrounds/variants/starfield.d.ts.map +0 -1
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* "Night" design tokens — the Everlights surface language, ported.
|
|
5
|
+
*
|
|
6
|
+
* A near-black, smooth, borderless-feeling system built to sit ON TOP of the
|
|
7
|
+
* shared ToolBackground star field: one `#050505` sheet the field shows
|
|
8
|
+
* through, `#0C0C0C` cards with hairline `#1A1A1C` borders, `#161618` rows
|
|
9
|
+
* inside them, uppercase section labels OUTSIDE the cards, and a single green
|
|
10
|
+
* accent that takes dark ink.
|
|
11
|
+
*
|
|
12
|
+
* Values are lifted 1:1 from the Everlights app's `constants/theme.ts`
|
|
13
|
+
* (`Palette` + `DarkColors`) and its modal tokens — that app is the design
|
|
14
|
+
* reference, so when in doubt match it, don't invent.
|
|
15
|
+
*
|
|
16
|
+
* THE ACCENT IS ONE SEAM: everything green reads `night.color.accent*`. The
|
|
17
|
+
* family is Buoy's brand green (`buoyColors.primary`, #20C997 — kept as
|
|
18
|
+
* literals so this module stays import-free); swapping it is a seven-line
|
|
19
|
+
* change here and nowhere else. `onAccent` stays black — this green wants
|
|
20
|
+
* dark ink.
|
|
21
|
+
*
|
|
22
|
+
* SCOPE: piloted on the dial menu's settings modal (JsModal `variant="night"`
|
|
23
|
+
* + DevToolsSettingsModal). If it sticks, convert the other tools to it.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
export const night = {
|
|
27
|
+
color: {
|
|
28
|
+
/** The sheet itself — also the inset track of a segmented control. */
|
|
29
|
+
bg: "#050505",
|
|
30
|
+
/** A card. */
|
|
31
|
+
surface: "#0C0C0C",
|
|
32
|
+
/** A row or control inside a card. */
|
|
33
|
+
surfaceElevated: "#161618",
|
|
34
|
+
/** Hairline card border. */
|
|
35
|
+
border: "#1A1A1C",
|
|
36
|
+
/** Hairline between rows inside a card. */
|
|
37
|
+
separator: "rgba(255, 255, 255, 0.08)",
|
|
38
|
+
/** Neutral fills, lightest → strongest. */
|
|
39
|
+
fill: "rgba(255, 255, 255, 0.06)",
|
|
40
|
+
fillSecondary: "rgba(255, 255, 255, 0.08)",
|
|
41
|
+
fillTertiary: "rgba(255, 255, 255, 0.12)",
|
|
42
|
+
/** Chip resting fill — dark glass, readable over the star field. */
|
|
43
|
+
buttonSurface: "rgba(8, 10, 14, 0.85)",
|
|
44
|
+
/** Secondary/destructive button plate. */
|
|
45
|
+
button: "#1C1C1C",
|
|
46
|
+
buttonPressed: "#2C2C2E",
|
|
47
|
+
text: "#ECEDEE",
|
|
48
|
+
textSecondary: "#9BA1A6",
|
|
49
|
+
textTertiary: "#636366",
|
|
50
|
+
/** Drag handles, input placeholders. */
|
|
51
|
+
placeholder: "rgba(255, 255, 255, 0.30)",
|
|
52
|
+
/** The one accent (Buoy brand green). See the header note — one seam. */
|
|
53
|
+
accent: "#20C997",
|
|
54
|
+
accentPressed: "#1BAB80",
|
|
55
|
+
accentSoft: "rgba(32, 201, 151, 0.12)",
|
|
56
|
+
accentFill: "rgba(32, 201, 151, 0.18)",
|
|
57
|
+
accentBorder: "rgba(32, 201, 151, 0.20)",
|
|
58
|
+
accentBorderStrong: "rgba(32, 201, 151, 0.35)",
|
|
59
|
+
/** Ink on a filled accent surface — the accent takes DARK ink. */
|
|
60
|
+
onAccent: "#000000",
|
|
61
|
+
danger: "#FF3B30",
|
|
62
|
+
dangerSoft: "rgba(255, 59, 48, 0.10)",
|
|
63
|
+
warning: "#FF8329",
|
|
64
|
+
warningSoft: "rgba(255, 131, 41, 0.12)",
|
|
65
|
+
info: "#1E6DFF",
|
|
66
|
+
infoSoft: "rgba(30, 109, 255, 0.12)",
|
|
67
|
+
/** Switch thumb at rest (Everlights moon gray). */
|
|
68
|
+
knob: "#D4D8DC"
|
|
69
|
+
},
|
|
70
|
+
radius: {
|
|
71
|
+
/** Sheets and dialogs. */
|
|
72
|
+
sheet: 16,
|
|
73
|
+
/** Cards. */
|
|
74
|
+
card: 14,
|
|
75
|
+
/** Inputs and code blocks. */
|
|
76
|
+
input: 12,
|
|
77
|
+
/** Rows and inner controls; also the segmented-control track. */
|
|
78
|
+
row: 10,
|
|
79
|
+
/** Segment thumb inside a radius-10 track. */
|
|
80
|
+
segment: 8,
|
|
81
|
+
/** Small badges. */
|
|
82
|
+
badge: 6,
|
|
83
|
+
/** Zone-style chips. */
|
|
84
|
+
chip: 20,
|
|
85
|
+
/** Fully rounded pills (buttons use height/2 instead). */
|
|
86
|
+
pill: 999
|
|
87
|
+
},
|
|
88
|
+
/** Screen/sheet horizontal margin. */
|
|
89
|
+
gutter: 16,
|
|
90
|
+
/** Section labels sit 4pt in from the card edge. */
|
|
91
|
+
labelInset: 4,
|
|
92
|
+
/** Vertical rhythm between labeled card groups. */
|
|
93
|
+
groupGap: 24,
|
|
94
|
+
/** Card interior padding. */
|
|
95
|
+
cardPad: 14,
|
|
96
|
+
/** Row padding inside an edge-to-edge card. */
|
|
97
|
+
rowPadH: 16,
|
|
98
|
+
rowPadV: 14,
|
|
99
|
+
font: {
|
|
100
|
+
/** Sheet/modal titles. */
|
|
101
|
+
title: 17,
|
|
102
|
+
/** Row labels and values. */
|
|
103
|
+
row: 15,
|
|
104
|
+
/** Body copy, chip labels. */
|
|
105
|
+
body: 14,
|
|
106
|
+
/** Segmented-control labels, captions, footnotes. */
|
|
107
|
+
caption: 13,
|
|
108
|
+
/** Uppercase section labels. */
|
|
109
|
+
label: 12,
|
|
110
|
+
/** Uppercase micro labels (START/END style). */
|
|
111
|
+
micro: 11
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
/** Section labels track wide open, Everlights-style. */
|
|
116
|
+
export const NIGHT_LABEL_TRACKING = 0.8;
|
|
@@ -0,0 +1,485 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Night primitives — the building blocks of the Everlights-style surface
|
|
5
|
+
* (see ./nightTheme for the tokens and where the look comes from).
|
|
6
|
+
*
|
|
7
|
+
* The shape they compose to:
|
|
8
|
+
*
|
|
9
|
+
* NightSectionLabel STORAGE ← outside the card, uppercase
|
|
10
|
+
* NightCard ┌──────────────────┐
|
|
11
|
+
* NightRows │ row │ ← hairline-separated children
|
|
12
|
+
* │ ──────────── │
|
|
13
|
+
* │ row │
|
|
14
|
+
* └──────────────────┘
|
|
15
|
+
* NightFootnote Settings persist through…
|
|
16
|
+
*
|
|
17
|
+
* Controls: NightSwitch (the Everlights 56×32 toggle), NightChip (zone-style
|
|
18
|
+
* pill), NightButton (primary = filled accent w/ dark ink, everything else on
|
|
19
|
+
* the #1C1C1C plate), NightSegmented (the All/Day control with the accent
|
|
20
|
+
* underline), NightBadge (small status caps).
|
|
21
|
+
*/
|
|
22
|
+
import { Children, useEffect, useRef } from "react";
|
|
23
|
+
import { Animated, StyleSheet, Text, TouchableOpacity, View } from "react-native";
|
|
24
|
+
import { night, NIGHT_LABEL_TRACKING } from "./nightTheme.js";
|
|
25
|
+
|
|
26
|
+
/** Uppercase section label that sits ABOVE a NightCard. */
|
|
27
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
28
|
+
export function NightSectionLabel({
|
|
29
|
+
children,
|
|
30
|
+
style
|
|
31
|
+
}) {
|
|
32
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
33
|
+
style: [styles.sectionLabel, style],
|
|
34
|
+
children: children
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Explanatory line under a NightCard (or above a CTA, `centered`). */
|
|
39
|
+
export function NightFootnote({
|
|
40
|
+
children,
|
|
41
|
+
centered,
|
|
42
|
+
tone = "tertiary",
|
|
43
|
+
style
|
|
44
|
+
}) {
|
|
45
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
46
|
+
style: [styles.footnote, tone === "secondary" ? styles.footnoteSecondary : null, tone === "warning" ? styles.footnoteWarning : null, tone === "danger" ? styles.footnoteDanger : null, centered ? styles.footnoteCentered : null, style],
|
|
47
|
+
children: children
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** A card: `#0C0C0C`, radius 14, hairline border. `padded` = interior 14. */
|
|
52
|
+
export function NightCard({
|
|
53
|
+
children,
|
|
54
|
+
padded,
|
|
55
|
+
style
|
|
56
|
+
}) {
|
|
57
|
+
return /*#__PURE__*/_jsx(View, {
|
|
58
|
+
style: [styles.card, padded ? styles.cardPadded : null, style],
|
|
59
|
+
children: children
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/** Hairline separator between rows, inset from the left like iOS. */
|
|
64
|
+
export function NightSeparator({
|
|
65
|
+
inset = night.rowPadH
|
|
66
|
+
}) {
|
|
67
|
+
return /*#__PURE__*/_jsx(View, {
|
|
68
|
+
style: [styles.separator, {
|
|
69
|
+
marginLeft: inset
|
|
70
|
+
}]
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Interleaves a hairline between consecutive children so rows never track
|
|
76
|
+
* their own position. Meant to live inside an unpadded NightCard.
|
|
77
|
+
*/
|
|
78
|
+
export function NightRows({
|
|
79
|
+
children,
|
|
80
|
+
inset = night.rowPadH
|
|
81
|
+
}) {
|
|
82
|
+
const rows = Children.toArray(children);
|
|
83
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
84
|
+
children: rows.map((row, index) =>
|
|
85
|
+
/*#__PURE__*/
|
|
86
|
+
// Children.toArray assigns stable synthetic keys for keyed children.
|
|
87
|
+
_jsxs(View, {
|
|
88
|
+
children: [index > 0 ? /*#__PURE__*/_jsx(NightSeparator, {
|
|
89
|
+
inset: inset
|
|
90
|
+
}) : null, row]
|
|
91
|
+
}, row.key ?? index))
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Everlights toggle geometry, verbatim.
|
|
96
|
+
const TRACK_W = 56;
|
|
97
|
+
const TRACK_H = 32;
|
|
98
|
+
const THUMB = 22;
|
|
99
|
+
const TRACK_PAD = 5;
|
|
100
|
+
const TRAVEL = TRACK_W - THUMB - TRACK_PAD * 2;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* The Everlights 56×32 switch. The thumb slides on the native driver; the
|
|
104
|
+
* colors snap with the state change, which reads fine at this size.
|
|
105
|
+
*/
|
|
106
|
+
export function NightSwitch({
|
|
107
|
+
value,
|
|
108
|
+
onValueChange,
|
|
109
|
+
disabled
|
|
110
|
+
}) {
|
|
111
|
+
const progress = useRef(new Animated.Value(value ? 1 : 0)).current;
|
|
112
|
+
useEffect(() => {
|
|
113
|
+
Animated.timing(progress, {
|
|
114
|
+
toValue: value ? 1 : 0,
|
|
115
|
+
duration: 200,
|
|
116
|
+
useNativeDriver: true
|
|
117
|
+
}).start();
|
|
118
|
+
}, [value, progress]);
|
|
119
|
+
return /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
120
|
+
activeOpacity: 0.8,
|
|
121
|
+
disabled: disabled,
|
|
122
|
+
onPress: () => onValueChange(!value),
|
|
123
|
+
accessibilityRole: "switch",
|
|
124
|
+
accessibilityState: {
|
|
125
|
+
checked: value,
|
|
126
|
+
disabled
|
|
127
|
+
},
|
|
128
|
+
hitSlop: {
|
|
129
|
+
top: 8,
|
|
130
|
+
bottom: 8,
|
|
131
|
+
left: 8,
|
|
132
|
+
right: 8
|
|
133
|
+
},
|
|
134
|
+
style: [styles.switchTrack, value ? styles.switchTrackOn : null, disabled ? styles.switchDisabled : null],
|
|
135
|
+
children: /*#__PURE__*/_jsx(Animated.View, {
|
|
136
|
+
style: [styles.switchThumb, value ? styles.switchThumbOn : null, {
|
|
137
|
+
transform: [{
|
|
138
|
+
translateX: progress.interpolate({
|
|
139
|
+
inputRange: [0, 1],
|
|
140
|
+
outputRange: [0, TRAVEL]
|
|
141
|
+
})
|
|
142
|
+
}]
|
|
143
|
+
}]
|
|
144
|
+
})
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Zone-style pill chip. The fill never changes — selection is signaled by the
|
|
150
|
+
* border and label color only, exactly like the Everlights zone row.
|
|
151
|
+
*/
|
|
152
|
+
export function NightChip({
|
|
153
|
+
label,
|
|
154
|
+
selected,
|
|
155
|
+
onPress,
|
|
156
|
+
disabled,
|
|
157
|
+
icon
|
|
158
|
+
}) {
|
|
159
|
+
return /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
160
|
+
activeOpacity: 0.7,
|
|
161
|
+
disabled: disabled || !onPress,
|
|
162
|
+
onPress: onPress,
|
|
163
|
+
style: [styles.chip, selected ? styles.chipSelected : null, disabled ? styles.chipDisabled : null],
|
|
164
|
+
children: [icon, /*#__PURE__*/_jsx(Text, {
|
|
165
|
+
style: [styles.chipText, selected ? styles.chipTextSelected : null],
|
|
166
|
+
children: label
|
|
167
|
+
})]
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Everlights button. `primary` fills with the accent and takes DARK ink;
|
|
172
|
+
* every other variant sits on the `#1C1C1C` plate and differs only in label
|
|
173
|
+
* color. `lg` is the fully-rounded 50pt CTA.
|
|
174
|
+
*/
|
|
175
|
+
export function NightButton({
|
|
176
|
+
label,
|
|
177
|
+
onPress,
|
|
178
|
+
variant = "secondary",
|
|
179
|
+
size = "lg",
|
|
180
|
+
icon,
|
|
181
|
+
disabled,
|
|
182
|
+
fullWidth = true
|
|
183
|
+
}) {
|
|
184
|
+
const labelColor = variant === "primary" ? night.color.onAccent : variant === "tertiary" ? night.color.text : variant === "destructive" ? night.color.danger : night.color.accent;
|
|
185
|
+
return /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
186
|
+
activeOpacity: 0.7,
|
|
187
|
+
disabled: disabled,
|
|
188
|
+
onPress: onPress,
|
|
189
|
+
style: [styles.button, size === "md" ? styles.buttonMd : styles.buttonLg, variant === "primary" ? styles.buttonPrimary : variant === "ghost" ? styles.buttonGhost : styles.buttonPlate, fullWidth ? styles.buttonFullWidth : null, disabled ? styles.buttonDisabled : null],
|
|
190
|
+
children: [icon, /*#__PURE__*/_jsx(Text, {
|
|
191
|
+
style: [size === "md" ? styles.buttonTextMd : styles.buttonTextLg, {
|
|
192
|
+
color: labelColor
|
|
193
|
+
}],
|
|
194
|
+
children: label
|
|
195
|
+
})]
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Segmented control: `#050505` track, `#161618` thumb, and the accent
|
|
200
|
+
* underline glow beneath the active label (the Everlights All/Day tabs).
|
|
201
|
+
*
|
|
202
|
+
* THE shared tab control for night-theme tool headers — the dial settings
|
|
203
|
+
* and the network tool both mount this one. `size="sm"` is the compact
|
|
204
|
+
* variant for in-tool headers where the full-height control reads too tall.
|
|
205
|
+
*/
|
|
206
|
+
export function NightSegmented({
|
|
207
|
+
tabs,
|
|
208
|
+
activeKey,
|
|
209
|
+
onChange,
|
|
210
|
+
size = "md"
|
|
211
|
+
}) {
|
|
212
|
+
const small = size === "sm";
|
|
213
|
+
return /*#__PURE__*/_jsx(View, {
|
|
214
|
+
style: styles.segmentTrack,
|
|
215
|
+
children: tabs.map(tab => {
|
|
216
|
+
const active = tab.key === activeKey;
|
|
217
|
+
return /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
218
|
+
activeOpacity: 0.7,
|
|
219
|
+
accessibilityRole: "tab",
|
|
220
|
+
accessibilityState: {
|
|
221
|
+
selected: active
|
|
222
|
+
},
|
|
223
|
+
accessibilityLabel: tab.label,
|
|
224
|
+
onPress: () => onChange(tab.key),
|
|
225
|
+
style: [styles.segment, small ? styles.segmentSm : null, active ? styles.segmentActive : null],
|
|
226
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
227
|
+
style: [styles.segmentText, small ? styles.segmentTextSm : null, active ? styles.segmentTextActive : null],
|
|
228
|
+
children: tab.label
|
|
229
|
+
}), active ? /*#__PURE__*/_jsx(View, {
|
|
230
|
+
style: [styles.segmentUnderline, small ? styles.segmentUnderlineSm : null]
|
|
231
|
+
}) : null]
|
|
232
|
+
}, tab.key);
|
|
233
|
+
})
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
/** Small uppercase status cap ("FILE SYSTEM", "CONNECTED"). */
|
|
237
|
+
export function NightBadge({
|
|
238
|
+
label,
|
|
239
|
+
tone = "neutral"
|
|
240
|
+
}) {
|
|
241
|
+
const fill = tone === "accent" ? styles.badgeAccent : tone === "warning" ? styles.badgeWarning : tone === "danger" ? styles.badgeDanger : tone === "info" ? styles.badgeInfo : styles.badgeNeutral;
|
|
242
|
+
const ink = tone === "accent" ? styles.badgeTextAccent : tone === "warning" ? styles.badgeTextWarning : tone === "danger" ? styles.badgeTextDanger : tone === "info" ? styles.badgeTextInfo : styles.badgeTextNeutral;
|
|
243
|
+
return /*#__PURE__*/_jsx(View, {
|
|
244
|
+
style: [styles.badge, fill],
|
|
245
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
246
|
+
style: [styles.badgeText, ink],
|
|
247
|
+
children: label
|
|
248
|
+
})
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
const styles = StyleSheet.create({
|
|
252
|
+
sectionLabel: {
|
|
253
|
+
color: night.color.textSecondary,
|
|
254
|
+
fontSize: night.font.label,
|
|
255
|
+
fontWeight: "600",
|
|
256
|
+
letterSpacing: NIGHT_LABEL_TRACKING,
|
|
257
|
+
textTransform: "uppercase",
|
|
258
|
+
marginBottom: 8,
|
|
259
|
+
marginLeft: night.labelInset
|
|
260
|
+
},
|
|
261
|
+
footnote: {
|
|
262
|
+
color: night.color.textTertiary,
|
|
263
|
+
fontSize: night.font.caption,
|
|
264
|
+
fontWeight: "500",
|
|
265
|
+
lineHeight: night.font.caption * 1.4,
|
|
266
|
+
marginTop: 8,
|
|
267
|
+
marginLeft: night.labelInset
|
|
268
|
+
},
|
|
269
|
+
footnoteSecondary: {
|
|
270
|
+
color: night.color.textSecondary
|
|
271
|
+
},
|
|
272
|
+
footnoteWarning: {
|
|
273
|
+
color: night.color.warning
|
|
274
|
+
},
|
|
275
|
+
footnoteDanger: {
|
|
276
|
+
color: night.color.danger
|
|
277
|
+
},
|
|
278
|
+
footnoteCentered: {
|
|
279
|
+
textAlign: "center",
|
|
280
|
+
marginLeft: 0
|
|
281
|
+
},
|
|
282
|
+
card: {
|
|
283
|
+
backgroundColor: night.color.surface,
|
|
284
|
+
borderRadius: night.radius.card,
|
|
285
|
+
borderWidth: 1,
|
|
286
|
+
borderColor: night.color.border,
|
|
287
|
+
overflow: "hidden"
|
|
288
|
+
},
|
|
289
|
+
cardPadded: {
|
|
290
|
+
padding: night.cardPad,
|
|
291
|
+
gap: 10
|
|
292
|
+
},
|
|
293
|
+
separator: {
|
|
294
|
+
height: StyleSheet.hairlineWidth,
|
|
295
|
+
backgroundColor: night.color.separator
|
|
296
|
+
},
|
|
297
|
+
switchTrack: {
|
|
298
|
+
width: TRACK_W,
|
|
299
|
+
height: TRACK_H,
|
|
300
|
+
borderRadius: TRACK_H / 2,
|
|
301
|
+
borderWidth: 1,
|
|
302
|
+
borderColor: night.color.fillTertiary,
|
|
303
|
+
backgroundColor: night.color.surfaceElevated,
|
|
304
|
+
paddingHorizontal: TRACK_PAD,
|
|
305
|
+
justifyContent: "center",
|
|
306
|
+
overflow: "hidden"
|
|
307
|
+
},
|
|
308
|
+
switchTrackOn: {
|
|
309
|
+
backgroundColor: night.color.accentFill,
|
|
310
|
+
borderColor: night.color.accentBorderStrong
|
|
311
|
+
},
|
|
312
|
+
switchDisabled: {
|
|
313
|
+
opacity: 0.4
|
|
314
|
+
},
|
|
315
|
+
switchThumb: {
|
|
316
|
+
width: THUMB,
|
|
317
|
+
height: THUMB,
|
|
318
|
+
borderRadius: THUMB / 2,
|
|
319
|
+
backgroundColor: night.color.knob
|
|
320
|
+
},
|
|
321
|
+
switchThumbOn: {
|
|
322
|
+
backgroundColor: night.color.accent
|
|
323
|
+
},
|
|
324
|
+
chip: {
|
|
325
|
+
flexDirection: "row",
|
|
326
|
+
alignItems: "center",
|
|
327
|
+
gap: 6,
|
|
328
|
+
paddingHorizontal: 14,
|
|
329
|
+
paddingVertical: 9,
|
|
330
|
+
borderRadius: night.radius.chip,
|
|
331
|
+
borderWidth: 1.5,
|
|
332
|
+
backgroundColor: night.color.buttonSurface,
|
|
333
|
+
borderColor: night.color.fillTertiary
|
|
334
|
+
},
|
|
335
|
+
chipSelected: {
|
|
336
|
+
borderColor: night.color.accentBorderStrong
|
|
337
|
+
},
|
|
338
|
+
chipDisabled: {
|
|
339
|
+
opacity: 0.4
|
|
340
|
+
},
|
|
341
|
+
chipText: {
|
|
342
|
+
fontSize: night.font.body,
|
|
343
|
+
fontWeight: "500",
|
|
344
|
+
color: night.color.textSecondary
|
|
345
|
+
},
|
|
346
|
+
chipTextSelected: {
|
|
347
|
+
color: night.color.accent
|
|
348
|
+
},
|
|
349
|
+
button: {
|
|
350
|
+
flexDirection: "row",
|
|
351
|
+
alignItems: "center",
|
|
352
|
+
justifyContent: "center",
|
|
353
|
+
gap: 8
|
|
354
|
+
},
|
|
355
|
+
buttonMd: {
|
|
356
|
+
height: 34,
|
|
357
|
+
paddingHorizontal: 16,
|
|
358
|
+
borderRadius: 17
|
|
359
|
+
},
|
|
360
|
+
buttonLg: {
|
|
361
|
+
height: 50,
|
|
362
|
+
paddingHorizontal: 20,
|
|
363
|
+
borderRadius: 25
|
|
364
|
+
},
|
|
365
|
+
buttonPrimary: {
|
|
366
|
+
backgroundColor: night.color.accent
|
|
367
|
+
},
|
|
368
|
+
buttonPlate: {
|
|
369
|
+
backgroundColor: night.color.button
|
|
370
|
+
},
|
|
371
|
+
buttonGhost: {
|
|
372
|
+
backgroundColor: "transparent"
|
|
373
|
+
},
|
|
374
|
+
buttonFullWidth: {
|
|
375
|
+
alignSelf: "stretch"
|
|
376
|
+
},
|
|
377
|
+
buttonDisabled: {
|
|
378
|
+
opacity: 0.4
|
|
379
|
+
},
|
|
380
|
+
buttonTextMd: {
|
|
381
|
+
fontSize: 15,
|
|
382
|
+
fontWeight: "600"
|
|
383
|
+
},
|
|
384
|
+
buttonTextLg: {
|
|
385
|
+
fontSize: 17,
|
|
386
|
+
fontWeight: "600"
|
|
387
|
+
},
|
|
388
|
+
segmentTrack: {
|
|
389
|
+
flex: 1,
|
|
390
|
+
flexDirection: "row",
|
|
391
|
+
backgroundColor: night.color.bg,
|
|
392
|
+
borderRadius: night.radius.row,
|
|
393
|
+
borderWidth: 1,
|
|
394
|
+
borderColor: night.color.border,
|
|
395
|
+
padding: 3
|
|
396
|
+
},
|
|
397
|
+
segment: {
|
|
398
|
+
flex: 1,
|
|
399
|
+
paddingVertical: 8,
|
|
400
|
+
alignItems: "center",
|
|
401
|
+
justifyContent: "center",
|
|
402
|
+
borderRadius: night.radius.segment
|
|
403
|
+
},
|
|
404
|
+
segmentActive: {
|
|
405
|
+
backgroundColor: night.color.surfaceElevated
|
|
406
|
+
},
|
|
407
|
+
segmentText: {
|
|
408
|
+
fontSize: night.font.caption,
|
|
409
|
+
fontWeight: "500",
|
|
410
|
+
color: night.color.textSecondary
|
|
411
|
+
},
|
|
412
|
+
segmentTextActive: {
|
|
413
|
+
fontWeight: "600",
|
|
414
|
+
color: night.color.text
|
|
415
|
+
},
|
|
416
|
+
segmentUnderline: {
|
|
417
|
+
position: "absolute",
|
|
418
|
+
bottom: 2,
|
|
419
|
+
width: 24,
|
|
420
|
+
height: 2.5,
|
|
421
|
+
borderRadius: 1.25,
|
|
422
|
+
backgroundColor: night.color.accent,
|
|
423
|
+
shadowColor: night.color.accent,
|
|
424
|
+
shadowOffset: {
|
|
425
|
+
width: 0,
|
|
426
|
+
height: 0
|
|
427
|
+
},
|
|
428
|
+
shadowOpacity: 0.6,
|
|
429
|
+
shadowRadius: 6
|
|
430
|
+
},
|
|
431
|
+
segmentSm: {
|
|
432
|
+
paddingVertical: 5
|
|
433
|
+
},
|
|
434
|
+
segmentTextSm: {
|
|
435
|
+
fontSize: 12
|
|
436
|
+
},
|
|
437
|
+
segmentUnderlineSm: {
|
|
438
|
+
bottom: 1.5,
|
|
439
|
+
width: 20,
|
|
440
|
+
height: 2,
|
|
441
|
+
borderRadius: 1
|
|
442
|
+
},
|
|
443
|
+
badge: {
|
|
444
|
+
paddingHorizontal: 8,
|
|
445
|
+
paddingVertical: 4,
|
|
446
|
+
borderRadius: night.radius.badge,
|
|
447
|
+
alignSelf: "flex-start"
|
|
448
|
+
},
|
|
449
|
+
badgeText: {
|
|
450
|
+
fontSize: night.font.micro,
|
|
451
|
+
fontWeight: "600",
|
|
452
|
+
letterSpacing: 0.5,
|
|
453
|
+
textTransform: "uppercase"
|
|
454
|
+
},
|
|
455
|
+
badgeAccent: {
|
|
456
|
+
backgroundColor: night.color.accentSoft
|
|
457
|
+
},
|
|
458
|
+
badgeTextAccent: {
|
|
459
|
+
color: night.color.accent
|
|
460
|
+
},
|
|
461
|
+
badgeWarning: {
|
|
462
|
+
backgroundColor: night.color.warningSoft
|
|
463
|
+
},
|
|
464
|
+
badgeTextWarning: {
|
|
465
|
+
color: night.color.warning
|
|
466
|
+
},
|
|
467
|
+
badgeDanger: {
|
|
468
|
+
backgroundColor: night.color.dangerSoft
|
|
469
|
+
},
|
|
470
|
+
badgeTextDanger: {
|
|
471
|
+
color: night.color.danger
|
|
472
|
+
},
|
|
473
|
+
badgeInfo: {
|
|
474
|
+
backgroundColor: night.color.infoSoft
|
|
475
|
+
},
|
|
476
|
+
badgeTextInfo: {
|
|
477
|
+
color: night.color.info
|
|
478
|
+
},
|
|
479
|
+
badgeNeutral: {
|
|
480
|
+
backgroundColor: night.color.fillSecondary
|
|
481
|
+
},
|
|
482
|
+
badgeTextNeutral: {
|
|
483
|
+
color: night.color.textSecondary
|
|
484
|
+
}
|
|
485
|
+
});
|
|
@@ -12,6 +12,15 @@
|
|
|
12
12
|
import { ReactNode } from "react";
|
|
13
13
|
import { Animated, ViewStyle } from "react-native";
|
|
14
14
|
export type ModalMode = "bottomSheet" | "floating";
|
|
15
|
+
/**
|
|
16
|
+
* Chrome variant. "night" (the default since the suite-wide theme move) is
|
|
17
|
+
* the Everlights-style sheet (see ui/night): near-black `#050505` surfaces at
|
|
18
|
+
* radius 16, a hairline accent border, a neutral drag handle instead of the
|
|
19
|
+
* teal bar, a transparent header, and the ToolBackground hoisted to the sheet
|
|
20
|
+
* root so the star field runs through the header instead of stopping under
|
|
21
|
+
* it. "default" is the legacy card-grey chrome, kept as an escape hatch.
|
|
22
|
+
*/
|
|
23
|
+
export type ModalVariant = "default" | "night";
|
|
15
24
|
interface HeaderConfig {
|
|
16
25
|
title?: string;
|
|
17
26
|
subtitle?: string;
|
|
@@ -79,6 +88,15 @@ interface JsModalProps {
|
|
|
79
88
|
zIndex?: number;
|
|
80
89
|
/** If true, children are rendered directly without ScrollView wrapper (use when children have their own FlatList/ScrollView) */
|
|
81
90
|
disableScrollWrapper?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Render the shared `ToolBackground` (the persisted preset — Live Sky by
|
|
93
|
+
* default) behind the modal body. On by default; pass false for tools that
|
|
94
|
+
* don't want a backdrop, or that mount their own (the network tool does, so
|
|
95
|
+
* its inline desktop panel — which never goes through JsModal — matches).
|
|
96
|
+
*/
|
|
97
|
+
background?: boolean;
|
|
98
|
+
/** Chrome variant — see {@link ModalVariant}. */
|
|
99
|
+
variant?: ModalVariant;
|
|
82
100
|
}
|
|
83
101
|
export declare const JsModal: import("react").NamedExoticComponent<JsModalProps>;
|
|
84
102
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsModal.d.ts","sourceRoot":"","sources":["../../../src/JsModal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAUL,SAAS,EAEV,MAAM,OAAO,CAAC;AACf,OAAO,EAML,QAAQ,EAGR,SAAS,EAEV,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"JsModal.d.ts","sourceRoot":"","sources":["../../../src/JsModal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAUL,SAAS,EAEV,MAAM,OAAO,CAAC;AACf,OAAO,EAML,QAAQ,EAGR,SAAS,EAEV,MAAM,cAAc,CAAC;AA+GtB,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,UAAU,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;AAE/C,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,kBAAkB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACxD;AAED,UAAU,YAAY;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;IAChC;;;+BAG2B;IAC3B,WAAW,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,cAAc,GAAG,YAAY,CAAC;IACtE,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,uBAAuB,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAErD,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,yFAAyF;IACzF,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9C,0EAA0E;IAC1E,sBAAsB,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gIAAgI;IAChI,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iDAAiD;IACjD,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AA8wDD,eAAO,MAAM,OAAO,oDAAyB,CAAC"}
|
|
@@ -132,6 +132,19 @@ export interface JsModalProps {
|
|
|
132
132
|
zIndex?: number;
|
|
133
133
|
/** If true, children render directly without the scroll wrapper */
|
|
134
134
|
disableScrollWrapper?: boolean;
|
|
135
|
+
/**
|
|
136
|
+
* Render the shared `ToolBackground` behind the modal body (native parity:
|
|
137
|
+
* first child of the clipping content box). On by default; pass false for
|
|
138
|
+
* tools that don't want a backdrop or mount their own.
|
|
139
|
+
*/
|
|
140
|
+
background?: boolean;
|
|
141
|
+
/**
|
|
142
|
+
* Chrome variant (native parity). "night" = the Everlights-style sheet:
|
|
143
|
+
* near-black `#050505` surfaces at radius 16, a hairline accent border, a
|
|
144
|
+
* neutral drag handle, a transparent header, and the ToolBackground hoisted
|
|
145
|
+
* to the sheet root so the star field runs through the header.
|
|
146
|
+
*/
|
|
147
|
+
variant?: "default" | "night";
|
|
135
148
|
}
|
|
136
149
|
export declare const JsModal: import("react").NamedExoticComponent<JsModalProps>;
|
|
137
150
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsModal.web.d.ts","sourceRoot":"","sources":["../../../src/JsModal.web.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AAEH,OAAO,EASL,KAAK,aAAa,EAGlB,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"JsModal.web.d.ts","sourceRoot":"","sources":["../../../src/JsModal.web.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AAEH,OAAO,EASL,KAAK,aAAa,EAGlB,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;AAyHf,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,UAAU,CAAC;AAEnD,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,UAAU,YAAY;IAEpB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,4EAA4E;AAC5E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,kBAAkB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACxD;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iEAAiE;IACjE,WAAW,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,cAAc,GAAG,YAAY,CAAC;IACtE,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,uBAAuB,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,yFAAyF;IACzF,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9C,0EAA0E;IAC1E,sBAAsB,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;CAC/B;AAqgDD,eAAO,MAAM,OAAO,oDAAyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualizedDataExplorer.d.ts","sourceRoot":"","sources":["../../../../src/dataViewer/VirtualizedDataExplorer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAOL,EAAE,EACF,YAAY,EACb,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"VirtualizedDataExplorer.d.ts","sourceRoot":"","sources":["../../../../src/dataViewer/VirtualizedDataExplorer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAOL,EAAE,EACF,YAAY,EACb,MAAM,OAAO,CAAC;AAcf,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AA2oC7D,UAAU,4BAA4B;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI,KAAK,IAAI,CAAC;IAClE;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7D,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACjC,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,YAAY,GAAG,IAAI,CAAC;IAC3E;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC9B;AAED,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,4BAA4B,CAqUpE,CAAC"}
|
|
@@ -48,7 +48,9 @@ export interface DiffTheme {
|
|
|
48
48
|
export declare const gitClassicTheme: DiffTheme;
|
|
49
49
|
/**
|
|
50
50
|
* Dev Tools Default Theme
|
|
51
|
-
*
|
|
51
|
+
* The night theme (ui/night) — near-black surfaces, hairline borders. Diff
|
|
52
|
+
* DATA colors (added green / removed red / modified purple) are semantic and
|
|
53
|
+
* deliberately unchanged.
|
|
52
54
|
*/
|
|
53
55
|
export declare const devToolsDefaultTheme: DiffTheme;
|
|
54
56
|
/**
|