@buoy-gg/shared-ui 3.0.1 → 4.0.1
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/clipboard/clipboard-impl.js +28 -2
- 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 +130 -22
- package/lib/commonjs/index.js +14 -0
- package/lib/commonjs/license/DeviceLimitModal.js +2 -1
- package/lib/commonjs/license/FeatureGate.js +60 -11
- package/lib/commonjs/license/LicenseEntryModal.js +14 -3
- package/lib/commonjs/license/ManageDevicesModal.js +2 -1
- package/lib/commonjs/license/openPricing.js +36 -0
- package/lib/commonjs/storage/devToolsStorageKeys.js +1 -0
- package/lib/commonjs/stores/BaseEventStore.js +72 -2
- package/lib/commonjs/stores/ignoredPatternsStore.js +229 -0
- package/lib/commonjs/stores/index.js +26 -1
- package/lib/commonjs/ui/components/CompactRow.js +73 -66
- package/lib/commonjs/ui/components/EventHistoryViewer/EventPickerModal.js +3 -2
- package/lib/commonjs/ui/components/ExpandableSectionWithModal.js +2 -1
- package/lib/commonjs/ui/components/ExpandedInfoRow.js +13 -3
- package/lib/commonjs/ui/components/WindowControls.js +9 -3
- 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 +13 -0
- package/lib/commonjs/utils/safeExpoRouter.js +59 -4
- package/lib/module/JsModal.js +2 -1
- package/lib/module/clipboard/clipboard-impl.js +28 -2
- 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 +125 -19
- package/lib/module/index.js +3 -1
- package/lib/module/license/DeviceLimitModal.js +2 -1
- package/lib/module/license/FeatureGate.js +61 -12
- package/lib/module/license/LicenseEntryModal.js +15 -4
- package/lib/module/license/ManageDevicesModal.js +2 -1
- package/lib/module/license/openPricing.js +31 -0
- package/lib/module/storage/devToolsStorageKeys.js +1 -0
- package/lib/module/stores/BaseEventStore.js +72 -2
- package/lib/module/stores/ignoredPatternsStore.js +223 -0
- package/lib/module/stores/index.js +2 -1
- package/lib/module/ui/components/CompactRow.js +73 -66
- package/lib/module/ui/components/EventHistoryViewer/EventPickerModal.js +3 -2
- package/lib/module/ui/components/ExpandableSectionWithModal.js +2 -1
- package/lib/module/ui/components/ExpandedInfoRow.js +13 -3
- package/lib/module/ui/components/WindowControls.js +10 -4
- 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 +2 -1
- package/lib/module/utils/safeExpoRouter.js +58 -4
- package/lib/typescript/commonjs/JsModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/clipboard/clipboard-impl.d.ts +3 -2
- package/lib/typescript/commonjs/clipboard/clipboard-impl.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 +5 -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/FeatureGate.d.ts +14 -1
- package/lib/typescript/commonjs/license/FeatureGate.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/license/openPricing.d.ts +14 -0
- package/lib/typescript/commonjs/license/openPricing.d.ts.map +1 -0
- package/lib/typescript/commonjs/storage/devToolsStorageKeys.d.ts +1 -0
- package/lib/typescript/commonjs/storage/devToolsStorageKeys.d.ts.map +1 -1
- package/lib/typescript/commonjs/stores/BaseEventStore.d.ts +28 -0
- package/lib/typescript/commonjs/stores/BaseEventStore.d.ts.map +1 -1
- package/lib/typescript/commonjs/stores/ignoredPatternsStore.d.ts +84 -0
- package/lib/typescript/commonjs/stores/ignoredPatternsStore.d.ts.map +1 -0
- package/lib/typescript/commonjs/stores/index.d.ts +1 -0
- package/lib/typescript/commonjs/stores/index.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/EventHistoryViewer/EventPickerModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ExpandableSectionWithModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ExpandedInfoRow.d.ts +3 -1
- package/lib/typescript/commonjs/ui/components/ExpandedInfoRow.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/WindowControls.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 +2 -1
- package/lib/typescript/commonjs/utils/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/safeExpoRouter.d.ts +9 -0
- package/lib/typescript/commonjs/utils/safeExpoRouter.d.ts.map +1 -1
- package/lib/typescript/module/JsModal.d.ts.map +1 -1
- package/lib/typescript/module/clipboard/clipboard-impl.d.ts +3 -2
- package/lib/typescript/module/clipboard/clipboard-impl.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 +5 -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/FeatureGate.d.ts +14 -1
- package/lib/typescript/module/license/FeatureGate.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/license/openPricing.d.ts +14 -0
- package/lib/typescript/module/license/openPricing.d.ts.map +1 -0
- package/lib/typescript/module/storage/devToolsStorageKeys.d.ts +1 -0
- package/lib/typescript/module/storage/devToolsStorageKeys.d.ts.map +1 -1
- package/lib/typescript/module/stores/BaseEventStore.d.ts +28 -0
- package/lib/typescript/module/stores/BaseEventStore.d.ts.map +1 -1
- package/lib/typescript/module/stores/ignoredPatternsStore.d.ts +84 -0
- package/lib/typescript/module/stores/ignoredPatternsStore.d.ts.map +1 -0
- package/lib/typescript/module/stores/index.d.ts +1 -0
- package/lib/typescript/module/stores/index.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/EventHistoryViewer/EventPickerModal.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ExpandableSectionWithModal.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ExpandedInfoRow.d.ts +3 -1
- package/lib/typescript/module/ui/components/ExpandedInfoRow.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/WindowControls.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 +2 -1
- package/lib/typescript/module/utils/index.d.ts.map +1 -1
- package/lib/typescript/module/utils/safeExpoRouter.d.ts +9 -0
- package/lib/typescript/module/utils/safeExpoRouter.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -4,8 +4,15 @@
|
|
|
4
4
|
* Wraps premium features and shows an upgrade prompt for free users.
|
|
5
5
|
*/
|
|
6
6
|
import React, { ReactNode } from "react";
|
|
7
|
+
import type { ProAccessReason } from "@buoy-gg/license";
|
|
8
|
+
export declare const WEEKEND_PASS_LABEL = "WEEKEND PASS";
|
|
7
9
|
/**
|
|
8
|
-
* Simple Pro badge for marking premium features
|
|
10
|
+
* Simple Pro badge for marking premium features.
|
|
11
|
+
*
|
|
12
|
+
* Reason-aware: when the free Weekend Pass is the active unlock (a free user on
|
|
13
|
+
* a weekend), it shows a violet "WEEKEND PASS" badge instead of the gold "PRO"
|
|
14
|
+
* so people know Pro is free this weekend. A real license — or a free user on a
|
|
15
|
+
* weekday seeing the badge as a Pro-feature marker — shows "PRO".
|
|
9
16
|
*/
|
|
10
17
|
export declare const ProBadge: ({ style }: {
|
|
11
18
|
style?: object;
|
|
@@ -72,6 +79,12 @@ export declare const FeatureGate: ({ children, featureName, fallback, previewMod
|
|
|
72
79
|
export declare function useFeatureGate(): {
|
|
73
80
|
hasAccess: boolean;
|
|
74
81
|
isPro: boolean;
|
|
82
|
+
/** True only for a real license (not the Weekend Pass). */
|
|
83
|
+
isLicensed: boolean;
|
|
84
|
+
/** True only when the free Weekend Pass is the active unlock. */
|
|
85
|
+
isWeekendFree: boolean;
|
|
86
|
+
/** Why access is granted: "licensed" | "weekend" | null. */
|
|
87
|
+
reason: ProAccessReason;
|
|
75
88
|
showUpgrade: () => void;
|
|
76
89
|
};
|
|
77
90
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeatureGate.d.ts","sourceRoot":"","sources":["../../../../src/license/FeatureGate.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAyB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"FeatureGate.d.ts","sourceRoot":"","sources":["../../../../src/license/FeatureGate.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAyB,MAAM,OAAO,CAAC;AAOhE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKxD,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAGjD;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,GAAI,WAAW;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,sBAUrD,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,GAAI,oCAI7B,oBAAoB,sBAUtB,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,2CAI3B;IACD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,sBAiEA,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,GAAI,mEAMzB,gBAAgB,sBAiClB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,cAAc,IAAI;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,2DAA2D;IAC3D,UAAU,EAAE,OAAO,CAAC;IACpB,iEAAiE;IACjE,aAAa,EAAE,OAAO,CAAC;IACvB,4DAA4D;IAC5D,MAAM,EAAE,eAAe,CAAC;IACxB,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB,CAeA;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,eAAO,MAAM,gBAAgB,GAAI,yCAI9B,qBAAqB,sBA+DvB,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,eAAO,MAAM,YAAY,GAAI,2DAM1B,iBAAiB,6BAuHnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LicenseEntryModal.d.ts","sourceRoot":"","sources":["../../../../src/license/LicenseEntryModal.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAsB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"LicenseEntryModal.d.ts","sourceRoot":"","sources":["../../../../src/license/LicenseEntryModal.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAsB,MAAM,OAAO,CAAC;AA4B3C,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAQD,eAAO,MAAM,iBAAiB,GAAI,oCAI/B,sBAAsB,sBAuHxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManageDevicesModal.d.ts","sourceRoot":"","sources":["../../../../src/license/ManageDevicesModal.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ManageDevicesModal.d.ts","sourceRoot":"","sources":["../../../../src/license/ManageDevicesModal.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAC;AA8EhE,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAkGD,eAAO,MAAM,kBAAkB,GAAI,uCAIhC,uBAAuB,sBA2LzB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const PRICING_URL = "https://buoy.gg/pricing";
|
|
2
|
+
/** True when running on the desktop dashboard / web (react-native-web). */
|
|
3
|
+
export declare const isWeb: boolean;
|
|
4
|
+
/**
|
|
5
|
+
* Open an upgrade/pricing URL.
|
|
6
|
+
*
|
|
7
|
+
* On the desktop dashboard (web) the upgrade flow is NOT the mobile
|
|
8
|
+
* `Buoy.init()` code path — the user buys on the website (or enters a key in
|
|
9
|
+
* the toolbar). Route the link through the Electron shell bridge so it lands in
|
|
10
|
+
* the user's DEFAULT browser instead of a bare in-app window; fall back to
|
|
11
|
+
* window.open for a plain browser tab. On native, use React Native Linking.
|
|
12
|
+
*/
|
|
13
|
+
export declare function openPricing(url?: string): void;
|
|
14
|
+
//# sourceMappingURL=openPricing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openPricing.d.ts","sourceRoot":"","sources":["../../../../src/license/openPricing.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,4BAA4B,CAAC;AAErD,2EAA2E;AAC3E,eAAO,MAAM,KAAK,SAAwB,CAAC;AAE3C;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAoB,GAAG,IAAI,CAqB3D"}
|
|
@@ -89,6 +89,7 @@ export declare const devToolsStorageKeys: {
|
|
|
89
89
|
readonly filters: () => "@react_buoy_storage_filters";
|
|
90
90
|
readonly eventFilters: () => "@react_buoy_storage_event_filters";
|
|
91
91
|
readonly keyFilters: () => "@react_buoy_storage_key_filters";
|
|
92
|
+
readonly pinnedKeys: () => "@react_buoy_storage_pinned_keys";
|
|
92
93
|
readonly preferences: () => "@react_buoy_storage_preferences";
|
|
93
94
|
readonly activeTab: () => "@react_buoy_storage_active_tab";
|
|
94
95
|
readonly isMonitoring: () => "@react_buoy_storage_is_monitoring";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devToolsStorageKeys.d.ts","sourceRoot":"","sources":["../../../../src/storage/devToolsStorageKeys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;IAC9B;;OAEG;;IAGH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;IAUH;;OAEG;;;;;;QAQD,kDAAkD;;QAElD,gCAAgC;;QAGhC,gCAAgC;;;IAKlC;;OAEG;;;QAGD,mCAAmC;;QAEnC,qEAAqE;;;IAIvE;;OAEG;;;;;IAOH;;OAEG;;;;;;;IAQH;;OAEG;;;;;;;IASH;;OAEG
|
|
1
|
+
{"version":3,"file":"devToolsStorageKeys.d.ts","sourceRoot":"","sources":["../../../../src/storage/devToolsStorageKeys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;IAC9B;;OAEG;;IAGH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;IAUH;;OAEG;;;;;;QAQD,kDAAkD;;QAElD,gCAAgC;;QAGhC,gCAAgC;;;IAKlC;;OAEG;;;QAGD,mCAAmC;;QAEnC,qEAAqE;;;IAIvE;;OAEG;;;;;IAOH;;OAEG;;;;;;;IAQH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;;;;;;;;IAyBH;;OAEG;;;;;;;;;;;IAiBH;;OAEG;;;;;;;;;;;IAgBH;;OAEG;;;;;;;;;;IAgBH;;OAEG;;;;;;;QAUD,2BAA2B;;;IAK7B;;OAEG;;;;;;;;;IAcH;;OAEG;;;;QAID,oCAAoC;;QAGpC,wCAAwC;;QAGxC,2BAA2B;;;CAIrB,CAAC;AAwBX;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAqBzD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE9D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAsBpD"}
|
|
@@ -61,6 +61,8 @@ export declare abstract class BaseEventStore<TEvent> extends Subscribable<EventC
|
|
|
61
61
|
protected arrayListeners: Set<ArrayListener<TEvent>>;
|
|
62
62
|
protected maxEvents: number;
|
|
63
63
|
protected storeName: string;
|
|
64
|
+
private captureSuppressed;
|
|
65
|
+
private clearListeners;
|
|
64
66
|
constructor(options: BaseEventStoreOptions);
|
|
65
67
|
/**
|
|
66
68
|
* Start capturing events from the underlying source.
|
|
@@ -129,6 +131,32 @@ export declare abstract class BaseEventStore<TEvent> extends Subscribable<EventC
|
|
|
129
131
|
* Clear all events
|
|
130
132
|
*/
|
|
131
133
|
clearEvents(): void;
|
|
134
|
+
/**
|
|
135
|
+
* Listen for clearEvents() calls. Used in remote mirror mode to forward a
|
|
136
|
+
* clear performed in the dashboard UI to the synced device.
|
|
137
|
+
*/
|
|
138
|
+
onClear(listener: () => void): () => void;
|
|
139
|
+
/**
|
|
140
|
+
* Suppress the auto start/stop capture lifecycle. Use when this store acts
|
|
141
|
+
* as a mirror of a remote device's events (e.g. the desktop dashboard):
|
|
142
|
+
* events arrive via replaceEvents() and the local interceptors must never
|
|
143
|
+
* start — on the dashboard they would capture the dashboard's own traffic.
|
|
144
|
+
*/
|
|
145
|
+
disableCapture(): void;
|
|
146
|
+
/**
|
|
147
|
+
* Replace the entire event list and notify array listeners. Used in remote
|
|
148
|
+
* mirror mode where full snapshots arrive from a synced device.
|
|
149
|
+
*/
|
|
150
|
+
replaceEvents(events: TEvent[]): void;
|
|
151
|
+
/**
|
|
152
|
+
* Drop events that share an `id` with an earlier event, keeping the first
|
|
153
|
+
* (newest, since events are newest-first) occurrence. Remote snapshots can
|
|
154
|
+
* momentarily carry duplicate ids — e.g. a device's request counter resets
|
|
155
|
+
* on reload while older events with the same id are still in the buffer —
|
|
156
|
+
* which makes React list keys (keyed on `id`) collide. Events without an
|
|
157
|
+
* `id` are passed through untouched.
|
|
158
|
+
*/
|
|
159
|
+
private dedupeById;
|
|
132
160
|
/**
|
|
133
161
|
* Set maximum number of events to keep
|
|
134
162
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseEventStore.d.ts","sourceRoot":"","sources":["../../../../src/stores/BaseEventStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,8BAAsB,cAAc,CAAC,MAAM,CAAE,SAAQ,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACtF,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,CAAM;IAChC,SAAS,CAAC,cAAc,EAAE,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAa;IACjE,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseEventStore.d.ts","sourceRoot":"","sources":["../../../../src/stores/BaseEventStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,8BAAsB,cAAc,CAAC,MAAM,CAAE,SAAQ,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACtF,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,CAAM;IAChC,SAAS,CAAC,cAAc,EAAE,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAa;IACjE,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,cAAc,CAA8B;gBAExC,OAAO,EAAE,qBAAqB;IAU1C;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAEzD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI;IAExC;;OAEG;IACH,QAAQ,CAAC,WAAW,IAAI,OAAO;IAM/B;;;OAGG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI;IAO7B;;;OAGG;IACH,SAAS,CAAC,aAAa,IAAI,IAAI;IAW/B;;OAEG;IACH,SAAS,CAAC,uBAAuB,IAAI,MAAM;IAI3C;;;;;;OAMG;IACH,iBAAiB,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI;IA8B9D;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI;IASpD;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAWvC;;OAEG;IACH,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAWtC;;OAEG;IACH,SAAS,IAAI,MAAM,EAAE;IAIrB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,WAAW,IAAI,IAAI;IAYnB;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAWzC;;;;;OAKG;IACH,cAAc,IAAI,IAAI;IAOtB;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAKrC;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU;IAgBlB;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAY/B;;OAEG;IACH,mBAAmB,IAAI;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACf;CAOF"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared "ignored patterns" store for network-style URL filtering.
|
|
3
|
+
*
|
|
4
|
+
* This is the SINGLE source of truth for the domains/URL patterns that the
|
|
5
|
+
* Network tool (and now the Events tool) hide from their lists. Both tools read
|
|
6
|
+
* and mutate this one singleton, so an ignore toggled in either place is shared
|
|
7
|
+
* everywhere and persisted to the same storage key.
|
|
8
|
+
*
|
|
9
|
+
* Lives in @buoy-gg/shared-ui (a hard dependency of both @buoy-gg/network and
|
|
10
|
+
* @buoy-gg/events) so the filter logic can be shared without @buoy-gg/events
|
|
11
|
+
* having to take a hard dependency on @buoy-gg/network (which is optional).
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* How an ignored-pattern entry should be compared against captured URLs.
|
|
15
|
+
*
|
|
16
|
+
* - `contains`: case-insensitive substring match on the full URL (legacy behavior).
|
|
17
|
+
* - `exact`: smart equality — if pattern starts with `/`, matches URL.pathname;
|
|
18
|
+
* if it starts with `http://`/`https://`, matches origin+pathname; otherwise
|
|
19
|
+
* matches URL.host.
|
|
20
|
+
*/
|
|
21
|
+
export type IgnoredPatternMatchMode = "contains" | "exact";
|
|
22
|
+
/** A single exclude pattern with its match mode. */
|
|
23
|
+
export interface IgnoredPattern {
|
|
24
|
+
value: string;
|
|
25
|
+
mode: IgnoredPatternMatchMode;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Returns true when `url` matches the ignored `pattern` according to its mode.
|
|
29
|
+
*
|
|
30
|
+
* `contains` → case-insensitive substring on the full URL (legacy behavior).
|
|
31
|
+
* `exact` → smart equality: pattern starting with `/` compares URL.pathname,
|
|
32
|
+
* full URLs compare origin+pathname (ignoring query/hash), bare
|
|
33
|
+
* values compare URL.host. Falls back to literal equality if URL
|
|
34
|
+
* parsing fails (e.g. relative URLs).
|
|
35
|
+
*/
|
|
36
|
+
export declare function urlMatchesIgnoredPattern(url: string, pattern: IgnoredPattern): boolean;
|
|
37
|
+
/** Convenience: does `url` match ANY of the ignored `patterns`? */
|
|
38
|
+
export declare function isUrlIgnored(url: string, patterns: ReadonlyArray<IgnoredPattern>): boolean;
|
|
39
|
+
type Listener = () => void;
|
|
40
|
+
/**
|
|
41
|
+
* Singleton store. One instance per JS runtime, so every consumer (Network tool,
|
|
42
|
+
* Events tool, on mobile or on the desktop dashboard) shares the same patterns.
|
|
43
|
+
*/
|
|
44
|
+
declare class IgnoredPatternsStore {
|
|
45
|
+
private patterns;
|
|
46
|
+
private readonly listeners;
|
|
47
|
+
private loaded;
|
|
48
|
+
private loadPromise;
|
|
49
|
+
/** Set once a mutation happens so a slow initial load can't clobber it. */
|
|
50
|
+
private dirty;
|
|
51
|
+
/** Current patterns (stable reference until a mutation occurs). */
|
|
52
|
+
getPatterns(): IgnoredPattern[];
|
|
53
|
+
subscribe(listener: Listener): () => void;
|
|
54
|
+
private emit;
|
|
55
|
+
private ensureLoaded;
|
|
56
|
+
private persist;
|
|
57
|
+
private commit;
|
|
58
|
+
/** Add a pattern (no-op if its value already exists). */
|
|
59
|
+
add(pattern: IgnoredPattern): void;
|
|
60
|
+
/** Remove a pattern by value. */
|
|
61
|
+
remove(value: string): void;
|
|
62
|
+
/** Add as `contains` if absent, otherwise remove (used by detail-view chips). */
|
|
63
|
+
toggle(value: string): void;
|
|
64
|
+
/** Flip an existing pattern between `contains` and `exact`. */
|
|
65
|
+
toggleMode(value: string): void;
|
|
66
|
+
}
|
|
67
|
+
export declare const ignoredPatternsStore: IgnoredPatternsStore;
|
|
68
|
+
export interface UseIgnoredPatternsResult {
|
|
69
|
+
/** The ordered list of ignored patterns. */
|
|
70
|
+
patterns: IgnoredPattern[];
|
|
71
|
+
/** Just the pattern values, as a Set (for presence checks in the UI). */
|
|
72
|
+
values: Set<string>;
|
|
73
|
+
add: (pattern: IgnoredPattern) => void;
|
|
74
|
+
remove: (value: string) => void;
|
|
75
|
+
toggle: (value: string) => void;
|
|
76
|
+
toggleMode: (value: string) => void;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Subscribe to the shared ignored-patterns store. All consumers in a runtime
|
|
80
|
+
* see the same patterns and the same mutations.
|
|
81
|
+
*/
|
|
82
|
+
export declare function useIgnoredPatterns(): UseIgnoredPatternsResult;
|
|
83
|
+
export {};
|
|
84
|
+
//# sourceMappingURL=ignoredPatternsStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ignoredPatternsStore.d.ts","sourceRoot":"","sources":["../../../../src/stores/ignoredPatternsStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH;;;;;;;GAOG;AACH,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,OAAO,CAAC;AAE3D,oDAAoD;AACpD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,uBAAuB,CAAC;CAC/B;AAOD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,cAAc,GACtB,OAAO,CAoBT;AAED,mEAAmE;AACnE,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,aAAa,CAAC,cAAc,CAAC,GACtC,OAAO,CAGT;AAmCD,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAE3B;;;GAGG;AACH,cAAM,oBAAoB;IACxB,OAAO,CAAC,QAAQ,CAEd;IACF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAA8B;IACjD,2EAA2E;IAC3E,OAAO,CAAC,KAAK,CAAS;IAEtB,mEAAmE;IACnE,WAAW,IAAI,cAAc,EAAE;IAI/B,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI;IASzC,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,MAAM;IAOd,yDAAyD;IACzD,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAOlC,iCAAiC;IACjC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK3B,iFAAiF;IACjF,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAU3B,+DAA+D;IAC/D,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAUhC;AAED,eAAO,MAAM,oBAAoB,sBAA6B,CAAC;AAE/D,MAAM,WAAW,wBAAwB;IACvC,4CAA4C;IAC5C,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,yEAAyE;IACzE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,GAAG,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IACvC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,wBAAwB,CAwB7D"}
|
|
@@ -2,4 +2,5 @@
|
|
|
2
2
|
* Shared store utilities and base classes
|
|
3
3
|
*/
|
|
4
4
|
export { BaseEventStore, type ArrayListener, type EventCallback, type BaseEventStoreOptions, } from "./BaseEventStore";
|
|
5
|
+
export { ignoredPatternsStore, useIgnoredPatterns, urlMatchesIgnoredPattern, isUrlIgnored, type IgnoredPattern, type IgnoredPatternMatchMode, type UseIgnoredPatternsResult, } from "./ignoredPatternsStore";
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/stores/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,qBAAqB,GAC3B,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/stores/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,qBAAqB,GAC3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,GAC9B,MAAM,wBAAwB,CAAC"}
|
|
@@ -5,6 +5,8 @@ export interface CompactRowProps {
|
|
|
5
5
|
statusSublabel?: string;
|
|
6
6
|
primaryText: string;
|
|
7
7
|
secondaryText?: string;
|
|
8
|
+
/** Optional node rendered inline next to secondaryText (e.g. a small badge). */
|
|
9
|
+
secondaryAccessory?: ReactNode;
|
|
8
10
|
expandedContent?: ReactNode;
|
|
9
11
|
isExpanded?: boolean;
|
|
10
12
|
badgeText?: string | number;
|
|
@@ -17,5 +19,5 @@ export interface CompactRowProps {
|
|
|
17
19
|
disabled?: boolean;
|
|
18
20
|
expandedGlowColor?: string;
|
|
19
21
|
}
|
|
20
|
-
export declare function CompactRow({ statusDotColor, statusLabel, statusSublabel, primaryText, secondaryText, expandedContent, isExpanded, badgeText, badgeColor, customBadge, showChevron, bottomRightText, isSelected, onPress, disabled, expandedGlowColor, }: CompactRowProps): import("react").JSX.Element;
|
|
22
|
+
export declare function CompactRow({ statusDotColor, statusLabel, statusSublabel, primaryText, secondaryText, secondaryAccessory, expandedContent, isExpanded, badgeText, badgeColor, customBadge, showChevron, bottomRightText, isSelected, onPress, disabled, expandedGlowColor, }: CompactRowProps): import("react").JSX.Element;
|
|
21
23
|
//# sourceMappingURL=CompactRow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompactRow.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/CompactRow.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIlC,MAAM,WAAW,eAAe;IAE9B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,UAAU,CAAC,EACzB,cAAc,EACd,WAAW,EACX,cAAc,EACd,WAAW,EACX,aAAa,EACb,eAAe,EACf,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,WAAW,EACX,eAAe,EACf,UAAU,EACV,OAAO,EACP,QAAQ,EACR,iBAAiB,GAClB,EAAE,eAAe,+
|
|
1
|
+
{"version":3,"file":"CompactRow.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/CompactRow.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIlC,MAAM,WAAW,eAAe;IAE9B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,UAAU,CAAC,EACzB,cAAc,EACd,WAAW,EACX,cAAc,EACd,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,WAAW,EACX,eAAe,EACf,UAAU,EACV,OAAO,EACP,QAAQ,EACR,iBAAiB,GAClB,EAAE,eAAe,+BAmHjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventPickerModal.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/EventHistoryViewer/EventPickerModal.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAe,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"EventPickerModal.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/EventHistoryViewer/EventPickerModal.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAe,MAAM,OAAO,CAAC;AAWpC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,mDA8E3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpandableSectionWithModal.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ExpandableSectionWithModal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ExpandableSectionWithModal.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ExpandableSectionWithModal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAW5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAO9C,UAAU,+BAA+B;IACvC,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,SAAS,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC,CAAC;IAC9D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,wBAAgB,0BAA0B,CAAC,EACzC,IAAI,EACJ,SAAS,EACT,mBAAmB,EACnB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,oBAAgC,EAChC,eAAsB,EACtB,UAAkB,EAClB,WAAW,EACX,YAAY,GACb,EAAE,+BAA+B,+BA0HjC"}
|
|
@@ -26,7 +26,9 @@ interface PillBadgeProps {
|
|
|
26
26
|
color: string;
|
|
27
27
|
children: ReactNode;
|
|
28
28
|
icon?: ReactNode;
|
|
29
|
+
/** "sm" renders a more compact pill for inline use next to text. */
|
|
30
|
+
size?: "sm" | "md";
|
|
29
31
|
}
|
|
30
|
-
export declare function PillBadge({ color, children, icon }: PillBadgeProps): import("react").JSX.Element;
|
|
32
|
+
export declare function PillBadge({ color, children, icon, size }: PillBadgeProps): import("react").JSX.Element;
|
|
31
33
|
export {};
|
|
32
34
|
//# sourceMappingURL=ExpandedInfoRow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpandedInfoRow.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ExpandedInfoRow.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,oBAAoB,+BAOxE;AAED;;;GAGG;AACH,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ExpandedInfoRow.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ExpandedInfoRow.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,oBAAoB,+BAOxE;AAED;;;GAGG;AACH,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,oEAAoE;IACpE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAW,EAAE,EAAE,cAAc,+BAgB/E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WindowControls.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/WindowControls.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WindowControls.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/WindowControls.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAc/C;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,QAE3D;AAMD,UAAU,mBAAmB;IAC3B,+BAA+B;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,2EAA2E;IAC3E,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AA+BD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,UAAU,EACV,YAAY,EACZ,IAAI,GACL,EAAE,mBAAmB,+BAqDrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CyberpunkConsoleSection.d.ts","sourceRoot":"","sources":["../../../../../src/ui/console/CyberpunkConsoleSection.tsx"],"names":[],"mappings":"AACA,OAAO,EAKL,SAAS,EAGV,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"CyberpunkConsoleSection.d.ts","sourceRoot":"","sources":["../../../../../src/ui/console/CyberpunkConsoleSection.tsx"],"names":[],"mappings":"AACA,OAAO,EAKL,SAAS,EAGV,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQ9C,UAAU,4BAA4B;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,uBAAuB,CAAC,EACtC,EAAE,EAAE,GAAG,EAAE,mCAAmC;AAC5C,KAAK,EACL,QAAQ,EACR,IAAI,EAAE,IAAI,EACV,SAAS,EACT,mBAAmB,EACnB,OAAO,EACP,KAAK,EACL,KAAS,GACV,EAAE,4BAA4B,+BAgiB9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GalaxyButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/console/GalaxyButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AACrD,OAAO,EAKL,SAAS,EAEV,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"GalaxyButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/console/GalaxyButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AACrD,OAAO,EAKL,SAAS,EAEV,MAAM,cAAc,CAAC;AAKtB,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,iBAAiB,+BAqE3E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GameUIStatusHeader.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/gameUI/components/GameUIStatusHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0B,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"GameUIStatusHeader.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/gameUI/components/GameUIStatusHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0B,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE,MAAM,WAAW,uBAAuB;IAEtC,WAAW,EAAE,gBAAgB,CAAC;IAE9B,SAAS,EAAE,MAAM,CAAC;IAElB,aAAa,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAElD,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,WAAW,EACX,SAAS,EACT,aAAa,EACb,KAAK,EACL,cAAkB,GACnB,EAAE,uBAAuB,+BA+DzB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ViewStyle } from "react-native";
|
|
2
|
+
/**
|
|
3
|
+
* Spreadable absolute-fill style.
|
|
4
|
+
*
|
|
5
|
+
* Replaces `StyleSheet.absoluteFillObject`, which was REMOVED in React Native
|
|
6
|
+
* 0.85 (returns `undefined` there). Spreading `undefined` is a silent no-op, so
|
|
7
|
+
* any overlay/backdrop/full-screen Pressable that relied on it collapses to zero
|
|
8
|
+
* size on RN 0.85+ — invisible and untappable.
|
|
9
|
+
*
|
|
10
|
+
* `StyleSheet.absoluteFill` is not a safe replacement for the spread pattern
|
|
11
|
+
* because its type changed across versions: it's a registered style *number* on
|
|
12
|
+
* RN <= 0.84 (spreading a number yields `{}`) and a frozen object only on 0.85+.
|
|
13
|
+
*
|
|
14
|
+
* This plain object works identically on every RN version, whether spread
|
|
15
|
+
* (`{ ...absoluteFill }`) or passed directly (`style={absoluteFill}`).
|
|
16
|
+
*/
|
|
17
|
+
export declare const absoluteFill: ViewStyle;
|
|
18
|
+
//# sourceMappingURL=absoluteFill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"absoluteFill.d.ts","sourceRoot":"","sources":["../../../../src/utils/absoluteFill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,YAAY,EAAE,SAM1B,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { absoluteFill } from "./absoluteFill";
|
|
1
2
|
export { displayValue, parseDisplayValue } from "./displayValue";
|
|
2
3
|
export { getSafeAreaInsets } from "./getSafeAreaInsets";
|
|
3
4
|
export { persistentStorage, isUsingPersistentStorage, getStorageBackendType, type DevToolsStorage, } from "./persistentStorage";
|
|
@@ -7,5 +8,5 @@ export { parseValue, formatValue, getTypeColor, truncateText, flattenObject, for
|
|
|
7
8
|
export { loadOptionalModule, getCachedOptionalModule } from "./loadOptionalModule";
|
|
8
9
|
export { Subscribable, type SubscribableListener } from "./subscribable";
|
|
9
10
|
export { subscriberCountNotifier, subscribeToSubscriberCountChanges, notifySubscriberCountChange, } from "./subscriberCountNotifier";
|
|
10
|
-
export { useSafeRouter, useSafePathname, useSafeSegments, useSafeGlobalSearchParams, getSafeRouter, isExpoRouterAvailable, } from "./safeExpoRouter";
|
|
11
|
+
export { useSafeRouter, useSafePathname, useSafeSegments, useSafeGlobalSearchParams, getSafeRouter, getSafeCurrentPathname, isExpoRouterAvailable, } from "./safeExpoRouter";
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EACL,uBAAuB,EACvB,iCAAiC,EACjC,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,aAAa,EACb,qBAAqB,GACtB,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EACL,uBAAuB,EACvB,iCAAiC,EACjC,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,aAAa,EACb,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC"}
|
|
@@ -13,5 +13,14 @@ export declare function useSafePathname(): string;
|
|
|
13
13
|
export declare function useSafeSegments(): string[];
|
|
14
14
|
export declare function useSafeGlobalSearchParams(): Record<string, string | string[]>;
|
|
15
15
|
export declare function getSafeRouter(): any;
|
|
16
|
+
/**
|
|
17
|
+
* The current route pathname, read imperatively from expo-router's store.
|
|
18
|
+
*
|
|
19
|
+
* Unlike a route-events history lookup, this works even before any navigation
|
|
20
|
+
* has been recorded — e.g. right after a cold start while the app sits on its
|
|
21
|
+
* initial route. Returns null when expo-router isn't available or the store
|
|
22
|
+
* can't be reached.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getSafeCurrentPathname(): string | null;
|
|
16
25
|
export declare function isExpoRouterAvailable(): boolean;
|
|
17
26
|
//# sourceMappingURL=safeExpoRouter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safeExpoRouter.d.ts","sourceRoot":"","sources":["../../../../src/utils/safeExpoRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"safeExpoRouter.d.ts","sourceRoot":"","sources":["../../../../src/utils/safeExpoRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgHH,wBAAgB,aAAa,QAW5B;AAED,wBAAgB,eAAe,IAAI,MAAM,CAWxC;AAED,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAW1C;AAED,wBAAgB,yBAAyB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAW7E;AAMD,wBAAgB,aAAa,QAU5B;AAuBD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAUtD;AAMD,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-gg/shared-ui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.1",
|
|
4
4
|
"description": "Shared UI components, hooks, and utilities",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -115,10 +115,10 @@
|
|
|
115
115
|
],
|
|
116
116
|
"sideEffects": false,
|
|
117
117
|
"dependencies": {
|
|
118
|
-
"@buoy-gg/floating-tools-core": "
|
|
118
|
+
"@buoy-gg/floating-tools-core": "4.0.1"
|
|
119
119
|
},
|
|
120
120
|
"peerDependencies": {
|
|
121
|
-
"@buoy-gg/license": "
|
|
121
|
+
"@buoy-gg/license": "4.0.1",
|
|
122
122
|
"@react-native-clipboard/clipboard": "*",
|
|
123
123
|
"expo-clipboard": "*",
|
|
124
124
|
"expo-file-system": "*",
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
"expo-clipboard": "~7.1.5",
|
|
147
147
|
"react-native-safe-area-context": "^5.6.2",
|
|
148
148
|
"typescript": "~5.8.3",
|
|
149
|
-
"@buoy-gg/license": "
|
|
149
|
+
"@buoy-gg/license": "4.0.1"
|
|
150
150
|
},
|
|
151
151
|
"react-native-builder-bob": {
|
|
152
152
|
"source": "src",
|