@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
|
@@ -8,6 +8,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _lucideIcons = require("../../icons/lucide-icons.js");
|
|
10
10
|
var _macOSDesignSystemColors = require("../gameUI/constants/macOSDesignSystemColors.js");
|
|
11
|
+
var _nightTheme = require("../night/nightTheme.js");
|
|
11
12
|
var _useSafeAreaInsets = require("../../hooks/useSafeAreaInsets.js");
|
|
12
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
14
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
@@ -31,51 +32,56 @@ const EventStepperFooter = exports.EventStepperFooter = /*#__PURE__*/(0, _react.
|
|
|
31
32
|
itemLabel = "Event",
|
|
32
33
|
subtitle,
|
|
33
34
|
absolute = false,
|
|
34
|
-
applySafeAreaInset = true
|
|
35
|
+
applySafeAreaInset = true,
|
|
36
|
+
variant = "night"
|
|
35
37
|
}) {
|
|
36
38
|
const insets = (0, _useSafeAreaInsets.useSafeAreaInsets)();
|
|
37
39
|
|
|
38
40
|
// Don't render if there's only one or no items
|
|
39
41
|
if (totalItems <= 1) return null;
|
|
42
|
+
const isNight = variant === "night";
|
|
40
43
|
const isFirstItem = currentIndex === 0;
|
|
41
44
|
const isLastItem = currentIndex === totalItems - 1;
|
|
42
45
|
const bottomPadding = applySafeAreaInset ? 12 + insets.bottom : 12;
|
|
46
|
+
// Night buttons are the plate-with-accent-label style — chevrons match.
|
|
47
|
+
const enabledInk = isNight ? _nightTheme.night.color.accent : _macOSDesignSystemColors.macOSColors.text.primary;
|
|
48
|
+
const disabledInk = isNight ? _nightTheme.night.color.textTertiary : _macOSDesignSystemColors.macOSColors.text.muted;
|
|
43
49
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
44
|
-
style: [styles.footer, absolute && styles.footerAbsolute, {
|
|
50
|
+
style: [styles.footer, isNight && styles.nightFooter, absolute && styles.footerAbsolute, {
|
|
45
51
|
paddingBottom: bottomPadding
|
|
46
52
|
}],
|
|
47
53
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
|
|
48
54
|
onPress: onPrevious,
|
|
49
55
|
disabled: isFirstItem,
|
|
50
|
-
style: [styles.navButton, isFirstItem && styles.navButtonDisabled],
|
|
56
|
+
style: [styles.navButton, isNight && styles.nightNavButton, isFirstItem && styles.navButtonDisabled],
|
|
51
57
|
activeOpacity: 0.7,
|
|
52
58
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_lucideIcons.ChevronLeft, {
|
|
53
59
|
size: 20,
|
|
54
|
-
color: isFirstItem ?
|
|
60
|
+
color: isFirstItem ? disabledInk : enabledInk
|
|
55
61
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
56
|
-
style: [styles.navButtonText, isFirstItem && styles.navButtonTextDisabled],
|
|
62
|
+
style: [styles.navButtonText, isNight && styles.nightNavButtonText, isFirstItem && styles.navButtonTextDisabled, isFirstItem && isNight && styles.nightNavButtonTextDisabled],
|
|
57
63
|
children: "Previous"
|
|
58
64
|
})]
|
|
59
65
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
60
66
|
style: styles.counterContainer,
|
|
61
67
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
|
|
62
|
-
style: styles.counterText,
|
|
68
|
+
style: [styles.counterText, isNight && styles.nightCounterText],
|
|
63
69
|
children: [itemLabel, " ", currentIndex + 1, " of ", totalItems]
|
|
64
70
|
}), subtitle && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
65
|
-
style: styles.subtitleText,
|
|
71
|
+
style: [styles.subtitleText, isNight && styles.nightSubtitleText],
|
|
66
72
|
children: subtitle
|
|
67
73
|
})]
|
|
68
74
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
|
|
69
75
|
onPress: onNext,
|
|
70
76
|
disabled: isLastItem,
|
|
71
|
-
style: [styles.navButton, isLastItem && styles.navButtonDisabled],
|
|
77
|
+
style: [styles.navButton, isNight && styles.nightNavButton, isLastItem && styles.navButtonDisabled],
|
|
72
78
|
activeOpacity: 0.7,
|
|
73
79
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
74
|
-
style: [styles.navButtonText, isLastItem && styles.navButtonTextDisabled],
|
|
80
|
+
style: [styles.navButtonText, isNight && styles.nightNavButtonText, isLastItem && styles.navButtonTextDisabled, isLastItem && isNight && styles.nightNavButtonTextDisabled],
|
|
75
81
|
children: "Next"
|
|
76
82
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_lucideIcons.ChevronRight, {
|
|
77
83
|
size: 20,
|
|
78
|
-
color: isLastItem ?
|
|
84
|
+
color: isLastItem ? disabledInk : enabledInk
|
|
79
85
|
})]
|
|
80
86
|
})]
|
|
81
87
|
});
|
|
@@ -144,5 +150,27 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
144
150
|
color: _macOSDesignSystemColors.macOSColors.text.secondary,
|
|
145
151
|
fontFamily: "monospace",
|
|
146
152
|
marginTop: 2
|
|
153
|
+
},
|
|
154
|
+
// ── Night variant (see ui/night/nightTheme.ts): near-black glass bar with
|
|
155
|
+
// hairline top border, plate buttons, night text hierarchy.
|
|
156
|
+
nightFooter: {
|
|
157
|
+
backgroundColor: "rgba(5, 5, 5, 0.92)",
|
|
158
|
+
borderTopColor: _nightTheme.night.color.border
|
|
159
|
+
},
|
|
160
|
+
nightNavButton: {
|
|
161
|
+
backgroundColor: _nightTheme.night.color.button,
|
|
162
|
+
borderRadius: 15
|
|
163
|
+
},
|
|
164
|
+
nightNavButtonText: {
|
|
165
|
+
color: _nightTheme.night.color.accent
|
|
166
|
+
},
|
|
167
|
+
nightNavButtonTextDisabled: {
|
|
168
|
+
color: _nightTheme.night.color.textTertiary
|
|
169
|
+
},
|
|
170
|
+
nightCounterText: {
|
|
171
|
+
color: _nightTheme.night.color.text
|
|
172
|
+
},
|
|
173
|
+
nightSubtitleText: {
|
|
174
|
+
color: _nightTheme.night.color.textSecondary
|
|
147
175
|
}
|
|
148
176
|
});
|
|
@@ -10,7 +10,7 @@ exports.FilterList = FilterList;
|
|
|
10
10
|
exports.FilterSection = FilterSection;
|
|
11
11
|
var _reactNative = require("react-native");
|
|
12
12
|
var _index = require("../../icons/index.js");
|
|
13
|
-
var
|
|
13
|
+
var _nightTheme = require("../night/nightTheme.js");
|
|
14
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
15
|
// Container for filter section
|
|
16
16
|
|
|
@@ -173,7 +173,7 @@ function FilterList({
|
|
|
173
173
|
const styles = _reactNative.StyleSheet.create({
|
|
174
174
|
filterSection: {
|
|
175
175
|
padding: 16,
|
|
176
|
-
backgroundColor:
|
|
176
|
+
backgroundColor: "transparent"
|
|
177
177
|
},
|
|
178
178
|
badge: {
|
|
179
179
|
flexDirection: "row",
|
|
@@ -196,10 +196,10 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
196
196
|
inputContainer: {
|
|
197
197
|
flexDirection: "row",
|
|
198
198
|
alignItems: "center",
|
|
199
|
-
backgroundColor:
|
|
199
|
+
backgroundColor: _nightTheme.night.color.surfaceElevated,
|
|
200
200
|
borderRadius: 10,
|
|
201
201
|
borderWidth: 1,
|
|
202
|
-
borderColor:
|
|
202
|
+
borderColor: _nightTheme.night.color.border,
|
|
203
203
|
paddingHorizontal: 14,
|
|
204
204
|
paddingVertical: 10,
|
|
205
205
|
marginBottom: 8
|
|
@@ -208,7 +208,7 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
208
208
|
flex: 1,
|
|
209
209
|
fontSize: 13,
|
|
210
210
|
paddingVertical: 0,
|
|
211
|
-
color:
|
|
211
|
+
color: _nightTheme.night.color.text
|
|
212
212
|
},
|
|
213
213
|
inputButtons: {
|
|
214
214
|
flexDirection: "row",
|
|
@@ -218,7 +218,7 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
218
218
|
cancelButton: {
|
|
219
219
|
padding: 4,
|
|
220
220
|
borderRadius: 6,
|
|
221
|
-
backgroundColor:
|
|
221
|
+
backgroundColor: _nightTheme.night.color.surfaceElevated
|
|
222
222
|
},
|
|
223
223
|
inlineAddButton: {
|
|
224
224
|
paddingHorizontal: 12,
|
|
@@ -239,8 +239,8 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
239
239
|
borderRadius: 10,
|
|
240
240
|
borderWidth: 1,
|
|
241
241
|
borderStyle: "dashed",
|
|
242
|
-
borderColor:
|
|
243
|
-
backgroundColor:
|
|
242
|
+
borderColor: _nightTheme.night.color.border,
|
|
243
|
+
backgroundColor: _nightTheme.night.color.surfaceElevated
|
|
244
244
|
},
|
|
245
245
|
addButtonText: {
|
|
246
246
|
fontSize: 13,
|
|
@@ -256,17 +256,17 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
256
256
|
justifyContent: "space-between",
|
|
257
257
|
paddingVertical: 10,
|
|
258
258
|
paddingHorizontal: 12,
|
|
259
|
-
backgroundColor:
|
|
259
|
+
backgroundColor: _nightTheme.night.color.surfaceElevated,
|
|
260
260
|
borderRadius: 8,
|
|
261
261
|
borderWidth: 1,
|
|
262
|
-
borderColor:
|
|
262
|
+
borderColor: _nightTheme.night.color.border
|
|
263
263
|
},
|
|
264
264
|
filterItemText: {
|
|
265
265
|
flex: 1,
|
|
266
266
|
fontSize: 12,
|
|
267
267
|
fontFamily: "monospace",
|
|
268
268
|
marginRight: 8,
|
|
269
|
-
color:
|
|
269
|
+
color: _nightTheme.night.color.text
|
|
270
270
|
},
|
|
271
271
|
filterItemMeta: {
|
|
272
272
|
marginRight: 8
|
|
@@ -11,7 +11,7 @@ exports.Navigation = Navigation;
|
|
|
11
11
|
var _reactNative = require("react-native");
|
|
12
12
|
var _react = require("react");
|
|
13
13
|
var _index = require("../../icons/index.js");
|
|
14
|
-
var
|
|
14
|
+
var _nightTheme = require("../night/nightTheme.js");
|
|
15
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
16
|
// Base ModalHeader container component
|
|
17
17
|
// Note: onClose and onMinimize are now handled by WindowControls in JsModal
|
|
@@ -43,9 +43,12 @@ function Navigation({
|
|
|
43
43
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
44
44
|
onPress: onClose,
|
|
45
45
|
style: styles.navigationButton,
|
|
46
|
+
testID: "tool-close",
|
|
47
|
+
accessibilityLabel: "Close",
|
|
48
|
+
accessibilityRole: "button",
|
|
46
49
|
children: closeIcon || /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.X, {
|
|
47
50
|
size: 20,
|
|
48
|
-
color:
|
|
51
|
+
color: _nightTheme.night.color.textSecondary
|
|
49
52
|
})
|
|
50
53
|
})]
|
|
51
54
|
});
|
|
@@ -56,9 +59,12 @@ function Navigation({
|
|
|
56
59
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
57
60
|
onPress: onBack,
|
|
58
61
|
style: styles.navigationButton,
|
|
62
|
+
testID: "tool-back",
|
|
63
|
+
accessibilityLabel: "Back",
|
|
64
|
+
accessibilityRole: "button",
|
|
59
65
|
children: backIcon || /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.ChevronLeft, {
|
|
60
66
|
size: 20,
|
|
61
|
-
color:
|
|
67
|
+
color: _nightTheme.night.color.textSecondary
|
|
62
68
|
})
|
|
63
69
|
});
|
|
64
70
|
}
|
|
@@ -69,9 +75,12 @@ function Navigation({
|
|
|
69
75
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
70
76
|
onPress: onBack,
|
|
71
77
|
style: styles.navigationButton,
|
|
78
|
+
testID: "tool-back",
|
|
79
|
+
accessibilityLabel: "Back",
|
|
80
|
+
accessibilityRole: "button",
|
|
72
81
|
children: backIcon || /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.ChevronLeft, {
|
|
73
82
|
size: 20,
|
|
74
|
-
color:
|
|
83
|
+
color: _nightTheme.night.color.textSecondary
|
|
75
84
|
})
|
|
76
85
|
});
|
|
77
86
|
}
|
|
@@ -139,12 +148,12 @@ function HeaderSearch({
|
|
|
139
148
|
style: styles.searchContainer,
|
|
140
149
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Search, {
|
|
141
150
|
size: 12,
|
|
142
|
-
color:
|
|
151
|
+
color: _nightTheme.night.color.textSecondary
|
|
143
152
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
|
|
144
153
|
ref: inputRef,
|
|
145
154
|
style: styles.searchInput,
|
|
146
155
|
placeholder: placeholder,
|
|
147
|
-
placeholderTextColor:
|
|
156
|
+
placeholderTextColor: _nightTheme.night.color.placeholder,
|
|
148
157
|
value: value,
|
|
149
158
|
onChangeText: onChangeText,
|
|
150
159
|
autoCorrect: false,
|
|
@@ -154,7 +163,7 @@ function HeaderSearch({
|
|
|
154
163
|
style: styles.searchCancelButton,
|
|
155
164
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.X, {
|
|
156
165
|
size: 12,
|
|
157
|
-
color:
|
|
166
|
+
color: _nightTheme.night.color.textSecondary
|
|
158
167
|
})
|
|
159
168
|
})]
|
|
160
169
|
});
|
|
@@ -172,7 +181,10 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
172
181
|
flex: 1,
|
|
173
182
|
gap: 8,
|
|
174
183
|
minHeight: 32,
|
|
175
|
-
paddingLeft: 4
|
|
184
|
+
paddingLeft: 4,
|
|
185
|
+
// Traffic-light window controls sit absolutely in this corner. Reserve
|
|
186
|
+
// space so Copy / search / extra actions never paint under them.
|
|
187
|
+
paddingRight: 56
|
|
176
188
|
},
|
|
177
189
|
navigationButton: {
|
|
178
190
|
padding: 4
|
|
@@ -189,7 +201,7 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
189
201
|
justifyContent: "center"
|
|
190
202
|
},
|
|
191
203
|
headerTitle: {
|
|
192
|
-
color:
|
|
204
|
+
color: _nightTheme.night.color.text,
|
|
193
205
|
fontSize: 14,
|
|
194
206
|
fontWeight: "500"
|
|
195
207
|
},
|
|
@@ -198,7 +210,7 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
198
210
|
},
|
|
199
211
|
headerSubtitle: {
|
|
200
212
|
fontSize: 12,
|
|
201
|
-
color:
|
|
213
|
+
color: _nightTheme.night.color.textSecondary,
|
|
202
214
|
marginTop: 2
|
|
203
215
|
},
|
|
204
216
|
headerSubtitleCentered: {
|
|
@@ -208,7 +220,8 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
208
220
|
flexDirection: "row",
|
|
209
221
|
gap: 6,
|
|
210
222
|
marginLeft: "auto",
|
|
211
|
-
marginRight: 4
|
|
223
|
+
marginRight: 4,
|
|
224
|
+
flexShrink: 0
|
|
212
225
|
},
|
|
213
226
|
headerContentNoMargin: {
|
|
214
227
|
marginHorizontal: 0
|
|
@@ -217,21 +230,21 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
217
230
|
flexDirection: "row",
|
|
218
231
|
alignItems: "center",
|
|
219
232
|
flex: 1,
|
|
220
|
-
backgroundColor:
|
|
221
|
-
borderRadius:
|
|
233
|
+
backgroundColor: _nightTheme.night.color.surfaceElevated,
|
|
234
|
+
borderRadius: 10,
|
|
222
235
|
paddingHorizontal: 10,
|
|
223
236
|
paddingVertical: 4,
|
|
224
237
|
marginHorizontal: 12,
|
|
225
238
|
marginVertical: 4,
|
|
226
239
|
height: 32,
|
|
227
240
|
borderWidth: 1,
|
|
228
|
-
borderColor:
|
|
241
|
+
borderColor: _nightTheme.night.color.border
|
|
229
242
|
},
|
|
230
243
|
searchInput: {
|
|
231
244
|
flex: 1,
|
|
232
245
|
marginLeft: 8,
|
|
233
246
|
fontSize: 13,
|
|
234
|
-
color:
|
|
247
|
+
color: _nightTheme.night.color.text,
|
|
235
248
|
padding: 0,
|
|
236
249
|
height: "100%"
|
|
237
250
|
},
|
|
@@ -94,7 +94,9 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
94
94
|
alignItems: "center",
|
|
95
95
|
paddingHorizontal: 16,
|
|
96
96
|
paddingVertical: 8,
|
|
97
|
-
|
|
97
|
+
// Transparent (was the opaque buoy base): section headers sit on night
|
|
98
|
+
// surfaces now, and an opaque strip breaks the star field behind them.
|
|
99
|
+
backgroundColor: "transparent",
|
|
98
100
|
minHeight: 40
|
|
99
101
|
},
|
|
100
102
|
iconWrapper: {
|
|
@@ -7,6 +7,7 @@ exports.StorageTypeBadge = StorageTypeBadge;
|
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
8
|
var _index = require("../../icons/index.js");
|
|
9
9
|
var _gameUIColors = require("../gameUI/constants/gameUIColors.js");
|
|
10
|
+
var _nightTheme = require("../night/nightTheme.js");
|
|
10
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
12
|
function StorageTypeBadge({
|
|
12
13
|
type,
|
|
@@ -17,13 +18,13 @@ function StorageTypeBadge({
|
|
|
17
18
|
const getStorageColor = () => {
|
|
18
19
|
switch (type) {
|
|
19
20
|
case "async":
|
|
20
|
-
return
|
|
21
|
+
return _nightTheme.night.color.textSecondary;
|
|
21
22
|
case "mmkv":
|
|
22
23
|
return _gameUIColors.buoyColors.success;
|
|
23
24
|
case "secure":
|
|
24
25
|
return _gameUIColors.buoyColors.warning;
|
|
25
26
|
default:
|
|
26
|
-
return
|
|
27
|
+
return _nightTheme.night.color.textTertiary;
|
|
27
28
|
}
|
|
28
29
|
};
|
|
29
30
|
const getStorageText = () => {
|
|
@@ -5,8 +5,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.TabSelector = TabSelector;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
|
-
var
|
|
8
|
+
var _nightTheme = require("../night/nightTheme.js");
|
|
9
9
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
/**
|
|
11
|
+
* Header tab strip — the night segmented control (see ui/night): `#050505`
|
|
12
|
+
* track, `#161618` thumb, accent underline glow under the active label.
|
|
13
|
+
*
|
|
14
|
+
* Same props API it has always had, so every tool header that mounts it got
|
|
15
|
+
* the night look in one shared edit. Visually identical to `NightSegmented`
|
|
16
|
+
* at its compact size — new night-native code should prefer that primitive;
|
|
17
|
+
* this component exists so existing consumers convert without a code change.
|
|
18
|
+
*/
|
|
10
19
|
function TabSelector({
|
|
11
20
|
tabs,
|
|
12
21
|
activeTab,
|
|
@@ -14,60 +23,69 @@ function TabSelector({
|
|
|
14
23
|
}) {
|
|
15
24
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
16
25
|
style: styles.container,
|
|
17
|
-
children: tabs.map(tab =>
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
children: tabs.map(tab => {
|
|
27
|
+
const active = activeTab === tab.key;
|
|
28
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
|
|
29
|
+
"sentry-label": "ignore user interaction",
|
|
30
|
+
accessibilityRole: "tab",
|
|
31
|
+
accessibilityState: {
|
|
32
|
+
selected: active
|
|
33
|
+
},
|
|
34
|
+
accessibilityLabel: tab.label,
|
|
35
|
+
accessibilityHint: `View ${tab.label.toLowerCase()}`,
|
|
36
|
+
onPress: () => onTabChange(tab.key),
|
|
37
|
+
style: [styles.tabButton, active && styles.tabButtonActive],
|
|
38
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
39
|
+
style: [styles.tabButtonText, active && styles.tabButtonTextActive],
|
|
40
|
+
children: tab.label
|
|
41
|
+
}), active ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
42
|
+
style: styles.underline
|
|
43
|
+
}) : null]
|
|
44
|
+
}, tab.key);
|
|
45
|
+
})
|
|
28
46
|
});
|
|
29
47
|
}
|
|
30
48
|
const styles = _reactNative.StyleSheet.create({
|
|
31
49
|
container: {
|
|
32
50
|
flexDirection: "row",
|
|
33
|
-
backgroundColor:
|
|
34
|
-
borderRadius:
|
|
35
|
-
padding: 2,
|
|
51
|
+
backgroundColor: _nightTheme.night.color.bg,
|
|
52
|
+
borderRadius: _nightTheme.night.radius.row,
|
|
36
53
|
borderWidth: 1,
|
|
37
|
-
borderColor:
|
|
38
|
-
|
|
39
|
-
height: 28
|
|
54
|
+
borderColor: _nightTheme.night.color.border,
|
|
55
|
+
padding: 3
|
|
40
56
|
},
|
|
41
57
|
tabButton: {
|
|
42
|
-
|
|
43
|
-
paddingVertical:
|
|
44
|
-
borderRadius: 4,
|
|
58
|
+
flex: 1,
|
|
59
|
+
paddingVertical: 5,
|
|
45
60
|
alignItems: "center",
|
|
46
61
|
justifyContent: "center",
|
|
47
|
-
|
|
48
|
-
marginHorizontal: 1
|
|
62
|
+
borderRadius: _nightTheme.night.radius.segment
|
|
49
63
|
},
|
|
50
|
-
/**
|
|
51
|
-
* The selected tab is marked with an accent ring.
|
|
52
|
-
*/
|
|
53
64
|
tabButtonActive: {
|
|
54
|
-
backgroundColor:
|
|
55
|
-
borderWidth: 1,
|
|
56
|
-
borderColor: _gameUIColors.buoyColors.primary
|
|
57
|
-
},
|
|
58
|
-
tabButtonInactive: {
|
|
59
|
-
backgroundColor: "transparent"
|
|
65
|
+
backgroundColor: _nightTheme.night.color.surfaceElevated
|
|
60
66
|
},
|
|
61
67
|
tabButtonText: {
|
|
62
68
|
fontSize: 12,
|
|
63
|
-
fontWeight: "
|
|
64
|
-
|
|
65
|
-
textTransform: "uppercase"
|
|
69
|
+
fontWeight: "500",
|
|
70
|
+
color: _nightTheme.night.color.textSecondary
|
|
66
71
|
},
|
|
67
72
|
tabButtonTextActive: {
|
|
68
|
-
|
|
73
|
+
fontWeight: "600",
|
|
74
|
+
color: _nightTheme.night.color.text
|
|
69
75
|
},
|
|
70
|
-
|
|
71
|
-
|
|
76
|
+
underline: {
|
|
77
|
+
position: "absolute",
|
|
78
|
+
bottom: 1.5,
|
|
79
|
+
width: 20,
|
|
80
|
+
height: 2,
|
|
81
|
+
borderRadius: 1,
|
|
82
|
+
backgroundColor: _nightTheme.night.color.accent,
|
|
83
|
+
shadowColor: _nightTheme.night.color.accent,
|
|
84
|
+
shadowOffset: {
|
|
85
|
+
width: 0,
|
|
86
|
+
height: 0
|
|
87
|
+
},
|
|
88
|
+
shadowOpacity: 0.6,
|
|
89
|
+
shadowRadius: 6
|
|
72
90
|
}
|
|
73
91
|
});
|
|
@@ -7,6 +7,7 @@ exports.ValueTypeBadge = ValueTypeBadge;
|
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
8
|
var _index = require("../../icons/index.js");
|
|
9
9
|
var _gameUIColors = require("../gameUI/constants/gameUIColors.js");
|
|
10
|
+
var _nightTheme = require("../night/nightTheme.js");
|
|
10
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
12
|
function ValueTypeBadge({
|
|
12
13
|
type,
|
|
@@ -75,12 +76,12 @@ function ValueTypeBadge({
|
|
|
75
76
|
return _gameUIColors.buoyColors.primary;
|
|
76
77
|
case "null":
|
|
77
78
|
case "undefined":
|
|
78
|
-
return
|
|
79
|
+
return _nightTheme.night.color.textTertiary;
|
|
79
80
|
case "object":
|
|
80
81
|
case "array":
|
|
81
|
-
return
|
|
82
|
+
return _nightTheme.night.color.textSecondary;
|
|
82
83
|
default:
|
|
83
|
-
return
|
|
84
|
+
return _nightTheme.night.color.textTertiary;
|
|
84
85
|
}
|
|
85
86
|
};
|
|
86
87
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
@@ -135,12 +136,12 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
135
136
|
backgroundColor: _gameUIColors.buoyColors.primary + "1A"
|
|
136
137
|
},
|
|
137
138
|
secondaryBadge: {
|
|
138
|
-
backgroundColor:
|
|
139
|
+
backgroundColor: _nightTheme.night.color.textSecondary + "1A"
|
|
139
140
|
},
|
|
140
141
|
mutedBadge: {
|
|
141
|
-
backgroundColor:
|
|
142
|
+
backgroundColor: _nightTheme.night.color.textTertiary + "1A"
|
|
142
143
|
},
|
|
143
144
|
defaultBadge: {
|
|
144
|
-
backgroundColor:
|
|
145
|
+
backgroundColor: _nightTheme.night.color.textTertiary + "1A"
|
|
145
146
|
}
|
|
146
147
|
});
|
|
@@ -9,6 +9,7 @@ var _react = require("react");
|
|
|
9
9
|
var _reactNative = require("react-native");
|
|
10
10
|
var _index = require("../../icons/index.js");
|
|
11
11
|
var _gameUIColors = require("../gameUI/constants/gameUIColors.js");
|
|
12
|
+
var _nightTheme = require("../night/nightTheme.js");
|
|
12
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
14
|
// ============================================================================
|
|
14
15
|
// Global expandable setting — controlled via setExpandableWindowControls()
|
|
@@ -72,7 +73,8 @@ function WindowControls({
|
|
|
72
73
|
onClose,
|
|
73
74
|
onMinimize,
|
|
74
75
|
onToggleMode,
|
|
75
|
-
mode
|
|
76
|
+
mode,
|
|
77
|
+
variant = "night"
|
|
76
78
|
}) {
|
|
77
79
|
// Show action-based icon: what will happen when clicked
|
|
78
80
|
const ToggleModeIcon = mode === "floating" ? _index.DockBottom : _index.FloatWindow;
|
|
@@ -125,15 +127,18 @@ function WindowControls({
|
|
|
125
127
|
onClose: onClose,
|
|
126
128
|
onMinimize: onMinimize,
|
|
127
129
|
onToggleMode: onToggleMode,
|
|
128
|
-
mode: mode
|
|
130
|
+
mode: mode,
|
|
131
|
+
variant: variant
|
|
129
132
|
});
|
|
130
133
|
}
|
|
131
134
|
function ExpandableWindowControls({
|
|
132
135
|
onClose,
|
|
133
136
|
onMinimize,
|
|
134
137
|
onToggleMode,
|
|
135
|
-
mode
|
|
138
|
+
mode,
|
|
139
|
+
variant = "night"
|
|
136
140
|
}) {
|
|
141
|
+
const isNight = variant === "night";
|
|
137
142
|
const [expanded, setExpanded] = (0, _react.useState)(false);
|
|
138
143
|
const [triggerLayout, setTriggerLayout] = (0, _react.useState)(null);
|
|
139
144
|
const expandAnim = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
|
|
@@ -267,38 +272,38 @@ function ExpandableWindowControls({
|
|
|
267
272
|
}],
|
|
268
273
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableWithoutFeedback, {
|
|
269
274
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
270
|
-
style: styles.expandedContainer,
|
|
275
|
+
style: [styles.expandedContainer, isNight && styles.nightExpandedContainer],
|
|
271
276
|
children: [onMinimize && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
272
277
|
onPress: () => handleAction(onMinimize),
|
|
273
|
-
style: [styles.expandedButton, styles.minimizeButtonExpanded],
|
|
278
|
+
style: [styles.expandedButton, isNight ? styles.nightMinimizeButton : styles.minimizeButtonExpanded],
|
|
274
279
|
activeOpacity: 0.7,
|
|
275
280
|
accessibilityLabel: "Minimize modal",
|
|
276
281
|
accessibilityRole: "button",
|
|
277
282
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Minus, {
|
|
278
283
|
size: EXPANDED_ICON_SIZE,
|
|
279
|
-
color: "#7A5A00",
|
|
284
|
+
color: isNight ? _nightTheme.night.color.warning : "#7A5A00",
|
|
280
285
|
strokeWidth: 2
|
|
281
286
|
})
|
|
282
287
|
}), onToggleMode && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
283
288
|
onPress: () => handleAction(onToggleMode),
|
|
284
|
-
style: [styles.expandedButton, styles.expandButtonExpanded],
|
|
289
|
+
style: [styles.expandedButton, isNight ? styles.nightToggleButton : styles.expandButtonExpanded],
|
|
285
290
|
activeOpacity: 0.7,
|
|
286
291
|
accessibilityLabel: toggleModeLabel,
|
|
287
292
|
accessibilityRole: "button",
|
|
288
293
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ToggleModeIcon, {
|
|
289
294
|
size: EXPANDED_ICON_SIZE,
|
|
290
|
-
color: "#004A1A",
|
|
295
|
+
color: isNight ? _nightTheme.night.color.accent : "#004A1A",
|
|
291
296
|
strokeWidth: 2
|
|
292
297
|
})
|
|
293
298
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
294
299
|
onPress: () => handleAction(onClose),
|
|
295
|
-
style: [styles.expandedButton, styles.closeButtonExpanded],
|
|
300
|
+
style: [styles.expandedButton, isNight ? styles.nightCloseButton : styles.closeButtonExpanded],
|
|
296
301
|
activeOpacity: 0.7,
|
|
297
302
|
accessibilityLabel: "Close modal",
|
|
298
303
|
accessibilityRole: "button",
|
|
299
304
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.X, {
|
|
300
305
|
size: EXPANDED_ICON_SIZE,
|
|
301
|
-
color: "#4A0000",
|
|
306
|
+
color: isNight ? _nightTheme.night.color.danger : "#4A0000",
|
|
302
307
|
strokeWidth: 2
|
|
303
308
|
})
|
|
304
309
|
})]
|
|
@@ -381,5 +386,27 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
381
386
|
},
|
|
382
387
|
expandButtonExpanded: {
|
|
383
388
|
backgroundColor: COLORS.toggleMode
|
|
389
|
+
},
|
|
390
|
+
// ── Night variant (Everlights language — see ui/night/nightTheme.ts):
|
|
391
|
+
// near-black plate, hairline border, soft-tinted circles with toned icons
|
|
392
|
+
// instead of the solid macOS traffic lights.
|
|
393
|
+
nightExpandedContainer: {
|
|
394
|
+
backgroundColor: _nightTheme.night.color.surface,
|
|
395
|
+
borderColor: _nightTheme.night.color.border
|
|
396
|
+
},
|
|
397
|
+
nightMinimizeButton: {
|
|
398
|
+
backgroundColor: _nightTheme.night.color.warningSoft,
|
|
399
|
+
borderWidth: 1,
|
|
400
|
+
borderColor: _nightTheme.night.color.warning + "59"
|
|
401
|
+
},
|
|
402
|
+
nightToggleButton: {
|
|
403
|
+
backgroundColor: _nightTheme.night.color.accentSoft,
|
|
404
|
+
borderWidth: 1,
|
|
405
|
+
borderColor: _nightTheme.night.color.accentBorderStrong
|
|
406
|
+
},
|
|
407
|
+
nightCloseButton: {
|
|
408
|
+
backgroundColor: _nightTheme.night.color.dangerSoft,
|
|
409
|
+
borderWidth: 1,
|
|
410
|
+
borderColor: _nightTheme.night.color.danger + "59"
|
|
384
411
|
}
|
|
385
412
|
});
|
|
@@ -178,6 +178,14 @@ const buoyColors = exports.buoyColors = {
|
|
|
178
178
|
// Backgrounds (dark to light)
|
|
179
179
|
base: "#121212",
|
|
180
180
|
card: "#1A1A1A",
|
|
181
|
+
/**
|
|
182
|
+
* Card fill for surfaces that sit over a ToolBackground: translucent so the
|
|
183
|
+
* field reads through, but calibrated against the BRIGHTEST scene in the
|
|
184
|
+
* catalogue (Live Sky's noon clouds/sun bloom, ~215 luminance) so a card's
|
|
185
|
+
* backing stays ≤ ~45 luminance and text never washes out. Over the "off"
|
|
186
|
+
* preset it is visually indistinguishable from `card`.
|
|
187
|
+
*/
|
|
188
|
+
cardScrim: "rgba(10,13,20,0.9)",
|
|
181
189
|
hover: "#242424",
|
|
182
190
|
input: "#2A2A2A",
|
|
183
191
|
// Borders
|