@buoy-gg/shared-ui 7.0.25 → 7.0.27
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 +30 -17
- package/lib/commonjs/ui/components/DevToolsCard.js +12 -8
- 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 +13 -13
- 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 +30 -17
- package/lib/module/ui/components/DevToolsCard.js +12 -8
- 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 +13 -13
- 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.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/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.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/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
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { View, Text, StyleSheet } from "react-native";
|
|
4
4
|
import { buoyColors } from "../gameUI/constants/gameUIColors.js";
|
|
5
|
+
import { night } from "../night/nightTheme.js";
|
|
5
6
|
|
|
6
7
|
// Badge variants
|
|
7
8
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -11,9 +12,9 @@ const STATUS_COLORS = {
|
|
|
11
12
|
error: buoyColors.error,
|
|
12
13
|
warning: buoyColors.warning,
|
|
13
14
|
info: buoyColors.primary,
|
|
14
|
-
pending:
|
|
15
|
+
pending: night.color.textSecondary,
|
|
15
16
|
active: buoyColors.success,
|
|
16
|
-
inactive:
|
|
17
|
+
inactive: night.color.textTertiary,
|
|
17
18
|
stale: buoyColors.warning,
|
|
18
19
|
fetching: buoyColors.primary
|
|
19
20
|
};
|
|
@@ -23,9 +24,9 @@ const METHOD_COLORS = {
|
|
|
23
24
|
GET: buoyColors.success,
|
|
24
25
|
POST: buoyColors.primary,
|
|
25
26
|
PUT: buoyColors.warning,
|
|
26
|
-
PATCH:
|
|
27
|
+
PATCH: night.color.textSecondary,
|
|
27
28
|
DELETE: buoyColors.error,
|
|
28
|
-
HEAD:
|
|
29
|
+
HEAD: night.color.textTertiary,
|
|
29
30
|
OPTIONS: buoyColors.primary
|
|
30
31
|
};
|
|
31
32
|
|
|
@@ -183,13 +184,13 @@ function getTypeColor(type) {
|
|
|
183
184
|
string: buoyColors.primary,
|
|
184
185
|
number: buoyColors.primary,
|
|
185
186
|
boolean: buoyColors.primary,
|
|
186
|
-
object:
|
|
187
|
-
array:
|
|
188
|
-
null:
|
|
189
|
-
undefined:
|
|
190
|
-
function:
|
|
187
|
+
object: night.color.textSecondary,
|
|
188
|
+
array: night.color.textSecondary,
|
|
189
|
+
null: night.color.textTertiary,
|
|
190
|
+
undefined: night.color.textTertiary,
|
|
191
|
+
function: night.color.textSecondary
|
|
191
192
|
};
|
|
192
|
-
return typeColors[type.toLowerCase()] ||
|
|
193
|
+
return typeColors[type.toLowerCase()] || night.color.textTertiary;
|
|
193
194
|
}
|
|
194
195
|
const styles = StyleSheet.create({
|
|
195
196
|
statusDot: {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { View, Text, TouchableOpacity, StyleSheet } from "react-native";
|
|
4
4
|
import { ChevronDown, ChevronRight } from "../../icons/index.js";
|
|
5
|
-
import {
|
|
5
|
+
import { night } from "../night/nightTheme.js";
|
|
6
6
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
7
|
export function CompactRow({
|
|
8
8
|
statusDotColor,
|
|
@@ -24,11 +24,15 @@ export function CompactRow({
|
|
|
24
24
|
expandedGlowColor
|
|
25
25
|
}) {
|
|
26
26
|
return /*#__PURE__*/_jsx(View, {
|
|
27
|
-
style: styles.rowWrapper,
|
|
27
|
+
style: [styles.rowWrapper, isExpanded && styles.rowWrapperExpanded],
|
|
28
28
|
children: /*#__PURE__*/_jsxs(View, {
|
|
29
29
|
style: [styles.row, isSelected && styles.selectedRow, isExpanded && [styles.expandedRowActive, {
|
|
30
|
-
borderColor: expandedGlowColor ||
|
|
31
|
-
|
|
30
|
+
borderColor: expandedGlowColor || night.color.accent,
|
|
31
|
+
// The resting hairline sets borderBottomColor specifically, and a
|
|
32
|
+
// specific side always beats the generic borderColor — restate it
|
|
33
|
+
// or the expanded card's bottom edge keeps the faint separator.
|
|
34
|
+
borderBottomColor: expandedGlowColor || night.color.accent,
|
|
35
|
+
shadowColor: expandedGlowColor || night.color.accent
|
|
32
36
|
}]],
|
|
33
37
|
children: [/*#__PURE__*/_jsx(TouchableOpacity, {
|
|
34
38
|
onPress: onPress,
|
|
@@ -88,10 +92,10 @@ export function CompactRow({
|
|
|
88
92
|
style: styles.chevronContainer,
|
|
89
93
|
children: isExpanded ? /*#__PURE__*/_jsx(ChevronDown, {
|
|
90
94
|
size: 14,
|
|
91
|
-
color:
|
|
95
|
+
color: night.color.textTertiary
|
|
92
96
|
}) : /*#__PURE__*/_jsx(ChevronRight, {
|
|
93
97
|
size: 14,
|
|
94
|
-
color:
|
|
98
|
+
color: night.color.textTertiary
|
|
95
99
|
})
|
|
96
100
|
})]
|
|
97
101
|
})]
|
|
@@ -109,15 +113,23 @@ const styles = StyleSheet.create({
|
|
|
109
113
|
marginHorizontal: 8,
|
|
110
114
|
marginVertical: 3
|
|
111
115
|
},
|
|
116
|
+
/** The expanded card scales to 1.02 and grows a 2px glow border, which eats
|
|
117
|
+
* the 3px resting margin — without extra room its bottom edge sits on the
|
|
118
|
+
* next card. */
|
|
119
|
+
rowWrapperExpanded: {
|
|
120
|
+
marginVertical: 12
|
|
121
|
+
},
|
|
112
122
|
row: {
|
|
113
|
-
|
|
123
|
+
// Translucent night scrim so the shared ToolBackground reads through —
|
|
124
|
+
// kept in step with DevToolsCard (same fill, same luminance contract).
|
|
125
|
+
backgroundColor: "rgba(12, 12, 12, 0.9)",
|
|
114
126
|
borderRadius: 8,
|
|
115
127
|
borderWidth: 1,
|
|
116
|
-
borderColor:
|
|
128
|
+
borderColor: night.color.border,
|
|
117
129
|
// …separated by a single hairline instead of four borders per row.
|
|
118
130
|
// Declared after borderWidth so the specific side wins on the chat path.
|
|
119
131
|
borderBottomWidth: 1,
|
|
120
|
-
borderBottomColor:
|
|
132
|
+
borderBottomColor: night.color.separator,
|
|
121
133
|
padding: 12,
|
|
122
134
|
paddingHorizontal: 12,
|
|
123
135
|
transform: [{
|
|
@@ -127,12 +139,12 @@ const styles = StyleSheet.create({
|
|
|
127
139
|
selectedRow: {
|
|
128
140
|
// Neutral fill, no outline, no lift — the same selection language as the
|
|
129
141
|
// sidebar. The classic path keeps its tinted, scaled, glowing card.
|
|
130
|
-
backgroundColor:
|
|
131
|
-
borderColor:
|
|
142
|
+
backgroundColor: night.color.accentSoft,
|
|
143
|
+
borderColor: night.color.accentBorderStrong,
|
|
132
144
|
transform: [{
|
|
133
145
|
scale: 1.01
|
|
134
146
|
}],
|
|
135
|
-
shadowColor:
|
|
147
|
+
shadowColor: night.color.accent,
|
|
136
148
|
shadowOffset: {
|
|
137
149
|
width: 0,
|
|
138
150
|
height: 0
|
|
@@ -146,6 +158,7 @@ const styles = StyleSheet.create({
|
|
|
146
158
|
scale: 1.02
|
|
147
159
|
}],
|
|
148
160
|
borderWidth: 2,
|
|
161
|
+
paddingBottom: 16,
|
|
149
162
|
shadowOffset: {
|
|
150
163
|
width: 0,
|
|
151
164
|
height: 0
|
|
@@ -183,7 +196,7 @@ const styles = StyleSheet.create({
|
|
|
183
196
|
},
|
|
184
197
|
observerText: {
|
|
185
198
|
fontSize: 10,
|
|
186
|
-
color:
|
|
199
|
+
color: night.color.textTertiary,
|
|
187
200
|
marginTop: 1
|
|
188
201
|
},
|
|
189
202
|
querySection: {
|
|
@@ -193,7 +206,7 @@ const styles = StyleSheet.create({
|
|
|
193
206
|
queryHash: {
|
|
194
207
|
fontFamily: "monospace",
|
|
195
208
|
fontSize: 12,
|
|
196
|
-
color:
|
|
209
|
+
color: night.color.text,
|
|
197
210
|
lineHeight: 16
|
|
198
211
|
},
|
|
199
212
|
secondaryRow: {
|
|
@@ -204,7 +217,7 @@ const styles = StyleSheet.create({
|
|
|
204
217
|
},
|
|
205
218
|
secondaryText: {
|
|
206
219
|
fontSize: 10,
|
|
207
|
-
color:
|
|
220
|
+
color: night.color.textTertiary,
|
|
208
221
|
marginTop: 1
|
|
209
222
|
},
|
|
210
223
|
rightSection: {
|
|
@@ -229,12 +242,12 @@ const styles = StyleSheet.create({
|
|
|
229
242
|
marginTop: 8,
|
|
230
243
|
paddingTop: 8,
|
|
231
244
|
borderTopWidth: 1,
|
|
232
|
-
borderTopColor:
|
|
245
|
+
borderTopColor: night.color.separator,
|
|
233
246
|
marginLeft: 24 // Align with content after status dot
|
|
234
247
|
},
|
|
235
248
|
bottomRightText: {
|
|
236
249
|
fontSize: 9,
|
|
237
|
-
color:
|
|
250
|
+
color: night.color.textTertiary,
|
|
238
251
|
fontFamily: "monospace"
|
|
239
252
|
}
|
|
240
253
|
});
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import { View, TouchableOpacity, StyleSheet } from "react-native";
|
|
18
|
-
import {
|
|
18
|
+
import { night } from "../night/nightTheme.js";
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Standard card dimensions - adjust these to change all DevTools cards globally
|
|
@@ -85,23 +85,27 @@ const styles = StyleSheet.create({
|
|
|
85
85
|
marginVertical: DEVTOOLS_CARD_CONSTANTS.marginVertical
|
|
86
86
|
},
|
|
87
87
|
card: {
|
|
88
|
-
|
|
88
|
+
// Translucent night scrim — same luminance contract as the old
|
|
89
|
+
// buoyColors.cardScrim (backing stays readable under the brightest
|
|
90
|
+
// scenes), re-based on the night surface so the ToolBackground reads
|
|
91
|
+
// through every tool's card lists, not only around them.
|
|
92
|
+
backgroundColor: "rgba(12, 12, 12, 0.9)",
|
|
89
93
|
borderRadius: DEVTOOLS_CARD_CONSTANTS.borderRadius,
|
|
90
94
|
borderWidth: DEVTOOLS_CARD_CONSTANTS.borderWidth,
|
|
91
|
-
borderColor:
|
|
95
|
+
borderColor: night.color.border,
|
|
92
96
|
// The separator. On classic this just re-states the full outline; on chat
|
|
93
97
|
// it is the ONLY edge the row has.
|
|
94
98
|
borderBottomWidth: 1,
|
|
95
|
-
borderBottomColor:
|
|
99
|
+
borderBottomColor: night.color.separator,
|
|
96
100
|
padding: DEVTOOLS_CARD_CONSTANTS.padding,
|
|
97
101
|
paddingHorizontal: DEVTOOLS_CARD_CONSTANTS.padding,
|
|
98
102
|
minHeight: DEVTOOLS_CARD_CONSTANTS.minHeight
|
|
99
103
|
},
|
|
100
104
|
selectedCard: {
|
|
101
|
-
//
|
|
102
|
-
backgroundColor:
|
|
103
|
-
borderColor:
|
|
104
|
-
shadowColor:
|
|
105
|
+
// The night selection language: soft accent fill + accent border.
|
|
106
|
+
backgroundColor: night.color.accentSoft,
|
|
107
|
+
borderColor: night.color.accentBorderStrong,
|
|
108
|
+
shadowColor: night.color.accent,
|
|
105
109
|
shadowOffset: {
|
|
106
110
|
width: 0,
|
|
107
111
|
height: 0
|
|
@@ -7,6 +7,7 @@ import { SectionHeader } from "./SectionHeader.js";
|
|
|
7
7
|
import { FilterList, AddFilterInput, AddFilterButton } from "./FilterComponents.js";
|
|
8
8
|
import { useFilterManager } from "../../hooks/useFilterManager.js";
|
|
9
9
|
import { buoyColors } from "../gameUI/constants/gameUIColors.js";
|
|
10
|
+
import { night } from "../night/nightTheme.js";
|
|
10
11
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
11
12
|
export function DynamicFilterView({
|
|
12
13
|
sections = [],
|
|
@@ -60,7 +61,7 @@ export function DynamicFilterView({
|
|
|
60
61
|
style: [styles.tabButton, currentActiveTab === tab.id ? styles.tabButtonActive : styles.tabButtonInactive],
|
|
61
62
|
children: [tab.icon && /*#__PURE__*/_jsx(tab.icon, {
|
|
62
63
|
size: 14,
|
|
63
|
-
color: currentActiveTab === tab.id ? buoyColors.primary :
|
|
64
|
+
color: currentActiveTab === tab.id ? buoyColors.primary : night.color.textTertiary
|
|
64
65
|
}), /*#__PURE__*/_jsx(Text, {
|
|
65
66
|
style: [styles.tabButtonText, currentActiveTab === tab.id ? styles.tabButtonTextActive : styles.tabButtonTextInactive],
|
|
66
67
|
children: tab.label
|
|
@@ -300,7 +301,7 @@ export function DynamicFilterView({
|
|
|
300
301
|
children: [/*#__PURE__*/_jsxs(SectionHeader, {
|
|
301
302
|
children: [/*#__PURE__*/_jsx(SectionHeader.Icon, {
|
|
302
303
|
icon: howItWorksSection.icon || Filter,
|
|
303
|
-
color:
|
|
304
|
+
color: night.color.textSecondary,
|
|
304
305
|
size: 12
|
|
305
306
|
}), /*#__PURE__*/_jsx(SectionHeader.Title, {
|
|
306
307
|
children: howItWorksSection.title || "HOW FILTERS WORK"
|
|
@@ -351,7 +352,8 @@ export function DynamicFilterView({
|
|
|
351
352
|
const styles = StyleSheet.create({
|
|
352
353
|
container: {
|
|
353
354
|
flex: 1,
|
|
354
|
-
|
|
355
|
+
// Transparent so the host modal's night star field shows through.
|
|
356
|
+
backgroundColor: "transparent"
|
|
355
357
|
},
|
|
356
358
|
content: {
|
|
357
359
|
flex: 1
|
|
@@ -366,9 +368,9 @@ const styles = StyleSheet.create({
|
|
|
366
368
|
paddingHorizontal: 16,
|
|
367
369
|
paddingVertical: 12,
|
|
368
370
|
gap: 8,
|
|
369
|
-
backgroundColor:
|
|
371
|
+
backgroundColor: night.color.surface,
|
|
370
372
|
borderBottomWidth: 1,
|
|
371
|
-
borderBottomColor:
|
|
373
|
+
borderBottomColor: night.color.border
|
|
372
374
|
},
|
|
373
375
|
tabButton: {
|
|
374
376
|
flex: 1,
|
|
@@ -388,14 +390,14 @@ const styles = StyleSheet.create({
|
|
|
388
390
|
*/
|
|
389
391
|
tabButtonActive: {
|
|
390
392
|
// White THUMB, not a grey one — the INACTIVE tab is already
|
|
391
|
-
// `
|
|
393
|
+
// `night.color.surfaceElevated` here, so a grey active state would be invisible.
|
|
392
394
|
backgroundColor: buoyColors.primary + "20",
|
|
393
395
|
borderColor: buoyColors.primary,
|
|
394
396
|
borderWidth: 2
|
|
395
397
|
},
|
|
396
398
|
tabButtonInactive: {
|
|
397
|
-
backgroundColor:
|
|
398
|
-
borderColor:
|
|
399
|
+
backgroundColor: night.color.surfaceElevated,
|
|
400
|
+
borderColor: night.color.border
|
|
399
401
|
},
|
|
400
402
|
tabButtonText: {
|
|
401
403
|
fontSize: 11,
|
|
@@ -406,7 +408,7 @@ const styles = StyleSheet.create({
|
|
|
406
408
|
color: buoyColors.primary
|
|
407
409
|
},
|
|
408
410
|
tabButtonTextInactive: {
|
|
409
|
-
color:
|
|
411
|
+
color: night.color.textTertiary
|
|
410
412
|
},
|
|
411
413
|
tabBadge: {
|
|
412
414
|
backgroundColor: buoyColors.primary + "40",
|
|
@@ -434,7 +436,7 @@ const styles = StyleSheet.create({
|
|
|
434
436
|
marginTop: 8
|
|
435
437
|
},
|
|
436
438
|
filterCard: {
|
|
437
|
-
backgroundColor:
|
|
439
|
+
backgroundColor: night.color.surface,
|
|
438
440
|
borderRadius: 12,
|
|
439
441
|
// rounded-xl
|
|
440
442
|
paddingHorizontal: 8,
|
|
@@ -443,7 +445,7 @@ const styles = StyleSheet.create({
|
|
|
443
445
|
alignItems: "center",
|
|
444
446
|
justifyContent: "center",
|
|
445
447
|
borderWidth: 1,
|
|
446
|
-
borderColor:
|
|
448
|
+
borderColor: night.color.border,
|
|
447
449
|
width: 72,
|
|
448
450
|
minHeight: 68
|
|
449
451
|
},
|
|
@@ -467,7 +469,7 @@ const styles = StyleSheet.create({
|
|
|
467
469
|
filterCountActive: {
|
|
468
470
|
fontSize: 14,
|
|
469
471
|
fontWeight: "700",
|
|
470
|
-
color:
|
|
472
|
+
color: night.color.text,
|
|
471
473
|
fontFamily: "monospace",
|
|
472
474
|
marginTop: 3,
|
|
473
475
|
marginBottom: 1,
|
|
@@ -481,14 +483,14 @@ const styles = StyleSheet.create({
|
|
|
481
483
|
filterCountZero: {
|
|
482
484
|
fontSize: 11,
|
|
483
485
|
fontWeight: "500",
|
|
484
|
-
color:
|
|
486
|
+
color: night.color.textTertiary,
|
|
485
487
|
fontFamily: "monospace",
|
|
486
488
|
marginTop: 3,
|
|
487
489
|
marginBottom: 1
|
|
488
490
|
},
|
|
489
491
|
filterLabelCompact: {
|
|
490
492
|
fontSize: 10,
|
|
491
|
-
color:
|
|
493
|
+
color: night.color.text,
|
|
492
494
|
fontWeight: "600",
|
|
493
495
|
textAlign: "center",
|
|
494
496
|
textTransform: "capitalize",
|
|
@@ -501,14 +503,14 @@ const styles = StyleSheet.create({
|
|
|
501
503
|
},
|
|
502
504
|
filterDescriptionBottom: {
|
|
503
505
|
fontSize: 8,
|
|
504
|
-
color:
|
|
506
|
+
color: night.color.textTertiary,
|
|
505
507
|
textAlign: "center",
|
|
506
508
|
marginTop: 2,
|
|
507
509
|
lineHeight: 11
|
|
508
510
|
},
|
|
509
511
|
sectionDescription: {
|
|
510
512
|
fontSize: 10,
|
|
511
|
-
color:
|
|
513
|
+
color: night.color.textSecondary,
|
|
512
514
|
marginTop: 4,
|
|
513
515
|
marginBottom: 4,
|
|
514
516
|
lineHeight: 14
|
|
@@ -529,11 +531,11 @@ const styles = StyleSheet.create({
|
|
|
529
531
|
fontFamily: "monospace"
|
|
530
532
|
},
|
|
531
533
|
activeFiltersSection: {
|
|
532
|
-
backgroundColor:
|
|
534
|
+
backgroundColor: night.color.surface,
|
|
533
535
|
borderRadius: 16,
|
|
534
536
|
// rounded-2xl like web
|
|
535
537
|
borderWidth: 1,
|
|
536
|
-
borderColor:
|
|
538
|
+
borderColor: night.color.border,
|
|
537
539
|
marginTop: 16,
|
|
538
540
|
overflow: "hidden"
|
|
539
541
|
},
|
|
@@ -544,17 +546,17 @@ const styles = StyleSheet.create({
|
|
|
544
546
|
maxHeight: 200
|
|
545
547
|
},
|
|
546
548
|
includeOnlySection: {
|
|
547
|
-
backgroundColor:
|
|
549
|
+
backgroundColor: night.color.surface,
|
|
548
550
|
borderRadius: 16,
|
|
549
551
|
// rounded-2xl like web
|
|
550
552
|
borderWidth: 1,
|
|
551
|
-
borderColor:
|
|
553
|
+
borderColor: night.color.border,
|
|
552
554
|
marginTop: 16,
|
|
553
555
|
overflow: "hidden"
|
|
554
556
|
},
|
|
555
557
|
includeOnlyDescription: {
|
|
556
558
|
fontSize: 10,
|
|
557
|
-
color:
|
|
559
|
+
color: night.color.textSecondary,
|
|
558
560
|
paddingHorizontal: 16,
|
|
559
561
|
paddingTop: 8,
|
|
560
562
|
lineHeight: 14
|
|
@@ -570,17 +572,17 @@ const styles = StyleSheet.create({
|
|
|
570
572
|
maxHeight: 150
|
|
571
573
|
},
|
|
572
574
|
excludeFiltersSection: {
|
|
573
|
-
backgroundColor:
|
|
575
|
+
backgroundColor: night.color.surface,
|
|
574
576
|
borderRadius: 16,
|
|
575
577
|
// rounded-2xl like web
|
|
576
578
|
borderWidth: 1,
|
|
577
|
-
borderColor:
|
|
579
|
+
borderColor: night.color.border,
|
|
578
580
|
marginTop: 16,
|
|
579
581
|
overflow: "hidden"
|
|
580
582
|
},
|
|
581
583
|
excludeFiltersDescription: {
|
|
582
584
|
fontSize: 10,
|
|
583
|
-
color:
|
|
585
|
+
color: night.color.textSecondary,
|
|
584
586
|
paddingHorizontal: 16,
|
|
585
587
|
paddingTop: 8,
|
|
586
588
|
lineHeight: 14
|
|
@@ -616,7 +618,7 @@ const styles = StyleSheet.create({
|
|
|
616
618
|
},
|
|
617
619
|
filterSummaryText: {
|
|
618
620
|
fontSize: 11,
|
|
619
|
-
color:
|
|
621
|
+
color: night.color.text,
|
|
620
622
|
lineHeight: 16
|
|
621
623
|
},
|
|
622
624
|
filterSummaryInclude: {
|
|
@@ -629,17 +631,17 @@ const styles = StyleSheet.create({
|
|
|
629
631
|
},
|
|
630
632
|
emptyStateText: {
|
|
631
633
|
fontSize: 11,
|
|
632
|
-
color:
|
|
634
|
+
color: night.color.textTertiary,
|
|
633
635
|
fontStyle: "italic",
|
|
634
636
|
textAlign: "center",
|
|
635
637
|
paddingVertical: 12
|
|
636
638
|
},
|
|
637
639
|
availableKeysSection: {
|
|
638
|
-
backgroundColor:
|
|
640
|
+
backgroundColor: night.color.surface,
|
|
639
641
|
borderRadius: 16,
|
|
640
642
|
// rounded-2xl like web
|
|
641
643
|
borderWidth: 1,
|
|
642
|
-
borderColor:
|
|
644
|
+
borderColor: night.color.border,
|
|
643
645
|
marginTop: 16,
|
|
644
646
|
overflow: "hidden"
|
|
645
647
|
},
|
|
@@ -655,31 +657,31 @@ const styles = StyleSheet.create({
|
|
|
655
657
|
justifyContent: "space-between",
|
|
656
658
|
paddingVertical: 10,
|
|
657
659
|
paddingHorizontal: 12,
|
|
658
|
-
backgroundColor:
|
|
660
|
+
backgroundColor: night.color.surfaceElevated,
|
|
659
661
|
borderRadius: 8,
|
|
660
662
|
borderWidth: 1,
|
|
661
|
-
borderColor:
|
|
663
|
+
borderColor: night.color.border,
|
|
662
664
|
marginBottom: 8
|
|
663
665
|
},
|
|
664
666
|
availableKeyText: {
|
|
665
667
|
flex: 1,
|
|
666
668
|
fontSize: 11,
|
|
667
|
-
color:
|
|
669
|
+
color: night.color.text,
|
|
668
670
|
fontFamily: "monospace",
|
|
669
671
|
marginRight: 8
|
|
670
672
|
},
|
|
671
673
|
howItWorksSection: {
|
|
672
|
-
backgroundColor:
|
|
674
|
+
backgroundColor: night.color.surface,
|
|
673
675
|
borderRadius: 16,
|
|
674
676
|
// rounded-2xl like web
|
|
675
677
|
borderWidth: 1,
|
|
676
|
-
borderColor:
|
|
678
|
+
borderColor: night.color.border,
|
|
677
679
|
marginTop: 16,
|
|
678
680
|
overflow: "hidden"
|
|
679
681
|
},
|
|
680
682
|
howItWorksText: {
|
|
681
683
|
fontSize: 11,
|
|
682
|
-
color:
|
|
684
|
+
color: night.color.textSecondary,
|
|
683
685
|
lineHeight: 16,
|
|
684
686
|
marginBottom: 12,
|
|
685
687
|
marginTop: 8,
|
|
@@ -691,29 +693,29 @@ const styles = StyleSheet.create({
|
|
|
691
693
|
paddingHorizontal: 16,
|
|
692
694
|
paddingBottom: 16,
|
|
693
695
|
borderTopWidth: 1,
|
|
694
|
-
borderTopColor:
|
|
696
|
+
borderTopColor: night.color.border
|
|
695
697
|
},
|
|
696
698
|
examplesTitle: {
|
|
697
699
|
fontSize: 10,
|
|
698
700
|
fontWeight: "600",
|
|
699
|
-
color:
|
|
701
|
+
color: night.color.textTertiary,
|
|
700
702
|
fontFamily: "monospace",
|
|
701
703
|
letterSpacing: 0.5,
|
|
702
704
|
marginBottom: 6
|
|
703
705
|
},
|
|
704
706
|
exampleItem: {
|
|
705
707
|
fontSize: 10,
|
|
706
|
-
color:
|
|
708
|
+
color: night.color.textTertiary,
|
|
707
709
|
fontFamily: "monospace",
|
|
708
710
|
lineHeight: 16
|
|
709
711
|
},
|
|
710
712
|
previewSection: {
|
|
711
|
-
backgroundColor:
|
|
713
|
+
backgroundColor: night.color.surfaceElevated,
|
|
712
714
|
// Slightly lighter to distinguish from other sections
|
|
713
715
|
borderRadius: 16,
|
|
714
716
|
// rounded-2xl like web
|
|
715
717
|
borderWidth: 1,
|
|
716
|
-
borderColor:
|
|
718
|
+
borderColor: night.color.fillTertiary,
|
|
717
719
|
marginTop: 16,
|
|
718
720
|
overflow: "hidden"
|
|
719
721
|
},
|
|
@@ -721,12 +723,12 @@ const styles = StyleSheet.create({
|
|
|
721
723
|
paddingHorizontal: 16,
|
|
722
724
|
paddingTop: 12,
|
|
723
725
|
paddingBottom: 16,
|
|
724
|
-
backgroundColor:
|
|
726
|
+
backgroundColor: night.color.bg,
|
|
725
727
|
// Darker content area for contrast
|
|
726
728
|
marginHorizontal: 12,
|
|
727
729
|
marginBottom: 12,
|
|
728
730
|
borderRadius: 8,
|
|
729
731
|
borderWidth: 1,
|
|
730
|
-
borderColor:
|
|
732
|
+
borderColor: night.color.border
|
|
731
733
|
}
|
|
732
734
|
});
|
|
@@ -12,6 +12,7 @@ import React, { memo } from "react";
|
|
|
12
12
|
import { View, Text, TouchableOpacity, StyleSheet } from "react-native";
|
|
13
13
|
import { ChevronLeft, ChevronRight } from "../../icons/lucide-icons.js";
|
|
14
14
|
import { macOSColors } from "../gameUI/constants/macOSDesignSystemColors.js";
|
|
15
|
+
import { night } from "../night/nightTheme.js";
|
|
15
16
|
import { useSafeAreaInsets } from "../../hooks/useSafeAreaInsets.js";
|
|
16
17
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
18
|
/**
|
|
@@ -26,51 +27,56 @@ export const EventStepperFooter = /*#__PURE__*/memo(function EventStepperFooter(
|
|
|
26
27
|
itemLabel = "Event",
|
|
27
28
|
subtitle,
|
|
28
29
|
absolute = false,
|
|
29
|
-
applySafeAreaInset = true
|
|
30
|
+
applySafeAreaInset = true,
|
|
31
|
+
variant = "night"
|
|
30
32
|
}) {
|
|
31
33
|
const insets = useSafeAreaInsets();
|
|
32
34
|
|
|
33
35
|
// Don't render if there's only one or no items
|
|
34
36
|
if (totalItems <= 1) return null;
|
|
37
|
+
const isNight = variant === "night";
|
|
35
38
|
const isFirstItem = currentIndex === 0;
|
|
36
39
|
const isLastItem = currentIndex === totalItems - 1;
|
|
37
40
|
const bottomPadding = applySafeAreaInset ? 12 + insets.bottom : 12;
|
|
41
|
+
// Night buttons are the plate-with-accent-label style — chevrons match.
|
|
42
|
+
const enabledInk = isNight ? night.color.accent : macOSColors.text.primary;
|
|
43
|
+
const disabledInk = isNight ? night.color.textTertiary : macOSColors.text.muted;
|
|
38
44
|
return /*#__PURE__*/_jsxs(View, {
|
|
39
|
-
style: [styles.footer, absolute && styles.footerAbsolute, {
|
|
45
|
+
style: [styles.footer, isNight && styles.nightFooter, absolute && styles.footerAbsolute, {
|
|
40
46
|
paddingBottom: bottomPadding
|
|
41
47
|
}],
|
|
42
48
|
children: [/*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
43
49
|
onPress: onPrevious,
|
|
44
50
|
disabled: isFirstItem,
|
|
45
|
-
style: [styles.navButton, isFirstItem && styles.navButtonDisabled],
|
|
51
|
+
style: [styles.navButton, isNight && styles.nightNavButton, isFirstItem && styles.navButtonDisabled],
|
|
46
52
|
activeOpacity: 0.7,
|
|
47
53
|
children: [/*#__PURE__*/_jsx(ChevronLeft, {
|
|
48
54
|
size: 20,
|
|
49
|
-
color: isFirstItem ?
|
|
55
|
+
color: isFirstItem ? disabledInk : enabledInk
|
|
50
56
|
}), /*#__PURE__*/_jsx(Text, {
|
|
51
|
-
style: [styles.navButtonText, isFirstItem && styles.navButtonTextDisabled],
|
|
57
|
+
style: [styles.navButtonText, isNight && styles.nightNavButtonText, isFirstItem && styles.navButtonTextDisabled, isFirstItem && isNight && styles.nightNavButtonTextDisabled],
|
|
52
58
|
children: "Previous"
|
|
53
59
|
})]
|
|
54
60
|
}), /*#__PURE__*/_jsxs(View, {
|
|
55
61
|
style: styles.counterContainer,
|
|
56
62
|
children: [/*#__PURE__*/_jsxs(Text, {
|
|
57
|
-
style: styles.counterText,
|
|
63
|
+
style: [styles.counterText, isNight && styles.nightCounterText],
|
|
58
64
|
children: [itemLabel, " ", currentIndex + 1, " of ", totalItems]
|
|
59
65
|
}), subtitle && /*#__PURE__*/_jsx(Text, {
|
|
60
|
-
style: styles.subtitleText,
|
|
66
|
+
style: [styles.subtitleText, isNight && styles.nightSubtitleText],
|
|
61
67
|
children: subtitle
|
|
62
68
|
})]
|
|
63
69
|
}), /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
64
70
|
onPress: onNext,
|
|
65
71
|
disabled: isLastItem,
|
|
66
|
-
style: [styles.navButton, isLastItem && styles.navButtonDisabled],
|
|
72
|
+
style: [styles.navButton, isNight && styles.nightNavButton, isLastItem && styles.navButtonDisabled],
|
|
67
73
|
activeOpacity: 0.7,
|
|
68
74
|
children: [/*#__PURE__*/_jsx(Text, {
|
|
69
|
-
style: [styles.navButtonText, isLastItem && styles.navButtonTextDisabled],
|
|
75
|
+
style: [styles.navButtonText, isNight && styles.nightNavButtonText, isLastItem && styles.navButtonTextDisabled, isLastItem && isNight && styles.nightNavButtonTextDisabled],
|
|
70
76
|
children: "Next"
|
|
71
77
|
}), /*#__PURE__*/_jsx(ChevronRight, {
|
|
72
78
|
size: 20,
|
|
73
|
-
color: isLastItem ?
|
|
79
|
+
color: isLastItem ? disabledInk : enabledInk
|
|
74
80
|
})]
|
|
75
81
|
})]
|
|
76
82
|
});
|
|
@@ -139,5 +145,27 @@ const styles = StyleSheet.create({
|
|
|
139
145
|
color: macOSColors.text.secondary,
|
|
140
146
|
fontFamily: "monospace",
|
|
141
147
|
marginTop: 2
|
|
148
|
+
},
|
|
149
|
+
// ── Night variant (see ui/night/nightTheme.ts): near-black glass bar with
|
|
150
|
+
// hairline top border, plate buttons, night text hierarchy.
|
|
151
|
+
nightFooter: {
|
|
152
|
+
backgroundColor: "rgba(5, 5, 5, 0.92)",
|
|
153
|
+
borderTopColor: night.color.border
|
|
154
|
+
},
|
|
155
|
+
nightNavButton: {
|
|
156
|
+
backgroundColor: night.color.button,
|
|
157
|
+
borderRadius: 15
|
|
158
|
+
},
|
|
159
|
+
nightNavButtonText: {
|
|
160
|
+
color: night.color.accent
|
|
161
|
+
},
|
|
162
|
+
nightNavButtonTextDisabled: {
|
|
163
|
+
color: night.color.textTertiary
|
|
164
|
+
},
|
|
165
|
+
nightCounterText: {
|
|
166
|
+
color: night.color.text
|
|
167
|
+
},
|
|
168
|
+
nightSubtitleText: {
|
|
169
|
+
color: night.color.textSecondary
|
|
142
170
|
}
|
|
143
171
|
});
|