@buoy-gg/shared-ui 3.0.0 → 3.0.2
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 +2 -1
- package/lib/commonjs/dataViewer/VirtualizedDataExplorer.js +3 -5
- package/lib/commonjs/hooks/safe-area-impl.js +1 -1
- package/lib/commonjs/icons/lucide-icons.js +104 -22
- package/lib/commonjs/index.js +7 -0
- package/lib/commonjs/license/DeviceLimitModal.js +2 -1
- package/lib/commonjs/license/LicenseEntryModal.js +2 -1
- package/lib/commonjs/license/ManageDevicesModal.js +2 -1
- package/lib/commonjs/stores/BaseEventStore.js +25 -1
- package/lib/commonjs/ui/components/CompactRow.js +62 -65
- package/lib/commonjs/ui/components/EventHistoryViewer/EventPickerModal.js +3 -2
- package/lib/commonjs/ui/components/ExpandableSectionWithModal.js +2 -1
- package/lib/commonjs/ui/console/CyberpunkConsoleSection.js +6 -5
- package/lib/commonjs/ui/console/GalaxyButton.js +2 -1
- package/lib/commonjs/ui/gameUI/components/GameUIStatusHeader.js +2 -1
- package/lib/commonjs/utils/absoluteFill.js +28 -0
- package/lib/commonjs/utils/index.js +7 -0
- package/lib/module/JsModal.js +2 -1
- package/lib/module/dataViewer/VirtualizedDataExplorer.js +3 -5
- package/lib/module/hooks/safe-area-impl.js +1 -1
- package/lib/module/icons/lucide-icons.js +100 -19
- package/lib/module/index.js +2 -0
- package/lib/module/license/DeviceLimitModal.js +2 -1
- package/lib/module/license/LicenseEntryModal.js +2 -1
- package/lib/module/license/ManageDevicesModal.js +2 -1
- package/lib/module/stores/BaseEventStore.js +25 -1
- package/lib/module/ui/components/CompactRow.js +62 -65
- package/lib/module/ui/components/EventHistoryViewer/EventPickerModal.js +3 -2
- package/lib/module/ui/components/ExpandableSectionWithModal.js +2 -1
- package/lib/module/ui/console/CyberpunkConsoleSection.js +6 -5
- package/lib/module/ui/console/GalaxyButton.js +2 -1
- package/lib/module/ui/gameUI/components/GameUIStatusHeader.js +2 -1
- package/lib/module/utils/absoluteFill.js +24 -0
- package/lib/module/utils/index.js +1 -0
- package/lib/typescript/commonjs/JsModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/dataViewer/VirtualizedDataExplorer.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 +4 -2
- package/lib/typescript/commonjs/icons/lucide-icons.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +1 -1
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/license/DeviceLimitModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/license/LicenseEntryModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/license/ManageDevicesModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/stores/BaseEventStore.d.ts +9 -0
- package/lib/typescript/commonjs/stores/BaseEventStore.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/CompactRow.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/EventHistoryViewer/EventPickerModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ExpandableSectionWithModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/console/CyberpunkConsoleSection.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/console/GalaxyButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/gameUI/components/GameUIStatusHeader.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/absoluteFill.d.ts +18 -0
- package/lib/typescript/commonjs/utils/absoluteFill.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/index.d.ts +1 -0
- package/lib/typescript/commonjs/utils/index.d.ts.map +1 -1
- package/lib/typescript/module/JsModal.d.ts.map +1 -1
- package/lib/typescript/module/dataViewer/VirtualizedDataExplorer.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 +4 -2
- package/lib/typescript/module/icons/lucide-icons.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +1 -1
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/license/DeviceLimitModal.d.ts.map +1 -1
- package/lib/typescript/module/license/LicenseEntryModal.d.ts.map +1 -1
- package/lib/typescript/module/license/ManageDevicesModal.d.ts.map +1 -1
- package/lib/typescript/module/stores/BaseEventStore.d.ts +9 -0
- package/lib/typescript/module/stores/BaseEventStore.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/CompactRow.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/EventHistoryViewer/EventPickerModal.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ExpandableSectionWithModal.d.ts.map +1 -1
- package/lib/typescript/module/ui/console/CyberpunkConsoleSection.d.ts.map +1 -1
- package/lib/typescript/module/ui/console/GalaxyButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/gameUI/components/GameUIStatusHeader.d.ts.map +1 -1
- package/lib/typescript/module/utils/absoluteFill.d.ts +18 -0
- package/lib/typescript/module/utils/absoluteFill.d.ts.map +1 -0
- package/lib/typescript/module/utils/index.d.ts +1 -0
- package/lib/typescript/module/utils/index.d.ts.map +1 -1
- package/package.json +4 -4
package/lib/commonjs/JsModal.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.JsModal = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
+
var _absoluteFill = require("./utils/absoluteFill.js");
|
|
9
10
|
var _useSafeAreaInsets = require("./hooks/useSafeAreaInsets.js");
|
|
10
11
|
var _index = require("./ui/gameUI/index.js");
|
|
11
12
|
var _index2 = require("./ui/components/index.js");
|
|
@@ -1241,7 +1242,7 @@ const JsModalComponent = ({
|
|
|
1241
1242
|
// ============================================================================
|
|
1242
1243
|
const styles = _reactNative.StyleSheet.create({
|
|
1243
1244
|
fullScreenContainer: {
|
|
1244
|
-
...
|
|
1245
|
+
..._absoluteFill.absoluteFill,
|
|
1245
1246
|
zIndex: 1000
|
|
1246
1247
|
},
|
|
1247
1248
|
bottomSheetWrapper: {
|
|
@@ -726,7 +726,6 @@ const useDataFlattening = (data, maxDepth = 10, autoExpandFirstLevel = false) =>
|
|
|
726
726
|
const VirtualizedItemComponent = ({
|
|
727
727
|
item,
|
|
728
728
|
onToggleExpanded,
|
|
729
|
-
data,
|
|
730
729
|
index,
|
|
731
730
|
onSelect,
|
|
732
731
|
isSelected
|
|
@@ -790,9 +789,9 @@ const VirtualizedItemComponent = ({
|
|
|
790
789
|
children: formatValue(item.value, item.valueType)
|
|
791
790
|
})]
|
|
792
791
|
})]
|
|
793
|
-
}), item.
|
|
794
|
-
value:
|
|
795
|
-
size:
|
|
792
|
+
}), item.value !== undefined ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_CopyButton.CopyButton, {
|
|
793
|
+
value: item.value,
|
|
794
|
+
size: 14,
|
|
796
795
|
buttonStyle: {
|
|
797
796
|
marginLeft: 8,
|
|
798
797
|
marginRight: 8
|
|
@@ -877,7 +876,6 @@ const VirtualizedDataExplorer = ({
|
|
|
877
876
|
item: item,
|
|
878
877
|
index: index,
|
|
879
878
|
onToggleExpanded: toggleExpanded,
|
|
880
|
-
data: data,
|
|
881
879
|
onSelect: setSelectedIndex,
|
|
882
880
|
isSelected: selectedIndex === index
|
|
883
881
|
});
|
|
@@ -7,7 +7,7 @@ exports.useNativeSafeAreaInsets = exports.safeAreaType = exports.hasSafeAreaPack
|
|
|
7
7
|
/**
|
|
8
8
|
* Auto-generated safe area implementation
|
|
9
9
|
* Detected: none
|
|
10
|
-
* Generated at: 2026-06-
|
|
10
|
+
* Generated at: 2026-06-23T21:16:34.896Z
|
|
11
11
|
*
|
|
12
12
|
* DO NOT EDIT - This file is generated by scripts/detect-safe-area.js
|
|
13
13
|
*
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
exports.ZapIcon = exports.Zap = exports.XIcon = exports.XCircleIcon = exports.XCircle = exports.X = exports.WifiIcon = exports.Wifi = exports.VolumeIcon = exports.Volume = exports.UsersIcon = exports.Users = exports.UserIcon = exports.User = exports.UploadIcon = exports.Upload = exports.UnlockIcon = exports.Unlock = exports.TriangleAlertIcon = exports.TriangleAlert = exports.TrashIcon = exports.Trash2Icon = exports.Trash2 = exports.Trash = exports.TouchpadIcon = exports.Touchpad = exports.TimerIcon = exports.Timer = exports.TestTube2Icon = exports.TestTube2 = exports.SquareIcon = exports.SquareDashedIcon = exports.SquareDashed = exports.Square = exports.SmartphoneIcon = exports.Smartphone = exports.ShieldIcon = exports.Shield = exports.SettingsIcon = exports.Settings = exports.ServerIcon = exports.Server = exports.SearchIcon = exports.Search = exports.RouteIcon = exports.Route = exports.RefreshCwIcon = exports.RefreshCw = exports.PowerIcon = exports.Power = void 0;
|
|
6
|
+
exports.PlayIcon = exports.Play = exports.PhoneIcon = exports.Phone = exports.PauseIcon = exports.Pause = exports.PaletteIcon = exports.Palette = exports.NavigationIcon = exports.Navigation = exports.MusicIcon = exports.Music = exports.MinusIcon = exports.Minus = exports.Maximize2Icon = exports.Maximize2 = exports.LockIcon = exports.Lock = exports.LinkIcon = exports.Link = exports.LayersIcon = exports.Layers = exports.KeyIcon = exports.Key = exports.InfoIcon = exports.Info = exports.ImageIcon = exports.Image = exports.HomeIcon = exports.Home = exports.HelpCircle = exports.HashIcon = exports.Hash = exports.HardDriveIcon = exports.HardDrive = exports.HandIcon = exports.Hand = exports.GlobeIcon = exports.Globe = exports.GitBranchIcon = exports.GitBranch = exports.FloatWindow = exports.FlaskConicalIcon = exports.FlaskConical = exports.FilterIcon = exports.Filter = exports.FilmIcon = exports.Film = exports.FileTextIcon = exports.FileText = exports.FileJsonIcon = exports.FileJson = exports.FileCodeIcon = exports.FileCode = exports.EyeOffIcon = exports.EyeOff = exports.EyeIcon = exports.Eye = exports.Edit3Icon = exports.Edit3 = exports.DownloadIcon = exports.Download = exports.DockBottom = exports.DatabaseIcon = exports.Database = exports.CopyIcon = exports.Copy = exports.CloudIcon = exports.Cloud = exports.ClockIcon = exports.Clock = exports.ChevronUpIcon = exports.ChevronUp = exports.ChevronRightIcon = exports.ChevronRight = exports.ChevronLeftIcon = exports.ChevronLeft = exports.ChevronDownIcon = exports.ChevronDown = exports.CheckSquareIcon = exports.CheckSquare = exports.CheckIcon = exports.CheckCircleIcon = exports.CheckCircle2Icon = exports.CheckCircle2 = exports.CheckCircle = exports.Check = exports.BugIcon = exports.Bug = exports.BoxIcon = exports.Box = exports.BarChart3Icon = exports.BarChart3 = exports.AlertTriangleIcon = exports.AlertTriangle = exports.AlertOctagon = exports.AlertCircleIcon = exports.AlertCircle = exports.ActivityIcon = exports.Activity = void 0;
|
|
7
|
+
exports.ZapIcon = exports.Zap = exports.XIcon = exports.XCircleIcon = exports.XCircle = exports.X = exports.WifiIcon = exports.Wifi = exports.VolumeIcon = exports.Volume = exports.UsersIcon = exports.Users = exports.UserIcon = exports.User = exports.UploadIcon = exports.Upload = exports.UnlockIcon = exports.Unlock = exports.TriangleAlertIcon = exports.TriangleAlert = exports.TrashIcon = exports.Trash2Icon = exports.Trash2 = exports.Trash = exports.TouchpadIcon = exports.Touchpad = exports.TimerIcon = exports.Timer = exports.TestTube2Icon = exports.TestTube2 = exports.SquareIcon = exports.SquareDashedIcon = exports.SquareDashed = exports.Square = exports.SmartphoneIcon = exports.Smartphone = exports.ShieldIcon = exports.Shield = exports.SettingsIcon = exports.Settings = exports.ServerIcon = exports.Server = exports.SearchIcon = exports.Search = exports.RouteIcon = exports.Route = exports.RefreshCwIcon = exports.RefreshCw = exports.PowerIcon = exports.Power = exports.PlusIcon = exports.Plus = void 0;
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var OriginalIcons = _interopRequireWildcard(require("./lucide-icons-original-full.js"));
|
|
10
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -1398,8 +1398,67 @@ const Plus = ({
|
|
|
1398
1398
|
strokeWidth: strokeWidth
|
|
1399
1399
|
})]
|
|
1400
1400
|
});
|
|
1401
|
+
|
|
1402
|
+
// Refresh / reload icon: a smooth 270° ring (open on the right) with a
|
|
1403
|
+
// clockwise triangle arrowhead. Built from the buoy icon-editor design
|
|
1404
|
+
// (smootharc ring + triangle) using the View-based border trick so it stays
|
|
1405
|
+
// crisp at any size. `strokeWidth` is accepted for API compatibility but the
|
|
1406
|
+
// proportions are fixed to keep the perfected look.
|
|
1401
1407
|
exports.Plus = Plus;
|
|
1402
1408
|
const RefreshCw = ({
|
|
1409
|
+
size = 24,
|
|
1410
|
+
color = "currentColor",
|
|
1411
|
+
strokeWidth: _strokeWidth = 2,
|
|
1412
|
+
...props
|
|
1413
|
+
}) => {
|
|
1414
|
+
const RING_RADIUS = 7; // outer radius, centered in the 24x24 viewBox
|
|
1415
|
+
const RING_STROKE = 2.4;
|
|
1416
|
+
const ARROW_SIZE = 5.2;
|
|
1417
|
+
const ARROW_HALF = ARROW_SIZE * 0.577; // equilateral-ish half-width
|
|
1418
|
+
// Arrowhead anchor (from the editor design, mapped into the 0..24 viewBox)
|
|
1419
|
+
const arrowLeft = 12 + 3.162277660168379;
|
|
1420
|
+
const arrowTop = 12 - 2.846049894151541 - ARROW_HALF;
|
|
1421
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Svg, {
|
|
1422
|
+
width: size,
|
|
1423
|
+
height: size,
|
|
1424
|
+
viewBox: "0 0 24 24",
|
|
1425
|
+
...props,
|
|
1426
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
1427
|
+
style: {
|
|
1428
|
+
position: "absolute",
|
|
1429
|
+
left: 12 - RING_RADIUS,
|
|
1430
|
+
top: 12 - RING_RADIUS,
|
|
1431
|
+
width: RING_RADIUS * 2,
|
|
1432
|
+
height: RING_RADIUS * 2,
|
|
1433
|
+
borderRadius: RING_RADIUS,
|
|
1434
|
+
borderWidth: RING_STROKE,
|
|
1435
|
+
borderTopColor: color,
|
|
1436
|
+
borderLeftColor: color,
|
|
1437
|
+
borderBottomColor: color,
|
|
1438
|
+
borderRightColor: "transparent"
|
|
1439
|
+
}
|
|
1440
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
1441
|
+
style: {
|
|
1442
|
+
position: "absolute",
|
|
1443
|
+
left: arrowLeft,
|
|
1444
|
+
top: arrowTop,
|
|
1445
|
+
width: 0,
|
|
1446
|
+
height: 0,
|
|
1447
|
+
borderTopWidth: ARROW_HALF,
|
|
1448
|
+
borderBottomWidth: ARROW_HALF,
|
|
1449
|
+
borderLeftWidth: ARROW_SIZE,
|
|
1450
|
+
borderTopColor: "transparent",
|
|
1451
|
+
borderBottomColor: "transparent",
|
|
1452
|
+
borderLeftColor: color,
|
|
1453
|
+
transform: [{
|
|
1454
|
+
rotate: "45deg"
|
|
1455
|
+
}]
|
|
1456
|
+
}
|
|
1457
|
+
})]
|
|
1458
|
+
});
|
|
1459
|
+
};
|
|
1460
|
+
exports.RefreshCw = RefreshCw;
|
|
1461
|
+
const Home = ({
|
|
1403
1462
|
size = 24,
|
|
1404
1463
|
color = "currentColor",
|
|
1405
1464
|
strokeWidth = 2,
|
|
@@ -1410,42 +1469,65 @@ const RefreshCw = ({
|
|
|
1410
1469
|
viewBox: "0 0 24 24",
|
|
1411
1470
|
...props,
|
|
1412
1471
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Line, {
|
|
1413
|
-
x1:
|
|
1414
|
-
y1:
|
|
1415
|
-
x2:
|
|
1416
|
-
y2:
|
|
1472
|
+
x1: 3,
|
|
1473
|
+
y1: 10,
|
|
1474
|
+
x2: 12,
|
|
1475
|
+
y2: 3,
|
|
1417
1476
|
stroke: color,
|
|
1418
1477
|
strokeWidth: strokeWidth
|
|
1419
1478
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(Line, {
|
|
1420
|
-
x1:
|
|
1421
|
-
y1:
|
|
1422
|
-
x2:
|
|
1479
|
+
x1: 12,
|
|
1480
|
+
y1: 3,
|
|
1481
|
+
x2: 21,
|
|
1423
1482
|
y2: 10,
|
|
1424
1483
|
stroke: color,
|
|
1425
1484
|
strokeWidth: strokeWidth
|
|
1426
1485
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(Line, {
|
|
1427
|
-
x1:
|
|
1428
|
-
y1:
|
|
1429
|
-
x2:
|
|
1430
|
-
y2:
|
|
1486
|
+
x1: 5,
|
|
1487
|
+
y1: 9,
|
|
1488
|
+
x2: 5,
|
|
1489
|
+
y2: 21,
|
|
1431
1490
|
stroke: color,
|
|
1432
1491
|
strokeWidth: strokeWidth
|
|
1433
1492
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(Line, {
|
|
1434
|
-
x1:
|
|
1435
|
-
y1:
|
|
1436
|
-
x2:
|
|
1437
|
-
y2:
|
|
1493
|
+
x1: 19,
|
|
1494
|
+
y1: 9,
|
|
1495
|
+
x2: 19,
|
|
1496
|
+
y2: 21,
|
|
1438
1497
|
stroke: color,
|
|
1439
1498
|
strokeWidth: strokeWidth
|
|
1440
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1499
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(Line, {
|
|
1500
|
+
x1: 5,
|
|
1501
|
+
y1: 21,
|
|
1502
|
+
x2: 19,
|
|
1503
|
+
y2: 21,
|
|
1504
|
+
stroke: color,
|
|
1505
|
+
strokeWidth: strokeWidth
|
|
1506
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(Line, {
|
|
1507
|
+
x1: 10,
|
|
1508
|
+
y1: 21,
|
|
1509
|
+
x2: 10,
|
|
1510
|
+
y2: 15,
|
|
1511
|
+
stroke: color,
|
|
1512
|
+
strokeWidth: strokeWidth
|
|
1513
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(Line, {
|
|
1514
|
+
x1: 10,
|
|
1515
|
+
y1: 15,
|
|
1516
|
+
x2: 14,
|
|
1517
|
+
y2: 15,
|
|
1518
|
+
stroke: color,
|
|
1519
|
+
strokeWidth: strokeWidth
|
|
1520
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(Line, {
|
|
1521
|
+
x1: 14,
|
|
1522
|
+
y1: 15,
|
|
1523
|
+
x2: 14,
|
|
1524
|
+
y2: 21,
|
|
1444
1525
|
stroke: color,
|
|
1445
1526
|
strokeWidth: strokeWidth
|
|
1446
1527
|
})]
|
|
1447
1528
|
});
|
|
1448
|
-
exports.
|
|
1529
|
+
exports.Home = Home;
|
|
1530
|
+
const HomeIcon = exports.HomeIcon = Home;
|
|
1449
1531
|
const Search = ({
|
|
1450
1532
|
size = 24,
|
|
1451
1533
|
color = "currentColor",
|
package/lib/commonjs/index.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
var _exportNames = {
|
|
7
|
+
absoluteFill: true,
|
|
7
8
|
displayValue: true,
|
|
8
9
|
parseDisplayValue: true,
|
|
9
10
|
getSafeAreaInsets: true,
|
|
@@ -143,6 +144,12 @@ Object.defineProperty(exports, "UpgradePrompt", {
|
|
|
143
144
|
return _index12.UpgradePrompt;
|
|
144
145
|
}
|
|
145
146
|
});
|
|
147
|
+
Object.defineProperty(exports, "absoluteFill", {
|
|
148
|
+
enumerable: true,
|
|
149
|
+
get: function () {
|
|
150
|
+
return _index3.absoluteFill;
|
|
151
|
+
}
|
|
152
|
+
});
|
|
146
153
|
Object.defineProperty(exports, "buoyColors", {
|
|
147
154
|
enumerable: true,
|
|
148
155
|
get: function () {
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.DeviceLimitModal = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
+
var _absoluteFill = require("../utils/absoluteFill.js");
|
|
9
10
|
var _macOSDesignSystemColors = require("../ui/gameUI/constants/macOSDesignSystemColors.js");
|
|
10
11
|
var _lucideIcons = require("../icons/lucide-icons.js");
|
|
11
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -272,7 +273,7 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
272
273
|
alignItems: "center"
|
|
273
274
|
},
|
|
274
275
|
backdrop: {
|
|
275
|
-
...
|
|
276
|
+
..._absoluteFill.absoluteFill,
|
|
276
277
|
backgroundColor: "rgba(0, 0, 0, 0.8)"
|
|
277
278
|
},
|
|
278
279
|
modal: {
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.LicenseEntryModal = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
+
var _absoluteFill = require("../utils/absoluteFill.js");
|
|
9
10
|
var _macOSDesignSystemColors = require("../ui/gameUI/constants/macOSDesignSystemColors.js");
|
|
10
11
|
var _lucideIcons = require("../icons/lucide-icons.js");
|
|
11
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -199,7 +200,7 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
199
200
|
alignItems: "center"
|
|
200
201
|
},
|
|
201
202
|
backdrop: {
|
|
202
|
-
...
|
|
203
|
+
..._absoluteFill.absoluteFill,
|
|
203
204
|
backgroundColor: "rgba(0, 0, 0, 0.8)"
|
|
204
205
|
},
|
|
205
206
|
modal: {
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.ManageDevicesModal = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
+
var _absoluteFill = require("../utils/absoluteFill.js");
|
|
9
10
|
var _gameUIColors = require("../ui/gameUI/constants/gameUIColors.js");
|
|
10
11
|
var _lucideIcons = require("../icons/lucide-icons.js");
|
|
11
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -343,7 +344,7 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
343
344
|
alignItems: "center"
|
|
344
345
|
},
|
|
345
346
|
backdrop: {
|
|
346
|
-
...
|
|
347
|
+
..._absoluteFill.absoluteFill,
|
|
347
348
|
backgroundColor: "rgba(0, 0, 0, 0.7)"
|
|
348
349
|
},
|
|
349
350
|
modal: {
|
|
@@ -270,10 +270,34 @@ class BaseEventStore extends _subscribable.Subscribable {
|
|
|
270
270
|
* mirror mode where full snapshots arrive from a synced device.
|
|
271
271
|
*/
|
|
272
272
|
replaceEvents(events) {
|
|
273
|
-
this.events = events.slice(0, this.maxEvents);
|
|
273
|
+
this.events = this.dedupeById(events).slice(0, this.maxEvents);
|
|
274
274
|
this.notifyArrayListeners();
|
|
275
275
|
}
|
|
276
276
|
|
|
277
|
+
/**
|
|
278
|
+
* Drop events that share an `id` with an earlier event, keeping the first
|
|
279
|
+
* (newest, since events are newest-first) occurrence. Remote snapshots can
|
|
280
|
+
* momentarily carry duplicate ids — e.g. a device's request counter resets
|
|
281
|
+
* on reload while older events with the same id are still in the buffer —
|
|
282
|
+
* which makes React list keys (keyed on `id`) collide. Events without an
|
|
283
|
+
* `id` are passed through untouched.
|
|
284
|
+
*/
|
|
285
|
+
dedupeById(events) {
|
|
286
|
+
const seen = new Set();
|
|
287
|
+
const result = [];
|
|
288
|
+
for (const event of events) {
|
|
289
|
+
const id = event?.id;
|
|
290
|
+
if (id == null) {
|
|
291
|
+
result.push(event);
|
|
292
|
+
continue;
|
|
293
|
+
}
|
|
294
|
+
if (seen.has(id)) continue;
|
|
295
|
+
seen.add(id);
|
|
296
|
+
result.push(event);
|
|
297
|
+
}
|
|
298
|
+
return result;
|
|
299
|
+
}
|
|
300
|
+
|
|
277
301
|
/**
|
|
278
302
|
* Set maximum number of events to keep
|
|
279
303
|
*/
|
|
@@ -28,77 +28,77 @@ function CompactRow({
|
|
|
28
28
|
}) {
|
|
29
29
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
30
30
|
style: styles.rowWrapper,
|
|
31
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.
|
|
31
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
32
32
|
style: [styles.row, isSelected && styles.selectedRow, isExpanded && [styles.expandedRowActive, {
|
|
33
33
|
borderColor: expandedGlowColor || _gameUIColors.buoyColors.primary,
|
|
34
34
|
shadowColor: expandedGlowColor || _gameUIColors.buoyColors.primary
|
|
35
35
|
}]],
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
36
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
37
|
+
onPress: onPress,
|
|
38
|
+
activeOpacity: 0.8,
|
|
39
|
+
disabled: disabled || !onPress,
|
|
40
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
41
|
+
style: styles.rowContent,
|
|
42
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
43
|
+
style: styles.statusSection,
|
|
44
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
45
|
+
style: [styles.statusDot, {
|
|
46
|
+
backgroundColor: statusDotColor
|
|
47
|
+
}]
|
|
48
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
49
|
+
style: styles.statusInfo,
|
|
50
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
51
|
+
style: [styles.statusLabel, {
|
|
52
|
+
color: statusDotColor
|
|
53
|
+
}],
|
|
54
|
+
numberOfLines: 1,
|
|
55
|
+
children: statusLabel
|
|
56
|
+
}), statusSublabel ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
57
|
+
style: styles.observerText,
|
|
58
|
+
numberOfLines: 1,
|
|
59
|
+
children: statusSublabel
|
|
60
|
+
}) : null]
|
|
61
|
+
})]
|
|
47
62
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
48
|
-
style: styles.
|
|
63
|
+
style: styles.querySection,
|
|
49
64
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
50
|
-
style:
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}), statusSublabel && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
56
|
-
style: styles.observerText,
|
|
65
|
+
style: styles.queryHash,
|
|
66
|
+
numberOfLines: isExpanded ? undefined : 2,
|
|
67
|
+
children: primaryText
|
|
68
|
+
}), !isExpanded && secondaryText ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
69
|
+
style: styles.secondaryText,
|
|
57
70
|
numberOfLines: 1,
|
|
58
|
-
children:
|
|
71
|
+
children: secondaryText
|
|
72
|
+
}) : null]
|
|
73
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
74
|
+
style: styles.rightSection,
|
|
75
|
+
children: [(customBadge || badgeText !== undefined || !isExpanded && bottomRightText) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
76
|
+
style: styles.badgeContainer,
|
|
77
|
+
children: [customBadge ? customBadge : badgeText !== undefined ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
78
|
+
style: [styles.statusBadge, {
|
|
79
|
+
color: badgeColor || statusDotColor
|
|
80
|
+
}],
|
|
81
|
+
children: badgeText
|
|
82
|
+
}) : null, !isExpanded && bottomRightText ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
83
|
+
style: styles.bottomRightText,
|
|
84
|
+
numberOfLines: 1,
|
|
85
|
+
children: bottomRightText
|
|
86
|
+
}) : null]
|
|
87
|
+
}), showChevron && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
88
|
+
style: styles.chevronContainer,
|
|
89
|
+
children: isExpanded ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.ChevronDown, {
|
|
90
|
+
size: 14,
|
|
91
|
+
color: _gameUIColors.buoyColors.textMuted
|
|
92
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.ChevronRight, {
|
|
93
|
+
size: 14,
|
|
94
|
+
color: _gameUIColors.buoyColors.textMuted
|
|
95
|
+
})
|
|
59
96
|
})]
|
|
60
97
|
})]
|
|
61
|
-
})
|
|
62
|
-
style: styles.querySection,
|
|
63
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
64
|
-
style: styles.queryHash,
|
|
65
|
-
numberOfLines: isExpanded ? undefined : 2,
|
|
66
|
-
children: primaryText
|
|
67
|
-
}), !isExpanded && secondaryText && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
68
|
-
style: styles.secondaryText,
|
|
69
|
-
numberOfLines: 1,
|
|
70
|
-
children: secondaryText
|
|
71
|
-
})]
|
|
72
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
73
|
-
style: styles.rightSection,
|
|
74
|
-
children: [(customBadge || badgeText !== undefined) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
75
|
-
style: styles.badgeContainer,
|
|
76
|
-
children: customBadge ? customBadge : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
77
|
-
style: [styles.statusBadge, {
|
|
78
|
-
color: badgeColor || statusDotColor
|
|
79
|
-
}],
|
|
80
|
-
children: badgeText
|
|
81
|
-
})
|
|
82
|
-
}), showChevron && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
83
|
-
style: styles.chevronContainer,
|
|
84
|
-
children: isExpanded ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.ChevronDown, {
|
|
85
|
-
size: 14,
|
|
86
|
-
color: _gameUIColors.buoyColors.textMuted
|
|
87
|
-
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.ChevronRight, {
|
|
88
|
-
size: 14,
|
|
89
|
-
color: _gameUIColors.buoyColors.textMuted
|
|
90
|
-
})
|
|
91
|
-
})]
|
|
92
|
-
})]
|
|
98
|
+
})
|
|
93
99
|
}), isExpanded && expandedContent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
94
100
|
style: styles.expandedContent,
|
|
95
101
|
children: expandedContent
|
|
96
|
-
}), !isExpanded && bottomRightText && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
97
|
-
style: styles.bottomRightContainer,
|
|
98
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
99
|
-
style: styles.bottomRightText,
|
|
100
|
-
children: bottomRightText
|
|
101
|
-
})
|
|
102
102
|
})]
|
|
103
103
|
})
|
|
104
104
|
});
|
|
@@ -200,7 +200,9 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
200
200
|
gap: 8
|
|
201
201
|
},
|
|
202
202
|
badgeContainer: {
|
|
203
|
-
|
|
203
|
+
flexDirection: "column",
|
|
204
|
+
alignItems: "flex-end",
|
|
205
|
+
gap: 2
|
|
204
206
|
},
|
|
205
207
|
statusBadge: {
|
|
206
208
|
fontSize: 12,
|
|
@@ -217,11 +219,6 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
217
219
|
borderTopColor: _gameUIColors.buoyColors.border + "20",
|
|
218
220
|
marginLeft: 24 // Align with content after status dot
|
|
219
221
|
},
|
|
220
|
-
bottomRightContainer: {
|
|
221
|
-
position: "absolute",
|
|
222
|
-
bottom: 4,
|
|
223
|
-
right: 8
|
|
224
|
-
},
|
|
225
222
|
bottomRightText: {
|
|
226
223
|
fontSize: 9,
|
|
227
224
|
color: _gameUIColors.buoyColors.textMuted,
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.EventPickerModal = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
+
var _absoluteFill = require("../../../utils/absoluteFill.js");
|
|
9
10
|
var _macOSDesignSystemColors = require("../../gameUI/constants/macOSDesignSystemColors.js");
|
|
10
11
|
var _lucideIcons = require("../../../icons/lucide-icons.js");
|
|
11
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -82,13 +83,13 @@ const EventPickerModal = exports.EventPickerModal = /*#__PURE__*/(0, _react.memo
|
|
|
82
83
|
});
|
|
83
84
|
const styles = _reactNative.StyleSheet.create({
|
|
84
85
|
overlay: {
|
|
85
|
-
...
|
|
86
|
+
..._absoluteFill.absoluteFill,
|
|
86
87
|
zIndex: 20,
|
|
87
88
|
justifyContent: "center",
|
|
88
89
|
alignItems: "center"
|
|
89
90
|
},
|
|
90
91
|
backdrop: {
|
|
91
|
-
...
|
|
92
|
+
..._absoluteFill.absoluteFill,
|
|
92
93
|
backgroundColor: "rgba(0,0,0,0.65)"
|
|
93
94
|
},
|
|
94
95
|
card: {
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.ExpandableSectionWithModal = ExpandableSectionWithModal;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
+
var _absoluteFill = require("../../utils/absoluteFill.js");
|
|
9
10
|
var _useSafeAreaInsets = require("../../hooks/useSafeAreaInsets.js");
|
|
10
11
|
var _index = require("../../icons/index.js");
|
|
11
12
|
var _ExpandableSection = require("./ExpandableSection.js");
|
|
@@ -125,7 +126,7 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
125
126
|
flex: 1
|
|
126
127
|
},
|
|
127
128
|
backdrop: {
|
|
128
|
-
...
|
|
129
|
+
..._absoluteFill.absoluteFill,
|
|
129
130
|
backgroundColor: "rgba(0, 0, 0, 0.8)"
|
|
130
131
|
},
|
|
131
132
|
backdropTouchable: {
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.CyberpunkConsoleSection = CyberpunkConsoleSection;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
+
var _absoluteFill = require("../../utils/absoluteFill.js");
|
|
9
10
|
var _index = require("../../icons/index.js");
|
|
10
11
|
var _index2 = require("../gameUI/index.js");
|
|
11
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -484,31 +485,31 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
484
485
|
backgroundColor: "rgba(5, 5, 10, 0.6)" // Darker glass background
|
|
485
486
|
},
|
|
486
487
|
glassLayer1: {
|
|
487
|
-
...
|
|
488
|
+
..._absoluteFill.absoluteFill,
|
|
488
489
|
backgroundColor: "rgba(10, 10, 15, 0.7)",
|
|
489
490
|
opacity: 0.8
|
|
490
491
|
},
|
|
491
492
|
glassLayer2: {
|
|
492
|
-
...
|
|
493
|
+
..._absoluteFill.absoluteFill,
|
|
493
494
|
backgroundColor: "rgba(15, 15, 25, 0.5)",
|
|
494
495
|
opacity: 0.6,
|
|
495
496
|
top: "20%",
|
|
496
497
|
left: "20%"
|
|
497
498
|
},
|
|
498
499
|
glassLayer3: {
|
|
499
|
-
...
|
|
500
|
+
..._absoluteFill.absoluteFill,
|
|
500
501
|
backgroundColor: "rgba(20, 20, 35, 0.3)",
|
|
501
502
|
opacity: 0.4,
|
|
502
503
|
top: "40%",
|
|
503
504
|
left: "40%"
|
|
504
505
|
},
|
|
505
506
|
glassShimmer: {
|
|
506
|
-
...
|
|
507
|
+
..._absoluteFill.absoluteFill,
|
|
507
508
|
backgroundColor: "rgba(255, 255, 255, 0.03)",
|
|
508
509
|
opacity: 0.6
|
|
509
510
|
},
|
|
510
511
|
glitchOverlayLayer: {
|
|
511
|
-
...
|
|
512
|
+
..._absoluteFill.absoluteFill,
|
|
512
513
|
borderRadius: 12,
|
|
513
514
|
borderWidth: 1,
|
|
514
515
|
justifyContent: "center",
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.GalaxyButton = GalaxyButton;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
+
var _absoluteFill = require("../../utils/absoluteFill.js");
|
|
9
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
11
|
const {
|
|
11
12
|
width: screenWidth
|
|
@@ -76,7 +77,7 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
76
77
|
overflow: "hidden"
|
|
77
78
|
},
|
|
78
79
|
starsContainer: {
|
|
79
|
-
...
|
|
80
|
+
..._absoluteFill.absoluteFill,
|
|
80
81
|
overflow: "hidden"
|
|
81
82
|
},
|
|
82
83
|
starsLayer: {
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.GameUIStatusHeader = GameUIStatusHeader;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
|
+
var _absoluteFill = require("../../../utils/absoluteFill.js");
|
|
8
9
|
var _gameUIColors = require("../constants/gameUIColors.js");
|
|
9
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
11
|
/**
|
|
@@ -82,7 +83,7 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
82
83
|
overflow: "hidden"
|
|
83
84
|
},
|
|
84
85
|
glow: {
|
|
85
|
-
...
|
|
86
|
+
..._absoluteFill.absoluteFill,
|
|
86
87
|
opacity: 0.5
|
|
87
88
|
},
|
|
88
89
|
content: {
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.absoluteFill = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Spreadable absolute-fill style.
|
|
9
|
+
*
|
|
10
|
+
* Replaces `StyleSheet.absoluteFillObject`, which was REMOVED in React Native
|
|
11
|
+
* 0.85 (returns `undefined` there). Spreading `undefined` is a silent no-op, so
|
|
12
|
+
* any overlay/backdrop/full-screen Pressable that relied on it collapses to zero
|
|
13
|
+
* size on RN 0.85+ — invisible and untappable.
|
|
14
|
+
*
|
|
15
|
+
* `StyleSheet.absoluteFill` is not a safe replacement for the spread pattern
|
|
16
|
+
* because its type changed across versions: it's a registered style *number* on
|
|
17
|
+
* RN <= 0.84 (spreading a number yields `{}`) and a frozen object only on 0.85+.
|
|
18
|
+
*
|
|
19
|
+
* This plain object works identically on every RN version, whether spread
|
|
20
|
+
* (`{ ...absoluteFill }`) or passed directly (`style={absoluteFill}`).
|
|
21
|
+
*/
|
|
22
|
+
const absoluteFill = exports.absoluteFill = {
|
|
23
|
+
position: "absolute",
|
|
24
|
+
top: 0,
|
|
25
|
+
left: 0,
|
|
26
|
+
right: 0,
|
|
27
|
+
bottom: 0
|
|
28
|
+
};
|